Merci d'avoir confirmé ton groupe. Aucune autre action de ta part n'est nécessaire.
+ + +diff --git a/.deploy/Dockerfile b/.deploy/Dockerfile index c914bb70..9caa295d 100644 --- a/.deploy/Dockerfile +++ b/.deploy/Dockerfile @@ -58,6 +58,9 @@ WORKDIR /home/app/resj RUN bundle install RUN --mount=type=secret,id=master_key,uid=9999 RAILS_MASTER_KEY=$(cat /run/secrets/master_key) bundle exec rake assets:precompile +# run the cards update check daily +COPY --chmod=0755 cards-check.sh /etc/cron.daily/ + USER root # baseimage-docker's init process -CMD ["/sbin/my_init"] \ No newline at end of file +CMD ["/sbin/my_init"] diff --git a/.deploy/cards-check.sh b/.deploy/cards-check.sh new file mode 100644 index 00000000..263c335a --- /dev/null +++ b/.deploy/cards-check.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +# This script should be placed in /etc/cron.daily to check the cards status +# every day and send an email to the card's owner accordingly. + +set -e + +setuser app bundle exec rake cards_update:check \ No newline at end of file diff --git a/app/assets/stylesheets/pages/users/cards/edit.scss b/app/assets/stylesheets/pages/users/cards/edit.scss index 488a549a..6965e31a 100644 --- a/app/assets/stylesheets/pages/users/cards/edit.scss +++ b/app/assets/stylesheets/pages/users/cards/edit.scss @@ -5,6 +5,12 @@ padding: 0 $content-padding; margin: auto; + .standard-popup { + p { + padding: 5px 0; + } + } + section.top-container { .title { display: flex; diff --git a/app/controllers/users/cards_controller.rb b/app/controllers/users/cards_controller.rb index 9a349830..dfb9c27c 100644 --- a/app/controllers/users/cards_controller.rb +++ b/app/controllers/users/cards_controller.rb @@ -3,14 +3,19 @@ class Users::CardsController < ApplicationController layout "admin" def edit + @confirmed = params[:confirmed] == "true" @card = card end def update @card = card - @card.last_updated = Time.current - if @card.update(card_params) - redirect_to edit_users_card_path(@card), success: "Ton groupe a été mis à jour" + @card.assign_attributes(card_params) + was_outdated = !@card.maintained? + if @card.valid? + @card.last_updated = Time.current + @card.validity = :maintained + @card.save + redirect_to edit_users_card_path(@card, confirmed: was_outdated), success: "Ton groupe a été mis à jour" else render 'edit' end diff --git a/app/mailers/admin/card_mailer.rb b/app/mailers/admin/card_mailer.rb index ddf6e3b7..571d6000 100644 --- a/app/mailers/admin/card_mailer.rb +++ b/app/mailers/admin/card_mailer.rb @@ -5,4 +5,9 @@ def submit(card) mail(to: "nkcr.je@gmail.com", subject: "Un nouveau groupe a été créé") end + def deactivated(card) + @card = card + mail(to: "nkcr.je@gmail.com", subject: "Un groupe est désormais désactivé") + end + end diff --git a/app/mailers/card_mailer.rb b/app/mailers/card_mailer.rb index 8cab2543..a4b5c924 100644 --- a/app/mailers/card_mailer.rb +++ b/app/mailers/card_mailer.rb @@ -29,6 +29,14 @@ def offline(card, message) mail(to: card.user.email, subject: "Ton groupe sur Réseau Jeunesse n'est désormais plus visible !") end + # step indicates the number of reminder sent. 0 is the first "normal" request. + # After the 4th reminder the group is marked as "Deactivated". + def update_check(card, step) + @card = card + @step = step + mail(to: card.user.email, subject: "Vérifie ton groupe sur Réseau Jeunesse") + end + def migration(user) @user = user mail(to: user.email, subject: "Du nouveau sur Réseau Jeunesse") diff --git a/app/models/card.rb b/app/models/card.rb index 20a3a9a4..bf2c9e0c 100644 --- a/app/models/card.rb +++ b/app/models/card.rb @@ -9,6 +9,7 @@ class Card < ApplicationRecord enum card_type: [:youth, :adult, :activist, :organization, :network, :training] enum status: [:pending, :online, :incomplete, :change] + enum validity: [:maintained, :solicited, :disabled] belongs_to :location, optional: true # validation made manually according to the step belongs_to :user diff --git a/app/views/admin/card_mailer/deactivated.erb b/app/views/admin/card_mailer/deactivated.erb new file mode 100644 index 00000000..479ac777 --- /dev/null +++ b/app/views/admin/card_mailer/deactivated.erb @@ -0,0 +1,9 @@ +<% content_for :prehead, "Un groupe est désactivé sur Réseau Jeunesse" %> + +
... est désormais désactivé.
+ +<%= render "mailers/button_center" do %> + <%= link_to "Voir le groupe", edit_admin_card_url(@card), target: "_blank" %> +<% end %> \ No newline at end of file diff --git a/app/views/card_mailer/update_check.html.erb b/app/views/card_mailer/update_check.html.erb new file mode 100644 index 00000000..078cc11e --- /dev/null +++ b/app/views/card_mailer/update_check.html.erb @@ -0,0 +1,29 @@ +Voilà <%= time_ago_in_words(@card.last_updated) %> que ton groupe sur Réseau Jeunesse n'a pas été mis à jour. +<% if @step >= 4 %> +Ton groupe est maintenant désactivé, il faut impérativement le vérifier et/ou le mettre à jour. +<% end %> +
+ +Afin de garder des informations valides, nous te demandons de vérifier et mettre à jour si nécessaire les informations de ton groupe. +Cette étape est nécessaire pour garder ton groupe sur le site.
+ +<%= render "mailers/button_center" do %> + <%= link_to "Confirmer / Mettre à jour mon groupe", edit_users_card_url(@card, confirm:true), "_target"=>"_blank" %> +<% end %> + +Tu peux changer en tout temps les informations de ton groupe à partir de +<%= link_to "ton compte", profile_url, target: "_blank" %> sur le site. Tu recevras tous les 6 mois une invitation à contrôler les informations de ton groupe.
+ +<% if @step == 1 %> +Ceci est le premier rappel.
+<% elsif @step > 1 && @step <= 2 %> +Ceci est le <%= @step %>e rappel.
+<% elsif @step == 3 %> +Ceci est le <%= @step %>e rappel.
Attention: le groupe sera désactivé dans 2 semaines s'il n'est pas mis à jour.
Ceci est le <%= @step %>e rappel. Nous nous réservons le droit de supprimer ton groupe si aucune action n'est entreprise.
+<% end %> + +Tu peux en savoir plus sur notre politque de mise à jour des groupes via notre FAQ.
\ No newline at end of file diff --git a/app/views/pages/faq.html.erb b/app/views/pages/faq.html.erb index f2b41b30..601471b7 100644 --- a/app/views/pages/faq.html.erb +++ b/app/views/pages/faq.html.erb @@ -38,6 +38,22 @@ Les demandes pour devenir orateur sont traitées manuellement. Une fois la demande acceptée tu recevras un lien pour te créer un compte orateur. + ++ Il est essentiel que les groupes restent à jour. C'est pour ça que nous avons besoin de toi. +
++ Pour que les groupes restent à jour, chaque responsable de groupe reçoit tous les 6 mois une invitation à vérifier et mettre à jour si nécessaire son groupe. + Notre système vérifie tous les jours les groupes dont la dernière mise à jour remonte à 6 mois et notifie son responsable par email. Même si le groupe est à jour, + il est nécessaire, via la page d'édition du groupe, de cliquer sur le bouton "Sauvegarder et mettre à jour". +
++ Si aucune action n'est effectuée après le premier email, 4 rappels sont envoyés à 2 semaines d'interval chacun. À partir du 4e rappel le groupe est marqué comme "Désactivé" sur le site. Un email est envoyé + tous les deux mois en guise d’ultime invitation à mettre à jour son groupe. L'équipe se réserve ensuite le droit de supprimer définitivement le groupe. +
+Merci d'avoir confirmé ton groupe. Aucune autre action de ta part n'est nécessaire.
+ + +Merci de vérifier (et mettre à jour si nécessaire) les informations de ton groupe.
+Quand tu as fini, clique sur le bouton "Sauvegarder et mettre à jour", même si tu n'a fait aucun changement.
+ + +