highlight routing criteria label when updated

This commit is contained in:
Christophe Robillard 2020-02-26 22:17:55 +01:00
parent 60251013f7
commit 924702699f
6 changed files with 38 additions and 4 deletions

View file

@ -10,7 +10,7 @@ module DossierHelper
end
def highlight_if_unseen_class(seen_at, updated_at)
if seen_at&.<(updated_at)
if updated_at.present? && seen_at&.<(updated_at)
"highlighted"
end
end

View file

@ -301,7 +301,7 @@ class Dossier < ApplicationRecord
def assign_to_groupe_instructeur(groupe_instructeur, author = nil)
if groupe_instructeur.procedure == procedure && groupe_instructeur != self.groupe_instructeur
if update(groupe_instructeur: groupe_instructeur)
if update(groupe_instructeur: groupe_instructeur, groupe_instructeur_updated_at: Time.zone.now)
unfollow_stale_instructeurs
if author.present?

View file

@ -2,6 +2,9 @@
%tbody
- if dossier.procedure.routee?
%th= dossier.procedure.routing_criteria_name
%td= dossier.groupe_instructeur.label
%td
%td{ class: highlight_if_unseen_class(demande_seen_at, dossier.groupe_instructeur_updated_at) }= dossier.groupe_instructeur.label
%td.updated-at
%span{ class: highlight_if_unseen_class(demande_seen_at, dossier.groupe_instructeur_updated_at) }
modifié le
= try_format_datetime(dossier.updated_at)
= render partial: "shared/dossiers/champ_row", locals: { champs: champs, demande_seen_at: demande_seen_at, profile: profile, repetition: false }

View file

@ -0,0 +1,5 @@
class AddGroupeInstructeurUpdatedAtToDossiers < ActiveRecord::Migration[5.2]
def change
add_column :dossiers, :groupe_instructeur_updated_at, :timestamp
end
end

View file

@ -252,6 +252,7 @@ ActiveRecord::Schema.define(version: 2020_02_27_100001) do
t.datetime "brouillon_close_to_expiration_notice_sent_at"
t.index "to_tsvector('french'::regconfig, (search_terms || private_search_terms))", name: "index_dossiers_on_search_terms_private_search_terms", using: :gin
t.index "to_tsvector('french'::regconfig, search_terms)", name: "index_dossiers_on_search_terms", using: :gin
t.datetime "groupe_instructeur_updated_at"
t.index ["archived"], name: "index_dossiers_on_archived"
t.index ["groupe_instructeur_id"], name: "index_dossiers_on_groupe_instructeur_id"
t.index ["hidden_at"], name: "index_dossiers_on_hidden_at"

View file

@ -67,6 +67,31 @@ describe 'shared/dossiers/champs.html.haml', type: :view do
expect(subject).to include(procedure.routing_criteria_name)
expect(subject).to include(dossier.groupe_instructeur.label)
end
context "with seen_at" do
let(:dossier) { create(:dossier) }
let(:nouveau_groupe_instructeur) { create(:groupe_instructeur, procedure: dossier.procedure) }
let(:champ1) { create(:champ, :checkbox, value: "on") }
let(:champs) { [champ1] }
context "with a demande_seen_at after groupe_instructeur_updated_at" do
let(:demande_seen_at) { dossier.groupe_instructeur_updated_at + 1.hour }
it "expect to not highlight new group instructeur label" do
dossier.assign_to_groupe_instructeur(nouveau_groupe_instructeur)
expect(subject).not_to have_css(".highlighted")
end
end
context "with a demande_seen_at before groupe_instructeur_updated_at" do
let(:demande_seen_at) { dossier.groupe_instructeur_updated_at - 1.hour }
it "expect to not highlight new group instructeur label" do
dossier.assign_to_groupe_instructeur(nouveau_groupe_instructeur)
expect(subject).to have_css(".highlighted")
end
end
end
end
context "with a dossier champ, but we are not authorized to acces the dossier" do