Skip to content
Snippets Groups Projects
Unverified Commit 8a0cceb3 authored by Sébastien Gaya's avatar Sébastien Gaya
Browse files

fix

parent 13e275ef
No related branches found
No related tags found
No related merge requests found
......@@ -33,7 +33,11 @@ class Communication::Block < ApplicationRecord
IMAGE_MAX_SIZE = 5.megabytes
FILE_MAX_SIZE = 100.megabytes
belongs_to :about, polymorphic: true, touch: true
belongs_to :about, polymorphic: true
# We do not use the :touch option of the belongs_to association
# because we do not want to touch the about when destroying the block.
after_save :touch_about
# Used to purge images when unattaching them
# template_blobs would be a better name, because there are files
......@@ -154,4 +158,8 @@ class Communication::Block < ApplicationRecord
def attach_template_blobs
# self.template_images = template.active_storage_blobs
end
def touch_about
about.touch
end
end
class Communication::Website::Configs::Base < Communication::Website
def self.polymorphic_name
raise NotImplementedError
end
def git_path(website)
raise NotImplementedError
end
def template_static
raise NotImplementedError
end
def dependencies
[]
end
def references
[]
end
end
\ No newline at end of file
......@@ -33,7 +33,7 @@
# fk_rails_2b6d929310 (default_language_id => languages.id)
# fk_rails_bb6a496c08 (university_id => universities.id)
#
class Communication::Website::Configs::DefaultLanguages < Communication::Website
class Communication::Website::Configs::DefaultLanguages < Communication::Website::Configs::Base
def self.polymorphic_name
'Communication::Website::Configs::DefaultLanguages'
......
......@@ -33,7 +33,7 @@
# fk_rails_2b6d929310 (default_language_id => languages.id)
# fk_rails_bb6a496c08 (university_id => universities.id)
#
class Communication::Website::Configs::DefaultPermalinks < Communication::Website
class Communication::Website::Configs::DefaultPermalinks < Communication::Website::Configs::Base
def self.polymorphic_name
'Communication::Website::Configs::DefaultPermalinks'
......
......@@ -33,7 +33,7 @@
# fk_rails_2b6d929310 (default_language_id => languages.id)
# fk_rails_bb6a496c08 (university_id => universities.id)
#
class Communication::Website::Configs::DevelopmentConfig < Communication::Website
class Communication::Website::Configs::DevelopmentConfig < Communication::Website::Configs::Base
def self.polymorphic_name
'Communication::Website::Configs::DevelopmentConfig'
......
......@@ -33,7 +33,7 @@
# fk_rails_2b6d929310 (default_language_id => languages.id)
# fk_rails_bb6a496c08 (university_id => universities.id)
#
class Communication::Website::Configs::ProductionConfig < Communication::Website
class Communication::Website::Configs::ProductionConfig < Communication::Website::Configs::Base
def self.polymorphic_name
'Communication::Website::Configs::ProductionConfig'
......
......@@ -124,14 +124,18 @@ class Communication::Website::ConnectionTest < ActiveSupport::TestCase
end
def test_connecting_and_disconnecting_indirect_to_website_directly
# En connectant l'école au site, on crée une connexion pour ses 2 objets ainsi que les dépendances de l'école :
# Ses formations (default_program) et ses diplômes (default_diploma) : donc 3 connexions au total
assert_difference -> { Communication::Website::Connection.count } => 3 do
# 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 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
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 } => -3 do
assert_difference -> { Communication::Website::Connection.count } => -7 do
website_with_github.update(about: nil)
end
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment