Add pagination for gestionnaire dossier
Fix test for user pagination
This commit is contained in:
parent
2eb01bdf42
commit
37ea69ec51
13 changed files with 73 additions and 43 deletions
|
@ -4,25 +4,30 @@
|
|||
border-top: none
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#onglets {
|
||||
ul {
|
||||
li {
|
||||
margin-top: 11px;
|
||||
li, li.active {
|
||||
a {
|
||||
margin-top: 12px;
|
||||
height: 45px;
|
||||
|
||||
h5 {
|
||||
margin-top: 4px;
|
||||
margin-top: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#search {
|
||||
margin-top: 0;
|
||||
a {
|
||||
height: auto;
|
||||
margin-top: 0px;
|
||||
height: 57px;
|
||||
}
|
||||
}
|
||||
|
||||
#search:not(.active) {
|
||||
a:hover {
|
||||
height: 56px;
|
||||
background-color: transparent;
|
||||
border: none;
|
||||
padding: 11px 16px;
|
||||
|
|
|
@ -6,25 +6,33 @@ class Backoffice::DossiersController < ApplicationController
|
|||
end
|
||||
|
||||
def a_traiter
|
||||
@dossiers_a_traiter = Dossier.a_traiter(current_gestionnaire).decorate
|
||||
@dossiers_a_traiter = Dossier.a_traiter(current_gestionnaire)
|
||||
@dossiers_a_traiter = @dossiers_a_traiter.paginate(:page => params[:page], :per_page => 12).decorate
|
||||
|
||||
total_dossiers_per_state
|
||||
end
|
||||
|
||||
def en_attente
|
||||
@dossiers_en_attente = Dossier.en_attente(current_gestionnaire).decorate
|
||||
@dossiers_en_attente = Dossier.en_attente(current_gestionnaire)
|
||||
@dossiers_en_attente = @dossiers_en_attente.paginate(:page => params[:page], :per_page => 12).decorate
|
||||
total_dossiers_per_state
|
||||
end
|
||||
|
||||
def termine
|
||||
@dossiers_termine = Dossier.termine(current_gestionnaire).decorate
|
||||
@dossiers_termine = Dossier.termine(current_gestionnaire)
|
||||
@dossiers_termine = @dossiers_termine.paginate(:page => params[:page], :per_page => 12).decorate
|
||||
total_dossiers_per_state
|
||||
end
|
||||
|
||||
def search
|
||||
@search_terms = params[:search_terms]
|
||||
@search_terms = params[:q]
|
||||
|
||||
@dossiers_search, @dossier = Dossier.search(current_gestionnaire, @search_terms)
|
||||
@dossiers_search = @dossiers_search.decorate unless @dossiers_search.empty?
|
||||
|
||||
unless @dossiers_search.empty?
|
||||
@dossiers_search = @dossiers_search.paginate(:page => params[:page], :per_page => 12).decorate
|
||||
end
|
||||
|
||||
@dossier = @dossier.decorate unless @dossier.nil?
|
||||
|
||||
total_dossiers_per_state
|
||||
|
|
|
@ -1,25 +1,26 @@
|
|||
%h1 Gestion des dossiers
|
||||
%br
|
||||
|
||||
%ul.nav.nav-tabs
|
||||
%li{class: "#{'active' unless @dossiers_a_traiter.nil? }"}
|
||||
%a{:href => "#{url_for :backoffice_dossiers_a_traiter}"}
|
||||
%h5.text-danger
|
||||
= "À traiter (#{@dossiers_a_traiter_total})"
|
||||
%li{class: "#{'active' unless @dossiers_en_attente.nil? }"}
|
||||
%a{:href => "#{url_for :backoffice_dossiers_en_attente}"}
|
||||
%h5.text-info
|
||||
="En attente (#{@dossiers_en_attente_total})"
|
||||
%li{class: "#{'active' unless @dossiers_termine.nil? }"}
|
||||
%a{:href => "#{url_for :backoffice_dossiers_termine}"}
|
||||
%h5.text-success
|
||||
= "Terminé (#{@dossiers_termine_total})"
|
||||
%li#search{class: "#{'active' unless @dossiers_search.nil?}", style:'float:right'}
|
||||
%a
|
||||
= form_tag(backoffice_dossiers_search_url, method: :post) do
|
||||
.input-group{style:'width: 300px'}
|
||||
= text_field_tag('search_terms', "#{@search_terms unless @search_terms.nil? }", id: 'search_terms', placeholder: "Rechercher un dossier ...", class:'form-control')
|
||||
%span.input-group-btn
|
||||
= button_tag('', id:'search_button', class:'btn btn-default') do
|
||||
%i.fa.fa-search
|
||||
#onglets
|
||||
%ul.nav.nav-tabs
|
||||
%li{class: "#{'active' unless @dossiers_a_traiter.nil? }"}
|
||||
%a{:href => "#{url_for :backoffice_dossiers_a_traiter}"}
|
||||
%h5.text-danger
|
||||
= "À traiter (#{@dossiers_a_traiter_total})"
|
||||
%li{class: "#{'active' unless @dossiers_en_attente.nil? }"}
|
||||
%a{:href => "#{url_for :backoffice_dossiers_en_attente}"}
|
||||
%h5.text-info
|
||||
="En attente (#{@dossiers_en_attente_total})"
|
||||
%li{class: "#{'active' unless @dossiers_termine.nil? }"}
|
||||
%a{:href => "#{url_for :backoffice_dossiers_termine}"}
|
||||
%h5.text-success
|
||||
= "Terminé (#{@dossiers_termine_total})"
|
||||
%li#search{class: "#{'active' unless @dossiers_search.nil?}", style:'float:right'}
|
||||
%a
|
||||
= form_tag(backoffice_dossiers_search_url, method: :get) do
|
||||
.input-group{style:'width: 300px'}
|
||||
= text_field_tag('q', "#{@search_terms unless @search_terms.nil? }", id: 'q', placeholder: "Rechercher un dossier ...", class:'form-control')
|
||||
%span.input-group-btn
|
||||
%button.btn.btn-default{ id:'search_button' }
|
||||
%i.fa.fa-search
|
||||
%br
|
|
@ -15,3 +15,6 @@
|
|||
= link_to(dossier.nom_projet, "/backoffice/dossiers/#{dossier.id}")
|
||||
%td= dossier.state_fr
|
||||
%td= dossier.last_update
|
||||
|
||||
.pagination
|
||||
= will_paginate @dossiers_a_traiter, renderer: BootstrapPagination::Rails
|
|
@ -15,3 +15,6 @@
|
|||
= link_to(dossier.nom_projet, "/backoffice/dossiers/#{dossier.id}")
|
||||
%td= dossier.state_fr
|
||||
%td= dossier.last_update
|
||||
|
||||
.pagination
|
||||
= will_paginate @dossiers_en_attente, renderer: BootstrapPagination::Rails
|
|
@ -44,4 +44,7 @@
|
|||
%td= dossier.entreprise.raison_sociale
|
||||
%td= dossier.user.email
|
||||
%td= dossier.etablissement.siret
|
||||
%td{class: dossier.state_color_class}= dossier.state_fr
|
||||
%td{class: dossier.state_color_class}= dossier.state_fr
|
||||
|
||||
.pagination
|
||||
= will_paginate @dossiers_search, renderer: BootstrapPagination::Rails
|
|
@ -15,3 +15,6 @@
|
|||
= link_to(dossier.nom_projet, "/backoffice/dossiers/#{dossier.id}")
|
||||
%td= dossier.state_fr
|
||||
%td= dossier.last_update
|
||||
|
||||
.pagination
|
||||
= will_paginate @dossiers_termine, renderer: BootstrapPagination::Rails
|
|
@ -64,7 +64,7 @@ Rails.application.routes.draw do
|
|||
get 'dossiers/a_traiter' => 'dossiers#a_traiter'
|
||||
get 'dossiers/en_attente' => 'dossiers#en_attente'
|
||||
get 'dossiers/termine' => 'dossiers#termine'
|
||||
post 'dossiers/search' => 'dossiers#search'
|
||||
get 'dossiers/search' => 'dossiers#search'
|
||||
|
||||
resources :dossiers do
|
||||
post 'valid' => 'dossiers#valid'
|
||||
|
|
|
@ -14,7 +14,7 @@ feature 'search file on gestionnaire backoffice' do
|
|||
|
||||
before do
|
||||
visit backoffice_dossiers_a_traiter_url
|
||||
page.find_by_id(:search_terms).set terms
|
||||
page.find_by_id(:q).set terms
|
||||
page.find_by_id(:search_button).click
|
||||
end
|
||||
|
||||
|
@ -28,7 +28,7 @@ feature 'search file on gestionnaire backoffice' do
|
|||
let(:terms) { 'test' }
|
||||
|
||||
it 'terms stay in input after search' do
|
||||
expect(page.find_by_id('search_terms').value).to eq(terms)
|
||||
expect(page.find_by_id('q').value).to eq(terms)
|
||||
end
|
||||
|
||||
context 'when terms input does not return result' do
|
||||
|
|
|
@ -8,7 +8,7 @@ describe 'backoffice/dossiers/a_traiter.html.haml', type: :view do
|
|||
let!(:decorate_dossier) { create(:dossier, :with_user, state: 'initiated', procedure: procedure).decorate }
|
||||
|
||||
before do
|
||||
assign(:dossiers_a_traiter, Dossier.a_traiter(gestionnaire).decorate)
|
||||
assign(:dossiers_a_traiter, Dossier.a_traiter(gestionnaire).paginate(:page => 1, :per_page => 12).decorate)
|
||||
render
|
||||
end
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ describe 'backoffice/dossiers/en_attente.html.haml', type: :view do
|
|||
let!(:decorate_dossier) { create(:dossier, :with_user, procedure: procedure, state: 'replied').decorate }
|
||||
|
||||
before do
|
||||
assign(:dossiers_en_attente, Dossier.en_attente(gestionnaire).decorate)
|
||||
assign(:dossiers_en_attente, Dossier.en_attente(gestionnaire).paginate(:page => 1, :per_page => 12).decorate)
|
||||
render
|
||||
end
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ describe 'backoffice/dossiers/termine.html.haml', type: :view do
|
|||
let!(:decorate_dossier) { create(:dossier, :with_user, procedure: procedure, state: 'closed').decorate }
|
||||
|
||||
before do
|
||||
assign(:dossiers_termine, Dossier.termine(gestionnaire).decorate)
|
||||
assign(:dossiers_termine, Dossier.termine(gestionnaire).paginate(:page => 1, :per_page => 12).decorate)
|
||||
render
|
||||
end
|
||||
|
||||
|
|
|
@ -3,14 +3,18 @@ require 'spec_helper'
|
|||
describe 'users/dossiers/index.html.haml', type: :view do
|
||||
|
||||
describe 'list dossiers' do
|
||||
let(:dossier1) { create(:dossier, :with_user).decorate }
|
||||
let(:dossier2) { create(:dossier, :with_user).decorate }
|
||||
let(:user) { create(:user) }
|
||||
|
||||
let!(:dossier1) { create(:dossier, user: user, state: 'initiated') }
|
||||
let!(:dossier2) { create(:dossier, user: user, state: 'initiated') }
|
||||
let(:dossiers) { user.dossiers.where("state NOT IN ('draft')").order(updated_at: 'DESC') }
|
||||
|
||||
|
||||
before do
|
||||
assign(:dossiers, [dossier1, dossier2])
|
||||
assign(:dossiers, dossiers.paginate(:page => params[:page], :per_page => 12).decorate)
|
||||
render
|
||||
end
|
||||
subject { rendered }
|
||||
it { expect(subject).to have_content(dossier1.nom_projet) }
|
||||
end
|
||||
|
||||
end
|
Loading…
Add table
Reference in a new issue