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 @@
<% if !current_partner %>
+ <% if !ENV["STATIC_SITE_GEN"] %>
- ">
<%= link_to "Carte", carte_path, class: "nav-link" %>
+ <% end %>
- ">
<%= link_to "Foire aux questions", faq_path, class: "nav-link" %>
@@ -72,7 +74,7 @@
<%= link_to "Déconnexion", destroy_partner_session_path, method: :delete, class: "dropdown-item" %>
- <% 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 @@