Avis: index
This commit is contained in:
parent
8c97224fde
commit
3cc09c98f9
4 changed files with 87 additions and 0 deletions
22
app/controllers/new_gestionnaire/avis_controller.rb
Normal file
22
app/controllers/new_gestionnaire/avis_controller.rb
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
module NewGestionnaire
|
||||||
|
class AvisController < ApplicationController
|
||||||
|
layout 'new_application'
|
||||||
|
|
||||||
|
A_DONNER_STATUS = 'a-donner'
|
||||||
|
DONNES_STATUS = 'donnes'
|
||||||
|
|
||||||
|
def index
|
||||||
|
gestionnaire_avis = current_gestionnaire.avis.includes(dossier: [:procedure, :user])
|
||||||
|
@avis_a_donner, @avis_donnes = gestionnaire_avis.partition { |avis| avis.answer.nil? }
|
||||||
|
|
||||||
|
@statut = params[:statut].present? ? params[:statut] : A_DONNER_STATUS
|
||||||
|
|
||||||
|
@avis = case @statut
|
||||||
|
when A_DONNER_STATUS
|
||||||
|
@avis_a_donner
|
||||||
|
when DONNES_STATUS
|
||||||
|
@avis_donnes
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
35
app/views/new_gestionnaire/avis/index.html.haml
Normal file
35
app/views/new_gestionnaire/avis/index.html.haml
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
#avis-index
|
||||||
|
.backoffice-header
|
||||||
|
.container.flex
|
||||||
|
.width-100
|
||||||
|
%h1 Avis
|
||||||
|
%ul.tabs
|
||||||
|
%li{ class: (@statut == NewGestionnaire::AvisController::A_DONNER_STATUS) ? 'active' : nil }>
|
||||||
|
= link_to(avis_index_path(statut: NewGestionnaire::AvisController::A_DONNER_STATUS)) do
|
||||||
|
avis à donner
|
||||||
|
%span.badge= @avis_a_donner.count
|
||||||
|
|
||||||
|
%li{ class: (@statut == NewGestionnaire::AvisController::DONNES_STATUS) ? 'active' : nil }>
|
||||||
|
= link_to(avis_index_path(statut: NewGestionnaire::AvisController::DONNES_STATUS)) do
|
||||||
|
avis #{'donné'.pluralize(@avis_donnes.count)}
|
||||||
|
%span.badge= @avis_donnes.count
|
||||||
|
|
||||||
|
.container
|
||||||
|
- if @avis.present?
|
||||||
|
%table.table.dossiers-table.hoverable
|
||||||
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.number-col Nº dossier
|
||||||
|
%th Demandeur
|
||||||
|
%th Procédure
|
||||||
|
%tbody
|
||||||
|
- @avis.each do |avis|
|
||||||
|
%tr
|
||||||
|
%td.number-col
|
||||||
|
= link_to(avis_path(avis), class: 'cell-link') do
|
||||||
|
%i.folder
|
||||||
|
#{avis.dossier.id}
|
||||||
|
%td= link_to(avis.dossier.user.email, avis_path(avis), class: 'cell-link')
|
||||||
|
%td= link_to(avis.dossier.procedure.libelle, avis_path(avis), class: 'cell-link')
|
||||||
|
- else
|
||||||
|
%h2 Aucun avis
|
|
@ -258,6 +258,7 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
resources :avis, only: [:index]
|
||||||
get "recherche" => "recherches#index"
|
get "recherche" => "recherches#index"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
29
spec/controllers/new_gestionnaire/avis_controller_spec.rb
Normal file
29
spec/controllers/new_gestionnaire/avis_controller_spec.rb
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe NewGestionnaire::AvisController, type: :controller do
|
||||||
|
render_views
|
||||||
|
|
||||||
|
let(:claimant) { create(:gestionnaire) }
|
||||||
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
|
let(:procedure) { create(:procedure, :published, gestionnaires: [gestionnaire]) }
|
||||||
|
let(:dossier) { create(:dossier, :replied, procedure: procedure) }
|
||||||
|
let!(:avis_without_answer) { Avis.create(dossier: dossier, claimant: claimant, gestionnaire: gestionnaire) }
|
||||||
|
let!(:avis_with_answer) { Avis.create(dossier: dossier, claimant: claimant, gestionnaire: gestionnaire, answer: 'yop') }
|
||||||
|
|
||||||
|
before { sign_in(gestionnaire) }
|
||||||
|
|
||||||
|
describe '#index' do
|
||||||
|
before { get :index }
|
||||||
|
|
||||||
|
it { expect(response).to have_http_status(:success) }
|
||||||
|
it { expect(assigns(:avis_a_donner)).to match([avis_without_answer]) }
|
||||||
|
it { expect(assigns(:avis_donnes)).to match([avis_with_answer]) }
|
||||||
|
it { expect(assigns(:statut)).to eq('a-donner') }
|
||||||
|
|
||||||
|
context 'with a statut equal to donnes' do
|
||||||
|
before { get :index, statut: 'donnes' }
|
||||||
|
|
||||||
|
it { expect(assigns(:statut)).to eq('donnes') }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
Loading…
Reference in a new issue