From c72eedbada4f0a190912a329794d911730ebc101 Mon Sep 17 00:00:00 2001 From: Arnaud Levy <contact@arnaudlevy.com> Date: Tue, 17 Aug 2021 15:40:23 +0200 Subject: [PATCH] refactor in 4 domains --- .../administration/application_controller.rb | 6 ++ .../qualiopi/criterions_controller.rb | 6 +- .../qualiopi/indicators_controller.rb | 6 +- .../communication/application_controller.rb | 6 ++ .../communication/websites_controller.rb | 56 +++++++++++++++++ .../admin/education/application_controller.rb | 6 ++ .../education/programs_controller.rb | 12 ++-- .../education/application_controller.rb | 6 -- .../education/dashboard_controller.rb | 5 -- .../websites/application_controller.rb | 6 -- .../features/websites/dashboard_controller.rb | 5 -- .../features/websites/sites_controller.rb | 56 ----------------- .../admin/research/application_controller.rb | 2 +- .../application_controller/with_context.rb | 4 +- .../communication/websites_controller.rb | 11 ++++ .../education/programs_controller.rb | 2 +- .../features/websites/sites_controller.rb | 11 ---- .../websites.rb => administration.rb} | 4 +- .../education => administration}/qualiopi.rb | 4 +- .../qualiopi/criterion.rb | 2 +- .../qualiopi/indicator.rb | 2 +- app/models/communication.rb | 8 +++ .../site.rb => communication/website.rb} | 2 +- app/models/{features => }/education.rb | 4 +- .../{features => }/education/program.rb | 2 +- app/models/feature.rb | 8 --- app/models/university.rb | 3 +- app/models/university/with_communication.rb | 7 +++ app/models/university/with_education.rb | 7 +++ app/models/university/with_features.rb | 11 ---- .../qualiopi/criterions/index.html.erb | 2 +- .../qualiopi/criterions/show.html.erb | 0 .../evaluations/_criterion_1.html.erb | 6 +- .../qualiopi/indicators/index.html.erb | 8 +-- .../qualiopi/indicators/show.html.erb | 8 ++- .../websites}/_form.html.erb | 2 +- .../websites}/_site.json.jbuilder | 0 .../communication/websites/edit.html.erb | 3 + .../communication/websites/index.html.erb | 27 +++++++++ .../websites}/index.json.jbuilder | 0 .../admin/communication/websites/new.html.erb | 3 + .../communication/websites/show.html.erb | 9 +++ .../websites}/show.json.jbuilder | 0 .../education/programs/_form.html.erb | 0 .../education/programs/_program.json.jbuilder | 0 .../education/programs/edit.html.erb | 0 .../education/programs/index.html.erb | 8 +-- .../education/programs/index.json.jbuilder | 0 .../education/programs/new.html.erb | 0 .../education/programs/show.html.erb | 0 .../education/programs/show.json.jbuilder | 0 .../education/dashboard/index.html.erb | 1 - .../websites/dashboard/index.html.erb | 1 - .../features/websites/sites/edit.html.erb | 3 - .../features/websites/sites/index.html.erb | 27 --------- .../features/websites/sites/new.html.erb | 3 - .../features/websites/sites/show.html.erb | 9 --- config/admin_navigation.rb | 10 ++-- config/locales/administration/fr.yml | 27 +++++++++ config/locales/communication/fr.yml | 13 ++++ .../locales/{features => }/education/fr.yml | 31 ++-------- config/locales/features/websites/fr.yml | 13 ---- .../locales/research/{journal.yml => fr.yml} | 3 + config/routes.rb | 16 ++--- config/routes/admin.rb | 18 ++---- .../education.rb => administration.rb} | 4 +- config/routes/admin/communication.rb | 3 + config/routes/admin/education.rb | 3 + config/routes/admin/features/websites.rb | 4 -- config/routes/admin/research.rb | 6 ++ config/routes/administration.rb | 3 + config/routes/communication.rb | 4 ++ config/routes/{features => }/education.rb | 0 config/routes/features/websites.rb | 4 -- config/routes/research.rb | 6 ++ .../20210817125119_refactor_features.rb | 8 +++ db/schema.rb | 60 +++++++++---------- db/seeds.rb | 8 +-- test/fixtures/research/journal/articles.yml | 1 - 79 files changed, 325 insertions(+), 310 deletions(-) create mode 100644 app/controllers/admin/administration/application_controller.rb rename app/controllers/admin/{features/education => administration}/qualiopi/criterions_controller.rb (51%) rename app/controllers/admin/{features/education => administration}/qualiopi/indicators_controller.rb (59%) create mode 100644 app/controllers/admin/communication/application_controller.rb create mode 100644 app/controllers/admin/communication/websites_controller.rb create mode 100644 app/controllers/admin/education/application_controller.rb rename app/controllers/admin/{features => }/education/programs_controller.rb (65%) delete mode 100644 app/controllers/admin/features/education/application_controller.rb delete mode 100644 app/controllers/admin/features/education/dashboard_controller.rb delete mode 100644 app/controllers/admin/features/websites/application_controller.rb delete mode 100644 app/controllers/admin/features/websites/dashboard_controller.rb delete mode 100644 app/controllers/admin/features/websites/sites_controller.rb create mode 100644 app/controllers/communication/websites_controller.rb rename app/controllers/{features => }/education/programs_controller.rb (70%) delete mode 100644 app/controllers/features/websites/sites_controller.rb rename app/models/{features/websites.rb => administration.rb} (66%) rename app/models/{features/education => administration}/qualiopi.rb (58%) rename app/models/{features/education => administration}/qualiopi/criterion.rb (86%) rename app/models/{features/education => administration}/qualiopi/indicator.rb (91%) create mode 100644 app/models/communication.rb rename app/models/{features/websites/site.rb => communication/website.rb} (96%) rename app/models/{features => }/education.rb (66%) rename app/models/{features => }/education/program.rb (94%) delete mode 100644 app/models/feature.rb create mode 100644 app/models/university/with_communication.rb create mode 100644 app/models/university/with_education.rb delete mode 100644 app/models/university/with_features.rb rename app/views/admin/{features/education => administration}/qualiopi/criterions/index.html.erb (86%) rename app/views/admin/{features/education => administration}/qualiopi/criterions/show.html.erb (100%) rename app/views/admin/{features/education => administration}/qualiopi/evaluations/_criterion_1.html.erb (78%) rename app/views/admin/{features/education => administration}/qualiopi/indicators/index.html.erb (54%) rename app/views/admin/{features/education => administration}/qualiopi/indicators/show.html.erb (61%) rename app/views/admin/{features/websites/sites => communication/websites}/_form.html.erb (83%) rename app/views/admin/{features/websites/sites => communication/websites}/_site.json.jbuilder (100%) create mode 100644 app/views/admin/communication/websites/edit.html.erb create mode 100644 app/views/admin/communication/websites/index.html.erb rename app/views/admin/{features/websites/sites => communication/websites}/index.json.jbuilder (100%) create mode 100644 app/views/admin/communication/websites/new.html.erb create mode 100644 app/views/admin/communication/websites/show.html.erb rename app/views/admin/{features/websites/sites => communication/websites}/show.json.jbuilder (100%) rename app/views/admin/{features => }/education/programs/_form.html.erb (100%) rename app/views/admin/{features => }/education/programs/_program.json.jbuilder (100%) rename app/views/admin/{features => }/education/programs/edit.html.erb (100%) rename app/views/admin/{features => }/education/programs/index.html.erb (59%) rename app/views/admin/{features => }/education/programs/index.json.jbuilder (100%) rename app/views/admin/{features => }/education/programs/new.html.erb (100%) rename app/views/admin/{features => }/education/programs/show.html.erb (100%) rename app/views/admin/{features => }/education/programs/show.json.jbuilder (100%) delete mode 100644 app/views/admin/features/education/dashboard/index.html.erb delete mode 100644 app/views/admin/features/websites/dashboard/index.html.erb delete mode 100644 app/views/admin/features/websites/sites/edit.html.erb delete mode 100644 app/views/admin/features/websites/sites/index.html.erb delete mode 100644 app/views/admin/features/websites/sites/new.html.erb delete mode 100644 app/views/admin/features/websites/sites/show.html.erb create mode 100644 config/locales/administration/fr.yml create mode 100644 config/locales/communication/fr.yml rename config/locales/{features => }/education/fr.yml (72%) delete mode 100644 config/locales/features/websites/fr.yml rename config/locales/research/{journal.yml => fr.yml} (86%) rename config/routes/admin/{features/education.rb => administration.rb} (56%) create mode 100644 config/routes/admin/communication.rb create mode 100644 config/routes/admin/education.rb delete mode 100644 config/routes/admin/features/websites.rb create mode 100644 config/routes/admin/research.rb create mode 100644 config/routes/administration.rb create mode 100644 config/routes/communication.rb rename config/routes/{features => }/education.rb (100%) delete mode 100644 config/routes/features/websites.rb create mode 100644 config/routes/research.rb create mode 100644 db/migrate/20210817125119_refactor_features.rb diff --git a/app/controllers/admin/administration/application_controller.rb b/app/controllers/admin/administration/application_controller.rb new file mode 100644 index 000000000..34ecbb945 --- /dev/null +++ b/app/controllers/admin/administration/application_controller.rb @@ -0,0 +1,6 @@ +class Admin::Administration::ApplicationController < Admin::ApplicationController + def breadcrumb + super + add_breadcrumb Administration.model_name.human + end +end diff --git a/app/controllers/admin/features/education/qualiopi/criterions_controller.rb b/app/controllers/admin/administration/qualiopi/criterions_controller.rb similarity index 51% rename from app/controllers/admin/features/education/qualiopi/criterions_controller.rb rename to app/controllers/admin/administration/qualiopi/criterions_controller.rb index 36d3ce93d..35b237125 100644 --- a/app/controllers/admin/features/education/qualiopi/criterions_controller.rb +++ b/app/controllers/admin/administration/qualiopi/criterions_controller.rb @@ -1,5 +1,5 @@ -class Admin::Features::Education::Qualiopi::CriterionsController < Admin::Features::Education::ApplicationController - load_and_authorize_resource class: Features::Education::Qualiopi::Criterion +class Admin::Administration::Qualiopi::CriterionsController < Admin::Administration::ApplicationController + load_and_authorize_resource class: Administration::Qualiopi::Criterion def index breadcrumb @@ -13,7 +13,7 @@ class Admin::Features::Education::Qualiopi::CriterionsController < Admin::Featur def breadcrumb super - add_breadcrumb Features::Education::Qualiopi.model_name.human, admin_features_education_qualiopi_criterions_path + add_breadcrumb Administration::Qualiopi.model_name.human, admin_administration_qualiopi_criterions_path if @criterion add_breadcrumb @criterion, [:admin, @criterion] end diff --git a/app/controllers/admin/features/education/qualiopi/indicators_controller.rb b/app/controllers/admin/administration/qualiopi/indicators_controller.rb similarity index 59% rename from app/controllers/admin/features/education/qualiopi/indicators_controller.rb rename to app/controllers/admin/administration/qualiopi/indicators_controller.rb index 3a023d562..4527aec57 100644 --- a/app/controllers/admin/features/education/qualiopi/indicators_controller.rb +++ b/app/controllers/admin/administration/qualiopi/indicators_controller.rb @@ -1,5 +1,5 @@ -class Admin::Features::Education::Qualiopi::IndicatorsController < Admin::Features::Education::ApplicationController - load_and_authorize_resource class: Features::Education::Qualiopi::Indicator +class Admin::Administration::Qualiopi::IndicatorsController < Admin::Administration::ApplicationController + load_and_authorize_resource class: Administration::Qualiopi::Indicator def index breadcrumb @@ -13,7 +13,7 @@ class Admin::Features::Education::Qualiopi::IndicatorsController < Admin::Featur def breadcrumb super - add_breadcrumb Features::Education::Qualiopi.model_name.human(count: 2), admin_features_education_qualiopi_criterions_path + add_breadcrumb Administration::Qualiopi.model_name.human(count: 2), admin_administration_qualiopi_criterions_path if @indicator add_breadcrumb @indicator.criterion, [:admin, @indicator.criterion] add_breadcrumb @indicator, [:admin, @indicator] diff --git a/app/controllers/admin/communication/application_controller.rb b/app/controllers/admin/communication/application_controller.rb new file mode 100644 index 000000000..f9e5ff572 --- /dev/null +++ b/app/controllers/admin/communication/application_controller.rb @@ -0,0 +1,6 @@ +class Admin::Communication::ApplicationController < Admin::ApplicationController + def breadcrumb + super + add_breadcrumb Communication.model_name.human + end +end diff --git a/app/controllers/admin/communication/websites_controller.rb b/app/controllers/admin/communication/websites_controller.rb new file mode 100644 index 000000000..f8e4754c3 --- /dev/null +++ b/app/controllers/admin/communication/websites_controller.rb @@ -0,0 +1,56 @@ +class Admin::Communication::WebsitesController < Admin::Communication::ApplicationController + load_and_authorize_resource class: Communication::Website + + def index + @websites = current_university.communication_websites + breadcrumb + end + + def show + breadcrumb + end + + def new + breadcrumb + end + + def edit + breadcrumb + end + + def create + @website.university = current_university + if @website.save + redirect_to [:admin, @website], notice: "Site was successfully created." + else + breadcrumb + render :new, status: :unprocessable_entity + end + end + + def update + if @website.update(website_params) + redirect_to [:admin, @website], notice: "Site was successfully updated." + else + breadcrumb + render :edit, status: :unprocessable_entity + end + end + + def destroy + @website.destroy + redirect_to admin_communication_websites_url, notice: "Site was successfully destroyed." + end + + protected + + def breadcrumb + super + add_breadcrumb Communication::Website.model_name.human(count: 2), admin_communication_websites_path + breadcrumb_for @website + end + + def website_params + params.require(:communication_website).permit(:name, :domain) + end +end diff --git a/app/controllers/admin/education/application_controller.rb b/app/controllers/admin/education/application_controller.rb new file mode 100644 index 000000000..86e30db90 --- /dev/null +++ b/app/controllers/admin/education/application_controller.rb @@ -0,0 +1,6 @@ +class Admin::Education::ApplicationController < Admin::ApplicationController + def breadcrumb + super + add_breadcrumb Education.model_name.human + end +end diff --git a/app/controllers/admin/features/education/programs_controller.rb b/app/controllers/admin/education/programs_controller.rb similarity index 65% rename from app/controllers/admin/features/education/programs_controller.rb rename to app/controllers/admin/education/programs_controller.rb index d376d83b4..8518639e4 100644 --- a/app/controllers/admin/features/education/programs_controller.rb +++ b/app/controllers/admin/education/programs_controller.rb @@ -1,8 +1,8 @@ -class Admin::Features::Education::ProgramsController < Admin::Features::Education::ApplicationController - load_and_authorize_resource class: Features::Education::Program +class Admin::Education::ProgramsController < Admin::Education::ApplicationController + load_and_authorize_resource class: Education::Program def index - @programs = current_university.features_education_programs + @programs = current_university.education_programs breadcrumb end @@ -38,19 +38,19 @@ class Admin::Features::Education::ProgramsController < Admin::Features::Educatio def destroy @program.destroy - redirect_to admin_features_education_programs_url, notice: "Program was successfully destroyed." + redirect_to admin_education_programs_url, notice: "Program was successfully destroyed." end protected def breadcrumb super - add_breadcrumb Features::Education::Program.model_name.human(count: 2), admin_features_education_programs_path + add_breadcrumb Education::Program.model_name.human(count: 2), admin_education_programs_path breadcrumb_for @program end def program_params - params.require(:features_education_program) + params.require(:education_program) .permit(:name, :level, :capacity, :ects, :continuing, :prerequisites, :objectives, :duration, :registration, :pedagogy, :evaluation, :accessibility, :pricing, :contacts) diff --git a/app/controllers/admin/features/education/application_controller.rb b/app/controllers/admin/features/education/application_controller.rb deleted file mode 100644 index 20fee4e63..000000000 --- a/app/controllers/admin/features/education/application_controller.rb +++ /dev/null @@ -1,6 +0,0 @@ -class Admin::Features::Education::ApplicationController < Admin::ApplicationController - def breadcrumb - super - add_breadcrumb 'Enseignement' - end -end diff --git a/app/controllers/admin/features/education/dashboard_controller.rb b/app/controllers/admin/features/education/dashboard_controller.rb deleted file mode 100644 index 072f60f72..000000000 --- a/app/controllers/admin/features/education/dashboard_controller.rb +++ /dev/null @@ -1,5 +0,0 @@ -class Admin::Features::Education::DashboardController < Admin::Features::Education::ApplicationController - def index - breadcrumb - end -end diff --git a/app/controllers/admin/features/websites/application_controller.rb b/app/controllers/admin/features/websites/application_controller.rb deleted file mode 100644 index ad323abb9..000000000 --- a/app/controllers/admin/features/websites/application_controller.rb +++ /dev/null @@ -1,6 +0,0 @@ -class Admin::Features::Websites::ApplicationController < Admin::ApplicationController - def breadcrumb - super - add_breadcrumb Features::Websites.model_name.human, :admin_features_websites_dashboard_path - end -end diff --git a/app/controllers/admin/features/websites/dashboard_controller.rb b/app/controllers/admin/features/websites/dashboard_controller.rb deleted file mode 100644 index 88ada28a5..000000000 --- a/app/controllers/admin/features/websites/dashboard_controller.rb +++ /dev/null @@ -1,5 +0,0 @@ -class Admin::Features::Websites::DashboardController < Admin::Features::Websites::ApplicationController - def index - breadcrumb - end -end diff --git a/app/controllers/admin/features/websites/sites_controller.rb b/app/controllers/admin/features/websites/sites_controller.rb deleted file mode 100644 index 5aac8fd87..000000000 --- a/app/controllers/admin/features/websites/sites_controller.rb +++ /dev/null @@ -1,56 +0,0 @@ -class Admin::Features::Websites::SitesController < Admin::Features::Websites::ApplicationController - load_and_authorize_resource class: Features::Websites::Site - - def index - @sites = current_university.features_websites_sites - breadcrumb - end - - def show - breadcrumb - end - - def new - breadcrumb - end - - def edit - breadcrumb - end - - def create - @site.university = current_university - if @site.save - redirect_to [:admin, @site], notice: "Site was successfully created." - else - breadcrumb - render :new, status: :unprocessable_entity - end - end - - def update - if @site.update(site_params) - redirect_to [:admin, @site], notice: "Site was successfully updated." - else - breadcrumb - render :edit, status: :unprocessable_entity - end - end - - def destroy - @site.destroy - redirect_to admin_features_websites_sites_url, notice: "Site was successfully destroyed." - end - - protected - - def breadcrumb - super - add_breadcrumb Features::Websites::Site.model_name.human(count: 2), admin_features_websites_sites_path - breadcrumb_for @site - end - - def site_params - params.require(:features_websites_site).permit(:name, :domain) - end -end diff --git a/app/controllers/admin/research/application_controller.rb b/app/controllers/admin/research/application_controller.rb index 3d6ceb0fb..9ef7b8861 100644 --- a/app/controllers/admin/research/application_controller.rb +++ b/app/controllers/admin/research/application_controller.rb @@ -4,6 +4,6 @@ class Admin::Research::ApplicationController < Admin::ApplicationController def breadcrumb super - add_breadcrumb 'Recherche' + add_breadcrumb Research.model_name.human end end diff --git a/app/controllers/application_controller/with_context.rb b/app/controllers/application_controller/with_context.rb index 34f202700..73688317f 100644 --- a/app/controllers/application_controller/with_context.rb +++ b/app/controllers/application_controller/with_context.rb @@ -10,7 +10,7 @@ module ApplicationController::WithContext helper_method :current_university def current_website - @current_website ||= Features::Websites::Site.with_host(request.host) + @current_website ||= Communication::Website.with_host(request.host) end helper_method :current_website @@ -20,7 +20,7 @@ module ApplicationController::WithContext helper_method :is_university? def is_website? - @is_website ||= !Features::Websites::Site.with_host(request.host).nil? + @is_website ||= !Communication::Website.with_host(request.host).nil? end helper_method :is_website? diff --git a/app/controllers/communication/websites_controller.rb b/app/controllers/communication/websites_controller.rb new file mode 100644 index 000000000..b5507814a --- /dev/null +++ b/app/controllers/communication/websites_controller.rb @@ -0,0 +1,11 @@ +class Communication::WebsitesController < ApplicationController + def index + @sites = current_university.communication_websites + add_breadcrumb 'Sites', :communication_websites_path + end + + def show + @site = current_university.communication_websites.find(params[id]) + add_breadcrumb @site + end +end diff --git a/app/controllers/features/education/programs_controller.rb b/app/controllers/education/programs_controller.rb similarity index 70% rename from app/controllers/features/education/programs_controller.rb rename to app/controllers/education/programs_controller.rb index aaa2bb4fa..03dfb5d6e 100644 --- a/app/controllers/features/education/programs_controller.rb +++ b/app/controllers/education/programs_controller.rb @@ -1,4 +1,4 @@ -class Features::Education::ProgramsController < ApplicationController +class Education::ProgramsController < ApplicationController load_and_authorize_resource add_breadcrumb 'Programmes', :features_education_programs_path diff --git a/app/controllers/features/websites/sites_controller.rb b/app/controllers/features/websites/sites_controller.rb deleted file mode 100644 index 9b40c2839..000000000 --- a/app/controllers/features/websites/sites_controller.rb +++ /dev/null @@ -1,11 +0,0 @@ -class Features::Websites::SitesController < ApplicationController - def index - @sites = current_university.features_websites_sites - add_breadcrumb 'Sites', :features_websites_sites_path - end - - def show - @site = current_university.features_websites_sites.find(params[id]) - add_breadcrumb @site - end -end diff --git a/app/models/features/websites.rb b/app/models/administration.rb similarity index 66% rename from app/models/features/websites.rb rename to app/models/administration.rb index 9c3fd0289..2be8b6a2e 100644 --- a/app/models/features/websites.rb +++ b/app/models/administration.rb @@ -1,8 +1,8 @@ -module Features::Websites +module Administration extend ActiveModel::Naming extend ActiveModel::Translation def self.table_name_prefix - 'features_websites_' + 'administration_' end end diff --git a/app/models/features/education/qualiopi.rb b/app/models/administration/qualiopi.rb similarity index 58% rename from app/models/features/education/qualiopi.rb rename to app/models/administration/qualiopi.rb index 9a4458c55..0a41ae697 100644 --- a/app/models/features/education/qualiopi.rb +++ b/app/models/administration/qualiopi.rb @@ -1,8 +1,8 @@ -module Features::Education::Qualiopi +module Administration::Qualiopi extend ActiveModel::Naming extend ActiveModel::Translation def self.table_name_prefix - 'features_education_qualiopi_' + 'administration_qualiopi_' end end diff --git a/app/models/features/education/qualiopi/criterion.rb b/app/models/administration/qualiopi/criterion.rb similarity index 86% rename from app/models/features/education/qualiopi/criterion.rb rename to app/models/administration/qualiopi/criterion.rb index d4d2c8307..ea4d9c4e6 100644 --- a/app/models/features/education/qualiopi/criterion.rb +++ b/app/models/administration/qualiopi/criterion.rb @@ -9,7 +9,7 @@ # created_at :datetime not null # updated_at :datetime not null # -class Features::Education::Qualiopi::Criterion < ApplicationRecord +class Administration::Qualiopi::Criterion < ApplicationRecord has_many :indicators, dependent: :destroy validates :number, uniqueness: true diff --git a/app/models/features/education/qualiopi/indicator.rb b/app/models/administration/qualiopi/indicator.rb similarity index 91% rename from app/models/features/education/qualiopi/indicator.rb rename to app/models/administration/qualiopi/indicator.rb index ec78f46ed..9d4aa7776 100644 --- a/app/models/features/education/qualiopi/indicator.rb +++ b/app/models/administration/qualiopi/indicator.rb @@ -22,7 +22,7 @@ # # fk_rails_... (criterion_id => features_education_qualiopi_criterions.id) # -class Features::Education::Qualiopi::Indicator < ApplicationRecord +class Administration::Qualiopi::Indicator < ApplicationRecord belongs_to :criterion validates :number, uniqueness: true diff --git a/app/models/communication.rb b/app/models/communication.rb new file mode 100644 index 000000000..a0de83569 --- /dev/null +++ b/app/models/communication.rb @@ -0,0 +1,8 @@ +module Communication + extend ActiveModel::Naming + extend ActiveModel::Translation + + def self.table_name_prefix + 'communication_' + end +end diff --git a/app/models/features/websites/site.rb b/app/models/communication/website.rb similarity index 96% rename from app/models/features/websites/site.rb rename to app/models/communication/website.rb index ff511170d..6d463a3ab 100644 --- a/app/models/features/websites/site.rb +++ b/app/models/communication/website.rb @@ -17,7 +17,7 @@ # # fk_rails_... (university_id => universities.id) # -class Features::Websites::Site < ApplicationRecord +class Communication::Website < ApplicationRecord belongs_to :university def self.with_host(host) diff --git a/app/models/features/education.rb b/app/models/education.rb similarity index 66% rename from app/models/features/education.rb rename to app/models/education.rb index 9fa93d2be..e344ff6a4 100644 --- a/app/models/features/education.rb +++ b/app/models/education.rb @@ -1,8 +1,8 @@ -module Features::Education +module Education extend ActiveModel::Naming extend ActiveModel::Translation def self.table_name_prefix - 'features_education_' + 'education_' end end diff --git a/app/models/features/education/program.rb b/app/models/education/program.rb similarity index 94% rename from app/models/features/education/program.rb rename to app/models/education/program.rb index b337ee29d..e4c8363fa 100644 --- a/app/models/features/education/program.rb +++ b/app/models/education/program.rb @@ -29,7 +29,7 @@ # # fk_rails_... (university_id => universities.id) # -class Features::Education::Program < ApplicationRecord +class Education::Program < ApplicationRecord belongs_to :university enum level: { diff --git a/app/models/feature.rb b/app/models/feature.rb deleted file mode 100644 index 9ccc95d43..000000000 --- a/app/models/feature.rb +++ /dev/null @@ -1,8 +0,0 @@ -class Feature - def self.all - [ - :education, - :websites - ] - end -end diff --git a/app/models/university.rb b/app/models/university.rb index 97da77b18..d954d77db 100644 --- a/app/models/university.rb +++ b/app/models/university.rb @@ -19,8 +19,9 @@ class University < ApplicationRecord include WithIdentifier include WithUsers - include WithFeatures + include WithEducation include WithResearch + include WithCommunication def to_s "#{name}" diff --git a/app/models/university/with_communication.rb b/app/models/university/with_communication.rb new file mode 100644 index 000000000..3278224b6 --- /dev/null +++ b/app/models/university/with_communication.rb @@ -0,0 +1,7 @@ +module University::WithCommunication + extend ActiveSupport::Concern + + included do + has_many :communication_websites, class_name: 'Communication::Website', dependent: :destroy + end +end diff --git a/app/models/university/with_education.rb b/app/models/university/with_education.rb new file mode 100644 index 000000000..35317c68f --- /dev/null +++ b/app/models/university/with_education.rb @@ -0,0 +1,7 @@ +module University::WithEducation + extend ActiveSupport::Concern + + included do + has_many :education_programs, class_name: 'Education::Program', dependent: :destroy + end +end diff --git a/app/models/university/with_features.rb b/app/models/university/with_features.rb deleted file mode 100644 index ebbd99ef4..000000000 --- a/app/models/university/with_features.rb +++ /dev/null @@ -1,11 +0,0 @@ -module University::WithFeatures - extend ActiveSupport::Concern - - included do - # Education - has_many :features_education_programs, class_name: 'Features::Education::Program', dependent: :destroy - - # Websites - has_many :features_websites_sites, class_name: 'Features::Websites::Site', dependent: :destroy - end -end diff --git a/app/views/admin/features/education/qualiopi/criterions/index.html.erb b/app/views/admin/administration/qualiopi/criterions/index.html.erb similarity index 86% rename from app/views/admin/features/education/qualiopi/criterions/index.html.erb rename to app/views/admin/administration/qualiopi/criterions/index.html.erb index fba3e6449..d64cd6e23 100644 --- a/app/views/admin/features/education/qualiopi/criterions/index.html.erb +++ b/app/views/admin/administration/qualiopi/criterions/index.html.erb @@ -1,4 +1,4 @@ -<% content_for :title, Features::Education::Qualiopi.model_name.human %> +<% content_for :title, Administration::Qualiopi.model_name.human %> <% @criterions.each do |criterion| %> <div class="row"> diff --git a/app/views/admin/features/education/qualiopi/criterions/show.html.erb b/app/views/admin/administration/qualiopi/criterions/show.html.erb similarity index 100% rename from app/views/admin/features/education/qualiopi/criterions/show.html.erb rename to app/views/admin/administration/qualiopi/criterions/show.html.erb diff --git a/app/views/admin/features/education/qualiopi/evaluations/_criterion_1.html.erb b/app/views/admin/administration/qualiopi/evaluations/_criterion_1.html.erb similarity index 78% rename from app/views/admin/features/education/qualiopi/evaluations/_criterion_1.html.erb rename to app/views/admin/administration/qualiopi/evaluations/_criterion_1.html.erb index f211ae47a..3dd779b26 100644 --- a/app/views/admin/features/education/qualiopi/evaluations/_criterion_1.html.erb +++ b/app/views/admin/administration/qualiopi/evaluations/_criterion_1.html.erb @@ -1,5 +1,5 @@ <% -@programs = current_university.features_education_programs +@programs = current_university.education_programs @checks = [ :prerequisites, :objectives, @@ -14,9 +14,9 @@ <table class="table mt-5"> <thead> <tr> - <th><%= Features::Education::Program.model_name.human %></th> + <th><%= Education::Program.model_name.human %></th> <% @checks.each do |check| %> - <th><%= Features::Education::Program.human_attribute_name(check) %></th> + <th><%= Education::Program.human_attribute_name(check) %></th> <% end %> </tr> </thead> diff --git a/app/views/admin/features/education/qualiopi/indicators/index.html.erb b/app/views/admin/administration/qualiopi/indicators/index.html.erb similarity index 54% rename from app/views/admin/features/education/qualiopi/indicators/index.html.erb rename to app/views/admin/administration/qualiopi/indicators/index.html.erb index 4f0315420..1d20856ba 100644 --- a/app/views/admin/features/education/qualiopi/indicators/index.html.erb +++ b/app/views/admin/administration/qualiopi/indicators/index.html.erb @@ -1,11 +1,11 @@ -<% content_for :title, Features::Education::Qualiopi::Indicator.model_name.human(count: 2) %> +<% content_for :title, Administration::Qualiopi::Indicator.model_name.human(count: 2) %> <table class="table"> <thead> <tr> - <th><%= Features::Education::Qualiopi::Indicator.human_attribute_name('criterion') %></th> - <th><%= Features::Education::Qualiopi::Indicator.human_attribute_name('number') %></th> - <th><%= Features::Education::Qualiopi::Indicator.human_attribute_name('name') %></th> + <th><%= Administration::Qualiopi::Indicator.human_attribute_name('criterion') %></th> + <th><%= Administration::Qualiopi::Indicator.human_attribute_name('number') %></th> + <th><%= Administration::Qualiopi::Indicator.human_attribute_name('name') %></th> <th></th> </tr> </thead> diff --git a/app/views/admin/features/education/qualiopi/indicators/show.html.erb b/app/views/admin/administration/qualiopi/indicators/show.html.erb similarity index 61% rename from app/views/admin/features/education/qualiopi/indicators/show.html.erb rename to app/views/admin/administration/qualiopi/indicators/show.html.erb index d3f8bea9d..4a149cb8e 100644 --- a/app/views/admin/features/education/qualiopi/indicators/show.html.erb +++ b/app/views/admin/administration/qualiopi/indicators/show.html.erb @@ -7,7 +7,7 @@ <div class="offset-md-1 col-md-6"> <% [:level_expected, :proof, :requirement, :non_conformity, :glossary].each do |attribute| %> <% - name = Features::Education::Qualiopi::Indicator.human_attribute_name(attribute) + name = Administration::Qualiopi::Indicator.human_attribute_name(attribute) value = @indicator.send attribute next if value.blank? %> @@ -17,7 +17,11 @@ </div> </div> +<% +partial = "admin/administration/qualiopi/evaluations/criterion_#{@indicator.number}" +# TODO render only if file exists, so we can have errors +%> <% begin %> -<%= render "admin/features/education/qualiopi/evaluations/criterion_#{@indicator.number}" %> +<%= render "admin/administration/qualiopi/evaluations/criterion_#{@indicator.number}" %> <% rescue %> <% end %> diff --git a/app/views/admin/features/websites/sites/_form.html.erb b/app/views/admin/communication/websites/_form.html.erb similarity index 83% rename from app/views/admin/features/websites/sites/_form.html.erb rename to app/views/admin/communication/websites/_form.html.erb index d1eab05e5..85bfdf3ac 100644 --- a/app/views/admin/features/websites/sites/_form.html.erb +++ b/app/views/admin/communication/websites/_form.html.erb @@ -1,4 +1,4 @@ -<%= simple_form_for [:admin, @site] do |f| %> +<%= simple_form_for [:admin, website] do |f| %> <div class="row"> <div class="col-md-6"> <%= f.input :name %> diff --git a/app/views/admin/features/websites/sites/_site.json.jbuilder b/app/views/admin/communication/websites/_site.json.jbuilder similarity index 100% rename from app/views/admin/features/websites/sites/_site.json.jbuilder rename to app/views/admin/communication/websites/_site.json.jbuilder diff --git a/app/views/admin/communication/websites/edit.html.erb b/app/views/admin/communication/websites/edit.html.erb new file mode 100644 index 000000000..feb8b0f5c --- /dev/null +++ b/app/views/admin/communication/websites/edit.html.erb @@ -0,0 +1,3 @@ +<% content_for :title, @website %> + +<%= render 'form', website: @website %> diff --git a/app/views/admin/communication/websites/index.html.erb b/app/views/admin/communication/websites/index.html.erb new file mode 100644 index 000000000..5c8a9d022 --- /dev/null +++ b/app/views/admin/communication/websites/index.html.erb @@ -0,0 +1,27 @@ +<% content_for :title, Communication::Website.model_name.human(count: 2) %> + +<table class="table"> + <thead> + <tr> + <th><%= Communication::Website.human_attribute_name('name') %></th> + <th><%= Communication::Website.human_attribute_name('domain') %></th> + <th></th> + </tr> + </thead> + <tbody> + <% @websites.each do |website| %> + <tr> + <td><%= link_to website, [:admin, website] %></td> + <td><%= link_to website.domain_url, website.domain_url, target: :_blank %></td> + <td class="text-end"> + <%= edit_link website %> + <%= destroy_link website %> + </td> + </tr> + <% end %> + </tbody> +</table> + +<% content_for :buttons do %> + <%= create_link Communication::Website %> +<% end %> diff --git a/app/views/admin/features/websites/sites/index.json.jbuilder b/app/views/admin/communication/websites/index.json.jbuilder similarity index 100% rename from app/views/admin/features/websites/sites/index.json.jbuilder rename to app/views/admin/communication/websites/index.json.jbuilder diff --git a/app/views/admin/communication/websites/new.html.erb b/app/views/admin/communication/websites/new.html.erb new file mode 100644 index 000000000..7af10208f --- /dev/null +++ b/app/views/admin/communication/websites/new.html.erb @@ -0,0 +1,3 @@ +<% content_for :title, Communication::Website.model_name.human %> + +<%= render 'form', website: @website %> diff --git a/app/views/admin/communication/websites/show.html.erb b/app/views/admin/communication/websites/show.html.erb new file mode 100644 index 000000000..6a007fa0b --- /dev/null +++ b/app/views/admin/communication/websites/show.html.erb @@ -0,0 +1,9 @@ +<% content_for :title, @website %> + +<p> + <%= link_to @website.domain_url, @website.domain_url, target: :_blank %> +</p> + +<% content_for :buttons do %> + <%= edit_link @website %> +<% end %> diff --git a/app/views/admin/features/websites/sites/show.json.jbuilder b/app/views/admin/communication/websites/show.json.jbuilder similarity index 100% rename from app/views/admin/features/websites/sites/show.json.jbuilder rename to app/views/admin/communication/websites/show.json.jbuilder diff --git a/app/views/admin/features/education/programs/_form.html.erb b/app/views/admin/education/programs/_form.html.erb similarity index 100% rename from app/views/admin/features/education/programs/_form.html.erb rename to app/views/admin/education/programs/_form.html.erb diff --git a/app/views/admin/features/education/programs/_program.json.jbuilder b/app/views/admin/education/programs/_program.json.jbuilder similarity index 100% rename from app/views/admin/features/education/programs/_program.json.jbuilder rename to app/views/admin/education/programs/_program.json.jbuilder diff --git a/app/views/admin/features/education/programs/edit.html.erb b/app/views/admin/education/programs/edit.html.erb similarity index 100% rename from app/views/admin/features/education/programs/edit.html.erb rename to app/views/admin/education/programs/edit.html.erb diff --git a/app/views/admin/features/education/programs/index.html.erb b/app/views/admin/education/programs/index.html.erb similarity index 59% rename from app/views/admin/features/education/programs/index.html.erb rename to app/views/admin/education/programs/index.html.erb index 15834d84e..f100e7bbc 100644 --- a/app/views/admin/features/education/programs/index.html.erb +++ b/app/views/admin/education/programs/index.html.erb @@ -1,10 +1,10 @@ -<% content_for :title, Features::Education::Program.model_name.human(count: 2) %> +<% content_for :title, Education::Program.model_name.human(count: 2) %> <table class="table"> <thead> <tr> - <th><%= Features::Education::Program.human_attribute_name('name') %></th> - <th><%= Features::Education::Program.human_attribute_name('level') %></th> + <th><%= Education::Program.human_attribute_name('name') %></th> + <th><%= Education::Program.human_attribute_name('level') %></th> <th></th> </tr> </thead> @@ -23,5 +23,5 @@ </table> <% content_for :buttons do %> - <%= create_link Features::Education::Program %> + <%= create_link Education::Program %> <% end %> diff --git a/app/views/admin/features/education/programs/index.json.jbuilder b/app/views/admin/education/programs/index.json.jbuilder similarity index 100% rename from app/views/admin/features/education/programs/index.json.jbuilder rename to app/views/admin/education/programs/index.json.jbuilder diff --git a/app/views/admin/features/education/programs/new.html.erb b/app/views/admin/education/programs/new.html.erb similarity index 100% rename from app/views/admin/features/education/programs/new.html.erb rename to app/views/admin/education/programs/new.html.erb diff --git a/app/views/admin/features/education/programs/show.html.erb b/app/views/admin/education/programs/show.html.erb similarity index 100% rename from app/views/admin/features/education/programs/show.html.erb rename to app/views/admin/education/programs/show.html.erb diff --git a/app/views/admin/features/education/programs/show.json.jbuilder b/app/views/admin/education/programs/show.json.jbuilder similarity index 100% rename from app/views/admin/features/education/programs/show.json.jbuilder rename to app/views/admin/education/programs/show.json.jbuilder diff --git a/app/views/admin/features/education/dashboard/index.html.erb b/app/views/admin/features/education/dashboard/index.html.erb deleted file mode 100644 index a8ca3d67c..000000000 --- a/app/views/admin/features/education/dashboard/index.html.erb +++ /dev/null @@ -1 +0,0 @@ -<% content_for :title, Features::Education.model_name.human %> diff --git a/app/views/admin/features/websites/dashboard/index.html.erb b/app/views/admin/features/websites/dashboard/index.html.erb deleted file mode 100644 index 7754fb66b..000000000 --- a/app/views/admin/features/websites/dashboard/index.html.erb +++ /dev/null @@ -1 +0,0 @@ -<% content_for :title, Features::Websites.model_name.human %> diff --git a/app/views/admin/features/websites/sites/edit.html.erb b/app/views/admin/features/websites/sites/edit.html.erb deleted file mode 100644 index 6af548559..000000000 --- a/app/views/admin/features/websites/sites/edit.html.erb +++ /dev/null @@ -1,3 +0,0 @@ -<% content_for :title, @site %> - -<%= render 'form', site: @site %> diff --git a/app/views/admin/features/websites/sites/index.html.erb b/app/views/admin/features/websites/sites/index.html.erb deleted file mode 100644 index 71b601807..000000000 --- a/app/views/admin/features/websites/sites/index.html.erb +++ /dev/null @@ -1,27 +0,0 @@ -<% content_for :title, Features::Websites::Site.model_name.human(count: 2) %> - -<table class="table"> - <thead> - <tr> - <th><%= Features::Websites::Site.human_attribute_name('name') %></th> - <th><%= Features::Websites::Site.human_attribute_name('domain') %></th> - <th></th> - </tr> - </thead> - <tbody> - <% @sites.each do |site| %> - <tr> - <td><%= link_to site, [:admin, site] %></td> - <td><%= link_to site.domain_url, site.domain_url, target: :_blank %></td> - <td class="text-end"> - <%= edit_link site %> - <%= destroy_link site %> - </td> - </tr> - <% end %> - </tbody> -</table> - -<% content_for :buttons do %> - <%= create_link Features::Websites::Site %> -<% end %> diff --git a/app/views/admin/features/websites/sites/new.html.erb b/app/views/admin/features/websites/sites/new.html.erb deleted file mode 100644 index 34e092077..000000000 --- a/app/views/admin/features/websites/sites/new.html.erb +++ /dev/null @@ -1,3 +0,0 @@ -<% content_for :title, Features::Websites::Site.model_name.human %> - -<%= render 'form', site: @site %> diff --git a/app/views/admin/features/websites/sites/show.html.erb b/app/views/admin/features/websites/sites/show.html.erb deleted file mode 100644 index 67c3fd786..000000000 --- a/app/views/admin/features/websites/sites/show.html.erb +++ /dev/null @@ -1,9 +0,0 @@ -<% content_for :title, @site %> - -<p> - <%= link_to @site.domain_url, @site.domain_url, target: :_blank %> -</p> - -<% content_for :buttons do %> - <%= edit_link @site %> -<% end %> diff --git a/config/admin_navigation.rb b/config/admin_navigation.rb index 8750b49a9..cad80b59e 100644 --- a/config/admin_navigation.rb +++ b/config/admin_navigation.rb @@ -6,21 +6,21 @@ SimpleNavigation::Configuration.run do |navigation| navigation.items do |primary| primary.item :dashboard, t('dashboard'), admin_root_path, { icon: 'tachometer-alt', highlights_on: /admin$/ } - primary.item :teaching, 'Enseignement', nil, { kind: :header } + primary.item :teaching, Education.model_name.human, nil, { kind: :header } primary.item :teaching, 'Enseignants', nil, { icon: 'user-graduate' } primary.item :teaching, 'Ecoles', nil, { icon: 'university' } - primary.item :education, 'Formations', admin_features_education_programs_path, { icon: 'graduation-cap' } + primary.item :education, Education::Program.model_name.human(count: 2), admin_education_programs_path, { icon: 'graduation-cap' } primary.item :teaching, 'Ressources éducatives', nil, { icon: 'laptop' } primary.item :teaching, 'Feedbacks', nil, { icon: 'comments' } - primary.item :teaching, 'Recherche', nil, { kind: :header } + primary.item :teaching, Research.model_name.human, nil, { kind: :header } primary.item :teaching, 'Chercheurs', nil, { icon: 'microscope' } primary.item :teaching, 'Laboratoires', nil, { icon: 'flask' } primary.item :teaching, 'Veille', nil, { icon: 'eye' } primary.item :journals, Research::Journal.model_name.human(count: 2), admin_research_journals_path, { icon: 'newspaper' } primary.item :teaching, 'Communication', nil, { kind: :header } - primary.item :websites, 'Sites Web', admin_features_websites_sites_path, { icon: 'sitemap' } + primary.item :websites, 'Sites Web', admin_communication_websites_path, { icon: 'sitemap' } primary.item :teaching, 'Lettres d\'information', nil, { icon: 'envelope' } primary.item :teaching, 'Alumni', nil, { icon: 'users' } @@ -29,6 +29,6 @@ SimpleNavigation::Configuration.run do |navigation| primary.item :settings, 'Campus', nil, { icon: 'map-marker-alt' } primary.item :settings, 'Admissions', nil, { icon: 'door-open' } primary.item :settings, 'Statistiques', nil, { icon: 'cog' } - primary.item :settings, 'Qualité', admin_features_education_qualiopi_criterions_path, { icon: 'tasks' } + primary.item :settings, 'Qualité', admin_administration_qualiopi_criterions_path, { icon: 'tasks' } end end diff --git a/config/locales/administration/fr.yml b/config/locales/administration/fr.yml new file mode 100644 index 000000000..e9d4fa0f9 --- /dev/null +++ b/config/locales/administration/fr.yml @@ -0,0 +1,27 @@ +fr: + activemodel: + models: + administration/qualiopi: Qualiopi + activerecord: + models: + administration/qualiopi/criterion: + one: Critère + other: Critères + administration/qualiopi/indicator: + one: Indicateur + other: Indicateurs + attributes: + administration/qualiopi/criterion: + number: Numéro + name: Nom + description: Description + administration/qualiopi/indicator: + number: Numéro + name: Nom + criterion: Critère + description: Description + level_expected: Niveau attendu + proof: Éléments de preuve + requirement: Obligations spécifiques + non_conformity: Non-conformité + glossary: Glossaire diff --git a/config/locales/communication/fr.yml b/config/locales/communication/fr.yml new file mode 100644 index 000000000..c9816c4c8 --- /dev/null +++ b/config/locales/communication/fr.yml @@ -0,0 +1,13 @@ +fr: + activemodel: + models: + communication: Communication + activerecord: + models: + communication/website: + one: Site Web + other: Sites Web + attributes: + communication/website: + name: Nom + domain: Domaine diff --git a/config/locales/features/education/fr.yml b/config/locales/education/fr.yml similarity index 72% rename from config/locales/features/education/fr.yml rename to config/locales/education/fr.yml index cbdd57736..ce89d9fb2 100644 --- a/config/locales/features/education/fr.yml +++ b/config/locales/education/fr.yml @@ -1,21 +1,14 @@ fr: activemodel: models: - features/education: Éducation - features/education/qualiopi: Qualiopi + education: Enseignement activerecord: models: - features/education/program: + education/program: one: Formation other: Formations - features/education/qualiopi/criterion: - one: Critère - other: Critères - features/education/qualiopi/indicator: - one: Indicateur - other: Indicateurs attributes: - features/education/program: + education/program: name: Nom level: Niveau capacity: Capacité @@ -30,29 +23,15 @@ fr: pedagogy: Méthodes mobilisées evaluation: Modalités d’évaluation accessibility: Accessibilité - features/education/qualiopi/criterion: - number: Numéro - name: Nom - description: Description - features/education/qualiopi/indicator: - number: Numéro - name: Nom - criterion: Critère - description: Description - level_expected: Niveau attendu - proof: Éléments de preuve - requirement: Obligations spécifiques - non_conformity: Non-conformité - glossary: Glossaire enums: - features/education/program: + education/program: level: bachelor: Licence / bachelor master: Master doctor: Doctorat simple_form: hints: - features/education/program: + education/program: capacity: Nombre de places disponibles par promotion ects: European Credits Transfer System prerequisites: Préalables nécessaires ou indispensables pour bénéficier d'une prestation déterminée. L'absence de prérequis doit être mentionnée. diff --git a/config/locales/features/websites/fr.yml b/config/locales/features/websites/fr.yml deleted file mode 100644 index fcc5f43fd..000000000 --- a/config/locales/features/websites/fr.yml +++ /dev/null @@ -1,13 +0,0 @@ -fr: - activemodel: - models: - features/websites: Sites Web - activerecord: - models: - features/websites/site: - one: Site - other: Sites - attributes: - features/websites/site: - name: Nom - domain: Domaine diff --git a/config/locales/research/journal.yml b/config/locales/research/fr.yml similarity index 86% rename from config/locales/research/journal.yml rename to config/locales/research/fr.yml index ddb8da436..7ebae8812 100644 --- a/config/locales/research/journal.yml +++ b/config/locales/research/fr.yml @@ -1,4 +1,7 @@ fr: + activemodel: + models: + research: Recherche activerecord: models: research/journal: diff --git a/config/routes.rb b/config/routes.rb index 3cd6babd3..64f30c95c 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,18 +7,10 @@ Rails.application.routes.draw do draw 'admin' draw 'server' - namespace :features, path: '' do - Feature.all.each do |feature| - draw "features/#{feature}" - end - end - - namespace :research do - resources :journals, only: [:index, :show] do - resources :volumes, only: [:index, :show], controller: 'journal/volumes' - resources :articles, only: [:index, :show], controller: 'journal/articles' - end - end + draw 'education' + draw 'research' + draw 'communication' + draw 'administration' root to: 'home#index' end diff --git a/config/routes/admin.rb b/config/routes/admin.rb index c8a258bab..ad026bc2a 100644 --- a/config/routes/admin.rb +++ b/config/routes/admin.rb @@ -1,18 +1,8 @@ namespace :admin do resources :users - - namespace :features, path: '' do - Feature.all.each do |feature| - draw "admin/features/#{feature}" - end - end - - namespace :research do - resources :journals do - resources :volumes, controller: 'journal/volumes' - resources :articles, controller: 'journal/articles' - end - end - + draw 'admin/education' + draw 'admin/research' + draw 'admin/communication' + draw 'admin/administration' root to: 'dashboard#index' end diff --git a/config/routes/admin/features/education.rb b/config/routes/admin/administration.rb similarity index 56% rename from config/routes/admin/features/education.rb rename to config/routes/admin/administration.rb index 5d3c859b4..f5b69fe50 100644 --- a/config/routes/admin/features/education.rb +++ b/config/routes/admin/administration.rb @@ -1,8 +1,6 @@ -namespace :education do - resources :programs +namespace :administration do namespace :qualiopi do resources :criterions, only: [:index, :show] resources :indicators, only: [:index, :show] end - get 'dashboard' => 'dashboard#index', as: :dashboard end diff --git a/config/routes/admin/communication.rb b/config/routes/admin/communication.rb new file mode 100644 index 000000000..2d2dfc63f --- /dev/null +++ b/config/routes/admin/communication.rb @@ -0,0 +1,3 @@ +namespace :communication do + resources :websites +end diff --git a/config/routes/admin/education.rb b/config/routes/admin/education.rb new file mode 100644 index 000000000..c6f58926f --- /dev/null +++ b/config/routes/admin/education.rb @@ -0,0 +1,3 @@ +namespace :education do + resources :programs +end diff --git a/config/routes/admin/features/websites.rb b/config/routes/admin/features/websites.rb deleted file mode 100644 index 9d10b6a89..000000000 --- a/config/routes/admin/features/websites.rb +++ /dev/null @@ -1,4 +0,0 @@ -namespace :websites do - resources :sites - get 'dashboard' => 'dashboard#index', as: :dashboard -end diff --git a/config/routes/admin/research.rb b/config/routes/admin/research.rb new file mode 100644 index 000000000..1bec5b3fc --- /dev/null +++ b/config/routes/admin/research.rb @@ -0,0 +1,6 @@ +namespace :research do + resources :journals do + resources :volumes, controller: 'journal/volumes' + resources :articles, controller: 'journal/articles' + end +end diff --git a/config/routes/administration.rb b/config/routes/administration.rb new file mode 100644 index 000000000..a7f66bc51 --- /dev/null +++ b/config/routes/administration.rb @@ -0,0 +1,3 @@ +namespace :administration do + +end diff --git a/config/routes/communication.rb b/config/routes/communication.rb new file mode 100644 index 000000000..8e4cafcbf --- /dev/null +++ b/config/routes/communication.rb @@ -0,0 +1,4 @@ +namespace :communication do + resources :websites + root to: 'websites#index' +end diff --git a/config/routes/features/education.rb b/config/routes/education.rb similarity index 100% rename from config/routes/features/education.rb rename to config/routes/education.rb diff --git a/config/routes/features/websites.rb b/config/routes/features/websites.rb deleted file mode 100644 index 361c6c8e9..000000000 --- a/config/routes/features/websites.rb +++ /dev/null @@ -1,4 +0,0 @@ -namespace :websites do - resources :sites - root to: 'sites#index' -end diff --git a/config/routes/research.rb b/config/routes/research.rb new file mode 100644 index 000000000..e7eb2815a --- /dev/null +++ b/config/routes/research.rb @@ -0,0 +1,6 @@ +namespace :research do + resources :journals, only: [:index, :show] do + resources :volumes, only: [:index, :show], controller: 'journal/volumes' + resources :articles, only: [:index, :show], controller: 'journal/articles' + end +end diff --git a/db/migrate/20210817125119_refactor_features.rb b/db/migrate/20210817125119_refactor_features.rb new file mode 100644 index 000000000..90f3993b4 --- /dev/null +++ b/db/migrate/20210817125119_refactor_features.rb @@ -0,0 +1,8 @@ +class RefactorFeatures < ActiveRecord::Migration[6.1] + def change + rename_table :features_websites_sites, :communication_websites + rename_table :features_education_programs, :education_programs + rename_table :features_education_qualiopi_criterions, :administration_qualiopi_criterions + rename_table :features_education_qualiopi_indicators, :administration_qualiopi_indicators + end +end diff --git a/db/schema.rb b/db/schema.rb index ae7f6577e..26acb79ac 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,34 +10,13 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_08_13_101246) do +ActiveRecord::Schema.define(version: 2021_08_17_125119) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" enable_extension "plpgsql" - create_table "features_education_programs", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| - t.uuid "university_id", null: false - t.string "name" - t.integer "level" - t.integer "capacity" - t.integer "ects" - t.boolean "continuing" - t.text "prerequisites" - t.text "objectives" - t.text "duration" - t.text "registration" - t.text "pedagogy" - t.text "evaluation" - t.text "accessibility" - t.text "pricing" - t.text "contacts" - t.datetime "created_at", precision: 6, null: false - t.datetime "updated_at", precision: 6, null: false - t.index ["university_id"], name: "index_features_education_programs_on_university_id" - end - - create_table "features_education_qualiopi_criterions", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + create_table "administration_qualiopi_criterions", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.integer "number" t.text "name" t.text "description" @@ -45,7 +24,7 @@ ActiveRecord::Schema.define(version: 2021_08_13_101246) do t.datetime "updated_at", precision: 6, null: false end - create_table "features_education_qualiopi_indicators", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + create_table "administration_qualiopi_indicators", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "criterion_id", null: false t.integer "number" t.text "name" @@ -56,16 +35,37 @@ ActiveRecord::Schema.define(version: 2021_08_13_101246) do t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false t.text "glossary" - t.index ["criterion_id"], name: "index_features_education_qualiopi_indicators_on_criterion_id" + t.index ["criterion_id"], name: "index_administration_qualiopi_indicators_on_criterion_id" end - create_table "features_websites_sites", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + create_table "communication_websites", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| t.uuid "university_id", null: false t.string "name" t.string "domain" t.datetime "created_at", precision: 6, null: false t.datetime "updated_at", precision: 6, null: false - t.index ["university_id"], name: "index_features_websites_sites_on_university_id" + t.index ["university_id"], name: "index_communication_websites_on_university_id" + end + + create_table "education_programs", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| + t.uuid "university_id", null: false + t.string "name" + t.integer "level" + t.integer "capacity" + t.integer "ects" + t.boolean "continuing" + t.text "prerequisites" + t.text "objectives" + t.text "duration" + t.text "registration" + t.text "pedagogy" + t.text "evaluation" + t.text "accessibility" + t.text "pricing" + t.text "contacts" + t.datetime "created_at", precision: 6, null: false + t.datetime "updated_at", precision: 6, null: false + t.index ["university_id"], name: "index_education_programs_on_university_id" end create_table "research_journal_articles", id: :uuid, default: -> { "gen_random_uuid()" }, force: :cascade do |t| @@ -146,9 +146,9 @@ ActiveRecord::Schema.define(version: 2021_08_13_101246) do t.index ["unlock_token"], name: "index_users_on_unlock_token", unique: true end - add_foreign_key "features_education_programs", "universities" - add_foreign_key "features_education_qualiopi_indicators", "features_education_qualiopi_criterions", column: "criterion_id" - add_foreign_key "features_websites_sites", "universities" + add_foreign_key "administration_qualiopi_indicators", "administration_qualiopi_criterions", column: "criterion_id" + add_foreign_key "communication_websites", "universities" + add_foreign_key "education_programs", "universities" add_foreign_key "research_journal_articles", "research_journal_volumes" add_foreign_key "research_journal_articles", "research_journals" add_foreign_key "research_journal_articles", "universities" diff --git a/db/seeds.rb b/db/seeds.rb index ffb6b74d3..5ba9d5bb9 100644 --- a/db/seeds.rb +++ b/db/seeds.rb @@ -1,7 +1,7 @@ University.create name: 'Osuny', identifier: 'osuny' -Features::Education::Qualiopi::Criterion.destroy_all -Features::Education::Qualiopi::Criterion.create [ +Administration::Qualiopi::Criterion.destroy_all +Administration::Qualiopi::Criterion.create [ { id: '0285619c-cfc8-4858-bef6-74adc0aac055', number: 1, @@ -39,8 +39,8 @@ Features::Education::Qualiopi::Criterion.create [ } ] -Features::Education::Qualiopi::Indicator.destroy_all -Features::Education::Qualiopi::Indicator.create [ +Administration::Qualiopi::Indicator.destroy_all +Administration::Qualiopi::Indicator.create [ { id: 'f5632d1a-09f1-4cd1-98d1-c6de4b7728d6', criterion_id: '0285619c-cfc8-4858-bef6-74adc0aac055', diff --git a/test/fixtures/research/journal/articles.yml b/test/fixtures/research/journal/articles.yml index 3c4bb6bd2..ded01b7ef 100644 --- a/test/fixtures/research/journal/articles.yml +++ b/test/fixtures/research/journal/articles.yml @@ -24,7 +24,6 @@ # fk_rails_... (research_journal_volume_id => research_journal_volumes.id) # fk_rails_... (university_id => universities.id) # -# Read about fixtures at https://api.rubyonrails.org/classes/ActiveRecord/FixtureSet.html one: title: MyString -- GitLab