Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[usager] Laisser un délai avant suppression des dossiers expirés #10488

Merged
merged 17 commits into from
Jul 25, 2024

Conversation

lisa-durand
Copy link
Contributor

@lisa-durand lisa-durand commented Jun 4, 2024

closes #10219

On ne supprime plus directement les dossiers après expiration mais on les met à la "corbeille" (supprimés récemments) - ils sont ainsi gardés une semaine de plus et cela permet

  • de les restaurer et d'étendre leur conservation si besoin
  • de les imprimer en pdf pour les dossiers terminés
Capture d’écran 2024-06-17 à 17 29 39 Capture d’écran 2024-06-17 à 17 44 49 Capture d’écran 2024-06-17 à 17 30 22

Copy link

codecov bot commented Jun 4, 2024

Codecov Report

Attention: Patch coverage is 97.10145% with 2 lines in your changes missing coverage. Please review.

Project coverage is 80.26%. Comparing base (3dd6a59) to head (4f7b0c9).
Report is 10 commits behind head on main.

Files Patch % Lines
app/models/dossier.rb 94.44% 2 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main   #10488      +/-   ##
==========================================
+ Coverage   80.23%   80.26%   +0.02%     
==========================================
  Files        1234     1236       +2     
  Lines       26274    26322      +48     
  Branches     4718     4728      +10     
==========================================
+ Hits        21082    21128      +46     
- Misses       5192     5194       +2     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@lisa-durand lisa-durand force-pushed the improve-mails-for-deleted-dossiers-ldu branch 5 times, most recently from d1742c4 to a163d1c Compare June 11, 2024 13:39
@@ -251,6 +251,11 @@ def submit_brouillon

def extend_conservation
dossier.extend_conservation(dossier.procedure.duree_conservation_dossiers_dans_ds.months)

if dossier.hidden_at.present?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hidden_at est une colonne legacy et devrai être supprimé

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Je crois que je vois pourquoi tu essaies de la réutiliser pour la suppression automatique, mais j'ai un peu peur qu'on ajoute encore un niveau de complexité avec maintenant trois flags... Je me demande si on ne peut pas s'en sortir avec deux. Et si non, si on ne devrait pas introduire une nouvelle machine à état sur le dossier.

@lisa-durand lisa-durand force-pushed the improve-mails-for-deleted-dossiers-ldu branch 6 times, most recently from c420227 to 10bef2b Compare June 17, 2024 15:39
@lisa-durand lisa-durand marked this pull request as ready for review June 17, 2024 15:46
@lisa-durand lisa-durand requested a review from tchak June 17, 2024 15:57
@lisa-durand lisa-durand force-pushed the improve-mails-for-deleted-dossiers-ldu branch from 10bef2b to 983a198 Compare June 25, 2024 10:17
Copy link
Member

@LeSim LeSim left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai l'impression qu'on ne peut pas se passer de l'ajout d'une colonne hidden_by_expired_at

@@ -129,32 +129,32 @@ def notify_en_construction_deletion_to_administration(dossier, to_email)
mail(to: to_email, subject: @subject)
end

def notify_deletion_to_administration(deleted_dossier, to_email)
def notify_deletion_to_administration(hidden_dossier, to_email)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

merci d'avoir renommé !


def has_expired?
return false if en_instruction?
expiration_notification_date < Time.zone.now && expiration_notification_date < Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks.ago
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai l'impression qu'on peut simplifier par

Suggested change
expiration_notification_date < Time.zone.now && expiration_notification_date < Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks.ago
expiration_notification_date < Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks.ago

@@ -394,10 +394,13 @@ fr:
expirant: Les dossiers n’expireront pas avant la période de conservation des données.
archived_dossier: "Le dossier sera conservé 1 mois supplémentaire"
delete_dossier: "Supprimer le dossier"
deleted_by_user: "Dossier supprimé par l’usager"
deleted_reason:
user_request: supprimé par l'usager
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

top

footer_en_construction:
one: "Si vous souhaitez conserver votre dossier plus longtemps, vous pouvez <b>prolonger sa durée de conservation</b> dans l’interface."
other: "Si vous souhaitez conserver vos dossiers plus longtemps, vous pouvez <b>prolonger leur durée de conservation</b> au cas par cas dans l’interface."
one: Depuis la page de votre dossier vous avez la possibilité de :<br>- prolonger la durée de conservation pour un délai de 6 mois<br>- contacter l'administration qui gère votre dossier via la messagerie
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

C'est pas forcément 6 mois si ? ca serait pas plutot un truc du genre :

Suggested change
one: Depuis la page de votre dossier vous avez la possibilité de :<br>- prolonger la durée de conservation pour un délai de 6 mois<br>- contacter l'administration qui gère votre dossier via la messagerie
one: Depuis la page de votre dossier vous avez la possibilité de :<br>- prolonger la durée de conservation pour un délai de %{procedure.duree_de_conservation_dans_ds} mois<br>- contacter l'administration qui gère votre dossier via la messagerie

@@ -640,7 +644,12 @@ def expiration_notification_date

def close_to_expiration?
return false if en_instruction?
expiration_notification_date < Time.zone.now
expiration_notification_date < Time.zone.now && expiration_notification_date > Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks.ago
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

proposition pour conserver la comparaison < plus facile a lire avec le plus petit a gauche

Suggested change
expiration_notification_date < Time.zone.now && expiration_notification_date > Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks.ago
expiration_notification_date < Time.zone.now && Expired::REMAINING_WEEKS_BEFORE_EXPIRATION.weeks.ago < expiration_notification_date

@@ -835,17 +836,24 @@ def author_is_administration(author)
author.is_a?(Instructeur) || author.is_a?(Administrateur) || author.is_a?(SuperAdmin)
end

def author_is_automatic(author)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
def author_is_automatic(author)
def automatic_author?(author)

elsif author_is_user(author) && can_be_deleted_by_user?
update(hidden_by_user_at: Time.zone.now, dossier_transfer_id: nil, hidden_by_reason: reason)
log_dossier_operation(author, :supprimer, self)
elsif author_is_automatic(author) && can_be_deleted_by_automatic?(reason)
update(hidden_by_administration_at: Time.zone.now, hidden_by_user_at: Time.zone.now, hidden_by_reason: reason)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

J'ai l'impression qu'il faudrait rajouter une colonne hidden_by_expired_at car la le code dit que le dossier est caché à la fois par l'administration et par l'utilisateur ce qui n'est pas vrai.

@@ -670,6 +679,10 @@ def extend_conservation(conservation_extension)
brouillon_close_to_expiration_notice_sent_at: nil,
en_construction_close_to_expiration_notice_sent_at: nil,
termine_close_to_expiration_notice_sent_at: nil)

if hidden_by_reason == 'expired'
update(hidden_by_administration_at: nil, hidden_by_user_at: nil, hidden_by_reason: nil)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Voir plus bas sur le hidden_by_expired_at

Suggested change
update(hidden_by_administration_at: nil, hidden_by_user_at: nil, hidden_by_reason: nil)
update(hidden_by_expired_at: nil, hidden_by_reason: nil)

un cas ou c'est nécessaire :

  • un utilisateur supprime sont dossier hidden_by_user_at: today
  • plus tard, le dossier est soft deleted car proche de l'expiration hidden_by_user_at = hidden_by_admin_at = later
  • l'administration veut finalement le conserver plus longtemps hidden_by_user_at = hidden_by_admin_at = nil
    => bug: le dossier réapparaît coté utilisateur

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

et est-ce que pour éviter ça, mais sans créer une nouvelle colonne ce qui ne semblait pas plaire @tchak
On pourrait faire qqchose comme

elsif author_is_automatic(author) && can_be_deleted_by_automatic?(reason)
   update(hidden_by_administration_at: Time.zone.now, hidden_by_user_at: hidden_by_user_at.presence || Time.zone.now, hidden_by_reason: reason)

et ici

if hidden_by_reason == 'expired'
      if hidden_by_user_at !=  hidden_by_administration_at
        update(hidden_by_administration_at: nil, hidden_by_reason: nil)
      else
        update(hidden_by_administration_at: nil, hidden_by_user_at: nil, hidden_by_reason: nil)
      end
 end

Ou c'est trop tordu ? 😅

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Alors ca me semble compliqué et vu que la logique est déjà dur à comprendre ca me fait un poil peur d'en rajouter une couche. @tchak un avis ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes je suis d'accord ! Après dans les discussions qu'on avait eu avec Paul, il y a un petit moment maintenant, il me semble qu'on avait relevé "le bug" dont tu parles et on s'etait posé la question à quel cas d'usage il repondait dans la vie réelle. Et si c'etait pas un edge case, "qui au pire" faisait réapparaître un dossier masqué… Mais je laisse répondre Paul pour pas avoir l'air de ne vouloir plus retoucher à cette PR 😅

@lisa-durand lisa-durand force-pushed the improve-mails-for-deleted-dossiers-ldu branch 11 times, most recently from 1ea883e to 5d67aea Compare July 18, 2024 08:32
app/models/dossier.rb Outdated Show resolved Hide resolved
app/models/dossier.rb Outdated Show resolved Hide resolved
@lisa-durand lisa-durand force-pushed the improve-mails-for-deleted-dossiers-ldu branch from 65afbab to 7da3e05 Compare July 24, 2024 15:08
@lisa-durand lisa-durand force-pushed the improve-mails-for-deleted-dossiers-ldu branch 3 times, most recently from 7750191 to 1d50953 Compare July 25, 2024 13:56
@lisa-durand lisa-durand force-pushed the improve-mails-for-deleted-dossiers-ldu branch from 1d50953 to 4f7b0c9 Compare July 25, 2024 14:55
@lisa-durand lisa-durand added this pull request to the merge queue Jul 25, 2024
@github-merge-queue github-merge-queue bot removed this pull request from the merge queue due to failed status checks Jul 25, 2024
@lisa-durand lisa-durand added this pull request to the merge queue Jul 25, 2024
Merged via the queue into main with commit e93ea35 Jul 25, 2024
19 checks passed
@lisa-durand lisa-durand deleted the improve-mails-for-deleted-dossiers-ldu branch July 25, 2024 15:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Améliorer emails et relances pour prévenir qu'un dossier en construction va expirer / être supprimé
3 participants