Add suivi tab for gestionnaire
This commit is contained in:
parent
127c9bb138
commit
6796ec26e8
4 changed files with 56 additions and 13 deletions
|
@ -66,7 +66,8 @@ class Backoffice::DossiersController < ApplicationController
|
||||||
def dossiers_to_display
|
def dossiers_to_display
|
||||||
{'a_traiter' => waiting_for_gestionnaire,
|
{'a_traiter' => waiting_for_gestionnaire,
|
||||||
'en_attente' => waiting_for_user,
|
'en_attente' => waiting_for_user,
|
||||||
'termine' => termine}[@liste]
|
'termine' => termine,
|
||||||
|
'suivi' => suivi}[@liste]
|
||||||
end
|
end
|
||||||
|
|
||||||
def waiting_for_gestionnaire
|
def waiting_for_gestionnaire
|
||||||
|
@ -84,10 +85,16 @@ class Backoffice::DossiersController < ApplicationController
|
||||||
@termine ||= current_gestionnaire.dossiers_filter.termine
|
@termine ||= current_gestionnaire.dossiers_filter.termine
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def suivi
|
||||||
|
@suivi_class = (@liste == 'suivi' ? 'active' : '')
|
||||||
|
@suivi ||= current_gestionnaire.dossiers_follow
|
||||||
|
end
|
||||||
|
|
||||||
def total_dossiers_per_state
|
def total_dossiers_per_state
|
||||||
@dossiers_a_traiter_total = waiting_for_gestionnaire.count
|
@dossiers_a_traiter_total = waiting_for_gestionnaire.count
|
||||||
@dossiers_en_attente_total = waiting_for_user.count
|
@dossiers_en_attente_total = waiting_for_user.count
|
||||||
@dossiers_termine_total = termine.count
|
@dossiers_termine_total = termine.count
|
||||||
|
@dossiers_suivi_total = suivi.count
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_dossier_facade dossier_id
|
def create_dossier_facade dossier_id
|
||||||
|
|
|
@ -5,9 +5,8 @@
|
||||||
%th= smart_listing.sortable 'Raison sociale', 'entreprise.raison_sociale'
|
%th= smart_listing.sortable 'Raison sociale', 'entreprise.raison_sociale'
|
||||||
%th= smart_listing.sortable 'État', 'state'
|
%th= smart_listing.sortable 'État', 'state'
|
||||||
%th= smart_listing.sortable 'Date de mise à jour', 'updated_at'
|
%th= smart_listing.sortable 'Date de mise à jour', 'updated_at'
|
||||||
- unless @liste == 'termine'
|
%th.center Actions
|
||||||
%th.center Actions
|
%th.center Abonnés
|
||||||
%th.center Abonnés
|
|
||||||
|
|
||||||
- @dossiers.each do |dossier|
|
- @dossiers.each do |dossier|
|
||||||
- dossier = dossier.decorate
|
- dossier = dossier.decorate
|
||||||
|
@ -17,14 +16,13 @@
|
||||||
= link_to(dossier.entreprise.raison_sociale, "/backoffice/dossiers/#{dossier.id}")
|
= link_to(dossier.entreprise.raison_sociale, "/backoffice/dossiers/#{dossier.id}")
|
||||||
%td= dossier.display_state
|
%td= dossier.display_state
|
||||||
%td= dossier.last_update
|
%td= dossier.last_update
|
||||||
- unless @liste == 'termine'
|
%td.center
|
||||||
%td.center
|
- if current_gestionnaire.follow?(dossier.id)
|
||||||
- if current_gestionnaire.follow?(dossier.id)
|
= link_to('Quitter'.html_safe, backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-danger', id: "suivre_dossier_#{dossier.id}")
|
||||||
= link_to('Quitter'.html_safe, backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-danger', id: "suivre_dossier_#{dossier.id}")
|
-else
|
||||||
-else
|
= link_to('Suivre', backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-primary', id: "suivre_dossier_#{dossier.id}")
|
||||||
= link_to('Suivre', backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-primary', id: "suivre_dossier_#{dossier.id}")
|
%td.center{style:"color: #{dossier.total_follow == 0 ? 'red' : ''}"}
|
||||||
%td.center{style:"color: #{dossier.total_follow == 0 ? 'red' : ''}"}
|
= dossier.total_follow
|
||||||
= dossier.total_follow
|
|
||||||
|
|
||||||
= smart_listing.paginate
|
= smart_listing.paginate
|
||||||
= smart_listing.pagination_per_page_links
|
= smart_listing.pagination_per_page_links
|
||||||
|
|
|
@ -17,6 +17,13 @@
|
||||||
.badge.progress-bar-info
|
.badge.progress-bar-info
|
||||||
=@dossiers_en_attente_total
|
=@dossiers_en_attente_total
|
||||||
|
|
||||||
|
%li{ class: (@suivi_class) }
|
||||||
|
%a{:href => "#{url_for backoffice_dossiers_path(liste: 'suivi')}"}
|
||||||
|
%h5.text-warning
|
||||||
|
="Suivi"
|
||||||
|
.badge.progress-bar-warning
|
||||||
|
=@dossiers_suivi_total
|
||||||
|
|
||||||
%li{ class: (@termine_class) }
|
%li{ class: (@termine_class) }
|
||||||
%a{:href => "#{url_for backoffice_dossiers_path(liste: 'termine')}"}
|
%a{:href => "#{url_for backoffice_dossiers_path(liste: 'termine')}"}
|
||||||
%h5.text-success
|
%h5.text-success
|
||||||
|
|
|
@ -75,6 +75,37 @@ describe 'backoffice/dossiers/index.html.haml', type: :view do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe 'on tab suivi' do
|
||||||
|
before do
|
||||||
|
create :follow, dossier_id: decorate_dossier_replied.id, gestionnaire_id: gestionnaire.id
|
||||||
|
|
||||||
|
assign(:dossiers, (smart_listing_create :dossiers,
|
||||||
|
gestionnaire.dossiers_follow,
|
||||||
|
partial: "backoffice/dossiers/list",
|
||||||
|
array: true))
|
||||||
|
assign(:suivi_class, 'active')
|
||||||
|
assign(:liste, 'suivi')
|
||||||
|
render
|
||||||
|
end
|
||||||
|
|
||||||
|
subject { rendered }
|
||||||
|
|
||||||
|
it { is_expected.to have_css('#backoffice_index') }
|
||||||
|
it { is_expected.to have_content(procedure.libelle) }
|
||||||
|
it { is_expected.to have_content(decorate_dossier_replied.entreprise.raison_sociale) }
|
||||||
|
it { is_expected.to have_content(decorate_dossier_replied.display_state) }
|
||||||
|
it { is_expected.to have_content(decorate_dossier_replied.last_update) }
|
||||||
|
|
||||||
|
it { is_expected.not_to have_content(decorate_dossier_initiated.entreprise.raison_sociale) }
|
||||||
|
it { is_expected.not_to have_content(decorate_dossier_closed.entreprise.raison_sociale) }
|
||||||
|
|
||||||
|
it { is_expected.to have_css("#suivre_dossier_#{gestionnaire.dossiers_follow.first.id}") }
|
||||||
|
|
||||||
|
describe 'active tab' do
|
||||||
|
it { is_expected.to have_selector('.active .text-warning') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
describe 'on tab termine' do
|
describe 'on tab termine' do
|
||||||
before do
|
before do
|
||||||
assign(:dossiers, (smart_listing_create :dossiers,
|
assign(:dossiers, (smart_listing_create :dossiers,
|
||||||
|
@ -97,7 +128,7 @@ describe 'backoffice/dossiers/index.html.haml', type: :view do
|
||||||
it { is_expected.not_to have_content(decorate_dossier_initiated.entreprise.raison_sociale) }
|
it { is_expected.not_to have_content(decorate_dossier_initiated.entreprise.raison_sociale) }
|
||||||
it { is_expected.not_to have_content(decorate_dossier_replied.entreprise.raison_sociale) }
|
it { is_expected.not_to have_content(decorate_dossier_replied.entreprise.raison_sociale) }
|
||||||
|
|
||||||
it { is_expected.not_to have_css("#suivre_dossier_#{gestionnaire.dossiers.termine.first.id}") }
|
it { is_expected.to have_css("#suivre_dossier_#{gestionnaire.dossiers.termine.first.id}") }
|
||||||
|
|
||||||
describe 'active tab' do
|
describe 'active tab' do
|
||||||
it { is_expected.to have_selector('.active .text-success') }
|
it { is_expected.to have_selector('.active .text-success') }
|
||||||
|
|
Loading…
Reference in a new issue