Merge branch 'develop' into staging
This commit is contained in:
commit
9f3c06633c
22 changed files with 520 additions and 47 deletions
|
@ -42,6 +42,7 @@ function application_init(){
|
|||
}
|
||||
|
||||
function tooltip_init() {
|
||||
$('.action_button[data-toggle="tooltip"]').tooltip({delay: { "show": 100, "hide": 100 }});
|
||||
$('[data-toggle="tooltip"]').tooltip({delay: { "show": 800, "hide": 100 }});
|
||||
}
|
||||
|
||||
|
|
|
@ -13,6 +13,14 @@ class Backoffice::DossiersController < ApplicationController
|
|||
@champs = @facade.champs_private unless @facade.nil?
|
||||
end
|
||||
|
||||
def download_dossiers_tps
|
||||
dossiers = current_gestionnaire.dossiers.where.not(state: :draft)
|
||||
|
||||
response.headers['Content-Type'] = 'text/csv'
|
||||
|
||||
render csv: dossiers, status: 200
|
||||
end
|
||||
|
||||
def search
|
||||
@search_terms = params[:q]
|
||||
@dossiers_search, @dossier = Dossier.search(current_gestionnaire, @search_terms)
|
||||
|
@ -40,12 +48,45 @@ class Backoffice::DossiersController < ApplicationController
|
|||
render 'show'
|
||||
end
|
||||
|
||||
def receive
|
||||
create_dossier_facade params[:dossier_id]
|
||||
|
||||
@facade.dossier.next_step! 'gestionnaire', 'receive'
|
||||
flash.notice = 'Dossier considéré comme reçu.'
|
||||
|
||||
render 'show'
|
||||
end
|
||||
|
||||
def refuse
|
||||
create_dossier_facade params[:dossier_id]
|
||||
|
||||
@facade.dossier.next_step! 'gestionnaire', 'refuse'
|
||||
flash.notice = 'Dossier considéré comme refusé.'
|
||||
|
||||
NotificationMailer.dossier_refused(@facade.dossier).deliver_now!
|
||||
|
||||
render 'show'
|
||||
end
|
||||
|
||||
def without_continuation
|
||||
create_dossier_facade params[:dossier_id]
|
||||
|
||||
@facade.dossier.next_step! 'gestionnaire', 'without_continuation'
|
||||
flash.notice = 'Dossier considéré comme sans suite.'
|
||||
|
||||
NotificationMailer.dossier_without_continuation(@facade.dossier).deliver_now!
|
||||
|
||||
render 'show'
|
||||
end
|
||||
|
||||
def close
|
||||
create_dossier_facade params[:dossier_id]
|
||||
|
||||
@facade.dossier.next_step! 'gestionnaire', 'close'
|
||||
flash.notice = 'Dossier traité avec succès.'
|
||||
|
||||
NotificationMailer.dossier_closed(@facade.dossier).deliver_now!
|
||||
|
||||
render 'show'
|
||||
end
|
||||
|
||||
|
|
5
app/controllers/cgu_controller.rb
Normal file
5
app/controllers/cgu_controller.rb
Normal file
|
@ -0,0 +1,5 @@
|
|||
class CguController < ApplicationController
|
||||
def index
|
||||
|
||||
end
|
||||
end
|
|
@ -11,6 +11,18 @@ class NotificationMailer < ApplicationMailer
|
|||
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été déposé"
|
||||
end
|
||||
|
||||
def dossier_without_continuation dossier
|
||||
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été classé sans suite"
|
||||
end
|
||||
|
||||
def dossier_refused dossier
|
||||
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été refusé"
|
||||
end
|
||||
|
||||
def dossier_closed dossier
|
||||
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été accepté"
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def vars_mailer dossier
|
||||
|
|
|
@ -87,7 +87,7 @@ class Dossier < ActiveRecord::Base
|
|||
end
|
||||
|
||||
def next_step! role, action
|
||||
unless %w(initiate update comment valid submit close).include?(action)
|
||||
unless %w(initiate update comment valid submit receive refuse without_continuation close).include?(action)
|
||||
fail 'action is not valid'
|
||||
end
|
||||
|
||||
|
@ -130,10 +130,22 @@ class Dossier < ActiveRecord::Base
|
|||
elsif initiated?
|
||||
validated!
|
||||
end
|
||||
when 'close'
|
||||
when 'receive'
|
||||
if submitted?
|
||||
received!
|
||||
end
|
||||
when 'close'
|
||||
if received?
|
||||
closed!
|
||||
end
|
||||
when 'refuse'
|
||||
if received?
|
||||
refused!
|
||||
end
|
||||
when 'without_continuation'
|
||||
if received?
|
||||
without_continuation!
|
||||
end
|
||||
end
|
||||
end
|
||||
state
|
||||
|
|
|
@ -26,4 +26,8 @@ class TypeDeChamp < ActiveRecord::Base
|
|||
validates :libelle, presence: true, allow_blank: false, allow_nil: false
|
||||
validates :type_champ, presence: true, allow_blank: false, allow_nil: false
|
||||
# validates :order_place, presence: true, allow_blank: false, allow_nil: false
|
||||
|
||||
def self.type_de_champs_list_fr
|
||||
type_champs.map { |champ| [ I18n.t("activerecord.attributes.type_de_champ.type_champs.#{champ.last}"), champ.first ] }
|
||||
end
|
||||
end
|
|
@ -6,7 +6,7 @@
|
|||
|
||||
.form-group.type
|
||||
%h4 Type
|
||||
= ff.select :type_champ, TypeDeChamp.type_champs, {}, {class: 'form-control type_champ'}
|
||||
= ff.select :type_champ, TypeDeChamp.type_de_champs_list_fr, {}, {class: 'form-control type_champ'}
|
||||
|
||||
.form-group.description
|
||||
%h4 Description
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
=link_to 'Tous mes dossiers en CSV', backoffice_download_dossiers_tps_path, {class: 'btn btn-success btn-sm', style: 'float: right; margin-right: 4%; margin-top: 7px'}
|
||||
%h1 Gestion des dossiers
|
||||
%br
|
||||
|
||||
|
|
167
app/views/cgu/index.html.haml
Normal file
167
app/views/cgu/index.html.haml
Normal file
|
@ -0,0 +1,167 @@
|
|||
%h2
|
||||
Condition d’utilisation du service « TPS » pour téléprocédure simplifiée
|
||||
%br
|
||||
%h3
|
||||
Editeur
|
||||
%p Ce service est proposé par le Secrétariat général pour la modernisation de l’action publique, un service interministériel du Premier Ministre, mis à disposition du ministère de la Réforme de l’Etat, de la Décentralisation et de la Fonction publique.
|
||||
%p Il est opéré par la Direction interministérielle du numérique et du système d'information et de communication de l'Etat (DINSIC).
|
||||
%p
|
||||
%p
|
||||
%strong Secrétariat Général pour la Modernisation de l’Action publique
|
||||
%br/
|
||||
64-70 allée de Bercy
|
||||
%br/
|
||||
75572 Paris Cedex 12
|
||||
%p
|
||||
%strong Directeur de la publication
|
||||
%p Laure de LA BRETECHE
|
||||
%p
|
||||
%strong Responsable éditorial
|
||||
%p Henri VERDIER
|
||||
%p
|
||||
%strong Responsable éditorial délégué
|
||||
%p Philippe VRIGNAUD
|
||||
%br
|
||||
%h3
|
||||
Ingénierie et hébergement informatique
|
||||
%p L'ingénierie du site est assurée par :
|
||||
%p
|
||||
%strong OVH
|
||||
%br/
|
||||
SAS au capital de 10 000 000 €
|
||||
%br/
|
||||
RCS Roubaix – Tourcoing 424 761 419 00045
|
||||
%br/
|
||||
Code APE 6202A
|
||||
%br/
|
||||
N° TVA : FR 22 424 761 419
|
||||
%br/
|
||||
Siège social : 2 rue Kellermann - 59100 Roubaix - France.
|
||||
%br
|
||||
%h3
|
||||
Object du site internet
|
||||
%a{:href => "https://tps.apientreprise.fr/"}
|
||||
%strong tps.apientreprise.fr
|
||||
%p
|
||||
Le site internet tps.apientreprise.fr a pour objet de faciliter la création de démarches administratives en ligne par les acteurs publics, et l’instruction par plusieurs services des demandes formulées par les usagers auprès d’un ou organismes publics.
|
||||
%br
|
||||
%h3
|
||||
Acteurs de
|
||||
%a{:href => "https://tps.apientreprise.fr/"}
|
||||
TPS
|
||||
%p Les acteurs de TPS sont les suivants :
|
||||
%ul
|
||||
%li Le SGMAP qui héberge le service TPS, le maintien en condition opérationnelle et gère les droits d’accès
|
||||
%li L’administrateur au sein d’une administration donnée qui crée la démarche en ligne
|
||||
%li Le ou les accompagnateurs au sein d’une administration donnée, qui reçoivent les démarches des usagers, les accompagnent le cas échéant dans le bouclage de leurs dossier, instruisent la demande et décident des suites à donner aux demandes
|
||||
%li Les Usagers qui formulent les demandes en ligne via le formulaire qui leur est mis à disposition
|
||||
%br
|
||||
%h3
|
||||
Déclaration CNIL
|
||||
%p Le SGMAP a procédé à la déclaration CNIL de TPS. Néanmoins les administrations devront procéder à une déclaration complémentaire auprès de la CNIL si les données du formulaire qu’elles ont produit comportent des données de la nature suivante :
|
||||
%ul
|
||||
%li N° de sécurité sociale,
|
||||
%li Infractions, condamnations, mesures de sécurité,
|
||||
%li
|
||||
%a{:href => "https://www.declaration.cnil.fr/declarations/declaration/donneesSensibles_DN.display.action"} Opinions philosophiques, politiques, religieuses, syndicales, vie sexuelle, données de santé, origine raciale.
|
||||
%br
|
||||
%h3
|
||||
Données collectées et responsabilité des organismes publics à l’initiative de démarches en ligne avec TPS.
|
||||
%p Les données collectées par le service sont définis par les services publics utilisateurs du service qui arrêtent, sous leur responsabilité, la liste des informations qui seront demandées à l’usager.
|
||||
%p Les organismes publics s’engagent à créer des démarches pour collecter les informations strictement nécessaires à l’instruction des demandes formulées auprès des acteurs publics, dans le cadre juridique prévu par chacune des démarches.
|
||||
%p Ces données sont collectées et traitées par les seuls services concernés par l’instruction des demandes, et précisées dans la notice d’utilisation de chaque démarche publiée par l’organisme public.
|
||||
|
||||
%br
|
||||
%h3 Traitement des données à caractère personnel
|
||||
%h4 Données personnelles :
|
||||
%p
|
||||
En application de la loi n°78-17 Informatique et Libertés du 6 janvier 1978, vous disposez d'un droit d'accès, de rectification, de modification et de suppression concernant les données qui vous concernent. Vous pouvez exercer ce droit à travers la rubrique
|
||||
%a{:href => "http://www.faire-simple.gouv.fr/contact"} Contact
|
||||
%h4 Données de connexion :
|
||||
%p Conformément à la loi n°2004-575 du 21 juin 2004 pour la confiance dans l’économie numérique, certaines données de connexion sont conservées par le service aux fins de protection contre les intrusions et de poursuites judiciaires le cas échéant. Ces données sont conservées pendant un an.
|
||||
|
||||
%br
|
||||
%h3 Règles relatives aux informations sur les entreprises mises à disposition par les partenaires publics du SGMAP.
|
||||
%p Le service « TPS », opéré par le SGMAP propose l’affichage aux internautes d’informations issues de deux bases de données distinctes gérées par quatre organismes qui sont :
|
||||
%br
|
||||
%h4 L’INSEE :
|
||||
%p
|
||||
%strong Insee (Institut national de la statistique et des études économiques)
|
||||
%br/
|
||||
18, boulevard Adolphe Pinard
|
||||
%br/
|
||||
75675 Paris cedex 14
|
||||
%br/
|
||||
Tél. : 01 41 17 50 50
|
||||
%p
|
||||
%a{:href => "http://www.insee.fr/fr/bases-de-donnees/default.asp?page=sirene.htm"} Informations de la base SIRENE
|
||||
%br/
|
||||
%a{:href => "http://www.sirene.fr/sirene/public/static/mentions-legales"} Condition légales d’utilisation de service SIRENE
|
||||
%br
|
||||
%h4 INFOGREFFE :
|
||||
%p
|
||||
%strong INFOGREFFE
|
||||
%br/
|
||||
Immeuble Le Parisien
|
||||
%br/
|
||||
5-7, avenue de Paris
|
||||
%br/
|
||||
94300 VINCENNES
|
||||
%p
|
||||
Les informations transmises aux autorités publiques en charges de l’instruction de dossiers de candidature sont définis par le service en ligne suivant proposé aux internautes :
|
||||
%a{:href => "https://www.infogreffe.fr/societes/documents-officiels/demande-kbis.html"} https://www.infogreffe.fr/societes/documents-officiels/demande-kbis.html
|
||||
%p
|
||||
%a{:href => "https://www.infogreffe.fr/societes/cgu-cgv.html"} Conditions générales d’utilisation des données d’infogreffe
|
||||
|
||||
%br
|
||||
%h4 TPS fait appel à d’autres services opérés par le SGMAP afin de faciliter les démarches administratives :
|
||||
%br
|
||||
%p
|
||||
%strong> France CONNECT
|
||||
\ : informations complémentaires :
|
||||
%a{:href => "https://franceconnect.gouv.fr/"} https://franceconnect.gouv.fr/
|
||||
%p
|
||||
%strong La base d’adresse nationale :
|
||||
%a{:href => "https://adresse.data.gouv.fr/"} https://adresse.data.gouv.fr/
|
||||
%p
|
||||
%strong TPS est un service de l’Etat Plateforme :
|
||||
|
||||
%a{:href => "http://etatplateforme.modernisation.gouv.fr/"} http://etatplateforme.modernisation.gouv.fr/
|
||||
%p
|
||||
%strong Il met en œuvre les principes définis par le programme « Dites-le nous une fois »
|
||||
%p
|
||||
%a{:href => "http://www.modernisation.gouv.fr/les-services-publics-se-simplifient-et-innovent/par-des-simplifications-pour-les-entreprises/dites-le-nous-une-fois-un-programme-pour-simplifier-la-vie-des-entreprises"} http://www.modernisation.gouv.fr/les-services-publics-se-simplifient-et-innovent/par-des-simplifications-pour-les-entreprises/dites-le-nous-une-fois-un-programme-pour-simplifier-la-vie-des-entreprises
|
||||
%br
|
||||
%h3 Droit de reproduction :
|
||||
%p Toute copie de pages du site doit avoir obtenu l’autorisation du directeur de la publication.
|
||||
%p La création de liens avec le site « tps.apientreprise.fr » est libre.
|
||||
%p Le SGMAP se réserve le droit de demander la suppression d’un lien qu’elle estime non conforme à l’objet du service « tps.apientreprise.fr » aux missions du SGMAP, ou plus généralement aux principes véhiculés par l’Administration.
|
||||
%p L’autorisation de création de liens est valable pour tout support, à l’exception de ceux diffusant des informations à caractère raciste, pornographique, xénophobe ou pouvant porter atteinte à la sensibilité du plus grand nombre.
|
||||
%p
|
||||
La rubrique
|
||||
%a{:href => "http://www.faire-simple.gouv.fr/contact"} Contactez-nous
|
||||
est à votre disposition pour nous faire part de vos remarques et suggestions.
|
||||
%br
|
||||
%h3 Propriété intellectuelle, droits d’auteur et copyright
|
||||
%p Ce service relève de la législation française et internationale sur le droit d'auteur et la propriété intellectuelle. Tous les droits de reproduction sont réservés, y compris pour les documents téléchargeables et les représentations iconographiques et photographiques.
|
||||
%p La reproduction de tout ou partie de ce site sur un support électronique quel qu'il soit est formellement interdite sauf autorisation expresse du Directeur de la publication (voir ci-après : Reproduction des contenus).
|
||||
%p Les marques citées sur ce site sont protégées par les organismes qui en sont propriétaires.
|
||||
|
||||
%br
|
||||
%h3 Logiciels nécessaires à la consultation
|
||||
%p Ce service est optimisé pour un affichage en 1024*768. Il est prévu pour :
|
||||
%ul
|
||||
%li les versions 10 ou supérieures d'Internet Explorer (sur windows 7 ou plus)
|
||||
%li toutes versions de Microsoft Edge
|
||||
%li les versions 19 ou supérieures d’Opera
|
||||
%li les versions 8 ou supérieures de Safari
|
||||
%li les versions 45.3.0 ou 48 ou supérieures de Firefox
|
||||
%li les versions 40 ou supérieures de Chrome
|
||||
%p
|
||||
La liste des versions compatibles a volontairement été réduite afin de garantir une meilleure sécurité sur nos services. Par ailleurs, le service TPS peut fonctionner sur des versions antérieures à celles évoquées ci-dessus mais sans garantie par le SGMAP.
|
||||
%p Certains navigateurs peuvent bloquer par défaut l'ouverture de fenêtres sur ce site. Afin de vous permettre d'afficher certaines pages, vous devez autoriser l'ouverture des fenêtres lorsque le navigateur vous le propose en cliquant sur le bandeau d'avertissement alors affiché en haut de la page. En cas d'absence de message d'avertissement de la part de votre navigateur, vous devez configurer celui-ci afin qu'il autorise l'ouverture des fenêtres pour le site "tps.apientreprise.fr".
|
||||
%br
|
||||
%h3 Conception & Réalisation
|
||||
%p SGMAP
|
||||
%p
|
||||
%p
|
|
@ -66,7 +66,18 @@
|
|||
= 'Valider le dossier'
|
||||
|
||||
-elsif @facade.dossier.submitted?
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :close, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :receive, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
|
||||
%button#action_button.btn.btn-success
|
||||
= 'Traiter le dossier'
|
||||
= 'Notifier de la bonne réception'
|
||||
|
||||
-elsif @facade.dossier.received?
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :close, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Accepter') do
|
||||
%button#action_button.btn.btn-success
|
||||
%i.fa.fa-check
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :refuse, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Refuser') do
|
||||
%button#action_button.btn.btn-danger
|
||||
%i.fa.fa-times
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :without_continuation, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Classer sans suite') do
|
||||
%button#action_button.btn.btn-warning
|
||||
%i.fa.fa-circle-o
|
||||
|
||||
|
|
|
@ -36,13 +36,17 @@
|
|||
.container.center
|
||||
%p{style:'margin-top: 1em;'}
|
||||
%p{class: "copyright text-muted small"}
|
||||
Copyright ©
|
||||
|
||||
=link_to 'SGMAP', "http://etatplateforme.modernisation.gouv.fr"
|
||||
|
||||
2016 - Tous droits réservés
|
||||
2016
|
||||
|
||||
=link_to 'contact@tps.apientreprise.fr', "mailto:contact@tps.apientreprise.fr"
|
||||
\-
|
||||
|
||||
=link_to 'CGU / Mentions légales', cgu_path
|
||||
|
||||
\-
|
||||
|
||||
=link_to 'Contact', "mailto:contact@tps.apientreprise.fr"
|
||||
|
||||
|
||||
|
||||
|
|
10
app/views/notification_mailer/dossier_closed.text.erb
Normal file
10
app/views/notification_mailer/dossier_closed.text.erb
Normal file
|
@ -0,0 +1,10 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été accepté ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
A tout moment, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
10
app/views/notification_mailer/dossier_refused.text.erb
Normal file
10
app/views/notification_mailer/dossier_refused.text.erb
Normal file
|
@ -0,0 +1,10 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été refusé ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
Pour en savoir plus sur le motif du refus, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -1,8 +1,8 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
Nous vous confirmons que votre dossier N°<%=@dossier.id%> a été déposé aurpès de <%= @dossier.procedure.organisation %> avec succès ce jour à <%= @dossier.updated_at %>.
|
||||
Nous vous confirmons que votre dossier N°<%=@dossier.id%> a été déposé auprès de <%= @dossier.procedure.organisation %> avec succès ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
Bonne journée
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -2,9 +2,9 @@ Bonjour <%= @user.email %>
|
|||
|
||||
Votre dossier N°<%=@dossier.id%> a été validé par votre accompagnateur.
|
||||
|
||||
Afin de finaliser son dépot, merci de vous rendre sur <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
Afin de finaliser son dépôt, merci de vous rendre sur <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -0,0 +1,10 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
votre dossier N°<%=@dossier.id%> déposé auprès de <%= @dossier.procedure.organisation %> a été classé sans suite ce jour à <%= @dossier.updated_at %>.
|
||||
|
||||
Pour en savoir plus sur les raisons de ce classement sans suite, vous pouvez consulter le contenu de vos dossiers et les éventuels commentaires de l'administration à cette adresse : <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
20
config/locales/models/type_de_champ/fr.yml
Normal file
20
config/locales/models/type_de_champ/fr.yml
Normal file
|
@ -0,0 +1,20 @@
|
|||
fr:
|
||||
activerecord:
|
||||
models:
|
||||
type_de_champ: 'Type de champ'
|
||||
attributes:
|
||||
type_de_champ:
|
||||
type_champs:
|
||||
text: 'Texte'
|
||||
textarea: 'Zone de texte'
|
||||
date: 'Date'
|
||||
datetime: 'Date et Heure'
|
||||
number: 'Nombre'
|
||||
checkbox: 'checkbox'
|
||||
civilite: 'Civilité'
|
||||
email: 'Email'
|
||||
phone: 'Téléphone'
|
||||
address: 'Adresse'
|
||||
yes_no: 'Oui/Non'
|
||||
drop_down_list: 'Menu déroulant'
|
||||
header_section: 'Titre de section'
|
|
@ -36,6 +36,8 @@ Rails.application.routes.draw do
|
|||
|
||||
root 'root#index'
|
||||
|
||||
get 'cgu' => 'cgu#index'
|
||||
|
||||
namespace :france_connect do
|
||||
get 'particulier' => 'particulier#login'
|
||||
get 'particulier/callback' => 'particulier#callback'
|
||||
|
@ -152,8 +154,13 @@ Rails.application.routes.draw do
|
|||
get 'reload_pref_list'
|
||||
end
|
||||
|
||||
get 'download_dossiers_tps' => 'dossiers#download_dossiers_tps'
|
||||
|
||||
resources :dossiers do
|
||||
post 'valid' => 'dossiers#valid'
|
||||
post 'receive' => 'dossiers#receive'
|
||||
post 'refuse' => 'dossiers#refuse'
|
||||
post 'without_continuation' => 'dossiers#without_continuation'
|
||||
post 'close' => 'dossiers#close'
|
||||
|
||||
post 'invites' => '/invites#create'
|
||||
|
|
|
@ -119,18 +119,86 @@ describe Backoffice::DossiersController, type: :controller do
|
|||
end
|
||||
end
|
||||
|
||||
describe 'POST #close' do
|
||||
describe 'POST #receive' do
|
||||
before do
|
||||
dossier.submitted!
|
||||
sign_in gestionnaire
|
||||
end
|
||||
|
||||
it 'change state to received' do
|
||||
post :receive, dossier_id: dossier_id
|
||||
|
||||
dossier.reload
|
||||
expect(dossier.state).to eq('received')
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST #refuse' do
|
||||
before do
|
||||
dossier.refused!
|
||||
sign_in gestionnaire
|
||||
end
|
||||
|
||||
subject { post :refuse, dossier_id: dossier_id }
|
||||
|
||||
it 'change state to refused' do
|
||||
subject
|
||||
|
||||
dossier.reload
|
||||
expect(dossier.state).to eq('refused')
|
||||
end
|
||||
|
||||
it 'Notification email is sent' do
|
||||
expect(NotificationMailer).to receive(:dossier_refused).and_return(NotificationMailer)
|
||||
expect(NotificationMailer).to receive(:deliver_now!)
|
||||
|
||||
subject
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST #without_continuation' do
|
||||
before do
|
||||
dossier.without_continuation!
|
||||
sign_in gestionnaire
|
||||
end
|
||||
subject { post :without_continuation, dossier_id: dossier_id }
|
||||
|
||||
|
||||
it 'change state to without_continuation' do
|
||||
subject
|
||||
|
||||
dossier.reload
|
||||
expect(dossier.state).to eq('without_continuation')
|
||||
end
|
||||
|
||||
it 'Notification email is sent' do
|
||||
expect(NotificationMailer).to receive(:dossier_without_continuation).and_return(NotificationMailer)
|
||||
expect(NotificationMailer).to receive(:deliver_now!)
|
||||
|
||||
subject
|
||||
end
|
||||
end
|
||||
|
||||
describe 'POST #close' do
|
||||
before do
|
||||
dossier.received!
|
||||
sign_in gestionnaire
|
||||
end
|
||||
subject { post :close, dossier_id: dossier_id }
|
||||
|
||||
it 'change state to closed' do
|
||||
post :close, dossier_id: dossier_id
|
||||
subject
|
||||
|
||||
dossier.reload
|
||||
expect(dossier.state).to eq('closed')
|
||||
end
|
||||
|
||||
it 'Notification email is sent' do
|
||||
expect(NotificationMailer).to receive(:dossier_closed).and_return(NotificationMailer)
|
||||
expect(NotificationMailer).to receive(:deliver_now!)
|
||||
|
||||
subject
|
||||
end
|
||||
end
|
||||
|
||||
describe 'PUT #toggle_follow' do
|
||||
|
|
|
@ -40,11 +40,12 @@ feature 'add a new type de champs', js: true do
|
|||
|
||||
context 'user fill another one' do
|
||||
let(:libelle) { 'coucou' }
|
||||
let(:type_champ) { 'textarea' }
|
||||
let(:type_champ_value) { 'textarea' }
|
||||
let(:type_champ_label) { 'Zone de texte' }
|
||||
let(:description) { 'to be or not to be' }
|
||||
before do
|
||||
page.find_by_id('procedure_types_de_champ_attributes_1_libelle').set libelle
|
||||
select(type_champ, from: 'procedure_types_de_champ_attributes_1_type_champ')
|
||||
select(type_champ_label, from: 'procedure_types_de_champ_attributes_1_type_champ')
|
||||
page.find_by_id('procedure_types_de_champ_attributes_1_description').set description
|
||||
click_button 'Ajouter le champ'
|
||||
wait_for_ajax
|
||||
|
@ -54,7 +55,7 @@ feature 'add a new type de champs', js: true do
|
|||
scenario 'creates another types_de_champ' do
|
||||
expect(page).to have_css('#procedure_types_de_champ_attributes_2_libelle')
|
||||
expect(subject.libelle).to eq(libelle)
|
||||
expect(subject.type_champ).to eq(type_champ)
|
||||
expect(subject.type_champ).to eq(type_champ_value)
|
||||
expect(subject.description).to eq(description)
|
||||
expect(subject.order_place).to eq(1)
|
||||
expect(procedure.types_de_champ.count).to eq(2)
|
||||
|
|
|
@ -323,10 +323,10 @@ describe Dossier do
|
|||
dossier.submitted!
|
||||
end
|
||||
|
||||
context 'when user is connect' do
|
||||
context 'when user is connected' do
|
||||
let(:role) { 'user' }
|
||||
|
||||
context 'when is post a comment' do
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('submitted') }
|
||||
|
@ -336,13 +336,45 @@ describe Dossier do
|
|||
context 'when gestionnaire is connect' do
|
||||
let(:role) { 'gestionnaire' }
|
||||
|
||||
context 'when is post a comment' do
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('submitted') }
|
||||
end
|
||||
|
||||
context 'when is closed the dossier' do
|
||||
context 'when he receive the dossier' do
|
||||
let(:action) { 'receive' }
|
||||
|
||||
it { is_expected.to eq('received') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when dossier is at state received' do
|
||||
before do
|
||||
dossier.received!
|
||||
end
|
||||
|
||||
context 'when user is connected' do
|
||||
let(:role) { 'user' }
|
||||
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('received') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when gestionnaire is connect' do
|
||||
let(:role) { 'gestionnaire' }
|
||||
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('received') }
|
||||
end
|
||||
|
||||
context 'when he closes the dossier' do
|
||||
let(:action) { 'close' }
|
||||
|
||||
it { is_expected.to eq('closed') }
|
||||
|
@ -350,6 +382,59 @@ describe Dossier do
|
|||
end
|
||||
end
|
||||
|
||||
context 'when dossier is at state refused' do
|
||||
before do
|
||||
dossier.refused!
|
||||
end
|
||||
|
||||
context 'when user is connected' do
|
||||
let(:role) { 'user' }
|
||||
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('refused') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when gestionnaire is connect' do
|
||||
let(:role) { 'gestionnaire' }
|
||||
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('refused') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
context 'when dossier is at state without_continuation' do
|
||||
before do
|
||||
dossier.without_continuation!
|
||||
end
|
||||
|
||||
context 'when user is connected' do
|
||||
let(:role) { 'user' }
|
||||
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('without_continuation') }
|
||||
end
|
||||
end
|
||||
|
||||
context 'when gestionnaire is connect' do
|
||||
let(:role) { 'gestionnaire' }
|
||||
|
||||
context 'when he posts a comment' do
|
||||
let(:action) { 'comment' }
|
||||
|
||||
it { is_expected.to eq('without_continuation') }
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
context 'when dossier is at state closed' do
|
||||
before do
|
||||
dossier.closed!
|
||||
|
|
|
@ -119,28 +119,13 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
|
|||
|
||||
it { expect(rendered).to have_content('Déposé') }
|
||||
|
||||
it 'button Traiter le dossier is present' do
|
||||
it 'button notifier de la bonne réception is present' do
|
||||
expect(rendered).to have_css('#action_button')
|
||||
expect(rendered).to have_content('Traiter le dossier')
|
||||
expect(rendered).to have_content('Notifier de la bonne réception')
|
||||
end
|
||||
|
||||
it 'button Valider le dossier is not present' do
|
||||
expect(rendered).not_to have_content('Valider le dossier')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when dossier have state closed' do
|
||||
let(:state) { 'closed' }
|
||||
|
||||
before do
|
||||
render
|
||||
end
|
||||
|
||||
it { expect(rendered).to have_content('Accepté') }
|
||||
|
||||
it 'button Valider le dossier is not present' do
|
||||
expect(rendered).not_to have_css('#action_button')
|
||||
expect(rendered).not_to have_content('Valider le dossier')
|
||||
expect(rendered).not_to have_content('Accepter le dossier')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -153,9 +138,26 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
|
|||
|
||||
it { expect(rendered).to have_content('Reçu') }
|
||||
|
||||
it 'button Valider le dossier is not present' do
|
||||
expect(rendered).not_to have_css('#action_button')
|
||||
expect(rendered).not_to have_content('Valider le dossier')
|
||||
it 'button accepter / refuser / classer sans suite are present' do
|
||||
expect(rendered).to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
|
||||
expect(rendered).to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
|
||||
expect(rendered).to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
|
||||
end
|
||||
end
|
||||
|
||||
context 'when dossier have state closed' do
|
||||
let(:state) { 'closed' }
|
||||
|
||||
before do
|
||||
render
|
||||
end
|
||||
|
||||
it { expect(rendered).to have_content('Accepté') }
|
||||
|
||||
it 'button Accepter le dossier is not present' do
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -169,8 +171,9 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
|
|||
it { expect(rendered).to have_content('Sans suite') }
|
||||
|
||||
it 'button Valider le dossier is not present' do
|
||||
expect(rendered).not_to have_css('#action_button')
|
||||
expect(rendered).not_to have_content('Valider le dossier')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -184,8 +187,9 @@ describe 'backoffice/dossiers/show.html.haml', type: :view do
|
|||
it { expect(rendered).to have_content('Refusé') }
|
||||
|
||||
it 'button Valider le dossier is not present' do
|
||||
expect(rendered).not_to have_css('#action_button')
|
||||
expect(rendered).not_to have_content('Valider le dossier')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Accepter"]')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Classer sans suite"]')
|
||||
expect(rendered).not_to have_css('.action_button[data-toggle="tooltip"][title="Refuser"]')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue