Merge branch 'staging'
This commit is contained in:
commit
ec15e73b75
161 changed files with 1552 additions and 1188 deletions
5
Gemfile
5
Gemfile
|
@ -97,6 +97,8 @@ gem 'openstack'
|
|||
|
||||
gem 'browser'
|
||||
|
||||
gem 'simple_form'
|
||||
|
||||
group :test do
|
||||
gem 'capybara'
|
||||
gem 'launchy'
|
||||
|
@ -117,11 +119,8 @@ end
|
|||
|
||||
group :development do
|
||||
# Access an IRB console on exception pages or by using <%= console %> in views
|
||||
|
||||
gem 'web-console'
|
||||
|
||||
gem 'rack-handlers'
|
||||
|
||||
gem 'xray-rails'
|
||||
end
|
||||
|
||||
|
|
|
@ -540,6 +540,9 @@ GEM
|
|||
shellany (0.0.1)
|
||||
shoulda-matchers (3.1.1)
|
||||
activesupport (>= 4.0.0)
|
||||
simple_form (3.4.0)
|
||||
actionpack (> 4, < 5.1)
|
||||
activemodel (> 4, < 5.1)
|
||||
simplecov (0.12.0)
|
||||
docile (~> 1.1.0)
|
||||
json (>= 1.8, < 3)
|
||||
|
@ -688,6 +691,7 @@ DEPENDENCIES
|
|||
selenium-webdriver
|
||||
sentry-raven
|
||||
shoulda-matchers
|
||||
simple_form
|
||||
simplecov
|
||||
smart_listing
|
||||
spreadsheet_architect
|
||||
|
|
|
@ -3,6 +3,6 @@ $(document).on('page:load', wysihtml5_active);
|
|||
|
||||
function wysihtml5_active (){
|
||||
$('.wysihtml5').each(function(i, elem) {
|
||||
$(elem).wysihtml5({ toolbar:{ "fa": true, "link": false, "color": true }, "locale": "fr-FR" });
|
||||
$(elem).wysihtml5({ toolbar:{ "fa": true, "link": false, "color": false }, "locale": "fr-FR" });
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,14 +18,6 @@ function action_type_de_champs() {
|
|||
toggleErrorClass(this, validatePhone(val));
|
||||
});
|
||||
|
||||
$("#liste_champs input").on('focus', function () {
|
||||
$("#description_" + this.id).slideDown();
|
||||
});
|
||||
|
||||
$("#liste_champs input").on('blur', function () {
|
||||
$("#description_" + this.id).slideUp();
|
||||
});
|
||||
|
||||
address_type_init();
|
||||
}
|
||||
|
||||
|
|
21
app/assets/stylesheets/_helpers.scss
Normal file
21
app/assets/stylesheets/_helpers.scss
Normal file
|
@ -0,0 +1,21 @@
|
|||
$default-spacer: 15px;
|
||||
|
||||
.m-1 {
|
||||
margin: $default-spacer;
|
||||
}
|
||||
|
||||
.mt-1 {
|
||||
margin-top: $default-spacer;
|
||||
}
|
||||
|
||||
.mr-1 {
|
||||
margin-right: $default-spacer;
|
||||
}
|
||||
|
||||
.mb-1 {
|
||||
margin-bottom: $default-spacer;
|
||||
}
|
||||
|
||||
.ml-1 {
|
||||
margin-left: $default-spacer;
|
||||
}
|
1
app/assets/stylesheets/_variables.scss
Normal file
1
app/assets/stylesheets/_variables.scss
Normal file
|
@ -0,0 +1 @@
|
|||
$font-size-base: 16px;
|
|
@ -20,6 +20,7 @@
|
|||
*= require franceconnect
|
||||
*= require bootstrap-wysihtml5
|
||||
*/
|
||||
@import "variables";
|
||||
@import "bootstrap-sprockets";
|
||||
@import "bootstrap";
|
||||
|
||||
|
@ -143,10 +144,6 @@ textarea#description {
|
|||
max-width: 27px;
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: normal;
|
||||
}
|
||||
|
||||
div.pagination {
|
||||
padding-top: 20px;
|
||||
display: block;
|
||||
|
|
|
@ -3,10 +3,6 @@
|
|||
// You can use Sass (SCSS) here: http://sass-lang.com/
|
||||
@import "bootstrap";
|
||||
|
||||
table {
|
||||
font-size: 13px;
|
||||
}
|
||||
|
||||
#carte_page {
|
||||
#map {
|
||||
@extend .col-md-12;
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
.show-block {
|
||||
width: 90%;
|
||||
.body{
|
||||
padding-left: 35px;
|
||||
padding-right: 35px;
|
||||
padding-bottom: 35px;
|
||||
padding: 15px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -134,10 +132,3 @@
|
|||
width: 160px;
|
||||
}
|
||||
}
|
||||
|
||||
.description_div {
|
||||
margin-top: 5px;
|
||||
margin-left: 5px;
|
||||
color: dimgrey;
|
||||
display: none;
|
||||
}
|
|
@ -30,18 +30,6 @@
|
|||
color: #000000;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
.new-action {
|
||||
background-color: #E45B51;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
color: #FFFFFF;
|
||||
width: 253px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
font-family: Arial;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
}
|
||||
.file {
|
||||
padding-right: 70px;
|
||||
text-align: center;
|
||||
|
@ -59,20 +47,7 @@
|
|||
border-bottom: 1px solid #979797;
|
||||
}
|
||||
#new-commentaire {
|
||||
padding: 35px;
|
||||
.btn-send {
|
||||
background-color: #E45B51;
|
||||
text-align: center;
|
||||
color: #FFFFFF;
|
||||
width: 150px;
|
||||
height: 40px;
|
||||
line-height: 28px;
|
||||
font-family: Arial;
|
||||
font-size: 16px;
|
||||
font-weight: bold;
|
||||
float: right;
|
||||
border-radius: 0;
|
||||
}
|
||||
padding: 15px;
|
||||
}
|
||||
}
|
||||
.infos {
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
#left-pannel {
|
||||
#left-panel {
|
||||
margin-top: 60px;
|
||||
padding: 0;
|
||||
background-color: #003189;
|
|
@ -158,7 +158,6 @@
|
|||
position: fixed;
|
||||
bottom: 26px;
|
||||
right: -35px;
|
||||
-webkit-transform: rotate(-45deg);
|
||||
transform: rotate(-45deg);
|
||||
width: 150px;
|
||||
background-color: #008cba;
|
||||
|
@ -207,4 +206,3 @@
|
|||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
@media print {
|
||||
html, body {
|
||||
width: 900px;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
@ -28,4 +27,39 @@
|
|||
#backoffice_dossier_show .nav-tabs {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#left-panel {
|
||||
margin-top: 0;
|
||||
height: auto;
|
||||
position: relative;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#wrap {
|
||||
overflow: visible;
|
||||
}
|
||||
|
||||
#main-container {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
#beta {
|
||||
top: 26px;
|
||||
bottom: initial;
|
||||
position: absolute;
|
||||
transform: rotate(45deg);
|
||||
}
|
||||
|
||||
.copyright {
|
||||
width: 100%;
|
||||
left: 0;
|
||||
}
|
||||
|
||||
.no-page-break-inside {
|
||||
page-break-inside: avoid;
|
||||
}
|
||||
|
||||
.display-block-on-print {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,3 +1,6 @@
|
|||
.twitter-typeahead {
|
||||
width: 100%; // http://stackoverflow.com/questions/17957513/extending-the-width-of-bootstrap-typeahead-to-match-input-field
|
||||
}
|
||||
|
||||
.tt-menu {
|
||||
padding: 8px 0;
|
||||
|
|
24
app/controllers/admin/mail_templates_controller.rb
Normal file
24
app/controllers/admin/mail_templates_controller.rb
Normal file
|
@ -0,0 +1,24 @@
|
|||
class Admin::MailTemplatesController < AdminController
|
||||
before_action :retrieve_procedure
|
||||
|
||||
def index
|
||||
@mail_templates = @procedure.mail_templates
|
||||
end
|
||||
|
||||
def edit
|
||||
@mail_template = @procedure.mail_templates.find(params[:id])
|
||||
end
|
||||
|
||||
def update
|
||||
mail_template = @procedure.mail_templates.find(params[:id])
|
||||
mail_template.update_attributes(update_params)
|
||||
|
||||
redirect_to admin_procedure_mail_templates_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def update_params
|
||||
params.require(:mail_template).permit(:body, :object)
|
||||
end
|
||||
end
|
|
@ -1,20 +0,0 @@
|
|||
class Admin::MailsController < AdminController
|
||||
before_action :retrieve_procedure
|
||||
|
||||
def index
|
||||
|
||||
end
|
||||
|
||||
def update
|
||||
mail = current_administrateur.procedures.find(params[:procedure_id]).mail_templates.find(params[:id])
|
||||
mail.update_attributes(update_params)
|
||||
|
||||
redirect_to admin_procedure_mails_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def update_params
|
||||
params.require(:mail_received).permit(:body, :object)
|
||||
end
|
||||
end
|
|
@ -6,8 +6,11 @@ class Admin::PiecesJustificativesController < AdminController
|
|||
end
|
||||
|
||||
def update
|
||||
@procedure.update_attributes(update_params)
|
||||
flash.now.notice = 'Modifications sauvegardées'
|
||||
if @procedure.update_attributes(update_params)
|
||||
flash.now.notice = 'Modifications sauvegardées'
|
||||
else
|
||||
flash.now.notice = 'Une erreur est survenue'
|
||||
end
|
||||
render 'show', format: :js
|
||||
end
|
||||
|
||||
|
@ -22,7 +25,7 @@ class Admin::PiecesJustificativesController < AdminController
|
|||
def update_params
|
||||
params
|
||||
.require(:procedure)
|
||||
.permit(types_de_piece_justificative_attributes: [:libelle, :description, :id, :order_place])
|
||||
.permit(types_de_piece_justificative_attributes: [:libelle, :description, :id, :order_place, :lien_demarche])
|
||||
end
|
||||
|
||||
def move_up
|
||||
|
@ -41,4 +44,4 @@ class Admin::PiecesJustificativesController < AdminController
|
|||
render json: {}, status: 400
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,7 +3,6 @@ class Admin::ProceduresController < AdminController
|
|||
helper SmartListing::Helper
|
||||
|
||||
before_action :retrieve_procedure, only: [:show, :edit]
|
||||
before_action :procedure_locked?, only: [:edit]
|
||||
|
||||
def index
|
||||
@procedures = smart_listing_create :procedures,
|
||||
|
@ -61,7 +60,7 @@ class Admin::ProceduresController < AdminController
|
|||
end
|
||||
|
||||
def create
|
||||
@procedure = Procedure.new(create_procedure_params)
|
||||
@procedure = Procedure.new(procedure_params)
|
||||
@procedure.module_api_carto = ModuleAPICarto.new(create_module_api_carto_params) if @procedure.valid?
|
||||
|
||||
unless @procedure.save
|
||||
|
@ -76,12 +75,12 @@ class Admin::ProceduresController < AdminController
|
|||
def update
|
||||
@procedure = current_administrateur.procedures.find(params[:id])
|
||||
|
||||
unless @procedure.update_attributes(create_procedure_params)
|
||||
unless @procedure.update_attributes(procedure_params)
|
||||
flash.now.alert = @procedure.errors.full_messages.join('<br />').html_safe
|
||||
return render 'edit'
|
||||
end
|
||||
|
||||
flash.notice = 'Préocédure modifiée'
|
||||
flash.notice = 'Procédure modifiée'
|
||||
redirect_to edit_admin_procedure_path(id: @procedure.id)
|
||||
end
|
||||
|
||||
|
@ -192,8 +191,12 @@ class Admin::ProceduresController < AdminController
|
|||
|
||||
private
|
||||
|
||||
def create_procedure_params
|
||||
params.require(:procedure).permit(:libelle, :description, :organisation, :direction, :lien_demarche, :lien_site_web, :lien_notice, :euro_flag, :logo, :cerfa_flag, :for_individual, :individual_with_siret, module_api_carto_attributes: [:id, :use_api_carto, :quartiers_prioritaires, :cadastre]).merge(administrateur_id: current_administrateur.id)
|
||||
def procedure_params
|
||||
if @procedure.try(:locked?)
|
||||
params.require(:procedure).permit(:libelle, :description, :organisation, :direction, :lien_site_web, :lien_notice, :euro_flag, :logo)
|
||||
else
|
||||
params.require(:procedure).permit(:libelle, :description, :organisation, :direction, :lien_site_web, :lien_notice, :euro_flag, :logo, :lien_demarche, :cerfa_flag, :for_individual, :individual_with_siret, module_api_carto_attributes: [:id, :use_api_carto, :quartiers_prioritaires, :cadastre]).merge(administrateur_id: current_administrateur.id)
|
||||
end
|
||||
end
|
||||
|
||||
def create_module_api_carto_params
|
||||
|
|
|
@ -56,7 +56,10 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
@search_terms = params[:q]
|
||||
|
||||
# exact id match?
|
||||
@dossiers = Dossier.where(id: @search_terms.to_i) if @search_terms.to_i < 2147483647
|
||||
if @search_terms.to_i != 0
|
||||
@dossiers = current_gestionnaire.dossiers.where(id: @search_terms.to_i)
|
||||
end
|
||||
|
||||
@dossiers = Dossier.none if @dossiers.nil?
|
||||
|
||||
# full text search
|
||||
|
@ -158,6 +161,15 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
|
|||
render 'backoffice/dossiers/index', formats: :js
|
||||
end
|
||||
|
||||
def archive
|
||||
facade = create_dossier_facade params[:dossier_id]
|
||||
unless facade.dossier.archived
|
||||
facade.dossier.update(archived: true)
|
||||
flash.notice = 'Dossier archivé'
|
||||
end
|
||||
redirect_to backoffice_dossiers_path
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def create_dossier_facade dossier_id
|
||||
|
|
|
@ -36,7 +36,7 @@ class Backoffice::PreferenceListDossierController < Backoffice::DossiersListCont
|
|||
private
|
||||
|
||||
def path
|
||||
Features.opensimplif ? 'opensimplif/pref_list' : 'backoffice/dossiers/pref_list'
|
||||
'backoffice/dossiers/pref_list'
|
||||
end
|
||||
|
||||
def params_procedure_id
|
||||
|
|
|
@ -1,61 +0,0 @@
|
|||
class OpensimplifController < Backoffice::Dossiers::ProcedureController
|
||||
def index
|
||||
if params[:id].nil?
|
||||
procedure = current_gestionnaire.procedures.order('libelle ASC').first
|
||||
|
||||
if procedure.nil?
|
||||
return redirect_to simplifications_nothing_path
|
||||
else
|
||||
return redirect_to simplification_path(id: procedure.id)
|
||||
end
|
||||
end
|
||||
|
||||
smartlisting_dossier
|
||||
end
|
||||
|
||||
def nothing
|
||||
|
||||
end
|
||||
|
||||
def reload_smartlisting
|
||||
smartlisting_dossier
|
||||
|
||||
render 'opensimplif/index', formats: :js
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def smartlisting_dossier dossiers_list=nil, liste='all_state'
|
||||
dossiers_list_facade liste
|
||||
|
||||
mes_dossiers_list = current_user.dossiers
|
||||
follow_dossiers_list = dossiers_list_facade.service.suivi
|
||||
all_state_dossiers_list = dossiers_list_facade.service.all_state
|
||||
|
||||
if param_page.nil?
|
||||
params[:dossiers_smart_listing] = {page: dossiers_list_facade.service.default_page}
|
||||
end
|
||||
|
||||
smart_listing_create :mes_dossiers,
|
||||
mes_dossiers_list,
|
||||
partial: "backoffice/dossiers/list",
|
||||
array: true,
|
||||
default_sort: dossiers_list_facade.service.default_sort
|
||||
|
||||
smart_listing_create :follow_dossiers,
|
||||
follow_dossiers_list,
|
||||
partial: "backoffice/dossiers/list",
|
||||
array: true,
|
||||
default_sort: dossiers_list_facade.service.default_sort
|
||||
|
||||
smart_listing_create :all_state_dossiers,
|
||||
all_state_dossiers_list,
|
||||
partial: "backoffice/dossiers/list",
|
||||
array: true,
|
||||
default_sort: dossiers_list_facade.service.default_sort
|
||||
end
|
||||
|
||||
def dossiers_list_facade liste='all_state'
|
||||
@facade_data_view ||= DossiersListFacades.new current_gestionnaire, liste, retrieve_procedure
|
||||
end
|
||||
end
|
|
@ -7,12 +7,6 @@ class RootController < ApplicationController
|
|||
route = Rails.application.routes.recognize_path(new_user_session_path)
|
||||
end
|
||||
|
||||
if Features.opensimplif
|
||||
unless !user_signed_in? && !administrateur_signed_in? && !gestionnaire_signed_in?
|
||||
return redirect_to simplifications_path
|
||||
end
|
||||
end
|
||||
|
||||
if user_signed_in? && !route[:controller].match('users').nil?
|
||||
return redirect_to users_dossiers_path
|
||||
|
||||
|
@ -43,6 +37,8 @@ class RootController < ApplicationController
|
|||
return redirect_to administrations_path
|
||||
end
|
||||
|
||||
@demo_environment_host = "https://tps-dev.apientreprise.fr" unless Rails.env.development?
|
||||
|
||||
render 'landing'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -29,8 +29,6 @@ class Users::SessionsController < Sessions::SessionsController
|
|||
current_user.update_attributes(loged_in_with_france_connect: '')
|
||||
end
|
||||
|
||||
check_opensimplif if Features.opensimplif
|
||||
|
||||
if user_signed_in?
|
||||
redirect_to after_sign_in_path_for(:user)
|
||||
elsif gestionnaire_signed_in?
|
||||
|
@ -74,18 +72,6 @@ class Users::SessionsController < Sessions::SessionsController
|
|||
|
||||
private
|
||||
|
||||
def check_opensimplif
|
||||
return if (user_signed_in? && gestionnaire_signed_in?) || administrateur_signed_in?
|
||||
|
||||
if gestionnaire_signed_in?
|
||||
User.create email: params[:user][:email], password: params[:user][:password]
|
||||
try_to_authenticate User
|
||||
elsif user_signed_in?
|
||||
Gestionnaire.create email: params[:user][:email], password: params[:user][:password]
|
||||
try_to_authenticate Gestionnaire
|
||||
end
|
||||
end
|
||||
|
||||
def error_procedure
|
||||
flash.alert = t('errors.messages.procedure_not_found')
|
||||
redirect_to url_for root_path
|
||||
|
@ -101,6 +87,7 @@ class Users::SessionsController < Sessions::SessionsController
|
|||
if resource = klass.find_for_database_authentication(email: params[:user][:email])
|
||||
if resource.valid_password?(params[:user][:password])
|
||||
sign_in resource
|
||||
resource.force_sync_credentials
|
||||
set_flash_message :notice, :signed_in
|
||||
end
|
||||
end
|
||||
|
|
|
@ -7,4 +7,9 @@ class ChampDecorator < Draper::Decorator
|
|||
end
|
||||
object.value
|
||||
end
|
||||
end
|
||||
|
||||
def description_with_links
|
||||
description.gsub(URI.regexp, '<a target="_blank" href="\0">\0</a>').html_safe if description
|
||||
end
|
||||
|
||||
end
|
||||
|
|
14
app/decorators/mail_template_decorator.rb
Normal file
14
app/decorators/mail_template_decorator.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
class MailTemplateDecorator < Draper::Decorator
|
||||
delegate_all
|
||||
|
||||
def name
|
||||
case object.type
|
||||
when "MailReceived"
|
||||
"E-mail d'accusé de réception"
|
||||
when "MailValidated"
|
||||
"E-mail de validation"
|
||||
else
|
||||
object.type
|
||||
end
|
||||
end
|
||||
end
|
|
@ -11,9 +11,17 @@ class ProcedureDecorator < Draper::Decorator
|
|||
end
|
||||
|
||||
def logo_img
|
||||
return h.image_url(LOGO_NAME) if logo.blank?
|
||||
File.join(STORAGE_URL, File.basename(logo.path))
|
||||
if logo.blank?
|
||||
h.image_url(LOGO_NAME)
|
||||
else
|
||||
if Features.remote_storage
|
||||
(RemoteDownloader.new logo.filename).url
|
||||
else
|
||||
(LocalDownloader.new logo.path, 'logo').url
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def geographic_information
|
||||
module_api_carto
|
||||
end
|
||||
|
|
|
@ -39,4 +39,4 @@ class TypeDeChampDecorator < Draper::Decorator
|
|||
@count_type_de_champ ||= procedure.types_de_champ.count
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -6,7 +6,6 @@ class DossiersListFacades
|
|||
def initialize current_devise_profil, liste, procedure = nil
|
||||
@current_devise_profil = current_devise_profil
|
||||
@liste = liste
|
||||
@liste = 'all_state' if Features.opensimplif
|
||||
@procedure = procedure
|
||||
end
|
||||
|
||||
|
|
|
@ -4,11 +4,11 @@ class NotificationMailer < ApplicationMailer
|
|||
end
|
||||
|
||||
def dossier_received dossier
|
||||
send_mail dossier, MailTemplate.replace_tags(dossier.procedure.mail_received.object, dossier)
|
||||
send_mail dossier, dossier.procedure.mail_received.object_for_dossier(dossier)
|
||||
end
|
||||
|
||||
def dossier_validated dossier
|
||||
send_mail dossier, "Votre dossier TPS N°#{dossier.id} a été validé"
|
||||
send_mail dossier, dossier.procedure.mail_validated.object_for_dossier(dossier)
|
||||
end
|
||||
|
||||
def dossier_submitted dossier
|
||||
|
|
|
@ -6,7 +6,8 @@ class Administrateur < ActiveRecord::Base
|
|||
has_many :procedures
|
||||
|
||||
before_save :ensure_api_token
|
||||
after_update :sync_credentials
|
||||
|
||||
include CredentialsSyncableConcern
|
||||
|
||||
def ensure_api_token
|
||||
if api_token.nil?
|
||||
|
@ -27,10 +28,4 @@ class Administrateur < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def sync_credentials
|
||||
if email_changed? || encrypted_password_changed?
|
||||
return SyncCredentialsService.new(Administrateur, email_was, email, encrypted_password).change_credentials!
|
||||
end
|
||||
true
|
||||
end
|
||||
end
|
||||
|
|
19
app/models/concerns/credentials_syncable_concern.rb
Normal file
19
app/models/concerns/credentials_syncable_concern.rb
Normal file
|
@ -0,0 +1,19 @@
|
|||
module CredentialsSyncableConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
after_update :sync_credentials
|
||||
end
|
||||
|
||||
def sync_credentials
|
||||
if email_changed? || encrypted_password_changed?
|
||||
return force_sync_credentials
|
||||
end
|
||||
true
|
||||
end
|
||||
|
||||
def force_sync_credentials
|
||||
SyncCredentialsService.new(self.class, email_was, email, encrypted_password).change_credentials!
|
||||
end
|
||||
|
||||
end
|
|
@ -309,6 +309,10 @@ class Dossier < ActiveRecord::Base
|
|||
end
|
||||
end
|
||||
|
||||
def followers_gestionnaires_emails
|
||||
follows.includes(:gestionnaire).map { |f| f.gestionnaire }.pluck(:email).join(' ')
|
||||
end
|
||||
|
||||
def reset!
|
||||
etablissement.destroy
|
||||
entreprise.destroy
|
||||
|
|
|
@ -14,7 +14,8 @@ class Gestionnaire < ActiveRecord::Base
|
|||
|
||||
after_create :build_default_preferences_list_dossier
|
||||
after_create :build_default_preferences_smart_listing_page
|
||||
after_update :sync_credentials
|
||||
|
||||
include CredentialsSyncableConcern
|
||||
|
||||
def dossiers_follow
|
||||
@dossiers_follow ||= dossiers.joins(:follows).where("follows.gestionnaire_id = #{id}")
|
||||
|
@ -119,11 +120,4 @@ class Gestionnaire < ActiveRecord::Base
|
|||
|
||||
couples.include?({table: table, column: column})
|
||||
end
|
||||
|
||||
def sync_credentials
|
||||
if email_changed? || encrypted_password_changed?
|
||||
return SyncCredentialsService.new(Gestionnaire, email_was, email, encrypted_password).change_credentials!
|
||||
end
|
||||
true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -1,31 +1,46 @@
|
|||
class MailTemplate < ActiveRecord::Base
|
||||
include Rails.application.routes.url_helpers
|
||||
include ActionView::Helpers::UrlHelper
|
||||
|
||||
belongs_to :procedure
|
||||
|
||||
enum tags: {
|
||||
numero_dossier: {
|
||||
description: "Permet d'afficher le numéro de dossier de l'utilisateur."
|
||||
},
|
||||
libelle_procedure: {
|
||||
description: "Permet d'afficher le libellé de la procédure."
|
||||
}
|
||||
}
|
||||
TAGS = {
|
||||
numero_dossier: {
|
||||
description: "Permet d'afficher le numéro de dossier de l'utilisateur."
|
||||
},
|
||||
lien_dossier: {
|
||||
description: "Permet d'afficher un lien vers le dossier de l'utilisateur."
|
||||
},
|
||||
libelle_procedure: {
|
||||
description: "Permet d'afficher le libellé de la procédure."
|
||||
}
|
||||
}
|
||||
|
||||
def self.replace_tags string, dossier
|
||||
@dossier = dossier
|
||||
def object_for_dossier dossier
|
||||
replace_tags(object, dossier)
|
||||
end
|
||||
|
||||
tags.inject(string) do |acc, tag|
|
||||
acc.gsub!("--#{tag.first}--", replace_tag(tag.first.to_sym)) || acc
|
||||
def body_for_dossier dossier
|
||||
replace_tags(body, dossier)
|
||||
end
|
||||
|
||||
def replace_tags string, dossier
|
||||
TAGS.inject(string) do |acc, tag|
|
||||
acc.gsub!("--#{tag.first}--", replace_tag(tag.first.to_sym, dossier)) || acc
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def self.replace_tag tag
|
||||
def replace_tag tag, dossier
|
||||
case tag
|
||||
when :numero_dossier
|
||||
@dossier.id.to_s
|
||||
dossier.id.to_s
|
||||
when :lien_dossier
|
||||
# TPS::Application::URL # quickfix
|
||||
link_to users_dossier_recapitulatif_url(dossier), users_dossier_recapitulatif_url(dossier), target: '_blank'
|
||||
when :libelle_procedure
|
||||
@dossier.procedure.libelle
|
||||
dossier.procedure.libelle
|
||||
else
|
||||
'--BALISE_NON_RECONNUE--'
|
||||
end
|
||||
|
|
18
app/models/mail_validated.rb
Normal file
18
app/models/mail_validated.rb
Normal file
|
@ -0,0 +1,18 @@
|
|||
class MailValidated < MailTemplate
|
||||
before_save :default_values
|
||||
|
||||
def default_values
|
||||
self.object ||= "[TPS] Votre dossier TPS N°--numero_dossier-- a été validé"
|
||||
self.body ||= "Bonjour,<br>
|
||||
<br>
|
||||
Votre dossier N°--numero_dossier-- est prêt à être déposé pour instruction.<br>
|
||||
<br>
|
||||
Afin de finaliser son dépôt, merci de vous rendre sur --lien_dossier--.,<br>
|
||||
<br>
|
||||
Bonne journée,<br>
|
||||
---<br>
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.<br>
|
||||
---<br>
|
||||
L'équipe TPS"
|
||||
end
|
||||
end
|
|
@ -5,6 +5,7 @@ class Procedure < ActiveRecord::Base
|
|||
has_many :dossiers
|
||||
has_many :mail_templates
|
||||
has_one :mail_received
|
||||
has_one :mail_validated
|
||||
|
||||
has_one :procedure_path, dependent: :destroy
|
||||
|
||||
|
@ -29,10 +30,11 @@ class Procedure < ActiveRecord::Base
|
|||
validates :libelle, presence: true, allow_blank: false, allow_nil: false
|
||||
validates :description, presence: true, allow_blank: false, allow_nil: false
|
||||
|
||||
after_save :build_default_mails, if: Proc.new { id_changed? }
|
||||
after_create :build_default_mails
|
||||
|
||||
def build_default_mails
|
||||
MailReceived.create(procedure: self)
|
||||
MailReceived.create(procedure: self) unless mail_received
|
||||
MailValidated.create(procedure: self) unless mail_validated
|
||||
end
|
||||
|
||||
def path
|
||||
|
@ -109,4 +111,5 @@ class Procedure < ActiveRecord::Base
|
|||
def total_dossier
|
||||
self.dossiers.where.not(state: :draft).size
|
||||
end
|
||||
|
||||
end
|
||||
|
|
|
@ -4,4 +4,6 @@ class TypeDePieceJustificative < ActiveRecord::Base
|
|||
belongs_to :procedure
|
||||
|
||||
validates :libelle, presence: true, allow_blank: false, allow_nil: false
|
||||
|
||||
validates :lien_demarche, format: { with: URI::regexp }, allow_blank: true, allow_nil: true
|
||||
end
|
||||
|
|
|
@ -15,7 +15,8 @@ class User < ActiveRecord::Base
|
|||
|
||||
delegate :given_name, :family_name, :email_france_connect, :gender, :birthdate, :birthplace, :france_connect_particulier_id, to: :france_connect_information
|
||||
accepts_nested_attributes_for :france_connect_information
|
||||
after_update :sync_credentials
|
||||
|
||||
include CredentialsSyncableConcern
|
||||
|
||||
def self.find_for_france_connect email, siret
|
||||
user = User.find_by_email(email)
|
||||
|
@ -35,12 +36,4 @@ class User < ActiveRecord::Base
|
|||
invites.pluck(:dossier_id).include?(dossier_id.to_i)
|
||||
end
|
||||
|
||||
private
|
||||
|
||||
def sync_credentials
|
||||
if email_changed? || encrypted_password_changed?
|
||||
return SyncCredentialsService.new(User, email_was, email, encrypted_password).change_credentials!
|
||||
end
|
||||
true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -5,4 +5,6 @@ class DossierProcedureSerializer < ActiveModel::Serializer
|
|||
:archived,
|
||||
:mandataire_social,
|
||||
:state
|
||||
|
||||
attribute :followers_gestionnaires_emails, key: :emails_accompagnateurs
|
||||
end
|
||||
|
|
|
@ -2,5 +2,6 @@ class TypeDePieceJustificativeSerializer < ActiveModel::Serializer
|
|||
attributes :id,
|
||||
:libelle,
|
||||
:description,
|
||||
:order_place
|
||||
end
|
||||
:order_place,
|
||||
:lien_demarche
|
||||
end
|
||||
|
|
|
@ -11,7 +11,7 @@ class SyncCredentialsService
|
|||
unless @klass == User
|
||||
user = User.find_by(email: @email_was)
|
||||
if user
|
||||
return user.update_columns(
|
||||
return false unless user.update_columns(
|
||||
email: @email,
|
||||
encrypted_password: @encrypted_password)
|
||||
end
|
||||
|
@ -20,7 +20,7 @@ class SyncCredentialsService
|
|||
unless @klass == Gestionnaire
|
||||
gestionnaire = Gestionnaire.find_by(email: @email_was)
|
||||
if gestionnaire
|
||||
return gestionnaire.update_columns(
|
||||
return false unless gestionnaire.update_columns(
|
||||
email: @email,
|
||||
encrypted_password: @encrypted_password)
|
||||
end
|
||||
|
@ -29,10 +29,12 @@ class SyncCredentialsService
|
|||
unless @klass == Administrateur
|
||||
administrateur = Administrateur.find_by(email: @email_was)
|
||||
if administrateur
|
||||
return administrateur.update_columns(
|
||||
return false unless administrateur.update_columns(
|
||||
email: @email,
|
||||
encrypted_password: @encrypted_password)
|
||||
end
|
||||
end
|
||||
|
||||
true
|
||||
end
|
||||
end
|
||||
|
|
|
@ -3,11 +3,7 @@
|
|||
class BaseUploader < CarrierWave::Uploader::Base
|
||||
def cache_dir
|
||||
if Rails.env.production?
|
||||
if Features.opensimplif?
|
||||
'/tmp/opensimplif-cache'
|
||||
else
|
||||
'/tmp/tps-cache'
|
||||
end
|
||||
'/tmp/tps-cache'
|
||||
else
|
||||
'/tmp/tps-dev-cache'
|
||||
end
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
- @accompagnateurs_not_assign.each do |accompagnateur|
|
||||
%tr
|
||||
%td.col-md-11.col-sm-11.col-xs-11.col-lg-11{style:'padding-top: 11px; font-size:15px'}= accompagnateur.email
|
||||
%td.col-xs-11{style:'padding-top: 11px; font-size:15px'}= accompagnateur.email
|
||||
%td.center
|
||||
%a.btn.btn-success.gestionnaire-affectation{href: "#{admin_procedure_accompagnateurs_path(procedure_id: @procedure.id, accompagnateur_id: accompagnateur.id, to: AccompagnateurService::ASSIGN)}", 'data-method' => 'put'}
|
||||
.fa.fa-arrow-right
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
.row.white-back
|
||||
#accompagnateur_form
|
||||
.row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
.col-xs-6
|
||||
%h3.text-info Disponibles
|
||||
= smart_listing_render :accompagnateurs_not_assign
|
||||
|
||||
|
@ -11,13 +11,13 @@
|
|||
#procedure_new.section.section-label
|
||||
= form_for @gestionnaire, url: {controller: 'admin/gestionnaires', action: :create} do |f|
|
||||
.row
|
||||
.col-md-5.col-sm-5.col-xs-5.col-lg-5
|
||||
.col-xs-5
|
||||
= hidden_field_tag :procedure_id, params[:procedure_id]
|
||||
=render partial: 'admin/gestionnaires/informations', locals: {f: f}
|
||||
.col-md-2.col-sm-2.col-xs-2.col-lg-2
|
||||
.col-xs-2
|
||||
%br
|
||||
%br
|
||||
= f.submit 'Valider', class: 'btn btn-info', style: 'float:left', id: 'add-gestionnaire-email'
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
.col-xs-6
|
||||
%h3.text-success Affectés
|
||||
= smart_listing_render :accompagnateurs_assign
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
%br
|
||||
|
||||
.row
|
||||
.col-md-4.col-sm-4.col-xs-4.col-lg-4
|
||||
.col-xs-4
|
||||
= smart_listing_render :gestionnaires
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1
|
||||
.col-xs-1
|
||||
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
.col-xs-6
|
||||
%h3 Ajouter un accompagnateur
|
||||
#procedure_new.section.section-label
|
||||
= form_for @gestionnaire, url: {controller: 'admin/gestionnaires', action: :create} do |f|
|
||||
.row
|
||||
.col-md-5.col-sm-5.col-xs-5.col-lg-5
|
||||
.col-xs-5
|
||||
= render partial: 'informations', locals: {f: f}
|
||||
.col-md-2.col-sm-2.col-xs-2.col-lg-2
|
||||
.col-xs-2
|
||||
%br
|
||||
%br
|
||||
= f.submit 'Valider', class: 'btn btn-info', style: 'float:left'
|
||||
|
|
28
app/views/admin/mail_templates/edit.html.haml
Normal file
28
app/views/admin/mail_templates/edit.html.haml
Normal file
|
@ -0,0 +1,28 @@
|
|||
.white-back
|
||||
%h3
|
||||
= @mail_template.decorate.name
|
||||
|
||||
= simple_form_for @mail_template.becomes(MailTemplate), url: admin_procedure_mail_template_path(@procedure, @mail_template) do |f|
|
||||
.row
|
||||
.col-md-6
|
||||
= f.input :object, label: "Objet de l'email"
|
||||
= f.input :body, label: "Corps de l'email", input_html: {class: 'wysihtml5'}
|
||||
.text-right
|
||||
= link_to "Annuler", admin_procedure_mail_templates_path(@procedure), class: "btn btn-default"
|
||||
= f.button :submit, 'Mettre à jour', class: "btn-success"
|
||||
|
||||
.row
|
||||
.col-md-8
|
||||
%table.table
|
||||
%tr
|
||||
%th
|
||||
Balise
|
||||
%th
|
||||
Description
|
||||
- MailTemplate::TAGS.each do |balise|
|
||||
%tr
|
||||
%td.center
|
||||
%b.text-success
|
||||
= "--#{balise.first}--"
|
||||
%td
|
||||
=balise.second[:description]
|
15
app/views/admin/mail_templates/index.html.haml
Normal file
15
app/views/admin/mail_templates/index.html.haml
Normal file
|
@ -0,0 +1,15 @@
|
|||
.row.white-back
|
||||
%h1 E-mails personnalisables
|
||||
|
||||
.row
|
||||
.col-md-6
|
||||
%table.table
|
||||
%tr
|
||||
%th{ colspan: 2 }
|
||||
Type d'email
|
||||
- @procedure.mail_templates.each do |mt|
|
||||
%tr
|
||||
%td
|
||||
= mt.decorate.name
|
||||
%td.text-right
|
||||
= link_to "Personnaliser l'e-mail", edit_admin_procedure_mail_template_path(@procedure, mt)
|
|
@ -1,28 +0,0 @@
|
|||
.row.white-back
|
||||
%h3
|
||||
E-mail d'accusé de réception
|
||||
|
||||
- unless @procedure.mail_received.blank?
|
||||
= form_for @procedure.mail_received, url: {controller: 'admin/mails', action: 'update', id: @procedure.mail_received.id} do |f|
|
||||
=f.text_field :object, {class:'form-control', style:'width: 40%'}
|
||||
%br
|
||||
=f.text_area :body, {class: 'form-control wysihtml5'}
|
||||
%br
|
||||
=f.submit 'Mettre à jour', {class:'btn btn-success', style:'float: right'}
|
||||
|
||||
|
||||
%table.table{style:'width: 50%'}
|
||||
%tr
|
||||
%th
|
||||
Balise
|
||||
%th
|
||||
Description
|
||||
- MailTemplate.tags.each do |balise|
|
||||
%tr
|
||||
%td.center
|
||||
%b.text-success
|
||||
\--
|
||||
= balise.first
|
||||
\--
|
||||
%td
|
||||
=balise.second[:description]
|
|
@ -6,6 +6,12 @@
|
|||
.form-group
|
||||
%h4 Description
|
||||
=ff.text_area :description, class: 'form-control description', placeholder: 'Description'
|
||||
.form-group
|
||||
%h4
|
||||
Lien du formulaire vierge
|
||||
%small
|
||||
(optionel)
|
||||
=ff.url_field :lien_demarche, class: 'form-control', placeholder: 'Lien du document vierge'
|
||||
|
||||
.form-group
|
||||
= ff.hidden_field :order_place, value: ff.index
|
||||
|
@ -23,4 +29,3 @@
|
|||
= f.submit('Ajouter la pièce', class: 'btn btn-success', id: 'add_piece_justificative')
|
||||
- else
|
||||
= link_to("", admin_procedure_piece_justificative_path(@procedure, ff.object.id), method: :delete, remote: true, id: "delete_type_de_piece_justificative_#{ff.object.id}", class: %w(form-control btn btn-danger fa fa-trash-o) )
|
||||
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
|
||||
%br
|
||||
- if @procedure.locked?
|
||||
.alert.alert-info
|
||||
Cette procédure est publiée, certains éléments de la description ne sont plus modifiables
|
||||
|
||||
-{libelle: 'Libellé*', description: 'Description*', organisation: 'Organisation', direction: 'Direction', lien_site_web: 'Lien site internet', lien_notice: 'Lien notice'}.each do |key, value|
|
||||
.form-group
|
||||
|
@ -12,64 +14,69 @@
|
|||
= f.text_field key, class: 'form-control', placeholder: value
|
||||
|
||||
.row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
.col-md-6
|
||||
%h4 Logo de la procédure
|
||||
- unless @procedure.logo.blank?
|
||||
= image_tag @procedure.decorate.logo_img, {style: 'height: 40px; display: inline; margin-right: 6px', id: 'preview_procedure_logo'}
|
||||
= f.file_field(:logo, accept: 'image/png, image/jpg, image/jpeg', style: 'display:inline')
|
||||
= f.file_field :logo, accept: 'image/png, image/jpg, image/jpeg', style: 'display:inline'
|
||||
|
||||
%div{style:'margin-top:5px'}
|
||||
%i
|
||||
Fichier accepté : JPG / JPEG / PNG
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
.col-md-6
|
||||
%h4 Drapeau européen
|
||||
%label
|
||||
=f.check_box :euro_flag
|
||||
Afficher le drapeau européen
|
||||
|
||||
%br
|
||||
|
||||
.row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
%h4 Cartographie
|
||||
|
||||
= f.fields_for :module_api_carto, @procedure.module_api_carto do |ff|
|
||||
.checkbox
|
||||
%label
|
||||
=ff.check_box :use_api_carto, {id: :procedure_module_api_carto_use_api_carto}
|
||||
Utilisation de la cartographie
|
||||
=f.check_box :euro_flag
|
||||
Afficher le drapeau européen
|
||||
|
||||
%ul#modules_api_carto
|
||||
%li
|
||||
- unless @procedure.locked?
|
||||
.row
|
||||
.col-md-6
|
||||
%h4 Cartographie
|
||||
|
||||
= f.fields_for :module_api_carto, @procedure.module_api_carto do |ff|
|
||||
.checkbox
|
||||
%label
|
||||
= ff.check_box :quartiers_prioritaires
|
||||
Quartiers Prioritaires
|
||||
%li
|
||||
=ff.check_box :use_api_carto, id: :procedure_module_api_carto_use_api_carto
|
||||
Utilisation de la cartographie
|
||||
|
||||
%ul#modules_api_carto
|
||||
%li
|
||||
.checkbox
|
||||
%label
|
||||
= ff.check_box :quartiers_prioritaires
|
||||
Quartiers Prioritaires
|
||||
%li
|
||||
.checkbox
|
||||
%label
|
||||
= ff.check_box :cadastre
|
||||
Cadastre
|
||||
|
||||
.col-md-6
|
||||
- if @procedure.cerfa_flag
|
||||
%h4 Formulaire de demande ou CERFA
|
||||
.checkbox
|
||||
%label
|
||||
= ff.check_box :cadastre
|
||||
Cadastre
|
||||
= f.check_box :cerfa_flag
|
||||
Activer l'envoi de formulaire de demande ou CERFA
|
||||
%br
|
||||
= f.text_field :lien_demarche, class: 'form-control', placeholder: 'URL vers le formulaire vierge (facultatif)'
|
||||
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
%h4 Formulaire de demande ou CERFA
|
||||
%label
|
||||
=f.check_box :cerfa_flag
|
||||
Activer l'envoi de formulaire de demande ou CERFA
|
||||
%br
|
||||
=f.text_field :lien_demarche, class: 'form-control', placeholder: 'URL vers le formulaire vierge (facultatif)'
|
||||
.row
|
||||
.col-md-6
|
||||
%h4 Particuliers
|
||||
.checkbox
|
||||
%label
|
||||
=f.check_box :for_individual
|
||||
Cette procédure s'adresse à un public qui
|
||||
%b
|
||||
ne possède pas (ou pas encore) de numéro SIRET,
|
||||
qui doivent donc s'identifier en tant que personne physique.
|
||||
|
||||
%br
|
||||
.row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
%h4 Particuliers
|
||||
%div
|
||||
%label
|
||||
=f.check_box :for_individual
|
||||
Cette procédure s'adresse à un public qui
|
||||
%b
|
||||
ne possède pas (ou pas encore) de numéro SIRET,
|
||||
qui doivent donc s'identifier en tant que personne physique.
|
||||
|
||||
%ul#individual_with_siret{style:'margin-top: 8px'}
|
||||
%ul#individual_with_siret
|
||||
%li
|
||||
%label
|
||||
=f.check_box :individual_with_siret
|
||||
Donner la possibilité de renseigner un SIRET au cours de la construction du dossier.
|
||||
.checkbox
|
||||
%label
|
||||
= f.check_box :individual_with_siret
|
||||
Donner la possibilité de renseigner un SIRET au cours de la construction du dossier.
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
- procedure = procedure.decorate
|
||||
%tr{id: "tr_dossier_#{procedure.id}", 'data-dossier_url' => admin_procedure_path(id: procedure.id)}
|
||||
%td= procedure.id
|
||||
%td.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
%td.col-xs-6
|
||||
= procedure.libelle
|
||||
- if @active_class
|
||||
%td= link_to procedure.lien, procedure.lien, class: 'procedure-lien', 'data-method' => :get
|
||||
|
|
|
@ -2,6 +2,5 @@
|
|||
#procedure_new.section.section-label
|
||||
= form_for @procedure, url: url_for({controller: 'admin/procedures', action: :update, id: @procedure.id}), multipart: true do |f|
|
||||
= render partial: 'informations', locals: {f: f}
|
||||
= f.submit 'Editer', class: 'btn btn-success', style: 'float:right'
|
||||
%br
|
||||
%br
|
||||
.text-right
|
||||
= f.submit 'Enregistrer', class: 'btn btn-success'
|
||||
|
|
|
@ -39,17 +39,14 @@
|
|||
Annuler
|
||||
|
||||
- if @facade.procedure.locked?
|
||||
#procedure_locked.center
|
||||
%h5
|
||||
.label.label-info La procédure ne peut plus être modifiée car elle a été publiée
|
||||
#procedure_locked
|
||||
.alert.alert-info
|
||||
Cette procédure a été publiée, certains éléments ne peuvent plus être modifiés.
|
||||
|
||||
%div
|
||||
%h3 Lien procédure
|
||||
%div{style:'margin-left:3%'}
|
||||
- if @facade.procedure.archived?
|
||||
%b
|
||||
Cette procédure a été archivée et n'est plus accessible par le public.
|
||||
- elsif @facade.procedure.published?
|
||||
- if @facade.procedure.published?
|
||||
= link_to @facade.procedure.lien, @facade.procedure.lien, target: '_blank'
|
||||
- else
|
||||
%b
|
||||
|
@ -70,18 +67,18 @@
|
|||
Champs
|
||||
.badge.progress-bar-info
|
||||
= @facade.procedure.types_de_champ.size
|
||||
- @facade.procedure.types_de_champ.order(:order_place).each do |champ|
|
||||
= champ.libelle
|
||||
%br
|
||||
%ul
|
||||
- @facade.procedure.types_de_champ.order(:order_place).each do |champ|
|
||||
%li= champ.libelle
|
||||
|
||||
.champs_private.col-xs-6.col-md-3
|
||||
%h4.text-info
|
||||
Champs privés
|
||||
.badge.progress-bar-info
|
||||
= @facade.procedure.types_de_champ_private.size
|
||||
- @facade.procedure.types_de_champ_private.order(:order_place).each do |champ|
|
||||
= champ.libelle
|
||||
%br
|
||||
%ul
|
||||
- @facade.procedure.types_de_champ_private.order(:order_place).each do |champ|
|
||||
%li= champ.libelle
|
||||
|
||||
.pieces_justificatives.col-xs-6.col-md-3
|
||||
%h4.text-info
|
||||
|
@ -96,7 +93,7 @@
|
|||
=t('dynamics.admin.procedure.stats.title')
|
||||
|
||||
.row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6{style:'margin-left:3%'}
|
||||
.col-xs-6{style:'margin-left:3%'}
|
||||
%h4 Total
|
||||
%div
|
||||
= @facade.dossiers_total
|
||||
|
@ -126,7 +123,7 @@
|
|||
%p
|
||||
0
|
||||
|
||||
.col-md-5.col-sm-5.col-xs-5.col-lg-5
|
||||
.col-xs-5
|
||||
%h4 Non archivés
|
||||
= javascript_include_tag "https://code.highcharts.com/highcharts.js", "chartkick"
|
||||
- if @facade.dossiers_for_pie_highchart.blank?
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
- unless smart_listing.empty?
|
||||
%table.table
|
||||
%thead
|
||||
%th.col-md-4.col-sm-4.col-xs-4.col-lg-4= smart_listing.sortable 'Email', :email
|
||||
%th.col-md-4.col-sm-4.col-xs-4.col-lg-4= smart_listing.sortable 'Date de dernière connexion', :last_sign_in_at
|
||||
%th.col-md-2.col-sm-2.col-xs-2.col-lg-2 Procédure active
|
||||
%th.col-md-2.col-sm-2.col-xs-2.col-lg-2 Dossier en cours
|
||||
%th.col-xs-4= smart_listing.sortable 'Email', :email
|
||||
%th.col-xs-4= smart_listing.sortable 'Date de dernière connexion', :last_sign_in_at
|
||||
%th.col-xs-2 Procédure active
|
||||
%th.col-xs-2 Dossier en cours
|
||||
|
||||
- @admins.each do |admin|
|
||||
%tr
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
|
||||
%br
|
||||
.row
|
||||
.col-md-4.col-sm-4.col-xs-4.col-lg-4
|
||||
.col-xs-4
|
||||
- if @facade.followers.size > 0
|
||||
%ul
|
||||
- @facade.followers.each do |follower|
|
||||
|
|
|
@ -3,9 +3,8 @@
|
|||
- if smart_listing.name.to_s == 'follow_dossiers'
|
||||
%th.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1.center
|
||||
%i.fa.fa-bell
|
||||
- unless Features.opensimplif
|
||||
%th.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1
|
||||
État
|
||||
%th.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1
|
||||
État
|
||||
|
||||
- @facade_data_view.preference_list_dossiers_filter.each do |preference|
|
||||
- unless preference.libelle == 'Statut' || preference.libelle == 'État'
|
||||
|
@ -33,9 +32,8 @@
|
|||
- else
|
||||
.badge.progress-bar-warning
|
||||
= total_notif
|
||||
- unless Features.opensimplif
|
||||
%td.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1
|
||||
= dossier.decorate.display_state
|
||||
%td.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1
|
||||
= dossier.decorate.display_state
|
||||
- @facade_data_view.preference_list_dossiers_filter.each_with_index do |preference, index|
|
||||
- unless preference.libelle == 'Statut' || preference.libelle == 'État'
|
||||
%td
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
- if index%2 == 0 || tables.first.to_s.include?('champs')
|
||||
%tr
|
||||
|
||||
%td.col-sm-5.col-md-5.col-sm-5.col-xs-5.col-lg-5{style: 'vertical-align: top', colspan: (tables.first == :champs ? 2 : 1)}
|
||||
%td.col-xs-5{style: 'vertical-align: top', colspan: (tables.first == :champs ? 2 : 1)}
|
||||
%h5= tables.first.to_s.gsub('_', ' ').capitalize
|
||||
%ul
|
||||
- if tables.second
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.row
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1
|
||||
.fa.fa-info-circle.text-info{style:'font-size: 2em; margin-top: 20%'}
|
||||
.col-md-11.col-sm-11.col-xs-11.col-lg-11
|
||||
.col-xs-11
|
||||
-if dossiers_list_facade.liste == 'nouveaux'
|
||||
Tous les dossiers présents dans cette liste sont ceux qui
|
||||
%b
|
||||
|
|
|
@ -14,11 +14,11 @@
|
|||
%tr
|
||||
%td
|
||||
= procedure.id
|
||||
%td.col-md-4.col-sm-4.col-xs-4.col-lg-4
|
||||
%td.col-xs-4
|
||||
= link_to procedure.libelle, procedure.lien
|
||||
%td
|
||||
= procedure.description
|
||||
%td.col-md-3.col-sm-3.col-xs-3.col-lg-3
|
||||
%td.col-xs-3
|
||||
= procedure.organisation
|
||||
|
||||
= smart_listing.paginate
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.default_data_block
|
||||
%div.row.show-block.infos
|
||||
%div.header
|
||||
%div.col-lg-8.col-md-8.col-sm-8.col-xs-8.title-no-expanse
|
||||
%div.col-xs-8.title-no-expanse
|
||||
%div.carret-right
|
||||
INFORMATIONS DU DEMANDEUR
|
||||
- if !@current_gestionnaire && ["draft", "updated", "replied", "initiated"].include?(@facade.dossier.state)
|
||||
|
@ -16,34 +16,34 @@
|
|||
.default_data_block
|
||||
%div.row.show-block.infos#infos_entreprise
|
||||
%div.header
|
||||
%div.col-lg-12.col-md-12.col-sm-12.col-xs-12.title
|
||||
%div.col-xs-12.title
|
||||
%div.carret-right
|
||||
%div.carret-down
|
||||
INFORMATIONS DU DEMANDEUR
|
||||
%div.body
|
||||
%div.body.display-block-on-print
|
||||
= render partial: '/dossiers/infos_entreprise'
|
||||
|
||||
.default_data_block.default_visible
|
||||
%div.row.show-block.infos#infos_dossier
|
||||
%div.header
|
||||
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title
|
||||
%div.col-xs-10.title
|
||||
%div.carret-right
|
||||
%div.carret-down
|
||||
CONSTRUCTION DU DOSSIER
|
||||
= render partial: '/dossiers/edit_dossier'
|
||||
%div.body
|
||||
%div.body.display-block-on-print
|
||||
= render partial: '/dossiers/infos_dossier'
|
||||
|
||||
- if @facade.dossier.procedure.module_api_carto.use_api_carto
|
||||
.default_data_block.default_visible
|
||||
.default_data_block.default_visible.no-page-break-inside
|
||||
%div.row.show-block#carto
|
||||
%div.header
|
||||
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title
|
||||
%div.col-xs-10.title
|
||||
%div.carret-right
|
||||
%div.carret-down
|
||||
CARTOGRAPHIE
|
||||
= render partial: '/dossiers/edit_carto'
|
||||
%div.body
|
||||
%div.body.display-block-on-print
|
||||
%input{id: 'json_latlngs', type: 'hidden', value: "#{@facade.dossier.json_latlngs}", name: 'json_latlngs'}
|
||||
%input{id: 'quartier_prioritaires', type: 'hidden', value: "#{@facade.dossier.quartier_prioritaires.to_json}"}
|
||||
%input{id: 'cadastres', type: 'hidden', value: "#{@facade.dossier.cadastres.to_json}"}
|
||||
|
@ -56,11 +56,11 @@
|
|||
.default_data_block.default_visible
|
||||
%div.row.show-block#private-fields
|
||||
%div.header
|
||||
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title
|
||||
%div.col-xs-10.title
|
||||
%div.carret-right
|
||||
%div.carret-down
|
||||
= "formulaire privé".upcase
|
||||
%div.col-lg-2.col-md-2.col-sm-2.col-xs-2.count
|
||||
%div.col-xs-2.count
|
||||
- private_fields_count = @champs_private.count
|
||||
= (private_fields_count == 1) ? "1 champ" : "#{private_fields_count} champs"
|
||||
%div.body
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12
|
||||
.col-xs-12
|
||||
#map.mini{class: @facade.dossier.procedure.module_api_carto.classes}
|
||||
|
||||
%input{id: 'json_latlngs', type:'hidden', value: "#{@facade.dossier.json_latlngs}"}
|
||||
|
|
|
@ -2,50 +2,40 @@
|
|||
.col-lg-12.col-md-12.col-sm-12.col-xs-12
|
||||
- if @facade.procedure.for_individual?
|
||||
.row.title-row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.split-hr
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.dossier-title= t('utils.depositaire').upcase
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.split-hr
|
||||
%div.col-xs-4.split-hr
|
||||
%div.col-xs-4.dossier-title= t('utils.depositaire').upcase
|
||||
%div.col-xs-4.split-hr
|
||||
.row
|
||||
%div.col-md-6.col-sm-6.col-xs-6.col-lg-6.depositaire-label Civilité
|
||||
%div.col-xs-6.depositaire-label Civilité
|
||||
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
%div.col-md-5.col-sm-5.col-xs-5.col-lg-5.depositaire-info= @facade.individual.gender
|
||||
%div.col-xs-5.depositaire-info= @facade.individual.gender
|
||||
.row
|
||||
%div.col-md-6.col-sm-6.col-xs-6.col-lg-6.depositaire-label Nom
|
||||
%div.col-xs-6.depositaire-label Nom
|
||||
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
%div.col-md-5.col-sm-5.col-xs-5.col-lg-5.depositaire-info= @facade.individual.nom
|
||||
%div.col-xs-5.depositaire-info= @facade.individual.nom
|
||||
.row
|
||||
%div.col-md-6.col-sm-6.col-xs-6.col-lg-6.depositaire-label Prénom
|
||||
%div.col-xs-6.depositaire-label Prénom
|
||||
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
%div.col-md-5.col-sm-5.col-xs-5.col-lg-5.despositaire-info= @facade.individual.prenom
|
||||
- unless Features.opensimplif
|
||||
.row
|
||||
%div.col-md-6.col-sm-6.col-xs-6.col-lg-6.depositaire-label Date de naissance
|
||||
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
%div.col-md-5.col-sm-5.col-xs-5.col-lg-5.depositaire-info= @facade.individual.birthdate
|
||||
%div.col-xs-5.despositaire-info= @facade.individual.prenom
|
||||
.row
|
||||
%div.col-xs-6.depositaire-label Date de naissance
|
||||
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
%div.col-xs-5.depositaire-info= @facade.individual.birthdate
|
||||
.row.margin-top-20
|
||||
|
||||
- unless @facade.champs.nil?
|
||||
- @facade.champs.each do |champ|
|
||||
- if champ.type_champ == 'header_section'
|
||||
.row.title-row.margin-top-40
|
||||
%div.col-md-3.col-sm-3.col-xs-3.col-lg-3.split-hr
|
||||
%div.col-md-6.col-sm-6.col-xs-6.col-lg-6.dossier-title= champ.libelle.upcase
|
||||
%div.col-md-3.col-sm-3.col-xs-3.col-lg-3.split-hr
|
||||
%div.col-xs-3.split-hr
|
||||
%div.col-xs-6.dossier-title= champ.libelle.upcase
|
||||
%div.col-xs-3.split-hr
|
||||
- else
|
||||
.row
|
||||
%div.col-md-6.col-sm-6.col-xs-6.col-lg-6.depositaire-label= champ.libelle
|
||||
-#- if Features.opensimplif
|
||||
-# %div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments
|
||||
-# - if gestionnaire_signed_in?
|
||||
-# = link_to "", "data-href" => backoffice_dossier_commentaires_path(@facade.dossier, champs_id: champ.id), "data-toggle" => "modal", "data-target" => "#modalCommentairesDossierParChamp" do
|
||||
-# %i.fa.fa-comment-o
|
||||
-# - else
|
||||
-# = link_to "", "data-href" => users_dossier_commentaires_path(@facade.dossier, champs_id: champ.id), "data-toggle" => "modal", "data-target" => "#modalCommentairesDossierParChamp" do
|
||||
-# %i.fa.fa-commenting-o
|
||||
-#- else
|
||||
%div.col-xs-6.depositaire-label= champ.libelle
|
||||
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off
|
||||
= "-"
|
||||
%div.col-md-5.col-sm-5.col-xs-5.col-lg-5.depositaire-info{ id: "champ-#{champ.id}-value" }
|
||||
%div.col-xs-5.depositaire-info{ id: "champ-#{champ.id}-value" }
|
||||
- unless champ.decorate.value.blank?
|
||||
= champ.decorate.value.html_safe
|
||||
|
||||
|
@ -60,18 +50,18 @@
|
|||
- if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.count > 0
|
||||
.col-lg-12.col-md-12.col-sm-12.col-xs-12
|
||||
.row.title-row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.split-hr
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.dossier-title= t('utils.pieces').upcase
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.split-hr
|
||||
%div.col-xs-4.split-hr
|
||||
%div.col-xs-4.dossier-title= t('utils.pieces').upcase
|
||||
%div.col-xs-4.split-hr
|
||||
|
||||
.col-lg-12.col-md-12.col-sm-12.col-xs-12#pieces_justificatives.margin-bot-40
|
||||
.row
|
||||
- if @facade.procedure.cerfa_flag?
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12#piece_justificative_0
|
||||
.col-xs-12#piece_justificative_0
|
||||
.row.piece-row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6.depositaire-label= 'Formulaire'
|
||||
.col-xs-6.depositaire-label= 'Formulaire'
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
.col-md-5.col-sm-5.col-xs-5.col-lg-5.despositaire-info
|
||||
.col-xs-5.despositaire-info
|
||||
- if @facade.dossier.cerfa_available?
|
||||
%a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter
|
||||
%span{style:'margin-left:12px'}
|
||||
|
@ -81,14 +71,14 @@
|
|||
- else
|
||||
= 'Pièce non fournie'
|
||||
.row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12
|
||||
.col-xs-12
|
||||
- @facade.types_de_pieces_justificatives.each do |type_de_piece_justificative|
|
||||
.row.piece-row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12{ id: "piece_justificative_#{type_de_piece_justificative.id}" }
|
||||
.col-xs-12{ id: "piece_justificative_#{type_de_piece_justificative.id}" }
|
||||
.row
|
||||
%div.col-md-6.col-sm-6.col-xs-6.col-lg-6.depositaire-label= type_de_piece_justificative.libelle
|
||||
%div.col-xs-6.depositaire-label= type_de_piece_justificative.libelle
|
||||
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
%div.col-md-5.col-sm-5.col-xs-5.col-lg-5.despositaire-info
|
||||
%div.col-xs-5.despositaire-info
|
||||
- if type_de_piece_justificative.api_entreprise
|
||||
%span.text-success Nous l'avons récupéré pour vous.
|
||||
- elsif !(@pj = @facade.dossier.retrieve_last_piece_justificative_by_type(type_de_piece_justificative.id)).nil?
|
||||
|
|
|
@ -2,51 +2,51 @@
|
|||
%h4
|
||||
= @facade.entreprise.raison_sociale_or_name
|
||||
.row.split-row
|
||||
%div.col-md-12.col-sm-12.col-xs-12.col-lg-12.split-hr
|
||||
%div.col-xs-12.split-hr
|
||||
%div.row
|
||||
.col-lg-12.col-md-12.col-sm-12.col-xs-12
|
||||
.col-xs-12
|
||||
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Siret :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.etablissement.siret
|
||||
%div.col-xs-4.entreprise-label Siret :
|
||||
%div.col-xs-8.entreprise-info= @facade.etablissement.siret
|
||||
- if @facade.etablissement.siret != @facade.entreprise.siret_siege_social
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label SIRET siège social :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.entreprise.siret_siege_social
|
||||
%div.col-xs-4.entreprise-label SIRET siège social :
|
||||
%div.col-xs-8.entreprise-info= @facade.entreprise.siret_siege_social
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Forme juridique :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.entreprise.forme_juridique
|
||||
%div.col-xs-4.entreprise-label Forme juridique :
|
||||
%div.col-xs-8.entreprise-info= @facade.entreprise.forme_juridique
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Libellé naf :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.etablissement.libelle_naf
|
||||
%div.col-xs-4.entreprise-label Libellé naf :
|
||||
%div.col-xs-8.entreprise-info= @facade.etablissement.libelle_naf
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Code naf :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.etablissement.naf
|
||||
%div.col-xs-4.entreprise-label Code naf :
|
||||
%div.col-xs-8.entreprise-info= @facade.etablissement.naf
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Date de création :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= Time.at(@facade.entreprise.date_creation).strftime "%d-%m-%Y"
|
||||
%div.col-xs-4.entreprise-label Date de création :
|
||||
%div.col-xs-8.entreprise-info= Time.at(@facade.entreprise.date_creation).strftime "%d-%m-%Y"
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Effectif organisation :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.entreprise.effectif
|
||||
%div.col-xs-4.entreprise-label Effectif organisation :
|
||||
%div.col-xs-8.entreprise-info= @facade.entreprise.effectif
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Code effectif :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.entreprise.code_effectif_entreprise
|
||||
%div.col-xs-4.entreprise-label Code effectif :
|
||||
%div.col-xs-8.entreprise-info= @facade.entreprise.code_effectif_entreprise
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Numéro TVA intracommunautaire :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.entreprise.numero_tva_intracommunautaire
|
||||
%div.col-xs-4.entreprise-label Numéro TVA intracommunautaire :
|
||||
%div.col-xs-8.entreprise-info= @facade.entreprise.numero_tva_intracommunautaire
|
||||
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Adresse :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info
|
||||
%div.col-xs-4.entreprise-label Adresse :
|
||||
%div.col-xs-8.entreprise-info
|
||||
- @facade.etablissement.adresse.split("\n").each do |line|
|
||||
= line
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Capital social :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info= @facade.entreprise.pretty_capital_social
|
||||
%div.col-xs-4.entreprise-label Capital social :
|
||||
%div.col-xs-8.entreprise-info= @facade.entreprise.pretty_capital_social
|
||||
|
||||
.row
|
||||
%div.col-md-4.col-sm-4.col-xs-4.col-lg-4.entreprise-label Exercices :
|
||||
%div.col-md-8.col-sm-8.col-xs-8.col-lg-8.entreprise-info
|
||||
%div.col-xs-4.entreprise-label Exercices :
|
||||
%div.col-xs-8.entreprise-info
|
||||
- @facade.etablissement.exercices.each_with_index do |exercice, index|
|
||||
%strong
|
||||
= "#{exercice.dateFinExercice.year} : "
|
||||
|
@ -54,7 +54,7 @@
|
|||
%br
|
||||
|
||||
.row.split-row
|
||||
%div.col-md-12.col-sm-12.col-xs-12.col-lg-12.split-hr
|
||||
%div.col-xs-12.split-hr
|
||||
- unless @facade.entreprise.rna_information.nil?
|
||||
= render partial: '/dossiers/infos_rna'
|
||||
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
#pieces_justificatives
|
||||
.row
|
||||
- if @facade.procedure.cerfa_flag?
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12#piece_justificative_0
|
||||
.col-xs-12#piece_justificative_0
|
||||
.row.piece-row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6.piece-label= 'Formulaire'
|
||||
.col-xs-6.piece-label= 'Formulaire'
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off= "-"
|
||||
.col-md-5.col-sm-5.col-xs-5.col-lg-5
|
||||
.col-xs-5
|
||||
- if @facade.dossier.cerfa_available?
|
||||
%a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter
|
||||
%span{style:'margin-left:12px'}
|
||||
|
@ -20,13 +20,13 @@
|
|||
= 'Pièce non fournie'
|
||||
|
||||
.row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12
|
||||
.col-xs-12
|
||||
- @facade.dossier.types_de_piece_justificative.order('order_place ASC').each do |type_de_piece_justificative|
|
||||
.row.piece-row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12{ id: "piece_justificative_#{type_de_piece_justificative.id}" }
|
||||
.col-xs-12{ id: "piece_justificative_#{type_de_piece_justificative.id}" }
|
||||
.row
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6= type_de_piece_justificative.libelle
|
||||
.col-md-6.col-sm-6.col-xs-6.col-lg-6
|
||||
.col-xs-6= type_de_piece_justificative.libelle
|
||||
.col-xs-6
|
||||
- if type_de_piece_justificative.api_entreprise
|
||||
%span.text-success Nous l'avons récupéré pour vous.
|
||||
- elsif !(@pj = @facade.dossier.retrieve_last_piece_justificative_by_type(type_de_piece_justificative.id)).nil?
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
.row{style: 'margin-top: -20px'}
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12
|
||||
.col-xs-12
|
||||
= form_for @facade.dossier, url: {controller: 'backoffice/private_formulaires', action: :update, dossier_id: @facade.dossier.id}, remote: true do
|
||||
= render partial: '/users/description/champs', locals:{private: true}
|
||||
.row.center
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
%br
|
||||
.row
|
||||
.col-md-4.col-sm-4.col-xs-4.col-lg-4
|
||||
.col-xs-4
|
||||
- if @facade.invites.size > 0
|
||||
%ul
|
||||
- @facade.invites.each do |invite|
|
||||
|
@ -11,7 +11,7 @@
|
|||
- else
|
||||
Aucune personne invitée
|
||||
|
||||
.col-md-3.col-sm-3.col-xs-3.col-lg-3
|
||||
.col-xs-3
|
||||
= form_tag invites_dossier_path(dossier_id: @facade.dossier.id), method: :post, class: 'form-inline' do
|
||||
= text_field_tag :email, '', class: 'form-control', placeholder: 'Envoyer une invitation'
|
||||
= submit_tag 'Ajouter', class: 'btn btn-success', id: 'send-invitation'
|
||||
|
|
|
@ -11,21 +11,19 @@
|
|||
|
||||
.alert.alert-info
|
||||
Cette messagerie permet d'échanger entre le demandeur et le service instructeur.
|
||||
.body
|
||||
.body.display-block-on-print
|
||||
- if dossier_facade.commentaires.any?
|
||||
.commentaires
|
||||
= render partial: 'dossiers/commentaires/commentaire', collection: dossier_facade.commentaires.object.sort
|
||||
.split-hr
|
||||
#new-commentaire
|
||||
#new-commentaire.hidden-print
|
||||
= render partial: 'dossiers/commentaires/form', locals: { dossier_facade: @facade }
|
||||
|
||||
|
||||
|
||||
.last-commentaire.clearfix
|
||||
.last-commentaire.clearfix.hidden-print
|
||||
- if last_comment = dossier_facade.commentaires.first
|
||||
%div
|
||||
DERNIER MESSAGE
|
||||
= render partial: 'dossiers/commentaires/commentaire', object: last_comment
|
||||
|
||||
#open-message.new-action
|
||||
%button#open-message.new-action.btn.btn-danger
|
||||
ENVOYER UN MESSAGE
|
||||
|
|
|
@ -7,5 +7,5 @@
|
|||
%h4.text-primary{style: 'margin-top: 0px'} Ajouter un fichier
|
||||
= file_field_tag "piece_justificative[content]", accept: PieceJustificative.accept_format, style: 'float: left; margin-left: 20px'
|
||||
|
||||
.col-md-6
|
||||
%input#save-message.form-control.btn.btn-send{ type: 'submit', value: 'ENVOYER' }
|
||||
.col-md-6.text-right
|
||||
%input#save-message.form-control.btn.btn-danger{ type: 'submit', value: 'ENVOYER' }
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.col-md-3.col-sm-3.col-xs-3.col-lg-3.center
|
||||
.col-xs-3.center
|
||||
%h3 Ma procédure
|
||||
|
||||
#logos.center{class: (@facade.entreprise.nil? ? '' : 'mask')}
|
||||
|
@ -9,9 +9,9 @@
|
|||
#logo_procedure.flag
|
||||
=image_tag( @facade.procedure.decorate.logo_img )
|
||||
|
||||
.etape.etapes_informations.col-md-9.col-sm-9.col-xs-9.col-lg-9
|
||||
.etape.etapes_informations.col-xs-9
|
||||
.row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12.padding-left-30
|
||||
.col-xs-12.padding-left-30
|
||||
%h2#titre_procedure.text-info
|
||||
= @facade.procedure.libelle
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.etape.etapes_menu.col-md-3.col-sm-3.col-xs-3.col-lg-3
|
||||
.etape.etapes_menu.col-xs-3
|
||||
%h3
|
||||
Ma zone d'intervention
|
||||
|
||||
.etape.etapes_informations.col-md-9.col-sm-9.col-xs-9.col-lg-9
|
||||
.etape.etapes_informations.col-xs-9
|
||||
.row
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
.etape.etapes_menu.col-md-3.col-sm-3.col-xs-3.col-lg-3
|
||||
.etape.etapes_menu.col-xs-3
|
||||
%h3
|
||||
Mon dossier
|
||||
|
||||
.etape.etapes_informations.col-md-9.col-sm-9.col-xs-9.col-lg-9
|
||||
.etape.etapes_informations.col-xs-9
|
||||
.row
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
.etape.etapes_menu.col-md-3.col-sm-3.col-xs-3.col-lg-3
|
||||
.etape.etapes_menu.col-xs-3
|
||||
%h3
|
||||
Mes informations
|
||||
%br
|
||||
|
@ -12,7 +12,7 @@
|
|||
= f.submit 'Changer de SIRET', class: %w(btn btn-xs btn-primary)
|
||||
|
||||
|
||||
.etape.etapes_informations.col-md-9.col-sm-9.col-xs-9.col-lg-9
|
||||
.etape.etapes_informations.col-xs-9
|
||||
.row
|
||||
- if @facade.entreprise.nil?
|
||||
#new_siret{style:'margin-left: 20%; margin-top: 5%'}
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
.col-md-3.col-sm-3.col-xs-3.col-lg-3.center
|
||||
.col-xs-3.center
|
||||
%h3 Mes informations
|
||||
%p
|
||||
Les informations de bases
|
||||
%br
|
||||
vous concernant.
|
||||
|
||||
.etape.etapes_informations.col-md-9.col-sm-9.col-xs-9.col-lg-9
|
||||
.etape.etapes_informations.col-xs-9
|
||||
= form_for @facade.dossier, url: { controller: '/users/dossiers', action: :update } do |f|
|
||||
.row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12.padding-left-30
|
||||
.col-xs-12.padding-left-30
|
||||
= f.hidden_field :id
|
||||
|
||||
= f.fields_for :individual, @facade.individual do |ff|
|
||||
|
@ -40,7 +40,7 @@
|
|||
Vos informations personnelles ne seront jamais utilisées dans un but lucratif ou commercial. Elles ne pourront être communiquées à de tiers personnes sans votre accord préalable. Elles pourront en revanche être communiquées aux administrations compétentes afin d'instruire votre dossier, conformément à la déclaration CNIL effectué par le service TPS.
|
||||
=link_to 'en savoir plus', cgu_path, target: '_blank'
|
||||
.row
|
||||
.col-md-5.col-sm-5.col-xs-5.col-lg-5.col-xs-5
|
||||
.col-md-2.col-sm-2.col-xs-2.col-lg-2.col-xs-2
|
||||
.col-xs-5.col-xs-5
|
||||
.col-xs-2.col-xs-2
|
||||
= f.submit 'Etape suivante', class: "action", id: 'etape_suivante'
|
||||
.col-md-5.col-sm-5.col-xs-5.col-lg-5.col-xs-5
|
||||
.col-xs-5.col-xs-5
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
- unless BrowserService.recommended_browser?
|
||||
#support_navigator_banner.row
|
||||
.col-md-12.col-sm-12.col-xs-12.col-lg-12
|
||||
.col-xs-12
|
||||
= BROWSER.value.name
|
||||
= BROWSER.value.version
|
||||
\-
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
- if SwitchDeviseProfileService.new(warden).multiple_devise_profile_connect? && !Features.opensimplif
|
||||
- if SwitchDeviseProfileService.new(warden).multiple_devise_profile_connect?
|
||||
#switch_menu.dropdown.dropup
|
||||
%button.btn.btn-default.dropdown-toggle{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false}
|
||||
%i.fa.fa-toggle-on
|
||||
|
|
|
@ -6,6 +6,7 @@
|
|||
%meta{'http-equiv' => "X-UA-Compatible", :content => "IE=edge"}
|
||||
|
||||
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
|
||||
= stylesheet_link_tag 'print', media: 'print', 'data-turbolinks-track' => true
|
||||
= javascript_include_tag 'application', 'data-turbolinks-track' => true
|
||||
|
||||
= csrf_meta_tags
|
||||
|
@ -32,7 +33,7 @@
|
|||
= render partial: "layouts/navbar"
|
||||
%div.row.no-margin
|
||||
- if RenderPartialService.left_panel_exist? @left_pannel_url
|
||||
%div.col-lg-2.col-md-2.col-sm-2.col-xs-2#left-pannel
|
||||
%div.col-xs-2#left-panel
|
||||
- if gestionnaire_signed_in?
|
||||
#search-block
|
||||
= render partial: 'layouts/left_panels/search_area'
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'E-mails'}
|
|
@ -19,10 +19,9 @@
|
|||
%div.procedure_list_element{class: ('active' if active == 'Accompagnateurs')}
|
||||
=t('dynamics.admin.procedure.onglets.accompagnateurs')
|
||||
|
||||
- unless @procedure.locked?
|
||||
%a{:href => "#{url_for edit_admin_procedure_path(@procedure)}", id: 'onglet-description'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Description')}
|
||||
Description
|
||||
%a{:href => "#{url_for edit_admin_procedure_path(@procedure)}", id: 'onglet-description'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'Description')}
|
||||
Description
|
||||
|
||||
- unless @procedure.locked?
|
||||
%a{:href => "#{url_for admin_procedure_types_de_champ_path(@procedure)}", id: 'onglet-champs'}
|
||||
|
@ -39,7 +38,7 @@
|
|||
%div.procedure_list_element{class: ('active' if active == 'Champs privés')}
|
||||
Champs privés
|
||||
|
||||
%a{:href => "#{url_for admin_procedure_mails_path(@procedure)}", id: 'onglet-inemailsfos'}
|
||||
%a{:href => "#{url_for admin_procedure_mail_templates_path(@procedure)}", id: 'onglet-inemailsfos'}
|
||||
%div.procedure_list_element{class: ('active' if active == 'E-mails')}
|
||||
E-mails
|
||||
|
||||
|
|
|
@ -2,10 +2,9 @@
|
|||
%div.dossiers-en-cours
|
||||
.count= @facade_data_view.total_dossier_follow
|
||||
.text= "SUIVIS"
|
||||
- unless Features.opensimplif
|
||||
%div.nouveaux-dossiers
|
||||
.count= @facade_data_view.total_new_dossier
|
||||
.text= "NOUVEAUX"
|
||||
%div.nouveaux-dossiers
|
||||
.count= @facade_data_view.total_new_dossier
|
||||
.text= "NOUVEAUX"
|
||||
%div.nouvelles-notifications
|
||||
.count= @facade_data_view.dossiers_with_unread_notifications.count
|
||||
.text= "MODIFIÉS"
|
||||
|
@ -23,13 +22,11 @@
|
|||
#procedure_list
|
||||
- @facade_data_view.gestionnaire_procedures_name_and_id_list.each do |procedure|
|
||||
|
||||
- url_path = Features.opensimplif ? simplification_path(procedure[:id]) : backoffice_dossiers_procedure_path(procedure[:id])
|
||||
|
||||
= link_to url_path, {title: procedure[:libelle]} do
|
||||
= link_to backoffice_dossiers_procedure_path(procedure[:id]), {title: procedure[:libelle]} do
|
||||
%div.procedure_list_element{ class: ('active' if procedure[:id] == @facade_data_view.procedure.id rescue '') }
|
||||
= truncate(procedure[:libelle], length: 50)
|
||||
- total_new = @facade_data_view.new_dossier_number procedure[:id]
|
||||
- if total_new > 0 && !Features.opensimplif
|
||||
- if total_new > 0
|
||||
.badge.progress-bar-success{title:'Nouveaux dossiers'}
|
||||
= total_new
|
||||
-if procedure[:unread_notifications] > 0
|
||||
|
|
|
@ -2,38 +2,41 @@
|
|||
%div.infos
|
||||
#dossier_id= t('dynamics.dossiers.numéro') + @facade.dossier.id.to_s
|
||||
|
||||
- unless Features.opensimplif
|
||||
%div#action-block
|
||||
- if gestionnaire_signed_in?
|
||||
- if !@facade.dossier.read_only?
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :valid, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
|
||||
%button.action{'data-toggle' => :tooltip, title: 'En cliquant ici, vous figez le dossier et autorisez le dépôt du dossier pour instruction.'}
|
||||
= 'Déclarer complet'.upcase
|
||||
- elsif @facade.dossier.submitted?
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :receive, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
|
||||
%button.action
|
||||
= 'Accuser réception'.upcase
|
||||
- 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.close-dossier
|
||||
%i.fa.fa-check
|
||||
= 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.forget-dossier
|
||||
%i.fa.fa-circle-o
|
||||
= 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.refuse-dossier
|
||||
%i.fa.fa-times
|
||||
%div#action-block
|
||||
- if gestionnaire_signed_in?
|
||||
- if !@facade.dossier.read_only?
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :valid, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
|
||||
%button.action{'data-toggle' => :tooltip, title: 'En cliquant ici, vous figez le dossier et autorisez le dépôt du dossier pour instruction.'}
|
||||
= 'Déclarer complet'.upcase
|
||||
- elsif @facade.dossier.submitted?
|
||||
= form_tag(url_for({controller: 'backoffice/dossiers', action: :receive, dossier_id: @facade.dossier.id}), class: 'form-inline', method: 'POST') do
|
||||
%button.action
|
||||
= 'Accuser réception'.upcase
|
||||
- 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.close-dossier
|
||||
%i.fa.fa-check
|
||||
= 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.forget-dossier
|
||||
%i.fa.fa-circle-o
|
||||
= 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.refuse-dossier
|
||||
%i.fa.fa-times
|
||||
|
||||
- unless @facade.dossier.archived?
|
||||
= link_to 'Archiver', backoffice_dossier_archive_path(@facade.dossier), method: :post, class: 'btn btn-default btn-block'
|
||||
|
||||
|
||||
|
||||
%div#menu-block
|
||||
|
||||
%div#infos-block
|
||||
- unless Features.opensimplif
|
||||
%div.split-hr-left
|
||||
%div.dossier-state= @facade.dossier.display_state
|
||||
%div.split-hr-left
|
||||
%div.dossier-state= @facade.dossier.display_state
|
||||
%div.split-hr-left
|
||||
%div.notifications
|
||||
- if @facade.dossier.notifications.empty?
|
||||
= "Aucune notification pour le moment."
|
||||
Aucune notification pour le moment.
|
||||
- else
|
||||
%i.fa.fa-bell-o
|
||||
- @facade.last_notifications.each do |notification|
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
%hmtl
|
||||
%html
|
||||
%body
|
||||
= yield
|
||||
= yield
|
||||
|
|
|
@ -1 +1 @@
|
|||
<%= MailTemplate.replace_tags(@dossier.procedure.mail_received.body, @dossier).html_safe %>
|
||||
<%= @dossier.procedure.mail_received.body_for_dossier(@dossier).html_safe %>
|
||||
|
|
1
app/views/notification_mailer/dossier_validated.html.erb
Normal file
1
app/views/notification_mailer/dossier_validated.html.erb
Normal file
|
@ -0,0 +1 @@
|
|||
<%= @dossier.procedure.mail_validated.body_for_dossier(@dossier).html_safe %>
|
|
@ -1,14 +0,0 @@
|
|||
Bonjour <%= @user.email %>
|
||||
|
||||
Votre dossier N°<%=@dossier.id%> est prêt à être déposé pour instruction.
|
||||
|
||||
Afin de finaliser son dépôt, merci de vous rendre sur <%=users_dossier_recapitulatif_url(dossier_id: @dossier.id)%>
|
||||
|
||||
Bonne journée,
|
||||
|
||||
---
|
||||
Merci de ne pas répondre à ce mail. Postez directement vos questions dans votre dossier sur la plateforme.
|
||||
---
|
||||
|
||||
---
|
||||
L'équide TPS - tps@apientreprise.fr
|
|
@ -1,14 +0,0 @@
|
|||
$.ajax({
|
||||
method: 'get',
|
||||
url: '/simplifications/reload_smartlisting?id=<%= @procedure_id %>',
|
||||
async: true
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
methd: 'get',
|
||||
url: '/backoffice/preference_list_dossier/reload_pref_list?procedure_id=<%= @procedure_id %>',
|
||||
async: true
|
||||
}).done(function (data) {
|
||||
$("#pref_list_menu").html(data);
|
||||
pref_list_dossier_actions();
|
||||
});
|
|
@ -1,43 +0,0 @@
|
|||
#backoffice_index
|
||||
#pref_list_menu
|
||||
= render partial: 'backoffice/dossiers/pref_list'
|
||||
|
||||
.default_data_block.default_visible
|
||||
%div.row.show-block#new_dossiers
|
||||
%div.header
|
||||
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title
|
||||
%div.carret-right
|
||||
%div.carret-down
|
||||
Mes simplifications
|
||||
%div.col-lg-2.col-md-2.col-sm-2.col-xs-2.count
|
||||
=current_user.dossiers.count
|
||||
SIMPLIFICATIONS
|
||||
%div.body
|
||||
= smart_listing_render :mes_dossiers
|
||||
|
||||
.default_data_block.default_visible
|
||||
%div.row.show-block#new_dossiers
|
||||
%div.header
|
||||
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title
|
||||
%div.carret-right
|
||||
%div.carret-down
|
||||
Les simplifications que je suivis
|
||||
%div.col-lg-2.col-md-2.col-sm-2.col-xs-2.count
|
||||
=@facade_data_view.suivi_total
|
||||
simplifications
|
||||
%div.body
|
||||
= smart_listing_render :follow_dossiers
|
||||
|
||||
|
||||
.default_data_block
|
||||
%div.row.show-block#new_dossiers
|
||||
%div.header
|
||||
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title
|
||||
%div.carret-right
|
||||
%div.carret-down
|
||||
Les autres
|
||||
%div.col-lg-2.col-md-2.col-sm-2.col-xs-2.count
|
||||
=@facade_data_view.all_state_total
|
||||
simplifications
|
||||
%div.body
|
||||
= smart_listing_render :all_state_dossiers
|
|
@ -1,6 +0,0 @@
|
|||
<%= smart_listing_update :mes_dossiers, {force: true} %>
|
||||
<%= smart_listing_update :follow_dossiers, {force: true} %>
|
||||
<%= smart_listing_update :all_state_dossiers, {force: true} %>
|
||||
|
||||
filters_init();
|
||||
link_init();
|
|
@ -1,6 +0,0 @@
|
|||
.center
|
||||
%h3.text-danger
|
||||
Vous n'avez aucun droit de lecture sur cette plateforme.
|
||||
|
||||
%h4
|
||||
Merci de prendre contact avec votre reponsable simplification afin de remedier à ce problème.
|
|
@ -44,18 +44,19 @@
|
|||
.col-md-4.col-lg-4
|
||||
%h3.text-primary Acteurs publics
|
||||
%h4 Créez des démarches en ligne simplifiées et sécurisées.
|
||||
=link_to 'Démonstration', 'https://tps-dev.apientreprise.fr/administrateurs/sign_in/demo', {class: 'btn btn-lg btn-primary'}
|
||||
=link_to 'Démonstration', "#{@demo_environment_host}/administrateurs/sign_in/demo", {class: 'btn btn-lg btn-primary'}
|
||||
|
||||
.col-md-4.col-lg-4
|
||||
%h3.text-warning Agents et services
|
||||
%h4 Accompagnez et co-traitez les projets avec les usagers.
|
||||
=link_to 'Démonstration', 'https://tps-dev.apientreprise.fr/gestionnaires/sign_in/demo', {class: 'btn btn-lg btn-warning'}
|
||||
=link_to 'Démonstration', "#{@demo_environment_host}/gestionnaires/sign_in/demo", {class: 'btn btn-lg btn-warning'}
|
||||
|
||||
.col-md-4.col-lg-4
|
||||
%h3.text-success Usagers
|
||||
%h4 Profitez de démarches simplifiées et d’échanges continus avec les services traitants.
|
||||
=link_to 'Démonstration', 'https://tps-dev.apientreprise.fr/users/sign_in/demo', {class: 'btn btn-lg btn-success'}
|
||||
|
||||
=link_to 'Démonstration', "#{@demo_environment_host}/users/sign_in/demo", {class: 'btn btn-lg btn-success'}
|
||||
%h1
|
||||
= @demo_environment_host
|
||||
.split-hr-left
|
||||
|
||||
.center
|
||||
|
|
|
@ -1,15 +1,17 @@
|
|||
-unless dossier.procedure.lien_demarche.blank?
|
||||
%p
|
||||
Récupérer le formulaire de demande ou CERFA vierge pour mon dossier :
|
||||
= link_to "Télécharger", dossier.procedure.lien_demarche, target: '_blank', id: 'lien_cerfa'
|
||||
|
||||
%table.table
|
||||
- if dossier.procedure.cerfa_flag
|
||||
%tr
|
||||
%th.col-lg-6
|
||||
%th
|
||||
Formulaire de demande ou CERFA (complété et numérisé)
|
||||
%td
|
||||
-unless dossier.procedure.lien_demarche.blank?
|
||||
%em
|
||||
Récupérer le formulaire de demande ou CERFA vierge pour mon dossier :
|
||||
= link_to "Télécharger", "#{dossier.procedure.lien_demarche}", target: :blank, id: :lien_cerfa
|
||||
-# %a{ id: 'lien_cerfa', href: "#{dossier.procedure.lien_demarche}", target: '_blank'} Télécharger
|
||||
|
||||
%td.col-lg-5
|
||||
%td
|
||||
-if dossier.cerfa_available?
|
||||
%span.btn.btn-sm.btn-file.btn-success
|
||||
Modifier
|
||||
|
@ -19,9 +21,16 @@
|
|||
|
||||
- dossier.types_de_piece_justificative.order('order_place ASC').each do |type_de_piece_justificative|
|
||||
%tr
|
||||
%th.col-lg-6.piece-libelle
|
||||
%th.piece-libelle
|
||||
= type_de_piece_justificative.libelle
|
||||
%td.col-lg-5
|
||||
|
||||
%td
|
||||
- unless type_de_piece_justificative.lien_demarche.blank?
|
||||
%em
|
||||
Récupérer le formulaire vierge pour mon dossier :
|
||||
= link_to "Télécharger", type_de_piece_justificative.lien_demarche, target: :blank
|
||||
|
||||
%td
|
||||
-if type_de_piece_justificative.api_entreprise
|
||||
%span.text-success{ id: "piece_justificative_#{type_de_piece_justificative.id}" } Nous l'avons récupéré pour vous.
|
||||
-else
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
.row
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1
|
||||
.fa.fa-info-circle.text-info{style:'font-size: 2em; margin-top: 20%'}
|
||||
.col-md-10.col-sm-10.col-xs-10.col-lg-10{style:'padding-right: 0px'}
|
||||
.col-xs-10{style:'padding-right: 0px'}
|
||||
%b
|
||||
=link_to 'Accéder au guide', @dossier.procedure.lien_notice, {target: '_blank'}
|
||||
pour remplir pour votre dossier
|
||||
|
@ -15,7 +15,7 @@
|
|||
= @dossier.procedure.libelle
|
||||
|
||||
-#TODO use form_for
|
||||
= form_tag(url_for({controller: 'users/description', action: :create, dossier_id: @dossier.id}), class: 'form-inline', method: 'POST', multipart: true) do
|
||||
= form_tag(url_for({controller: 'users/description', action: :create, dossier_id: @dossier.id}), class: 'form', method: 'POST', multipart: true) do
|
||||
-unless @champs.nil?
|
||||
#liste_champs
|
||||
=render partial: 'users/description/champs', locals:{private: false}
|
||||
|
@ -24,21 +24,21 @@
|
|||
%br
|
||||
%h3 Documents administratifs
|
||||
|
||||
|
||||
//TODO a refactorer
|
||||
.row
|
||||
.col-lg-8
|
||||
= render partial: 'users/description/pieces_justificatives', locals: { dossier: @dossier }
|
||||
|
||||
- unless Features.opensimplif
|
||||
#state_description.row{style:'width: 50%; margin-left:20px'}
|
||||
.panel.panel-info
|
||||
.panel-body.center
|
||||
.row
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1
|
||||
.fa.fa-info-circle.text-info{style:'font-size: 2em; margin-top: 20%'}
|
||||
.col-md-11.col-sm-11.col-xs-11.col-lg-11
|
||||
Les documents administratifs ne sont pas indispensables afin d'initier votre dossier.
|
||||
Vous pourrez dans tous les cas les compléter plus tard si vous ne les possédez pas de suite.
|
||||
#state_description.row{style:'width: 50%; margin-left:20px'}
|
||||
.panel.panel-info
|
||||
.panel-body.center
|
||||
.row
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1
|
||||
.fa.fa-info-circle.text-info{style:'font-size: 2em; margin-top: 20%'}
|
||||
.col-xs-11
|
||||
Les documents administratifs ne sont pas indispensables afin d'initier votre dossier.
|
||||
Vous pourrez dans tous les cas les compléter plus tard si vous ne les possédez pas de suite.
|
||||
|
||||
|
||||
-route = Rails.application.routes.recognize_path(request.referrer)
|
||||
|
|
|
@ -1,6 +1,2 @@
|
|||
%h4{style:'margin-left:15px;'}
|
||||
= champ.libelle
|
||||
- if champ.mandatory?
|
||||
= '*'
|
||||
%input{type: 'hidden', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", value: ''}
|
||||
%input{type: 'checkbox', style:'margin-left: 15px;', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", checked: ('checked' if champ.value == 'on')}
|
||||
%input{type: 'hidden', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", value: ''}
|
||||
%input{type: 'checkbox', style:'margin-left: 15px;', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", checked: ('checked' if champ.value == 'on')}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "M.", champ.value == 'Mme' ? false : true
|
||||
Monsieur
|
||||
%div
|
||||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "M.", champ.value == 'Mme' ? false : true
|
||||
Monsieur
|
||||
|
||||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "Mme", champ.value == 'Mme'
|
||||
Madame
|
||||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "Mme", champ.value == 'Mme'
|
||||
Madame
|
|
@ -1,8 +1,2 @@
|
|||
%h4{style:'margin-left:15px;'}
|
||||
= champ.libelle
|
||||
- if champ.mandatory?
|
||||
= '*'
|
||||
%input{type: 'hidden', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", value: ''}
|
||||
%input{type: 'checkbox', style:'margin-left: 15px;', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", checked: ('checked' if champ.value == 'on')}
|
||||
%div{style:'margin-left: 5%; margin-right: 5%; text-align: justify; text-justify: inter-word;'}
|
||||
= champ.description.gsub(/\r\n/, '<br>').html_safe
|
||||
%input{type: 'hidden', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", value: ''}
|
||||
%input{type: 'checkbox', style:'margin-left: 15px;', name:"champs['#{champ.id}']", id: "champs_#{champ.id}", checked: ('checked' if champ.value == 'on')}
|
||||
|
|
|
@ -1,54 +1,55 @@
|
|||
-champs.each do |champ|
|
||||
- champs.decorate.each do |champ|
|
||||
- if champ.order_place > order_place
|
||||
- if champ.type_champ == 'header_section'
|
||||
- break
|
||||
|
||||
- unless champ.type_champ == 'checkbox' || champ.type_champ == 'engagement'
|
||||
%h4
|
||||
= champ.libelle
|
||||
- if champ.mandatory?
|
||||
= '*'
|
||||
|
||||
-if champ.type_champ == 'textarea'
|
||||
=render partial: 'users/description/champs/textarea', locals: {champ: champ}
|
||||
|
||||
-elsif champ.type_champ == 'checkbox'
|
||||
= render partial: 'users/description/champs/checkbox', locals: {champ: champ}
|
||||
|
||||
-elsif champ.type_champ == 'civilite'
|
||||
=render partial: 'users/description/champs/civilite', locals: {champ: champ}
|
||||
|
||||
- elsif champ.type_champ == 'datetime'
|
||||
=render partial: 'users/description/champs/datetime', locals: {champ: champ}
|
||||
|
||||
- elsif champ.type_champ == 'yes_no'
|
||||
=render partial: 'users/description/champs/yes_no', locals: {champ: champ}
|
||||
|
||||
- elsif champ.type_champ == 'drop_down_list'
|
||||
=render partial: 'users/description/champs/drop_down_list', locals: {champ: champ}
|
||||
|
||||
- elsif champ.type_champ == 'pays'
|
||||
=render partial: 'users/description/champs/pays', locals: {champ: champ}
|
||||
|
||||
- elsif champ.type_champ == 'regions'
|
||||
=render partial: 'users/description/champs/regions', locals: {champ: champ}
|
||||
|
||||
- elsif champ.type_champ == 'engagement'
|
||||
=render partial: 'users/description/champs/engagement', locals: {champ: champ}
|
||||
|
||||
- elsif champ.type_champ == 'departements'
|
||||
=render partial: 'users/description/champs/departements', locals: {champ: champ}
|
||||
|
||||
-else
|
||||
%input.form-control{name:"champs['#{champ.id}']",
|
||||
placeholder: champ.libelle,
|
||||
id: "champs_#{champ.id}",
|
||||
value: champ.value,
|
||||
type: champ.type_champ,
|
||||
'data-provide' => champ.data_provide,
|
||||
'data-date-format' => champ.data_date_format}
|
||||
|
||||
- unless champ.description.empty? || champ.type_champ == 'engagement'
|
||||
.row
|
||||
.col-lg-8.col-md-8.col-sm-8.col-xs-8{class: 'description_div', id:"description_champs_#{champ.id}"}
|
||||
= champ.description
|
||||
%div{ class: if champ.type_champ == 'textarea' || champ.type_champ == 'engagement' then 'col-md-12' else 'col-md-6' end }
|
||||
.form-group
|
||||
%label{ for: "champs_#{ champ.id }"}
|
||||
= champ.libelle
|
||||
- if champ.mandatory?
|
||||
*
|
||||
|
||||
- if champ.type_champ == 'textarea'
|
||||
= render partial: 'users/description/champs/textarea', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'checkbox'
|
||||
= render partial: 'users/description/champs/checkbox', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'civilite'
|
||||
= render partial: 'users/description/champs/civilite', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'datetime'
|
||||
= render partial: 'users/description/champs/datetime', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'yes_no'
|
||||
= render partial: 'users/description/champs/yes_no', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'drop_down_list'
|
||||
= render partial: 'users/description/champs/drop_down_list', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'pays'
|
||||
= render partial: 'users/description/champs/pays', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'regions'
|
||||
= render partial: 'users/description/champs/regions', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'engagement'
|
||||
= render partial: 'users/description/champs/engagement', locals: { champ: champ }
|
||||
|
||||
- elsif champ.type_champ == 'departements'
|
||||
= render partial: 'users/description/champs/departements', locals: { champ: champ }
|
||||
|
||||
- else
|
||||
%input.form-control{name:"champs['#{ champ.id }']",
|
||||
placeholder: champ.libelle,
|
||||
id: "champs_#{ champ.id }",
|
||||
value: champ.value,
|
||||
type: champ.type_champ,
|
||||
'data-provide' => champ.data_provide,
|
||||
'data-date-format' => champ.data_date_format}
|
||||
|
||||
- unless champ.description.empty?
|
||||
%div{ id:"description_champs_#{ champ.id }", class: ('help-block' unless champ.type_champ == 'engagement') }
|
||||
= champ.description_with_links
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
placeholder: champ.description,
|
||||
id: "champs_#{champ.id}",
|
||||
row: '6'}
|
||||
=champ.value
|
||||
= champ.value
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "true", champ.value == 'true'
|
||||
Oui
|
||||
%div
|
||||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "true", champ.value == 'true'
|
||||
Oui
|
||||
|
||||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "false", champ.value == 'false'
|
||||
Non
|
||||
%label.radio-inline
|
||||
= radio_button_tag "champs['#{champ.id}']", "false", champ.value == 'false'
|
||||
Non
|
|
@ -2,11 +2,11 @@
|
|||
%table#dossiers_list.table
|
||||
%thead
|
||||
%th#sort-id.col-md-1.col-lg-1.col-sm-1.col-xs-1= smart_listing.sortable 'Numéro', 'id'
|
||||
%th#sort-libelle.col-md-5.col-sm-5.col-xs-5.col-lg-5= smart_listing.sortable 'Procédure', 'procedure.libelle'
|
||||
%th#sort-state.col-md-2.col-sm-2.col-xs-2.col-lg-2= smart_listing.sortable 'État', 'state'
|
||||
%th#sort-updated.col-md-2.col-sm-2.col-xs-2.col-lg-2= smart_listing.sortable 'Date de mise à jour', 'updated_at'
|
||||
%th#sort-libelle.col-xs-5= smart_listing.sortable 'Procédure', 'procedure.libelle'
|
||||
%th#sort-state.col-xs-2= smart_listing.sortable 'État', 'state'
|
||||
%th#sort-updated.col-xs-2= smart_listing.sortable 'Date de mise à jour', 'updated_at'
|
||||
- if @liste == "brouillon"
|
||||
%th.col-md-2.col-sm-2.col-xs-2.col-lg-2= 'Action'
|
||||
%th.col-xs-2= 'Action'
|
||||
- @dossiers.each do |dossier|
|
||||
- if dossier.kind_of? Invite
|
||||
- invite = dossier
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
.row
|
||||
.col-md-1.col-lg-1.col-sm-1.col-xs-1
|
||||
.fa.fa-info-circle.text-info{style:'font-size: 2em; margin-top: 20%'}
|
||||
.col-md-11.col-sm-11.col-xs-11.col-lg-11
|
||||
.col-xs-11
|
||||
-if dossiers_list_facade.liste == 'brouillon'
|
||||
Les dossiers présents dans cette liste
|
||||
%b
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue