refactor(message): badges à corriger/en attente/corrigé when related to a correction
This commit is contained in:
parent
52c8553576
commit
7f871728c7
7 changed files with 48 additions and 2 deletions
|
@ -8,6 +8,13 @@ class Dossiers::MessageComponent < ApplicationComponent
|
||||||
|
|
||||||
attr_reader :commentaire, :connected_user, :messagerie_seen_at
|
attr_reader :commentaire, :connected_user, :messagerie_seen_at
|
||||||
|
|
||||||
|
def correction_badge
|
||||||
|
return if commentaire.dossier_correction.nil?
|
||||||
|
return helpers.correction_resolved_badge if commentaire.dossier_correction.resolved?
|
||||||
|
|
||||||
|
helpers.pending_correction_badge(connected_user.is_a?(Instructeur) ? :for_instructeur : :for_user)
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
def show_reply_button?
|
def show_reply_button?
|
||||||
|
|
|
@ -6,8 +6,9 @@
|
||||||
= commentaire_issuer
|
= commentaire_issuer
|
||||||
- if commentaire_from_guest?
|
- if commentaire_from_guest?
|
||||||
%span.fr-text--xs.fr-text-mention--grey.font-weight-normal= t('.guest')
|
%span.fr-text--xs.fr-text-mention--grey.font-weight-normal= t('.guest')
|
||||||
- if commentaire.flagged_pending_correction?
|
|
||||||
= helpers.pending_correction_badge(connected_user.is_a?(Instructeur) ? :for_instructeur : :for_user)
|
= correction_badge
|
||||||
|
|
||||||
%span.date{ class: ["fr-text--xs", "fr-text-mention--grey", "font-weight-normal", highlight_if_unseen_class], data: scroll_to_target }
|
%span.date{ class: ["fr-text--xs", "fr-text-mention--grey", "font-weight-normal", highlight_if_unseen_class], data: scroll_to_target }
|
||||||
= commentaire_date
|
= commentaire_date
|
||||||
.rich-text
|
.rich-text
|
||||||
|
|
|
@ -98,6 +98,10 @@ module DossierHelper
|
||||||
tag.span(Dossier.human_attribute_name("pending_correction.#{for_profile}"), class: ['fr-badge fr-badge--sm fr-badge--warning super', html_class], role: 'status')
|
tag.span(Dossier.human_attribute_name("pending_correction.#{for_profile}"), class: ['fr-badge fr-badge--sm fr-badge--warning super', html_class], role: 'status')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def correction_resolved_badge
|
||||||
|
tag.span(Dossier.human_attribute_name("pending_correction.resolved"), class: ['fr-badge fr-badge--sm fr-badge--success super'], role: 'status')
|
||||||
|
end
|
||||||
|
|
||||||
def demandeur_dossier(dossier)
|
def demandeur_dossier(dossier)
|
||||||
if dossier.procedure.for_individual?
|
if dossier.procedure.for_individual?
|
||||||
"#{dossier&.individual&.nom} #{dossier&.individual&.prenom}"
|
"#{dossier&.individual&.nom} #{dossier&.individual&.prenom}"
|
||||||
|
|
|
@ -16,4 +16,8 @@ class DossierCorrection < ApplicationRecord
|
||||||
validates_associated :commentaire
|
validates_associated :commentaire
|
||||||
|
|
||||||
scope :pending, -> { where(resolved_at: nil) }
|
scope :pending, -> { where(resolved_at: nil) }
|
||||||
|
|
||||||
|
def resolved?
|
||||||
|
resolved_at.present?
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -18,6 +18,7 @@ en:
|
||||||
pending_correction:
|
pending_correction:
|
||||||
for_instructeur: "pending"
|
for_instructeur: "pending"
|
||||||
for_user: "to be corrected"
|
for_user: "to be corrected"
|
||||||
|
resolved: corrected
|
||||||
traitement:
|
traitement:
|
||||||
state: "State"
|
state: "State"
|
||||||
traitement/state:
|
traitement/state:
|
||||||
|
|
|
@ -22,6 +22,7 @@ fr:
|
||||||
pending_correction:
|
pending_correction:
|
||||||
for_instructeur: "en attente"
|
for_instructeur: "en attente"
|
||||||
for_user: "à corriger"
|
for_user: "à corriger"
|
||||||
|
resolved: corrigé
|
||||||
traitement:
|
traitement:
|
||||||
state: "État"
|
state: "État"
|
||||||
traitement/state:
|
traitement/state:
|
||||||
|
|
|
@ -144,4 +144,32 @@ RSpec.describe Dossiers::MessageComponent, type: :component do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#correction_badge' do
|
||||||
|
let(:resolved_at) { nil }
|
||||||
|
|
||||||
|
before do
|
||||||
|
create(:dossier_correction, commentaire:, dossier:, resolved_at:)
|
||||||
|
end
|
||||||
|
|
||||||
|
it 'returns a badge à corriger' do
|
||||||
|
expect(subject).to have_text('à corriger')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'connected as instructeur' do
|
||||||
|
let(:connected_user) { create(:instructeur) }
|
||||||
|
|
||||||
|
it 'returns a badge en attente' do
|
||||||
|
expect(subject).to have_text('en attente')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when the correction is resolved' do
|
||||||
|
let(:resolved_at) { 1.minute.ago }
|
||||||
|
|
||||||
|
it 'returns a badge corrigé' do
|
||||||
|
expect(subject).to have_text("corrigé")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue