From 3ee1b6c8442dc23155968848ff74ecdece9a3e7e Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Wed, 19 Jan 2022 10:11:41 +0100 Subject: [PATCH] research --- Gemfile.lock | 20 +++++++++---------- app/models/research/journal/article.rb | 12 +++++++++-- app/models/university/person/researcher.rb | 2 +- .../research/journal/articles/_form.html.erb | 2 +- .../research/journal/articles/show.html.erb | 6 +++--- .../research/journal/articles/static.html.erb | 6 +++--- .../admin/research/journals/static.html.erb | 4 ++-- .../admin/research/researchers/index.html.erb | 2 +- config/locales/research/en.yml | 2 +- config/locales/research/fr.yml | 2 +- 10 files changed, 33 insertions(+), 25 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2dc460e48..6846aec41 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -79,8 +79,8 @@ GEM autoprefixer-rails (10.4.2.0) execjs (~> 2) aws-eventstream (1.2.0) - aws-partitions (1.548.0) - aws-sdk-core (3.125.3) + aws-partitions (1.549.0) + aws-sdk-core (3.125.4) aws-eventstream (~> 1, >= 1.0.2) aws-partitions (~> 1, >= 1.525.0) aws-sigv4 (~> 1.1) @@ -96,8 +96,8 @@ GEM aws-eventstream (~> 1, >= 1.0.2) bcrypt (3.1.16) bindex (0.8.1) - bootsnap (1.9.4) - msgpack (~> 1.0) + bootsnap (1.10.1) + msgpack (~> 1.2) bootstrap (5.1.3) autoprefixer-rails (>= 9.1.0) popper_js (>= 2.9.3, < 3) @@ -126,17 +126,17 @@ GEM countries (4.2.1) i18n_data (~> 0.15.0) sixarm_ruby_unaccent (~> 1.1) - country_select (6.0.0) - countries (~> 4.0) + country_select (6.1.0) + countries (~> 4.2) sort_alphabetical (~> 1.1) crass (1.0.6) curation (1.7) metainspector nokogiri - delayed_job (4.1.9) - activesupport (>= 3.0, < 6.2) - delayed_job_active_record (4.1.6) - activerecord (>= 3.0, < 6.2) + delayed_job (4.1.10) + activesupport (>= 3.0, < 8.0) + delayed_job_active_record (4.1.7) + activerecord (>= 3.0, < 8.0) delayed_job (>= 3.0, < 5) delayed_job_web (1.4.4) activerecord (> 3.0.0) diff --git a/app/models/research/journal/article.rb b/app/models/research/journal/article.rb index 508ab94d5..b7d7c5780 100644 --- a/app/models/research/journal/article.rb +++ b/app/models/research/journal/article.rb @@ -35,6 +35,7 @@ # class Research::Journal::Article < ApplicationRecord include WithGit + include WithMedia include WithPosition has_rich_text :text @@ -44,7 +45,7 @@ class Research::Journal::Article < ApplicationRecord belongs_to :journal, foreign_key: :research_journal_id belongs_to :volume, foreign_key: :research_journal_volume_id, optional: true belongs_to :updated_by, class_name: 'User' - has_and_belongs_to_many :researchers, + has_and_belongs_to_many :persons, class_name: 'University::Person', join_table: :research_journal_articles_researchers, association_foreign_key: :researcher_id @@ -61,7 +62,10 @@ class Research::Journal::Article < ApplicationRecord end def git_dependencies(website) - [self] + other_articles_in_the_volume + researchers + researchers.map(&:researcher) + [self] + + other_articles_in_the_volume + + persons + + persons.map(&:researcher) end def to_s @@ -86,6 +90,10 @@ class Research::Journal::Article < ApplicationRecord ).ordered.last end + def blob_ids + [pdf&.blob_id] + end + def set_published_at self.published_at = published? ? Time.zone.now : nil end diff --git a/app/models/university/person/researcher.rb b/app/models/university/person/researcher.rb index 048b79ed9..45e450b4c 100644 --- a/app/models/university/person/researcher.rb +++ b/app/models/university/person/researcher.rb @@ -38,7 +38,7 @@ class University::Person::Researcher < University::Person def for_website?(website) is_researcher && website.about_journal? && website.research_articles - .joins(:researchers) + .joins(:persons) .where(university_people: { id: id }) .any? end diff --git a/app/views/admin/research/journal/articles/_form.html.erb b/app/views/admin/research/journal/articles/_form.html.erb index c52f9d1e7..51b7b29b7 100644 --- a/app/views/admin/research/journal/articles/_form.html.erb +++ b/app/views/admin/research/journal/articles/_form.html.erb @@ -30,7 +30,7 @@ <%= f.input :published %> <%= f.input :published_at, html5: true %> <%= f.input :keywords, as: :text, input_html: { rows: 2 } %> - <%= f.association :researchers, collection: current_university.people.researchers.ordered, as: :check_boxes %> + <%= f.association :persons, collection: current_university.people.researchers.ordered, as: :check_boxes %> </div> </div> </div> diff --git a/app/views/admin/research/journal/articles/show.html.erb b/app/views/admin/research/journal/articles/show.html.erb index dc84c32a4..f9ddcfd81 100644 --- a/app/views/admin/research/journal/articles/show.html.erb +++ b/app/views/admin/research/journal/articles/show.html.erb @@ -40,11 +40,11 @@ <h3 class="h5"><%= Research::Journal::Article.human_attribute_name('keywords') %></h3> <p><%= @article.keywords %></p> <% end %> - <% if @article.researchers.any? %> + <% if @article.persons.any? %> <h3 class="h5"><%= Research::Journal::Article.human_attribute_name('researchers') %></h3> <ul class="list-unstyled mb-0"> - <% @article.researchers.each do |researcher| %> - <li><%= link_to researcher, admin_research_researcher_path(researcher) %></li> + <% @article.persons.each do |person| %> + <li><%= link_to person, admin_research_researcher_path(person) %></li> <% end %> </ul> <% end %> diff --git a/app/views/admin/research/journal/articles/static.html.erb b/app/views/admin/research/journal/articles/static.html.erb index 345de93af..a6b95c541 100644 --- a/app/views/admin/research/journal/articles/static.html.erb +++ b/app/views/admin/research/journal/articles/static.html.erb @@ -11,10 +11,10 @@ date: <%= @article.published_at %> UTC keywords: > <%= @article.keywords %> researchers: -<% @article.researchers.each do |researcher| %> -- "<%= researcher.slug %>" +<% @article.persons.each do |person| %> +- "<%= person.slug %>" <% end %> abstract: "<%= @article.abstract %>" references: "<%= @article.references %>" --- -<%= @article.text %> +<%= prepare_html_for_static @article.text, @article.university %> diff --git a/app/views/admin/research/journals/static.html.erb b/app/views/admin/research/journals/static.html.erb index 8c6ebc60c..4446f6506 100644 --- a/app/views/admin/research/journals/static.html.erb +++ b/app/views/admin/research/journals/static.html.erb @@ -1,8 +1,8 @@ --- title: > <%= @journal.title %> -description: > - <%= prepare_text_for_static @journal.description %> issn: > <%= @journal.issn %> +description: > + <%= prepare_text_for_static @journal.description %> --- diff --git a/app/views/admin/research/researchers/index.html.erb b/app/views/admin/research/researchers/index.html.erb index 9fa1cdad6..2a56d4f11 100644 --- a/app/views/admin/research/researchers/index.html.erb +++ b/app/views/admin/research/researchers/index.html.erb @@ -1,4 +1,4 @@ -<% content_for :title, t('researcher.researchers', count: 2) %> +<% content_for :title, t('research.researchers', count: 2) %> <table class="table"> <thead> diff --git a/config/locales/research/en.yml b/config/locales/research/en.yml index f77d0d0e4..2f64c1926 100644 --- a/config/locales/research/en.yml +++ b/config/locales/research/en.yml @@ -24,7 +24,7 @@ en: published: Published? published_at: Published at references: References - researchers: Authors + persons: Authors text: Text title: Title research/journal/volume: diff --git a/config/locales/research/fr.yml b/config/locales/research/fr.yml index 3e0afa176..90a1a8d03 100644 --- a/config/locales/research/fr.yml +++ b/config/locales/research/fr.yml @@ -24,7 +24,7 @@ fr: published: Publié ? published_at: Publié le references: Références - researchers: Auteu·rs·rices + persons: Auteu·rs·rices text: Texte title: Titre research/journal/volume: -- GitLab