Merge branch 'dev'
This commit is contained in:
commit
47e4039a2a
25 changed files with 197 additions and 185 deletions
|
@ -1,32 +1,46 @@
|
||||||
version: 2
|
version: 2
|
||||||
|
|
||||||
|
defaults: &defaults
|
||||||
|
working_directory: /tps
|
||||||
|
docker:
|
||||||
|
- image: ruby:2.3.5
|
||||||
|
- image: postgres:9.4.1
|
||||||
|
environment:
|
||||||
|
POSTGRES_USER: tps_test
|
||||||
|
POSTGRES_PASSWORD: tps_test
|
||||||
|
POSTGRES_DB: tps_test
|
||||||
|
|
||||||
|
install_system_deps: &install_system_deps
|
||||||
|
run:
|
||||||
|
name: Install System Dependencies
|
||||||
|
command: apt-get update -qq && apt-get install -y build-essential nodejs
|
||||||
|
|
||||||
|
restore_phantomjs_cache: &restore_phantomjs_cache
|
||||||
|
restore_cache:
|
||||||
|
key: phantomjs-2-1-1
|
||||||
|
|
||||||
|
bundle_restore_cache: &bundle_restore_cache
|
||||||
|
restore_cache:
|
||||||
|
key: bundle-install-v4-{{ arch }}-{{ checksum "Gemfile.lock" }}
|
||||||
|
|
||||||
|
bundle_install: &bundle_install
|
||||||
|
run:
|
||||||
|
name: Install Ruby Dependencies
|
||||||
|
command: bundle install
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build:
|
build:
|
||||||
parallelism: 3
|
<<: *defaults
|
||||||
docker:
|
|
||||||
- image: ruby:2.3.1
|
|
||||||
- image: postgres:9.4.1
|
|
||||||
environment:
|
|
||||||
POSTGRES_USER: tps_test
|
|
||||||
POSTGRES_PASSWORD: tps_test
|
|
||||||
POSTGRES_DB: tps_test
|
|
||||||
|
|
||||||
working_directory: /tps
|
|
||||||
steps:
|
steps:
|
||||||
- checkout
|
- checkout
|
||||||
- run:
|
- *install_system_deps
|
||||||
name: Install System Dependencies
|
- *bundle_restore_cache
|
||||||
command: apt-get update -qq && apt-get install -y build-essential nodejs
|
- *bundle_install
|
||||||
- restore_cache:
|
|
||||||
key: bundle-install-v3-{{ arch }}-{{ checksum "Gemfile.lock" }}
|
|
||||||
- run:
|
|
||||||
name: Install Ruby Dependencies
|
|
||||||
command: bundle install
|
|
||||||
- save_cache:
|
- save_cache:
|
||||||
key: bundle-install-v3-{{ arch }}-{{ checksum "Gemfile.lock" }}
|
key: bundle-install-v4-{{ arch }}-{{ checksum "Gemfile.lock" }}
|
||||||
paths:
|
paths:
|
||||||
- /usr/local/bundle
|
- /usr/local/bundle
|
||||||
- restore_cache:
|
- *restore_phantomjs_cache
|
||||||
key: phantomjs-2-1-1
|
|
||||||
- run:
|
- run:
|
||||||
name: Install PhantomJS Dependencies
|
name: Install PhantomJS Dependencies
|
||||||
command: |
|
command: |
|
||||||
|
@ -42,6 +56,15 @@ jobs:
|
||||||
key: phantomjs-2-1-1
|
key: phantomjs-2-1-1
|
||||||
paths:
|
paths:
|
||||||
- /usr/local/bin/phantomjs
|
- /usr/local/bin/phantomjs
|
||||||
|
test:
|
||||||
|
<<: *defaults
|
||||||
|
parallelism: 4
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- *install_system_deps
|
||||||
|
- *restore_phantomjs_cache
|
||||||
|
- *bundle_restore_cache
|
||||||
|
- *bundle_install
|
||||||
- run:
|
- run:
|
||||||
environment:
|
environment:
|
||||||
DATABASE_URL: "postgres://tps_test@localhost:5432/tps_test"
|
DATABASE_URL: "postgres://tps_test@localhost:5432/tps_test"
|
||||||
|
@ -52,8 +75,20 @@ jobs:
|
||||||
DATABASE_URL: "postgres://tps_test@localhost:5432/tps_test"
|
DATABASE_URL: "postgres://tps_test@localhost:5432/tps_test"
|
||||||
name: Run Tests, Splitted by Timings
|
name: Run Tests, Splitted by Timings
|
||||||
command: |
|
command: |
|
||||||
TESTFILES=$(circleci tests glob "spec/**/*.rb"| xargs -n 1 echo | grep -v "spec/factories/" | tr " " "\n" | circleci tests split --split-by=timings)
|
bundle exec rspec --profile 10 \
|
||||||
bundle exec rspec --color --require spec_helper -- ${TESTFILES}
|
--format RspecJunitFormatter \
|
||||||
|
--out $CIRCLE_TEST_REPORTS/rspec.xml \
|
||||||
|
--format progress \
|
||||||
|
$(circleci tests glob "spec/**/*_spec.rb" | circleci tests split --split-by=timings)
|
||||||
|
- store_test_results:
|
||||||
|
path: $CIRCLE_TEST_REPORTS/rspec.xml
|
||||||
|
lint:
|
||||||
|
<<: *defaults
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- *install_system_deps
|
||||||
|
- *bundle_restore_cache
|
||||||
|
- *bundle_install
|
||||||
- run:
|
- run:
|
||||||
name: Run rubocop
|
name: Run rubocop
|
||||||
command: bundle exec rubocop -R
|
command: bundle exec rubocop -R
|
||||||
|
@ -66,6 +101,13 @@ jobs:
|
||||||
- run:
|
- run:
|
||||||
name: Run scss-lint
|
name: Run scss-lint
|
||||||
command: bundle exec scss-lint app/assets/stylesheets/
|
command: bundle exec scss-lint app/assets/stylesheets/
|
||||||
|
deploy:
|
||||||
|
<<: *defaults
|
||||||
|
steps:
|
||||||
|
- checkout
|
||||||
|
- *install_system_deps
|
||||||
|
- *bundle_restore_cache
|
||||||
|
- *bundle_install
|
||||||
- add_ssh_keys:
|
- add_ssh_keys:
|
||||||
fingerprints:
|
fingerprints:
|
||||||
- "0a:67:42:7d:7e:b7:e1:3c:48:8f:bf:68:10:51:a8:44"
|
- "0a:67:42:7d:7e:b7:e1:3c:48:8f:bf:68:10:51:a8:44"
|
||||||
|
@ -78,3 +120,24 @@ jobs:
|
||||||
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
if [ "${CIRCLE_BRANCH}" == "master" ]; then
|
||||||
bundle exec rake deploy_ha to=production
|
bundle exec rake deploy_ha to=production
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
workflows:
|
||||||
|
version: 2
|
||||||
|
build_and_test:
|
||||||
|
jobs:
|
||||||
|
- build
|
||||||
|
- test:
|
||||||
|
requires:
|
||||||
|
- build
|
||||||
|
- lint:
|
||||||
|
requires:
|
||||||
|
- build
|
||||||
|
- deploy:
|
||||||
|
filters:
|
||||||
|
branches:
|
||||||
|
only:
|
||||||
|
- dev
|
||||||
|
- master
|
||||||
|
requires:
|
||||||
|
- test
|
||||||
|
- lint
|
||||||
|
|
1
Gemfile
1
Gemfile
|
@ -153,4 +153,5 @@ group :development, :test do
|
||||||
|
|
||||||
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
||||||
gem 'dotenv-rails'
|
gem 'dotenv-rails'
|
||||||
|
gem 'rspec_junit_formatter'
|
||||||
end
|
end
|
||||||
|
|
|
@ -535,6 +535,8 @@ GEM
|
||||||
rspec-mocks (~> 3.5.0)
|
rspec-mocks (~> 3.5.0)
|
||||||
rspec-support (~> 3.5.0)
|
rspec-support (~> 3.5.0)
|
||||||
rspec-support (3.5.0)
|
rspec-support (3.5.0)
|
||||||
|
rspec_junit_formatter (0.3.0)
|
||||||
|
rspec-core (>= 2, < 4, != 2.12.0)
|
||||||
rubocop (0.49.1)
|
rubocop (0.49.1)
|
||||||
parallel (~> 1.10)
|
parallel (~> 1.10)
|
||||||
parser (>= 2.3.3.1, < 3.0)
|
parser (>= 2.3.3.1, < 3.0)
|
||||||
|
@ -731,6 +733,7 @@ DEPENDENCIES
|
||||||
rest-client
|
rest-client
|
||||||
rgeo-geojson
|
rgeo-geojson
|
||||||
rspec-rails (~> 3.0)
|
rspec-rails (~> 3.0)
|
||||||
|
rspec_junit_formatter
|
||||||
rubocop
|
rubocop
|
||||||
sass-rails (~> 5.0)
|
sass-rails (~> 5.0)
|
||||||
scenic
|
scenic
|
||||||
|
|
|
@ -117,10 +117,6 @@ form {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.beta-staging {
|
|
||||||
background-color: #B00100 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.text-purple {
|
.text-purple {
|
||||||
color: #8B008B;
|
color: #8B008B;
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@
|
||||||
margin-top: $default-spacer;
|
margin-top: $default-spacer;
|
||||||
}
|
}
|
||||||
|
|
||||||
.commentaire-textarea {
|
.message-textarea {
|
||||||
margin-bottom: $default-spacer;
|
margin-bottom: $default-spacer;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -31,13 +31,6 @@
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
#beta {
|
|
||||||
top: 26px;
|
|
||||||
bottom: initial;
|
|
||||||
position: absolute;
|
|
||||||
transform: rotate(45deg);
|
|
||||||
}
|
|
||||||
|
|
||||||
.copyright {
|
.copyright {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|
|
@ -17,10 +17,8 @@
|
||||||
= csrf_meta_tags
|
= csrf_meta_tags
|
||||||
%body
|
%body
|
||||||
= render partial: 'layouts/support_navigator_banner'
|
= render partial: 'layouts/support_navigator_banner'
|
||||||
#beta{ class: (Rails.env == 'production' ? '' : 'beta-staging') }
|
- if Rails.env == 'staging'
|
||||||
- if Rails.env == 'production'
|
#beta
|
||||||
Beta
|
|
||||||
- else
|
|
||||||
Env Test
|
Env Test
|
||||||
|
|
||||||
- if Rails.env == 'test'
|
- if Rails.env == 'test'
|
||||||
|
|
|
@ -20,10 +20,8 @@
|
||||||
.page-wrapper{ class: content_for?(:display_footer) ? 'with-footer' : 'nil' }
|
.page-wrapper{ class: content_for?(:display_footer) ? 'with-footer' : 'nil' }
|
||||||
= render partial: "layouts/support_navigator_banner"
|
= render partial: "layouts/support_navigator_banner"
|
||||||
= render partial: "layouts/ie_lt_10"
|
= render partial: "layouts/ie_lt_10"
|
||||||
#beta{ class:(Rails.env == "production" ? "" : "beta_staging") }
|
- if Rails.env == "staging"
|
||||||
- if Rails.env == "production"
|
#beta
|
||||||
Beta
|
|
||||||
- else
|
|
||||||
Env Test
|
Env Test
|
||||||
|
|
||||||
= render partial: "layouts/new_header"
|
= render partial: "layouts/new_header"
|
||||||
|
|
|
@ -1,41 +1,40 @@
|
||||||
- avis_statut = (@statut == NewGestionnaire::AvisController::A_DONNER_STATUS) ? 'à donner' : 'rendus'
|
- avis_statut = (@statut == NewGestionnaire::AvisController::A_DONNER_STATUS) ? 'à donner' : 'rendus'
|
||||||
- content_for(:title, "Avis #{avis_statut}")
|
- content_for(:title, "Avis #{avis_statut}")
|
||||||
|
|
||||||
#avis-index
|
.accompagnateur-header
|
||||||
.accompagnateur-header
|
.container.flex
|
||||||
.container.flex
|
.width-100
|
||||||
.width-100
|
%h1.tab-title Avis
|
||||||
%h1.tab-title Avis
|
%ul.tabs
|
||||||
%ul.tabs
|
%li{ class: (@statut == NewGestionnaire::AvisController::A_DONNER_STATUS) ? 'active' : nil }>
|
||||||
%li{ class: (@statut == NewGestionnaire::AvisController::A_DONNER_STATUS) ? 'active' : nil }>
|
= link_to(avis_index_path(statut: NewGestionnaire::AvisController::A_DONNER_STATUS)) do
|
||||||
= link_to(avis_index_path(statut: NewGestionnaire::AvisController::A_DONNER_STATUS)) do
|
avis à donner
|
||||||
avis à donner
|
%span.badge= @avis_a_donner.count
|
||||||
%span.badge= @avis_a_donner.count
|
- if @avis_a_donner.any?
|
||||||
- if @avis_a_donner.any?
|
%span.notifications
|
||||||
%span.notifications
|
|
||||||
|
|
||||||
%li{ class: (@statut == NewGestionnaire::AvisController::DONNES_STATUS) ? 'active' : nil }>
|
%li{ class: (@statut == NewGestionnaire::AvisController::DONNES_STATUS) ? 'active' : nil }>
|
||||||
= link_to(avis_index_path(statut: NewGestionnaire::AvisController::DONNES_STATUS)) do
|
= link_to(avis_index_path(statut: NewGestionnaire::AvisController::DONNES_STATUS)) do
|
||||||
avis #{'donné'.pluralize(@avis_donnes.count)}
|
avis #{'donné'.pluralize(@avis_donnes.count)}
|
||||||
%span.badge= @avis_donnes.count
|
%span.badge= @avis_donnes.count
|
||||||
|
|
||||||
.container
|
.container
|
||||||
- if @avis.present?
|
- if @avis.present?
|
||||||
%table.table.dossiers-table.hoverable
|
%table.table.dossiers-table.hoverable
|
||||||
%thead
|
%thead
|
||||||
|
%tr
|
||||||
|
%th.number-col Nº dossier
|
||||||
|
%th Demandeur
|
||||||
|
%th Procédure
|
||||||
|
%tbody
|
||||||
|
- @avis.each do |avis|
|
||||||
%tr
|
%tr
|
||||||
%th.number-col Nº dossier
|
%td.number-col
|
||||||
%th Demandeur
|
= link_to(avis_path(avis), class: 'cell-link') do
|
||||||
%th Procédure
|
%span.icon.folder
|
||||||
%tbody
|
#{avis.dossier.id}
|
||||||
- @avis.each do |avis|
|
%td= link_to(avis.dossier.user.email, avis_path(avis), class: 'cell-link')
|
||||||
%tr
|
%td= link_to(avis.dossier.procedure.libelle, avis_path(avis), class: 'cell-link')
|
||||||
%td.number-col
|
= paginate(@avis)
|
||||||
= link_to(avis_path(avis), class: 'cell-link') do
|
- else
|
||||||
%span.icon.folder
|
%h2.empty-text Aucun avis
|
||||||
#{avis.dossier.id}
|
|
||||||
%td= link_to(avis.dossier.user.email, avis_path(avis), class: 'cell-link')
|
|
||||||
%td= link_to(avis.dossier.procedure.libelle, avis_path(avis), class: 'cell-link')
|
|
||||||
= paginate(@avis)
|
|
||||||
- else
|
|
||||||
%h2.empty-text Aucun avis
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
- content_for(:title, "Avis · Dossier nº #{@dossier.id} (#{@dossier.owner_name})")
|
- content_for(:title, "Avis · Dossier nº #{@dossier.id} (#{@dossier.owner_name})")
|
||||||
|
|
||||||
#avis-show
|
= render partial: 'header', locals: { avis: @avis, dossier: @dossier }
|
||||||
= render partial: 'header', locals: { avis: @avis, dossier: @dossier }
|
|
||||||
|
|
||||||
.container
|
.container
|
||||||
%section.give-avis
|
%section.give-avis
|
||||||
|
@ -21,25 +20,6 @@
|
||||||
.send-wrapper
|
.send-wrapper
|
||||||
= f.submit 'Envoyer votre avis', class: 'button send'
|
= f.submit 'Envoyer votre avis', class: 'button send'
|
||||||
|
|
||||||
%section.ask-avis
|
= render partial: "new_gestionnaire/shared/avis/form", locals: { url: avis_avis_path(@avis), must_be_confidentiel: @avis.confidentiel? }
|
||||||
%h1.tab-title Inviter une personne à donner son avis
|
|
||||||
%p.avis-notice L'invité pourra consulter, donner un avis sur le dossier et contribuer au fil de messagerie, mais il ne pourra le modifier.
|
|
||||||
|
|
||||||
= form_for Avis.new, url: avis_avis_path(@avis), html: { class: 'form' } do |f|
|
= render partial: 'new_gestionnaire/shared/avis/list', locals: { avis: @dossier.avis_for(current_gestionnaire), avis_seen_at: nil }
|
||||||
= f.email_field :email, placeholder: 'Adresse email', required: true
|
|
||||||
= f.text_area :introduction, rows: 3, value: 'Bonjour, merci de me donner votre avis sur ce dossier.', required: true
|
|
||||||
.flex.justify-between.align-baseline
|
|
||||||
- if @avis.confidentiel?
|
|
||||||
%p.confidentiel
|
|
||||||
%span.icon.lock
|
|
||||||
Cet avis est confidentiel et n'est pas affiché aux autres experts consultés
|
|
||||||
.send-wrapper
|
|
||||||
= f.submit 'Demander un avis', class: 'button send'
|
|
||||||
- else
|
|
||||||
.confidentiel-wrapper
|
|
||||||
= f.label :confidentiel, 'Cet avis est'
|
|
||||||
= f.select :confidentiel, [['partagé avec les autres experts', false], ['confidentiel', true]]
|
|
||||||
.send-wrapper
|
|
||||||
= f.submit 'Demander un avis', class: 'button send'
|
|
||||||
|
|
||||||
= render partial: 'avis_list', locals: { avis: @dossier.avis_for(current_gestionnaire), avis_seen_at: nil }
|
|
||||||
|
|
|
@ -2,10 +2,4 @@
|
||||||
|
|
||||||
= render partial: 'header', locals: { avis: @avis, dossier: @dossier }
|
= render partial: 'header', locals: { avis: @avis, dossier: @dossier }
|
||||||
|
|
||||||
.messagerie.container
|
= render partial: "new_gestionnaire/shared/messagerie", locals: { dossier: @dossier, messagerie_seen_at: nil, new_commentaire: @commentaire, form_url: commentaire_avis_path(@avis) }
|
||||||
%ul.messages-list
|
|
||||||
- @dossier.commentaires.each do |commentaire|
|
|
||||||
%li{ class: commentaire_is_from_me_class(commentaire, current_gestionnaire.email) }
|
|
||||||
= render partial: "new_gestionnaire/shared/commentaires/commentaire", locals: { commentaire: commentaire, messagerie_seen_at: nil }
|
|
||||||
|
|
||||||
= render partial: "new_gestionnaire/shared/commentaires/form", locals: { commentaire: @commentaire, form_url: commentaire_avis_path(@avis) }
|
|
||||||
|
|
|
@ -1,29 +1,6 @@
|
||||||
- content_for(:title, "Demande · Dossier nº #{@dossier.id} (#{@dossier.owner_name})")
|
- content_for(:title, "Demande · Dossier nº #{@dossier.id} (#{@dossier.owner_name})")
|
||||||
|
|
||||||
#avis-show
|
= render partial: 'header', locals: { avis: @avis, dossier: @dossier }
|
||||||
= render partial: 'header', locals: { avis: @avis, dossier: @dossier }
|
|
||||||
|
|
||||||
.container
|
= render partial: 'new_gestionnaire/shared/show', locals: { dossier: @dossier, demande_seen_at: nil }
|
||||||
.tab-title Identité du demandeur
|
|
||||||
.card
|
|
||||||
- if @dossier.entreprise.present?
|
|
||||||
= render partial: 'new_gestionnaire/dossiers/identite_entreprise', locals: { entreprise: @dossier.entreprise }
|
|
||||||
|
|
||||||
- if @dossier.individual.present?
|
|
||||||
= render partial: 'new_gestionnaire/dossiers/identite_individual', locals: { individual: @dossier.individual }
|
|
||||||
|
|
||||||
.tab-title Formulaire
|
|
||||||
- champs = @dossier.ordered_champs.decorate
|
|
||||||
- if champs.any?
|
|
||||||
.card
|
|
||||||
= render partial: 'new_gestionnaire/dossiers/champs', locals: { champs: champs, dossier: @dossier, demande_seen_at: nil }
|
|
||||||
|
|
||||||
- if @dossier.procedure.use_api_carto
|
|
||||||
.tab-title Cartographie
|
|
||||||
.card
|
|
||||||
= render partial: 'new_gestionnaire/dossiers/map', locals: { dossier: @dossier }
|
|
||||||
|
|
||||||
- if @dossier.procedure.cerfa_flag? || @dossier.types_de_piece_justificative.any?
|
|
||||||
.tab-title Pièces jointes
|
|
||||||
.card
|
|
||||||
= render partial: "new_gestionnaire/dossiers/pieces_jointes", locals: { dossier: @dossier, demande_seen_at: nil }
|
|
||||||
|
|
|
@ -3,18 +3,6 @@
|
||||||
= render partial: "header", locals: { dossier: @dossier }
|
= render partial: "header", locals: { dossier: @dossier }
|
||||||
|
|
||||||
.container
|
.container
|
||||||
%section.ask-avis
|
= render partial: "new_gestionnaire/shared/avis/form", locals: { url: avis_dossier_path(@dossier.procedure, @dossier), must_be_confidentiel: false }
|
||||||
%h1.tab-title Inviter une personne à donner son avis
|
|
||||||
%p.avis-notice L'invité pourra consulter, donner un avis sur le dossier et contribuer au fil de messagerie, mais il ne pourra le modifier.
|
|
||||||
|
|
||||||
= form_for Avis.new, url: avis_dossier_path(@dossier.procedure, @dossier), html: { class: 'form' } do |f|
|
= render partial: 'new_gestionnaire/shared/avis/list', locals: { avis: @dossier.avis, avis_seen_at: @avis_seen_at }
|
||||||
= f.email_field :email, placeholder: 'Adresse email', required: true
|
|
||||||
= f.text_area :introduction, rows: 3, value: 'Bonjour, merci de me donner votre avis sur ce dossier.', required: true
|
|
||||||
.flex.justify-between.align-baseline
|
|
||||||
.confidentiel-wrapper
|
|
||||||
= f.label :confidentiel, 'Cet avis est'
|
|
||||||
= f.select :confidentiel, [['partagé avec les autres experts', false], ['confidentiel', true]]
|
|
||||||
.send-wrapper
|
|
||||||
= f.submit 'Demander un avis', class: 'button send', data: { disable_with: "Envoi..." }
|
|
||||||
|
|
||||||
= render partial: 'new_gestionnaire/avis/avis_list', locals: { avis: @dossier.avis, avis_seen_at: @avis_seen_at }
|
|
||||||
|
|
|
@ -2,10 +2,4 @@
|
||||||
|
|
||||||
= render partial: "header", locals: { dossier: @dossier }
|
= render partial: "header", locals: { dossier: @dossier }
|
||||||
|
|
||||||
.messagerie.container
|
= render partial: "new_gestionnaire/shared/messagerie", locals: { dossier: @dossier, messagerie_seen_at: @messagerie_seen_at , new_commentaire: @commentaire, form_url: commentaire_dossier_path(@dossier.procedure, @dossier) }
|
||||||
%ul.messages-list
|
|
||||||
- @dossier.commentaires.each do |commentaire|
|
|
||||||
%li{ class: commentaire_is_from_me_class(commentaire, current_gestionnaire.email) }
|
|
||||||
= render partial: "new_gestionnaire/shared/commentaires/commentaire", locals: { commentaire: commentaire, messagerie_seen_at: @messagerie_seen_at }
|
|
||||||
|
|
||||||
= render partial: "new_gestionnaire/shared/commentaires/form", locals: { commentaire: @commentaire, form_url: commentaire_dossier_path(@dossier.procedure, @dossier) }
|
|
||||||
|
|
|
@ -2,27 +2,4 @@
|
||||||
|
|
||||||
= render partial: "header", locals: { dossier: @dossier }
|
= render partial: "header", locals: { dossier: @dossier }
|
||||||
|
|
||||||
.container
|
= render partial: 'new_gestionnaire/shared/show', locals: { dossier: @dossier, demande_seen_at: @demande_seen_at }
|
||||||
.tab-title Identité du demandeur
|
|
||||||
.card
|
|
||||||
- if @dossier.entreprise.present?
|
|
||||||
= render partial: "identite_entreprise", locals: { entreprise: @dossier.entreprise }
|
|
||||||
|
|
||||||
- if @dossier.individual.present?
|
|
||||||
= render partial: "identite_individual", locals: { individual: @dossier.individual }
|
|
||||||
|
|
||||||
.tab-title Formulaire
|
|
||||||
- champs = @dossier.ordered_champs.includes(:type_de_champ).decorate
|
|
||||||
- if champs.any?
|
|
||||||
.card
|
|
||||||
= render partial: "champs", locals: { champs: champs, dossier: @dossier, demande_seen_at: @demande_seen_at }
|
|
||||||
|
|
||||||
- if @dossier.procedure.use_api_carto
|
|
||||||
.tab-title Cartographie
|
|
||||||
.card
|
|
||||||
= render partial: "map", locals: { dossier: @dossier }
|
|
||||||
|
|
||||||
- if @dossier.procedure.cerfa_flag? || @dossier.types_de_piece_justificative.any?
|
|
||||||
.tab-title Pièces jointes
|
|
||||||
.card
|
|
||||||
= render partial: "pieces_jointes", locals: { dossier: @dossier, demande_seen_at: @demande_seen_at }
|
|
||||||
|
|
7
app/views/new_gestionnaire/shared/_messagerie.html.haml
Normal file
7
app/views/new_gestionnaire/shared/_messagerie.html.haml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
.messagerie.container
|
||||||
|
%ul.messages-list
|
||||||
|
- dossier.commentaires.each do |commentaire|
|
||||||
|
%li{ class: commentaire_is_from_me_class(commentaire, current_gestionnaire.email) }
|
||||||
|
= render partial: "new_gestionnaire/shared/messages/message", locals: { commentaire: commentaire, messagerie_seen_at: messagerie_seen_at }
|
||||||
|
|
||||||
|
= render partial: "new_gestionnaire/shared/messages/form", locals: { commentaire: new_commentaire, form_url: form_url }
|
24
app/views/new_gestionnaire/shared/_show.html.haml
Normal file
24
app/views/new_gestionnaire/shared/_show.html.haml
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
.container
|
||||||
|
.tab-title Identité du demandeur
|
||||||
|
.card
|
||||||
|
- if dossier.entreprise.present?
|
||||||
|
= render partial: "new_gestionnaire/dossiers/identite_entreprise", locals: { entreprise: dossier.entreprise }
|
||||||
|
|
||||||
|
- if dossier.individual.present?
|
||||||
|
= render partial: "new_gestionnaire/dossiers/identite_individual", locals: { individual: dossier.individual }
|
||||||
|
|
||||||
|
.tab-title Formulaire
|
||||||
|
- champs = dossier.ordered_champs.includes(:type_de_champ).decorate
|
||||||
|
- if champs.any?
|
||||||
|
.card
|
||||||
|
= render partial: "new_gestionnaire/dossiers/champs", locals: { champs: champs, demande_seen_at: demande_seen_at }
|
||||||
|
|
||||||
|
- if dossier.procedure.use_api_carto
|
||||||
|
.tab-title Cartographie
|
||||||
|
.card
|
||||||
|
= render partial: "new_gestionnaire/dossiers/map", locals: { dossier: dossier }
|
||||||
|
|
||||||
|
- if dossier.procedure.cerfa_flag? || dossier.types_de_piece_justificative.any?
|
||||||
|
.tab-title Pièces jointes
|
||||||
|
.card
|
||||||
|
= render partial: "new_gestionnaire/dossiers/pieces_jointes", locals: { dossier: dossier, demande_seen_at: demande_seen_at }
|
20
app/views/new_gestionnaire/shared/avis/_form.html.haml
Normal file
20
app/views/new_gestionnaire/shared/avis/_form.html.haml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
%section.ask-avis
|
||||||
|
%h1.tab-title Inviter une personne à donner son avis
|
||||||
|
%p.avis-notice L'invité pourra consulter, donner un avis sur le dossier et contribuer au fil de messagerie, mais il ne pourra le modifier.
|
||||||
|
|
||||||
|
= form_for Avis.new, url: url, html: { class: 'form' } do |f|
|
||||||
|
= f.email_field :email, placeholder: 'Adresse email', required: true
|
||||||
|
= f.text_area :introduction, rows: 3, value: 'Bonjour, merci de me donner votre avis sur ce dossier.', required: true
|
||||||
|
.flex.justify-between.align-baseline
|
||||||
|
- if must_be_confidentiel
|
||||||
|
%p.confidentiel
|
||||||
|
%span.icon.lock
|
||||||
|
Cet avis est confidentiel et n'est pas affiché aux autres experts consultés
|
||||||
|
.send-wrapper
|
||||||
|
= f.submit 'Demander un avis', class: 'button send'
|
||||||
|
- else
|
||||||
|
.confidentiel-wrapper
|
||||||
|
= f.label :confidentiel, 'Cet avis est'
|
||||||
|
= f.select :confidentiel, [['partagé avec les autres experts', false], ['confidentiel', true]]
|
||||||
|
.send-wrapper
|
||||||
|
= f.submit 'Demander un avis', class: 'button send'
|
|
@ -1,5 +1,5 @@
|
||||||
= form_for(commentaire, url: form_url, html: { class: 'form' }) do |f|
|
= form_for(commentaire, url: form_url, html: { class: 'form' }) do |f|
|
||||||
= f.text_area :body, rows: 5, placeholder: 'Répondre ici', required: true, class: 'commentaire-textarea'
|
= f.text_area :body, rows: 5, placeholder: 'Répondre ici', required: true, class: 'message-textarea'
|
||||||
.flex.justify-between
|
.flex.justify-between
|
||||||
%div
|
%div
|
||||||
= f.file_field :file, id: :file, accept: commentaire.file.accept_extension_list
|
= f.file_field :file, id: :file, accept: commentaire.file.accept_extension_list
|
|
@ -1,9 +1,9 @@
|
||||||
= render partial: 'new_gestionnaire/shared/commentaires/commentaire_icon', locals: { commentaire: commentaire, current_gestionnaire: current_gestionnaire }
|
= render partial: 'new_gestionnaire/shared/messages/message_icon', locals: { commentaire: commentaire, current_gestionnaire: current_gestionnaire }
|
||||||
|
|
||||||
.width-100
|
.width-100
|
||||||
%h2
|
%h2
|
||||||
%span.mail
|
%span.mail
|
||||||
= render partial: 'new_gestionnaire/shared/commentaires/commentaire_issuer', locals: { commentaire: commentaire, current_gestionnaire: current_gestionnaire }
|
= render partial: 'new_gestionnaire/shared/messages/message_issuer', locals: { commentaire: commentaire, current_gestionnaire: current_gestionnaire }
|
||||||
- if ![current_gestionnaire.email, commentaire.dossier.user.email, 'contact@tps.apientreprise.fr'].include?(commentaire.email)
|
- if ![current_gestionnaire.email, commentaire.dossier.user.email, 'contact@tps.apientreprise.fr'].include?(commentaire.email)
|
||||||
%span.guest Invité
|
%span.guest Invité
|
||||||
%span.date{ class: highlight_if_unseen_class(messagerie_seen_at, commentaire.created_at) }
|
%span.date{ class: highlight_if_unseen_class(messagerie_seen_at, commentaire.created_at) }
|
|
@ -1,7 +1,7 @@
|
||||||
describe 'new_gestionnaire/avis/avis_list.html.haml', type: :view do
|
describe 'new_gestionnaire/shared/avis/_list.html.haml', type: :view do
|
||||||
before { view.extend DossierHelper }
|
before { view.extend DossierHelper }
|
||||||
|
|
||||||
subject { render 'new_gestionnaire/avis/avis_list.html.haml', avis: avis, avis_seen_at: seen_at, current_gestionnaire: gestionnaire }
|
subject { render 'new_gestionnaire/shared/avis/list.html.haml', avis: avis, avis_seen_at: seen_at, current_gestionnaire: gestionnaire }
|
||||||
|
|
||||||
let(:gestionnaire) { create(:gestionnaire) }
|
let(:gestionnaire) { create(:gestionnaire) }
|
||||||
let(:avis) { [create(:avis, claimant: gestionnaire)] }
|
let(:avis) { [create(:avis, claimant: gestionnaire)] }
|
|
@ -1,7 +1,7 @@
|
||||||
describe 'new_gestionnaire/shared/commentaires/commentaire.html.haml', type: :view do
|
describe 'new_gestionnaire/shared/messages/message.html.haml', type: :view do
|
||||||
before { view.extend DossierHelper }
|
before { view.extend DossierHelper }
|
||||||
|
|
||||||
subject { render 'new_gestionnaire/shared/commentaires/commentaire.html.haml', commentaire: commentaire, messagerie_seen_at: seen_at, current_gestionnaire: current_gestionnaire }
|
subject { render 'new_gestionnaire/shared/messages/message.html.haml', commentaire: commentaire, messagerie_seen_at: seen_at, current_gestionnaire: current_gestionnaire }
|
||||||
|
|
||||||
let(:dossier) { create(:dossier) }
|
let(:dossier) { create(:dossier) }
|
||||||
let(:commentaire) { create(:commentaire, dossier: dossier) }
|
let(:commentaire) { create(:commentaire, dossier: dossier) }
|
Loading…
Add table
Reference in a new issue