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 { #wrap {
min-height: 100%; min-height: 100%;
margin-bottom: -50px; margin-bottom: -50px;
overflow: hidden;
} }
#wrap:after { #wrap:after {

View file

@ -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;

View file

@ -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;

View file

@ -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 {

View file

@ -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'

View file

@ -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)

View file

@ -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

View file

@ -96,22 +96,26 @@ 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)
acc = acc.merge({ procedure.types_de_champ.inject({}) do |acc, type_de_champ|
"type_de_champ_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2) acc = acc.merge({
}) if type_de_champ.field_for_list? "type_de_champ_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2)
acc }) if type_de_champ.field_for_list?
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)
acc = acc.merge({ procedure.types_de_champ_private.inject({}) do |acc, type_de_champ|
"type_de_champ_private_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2) acc = acc.merge({
}) if type_de_champ.field_for_list? "type_de_champ_private_#{type_de_champ.id}" => create_column(type_de_champ.libelle, table, type_de_champ.id, 'value', 2)
acc }) if type_de_champ.field_for_list?
acc
end
end end
end end
@ -126,4 +130,4 @@ class PreferenceListDossier < ActiveRecord::Base
filter: nil filter: nil
} }
end end
end end

View file

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

View file

@ -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

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)} %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
- tables.second.each do |columns| - if tables.second
%li - tables.second.each do |columns|
= form_tag backoffice_preference_list_dossier_add_path, method: :post, remote: true do %li
= hidden_field_tag :libelle, columns.second[:libelle] = form_tag backoffice_preference_list_dossier_add_path, method: :post, remote: true do
= hidden_field_tag :table, columns.second[:table] = hidden_field_tag :libelle, columns.second[:libelle]
= hidden_field_tag :attr, columns.second[:attr] = hidden_field_tag :table, columns.second[:table]
= hidden_field_tag :attr_decorate, columns.second[:attr_decorate] = hidden_field_tag :attr, columns.second[:attr]
= hidden_field_tag :bootstrap_lg, columns.second[:bootstrap_lg] = hidden_field_tag :attr_decorate, columns.second[:attr_decorate]
= hidden_field_tag :procedure_id, @facade_data_view.procedure_id = hidden_field_tag :bootstrap_lg, columns.second[:bootstrap_lg]
= hidden_field_tag :procedure_id, @facade_data_view.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]}"}
%i.fa.fa-plus %i.fa.fa-plus

View file

@ -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

View file

@ -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' }

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 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 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

View file

@ -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) }