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 55fd25040b2a5540fe405f1f8aafbf7b6ea2ea3b..1582e6949cc25d3f814c0430f368095161f8c1d7 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/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