From 59954e6e8d483ea683cb4b00c2080109b8410157 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxence=20A=C3=AFci?= Date: Wed, 10 May 2023 01:56:41 +0200 Subject: [PATCH] Static site generation (#1048) --- app/controllers/matches_controller.rb | 4 ++-- .../partners/campaigns_controller.rb | 2 +- .../vaccination_centers_controller.rb | 2 +- app/controllers/partners_controller.rb | 2 +- app/controllers/users_controller.rb | 2 +- app/jobs/notify_matches_by_sms_job.rb | 2 +- app/jobs/run_campaign_job.rb | 2 +- app/jobs/send_alerts_for_slot_job.rb | 2 +- app/jobs/send_match_email_job.rb | 2 +- app/jobs/send_match_sms_job.rb | 2 +- app/jobs/send_slot_alert_email_job.rb | 2 +- app/jobs/send_slot_alert_follow_up_job.rb | 2 +- app/jobs/send_slot_alerts_for_users_job.rb | 2 +- app/jobs/send_slot_alerts_job.rb | 2 +- app/mailers/user_mailer.rb | 2 +- app/views/devise/sessions/new.html.erb | 2 +- app/views/layouts/_navbar.html.erb | 4 +++- app/views/layouts/admin_application.html.erb | 2 +- app/views/layouts/application.html.erb | 2 +- app/views/pages/landing_page_pro.html.erb | 6 +++--- app/views/pages/mentions_legales.html.erb | 4 ++-- app/views/pages/robots.erb | 5 +++++ app/views/partners/campaigns/new.html.erb | 2 +- app/views/partners/sessions/new.html.erb | 2 +- .../vaccination_centers/index.html.erb | 4 ++-- .../vaccination_centers/show.html.erb | 2 +- app/views/users/_form.html.erb | 2 +- app/views/users/new.html.erb | 18 ++++++++-------- config/routes.rb | 6 +++--- db/frozen_records/static_pages.yml | 8 ++++++- db/schema.rb | 21 +++++++++++++++++++ doc/static_site.md | 4 ++++ 32 files changed, 82 insertions(+), 44 deletions(-) create mode 100644 doc/static_site.md diff --git a/app/controllers/matches_controller.rb b/app/controllers/matches_controller.rb index a9c945261..af0a8c0f8 100644 --- a/app/controllers/matches_controller.rb +++ b/app/controllers/matches_controller.rb @@ -12,7 +12,7 @@ def show end def destroy - if Flipper.enabled?(:pause_service) + if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] flash.now[:error] = "Le service est en pause. Le refus et la prise de rendez-vous sont désactivés." return render action: :show end @@ -21,7 +21,7 @@ def destroy end def update - if Flipper.enabled?(:pause_service) + if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] flash.now[:error] = "Le service est en pause. La prise de rendez-vous est désactivée." return end diff --git a/app/controllers/partners/campaigns_controller.rb b/app/controllers/partners/campaigns_controller.rb index 62a4baa9c..2a68f78b5 100644 --- a/app/controllers/partners/campaigns_controller.rb +++ b/app/controllers/partners/campaigns_controller.rb @@ -21,7 +21,7 @@ def new end def create - if Flipper.enabled?(:pause_service) + if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] return render json: {errors: ["Le service est en pause. La création de campagne est désactivée."]}, status: 400 end @campaign = @vaccination_center.campaigns.build(create_params) diff --git a/app/controllers/partners/vaccination_centers_controller.rb b/app/controllers/partners/vaccination_centers_controller.rb index 3d196a100..200a37551 100644 --- a/app/controllers/partners/vaccination_centers_controller.rb +++ b/app/controllers/partners/vaccination_centers_controller.rb @@ -22,7 +22,7 @@ def new def create @vaccination_center = VaccinationCenter.new(vaccination_center_params) - if Flipper.enabled?(:pause_service) + if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] flash.now[:error] = "Le service est en pause. La création de lieux de vaccination est désactivée." return render action: :new, status: :unprocessable_entity end diff --git a/app/controllers/partners_controller.rb b/app/controllers/partners_controller.rb index 77e74572a..927ea031f 100644 --- a/app/controllers/partners_controller.rb +++ b/app/controllers/partners_controller.rb @@ -44,7 +44,7 @@ def update def create @partner = Partner.new(partner_params) - if Flipper.enabled?(:pause_service) + if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] flash.now[:error] = "Le service est en pause. La création de compte est désactivée." return render action: :new, status: :unprocessable_entity end diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb index ff353c5ef..5d73b2a7a 100644 --- a/app/controllers/users_controller.rb +++ b/app/controllers/users_controller.rb @@ -57,7 +57,7 @@ def create @user.ensure_lat_lon # fallback in case lat/lon are not returning from client @user.statement_accepted_at = Time.zone.now if @user.statement @user.toc_accepted_at = Time.zone.now if @user.toc - if Flipper.enabled?(:pause_service) + if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] flash.now[:error] = "Le service est en pause. La création de compte est désactivée." return render action: :new, status: :unprocessable_entity end diff --git a/app/jobs/notify_matches_by_sms_job.rb b/app/jobs/notify_matches_by_sms_job.rb index 986f62e8e..4422e3563 100644 --- a/app/jobs/notify_matches_by_sms_job.rb +++ b/app/jobs/notify_matches_by_sms_job.rb @@ -6,7 +6,7 @@ class NotifyMatchesBySmsJob < ApplicationJob def perform(campaign_id) Rails.logger.info("Run NotifyMatchesBySmsJob for campaign_id #{campaign_id}") campaign = Campaign.find(campaign_id) - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] return unless campaign.running? return if campaign.ends_at > LEAD_TIME.from_now # do not send any SMS X minutes before campaign ends return if campaign.sms_budget_remaining <= 0 diff --git a/app/jobs/run_campaign_job.rb b/app/jobs/run_campaign_job.rb index 0a227bb69..17cd7075c 100644 --- a/app/jobs/run_campaign_job.rb +++ b/app/jobs/run_campaign_job.rb @@ -13,7 +13,7 @@ class RunCampaignJob < ApplicationJob def perform(campaign_id) Rails.logger.info("Run RunCampaignJob for campaign_id #{campaign_id}") @campaign = Campaign.find(campaign_id) - return @campaign.canceled! if Flipper.enabled?(:pause_service) + return @campaign.canceled! if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] return unless @campaign.running? return @campaign.completed! if @campaign.remaining_doses <= 0 return @campaign.completed! if Time.now.utc >= @campaign.ends_at diff --git a/app/jobs/send_alerts_for_slot_job.rb b/app/jobs/send_alerts_for_slot_job.rb index d24ef7f64..5bc18ecfb 100644 --- a/app/jobs/send_alerts_for_slot_job.rb +++ b/app/jobs/send_alerts_for_slot_job.rb @@ -2,7 +2,7 @@ class SendAlertsForSlotJob < ApplicationJob queue_as :default def perform(params) - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] return unless params[:slot_id] slot = VmdSlot.find(params[:slot_id]) slot.send_alerts(params[:user_alerting_intensity]) diff --git a/app/jobs/send_match_email_job.rb b/app/jobs/send_match_email_job.rb index eefde8a08..839343f7f 100644 --- a/app/jobs/send_match_email_job.rb +++ b/app/jobs/send_match_email_job.rb @@ -4,7 +4,7 @@ class SendMatchEmailJob < ApplicationJob def perform(match_id) match = Match.find(match_id) - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] return if match.mail_sent_at.present? || match.expired? || match.refused? return if match.user.nil? diff --git a/app/jobs/send_match_sms_job.rb b/app/jobs/send_match_sms_job.rb index 467f9c3f9..b1a817527 100644 --- a/app/jobs/send_match_sms_job.rb +++ b/app/jobs/send_match_sms_job.rb @@ -4,7 +4,7 @@ class SendMatchSmsJob < ApplicationJob def perform(match_id) match = Match.find(match_id) - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] return unless match.sms_notification_needed? diff --git a/app/jobs/send_slot_alert_email_job.rb b/app/jobs/send_slot_alert_email_job.rb index 167a3f8a5..195067252 100644 --- a/app/jobs/send_slot_alert_email_job.rb +++ b/app/jobs/send_slot_alert_email_job.rb @@ -2,7 +2,7 @@ class SendSlotAlertEmailJob < ApplicationJob queue_as :mailers def perform(alert_id) - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] alert = SlotAlert.find(alert_id) return if alert.user.nil? return if alert.user.anonymized_at? diff --git a/app/jobs/send_slot_alert_follow_up_job.rb b/app/jobs/send_slot_alert_follow_up_job.rb index b95a476e5..297864f7c 100644 --- a/app/jobs/send_slot_alert_follow_up_job.rb +++ b/app/jobs/send_slot_alert_follow_up_job.rb @@ -2,7 +2,7 @@ class SendSlotAlertFollowUpJob < ApplicationJob queue_as :mailers def perform(alert_id) - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] alert = SlotAlert.find(alert_id) return unless alert.sent_at diff --git a/app/jobs/send_slot_alerts_for_users_job.rb b/app/jobs/send_slot_alerts_for_users_job.rb index fc637658d..cf6dc435f 100644 --- a/app/jobs/send_slot_alerts_for_users_job.rb +++ b/app/jobs/send_slot_alerts_for_users_job.rb @@ -2,7 +2,7 @@ class SendSlotAlertsForUsersJob < ApplicationJob queue_as :default def perform - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] User.active.where(alerting_intensity: 3).find_each do |user| slot = VmdSlot diff --git a/app/jobs/send_slot_alerts_job.rb b/app/jobs/send_slot_alerts_job.rb index 239eaa70a..223a007e0 100644 --- a/app/jobs/send_slot_alerts_job.rb +++ b/app/jobs/send_slot_alerts_job.rb @@ -3,7 +3,7 @@ class SendSlotAlertsJob < ApplicationJob def perform(params) Rails.logger.info("[SendSlotAlertsJob] with params=#{@params}") - return if Flipper.enabled?(:pause_service) + return if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] return unless params[:days] SlotAlertService.new(params[:days], params[:threshold], diff --git a/app/mailers/user_mailer.rb b/app/mailers/user_mailer.rb index d9c0b3d89..f4905ef19 100644 --- a/app/mailers/user_mailer.rb +++ b/app/mailers/user_mailer.rb @@ -22,7 +22,7 @@ def send_inactive_user_anonymization_notice return if user_email.blank? - if Flipper.enabled?(:pause_service) + if Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] mail( to: user_email, subject: "Nous avons supprimé votre compte Covidliste", diff --git a/app/views/devise/sessions/new.html.erb b/app/views/devise/sessions/new.html.erb index 95ca14b22..e665d3dde 100644 --- a/app/views/devise/sessions/new.html.erb +++ b/app/views/devise/sessions/new.html.erb @@ -43,7 +43,7 @@

<% end %> - <% if controller_name == "sessions" and not Flipper.enabled?(:pause_service) %> + <% if controller_name == "sessions" and not Flipper.enabled?(:pause_service) or ENV["STATIC_SITE_GEN"] %>

<%= link_to "S’inscrire en tant que volontaire", users_path %>

diff --git a/app/views/layouts/_navbar.html.erb b/app/views/layouts/_navbar.html.erb index 0612dc2d6..e1034ea6e 100644 --- a/app/views/layouts/_navbar.html.erb +++ b/app/views/layouts/_navbar.html.erb @@ -16,9 +16,11 @@ - <% else %> + <% elsif !ENV["STATIC_SITE_GEN"] %>
  • "> <%= link_to "", class: "nav-link dropdown-toggle btn btn-primary font-weight-bold#{@page_pro ? " text-white" : ""}", id: "dropdown11", "aria-expanded": "false", "aria-haspopup": "true", "data-toggle": "dropdown" do %> Se connecter diff --git a/app/views/layouts/admin_application.html.erb b/app/views/layouts/admin_application.html.erb index 47414e34b..6bd3dfb58 100644 --- a/app/views/layouts/admin_application.html.erb +++ b/app/views/layouts/admin_application.html.erb @@ -14,7 +14,7 @@