Merge branch 'develop' into staging

This commit is contained in:
Xavier J 2016-12-21 14:01:07 +01:00
commit affd3e3f4f
17 changed files with 143 additions and 47 deletions

View file

@ -46,6 +46,7 @@ form {
#wrap {
min-height: 100%;
margin-bottom: -50px;
overflow: hidden;
}
#wrap:after {

View file

@ -44,7 +44,6 @@ h5 span {
#procedure_list {
margin-left: -10px;
overflow: scroll;
margin-top: 20px;
a, a:hover {
color: #FFFFFF;

View file

@ -1,13 +1,14 @@
#left-pannel {
padding: 60px 0 0 10px;
margin-top: 60px;
padding: 0 0 0 10px;
background-color: #003189;
height: 100%;
height: calc(100% - 60px);
position: fixed;
top: 0;
left: 0;
bottom: 0;
color: white;
overflow: scroll;
overflow-y: scroll;
#first-block {
font-family: Arial;

View file

@ -11,7 +11,7 @@
width: 470px;
height: calc(100% - 25px);
padding: 15px;
overflow: scroll;
overflow-y: scroll;
}
.open_pref_list {

View file

@ -105,6 +105,7 @@ class Admin::ProceduresController < AdminController
if procedure_path
if procedure_path.administrateur_id == current_administrateur.id
procedure_path.procedure.archive
procedure_path.delete
else
@mine = false
return render '/admin/procedures/publish', formats: 'js'

View file

@ -119,7 +119,7 @@ class Users::DossiersController < UsersController
@facade.dossier.update_attributes!(update_params)
rescue
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
if @facade.dossier.procedure.module_api_carto.use_api_carto
redirect_to url_for(controller: :carte, action: :show, dossier_id: @facade.dossier.id)

View file

@ -3,6 +3,7 @@ class Individual < ActiveRecord::Base
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 :prenom, presence: true, allow_nil: false, allow_blank: false
validates :birthdate, presence: true, allow_nil: false, allow_blank: false

View file

@ -96,22 +96,26 @@ class PreferenceListDossier < ActiveRecord::Base
def self.columns_champs_procedure procedure_id
table = 'champs'
Procedure.find(procedure_id).types_de_champ.inject({}) do |acc, type_de_champ|
acc = acc.merge({
"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?
acc
if procedure = Procedure.find_by(id: procedure_id)
procedure.types_de_champ.inject({}) do |acc, type_de_champ|
acc = acc.merge({
"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?
acc
end
end
end
def self.columns_champs_private_procedure procedure_id
table = 'champs_private'
Procedure.find(procedure_id).types_de_champ_private.inject({}) do |acc, type_de_champ|
acc = acc.merge({
"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?
acc
if procedure = Procedure.find_by(id: procedure_id)
procedure.types_de_champ_private.inject({}) do |acc, type_de_champ|
acc = acc.merge({
"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?
acc
end
end
end
@ -126,4 +130,4 @@ class PreferenceListDossier < ActiveRecord::Base
filter: nil
}
end
end
end

View file

@ -89,20 +89,22 @@ class DossiersListGestionnaireService
def change_page! new_page
pref = current_preference_smart_listing_page
unless pref.liste == @liste && pref.procedure == @procedure
pref.liste = @liste
pref.procedure = @procedure
if pref
unless pref.liste == @liste && pref.procedure == @procedure
pref.liste = @liste
pref.procedure = @procedure
if new_page.nil?
pref.page = 1
if new_page.nil?
pref.page = 1
pref.save
end
end
unless new_page.nil?
pref.page = new_page
pref.save
end
end
unless new_page.nil?
pref.page = new_page
pref.save
end
end
def change_sort! new_sort

View file

@ -1,5 +1,5 @@
- unless smart_listing.empty?
%table.table
%table.table#dossiers_list
%thead
%th#ID= smart_listing.sortable 'ID', 'id'
%th#libelle= smart_listing.sortable 'Libellé', 'libelle'
@ -10,12 +10,12 @@
- @procedures.each do |procedure|
- procedure = procedure.decorate
%tr
%tr{id: "tr_dossier_#{procedure.id}", 'data-dossier_url' => admin_procedure_path(id: procedure.id)}
%td= procedure.id
%td.col-md-6.col-lg-6
= link_to(procedure.libelle, "/admin/procedures/#{procedure.id}")
= procedure.libelle
- 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
= procedure.created_at_fr
%td

View file

@ -30,17 +30,18 @@
%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
%ul
- tables.second.each do |columns|
%li
= form_tag backoffice_preference_list_dossier_add_path, method: :post, remote: true do
= hidden_field_tag :libelle, columns.second[:libelle]
= hidden_field_tag :table, columns.second[:table]
= hidden_field_tag :attr, columns.second[:attr]
= hidden_field_tag :attr_decorate, columns.second[:attr_decorate]
= hidden_field_tag :bootstrap_lg, columns.second[:bootstrap_lg]
= hidden_field_tag :procedure_id, @facade_data_view.procedure_id
- if tables.second
- tables.second.each do |columns|
%li
= form_tag backoffice_preference_list_dossier_add_path, method: :post, remote: true do
= hidden_field_tag :libelle, columns.second[:libelle]
= hidden_field_tag :table, columns.second[:table]
= hidden_field_tag :attr, columns.second[:attr]
= hidden_field_tag :attr_decorate, columns.second[:attr_decorate]
= hidden_field_tag :bootstrap_lg, columns.second[:bootstrap_lg]
= hidden_field_tag :procedure_id, @facade_data_view.procedure_id
= columns.second[:libelle]
%button.btn.btn-default.btn-xs{type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}"}
%i.fa.fa-plus
= columns.second[:libelle]
%button.btn.btn-default.btn-xs{type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}"}
%i.fa.fa-plus

View file

@ -299,7 +299,7 @@ describe Admin::ProceduresController, type: :controller do
it 'archive previous procedure' do
expect(procedure2.published).to be_truthy
expect(procedure2.archived).to be_truthy
expect(procedure2.path).not_to be_nil
expect(procedure2.path).to be_nil
end
end

View file

@ -350,13 +350,26 @@ describe Users::DossiersController, type: :controller do
end
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
sign_in dossier.user
subject
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
let(:autorisation_donnees) { '1' }

View 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

View file

@ -48,4 +48,4 @@ feature 'on backoffice page' do
end
end
end
end
end

View file

@ -41,8 +41,12 @@ feature 'As a User I want to sort and paginate dossiers', js: true do
page.find('.next_page a').click
wait_for_ajax
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

View file

@ -1,6 +1,7 @@
require 'spec_helper'
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(:prenom) }
it { is_expected.to have_db_column(:birthdate) }