Make dossier link clickable for users in the Demande tab
This commit is contained in:
parent
cc07f0d701
commit
b4781f7440
3 changed files with 29 additions and 9 deletions
|
@ -1,12 +1,16 @@
|
||||||
module DossierLinkHelper
|
module DossierLinkHelper
|
||||||
def dossier_linked_path(gestionnaire, dossier)
|
def dossier_linked_path(user, dossier)
|
||||||
if dossier.procedure.gestionnaires.include?(gestionnaire)
|
if user.is_a?(Gestionnaire)
|
||||||
gestionnaire_dossier_path(dossier.procedure, dossier)
|
if dossier.procedure.gestionnaires.include?(user)
|
||||||
else
|
gestionnaire_dossier_path(dossier.procedure, dossier)
|
||||||
avis = dossier.avis.find_by(gestionnaire: gestionnaire)
|
else
|
||||||
if avis.present?
|
avis = dossier.avis.find_by(gestionnaire: user)
|
||||||
gestionnaire_avis_path(avis)
|
if avis.present?
|
||||||
|
gestionnaire_avis_path(avis)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
elsif user.owns_or_invite?(dossier)
|
||||||
|
dossier_path(dossier)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
- dossier = Dossier.includes(:procedure).find_by(id: champ.to_s)
|
- dossier = Dossier.includes(:procedure).find_by(id: champ.to_s)
|
||||||
- if dossier
|
- if dossier
|
||||||
- path = dossier_linked_path(current_gestionnaire, dossier)
|
- path = dossier_linked_path(current_gestionnaire || current_user, dossier)
|
||||||
- if path.present?
|
- if path.present?
|
||||||
= link_to("Dossier nº #{dossier.id}", path, target: '_blank')
|
= link_to("Dossier nº #{dossier.id}", path, target: '_blank')
|
||||||
- else
|
- else
|
||||||
|
|
|
@ -1,12 +1,19 @@
|
||||||
describe DossierLinkHelper do
|
describe DossierLinkHelper do
|
||||||
describe "#dossier_linked_path" do
|
describe "#dossier_linked_path" do
|
||||||
context "when no access" do
|
context "when no access as a gestionnaire" do
|
||||||
let(:gestionnaire) { create(:gestionnaire) }
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
let(:dossier) { create(:dossier) }
|
let(:dossier) { create(:dossier) }
|
||||||
|
|
||||||
it { expect(helper.dossier_linked_path(gestionnaire, dossier)).to be_nil }
|
it { expect(helper.dossier_linked_path(gestionnaire, dossier)).to be_nil }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when no access as a user" do
|
||||||
|
let(:user) { create(:user) }
|
||||||
|
let(:dossier) { create(:dossier) }
|
||||||
|
|
||||||
|
it { expect(helper.dossier_linked_path(user, dossier)).to be_nil }
|
||||||
|
end
|
||||||
|
|
||||||
context "when access as gestionnaire" do
|
context "when access as gestionnaire" do
|
||||||
let(:dossier) { create(:dossier) }
|
let(:dossier) { create(:dossier) }
|
||||||
let(:gestionnaire) { create(:gestionnaire) }
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
|
@ -23,5 +30,14 @@ describe DossierLinkHelper do
|
||||||
|
|
||||||
it { expect(helper.dossier_linked_path(gestionnaire, dossier)).to eq(gestionnaire_avis_path(avis)) }
|
it { expect(helper.dossier_linked_path(gestionnaire, dossier)).to eq(gestionnaire_avis_path(avis)) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "when access as user" do
|
||||||
|
let(:dossier) { create(:dossier) }
|
||||||
|
let(:user) { create(:user) }
|
||||||
|
|
||||||
|
before { dossier.user = user }
|
||||||
|
|
||||||
|
it { expect(helper.dossier_linked_path(user, dossier)).to eq(dossier_path(dossier)) }
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Reference in a new issue