diff --git a/app/models/communication/block/template/program.rb b/app/models/communication/block/template/program.rb index f81d8d185e3ff7d41e0dd8ced61e610faeaf2bb7..e0a66bef0f8edfc9a4ac235e3d37889148677e69 100644 --- a/app/models/communication/block/template/program.rb +++ b/app/models/communication/block/template/program.rb @@ -10,4 +10,11 @@ class Communication::Block::Template::Program < Communication::Block::Template:: @selected_programs ||= elements.map { |element| element.program }.compact end + def allowed_for_about? + !website.nil? + end + + def available_programs + website.education_programs + end end diff --git a/app/models/education/diploma.rb b/app/models/education/diploma.rb index 682ac6406c359065c1b530d9baddedcefb42f22d..46999822137503b65350f3ebb3c2771d68ec073f 100644 --- a/app/models/education/diploma.rb +++ b/app/models/education/diploma.rb @@ -53,7 +53,11 @@ class Education::Diploma < ApplicationRecord end def dependencies - blocks + programs + blocks + end + + def references + programs end def to_s diff --git a/app/views/admin/communication/blocks/components/program/_edit.html.erb b/app/views/admin/communication/blocks/components/program/_edit.html.erb index efb38295f9a51c4d5954f67722d33dd25c3c4ec9..8f09ceb3a55c1a00acb3f806d93fbec465977399 100644 --- a/app/views/admin/communication/blocks/components/program/_edit.html.erb +++ b/app/views/admin/communication/blocks/components/program/_edit.html.erb @@ -1,5 +1,5 @@ <%# TODO: Traduire les formations %> -<% programs = current_university.programs.ordered %> +<% programs = @block.template.available_programs %> <% if label.present? %> <label class="form-label" :for="<%= dom_id.html_safe %>"> diff --git a/app/views/admin/communication/blocks/components/string/_edit.html.erb b/app/views/admin/communication/blocks/components/string/_edit.html.erb index 9dc947a2be0bce3ef6d64f9853a8924b1de8832b..6285fb65bc3a5122c0159ec7d238e4bb8107ee7c 100644 --- a/app/views/admin/communication/blocks/components/string/_edit.html.erb +++ b/app/views/admin/communication/blocks/components/string/_edit.html.erb @@ -3,7 +3,7 @@ <label class="form-label" aria-label="<%= label %>" :for="<%= dom_id.html_safe %>"> - <%= label%> + <%= label %> </label> <% end %> <input :id="<%= dom_id.html_safe %>" diff --git a/app/views/admin/communication/blocks/templates/partners/_edit.html.erb b/app/views/admin/communication/blocks/templates/partners/_edit.html.erb index 5296702906c8a3eb104455a4431da40a758aa3e7..a7c372a9be804939728676ff8a1fed700bc683ba 100644 --- a/app/views/admin/communication/blocks/templates/partners/_edit.html.erb +++ b/app/views/admin/communication/blocks/templates/partners/_edit.html.erb @@ -10,6 +10,7 @@ <%= block_component_edit block, :alphabetical %> </div> </div> +<%= block_component_add_element t('.add_partner') %> <draggable :list="data.elements" class="mb-3 <%= if_appstack 'list-group' %>" handle=".partnerHandle"> <div v-for="(element, index) in data.elements" class="draggable-item <%= if_appstack 'list-group-item' %>"> <div class="d-flex mb-n3"> @@ -42,4 +43,6 @@ </div> </div> </draggable> -<%= block_component_add_element block, t('.add_partner') %> +<div v-show="data.elements.length > 2"> + <%= block_component_add_element t('.add_partner') %> +</div> diff --git a/config/locales/communication/en.yml b/config/locales/communication/en.yml index 3c3c03fca78be80d4c77a5bc6ab810b7e135658b..60541c2c4ab8533af2570e2d5691366c70751aad 100644 --- a/config/locales/communication/en.yml +++ b/config/locales/communication/en.yml @@ -536,16 +536,17 @@ en: element: id: label: Organization - name: - label: Nom - placeholder: Enter organization's name - url: - label: Website - logo_label: Logo - placeholder: https:// - remove_logo: Remove logo placeholder: Choose organization unregistered: Unregistered organization + name: + label: Nom + placeholder: Enter organization's name + url: + label: Website + placeholder: https:// + logo: + label: Logo + remove_logo: Remove logo remove_partner: Remove organization with_link: label: With clickable link to each organization's page? diff --git a/config/locales/communication/fr.yml b/config/locales/communication/fr.yml index 5cda1ef34dfe43b192d81d46a030e8a8a3fd2757..bb205b1082f21972534888f87d41d7a6815bcb47 100644 --- a/config/locales/communication/fr.yml +++ b/config/locales/communication/fr.yml @@ -536,16 +536,17 @@ fr: element: id: label: Organisation - name: - label: Nom - placeholder: Entrer le nom du partenaire - url: - label: Site Web - logo_label: Logo - placeholder: https:// - remove_logo: Enlever le logo placeholder: Choisir l'organisation unregistered: Organisation non enregistrée + name: + label: Nom + placeholder: Entrer le nom du partenaire + url: + label: Site Web + placeholder: https:// + logo: + label: Logo + remove_logo: Enlever le logo remove_partner: Enlever le partenaire with_link: label: Avec des liens cliquables vers les pages des organisations? diff --git a/test/models/communication/website/connection_test.rb b/test/models/communication/website/connection_test.rb index 7a1a541720f6bf8cf2e265c1d2f9a3413c2e5cf2..2ffb98bd3c1f2155419222a061ea67251cf41ca0 100644 --- a/test/models/communication/website/connection_test.rb +++ b/test/models/communication/website/connection_test.rb @@ -127,15 +127,15 @@ class Communication::Website::ConnectionTest < ActiveSupport::TestCase # En connectant l'école au site, on crée une connexion pour : # L'école, avec ses formations et ses diplômes en cascade, donc 3 connexions avec direct_source = website # En cascade, le save du website va créer les pages de liste des formations et des diplômes, qui ont elles aussi leurs dépendances - # La page des diplômes aura en dépendance les diplômes (default_diploma) et leurs formations en cascade (default_program), donc 2 connexions avec direct_source = page diplômes + # La page des diplômes aura en dépendance les diplômes (default_diploma), donc 1 connexion avec direct_source = page diplômes # La page des formations aura en dépendance les formations (default_program) et leurs diplômes en cascade (default_diploma), donc 2 connexions avec direct_source = page formations - # Donc un total de 3 + 2 + 2 = 7 connexions - assert_difference -> { Communication::Website::Connection.count } => 7 do + # Donc un total de 3 + 1 + 2 = 6 connexions + assert_difference -> { Communication::Website::Connection.count } => 6 do website_with_github.update(about: default_school) end # En déconnectant l'école du site, on supprime les connexions créées précédemment - assert_difference -> { Communication::Website::Connection.count } => -7 do + assert_difference -> { Communication::Website::Connection.count } => -6 do website_with_github.update(about: nil) end end