diff --git a/app/models/education/program.rb b/app/models/education/program.rb index 004ccd957a732bf000fd4c8d5a1198c48e54c1c1..e6b00ed3587550caa491bb082d323f5d8af9fd59 100644 --- a/app/models/education/program.rb +++ b/app/models/education/program.rb @@ -32,21 +32,11 @@ class Education::Program < ApplicationRecord include WithGithubFiles include WithMenuItemTarget include WithTree + include WithRichTexts include Communication::Website::WithMedia attr_accessor :skip_websites_categories_callback - has_rich_text :accessibility - has_rich_text :contacts - has_rich_text :duration - has_rich_text :evaluation - has_rich_text :objectives - has_rich_text :opportunities - has_rich_text :other - has_rich_text :pedagogy - has_rich_text :prerequisites - has_rich_text :pricing - has_rich_text :registration has_one_attached_deletable :featured_image belongs_to :university @@ -91,6 +81,10 @@ class Education::Program < ApplicationRecord "#{name}" end + def inherited_description + description.blank? ? parent&.inherited_description : description + end + # Override from WithGithubFiles def github_path_generated "_programs/#{path}/index.html".gsub(/\/+/, '/') diff --git a/app/models/education/program/with_rich_texts.rb b/app/models/education/program/with_rich_texts.rb new file mode 100644 index 0000000000000000000000000000000000000000..fdc75cb0e79328b2ffd3f3c21c479784abac22ec --- /dev/null +++ b/app/models/education/program/with_rich_texts.rb @@ -0,0 +1,62 @@ +module Education::Program::WithRichTexts + extend ActiveSupport::Concern + + included do + has_rich_text :accessibility + has_rich_text :contacts + has_rich_text :duration + has_rich_text :evaluation + has_rich_text :objectives + has_rich_text :opportunities + has_rich_text :other + has_rich_text :pedagogy + has_rich_text :prerequisites + has_rich_text :pricing + has_rich_text :registration + + def inherited_accessibility + accessibility.blank? ? parent&.inherited_accessibility : accessibility + end + + def inherited_contacts + contacts.blank? ? parent&.inherited_contacts : contacts + end + + def inherited_duration + duration.blank? ? parent&.inherited_duration : duration + end + + def inherited_evaluation + evaluation.blank? ? parent&.inherited_evaluation : evaluation + end + + def inherited_objectives + objectives.blank? ? parent&.inherited_objectives : objectives + end + + def inherited_opportunities + opportunities.blank? ? parent&.inherited_opportunities : opportunities + end + + def inherited_other + other.blank? ? parent&.inherited_other : other + end + + def inherited_pedagogy + pedagogy.blank? ? parent&.inherited_pedagogy : pedagogy + end + + def inherited_prerequisites + prerequisites.blank? ? parent&.inherited_prerequisites : prerequisites + end + + def inherited_pricing + pricing.blank? ? parent&.inherited_pricing : pricing + end + + def inherited_registration + registration.blank? ? parent&.inherited_registration : registration + end + + end +end diff --git a/app/views/admin/education/programs/jekyll.html.erb b/app/views/admin/education/programs/jekyll.html.erb index 6a4cb423dd19d7dfbef2de32007f16b20acdb9d7..44787cd8bd7ee73075767b1b73fcdd437a41680d 100644 --- a/app/views/admin/education/programs/jekyll.html.erb +++ b/app/views/admin/education/programs/jekyll.html.erb @@ -14,27 +14,27 @@ teachers: <% end %> <% end %> accessibility: > - <%= prepare_for_github @program.accessibility, @program.university %> + <%= prepare_for_github @program.inherited_accessibility, @program.university %> contacts: > - <%= prepare_for_github @program.contacts, @program.university %> + <%= prepare_for_github @program.inherited_contacts, @program.university %> description: > - <%= prepare_for_github @program.description, @program.university %> + <%= prepare_for_github @program.inherited_description, @program.university %> duration: > - <%= prepare_for_github @program.duration, @program.university %> + <%= prepare_for_github @program.inherited_duration, @program.university %> evaluation: > - <%= prepare_for_github @program.evaluation, @program.university %> + <%= prepare_for_github @program.inherited_evaluation, @program.university %> objectives: > - <%= prepare_for_github @program.objectives, @program.university %> + <%= prepare_for_github @program.inherited_objectives, @program.university %> opportunities: > - <%= prepare_for_github @program.opportunities, @program.university %> + <%= prepare_for_github @program.inherited_opportunities, @program.university %> other: > - <%= prepare_for_github @program.other, @program.university %> + <%= prepare_for_github @program.inherited_other, @program.university %> pedagogy: > - <%= prepare_for_github @program.pedagogy, @program.university %> + <%= prepare_for_github @program.inherited_pedagogy, @program.university %> prerequisites: > - <%= prepare_for_github @program.prerequisites, @program.university %> + <%= prepare_for_github @program.inherited_prerequisites, @program.university %> pricing: > - <%= prepare_for_github @program.pricing, @program.university %> + <%= prepare_for_github @program.inherited_pricing, @program.university %> registration: > - <%= prepare_for_github @program.registration, @program.university %> + <%= prepare_for_github @program.inherited_registration, @program.university %> ---