Filter by procedure is activated on route /backoffice/dossiers/procedure/:id
This commit is contained in:
parent
bb19982011
commit
62a0b84048
21 changed files with 287 additions and 15 deletions
|
@ -23,7 +23,13 @@ class Admin::AccompagnateursController < AdminController
|
||||||
end
|
end
|
||||||
|
|
||||||
def update
|
def update
|
||||||
AccompagnateurService.change_assignement! Gestionnaire.find(params[:accompagnateur_id]), Procedure.find(params[:procedure_id]), params[:to]
|
gestionnaire = Gestionnaire.find(params[:accompagnateur_id])
|
||||||
|
procedure = Procedure.find(params[:procedure_id])
|
||||||
|
to = params[:to]
|
||||||
|
|
||||||
|
|
||||||
|
AccompagnateurService.change_assignement! gestionnaire, procedure, to
|
||||||
|
AccompagnateurService.build_default_column gestionnaire, procedure, to
|
||||||
|
|
||||||
flash.notice = "Assignement effectué"
|
flash.notice = "Assignement effectué"
|
||||||
redirect_to admin_procedure_accompagnateurs_path, procedure_id: params[:procedure_id]
|
redirect_to admin_procedure_accompagnateurs_path, procedure_id: params[:procedure_id]
|
||||||
|
|
|
@ -123,7 +123,7 @@ class Backoffice::DossiersController < ApplicationController
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_dossiers_list_facade liste='a_traiter'
|
def create_dossiers_list_facade liste='a_traiter'
|
||||||
@dossiers_list_facade = DossiersListFacades.new current_gestionnaire, liste
|
@dossiers_list_facade = DossiersListFacades.new current_gestionnaire, liste, retrieve_procedure
|
||||||
end
|
end
|
||||||
|
|
||||||
def create_dossier_facade dossier_id
|
def create_dossier_facade dossier_id
|
||||||
|
@ -133,4 +133,10 @@ class Backoffice::DossiersController < ApplicationController
|
||||||
flash.alert = t('errors.messages.dossier_not_found')
|
flash.alert = t('errors.messages.dossier_not_found')
|
||||||
redirect_to url_for(controller: '/backoffice')
|
redirect_to url_for(controller: '/backoffice')
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def retrieve_procedure
|
||||||
|
return if params[:procedure_id].blank?
|
||||||
|
current_gestionnaire.procedures.find params[:procedure_id]
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -3,6 +3,7 @@ class Backoffice::PreferenceListDossierController < ApplicationController
|
||||||
helper SmartListing::Helper
|
helper SmartListing::Helper
|
||||||
|
|
||||||
before_action :authenticate_gestionnaire!
|
before_action :authenticate_gestionnaire!
|
||||||
|
before_action :params_procedure_id
|
||||||
|
|
||||||
def add
|
def add
|
||||||
PreferenceListDossier.create(
|
PreferenceListDossier.create(
|
||||||
|
@ -13,14 +14,17 @@ class Backoffice::PreferenceListDossierController < ApplicationController
|
||||||
bootstrap_lg: params[:bootstrap_lg],
|
bootstrap_lg: params[:bootstrap_lg],
|
||||||
order: nil,
|
order: nil,
|
||||||
filter: nil,
|
filter: nil,
|
||||||
gestionnaire: current_gestionnaire
|
gestionnaire: current_gestionnaire,
|
||||||
|
procedure_id: params_procedure_id
|
||||||
)
|
)
|
||||||
|
|
||||||
render partial: 'backoffice/dossiers/pref_list', formats: :js
|
render partial: 'backoffice/dossiers/pref_list', formats: :js
|
||||||
end
|
end
|
||||||
|
|
||||||
def reload_pref_list
|
def reload_pref_list
|
||||||
render partial: 'backoffice/dossiers/pref_list'
|
@dossiers_list_facade = DossiersListFacades.new current_gestionnaire, '', retrieve_procedure
|
||||||
|
|
||||||
|
render partial: 'backoffice/dossiers/pref_list', id: params_procedure_id
|
||||||
end
|
end
|
||||||
|
|
||||||
def delete
|
def delete
|
||||||
|
@ -28,4 +32,15 @@ class Backoffice::PreferenceListDossierController < ApplicationController
|
||||||
|
|
||||||
render partial: 'backoffice/dossiers/pref_list', formats: :js
|
render partial: 'backoffice/dossiers/pref_list', formats: :js
|
||||||
end
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
def params_procedure_id
|
||||||
|
@procedure_id ||= params[:procedure_id]
|
||||||
|
end
|
||||||
|
|
||||||
|
def retrieve_procedure
|
||||||
|
return if params[:procedure_id].blank?
|
||||||
|
current_gestionnaire.procedures.find params_procedure_id
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -19,10 +19,18 @@ class DossiersListFacades
|
||||||
@liste
|
@liste
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def procedure_id
|
||||||
|
@procedure.nil? ? nil : @procedure.id
|
||||||
|
end
|
||||||
|
|
||||||
def dossiers_to_display
|
def dossiers_to_display
|
||||||
service.dossiers_to_display
|
service.dossiers_to_display
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def preference_list_dossiers_filter
|
||||||
|
@list_table_columns ||= @current_devise_profil.preference_list_dossiers.where(procedure: @procedure).order(:id)
|
||||||
|
end
|
||||||
|
|
||||||
def nouveaux_class
|
def nouveaux_class
|
||||||
(@liste == 'nouveaux' ? 'active' : '')
|
(@liste == 'nouveaux' ? 'active' : '')
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
class PreferenceListDossier < ActiveRecord::Base
|
class PreferenceListDossier < ActiveRecord::Base
|
||||||
belongs_to :gestionnaire
|
belongs_to :gestionnaire
|
||||||
|
belongs_to :procedure
|
||||||
|
|
||||||
def table_attr
|
def table_attr
|
||||||
return self.attr if table.nil? || table.empty?
|
return self.attr if table.nil? || table.empty?
|
||||||
|
|
|
@ -15,6 +15,8 @@ class Procedure < ActiveRecord::Base
|
||||||
has_many :assign_to, dependent: :destroy
|
has_many :assign_to, dependent: :destroy
|
||||||
has_many :gestionnaires, through: :assign_to
|
has_many :gestionnaires, through: :assign_to
|
||||||
|
|
||||||
|
has_many :preference_list_dossiers
|
||||||
|
|
||||||
delegate :use_api_carto, to: :module_api_carto
|
delegate :use_api_carto, to: :module_api_carto
|
||||||
|
|
||||||
accepts_nested_attributes_for :types_de_champ, :reject_if => proc { |attributes| attributes['libelle'].blank? }, :allow_destroy => true
|
accepts_nested_attributes_for :types_de_champ, :reject_if => proc { |attributes| attributes['libelle'].blank? }, :allow_destroy => true
|
||||||
|
|
|
@ -9,4 +9,16 @@ class AccompagnateurService
|
||||||
AssignTo.delete_all(gestionnaire: accompagnateur, procedure: procedure)
|
AssignTo.delete_all(gestionnaire: accompagnateur, procedure: procedure)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def self.build_default_column accompagnateur, procedure, to
|
||||||
|
return unless to == ASSIGN
|
||||||
|
return unless PreferenceListDossier.where(gestionnaire: accompagnateur, procedure: procedure).empty?
|
||||||
|
|
||||||
|
accompagnateur.preference_list_dossiers.each do |pref|
|
||||||
|
clone = pref.dup
|
||||||
|
|
||||||
|
clone.procedure = procedure
|
||||||
|
clone.save
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
|
@ -39,6 +39,6 @@ class DossiersListGestionnaireService
|
||||||
end
|
end
|
||||||
|
|
||||||
def filter_dossiers
|
def filter_dossiers
|
||||||
@procedure.nil? ? @current_devise_profil.dossiers : @procedure.dossiers
|
@filter_dossiers ||= @procedure.nil? ? @current_devise_profil.dossiers : @procedure.dossiers
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -1,14 +1,14 @@
|
||||||
- unless smart_listing.empty?
|
- unless smart_listing.empty?
|
||||||
%table.table
|
%table.table
|
||||||
%thead
|
%thead
|
||||||
- current_gestionnaire.preference_list_dossiers.order(:id).each do |preference|
|
- @dossiers_list_facade.preference_list_dossiers_filter.each do |preference|
|
||||||
%th{class: "col-md-#{preference.bootstrap_lg} col-lg-#{preference.bootstrap_lg}"}= smart_listing.sortable preference.libelle, preference.table_attr
|
%th{class: "col-md-#{preference.bootstrap_lg} col-lg-#{preference.bootstrap_lg}"}= smart_listing.sortable preference.libelle, preference.table_attr
|
||||||
%th.col-md-1.col-lg-1.center Actions
|
%th.col-md-1.col-lg-1.center Actions
|
||||||
%th.col-md-1.col-lg-1.center Abonnés
|
%th.col-md-1.col-lg-1.center Abonnés
|
||||||
|
|
||||||
- @dossiers.each do |dossier|
|
- @dossiers.each do |dossier|
|
||||||
%tr
|
%tr
|
||||||
- current_gestionnaire.preference_list_dossiers.order(:id).each_with_index do |preference, index|
|
- @dossiers_list_facade.preference_list_dossiers_filter.each_with_index do |preference, index|
|
||||||
%td
|
%td
|
||||||
- if preference.table.nil? || preference.table.empty?
|
- if preference.table.nil? || preference.table.empty?
|
||||||
- value = dossier.decorate.public_send(preference.attr_decorate)
|
- value = dossier.decorate.public_send(preference.attr_decorate)
|
||||||
|
|
|
@ -9,10 +9,11 @@
|
||||||
Actuelles
|
Actuelles
|
||||||
|
|
||||||
%ul
|
%ul
|
||||||
- current_gestionnaire.preference_list_dossiers.order(:id).each_with_index do |preference, index|
|
- @dossiers_list_facade.preference_list_dossiers_filter.each_with_index do |preference, index|
|
||||||
%li
|
%li
|
||||||
= form_tag backoffice_preference_list_dossier_delete_path, method: :delete, remote: true do
|
= form_tag backoffice_preference_list_dossier_delete_path, method: :delete, remote: true do
|
||||||
= hidden_field_tag :pref_id, preference.id
|
= hidden_field_tag :pref_id, preference.id
|
||||||
|
= hidden_field_tag :procedure_id, preference.procedure_id
|
||||||
= preference.libelle
|
= preference.libelle
|
||||||
%button.btn.btn-default.btn-xs{type: :submit, id: "delete_pref_list_#{preference[:table]}_#{preference[:attr]}"}
|
%button.btn.btn-default.btn-xs{type: :submit, id: "delete_pref_list_#{preference[:table]}_#{preference[:attr]}"}
|
||||||
%i.fa.fa-minus
|
%i.fa.fa-minus
|
||||||
|
@ -36,6 +37,7 @@
|
||||||
= hidden_field_tag :attr, columns.second[:attr]
|
= hidden_field_tag :attr, columns.second[:attr]
|
||||||
= hidden_field_tag :attr_decorate, columns.second[:attr_decorate]
|
= hidden_field_tag :attr_decorate, columns.second[:attr_decorate]
|
||||||
= hidden_field_tag :bootstrap_lg, columns.second[:bootstrap_lg]
|
= hidden_field_tag :bootstrap_lg, columns.second[:bootstrap_lg]
|
||||||
|
= hidden_field_tag :procedure_id, @dossiers_list_facade.procedure_id
|
||||||
|
|
||||||
= columns.second[:libelle]
|
= columns.second[:libelle]
|
||||||
%button.btn.btn-default.btn-xs{type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}"}
|
%button.btn.btn-default.btn-xs{type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}"}
|
||||||
|
|
|
@ -1,12 +1,12 @@
|
||||||
$.ajax({
|
$.ajax({
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: '/backoffice/preference_list_dossier/reload_smartlisting',
|
url: '/backoffice/preference_list_dossier/reload_smartlisting?procedure_id=<%= @procedure_id %>',
|
||||||
async: true
|
async: true
|
||||||
});
|
});
|
||||||
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
methd: 'get',
|
methd: 'get',
|
||||||
url: '/backoffice/preference_list_dossier/reload_pref_list',
|
url: '/backoffice/preference_list_dossier/reload_pref_list?procedure_id=<%= @procedure_id %>',
|
||||||
async: true
|
async: true
|
||||||
}).done(function (data) {
|
}).done(function (data) {
|
||||||
$("#pref_list_menu").html(data);
|
$("#pref_list_menu").html(data);
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
class AddHasProcedureToPrefListDossier < ActiveRecord::Migration
|
||||||
|
def change
|
||||||
|
add_belongs_to :preference_list_dossiers, :procedure
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,44 @@
|
||||||
|
class BuildDefaultPrefListDossierProcedure < ActiveRecord::Migration
|
||||||
|
class Gestionnaire < ActiveRecord::Base
|
||||||
|
has_many :assign_to, dependent: :destroy
|
||||||
|
has_many :procedures, through: :assign_to
|
||||||
|
has_many :preference_list_dossiers
|
||||||
|
end
|
||||||
|
|
||||||
|
class PreferenceListDossier < ActiveRecord::Base
|
||||||
|
belongs_to :gestionnaire
|
||||||
|
belongs_to :procedure
|
||||||
|
end
|
||||||
|
|
||||||
|
class AssignTo < ActiveRecord::Base
|
||||||
|
belongs_to :procedure
|
||||||
|
belongs_to :gestionnaire
|
||||||
|
end
|
||||||
|
|
||||||
|
class Procedure < ActiveRecord::Base
|
||||||
|
has_many :gestionnaires, through: :assign_to
|
||||||
|
has_many :preference_list_dossiers
|
||||||
|
end
|
||||||
|
|
||||||
|
def up
|
||||||
|
Gestionnaire.all.each do |gestionnaire|
|
||||||
|
gestionnaire.procedures.each do |procedure|
|
||||||
|
gestionnaire.preference_list_dossiers.where(procedure: nil).each do |preference|
|
||||||
|
clone = preference.dup
|
||||||
|
|
||||||
|
clone.procedure = procedure
|
||||||
|
clone.save
|
||||||
|
end
|
||||||
|
|
||||||
|
base_object = gestionnaire.preference_list_dossiers.where(procedure: nil).size
|
||||||
|
created_object = gestionnaire.preference_list_dossiers.where(procedure: procedure).size
|
||||||
|
|
||||||
|
raise "ERROR nb object (#{base_object} != #{created_object})" unless created_object == base_object
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def down
|
||||||
|
PreferenceListDossier.where('procedure_id IS NOT NULL')
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,7 +11,7 @@
|
||||||
#
|
#
|
||||||
# It's strongly recommended that you check this file into your version control system.
|
# It's strongly recommended that you check this file into your version control system.
|
||||||
|
|
||||||
ActiveRecord::Schema.define(version: 20160901082824) do
|
ActiveRecord::Schema.define(version: 20160906134155) do
|
||||||
|
|
||||||
# These are extensions that must be enabled in order to support this database
|
# These are extensions that must be enabled in order to support this database
|
||||||
enable_extension "plpgsql"
|
enable_extension "plpgsql"
|
||||||
|
@ -264,6 +264,7 @@ ActiveRecord::Schema.define(version: 20160901082824) do
|
||||||
t.string "order"
|
t.string "order"
|
||||||
t.string "filter"
|
t.string "filter"
|
||||||
t.integer "gestionnaire_id"
|
t.integer "gestionnaire_id"
|
||||||
|
t.integer "procedure_id"
|
||||||
end
|
end
|
||||||
|
|
||||||
create_table "procedure_paths", force: :cascade do |t|
|
create_table "procedure_paths", force: :cascade do |t|
|
||||||
|
|
|
@ -15,7 +15,7 @@ describe Admin::AccompagnateursController, type: :controller do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'PUT #update' do
|
describe 'PUT #update' do
|
||||||
subject { put :update, accompagnateur_id: gestionnaire.id ,procedure_id: procedure.id }
|
subject { put :update, accompagnateur_id: gestionnaire.id ,procedure_id: procedure.id, to: 'assign' }
|
||||||
|
|
||||||
it { expect(subject).to redirect_to admin_procedure_accompagnateurs_path(procedure_id: procedure.id) }
|
it { expect(subject).to redirect_to admin_procedure_accompagnateurs_path(procedure_id: procedure.id) }
|
||||||
|
|
||||||
|
@ -25,6 +25,10 @@ describe Admin::AccompagnateursController, type: :controller do
|
||||||
end
|
end
|
||||||
|
|
||||||
it { expect(flash[:notice]).to be_present }
|
it { expect(flash[:notice]).to be_present }
|
||||||
|
|
||||||
|
it 'default pref list dossier procedure columns are created' do
|
||||||
|
expect(procedure.preference_list_dossiers.size).to eq gestionnaire.preference_list_dossiers.where('procedure_id IS NULL').size
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
|
@ -36,6 +36,7 @@ describe Backoffice::PreferenceListDossierController, type: :controller do
|
||||||
it { expect(last.bootstrap_lg).to eq bootstrap_lg }
|
it { expect(last.bootstrap_lg).to eq bootstrap_lg }
|
||||||
it { expect(last.order).to be_nil }
|
it { expect(last.order).to be_nil }
|
||||||
it { expect(last.filter).to be_nil }
|
it { expect(last.filter).to be_nil }
|
||||||
|
it { expect(last.procedure_id).to be_nil }
|
||||||
it { expect(last.gestionnaire).to eq gestionnaire }
|
it { expect(last.gestionnaire).to eq gestionnaire }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
39
spec/facades/dossiers_list_facades_spec.rb
Normal file
39
spec/facades/dossiers_list_facades_spec.rb
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
describe DossiersListFacades do
|
||||||
|
|
||||||
|
let(:gestionnaire) { create :gestionnaire }
|
||||||
|
let(:procedure) { create :procedure }
|
||||||
|
|
||||||
|
before do
|
||||||
|
create :preference_list_dossier,
|
||||||
|
gestionnaire: gestionnaire,
|
||||||
|
table: '',
|
||||||
|
attr: 'state',
|
||||||
|
attr_decorate: 'display_state'
|
||||||
|
|
||||||
|
create :preference_list_dossier,
|
||||||
|
gestionnaire: gestionnaire,
|
||||||
|
table: '',
|
||||||
|
attr: 'state',
|
||||||
|
attr_decorate: 'display_state',
|
||||||
|
procedure_id: procedure.id
|
||||||
|
end
|
||||||
|
|
||||||
|
describe '#preference_list_dossiers_filter' do
|
||||||
|
|
||||||
|
subject { facade.preference_list_dossiers_filter }
|
||||||
|
|
||||||
|
context 'when procedure is not pasted at the facade' do
|
||||||
|
let(:facade) { described_class.new gestionnaire, 'nouveaux' }
|
||||||
|
|
||||||
|
it { expect(subject.size).to eq 6 }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when procedure is pasted at the facade' do
|
||||||
|
let(:facade) { described_class.new gestionnaire, 'nouveaux', procedure }
|
||||||
|
|
||||||
|
it { expect(subject.size).to eq 1 }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,92 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
feature 'usage of pref list dossier lateral panel by procedure', js: true do
|
||||||
|
|
||||||
|
let(:administrateur) { create(:administrateur) }
|
||||||
|
let(:gestionnaire) { create(:gestionnaire, administrateurs: [administrateur]) }
|
||||||
|
let(:procedure) { create(:procedure, administrateur: administrateur) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
create(:dossier, :with_entreprise, procedure: procedure, state: 'updated')
|
||||||
|
create :assign_to, procedure: procedure, gestionnaire: gestionnaire
|
||||||
|
visit backoffice_path
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'he is redirected to /gestionnaires/sign_id' do
|
||||||
|
expect(page).to have_css('#gestionnaire_login')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when user enter good credentials' do
|
||||||
|
before do
|
||||||
|
page.find_by_id(:gestionnaire_email).set gestionnaire.email
|
||||||
|
page.find_by_id(:gestionnaire_password).set gestionnaire.password
|
||||||
|
page.click_on 'Se connecter'
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'he is redirected to /backoffice/dossiers/' do
|
||||||
|
expect(page).to have_css('#backoffice_index')
|
||||||
|
end
|
||||||
|
|
||||||
|
describe 'user navigate to dossiers list by procedure' do
|
||||||
|
before do
|
||||||
|
visit backoffice_dossiers_procedure_path(procedure.id)
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'lateral panel is masked' do
|
||||||
|
expect(page).to have_css('#pref_list_menu', visible: false)
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when on click on pref list button' do
|
||||||
|
before do
|
||||||
|
page.click_on 'pref_list_dossier_open_action'
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'lateral panel is appeared' do
|
||||||
|
expect(page).to have_css('#pref_list_menu')
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when on click on add attribut button' do
|
||||||
|
before do
|
||||||
|
page.click_on 'add_pref_list_entreprise_siren'
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'preference list panel is brought up to date' do
|
||||||
|
wait_for_ajax
|
||||||
|
expect(page).to have_css('#delete_pref_list_entreprise_siren')
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'dossier is brought up to date' do
|
||||||
|
wait_for_ajax
|
||||||
|
expect(page).to have_selector("a.sortable[data-attr='entreprise.siren']")
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when on click on delete attribut button' do
|
||||||
|
before do
|
||||||
|
page.click_on 'delete_pref_list_entreprise_siren'
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'preference list panel is brought up to date' do
|
||||||
|
wait_for_ajax
|
||||||
|
expect(page).not_to have_css('#delete_pref_list_entreprise_siren')
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'dossier is brought up to date' do
|
||||||
|
wait_for_ajax
|
||||||
|
expect(page).not_to have_selector("a.sortable[data-attr='entreprise.siren']")
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when on click on close pref list button' do
|
||||||
|
before do
|
||||||
|
page.click_on 'pref_list_dossier_close_action'
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'lateral panel is masked' do
|
||||||
|
expect(page).to have_css('#pref_list_menu', visible: false)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -11,6 +11,7 @@ describe PreferenceListDossier do
|
||||||
it { is_expected.to have_db_column(:gestionnaire_id) }
|
it { is_expected.to have_db_column(:gestionnaire_id) }
|
||||||
|
|
||||||
it { is_expected.to belong_to(:gestionnaire) }
|
it { is_expected.to belong_to(:gestionnaire) }
|
||||||
|
it { is_expected.to belong_to(:procedure) }
|
||||||
|
|
||||||
describe '.available_columns' do
|
describe '.available_columns' do
|
||||||
subject { PreferenceListDossier.available_columns }
|
subject { PreferenceListDossier.available_columns }
|
||||||
|
|
|
@ -9,6 +9,7 @@ describe Procedure do
|
||||||
it { is_expected.to have_one(:mail_received) }
|
it { is_expected.to have_one(:mail_received) }
|
||||||
it { is_expected.to have_one(:module_api_carto) }
|
it { is_expected.to have_one(:module_api_carto) }
|
||||||
it { is_expected.to belong_to(:administrateur) }
|
it { is_expected.to belong_to(:administrateur) }
|
||||||
|
it { is_expected.to have_many(:preference_list_dossiers) }
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'attributes' do
|
describe 'attributes' do
|
||||||
|
|
|
@ -1,11 +1,12 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe AccompagnateurService do
|
describe AccompagnateurService do
|
||||||
describe '#change_assignement!' do
|
|
||||||
|
|
||||||
let(:procedure) { create :procedure }
|
let(:procedure) { create :procedure }
|
||||||
let(:accompagnateur) { create :gestionnaire }
|
let(:accompagnateur) { create :gestionnaire }
|
||||||
|
|
||||||
|
describe '#change_assignement!' do
|
||||||
|
|
||||||
subject { AccompagnateurService.change_assignement! accompagnateur, procedure, to }
|
subject { AccompagnateurService.change_assignement! accompagnateur, procedure, to }
|
||||||
|
|
||||||
context 'when accompagnateur is not assign at the procedure' do
|
context 'when accompagnateur is not assign at the procedure' do
|
||||||
|
@ -29,4 +30,35 @@ describe AccompagnateurService do
|
||||||
it { expect(accompagnateur.procedures).not_to include procedure }
|
it { expect(accompagnateur.procedures).not_to include procedure }
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
describe '#build_default_column' do
|
||||||
|
|
||||||
|
subject { AccompagnateurService.build_default_column accompagnateur, procedure, to }
|
||||||
|
|
||||||
|
context 'when to is not assign' do
|
||||||
|
let(:to) { AccompagnateurService::NOT_ASSIGN }
|
||||||
|
|
||||||
|
it { is_expected.to be_nil }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when to is assign' do
|
||||||
|
let(:to) { AccompagnateurService::ASSIGN }
|
||||||
|
|
||||||
|
context 'when gestionnaire has already preference for this procedure' do
|
||||||
|
before do
|
||||||
|
create :preference_list_dossier, gestionnaire: accompagnateur, procedure: procedure
|
||||||
|
end
|
||||||
|
|
||||||
|
it { is_expected.to be_nil }
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'when gestionnaire has not preference for this procedure' do
|
||||||
|
before do
|
||||||
|
subject
|
||||||
|
end
|
||||||
|
|
||||||
|
it { expect(accompagnateur.preference_list_dossiers.where('procedure_id IS NULL').size).to eq procedure.preference_list_dossiers.size }
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
Loading…
Reference in a new issue