diff --git a/app/controllers/admin/education/programs_controller.rb b/app/controllers/admin/education/programs_controller.rb index edb22802238dd74a988112f6c3626beac2c65d94..755481ce2e6b88ab10ac1330b5323d3a91c47704 100644 --- a/app/controllers/admin/education/programs_controller.rb +++ b/app/controllers/admin/education/programs_controller.rb @@ -54,6 +54,12 @@ class Admin::Education::ProgramsController < Admin::Education::ApplicationContro breadcrumb end + def static + @about = @program + @website = @program.websites&.first + render layout: false + end + def preview @website = @program.websites&.first render layout: 'admin/layouts/preview' @@ -107,7 +113,7 @@ class Admin::Education::ProgramsController < Admin::Education::ApplicationContro params.require(:education_program).permit( :name, :short_name, :slug, :level, :capacity, :continuing, :initial, :apprenticeship, :description, :published, :featured_image, :featured_image_delete, :featured_image_infos, :featured_image_alt, :featured_image_credit, - :prerequisites, :objectives, :presentation, :registration, :pedagogy, :content, + :prerequisites, :objectives, :presentation, :registration, :pedagogy, :content, :registration_url, :evaluation, :accessibility, :pricing, :contacts, :opportunities, :results, :other, :main_information, :parent_id, :diploma_id, school_ids: [], university_person_involvements_attributes: [:id, :person_id, :description, :position, :_destroy] diff --git a/app/models/education/program.rb b/app/models/education/program.rb index 6606cc0a800220c485453fdbf0551abdcb757c4c..9da60637c682d864da50dbe2d2370d53bb1fcf03 100644 --- a/app/models/education/program.rb +++ b/app/models/education/program.rb @@ -28,6 +28,7 @@ # pricing :text # published :boolean default(FALSE) # registration :text +# registration_url :string # results :text # short_name :string # slug :string diff --git a/app/views/admin/education/programs/_form.html.erb b/app/views/admin/education/programs/_form.html.erb index af38dc28ad8c928ca2b431e71a790bb89a40775f..435a7c9319d344dc25b7bbdea1cb853c3f8365a9 100644 --- a/app/views/admin/education/programs/_form.html.erb +++ b/app/views/admin/education/programs/_form.html.erb @@ -24,9 +24,9 @@ <div class="col-lg-6"> <%= f.input :capacity %> <legend class="col-form-label pt-0 mb-1"><%= t('education.program.registration_scheme') %></legend> - <%= f.input :initial %> - <%= f.input :continuing %> - <%= f.input :apprenticeship %> + <div class="mb-n3"><%= f.input :initial %></div> + <div class="mb-n3"><%= f.input :continuing %></div> + <div class="mb-n3"><%= f.input :apprenticeship %></div> </div> </div> <% end %> @@ -37,8 +37,7 @@ <%= f.input :presentation %> </div> <div class="col-xxl-6"> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :objectives %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :objectives %> </div> </div> <% end %> @@ -46,14 +45,11 @@ <%= render 'admin/education/programs/forms/part', part: :pedagogy do %> <div class="row"> <div class="col-xxl-6"> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :content %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :content %> </div> <div class="col-xxl-6"> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :pedagogy %> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :evaluation %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :pedagogy %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :evaluation %> </div> </div> <div class="row mb-2"> @@ -84,9 +80,7 @@ <%= f.simple_fields_for :university_person_involvements, sorted_involvements, include_id: false do |involvement_f| %> - <%= render 'admin/education/programs/involvement_fields', - f: involvement_f, - include_id: true %> + <%= render 'admin/education/programs/involvement_fields', f: involvement_f, include_id: true %> <% end %> </div> <% end %> @@ -94,12 +88,10 @@ <%= render 'admin/education/programs/forms/part', part: :results do %> <div class="row"> <div class="col-xxl-6"> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :opportunities %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :opportunities %> </div> <div class="col-xxl-6"> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :results %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :results %> </div> </div> <% end %> @@ -107,20 +99,15 @@ <%= render 'admin/education/programs/forms/part', part: :admission do %> <div class="row"> <div class="col-xxl-6"> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :prerequisites %> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :registration %> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :other %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :prerequisites %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :registration %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :other %> </div> <div class="col-xxl-6"> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :pricing %> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :accessibility %> - <%= render 'admin/education/programs/forms/input_with_inheritance', - f: f, property: :contacts %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :pricing %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :accessibility %> + <%= render 'admin/education/programs/forms/input_with_inheritance', f: f, property: :contacts %> + <%= f.input :registration_url %> </div> </div> <% end %> diff --git a/app/views/admin/education/programs/show.html.erb b/app/views/admin/education/programs/show.html.erb index 7ae4601e87127f4c63b8bb3d8d2f3ce4a8c2c088..f50d97f9c99c45c8e7ff5d5bce776e6bbba89c85 100644 --- a/app/views/admin/education/programs/show.html.erb +++ b/app/views/admin/education/programs/show.html.erb @@ -104,6 +104,10 @@ <%= render 'admin/application/property/text', object: @program, property: :pricing %> <%= render 'admin/application/property/text', object: @program, property: :accessibility %> <%= render 'admin/application/property/text', object: @program, property: :contacts %> + <% if @program.registration_url.present? %> + <h3 class="h5"><%= Education::Program.human_attribute_name(:registration_url) %></h3> + <p><%= link_to @program.registration_url, @program.registration_url, target: :_blank %></p> + <% end %> </div> </div> <%= render 'admin/education/programs/show/roles', roles: @roles %> @@ -148,6 +152,9 @@ <% content_for :action_bar_left do %> <%= destroy_link @program %> + <%= link_to t('static'), + static_admin_education_program_path(@program), + class: button_classes('btn-light') if current_user.server_admin? %> <% end %> <% content_for :action_bar_right do %> diff --git a/app/views/admin/education/programs/static.html.erb b/app/views/admin/education/programs/static.html.erb index 9f0f1443fd7633ae09c94557e9adda8528a8e304..c2a634a0df433d939115eaec9189c48e60542487 100644 --- a/app/views/admin/education/programs/static.html.erb +++ b/app/views/admin/education/programs/static.html.erb @@ -10,6 +10,8 @@ administrator_involvements = @about.involvements_through_roles title: > <%= @about.name %> url: <%= @website.special_page(:education_programs).path %><%= @about.path %> +registration_url: > + <%= @about.registration_url %> description: > <%= prepare_text_for_static @about.description %> presentation: > diff --git a/config/locales/education/en.yml b/config/locales/education/en.yml index e931202a98f599a3a311af1648d254dfdb094578..7bd383dfe0ad0c348f1664d48c37ed8aa84d6a21 100644 --- a/config/locales/education/en.yml +++ b/config/locales/education/en.yml @@ -59,6 +59,7 @@ en: pricing: Tarifs published: Published? registration: Modalités et délais d’accès + registration_url: Registration link (URL) roles: Roles schools: Schools with this formation short_name: Short name diff --git a/config/locales/education/fr.yml b/config/locales/education/fr.yml index 21cb53f3c241ddb7d4ac192cbc96664ca39372eb..4eb9c8d94edce64edd615ac6544fd646103f6f06 100644 --- a/config/locales/education/fr.yml +++ b/config/locales/education/fr.yml @@ -59,6 +59,7 @@ fr: pricing: Tarifs published: Publiée ? registration: Modalités et délais d’accès + registration_url: Lien d'inscription (URL) roles: Rôles schools: Écoles proposant cette formation short_name: Nom abrégé diff --git a/config/routes/admin/education.rb b/config/routes/admin/education.rb index acac8d244692957fc6a9cf4d645c3ae66e928e55..39576a5edf1e34553da0ebc7dad858e01fcd1738 100644 --- a/config/routes/admin/education.rb +++ b/config/routes/admin/education.rb @@ -31,6 +31,7 @@ namespace :education do member do get :children get :preview + get :static end end resources :academic_years diff --git a/db/migrate/20220727075720_add_registration_url_to_education_program.rb b/db/migrate/20220727075720_add_registration_url_to_education_program.rb new file mode 100644 index 0000000000000000000000000000000000000000..f8bb644a96154e559ba47a1f80f52b397245cfb8 --- /dev/null +++ b/db/migrate/20220727075720_add_registration_url_to_education_program.rb @@ -0,0 +1,5 @@ +class AddRegistrationUrlToEducationProgram < ActiveRecord::Migration[6.1] + def change + add_column :education_programs, :registration_url, :string + end +end diff --git a/db/schema.rb b/db/schema.rb index 5bf91459823f0ccd00ef1d950ca51d75d29662c2..5c8796c4a5ed371b4a1c0dcf596fcafd0a78d012 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2022_07_22_103657) do +ActiveRecord::Schema.define(version: 2022_07_27_075720) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" @@ -469,6 +469,7 @@ ActiveRecord::Schema.define(version: 2022_07_22_103657) do t.string "short_name" t.boolean "initial" t.boolean "apprenticeship" + t.string "registration_url" t.index ["diploma_id"], name: "index_education_programs_on_diploma_id" t.index ["parent_id"], name: "index_education_programs_on_parent_id" t.index ["university_id"], name: "index_education_programs_on_university_id"