Merge branch 'develop' into staging
This commit is contained in:
commit
affd3e3f4f
17 changed files with 143 additions and 47 deletions
|
@ -46,6 +46,7 @@ form {
|
||||||
#wrap {
|
#wrap {
|
||||||
min-height: 100%;
|
min-height: 100%;
|
||||||
margin-bottom: -50px;
|
margin-bottom: -50px;
|
||||||
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
|
|
||||||
#wrap:after {
|
#wrap:after {
|
||||||
|
|
|
@ -44,7 +44,6 @@ h5 span {
|
||||||
|
|
||||||
#procedure_list {
|
#procedure_list {
|
||||||
margin-left: -10px;
|
margin-left: -10px;
|
||||||
overflow: scroll;
|
|
||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
a, a:hover {
|
a, a:hover {
|
||||||
color: #FFFFFF;
|
color: #FFFFFF;
|
||||||
|
|
|
@ -1,13 +1,14 @@
|
||||||
#left-pannel {
|
#left-pannel {
|
||||||
padding: 60px 0 0 10px;
|
margin-top: 60px;
|
||||||
|
padding: 0 0 0 10px;
|
||||||
background-color: #003189;
|
background-color: #003189;
|
||||||
height: 100%;
|
height: calc(100% - 60px);
|
||||||
position: fixed;
|
position: fixed;
|
||||||
top: 0;
|
top: 0;
|
||||||
left: 0;
|
left: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
color: white;
|
color: white;
|
||||||
overflow: scroll;
|
overflow-y: scroll;
|
||||||
|
|
||||||
#first-block {
|
#first-block {
|
||||||
font-family: Arial;
|
font-family: Arial;
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
width: 470px;
|
width: 470px;
|
||||||
height: calc(100% - 25px);
|
height: calc(100% - 25px);
|
||||||
padding: 15px;
|
padding: 15px;
|
||||||
overflow: scroll;
|
overflow-y: scroll;
|
||||||
}
|
}
|
||||||
|
|
||||||
.open_pref_list {
|
.open_pref_list {
|
||||||
|
|
|
@ -105,6 +105,7 @@ class Admin::ProceduresController < AdminController
|
||||||
if procedure_path
|
if procedure_path
|
||||||
if procedure_path.administrateur_id == current_administrateur.id
|
if procedure_path.administrateur_id == current_administrateur.id
|
||||||
procedure_path.procedure.archive
|
procedure_path.procedure.archive
|
||||||
|
procedure_path.delete
|
||||||
else
|
else
|
||||||
@mine = false
|
@mine = false
|
||||||
return render '/admin/procedures/publish', formats: 'js'
|
return render '/admin/procedures/publish', formats: 'js'
|
||||||
|
|
|
@ -119,7 +119,7 @@ class Users::DossiersController < UsersController
|
||||||
@facade.dossier.update_attributes!(update_params)
|
@facade.dossier.update_attributes!(update_params)
|
||||||
rescue
|
rescue
|
||||||
flash.now.alert = @facade.dossier.errors.full_messages.join('<br />').html_safe
|
flash.now.alert = @facade.dossier.errors.full_messages.join('<br />').html_safe
|
||||||
return render 'show'
|
return redirect_to users_dossier_path(id: @facade.dossier.id)
|
||||||
end
|
end
|
||||||
if @facade.dossier.procedure.module_api_carto.use_api_carto
|
if @facade.dossier.procedure.module_api_carto.use_api_carto
|
||||||
redirect_to url_for(controller: :carte, action: :show, dossier_id: @facade.dossier.id)
|
redirect_to url_for(controller: :carte, action: :show, dossier_id: @facade.dossier.id)
|
||||||
|
|
|
@ -3,6 +3,7 @@ class Individual < ActiveRecord::Base
|
||||||
|
|
||||||
validates_uniqueness_of :dossier_id
|
validates_uniqueness_of :dossier_id
|
||||||
|
|
||||||
|
validates :gender, presence: true, allow_nil: false, allow_blank: false
|
||||||
validates :nom, presence: true, allow_nil: false, allow_blank: false
|
validates :nom, presence: true, allow_nil: false, allow_blank: false
|
||||||
validates :prenom, presence: true, allow_nil: false, allow_blank: false
|
validates :prenom, presence: true, allow_nil: false, allow_blank: false
|
||||||
validates :birthdate, presence: true, allow_nil: false, allow_blank: false
|
validates :birthdate, presence: true, allow_nil: false, allow_blank: false
|
||||||
|
|
|
@ -96,24 +96,28 @@ class PreferenceListDossier < ActiveRecord::Base
|
||||||
def self.columns_champs_procedure procedure_id
|
def self.columns_champs_procedure procedure_id
|
||||||
table = 'champs'
|
table = 'champs'
|
||||||
|
|
||||||
Procedure.find(procedure_id).types_de_champ.inject({}) do |acc, type_de_champ|
|
if procedure = Procedure.find_by(id: procedure_id)
|
||||||
|
procedure.types_de_champ.inject({}) do |acc, type_de_champ|
|
||||||
acc = acc.merge({
|
acc = acc.merge({
|
||||||
"type_de_champ_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2)
|
"type_de_champ_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2)
|
||||||
}) if type_de_champ.field_for_list?
|
}) if type_de_champ.field_for_list?
|
||||||
acc
|
acc
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def self.columns_champs_private_procedure procedure_id
|
def self.columns_champs_private_procedure procedure_id
|
||||||
table = 'champs_private'
|
table = 'champs_private'
|
||||||
|
|
||||||
Procedure.find(procedure_id).types_de_champ_private.inject({}) do |acc, type_de_champ|
|
if procedure = Procedure.find_by(id: procedure_id)
|
||||||
|
procedure.types_de_champ_private.inject({}) do |acc, type_de_champ|
|
||||||
acc = acc.merge({
|
acc = acc.merge({
|
||||||
"type_de_champ_private_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2)
|
"type_de_champ_private_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2)
|
||||||
}) if type_de_champ.field_for_list?
|
}) if type_de_champ.field_for_list?
|
||||||
acc
|
acc
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def self.create_column libelle, table, attr, attr_decorate, bootstrap_lg
|
def self.create_column libelle, table, attr, attr_decorate, bootstrap_lg
|
||||||
{
|
{
|
||||||
|
|
|
@ -89,6 +89,7 @@ class DossiersListGestionnaireService
|
||||||
def change_page! new_page
|
def change_page! new_page
|
||||||
pref = current_preference_smart_listing_page
|
pref = current_preference_smart_listing_page
|
||||||
|
|
||||||
|
if pref
|
||||||
unless pref.liste == @liste && pref.procedure == @procedure
|
unless pref.liste == @liste && pref.procedure == @procedure
|
||||||
pref.liste = @liste
|
pref.liste = @liste
|
||||||
pref.procedure = @procedure
|
pref.procedure = @procedure
|
||||||
|
@ -104,6 +105,7 @@ class DossiersListGestionnaireService
|
||||||
pref.save
|
pref.save
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def change_sort! new_sort
|
def change_sort! new_sort
|
||||||
return if new_sort.blank?
|
return if new_sort.blank?
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
- unless smart_listing.empty?
|
- unless smart_listing.empty?
|
||||||
%table.table
|
%table.table#dossiers_list
|
||||||
%thead
|
%thead
|
||||||
%th#ID= smart_listing.sortable 'ID', 'id'
|
%th#ID= smart_listing.sortable 'ID', 'id'
|
||||||
%th#libelle= smart_listing.sortable 'Libellé', 'libelle'
|
%th#libelle= smart_listing.sortable 'Libellé', 'libelle'
|
||||||
|
@ -10,12 +10,12 @@
|
||||||
|
|
||||||
- @procedures.each do |procedure|
|
- @procedures.each do |procedure|
|
||||||
- procedure = procedure.decorate
|
- procedure = procedure.decorate
|
||||||
%tr
|
%tr{id: "tr_dossier_#{procedure.id}", 'data-dossier_url' => admin_procedure_path(id: procedure.id)}
|
||||||
%td= procedure.id
|
%td= procedure.id
|
||||||
%td.col-md-6.col-lg-6
|
%td.col-md-6.col-lg-6
|
||||||
= link_to(procedure.libelle, "/admin/procedures/#{procedure.id}")
|
= procedure.libelle
|
||||||
- if @active_class
|
- if @active_class
|
||||||
%td= link_to procedure.lien, procedure.lien, class: 'procedure-lien'
|
%td= link_to procedure.lien, procedure.lien, class: 'procedure-lien', 'data-method' => :get
|
||||||
%td
|
%td
|
||||||
= procedure.created_at_fr
|
= procedure.created_at_fr
|
||||||
%td
|
%td
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
%td.col-sm-5.col-md-5.col-lg-5{style: 'vertical-align: top', colspan: (tables.first == :champs ? 2 : 1)}
|
%td.col-sm-5.col-md-5.col-lg-5{style: 'vertical-align: top', colspan: (tables.first == :champs ? 2 : 1)}
|
||||||
%h5= tables.first.to_s.gsub('_', ' ').capitalize
|
%h5= tables.first.to_s.gsub('_', ' ').capitalize
|
||||||
%ul
|
%ul
|
||||||
|
- if tables.second
|
||||||
- tables.second.each do |columns|
|
- tables.second.each do |columns|
|
||||||
%li
|
%li
|
||||||
= form_tag backoffice_preference_list_dossier_add_path, method: :post, remote: true do
|
= form_tag backoffice_preference_list_dossier_add_path, method: :post, remote: true do
|
||||||
|
|
|
@ -299,7 +299,7 @@ describe Admin::ProceduresController, type: :controller do
|
||||||
it 'archive previous procedure' do
|
it 'archive previous procedure' do
|
||||||
expect(procedure2.published).to be_truthy
|
expect(procedure2.published).to be_truthy
|
||||||
expect(procedure2.archived).to be_truthy
|
expect(procedure2.archived).to be_truthy
|
||||||
expect(procedure2.path).not_to be_nil
|
expect(procedure2.path).to be_nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -350,13 +350,26 @@ describe Users::DossiersController, type: :controller do
|
||||||
end
|
end
|
||||||
|
|
||||||
describe 'PUT #update' do
|
describe 'PUT #update' do
|
||||||
subject { put :update, params: {id: dossier_id, dossier: {id: dossier_id, autorisation_donnees: autorisation_donnees}} }
|
let(:params) { {id: dossier_id, dossier: {id: dossier_id, autorisation_donnees: autorisation_donnees}} }
|
||||||
|
subject { put :update, params: params }
|
||||||
|
|
||||||
before do
|
before do
|
||||||
sign_in dossier.user
|
sign_in dossier.user
|
||||||
subject
|
subject
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context 'when procedure is for individual' do
|
||||||
|
let(:params) { {id: dossier_id, dossier: {id: dossier_id, autorisation_donnees: '1', individual_attributes: individual_params}} }
|
||||||
|
let(:individual_params) { {id: dossier.individual.id, gender: 'Mr', nom: 'Julien', prenom: 'Xavier', birthdate: '20/01/1991', dossier_id: dossier.id} }
|
||||||
|
let(:procedure) { create(:procedure, :published, for_individual: true) }
|
||||||
|
|
||||||
|
it { expect(dossier.individual.gender).to eq 'Mr' }
|
||||||
|
it { expect(dossier.individual.nom).to eq 'Xavier' }
|
||||||
|
it { expect(dossier.individual.prenom).to eq 'Julien' }
|
||||||
|
it { expect(dossier.individual.birthdate).to eq '20/01/1991' }
|
||||||
|
it { expect(dossier.procedure.for_individual).to eq true }
|
||||||
|
end
|
||||||
|
|
||||||
context 'when Checkbox is checked' do
|
context 'when Checkbox is checked' do
|
||||||
let(:autorisation_donnees) { '1' }
|
let(:autorisation_donnees) { '1' }
|
||||||
|
|
||||||
|
|
68
spec/features/backoffice/index_show_procedure_spec.rb
Normal file
68
spec/features/backoffice/index_show_procedure_spec.rb
Normal file
|
@ -0,0 +1,68 @@
|
||||||
|
require 'spec_helper'
|
||||||
|
|
||||||
|
feature 'As an Accompagnateur I can navigate and use each functionnality around procedures and their dossiers', js: true do
|
||||||
|
|
||||||
|
let(:user) { create(:user) }
|
||||||
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
|
let(:procedure_1) { create(:procedure, :with_type_de_champ, libelle: 'procedure 1') }
|
||||||
|
let(:procedure_2) { create(:procedure, :with_type_de_champ, libelle: 'procedure 2') }
|
||||||
|
|
||||||
|
before 'Assign procedures to Accompagnateur and generating dossiers for each' do
|
||||||
|
create :assign_to, gestionnaire: gestionnaire, procedure: procedure_1
|
||||||
|
create :assign_to, gestionnaire: gestionnaire, procedure: procedure_2
|
||||||
|
20.times do
|
||||||
|
Dossier.create(procedure_id: procedure_1.id.to_s, user: user, state: 'validated')
|
||||||
|
end
|
||||||
|
15.times do
|
||||||
|
Dossier.create(procedure_id: procedure_2.id.to_s, user: user, state: 'validated')
|
||||||
|
end
|
||||||
|
login_as gestionnaire, scope: :gestionnaire
|
||||||
|
visit backoffice_path
|
||||||
|
end
|
||||||
|
|
||||||
|
context 'On index' do
|
||||||
|
|
||||||
|
if false
|
||||||
|
scenario 'Switching between procedures' do
|
||||||
|
page.all('#procedure_list a').first.click
|
||||||
|
expect(page).to have_current_path(backoffice_dossiers_procedure_path(id: procedure_1.id.to_s), only_path: true)
|
||||||
|
expect(page.find('#all_dossiers .count').text).to eq('20 dossiers')
|
||||||
|
page.all('#procedure_list a').last.click
|
||||||
|
expect(page).to have_current_path(backoffice_dossiers_procedure_path(id: procedure_2.id.to_s), only_path: true)
|
||||||
|
expect(page.find('#all_dossiers .count').text).to eq('15 dossiers')
|
||||||
|
#save_and_open_page
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'Searching with search bar' do
|
||||||
|
page.find_by_id('search_area').trigger('click')
|
||||||
|
fill_in 'q', with: '15'
|
||||||
|
page.find_by_id('search_button').click
|
||||||
|
page.find_by_id('tr_dossier_15').click
|
||||||
|
expect(page).to have_current_path("/backoffice/dossiers/15")
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'Following dossier' do
|
||||||
|
page.all('#procedure_list a').first.click
|
||||||
|
expect(page.all('#follow_dossiers .smart-listing')[0]['data-item-count']).to eq ("0")
|
||||||
|
page.find_by_id('all_dossiers').click
|
||||||
|
expect(page.all('#dossiers_list a').first.text).to eq('Suivre')
|
||||||
|
page.all('#dossiers_list a').first.click
|
||||||
|
expect(page.all('#follow_dossiers .smart-listing')[0]['data-item-count']).to eq ("1")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'Using sort' do
|
||||||
|
end
|
||||||
|
|
||||||
|
if false
|
||||||
|
scenario 'Using pagination' do
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'Using filter' do
|
||||||
|
end
|
||||||
|
|
||||||
|
scenario 'Have an export button' do
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
|
@ -41,8 +41,12 @@ feature 'As a User I want to sort and paginate dossiers', js: true do
|
||||||
page.find('.next_page a').click
|
page.find('.next_page a').click
|
||||||
wait_for_ajax
|
wait_for_ajax
|
||||||
expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('15')
|
expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('15')
|
||||||
|
page.find('.prev a').click
|
||||||
|
wait_for_ajax
|
||||||
|
page.find('.prev a').click
|
||||||
|
wait_for_ajax
|
||||||
|
expect(page.all(:css, '#dossiers_list tr')[1].text.split(" ").first).to eq('1')
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
require 'spec_helper'
|
require 'spec_helper'
|
||||||
|
|
||||||
describe Individual do
|
describe Individual do
|
||||||
|
it { is_expected.to have_db_column(:gender) }
|
||||||
it { is_expected.to have_db_column(:nom) }
|
it { is_expected.to have_db_column(:nom) }
|
||||||
it { is_expected.to have_db_column(:prenom) }
|
it { is_expected.to have_db_column(:prenom) }
|
||||||
it { is_expected.to have_db_column(:birthdate) }
|
it { is_expected.to have_db_column(:birthdate) }
|
||||||
|
|
Loading…
Reference in a new issue