highlight routing criteria label when updated
This commit is contained in:
parent
60251013f7
commit
924702699f
6 changed files with 38 additions and 4 deletions
|
@ -10,7 +10,7 @@ module DossierHelper
|
||||||
end
|
end
|
||||||
|
|
||||||
def highlight_if_unseen_class(seen_at, updated_at)
|
def highlight_if_unseen_class(seen_at, updated_at)
|
||||||
if seen_at&.<(updated_at)
|
if updated_at.present? && seen_at&.<(updated_at)
|
||||||
"highlighted"
|
"highlighted"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -301,7 +301,7 @@ class Dossier < ApplicationRecord
|
||||||
|
|
||||||
def assign_to_groupe_instructeur(groupe_instructeur, author = nil)
|
def assign_to_groupe_instructeur(groupe_instructeur, author = nil)
|
||||||
if groupe_instructeur.procedure == procedure && groupe_instructeur != self.groupe_instructeur
|
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
|
unfollow_stale_instructeurs
|
||||||
|
|
||||||
if author.present?
|
if author.present?
|
||||||
|
|
|
@ -2,6 +2,9 @@
|
||||||
%tbody
|
%tbody
|
||||||
- if dossier.procedure.routee?
|
- if dossier.procedure.routee?
|
||||||
%th= dossier.procedure.routing_criteria_name
|
%th= dossier.procedure.routing_criteria_name
|
||||||
%td= dossier.groupe_instructeur.label
|
%td{ class: highlight_if_unseen_class(demande_seen_at, dossier.groupe_instructeur_updated_at) }= dossier.groupe_instructeur.label
|
||||||
%td
|
%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 }
|
= render partial: "shared/dossiers/champ_row", locals: { champs: champs, demande_seen_at: demande_seen_at, profile: profile, repetition: false }
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddGroupeInstructeurUpdatedAtToDossiers < ActiveRecord::Migration[5.2]
|
||||||
|
def change
|
||||||
|
add_column :dossiers, :groupe_instructeur_updated_at, :timestamp
|
||||||
|
end
|
||||||
|
end
|
|
@ -252,6 +252,7 @@ ActiveRecord::Schema.define(version: 2020_02_27_100001) do
|
||||||
t.datetime "brouillon_close_to_expiration_notice_sent_at"
|
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 || 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.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 ["archived"], name: "index_dossiers_on_archived"
|
||||||
t.index ["groupe_instructeur_id"], name: "index_dossiers_on_groupe_instructeur_id"
|
t.index ["groupe_instructeur_id"], name: "index_dossiers_on_groupe_instructeur_id"
|
||||||
t.index ["hidden_at"], name: "index_dossiers_on_hidden_at"
|
t.index ["hidden_at"], name: "index_dossiers_on_hidden_at"
|
||||||
|
|
|
@ -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(procedure.routing_criteria_name)
|
||||||
expect(subject).to include(dossier.groupe_instructeur.label)
|
expect(subject).to include(dossier.groupe_instructeur.label)
|
||||||
end
|
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
|
end
|
||||||
|
|
||||||
context "with a dossier champ, but we are not authorized to acces the dossier" do
|
context "with a dossier champ, but we are not authorized to acces the dossier" do
|
||||||
|
|
Loading…
Reference in a new issue