Merge branch 'develop' into staging

Fixed a conflict in README.md
This commit is contained in:
gregoirenovel 2017-04-12 13:50:08 +02:00
commit 19cde557ce
165 changed files with 1578 additions and 1056 deletions

119
.haml-lint.yml Normal file
View file

@ -0,0 +1,119 @@
linters:
AlignmentTabs:
enabled: true
AltText:
enabled: false
ClassAttributeWithStaticValue:
enabled: true
ClassesBeforeIds:
enabled: false
ConsecutiveComments:
enabled: false
ConsecutiveSilentScripts:
enabled: false
max_consecutive: 2
EmptyObjectReference:
enabled: true
EmptyScript:
enabled: true
FinalNewline:
enabled: true
present: true
HtmlAttributes:
enabled: true
IdNames:
enabled: false
style: lisp_case
ImplicitDiv:
enabled: false
Indentation:
enabled: true
character: space # or tab
width: 2 # ignored if character == tab
InstanceVariables:
enabled: false
file_types: partials
matchers:
all: .*
partials: \A_.*\.haml\z
LeadingCommentSpace:
enabled: true
LineLength:
enabled: false
max: 80
MultilinePipe:
enabled: true
MultilineScript:
enabled: true
ObjectReferenceAttributes:
enabled: true
RepeatedId:
enabled: false
severity: error
RuboCop:
enabled: false
# These cops are incredibly noisy when it comes to HAML templates, so we
# ignore them.
ignored_cops:
- Lint/BlockAlignment
- Lint/EndAlignment
- Lint/Void
- Metrics/BlockLength
- Metrics/LineLength
- Style/AlignParameters
- Style/BlockNesting
- Style/ElseAlignment
- Style/EndOfLine
- Style/FileName
- Style/FinalNewline
- Style/FrozenStringLiteralComment
- Style/IfUnlessModifier
- Style/IndentationWidth
- Style/Next
- Style/TrailingBlankLines
- Style/TrailingWhitespace
- Style/WhileUntilModifier
RubyComments:
enabled: true
SpaceBeforeScript:
enabled: true
SpaceInsideHashAttributes:
enabled: true
style: space
TagName:
enabled: true
TrailingWhitespace:
enabled: true
UnnecessaryInterpolation:
enabled: true
# Disabled because too agressive, but to enable
# locally from time to time
UnnecessaryStringOutput:
enabled: false

View file

@ -93,6 +93,8 @@ gem 'simple_form'
gem 'newrelic_rpm' gem 'newrelic_rpm'
gem 'scenic'
# Sidekiq # Sidekiq
gem 'sidekiq' gem 'sidekiq'
gem 'sidekiq-cron', '~> 0.4.4' gem 'sidekiq-cron', '~> 0.4.4'
@ -114,7 +116,6 @@ group :test do
gem 'guard-livereload', '~> 2.4', require: false gem 'guard-livereload', '~> 2.4', require: false
gem 'vcr' gem 'vcr'
gem 'rails-controller-testing' gem 'rails-controller-testing'
gem 'sqlite3'
end end
group :development do group :development do
@ -122,6 +123,7 @@ group :development do
gem 'web-console' gem 'web-console'
gem 'rack-handlers' gem 'rack-handlers'
gem 'xray-rails' gem 'xray-rails'
gem 'haml-lint'
end end
group :development, :test do group :development, :test do
@ -145,6 +147,3 @@ group :production, :staging do
gem 'sentry-raven' gem 'sentry-raven'
end end
group :production, :staging, :development do
gem 'scenic'
end

View file

@ -69,7 +69,7 @@ GEM
i18n (~> 0.7) i18n (~> 0.7)
minitest (~> 5.1) minitest (~> 5.1)
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.5.0) addressable (2.5.1)
public_suffix (~> 2.0, >= 2.0.2) public_suffix (~> 2.0, >= 2.0.2)
apipie-rails (0.3.7) apipie-rails (0.3.7)
json json
@ -78,6 +78,7 @@ GEM
actionpack (>= 3.0) actionpack (>= 3.0)
activemodel (>= 3.0) activemodel (>= 3.0)
responders responders
ast (2.3.0)
attr_required (1.0.1) attr_required (1.0.1)
autoprefixer-rails (6.5.4) autoprefixer-rails (6.5.4)
execjs execjs
@ -97,7 +98,7 @@ GEM
browser (2.3.0) browser (2.3.0)
builder (3.2.3) builder (3.2.3)
byebug (9.0.6) byebug (9.0.6)
capybara (2.11.0) capybara (2.13.0)
addressable addressable
mime-types (>= 1.16) mime-types (>= 1.16)
nokogiri (>= 1.3.3) nokogiri (>= 1.3.3)
@ -313,12 +314,20 @@ GEM
rspec (>= 2.99.0, < 4.0) rspec (>= 2.99.0, < 4.0)
haml (4.0.7) haml (4.0.7)
tilt tilt
haml-lint (0.999.999)
haml_lint
haml-rails (0.9.0) haml-rails (0.9.0)
actionpack (>= 4.0.1) actionpack (>= 4.0.1)
activesupport (>= 4.0.1) activesupport (>= 4.0.1)
haml (>= 4.0.6, < 5.0) haml (>= 4.0.6, < 5.0)
html2haml (>= 1.0.1) html2haml (>= 1.0.1)
railties (>= 4.0.1) railties (>= 4.0.1)
haml_lint (0.24.0)
haml (>= 4.0, < 5.1)
rainbow
rake (>= 10, < 13)
rubocop (>= 0.47.0)
sysexits (~> 1.1)
hashdiff (0.3.1) hashdiff (0.3.1)
hashie (3.4.6) hashie (3.4.6)
html2haml (2.0.0) html2haml (2.0.0)
@ -412,11 +421,14 @@ GEM
openstack (3.3.7) openstack (3.3.7)
json json
orm_adapter (0.5.0) orm_adapter (0.5.0)
parser (2.4.0.0)
ast (~> 2.2)
pg (0.19.0) pg (0.19.0)
poltergeist (1.12.0) poltergeist (1.14.0)
capybara (~> 2.1) capybara (~> 2.1)
cliver (~> 0.3.1) cliver (~> 0.3.1)
websocket-driver (>= 0.2.0) websocket-driver (>= 0.2.0)
powerpack (0.1.1)
pry (0.10.4) pry (0.10.4)
coderay (~> 1.1.0) coderay (~> 1.1.0)
method_source (~> 0.8.1) method_source (~> 0.8.1)
@ -424,7 +436,7 @@ GEM
pry-byebug (3.4.2) pry-byebug (3.4.2)
byebug (~> 9.0) byebug (~> 9.0)
pry (~> 0.10) pry (~> 0.10)
public_suffix (2.0.4) public_suffix (2.0.5)
rack (2.0.1) rack (2.0.1)
rack-handlers (0.7.3) rack-handlers (0.7.3)
rack rack
@ -463,6 +475,7 @@ GEM
method_source method_source
rake (>= 0.8.7) rake (>= 0.8.7)
thor (>= 0.18.1, < 2.0) thor (>= 0.18.1, < 2.0)
rainbow (2.2.1)
raindrops (0.17.0) raindrops (0.17.0)
rake (12.0.0) rake (12.0.0)
rb-fsevent (0.9.8) rb-fsevent (0.9.8)
@ -513,6 +526,13 @@ GEM
rspec-mocks (~> 3.5.0) rspec-mocks (~> 3.5.0)
rspec-support (~> 3.5.0) rspec-support (~> 3.5.0)
rspec-support (3.5.0) rspec-support (3.5.0)
rubocop (0.48.1)
parser (>= 2.3.3.1, < 3.0)
powerpack (~> 0.1)
rainbow (>= 1.99.1, < 3.0)
ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1)
ruby-progressbar (1.8.1)
ruby_dep (1.5.0) ruby_dep (1.5.0)
ruby_parser (3.8.3) ruby_parser (3.8.3)
sexp_processor (~> 4.1) sexp_processor (~> 4.1)
@ -574,13 +594,13 @@ GEM
actionpack (>= 4.0) actionpack (>= 4.0)
activesupport (>= 4.0) activesupport (>= 4.0)
sprockets (>= 3.0.0) sprockets (>= 3.0.0)
sqlite3 (1.3.13)
swd (1.0.1) swd (1.0.1)
activesupport (>= 3) activesupport (>= 3)
attr_required (>= 0.0.5) attr_required (>= 0.0.5)
httpclient (>= 2.4) httpclient (>= 2.4)
i18n i18n
json (>= 1.4.3) json (>= 1.4.3)
sysexits (1.2.0)
therubyracer (0.12.2) therubyracer (0.12.2)
libv8 (~> 3.16.14.0) libv8 (~> 3.16.14.0)
ref ref
@ -599,6 +619,7 @@ GEM
unf (0.1.4) unf (0.1.4)
unf_ext unf_ext
unf_ext (0.0.7.2) unf_ext (0.0.7.2)
unicode-display_width (1.1.3)
unicode_utils (1.4.0) unicode_utils (1.4.0)
unicorn (5.2.0) unicorn (5.2.0)
kgio (~> 2.6) kgio (~> 2.6)
@ -626,7 +647,7 @@ GEM
addressable (>= 2.3.6) addressable (>= 2.3.6)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff hashdiff
websocket-driver (0.6.4) websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2) websocket-extensions (0.1.2)
will_paginate (3.1.5) will_paginate (3.1.5)
@ -667,6 +688,7 @@ DEPENDENCIES
guard guard
guard-livereload (~> 2.4) guard-livereload (~> 2.4)
guard-rspec guard-rspec
haml-lint
haml-rails haml-rails
hashie hashie
jquery-rails jquery-rails
@ -705,7 +727,6 @@ DEPENDENCIES
spreadsheet_architect spreadsheet_architect
spring spring
spring-commands-rspec spring-commands-rspec
sqlite3
therubyracer therubyracer
timecop timecop
turbolinks (~> 5.0) turbolinks (~> 5.0)

View file

@ -73,6 +73,7 @@ guard :rspec, cmd: 'spring rspec' do
watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" } watch(%r{^app/(.+)\.rb$}) { |m| "spec/#{m[1]}_spec.rb" }
watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" } watch(%r{^app/(.*)(\.erb|\.haml|\.slim)$}) { |m| "spec/#{m[1]}#{m[2]}_spec.rb" }
watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] } watch(%r{^app/controllers/(.+)_(controller)\.rb$}) { |m| ["spec/routing/#{m[1]}_routing_spec.rb", "spec/#{m[2]}s/#{m[1]}_#{m[2]}_spec.rb", "spec/acceptance/#{m[1]}_spec.rb"] }
watch(%r{^app/services/(.+)_(service)\.rb$}) { |m| "spec/services/#{m[1]}_service_spec.rb" }
watch(%r{^spec/support/(.+)\.rb$}) { "spec" } watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
watch('config/routes.rb') { "spec/routing" } watch('config/routes.rb') { "spec/routing" }
watch('app/controllers/application_controller.rb') { "spec/controllers" } watch('app/controllers/application_controller.rb') { "spec/controllers" }

View file

@ -2,13 +2,18 @@
## Context ## Context
TéléProcédure Simplifiée, ou TPS pour les intimes, est une plateforme 100% web et 0% email, conçue afin de répondre au besoin urgent de l'État d'appliquer la directive sur le 100% démat' à l'horizon 2018 pour les démarches administratives. TéléProcédure Simplifiée, ou TPS pour les intimes, est une plateforme 100 % web et 0 % email, conçue afin de répondre au besoin urgent de l'État d'appliquer la directive sur le 100 % démat' à l'horizon 2018 pour les démarches administratives.
## Technologies utilisées ## Dépendances
Ruby : 2.3.1 ### Tous environnements
Rails : 5.0.0.1
- postgresql
### Tests
- PhantomJS
## Initialisation de l'environnement de développement ## Initialisation de l'environnement de développement
@ -20,32 +25,23 @@ Afin d'initialiser l'environnement de développement, éxécutez la commande sui
## Création de la base de données ## Création de la base de données
L'application utilise une base de donnée Postgresql. Pour en installer une, utilisez la commande suivante :
sudo apt-get install postgresql
Les informations nécessaire à l'initialisation de la base doivent être pré-configurées à la main grâce à la procédure suivante : Les informations nécessaire à l'initialisation de la base doivent être pré-configurées à la main grâce à la procédure suivante :
su - postgres su - postgres
psql psql
> create user tps with password 'lol' superuser; > create user tps_development with password 'tps_development' superuser;
> create user tps_test with password 'tps_test' superuser;
> \q > \q
Afin de générer la BDD de l'application, il est nécessaire d'éxécuter les commandes suivantes : Afin de générer la BDD de l'application, il est nécessaire d'éxécuter les commandes suivantes :
rake db:create db:schema:load db:migrate rake db:create db:schema:load db:migrate
rake db:create db:schema:load db:migrate RAILS_ENV=test rake db:create db:schema:load db:migrate RAILS_ENV=test
## Installation de Phantom JS ## Exécution des tests (RSpec)
Installer PhantomJS qui est utilisé par les tests automatisés de l'application. Pour exécuter les tests de l'application, plusieurs possibilités :
## Exécution des tests (Rspec)
Pour éxécuter les tests de l'application, plusieurs possibilités :
- Lancer tous les tests - Lancer tous les tests
@ -62,8 +58,11 @@ Pour éxécuter les tests de l'application, plusieurs possibilités :
rake spec SPEC=file_path/file_name_spec.rb rake spec SPEC=file_path/file_name_spec.rb
rspec file_path/file_name_spec.rb rspec file_path/file_name_spec.rb
## Linting
## Regénérer les binstubs - Linter les fichiers HAML : `bundle exec haml-lint app/views/`
## Régénérer les binstubs
bundle binstub railties --force bundle binstub railties --force
rake rails:update:bin rake rails:update:bin

Binary file not shown.

View file

@ -0,0 +1,36 @@
(function() {
var showNotFound = function() {
$('.dossier-link .text-info').hide();
$('.dossier-link .text-warning').show();
};
var showData = function(data) {
$('.dossier-link .procedureLibelle').text(data.procedureLibelle);
$('.dossier-link .text-info').show();
$('.dossier-link .text-warning').hide();
};
var hideEverything = function() {
$('.dossier-link .text-info').hide();
$('.dossier-link .text-warning').hide();
};
var fetchProcedureLibelle = function(e) {
var dossierId = $(e.target).val();
if(dossierId) {
$.get('/users/dossiers/' + dossierId + '/procedure_libelle')
.done(showData)
.fail(showNotFound);
} else {
hideEverything();
}
};
var timeOut = null;
var debounceFetchProcedureLibelle = function(e) {
if(timeOut){ clearTimeout(timeOut); }
timeOut = setTimeout(function() { fetchProcedureLibelle(e); }, 300);
};
$(document).on('input', '[data-type=dossier-link]', debounceFetchProcedureLibelle);
})();

View file

@ -0,0 +1,20 @@
var TPS = TPS || {};
TPS.toggleChart = function(event, chartClass) {
var nextSelectorItem = $(event.target),
nextChart = $(chartClass),
nextChartId = nextChart.children().first().attr("id"),
currentSelectorItem = nextSelectorItem.parent().find(".segmented-control-item-active"),
currentChart = nextSelectorItem.parent().parent().find(".chart:not(.hidden)");
// Change the current selector and the next selector states
currentSelectorItem.toggleClass("segmented-control-item-active");
nextSelectorItem.toggleClass("segmented-control-item-active");
// Hide the currently shown chart and show the new one
currentChart.toggleClass("hidden");
nextChart.toggleClass("hidden");
// Reflow needed, see https://github.com/highcharts/highcharts/issues/1979
Chartkick.charts[nextChartId].getChartObject().reflow();
}

View file

@ -1,9 +0,0 @@
@import "card";
.stats {
.stat-card {
@extend .card;
margin: 15px auto;
max-width: 1200px;
}
}

View file

@ -0,0 +1,124 @@
@import "card";
$dark-grey: #333333;
$light-grey: #999999;
$blue: rgba(61, 149, 236, 1);
$blue-hover: rgba(61, 149, 236, 0.8);
$default-space: 15px;
$new-h1-margin-bottom: 4 * $default-space;
.new-h1 {
color: $dark-grey;
text-align: center;
margin-top: 0;
margin-bottom: $new-h1-margin-bottom;
}
$statistiques-padding-top: $default-space * 2;
.statistiques {
width: 1040px;
margin: 0 auto;
padding-top: $statistiques-padding-top;
}
.stat-cards {
.stat-card:nth-of-type(even) {
margin-right: 0px;
}
}
$stat-card-margin-bottom: 3 * $default-space;
.stat-card {
@extend .card;
margin-bottom: $stat-card-margin-bottom;
border-radius: 5px;
box-shadow: none;
border: 1px solid rgba(0, 0, 0, 0.15);
}
$stat-card-half-horizontal-spacing: 4 * $default-space;
.stat-card-half {
width: calc((100% - #{$stat-card-half-horizontal-spacing}) / 2);
margin-right: 3 * $default-space;
}
.stat-card-title {
color: $dark-grey;
font-size: 26px;
font-weight: 500;
width: 200px;
}
$segmented-control-margin-top: $default-space;
.segmented-control {
border-radius: 36px;
height: 36px;
line-height: 36px;
font-size: 0;
padding: 0;
display: inline-block;
margin-top: $segmented-control-margin-top;
}
$segmented-control-item-horizontal-padding: $default-space;
$segmented-control-item-border-radius: 2 * $default-space;
.segmented-control-item {
color: $blue;
display: inline-block;
font-size: 15px;
border: 2px solid $blue;
margin-right: -2px;
padding-left: $segmented-control-item-horizontal-padding;
padding-right: $segmented-control-item-horizontal-padding;
color: $blue;
&:first-of-type {
border-radius: $segmented-control-item-border-radius 0px 0px $segmented-control-item-border-radius;
}
&:last-of-type {
border-radius: 0px $segmented-control-item-border-radius $segmented-control-item-border-radius 0px;
margin-right: 0;
}
&:hover {
background-color: $blue-hover;
color: white;
cursor: pointer;
}
}
.segmented-control-item-active {
background-color: $blue;
color: white;
}
.chart-container {
margin-top: 36px;
}
.chart {
width: 100%;
}
$big-number-card-padding: 2 * $segmented-control-item-border-radius;
.big-number-card {
padding: $big-number-card-padding;
}
.big-number-card-title {
display: block;
text-align: center;
margin: 0 auto;
color: $light-grey;
}
.big-number-card-number {
display: block;
text-align: center;
font-size: 90px;
line-height: 90px;
font-weight: bold;
color: $blue;
}

View file

@ -1,24 +0,0 @@
module Administrations
class StatsController < ApplicationController
before_action :authenticate_administration!
def index
procedures = Procedure.where(created_at: Time.current.all_quarter).group("date_trunc('day', created_at)").count
dossiers = Dossier.where(created_at: Time.current.all_quarter).group("date_trunc('day', created_at)").count
@procedures = clean_hash(procedures)
@dossiers = clean_hash(dossiers)
end
private
def clean_hash h
h.keys.each{ |key| h[key.to_date] = h[key]; h.delete(key) }
min_date = h.keys.min
max_date = h.keys.max
(min_date..max_date).each do |date|
h[date] = 0 if h[date].nil?
end
h
end
end
end

View file

@ -5,7 +5,7 @@ class Backoffice::PrivateFormulairesController < ApplicationController
dossier = current_gestionnaire.dossiers.find(params[:dossier_id]) dossier = current_gestionnaire.dossiers.find(params[:dossier_id])
unless params[:champs].nil? unless params[:champs].nil?
champs_service_errors = ChampsService.save_formulaire dossier.champs_private, params champs_service_errors = ChampsService.save_champs dossier.champs_private, params
if champs_service_errors.empty? if champs_service_errors.empty?
flash[:notice] = "Formulaire enregistré" flash[:notice] = "Formulaire enregistré"

View file

@ -0,0 +1,56 @@
class StatsController < ApplicationController
def index
procedures = Procedure.where(:published => true)
dossiers = Dossier.where.not(:state => :draft)
@procedures_30_days_flow = thirty_days_flow_hash(procedures)
@dossiers_30_days_flow = thirty_days_flow_hash(dossiers)
@procedures_cumulative = cumulative_hash(procedures)
@dossiers_cumulative = cumulative_hash(dossiers)
@procedures_count = procedures.count
@dossiers_count = dossiers.count
end
private
def thirty_days_flow_hash(association)
min_date = 30.days.ago.to_date
max_date = Time.now.to_date
thirty_days_flow_hash = association
.where(:created_at => min_date..max_date)
.group("date_trunc('day', created_at)")
.count
clean_hash(thirty_days_flow_hash, min_date, max_date)
end
def clean_hash(h, min_date, max_date)
# Convert keys to date
h = Hash[h.map { |(k, v)| [k.to_date, v] }]
# Add missing vales where count is 0
(min_date..max_date).each do |date|
if h[date].nil?
h[date] = 0
end
end
h
end
def cumulative_hash(association)
sum = 0
association
.group("DATE_TRUNC('month', created_at)")
.count
.to_a
.sort{ |x, y| x[0] <=> y[0] }
.map { |x, y| { x => (sum += y)} }
.reduce({}, :merge)
end
end

View file

@ -12,10 +12,7 @@ class Users::DescriptionController < UsersController
@procedure = @dossier.procedure @procedure = @dossier.procedure
@champs = @dossier.ordered_champs @champs = @dossier.ordered_champs
@headers = @champs.inject([]) do |acc, champ| @headers = @champs.select { |c| c.type_champ == 'header_section' }
acc.push(champ) if champ.type_champ == 'header_section'
acc
end
unless @dossier.can_be_initiated? unless @dossier.can_be_initiated?
flash[:alert] = t('errors.messages.procedure_archived') flash[:alert] = t('errors.messages.procedure_archived')
@ -34,18 +31,12 @@ class Users::DescriptionController < UsersController
@champs = @dossier.ordered_champs @champs = @dossier.ordered_champs
mandatory = true check_mandatory_fields = !draft_submission?
mandatory = !(params[:submit].keys.first == 'brouillon') unless params[:submit].nil?
unless @dossier.update_attributes(create_params) if params[:champs]
@dossier = @dossier.decorate champs_service_errors = ChampsService.save_champs @dossier.champs,
params,
flash.alert = @dossier.errors.full_messages.join('<br />').html_safe check_mandatory_fields
return redirect_to users_dossier_description_path(dossier_id: @dossier.id)
end
unless params[:champs].nil?
champs_service_errors = ChampsService.save_formulaire @dossier.champs, params, mandatory
unless champs_service_errors.empty? unless champs_service_errors.empty?
flash.alert = (champs_service_errors.inject('') { |acc, error| acc+= error[:message]+'<br>' }).html_safe flash.alert = (champs_service_errors.inject('') { |acc, error| acc+= error[:message]+'<br>' }).html_safe
@ -53,33 +44,30 @@ class Users::DescriptionController < UsersController
end end
end end
if @procedure.cerfa_flag? if @procedure.cerfa_flag? && params[:cerfa_pdf]
unless params[:cerfa_pdf].nil?
cerfa = Cerfa.new(content: params[:cerfa_pdf], dossier: @dossier, user: current_user) cerfa = Cerfa.new(content: params[:cerfa_pdf], dossier: @dossier, user: current_user)
unless cerfa.save unless cerfa.save
flash.alert = cerfa.errors.full_messages.join('<br />').html_safe flash.alert = cerfa.errors.full_messages.join('<br />').html_safe
return redirect_to users_dossier_description_path(dossier_id: @dossier.id) return redirect_to users_dossier_description_path(dossier_id: @dossier.id)
end end
end end
end
unless (errors_upload = PiecesJustificativesService.upload!(@dossier, current_user, params)).empty? errors_upload = PiecesJustificativesService.upload!(@dossier, current_user, params)
unless errors_upload.empty?
flash.alert = errors_upload.html_safe flash.alert = errors_upload.html_safe
return redirect_to users_dossier_description_path(dossier_id: @dossier.id) return redirect_to users_dossier_description_path(dossier_id: @dossier.id)
end end
if draft_submission?
if mandatory flash.notice = 'Votre brouillon a bien été sauvegardé.'
redirect_to url_for(controller: :dossiers, action: :index, liste: :brouillon)
else
if @dossier.draft? if @dossier.draft?
@dossier.initiated! @dossier.initiated!
NotificationMailer.send_notification(@dossier, @dossier.procedure.initiated_mail).deliver_now! NotificationMailer.send_notification(@dossier, @dossier.procedure.initiated_mail).deliver_now!
end end
flash.notice = 'Félicitations, votre demande a bien été enregistrée.' flash.notice = 'Félicitations, votre demande a bien été enregistrée.'
redirect_to url_for(controller: :recapitulatif, action: :show, dossier_id: @dossier.id) redirect_to url_for(controller: :recapitulatif, action: :show, dossier_id: @dossier.id)
else
flash.notice = 'Votre brouillon a bien été sauvegardé.'
redirect_to url_for(controller: :dossiers, action: :index, liste: :brouillon)
end end
end end
@ -123,6 +111,10 @@ class Users::DescriptionController < UsersController
private private
def draft_submission?
params[:submit] && params[:submit].keys.first == 'brouillon'
end
def check_autorisation_donnees def check_autorisation_donnees
@dossier = current_user_dossier @dossier = current_user_dossier
@ -137,9 +129,4 @@ class Users::DescriptionController < UsersController
redirect_to url_for(users_dossier_path(@dossier.id)) redirect_to url_for(users_dossier_path(@dossier.id))
end end
end end
def create_params
params.permit()
end
end end

View file

@ -154,6 +154,13 @@ class Users::DossiersController < UsersController
redirect_to url_for users_dossiers_path redirect_to url_for users_dossiers_path
end end
def procedure_libelle
dossier = Dossier.find(params[:dossier_id])
render json: { procedureLibelle: dossier.procedure.libelle }
rescue ActiveRecord::RecordNotFound
render json: {}, status: 404
end
private private
def check_siret def check_siret

View file

@ -28,6 +28,10 @@ class Champ < ActiveRecord::Base
same_date? num, '%M' same_date? num, '%M'
end end
def mandatory_and_blank?
mandatory? && value.blank?
end
def same_date? num, compare def same_date? num, compare
if type_champ == 'datetime' && !value.nil? if type_champ == 'datetime' && !value.nil?
if value.to_datetime.strftime(compare) == num if value.to_datetime.strftime(compare) == num

View file

@ -210,19 +210,16 @@ class Dossier < ActiveRecord::Base
def convert_specific_hash_values_to_string(hash_to_convert) def convert_specific_hash_values_to_string(hash_to_convert)
hash = {} hash = {}
hash_to_convert.each do |key, value| hash_to_convert.each do |key, value|
value = value.to_s if !value.kind_of?(Time) && !value.nil? value = serialize_value_for_export(value)
hash.store(key, value) hash.store(key, value)
end end
return hash return hash
end end
def convert_specific_array_values_to_string(array_to_convert) def full_data_strings_array
array = [] data_with_champs.map do |value|
array_to_convert.each do |value| serialize_value_for_export(value)
value = value.to_s if !value.kind_of?(Time) && !value.nil?
array << value
end end
return array
end end
def export_entreprise_data def export_entreprise_data
@ -306,4 +303,8 @@ class Dossier < ActiveRecord::Base
end end
end end
def serialize_value_for_export(value)
value.nil? || value.kind_of?(Time) ? value : value.to_s
end
end end

View file

@ -1,6 +1,5 @@
class Notification < ActiveRecord::Base class Notification < ActiveRecord::Base
belongs_to :dossier belongs_to :dossier
serialize :liste if Rails.env.test?
# after_save :broadcast_notification # after_save :broadcast_notification

View file

@ -135,7 +135,7 @@ class Procedure < ActiveRecord::Base
headers = exportable_dossiers.any? ? exportable_dossiers.first.export_headers : [] headers = exportable_dossiers.any? ? exportable_dossiers.first.export_headers : []
data = exportable_dossiers.map do |dossier| data = exportable_dossiers.map do |dossier|
dossier.convert_specific_array_values_to_string(dossier.data_with_champs) dossier.full_data_strings_array
end end
{ {

View file

@ -18,7 +18,8 @@ class TypeDeChamp < ActiveRecord::Base
departements: 'departements', departements: 'departements',
engagement: 'engagement', engagement: 'engagement',
header_section: 'header_section', header_section: 'header_section',
explication: 'explication' explication: 'explication',
dossier_link: 'dossier_link'
} }
belongs_to :procedure belongs_to :procedure

View file

@ -1,27 +1,41 @@
class ChampsService class ChampsService
def self.save_formulaire champs, params, check_mandatory=true class << self
errors = Array.new def save_champs(champs, params, check_mandatory = true)
fill_champs(champs, params)
champs.each do |champ| champs.select(&:changed?).each(&:save)
champ.value = params[:champs]["'#{champ.id}'"]
if champ.type_champ == 'datetime' check_mandatory ? build_error_messages(champs) : []
champ.value = params[:champs]["'#{champ.id}'"]+
' ' +
params[:time_hour]["'#{champ.id}'"] +
':' +
params[:time_minute]["'#{champ.id}'"]
end end
if check_mandatory private
if champ.mandatory? && (champ.value.nil? || champ.value.blank?)
errors.push({message: "Le champ #{champ.libelle} doit être rempli."}) def fill_champs(champs, h)
end datetimes, not_datetimes = champs.partition { |c| c.type_champ == 'datetime' }
not_datetimes.each { |c| c.value = h[:champs]["'#{c.id}'"] }
datetimes.each { |c| c.value = parse_datetime(c.id, h) }
end end
champ.save if champ.changed? def parse_datetime(champ_id, h)
"#{h[:champs]["'#{champ_id}'"]} #{extract_hour(champ_id, h)}:#{extract_minute(champ_id, h)}"
end end
errors def extract_hour(champ_id, h)
h[:time_hour]["'#{champ_id}'"]
end
def extract_minute(champ_id, h)
h[:time_minute]["'#{champ_id}'"]
end
def build_error_messages(champs)
champs.select(&:mandatory_and_blank?)
.map { |c| build_champ_error_message(c) }
end
def build_champ_error_message(champ)
{ message: "Le champ #{champ.libelle} doit être rempli." }
end
end end
end end

View file

@ -1,17 +1,17 @@
.row{style:'height: 34px'} .row{ style: 'height: 34px;' }
- unless smart_listing.empty? - unless smart_listing.empty?
%table.table#liste_gestionnaire %table.table#liste_gestionnaire
%thead %thead
%th Enlever %th Enlever
%th#email{style:'text-align: right'} Email %th#email{ style: 'text-align: right;' } Email
- @accompagnateurs_assign.each do |accompagnateur| - @accompagnateurs_assign.each do |accompagnateur|
%tr %tr
%td.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1.center %td.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1.center
%a.btn.btn-primary{href: "#{admin_procedure_accompagnateurs_path(procedure_id: @procedure.id, accompagnateur_id: accompagnateur.id, to: AccompagnateurService::NOT_ASSIGN)}", 'data-method' => 'put'} %a.btn.btn-primary{ href: "#{admin_procedure_accompagnateurs_path(procedure_id: @procedure.id, accompagnateur_id: accompagnateur.id, to: AccompagnateurService::NOT_ASSIGN)}", 'data-method' => 'put' }
.fa.fa-arrow-left .fa.fa-arrow-left
%td{style:'padding-top: 11px; font-size:15px; text-align:right'}= accompagnateur.email %td{ style: 'padding-top: 11px; font-size: 15px; text-align: right;' }= accompagnateur.email
= smart_listing.paginate = smart_listing.paginate
= smart_listing.pagination_per_page_links = smart_listing.pagination_per_page_links

View file

@ -1,8 +1,8 @@
= smart_listing_controls_for(:accompagnateurs_not_assign, {class: "form-inline text-right"}) do = smart_listing_controls_for(:accompagnateurs_not_assign, { class: "form-inline text-right" }) do
.form-group.filter.input-append .form-group.filter.input-append
= text_field_tag :filter, '', class: "search form-control", = text_field_tag :filter, '', class: "search form-control",
placeholder: "Recherche...", autocomplete: :off placeholder: "Recherche...", autocomplete: :off
%button.btn.btn-primary{type: :submit} %button.btn.btn-primary{ type: :submit }
%span.fa.fa-search %span.fa.fa-search
- unless smart_listing.empty? - unless smart_listing.empty?
@ -14,9 +14,9 @@
- @accompagnateurs_not_assign.each do |accompagnateur| - @accompagnateurs_not_assign.each do |accompagnateur|
%tr %tr
%td.col-xs-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 %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'} %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 .fa.fa-arrow-right

View file

@ -9,15 +9,15 @@
%h3 %h3
= t('dynamics.admin.procedure.onglet_accompagnateurs.add.title') = t('dynamics.admin.procedure.onglet_accompagnateurs.add.title')
#procedure_new.section.section-label #procedure_new.section.section-label
= form_for @gestionnaire, url: {controller: 'admin/gestionnaires', action: :create} do |f| = form_for @gestionnaire, url: { controller: 'admin/gestionnaires', action: :create } do |f|
.row .row
.col-xs-5 .col-xs-5
= hidden_field_tag :procedure_id, params[:procedure_id] = hidden_field_tag :procedure_id, params[:procedure_id]
=render partial: 'admin/gestionnaires/informations', locals: {f: f} = render partial: 'admin/gestionnaires/informations', locals: { f: f }
.col-xs-2 .col-xs-2
%br %br
%br %br
= f.submit 'Valider', class: 'btn btn-info', style: 'float:left', id: 'add-gestionnaire-email' = f.submit 'Valider', class: 'btn btn-info', style: 'float: left;', id: 'add-gestionnaire-email'
.col-xs-6 .col-xs-6
%h3.text-success Affectés %h3.text-success Affectés
= smart_listing_render :accompagnateurs_assign = smart_listing_render :accompagnateurs_assign

View file

@ -10,8 +10,8 @@
= @dossier.decorate.display_state = @dossier.decorate.display_state
%br %br
État souhaité : État souhaité :
%select{id: :next_state, name: :next_state} %select{ id: :next_state, name: :next_state }
- Dossier.states.each do |state| - Dossier.states.each do |state|
%option{value: state[0]} %option{ value: state[0] }
=DossierDecorator.case_state_fr state[1] = DossierDecorator.case_state_fr state[1]
= f.submit 'Valider' = f.submit 'Valider'

View file

@ -1,4 +1,4 @@
-{email: 'Email*'}.each do |key, value| - { email: 'Email*' }.each do |key, value|
.form-group .form-group
%h4 %h4
= value = value

View file

@ -2,17 +2,17 @@
%table.table#liste_gestionnaire %table.table#liste_gestionnaire
%thead %thead
%th#libelle= smart_listing.sortable 'Email', 'email' %th#libelle= smart_listing.sortable 'Email', 'email'
%th= '' %th
- @gestionnaires.each do |gestionnaire| - @gestionnaires.each do |gestionnaire|
%tr %tr
%td{style:'padding-top: 11px; font-size:15px'}= gestionnaire.email %td{ style: 'padding-top: 11px; font-size: 15px;' }= gestionnaire.email
%td{ style: 'text-align:right' } %td{ style: 'text-align: right;' }
.delete.btn.btn-sm.fa.fa-trash .delete.btn.btn-sm.fa.fa-trash
.confirm .confirm
=link_to 'Valider', admin_gestionnaire_path(id: gestionnaire.id), {method: :delete, class: 'btn btn-sm btn-success'} = link_to 'Valider', admin_gestionnaire_path(id: gestionnaire.id), { method: :delete, class: 'btn btn-sm btn-success' }
.cancel.btn.btn-sm.btn-danger.fa.fa-minus{style: 'top: 0'} .cancel.btn.btn-sm.btn-danger.fa.fa-minus{ style: 'top: 0;' }
= smart_listing.paginate = smart_listing.paginate
= smart_listing.pagination_per_page_links = smart_listing.pagination_per_page_links

View file

@ -9,11 +9,11 @@
.col-xs-6 .col-xs-6
%h3 Ajouter un accompagnateur %h3 Ajouter un accompagnateur
#procedure_new.section.section-label #procedure_new.section.section-label
= form_for @gestionnaire, url: {controller: 'admin/gestionnaires', action: :create} do |f| = form_for @gestionnaire, url: { controller: 'admin/gestionnaires', action: :create } do |f|
.row .row
.col-xs-5 .col-xs-5
= render partial: 'informations', locals: {f: f} = render partial: 'informations', locals: { f: f }
.col-xs-2 .col-xs-2
%br %br
%br %br
= f.submit 'Valider', class: 'btn btn-info', style: 'float:left' = f.submit 'Valider', class: 'btn btn-info', style: 'float: left;'

View file

@ -9,7 +9,7 @@
.row .row
.col-md-6 .col-md-6
= f.input :object, label: "Objet de l'email" = f.input :object, label: "Objet de l'email"
= f.input :body, label: "Corps de l'email", input_html: {class: 'wysihtml5'} = f.input :body, label: "Corps de l'email", input_html: { class: 'wysihtml5' }
.text-right .text-right
= link_to "Annuler", admin_procedure_mail_templates_path(@procedure), class: "btn btn-default" = link_to "Annuler", admin_procedure_mail_templates_path(@procedure), class: "btn btn-default"
= f.button :submit, 'Mettre à jour', class: "btn-success" = f.button :submit, 'Mettre à jour', class: "btn-success"
@ -27,4 +27,4 @@
%td.center %td.center
= "--#{balise.first}--" = "--#{balise.first}--"
%td %td
=balise.second[:description] = balise.second[:description]

View file

@ -2,16 +2,16 @@
.form-inline .form-inline
.form-group .form-group
%h4 Libellé %h4 Libellé
=ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé' = ff.text_field :libelle, class: 'form-control libelle', placeholder: 'Libellé'
.form-group .form-group
%h4 Description %h4 Description
=ff.text_area :description, class: 'form-control description', placeholder: 'Description' = ff.text_area :description, class: 'form-control description', placeholder: 'Description'
.form-group .form-group
%h4 %h4
Lien du formulaire vierge Lien du formulaire vierge
%small %small
(optionel) (optionel)
=ff.url_field :lien_demarche, class: 'form-control', placeholder: 'Lien du document vierge' = ff.url_field :lien_demarche, class: 'form-control', placeholder: 'Lien du document vierge'
.form-group .form-group
= ff.hidden_field :order_place, value: ff.index = ff.hidden_field :order_place, value: ff.index

View file

@ -1,7 +1,7 @@
= form_for [:admin, @procedure], url: admin_procedure_pieces_justificatives_path(@procedure) , remote: true do |f| = form_for [:admin, @procedure], url: admin_procedure_pieces_justificatives_path(@procedure), remote: true do |f|
#liste_piece_justificative #liste_piece_justificative
= render partial: 'fields', locals:{ types_de_piece_justificative: @procedure.types_de_piece_justificative_ordered.decorate, f: f } = render partial: 'fields', locals: { types_de_piece_justificative: @procedure.types_de_piece_justificative_ordered.decorate, f: f }
= f.submit "Enregistrer", class: 'btn btn-success', id: :save = f.submit "Enregistrer", class: 'btn btn-success', id: :save
%hr %hr
#new_type_de_piece_justificative #new_type_de_piece_justificative
= render partial: 'fields', locals:{ types_de_piece_justificative: TypeDePieceJustificative.new.decorate, f: f } = render partial: 'fields', locals: { types_de_piece_justificative: TypeDePieceJustificative.new.decorate, f: f }

View file

@ -2,7 +2,7 @@
.alert.alert-info .alert.alert-info
Cette procédure est publiée, certains éléments de la description ne sont plus modifiables 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| - { libelle: 'Libellé*', description: 'Description*', organisation: 'Organisation', direction: 'Direction', lien_site_web: 'Lien site internet', lien_notice: 'Lien notice' }.each do |key, value|
.form-group .form-group
%h4 %h4
= value = value
@ -16,17 +16,17 @@
.col-md-6 .col-md-6
%h4 Logo de la procédure %h4 Logo de la procédure
- unless @procedure.logo.blank? - unless @procedure.logo.blank?
= image_tag @procedure.decorate.logo_img, {style: 'height: 40px; display: inline; margin-right: 6px', id: 'preview_procedure_logo'} = 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'} %div{ style: 'margin-top: 5px;' }
%i %i
Fichier accepté : JPG / JPEG / PNG Fichier accepté : JPG / JPEG / PNG
.col-md-6 .col-md-6
%h4 Drapeau européen %h4 Drapeau européen
.checkbox .checkbox
%label %label
=f.check_box :euro_flag = f.check_box :euro_flag
Afficher le drapeau européen Afficher le drapeau européen
- unless @procedure.locked? - unless @procedure.locked?
@ -37,7 +37,7 @@
= f.fields_for :module_api_carto, @procedure.module_api_carto do |ff| = f.fields_for :module_api_carto, @procedure.module_api_carto do |ff|
.checkbox .checkbox
%label %label
=ff.check_box :use_api_carto, id: :procedure_module_api_carto_use_api_carto = ff.check_box :use_api_carto, id: :procedure_module_api_carto_use_api_carto
Utilisation de la cartographie Utilisation de la cartographie
%ul#modules_api_carto %ul#modules_api_carto
@ -67,7 +67,7 @@
%h4 Particuliers %h4 Particuliers
.checkbox .checkbox
%label %label
=f.check_box :for_individual = f.check_box :for_individual
Cette procédure s'adresse à un public qui Cette procédure s'adresse à un public qui
%b %b
ne possède pas (ou pas encore) de numéro SIRET, ne possède pas (ou pas encore) de numéro SIRET,
@ -83,7 +83,7 @@
.col-md-6 .col-md-6
%h4 Options avancées %h4 Options avancées
%label{ for: :auto_archive_on} Archivage automatique le %label{ for: :auto_archive_on } Archivage automatique le
= f.text_field :auto_archive_on, id: 'auto_archive_on', value: @procedure.auto_archive_on.try{ |d| d.strftime("%d-%m-%Y") }, data: { provide: 'datepicker', 'date-language' => 'fr', 'date-format' => 'dd/mm/yyyy' } = f.text_field :auto_archive_on, id: 'auto_archive_on', value: @procedure.auto_archive_on.try{ |d| d.strftime("%d-%m-%Y") }, data: { provide: 'datepicker', 'date-language' => 'fr', 'date-format' => 'dd/mm/yyyy' }
(à 00h00) (à 00h00)
%p.help-block %p.help-block

View file

@ -4,13 +4,13 @@
%th#ID= smart_listing.sortable 'ID', 'id' %th#ID= smart_listing.sortable 'ID', 'id'
%th#libelle= smart_listing.sortable 'Libellé', 'libelle' %th#libelle= smart_listing.sortable 'Libellé', 'libelle'
- if @active_class - if @active_class
%th#lien Lien %th Lien
%th#created_at= smart_listing.sortable 'Date création', 'created_at' %th#created_at= smart_listing.sortable 'Date création', 'created_at'
%th#lien Actions %th Actions
- @procedures.each do |procedure| - @procedures.each do |procedure|
- procedure = procedure.decorate - procedure = procedure.decorate
%tr{id: "tr_dossier_#{procedure.id}", 'data-dossier_url' => admin_procedure_path(id: procedure.id)} %tr{ id: "tr_dossier_#{procedure.id}", 'data-dossier_url' => admin_procedure_path(id: procedure.id) }
%td= procedure.id %td= procedure.id
%td.col-xs-6 %td.col-xs-6
= procedure.libelle = procedure.libelle

View file

@ -1,17 +1,17 @@
#publishModal.modal.fade{"aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1"} #publishModal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" }
.modal-dialog.modal-lg{:role => "document"} .modal-dialog.modal-lg{ :role => "document" }
= form_tag admin_procedure_publish_path(procedure_id: @procedure.id), method: :put, remote: true do = form_tag admin_procedure_publish_path(procedure_id: @procedure.id), method: :put, remote: true do
.modal-content .modal-content
.modal-header .modal-header
%button.close{"aria-label" => "Close", "data-dismiss" => "modal", :type => "button"} %button.close{ "aria-label" => "Close", "data-dismiss" => "modal", :type => "button" }
%span{"aria-hidden" => "true"} × %span{ "aria-hidden" => "true" } ×
%h4#myModalLabel.modal-title %h4#myModalLabel.modal-title
=@procedure.archived?? 'Réactiver' : 'Publier' = @procedure.archived? ? 'Réactiver' : 'Publier'
la procédure la procédure
%span#publishModal_title %span#publishModal_title
.modal-body .modal-body
Vous vous apprêtez à Vous vous apprêtez à
=@procedure.archived?? 'republier' : 'publier' = @procedure.archived? ? 'republier' : 'publier'
votre procédure au public. votre procédure au public.
- unless @procedure.archived? - unless @procedure.archived?
%b %b
@ -23,13 +23,13 @@
%br %br
%h4 Lien de la procédure %h4 Lien de la procédure
%p.center %p.center
="#{root_url}commencer/" = "#{root_url}commencer/"
= text_field_tag('procedure_path', @procedure.default_path, = text_field_tag('procedure_path', @procedure.default_path,
id: 'procedure_path', id: 'procedure_path',
placeholder: 'Chemin vers la procédure', placeholder: 'Chemin vers la procédure',
class:'form-control', class: 'form-control',
maxlength: 30, maxlength: 30,
style: 'width: 300px; display: inline') style: 'width: 300px; display: inline;')
#path_messages #path_messages
#path_is_mine.text-warning.center.message #path_is_mine.text-warning.center.message
Ce lien est déjà utilisé par une de vos procédure. Ce lien est déjà utilisé par une de vos procédure.
@ -42,7 +42,7 @@
#path_is_invalid.text-danger.center.message #path_is_invalid.text-danger.center.message
Ce lien n'est pas valide. Il doit comporter au moins 3 caractères et seuls les caractères a-z, 0-9 et '_' sont autorisés. Ce lien n'est pas valide. Il doit comporter au moins 3 caractères et seuls les caractères a-z, 0-9 et '_' sont autorisés.
.modal-footer .modal-footer
= submit_tag "#{@procedure.archived?? 'Réactiver' : 'Publier'}", class: %w(btn btn btn-success), = submit_tag "#{@procedure.archived? ? 'Réactiver' : 'Publier'}", class: %w(btn btn btn-success),
id: 'publish', id: 'publish',
disabled: :disabled disabled: :disabled
= button_tag 'Annuler', class: %w(btn btn btn-default), id: 'cancel', data: { dismiss: 'modal' } = button_tag 'Annuler', class: %w(btn btn btn-default), id: 'cancel', data: { dismiss: 'modal' }

View file

@ -1,21 +1,21 @@
#transferModal.modal.fade{"aria-labelledby" => "TransferProcedureModal", :role => "dialog", :tabindex => "-1"} #transferModal.modal.fade{ "aria-labelledby" => "TransferProcedureModal", :role => "dialog", :tabindex => "-1" }
.modal-dialog.modal-md{:role => "document"} .modal-dialog.modal-md{ :role => "document" }
= form_tag admin_procedure_transfer_path(procedure_id: @procedure.id), method: :post, remote: true do = form_tag admin_procedure_transfer_path(procedure_id: @procedure.id), method: :post, remote: true do
.modal-content .modal-content
.modal-header .modal-header
%button.close{"aria-label" => "Close", "data-dismiss" => "modal", :type => "button"} %button.close{ "aria-label" => "Close", "data-dismiss" => "modal", :type => "button" }
%span{"aria-hidden" => "true"} × %span{ "aria-hidden" => "true" } ×
%h4#myModalLabel.modal-title %h4#myModalLabel.modal-title
Petit transfert de procédure entre administrateur Petit transfert de procédure entre administrateur
.modal-body .modal-body
%p %p
Cette fonctionnalité vous permet de transmettre un clone de votre procédure à un autre administrateur. Cette fonctionnalité vous permet de transmettre un clone de votre procédure à un autre administrateur.
%div{style:'margin-top:20px'} %div{ style:'margin-top:20px' }
= text_field_tag :email_admin, '', {class: 'form-control', = text_field_tag :email_admin, '', { class: 'form-control',
type: 'email', type: 'email',
placeholder: 'Email administrateur cible', placeholder: 'Email administrateur cible',
style: 'width: 300px; margin-left:auto; margin-right:auto'} style: 'width: 300px; margin-left:auto; margin-right:auto' }
%div#not_found_admin.center.text-danger{style:'display:none; margin-top: 10px'} %div#not_found_admin.center.text-danger{ style:'display: none; margin-top: 10px;' }
Cet administrateur n'existe pas. Cet administrateur n'existe pas.
.modal-footer .modal-footer
= submit_tag "Envoyer", class: 'btn btn-success' = submit_tag "Envoyer", class: 'btn btn-success'

View file

@ -1,17 +1,17 @@
#onglets #onglets
%ul.nav.nav-tabs %ul.nav.nav-tabs
%li{class: @draft_class} %li{ class: @draft_class }
%a{:href => "#{url_for :admin_procedures_draft}"} %a{ :href => "#{url_for :admin_procedures_draft}" }
%h5.text-primary %h5.text-primary
="Brouillons" Brouillons
%li{class: @active_class} %li{ class: @active_class }
%a{:href => "#{url_for :admin_procedures}"} %a{ :href => "#{url_for :admin_procedures}" }
%h5.text-success %h5.text-success
= "Actives" Actives
%li{class: @archived_class} %li{ class: @archived_class }
%a{:href => "#{url_for :admin_procedures_archived}"} %a{ :href => "#{url_for :admin_procedures_archived}" }
%h5{style: 'color: black'} %h5{ style: 'color: black;' }
="Archivées" Archivées
%br %br

View file

@ -1,6 +1,6 @@
.row.white-back .row.white-back
#procedure_new.section.section-label #procedure_new.section.section-label
= form_for @procedure, url: url_for({controller: 'admin/procedures', action: :update, id: @procedure.id}), multipart: true do |f| = form_for @procedure, url: url_for({ controller: 'admin/procedures', action: :update, id: @procedure.id }), multipart: true do |f|
= render partial: 'informations', locals: {f: f} = render partial: 'informations', locals: { f: f }
.text-right .text-right
= f.submit 'Enregistrer', class: 'btn btn-success' = f.submit 'Enregistrer', class: 'btn btn-success'

View file

@ -1,14 +1,14 @@
#admins_index #admins_index
.default_data_block.default_visible .default_data_block.default_visible
%div.row.show-block#new_dossiers .row.show-block#new_dossiers
%div.header .header
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title .col-lg-10.col-md-10.col-sm-10.col-xs-10.title
%div.carret-right .carret-right
%div.carret-down .carret-down
Procédures Procédures
%a{href:'/admin/procedures/new'} %a{ href: '/admin/procedures/new' }
%div#new-procedure.col-lg-2.col-md-2.col-sm-2.col-xs-2.action %div#new-procedure.col-lg-2.col-md-2.col-sm-2.col-xs-2.action
Nouvelle Nouvelle
%div.body .body
= smart_listing_render :procedures = smart_listing_render :procedures

View file

@ -1,8 +1,8 @@
.row.white-back .row.white-back
%h2 %h2
=t('dynamics.admin.dossiers.tableau_de_bord.nouvelle_procedure') = t('dynamics.admin.dossiers.tableau_de_bord.nouvelle_procedure')
#procedure_new.section.section-label #procedure_new.section.section-label
= form_for @procedure, url: {controller: 'admin/procedures', action: :create}, multipart: true do |f| = form_for @procedure, url: { controller: 'admin/procedures', action: :create }, multipart: true do |f|
= render partial: 'informations', locals: {f: f} = render partial: 'informations', locals: { f: f }
= f.submit 'Valider', class: 'btn btn-info', id: 'save-procedure', style: 'float:right' = f.submit 'Valider', class: 'btn btn-info', id: 'save-procedure', style: 'float: right;'

View file

@ -1,40 +1,40 @@
.row.white-back .row.white-back
#procedure_show #procedure_show
-unless @facade.procedure.published? - unless @facade.procedure.published?
- if @facade.procedure.gestionnaires.size == 0 - if @facade.procedure.gestionnaires.size == 0
%a.action_button.btn.btn-success{style:'float: right; margin-top: 10px', disabled: 'disabled', 'data-toggle' => :tooltip, title: 'Vous ne pouvez pas publier une procédure sans qu\'aucun accompagnateur ne soit affecté à celle-ci.', id: 'publish-procedure'} %a.action_button.btn.btn-success{ style: 'float: right; margin-top: 10px;', disabled: 'disabled', 'data-toggle' => :tooltip, title: 'Vous ne pouvez pas publier une procédure sans qu\'aucun accompagnateur ne soit affecté à celle-ci.', id: 'publish-procedure' }
%i.fa.fa-eraser %i.fa.fa-eraser
Publier Publier
- else - else
%a.btn.btn-success{"data-target" => "#publishModal", "data-toggle" => "modal", :type => "button", style:'float: right; margin-top: 10px', id: 'publish-procedure'} %a.btn.btn-success{ "data-target" => "#publishModal", "data-toggle" => "modal", :type => "button", style: 'float: right; margin-top: 10px;', id: 'publish-procedure' }
%i.fa.fa-eraser %i.fa.fa-eraser
Publier Publier
=render partial: '/admin/procedures/modal_publish' = render partial: '/admin/procedures/modal_publish'
%a#transfer.btn.btn-small.btn-default{"data-target" => "#transferModal", "data-toggle" => "modal", :type => "button", style:'float: right; margin-top: 10px; margin-right: 10px'} %a#transfer.btn.btn-small.btn-default{ "data-target" => "#transferModal", "data-toggle" => "modal", :type => "button", style: 'float: right; margin-top: 10px; margin-right: 10px;' }
%i.fa.fa-exchange %i.fa.fa-exchange
Transférer Transférer
=render partial: '/admin/procedures/modal_transfer' = render partial: '/admin/procedures/modal_transfer'
- if @facade.procedure.archived? - if @facade.procedure.archived?
%a#reenable.btn.btn-small.btn-default.text-info{"data-target" => "#publishModal", "data-toggle" => "modal", :type => "button", style:'float: right; margin-top: 10px'} %a#reenable.btn.btn-small.btn-default.text-info{ "data-target" => "#publishModal", "data-toggle" => "modal", :type => "button", style: 'float: right; margin-top: 10px;' }
%i.fa.fa-eraser %i.fa.fa-eraser
Réactiver Réactiver
= render partial: '/admin/procedures/modal_publish' = render partial: '/admin/procedures/modal_publish'
- elsif @facade.procedure.published? - elsif @facade.procedure.published?
= form_tag admin_procedure_archive_path(procedure_id: @facade.procedure.id, archive: !@facade.procedure.archived?), method: :put, style:'float: right; margin-top: 10px' do = form_tag admin_procedure_archive_path(procedure_id: @facade.procedure.id, archive: !@facade.procedure.archived?), method: :put, style: 'float: right; margin-top: 10px;' do
%button#archive.btn.btn-small.btn-default.text-info{type: :button} %button#archive.btn.btn-small.btn-default.text-info{ type: :button }
%i.fa.fa-eraser %i.fa.fa-eraser
= 'Archiver' Archiver
#confirm #confirm
%button#valid.btn.btn-small.btn-success{type: :submit} %button#valid.btn.btn-small.btn-success{ type: :submit }
%i.fa.fa-check %i.fa.fa-check
Valider Valider
%button#cancel.btn.btn-small.btn-danger{type: :button} %button#cancel.btn.btn-small.btn-danger{ type: :button }
%i.fa.fa-remove %i.fa.fa-remove
Annuler Annuler
@ -45,7 +45,7 @@
%div %div
%h3 Lien procédure %h3 Lien procédure
%div{style:'margin-left:3%'} %div{ style: 'margin-left: 3%;' }
- if @facade.procedure.published? - if @facade.procedure.published?
= link_to @facade.procedure.lien, @facade.procedure.lien, target: '_blank' = link_to @facade.procedure.lien, @facade.procedure.lien, target: '_blank'
- else - else
@ -55,7 +55,7 @@
%br %br
%h3 Détails %h3 Détails
.row{style:'margin-right:3%; margin-left:3%;'} .row{ style: 'margin-right: 3%; margin-left: 3%;' }
.description.col-xs-6.col-md-3.procedure-description .description.col-xs-6.col-md-3.procedure-description
%h4.text-info %h4.text-info
= @facade.procedure.libelle = @facade.procedure.libelle
@ -90,10 +90,10 @@
%br %br
%br %br
%h3 %h3
=t('dynamics.admin.procedure.stats.title') = t('dynamics.admin.procedure.stats.title')
.row .row
.col-xs-6{style:'margin-left:3%'} .col-xs-6{ style: 'margin-left: 3%;' }
%h4 Total %h4 Total
%div %div
= @facade.dossiers_total = @facade.dossiers_total
@ -129,4 +129,4 @@
- if @facade.dossiers_for_pie_highchart.blank? - if @facade.dossiers_for_pie_highchart.blank?
Aucune statistique pour le moment Aucune statistique pour le moment
- else - else
=pie_chart @facade.dossiers_for_pie_highchart = pie_chart @facade.dossiers_for_pie_highchart

View file

@ -14,7 +14,7 @@
%h4 Description %h4 Description
= ff.text_area :description, class: 'form-control description', placeholder: 'Description', rows: 3 = ff.text_area :description, class: 'form-control description', placeholder: 'Description', rows: 3
.form-group.drop_down_list{ class: (%w(drop_down_list multiple_drop_down_list).include?(type_champ) ? 'show_inline' : nil), style: 'margin-right: 5px' } .form-group.drop_down_list{ class: (%w(drop_down_list multiple_drop_down_list).include?(type_champ) ? 'show_inline' : nil), style: 'margin-right: 5px;' }
%h4 Liste déroulante %h4 Liste déroulante
= ff.fields_for :drop_down_list_attributes, ff.object.object.drop_down_list do |fff| = ff.fields_for :drop_down_list_attributes, ff.object.object.drop_down_list do |fff|
~ fff.text_area :value, class: 'form-control drop_down_list', placeholder: "Ecrire une valeur par ligne et --valeur-- pour un séparateur.", rows: 3, cols: 30 ~ fff.text_area :value, class: 'form-control drop_down_list', placeholder: "Ecrire une valeur par ligne et --valeur-- pour un séparateur.", rows: 3, cols: 30

View file

@ -1,4 +1,4 @@
= form_for [:admin, @procedure], url: @types_de_champ_facade.url , remote: true do |f| = form_for [:admin, @procedure], url: @types_de_champ_facade.url, remote: true do |f|
= render partial: 'admin/types_de_champ/fields', locals: { types_de_champ: @types_de_champ_facade.types_de_champ, f: f } = render partial: 'admin/types_de_champ/fields', locals: { types_de_champ: @types_de_champ_facade.types_de_champ, f: f }
= f.submit "Enregistrer", class: 'btn btn-success', id: :save = f.submit "Enregistrer", class: 'btn btn-success', id: :save
%hr %hr

View file

@ -3,12 +3,12 @@
= image_tag(image_url(LOGO_NAME)) = image_tag(image_url(LOGO_NAME))
%br %br
%h2#login_admin %h2#login_admin
=t('dynamics.admin.connexion_title') = t('dynamics.admin.connexion_title')
%br %br
%br %br
#new_user #new_user
= form_for @administrateur, url: {controller: 'administrateurs/sessions', action: :create } do |f| = form_for @administrateur, url: { controller: 'administrateurs/sessions', action: :create } do |f|
%h4 %h4
= f.label :email = f.label :email
.input-group .input-group
@ -25,5 +25,5 @@
%br %br
%br %br
.actions .actions
= f.submit "Se connecter", class:'btn btn-primary' = f.submit "Se connecter", class: 'btn btn-primary'
%br %br

View file

@ -1,19 +1,16 @@
.container .container
.mt-1 .mt-1
= form_for @admin, url: {controller: 'administrations', action: :create} do |f| = form_for @admin, url: { controller: 'administrations', action: :create } do |f|
.form-group.form-inline.text-center .form-group.form-inline.text-center
= f.text_field :email, placeholder: :email, class: 'form-control' = f.text_field :email, placeholder: :email, class: 'form-control'
= f.text_field :password, placeholder: :password, class: 'form-control' = f.text_field :password, placeholder: :password, class: 'form-control'
= f.submit 'Créer un administrateur', class: 'btn btn-success', id: 'submit_new_administrateur' = f.submit 'Créer un administrateur', class: 'btn btn-success', id: 'submit_new_administrateur'
.text-center
=link_to 'Stats', administrations_stats_path, style: 'margin-bottom: 50px; display: block', 'data-no-turbolink': true
= smart_listing_render :admins = smart_listing_render :admins
%br %br
%br %br
.text-center .text-center
=link_to 'Deconnexion', '/administrations/sign_out', method: :delete = link_to 'Deconnexion', '/administrations/sign_out', method: :delete

View file

@ -1,11 +0,0 @@
= javascript_include_tag 'https://code.highcharts.com/highcharts.js', 'chartkick'
.container
.stats
.stat-card
%h1 Procédures créées
= line_chart @procedures
.stat-card
%h1 Dossiers créés
= line_chart @dossiers

View file

@ -1,10 +1,10 @@
%div.filter_framed.panel.panel-primary{id: "#{filter_framed_id}", style:'width: 300px; height: 100px; position: absolute; top: 0; left: 0; display: none'} .filter_framed.panel.panel-primary{ id: "#{filter_framed_id}", style: 'width: 300px; height: 100px; position: absolute; top: 0; left: 0; display: none;' }
.panel-heading .panel-heading
= preference.libelle = preference.libelle
=form_tag @facade_data_view.filter_url, {class: 'panel-body form-inline', method: :post} do = form_tag @facade_data_view.filter_url, { class: 'panel-body form-inline', method: :post } do
%input.form-control.filter_input{name: "filter_input[#{preference.table_attr}]", style:'width: 69%', value: "#{preference.filter}"} %input.form-control.filter_input{ name: "filter_input[#{preference.table_attr}]", style: 'width: 69%;', value: "#{preference.filter}" }
%button.btn.btn-sm.btn-success %button.btn.btn-sm.btn-success
%i.fa.fa-check %i.fa.fa-check
%div.btn.btn-sm.btn-danger.erase-filter .btn.btn-sm.btn-danger.erase-filter
%i.fa.fa-remove %i.fa.fa-remove

View file

@ -1,5 +1,5 @@
%h3 %h3
=t('dynamics.dossiers.followers.title') = t('dynamics.dossiers.followers.title')
%br %br
.row .row

View file

@ -8,21 +8,21 @@
- @facade_data_view.preference_list_dossiers_filter.each do |preference| - @facade_data_view.preference_list_dossiers_filter.each do |preference|
- unless preference.libelle == 'Statut' || preference.libelle == 'État' - unless preference.libelle == 'Statut' || preference.libelle == 'État'
%th{class: "col-md-#{preference.bootstrap_lg} col-lg-#{preference.bootstrap_lg}"} %th{ class: "col-md-#{preference.bootstrap_lg} col-lg-#{preference.bootstrap_lg}" }
- if preference.table.to_s.include? 'champs' - if preference.table.to_s.include? 'champs'
= preference.libelle = preference.libelle
-else - else
= smart_listing.sortable preference.libelle, preference.table_attr = smart_listing.sortable preference.libelle, preference.table_attr
- if @facade_data_view.active_filter? preference - if @facade_data_view.active_filter? preference
%i.filter.fa.fa-filter{style: "color:#{(preference.filter.blank? ? 'grey' : 'orange')}", id: "filter_#{smart_listing.name.to_s}_#{preference.table_attr.sub('.', '_')}"} %i.filter.fa.fa-filter{ style: "color: #{(preference.filter.blank? ? 'grey' : 'orange')}", id: "filter_#{smart_listing.name.to_s}_#{preference.table_attr.sub('.', '_')}" }
= render partial: 'backoffice/dossiers/filter_framed', locals:{preference: preference, filter_framed_id: "framed_filter_#{smart_listing.name.to_s}_#{preference.table_attr.sub('.', '_')}"} = render partial: 'backoffice/dossiers/filter_framed', locals: { preference: preference, filter_framed_id: "framed_filter_#{smart_listing.name.to_s}_#{preference.table_attr.sub('.', '_')}" }
%th.col-xs-1.center Actions %th.col-xs-1.center Actions
%th.col-xs-1.center Abonnés %th.col-xs-1.center Abonnés
- unless smart_listing.empty? - unless smart_listing.empty?
- smart_listing.collection.each do |dossier| - smart_listing.collection.each do |dossier|
%tr.dossier-row{id: "tr_dossier_#{dossier.id}", 'data-dossier_url' => backoffice_dossier_url(id: dossier.id)} %tr.dossier-row{ id: "tr_dossier_#{dossier.id}", 'data-dossier_url' => backoffice_dossier_url(id: dossier.id) }
- if smart_listing.name.to_s == 'follow_dossiers' - if smart_listing.name.to_s == 'follow_dossiers'
%td.col-xs-1.center %td.col-xs-1.center
- total_notif = dossier.notifications.where(already_read: false).count - total_notif = dossier.notifications.where(already_read: false).count
@ -54,9 +54,9 @@
%td.center %td.center
- if current_gestionnaire.follow?(dossier.id) - if current_gestionnaire.follow?(dossier.id)
= link_to('Quitter'.html_safe, backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-danger', id: "suivre_dossier_#{dossier.id}") = link_to('Quitter'.html_safe, backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-danger', id: "suivre_dossier_#{dossier.id}")
-else - else
= link_to('Suivre', backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-primary', id: "suivre_dossier_#{dossier.id}") = link_to('Suivre', backoffice_dossier_follow_path(dossier_id: dossier.id), 'data-method' => :put, class: 'btn-sm btn-primary', id: "suivre_dossier_#{dossier.id}")
%td.center{style:"color: #{dossier.total_follow == 0 ? 'red' : ''}"} %td.center{ style: "color: #{dossier.total_follow == 0 ? 'red' : ''}" }
= dossier.total_follow = dossier.total_follow
= smart_listing.paginate = smart_listing.paginate

View file

@ -1,10 +1,10 @@
%button#pref_list_dossier_close_action.btn.btn-danger.btn-xs.fixed-right %button#pref_list_dossier_close_action.btn.btn-danger.btn-xs.fixed-right
%i.fa.fa-close %i.fa.fa-close
%h3 %h3
=t('dynamics.backoffice.pref_list.title') = t('dynamics.backoffice.pref_list.title')
%p{style:'margin-top: 15px; margin-bottom: 20px'} %p{ style: 'margin-top: 15px; margin-bottom: 20px;' }
=t('dynamics.backoffice.pref_list.description') = t('dynamics.backoffice.pref_list.description')
%h4.text-primary %h4.text-primary
Actuelles Actuelles
@ -16,10 +16,10 @@
= hidden_field_tag :pref_id, preference.id = hidden_field_tag :pref_id, preference.id
= hidden_field_tag :procedure_id, preference.procedure_id = hidden_field_tag :procedure_id, preference.procedure_id
= preference.libelle = preference.libelle
%button.btn.btn-default.btn-xs{type: :submit, id: "delete_pref_list_#{preference[:table]}_#{preference[:attr]}"} %button.btn.btn-default.btn-xs{ type: :submit, id: "delete_pref_list_#{preference[:table]}_#{preference[:attr]}" }
%i.fa.fa-minus %i.fa.fa-minus
%h4.text-success{style:'margin-top: 15px'} %h4.text-success{ style: 'margin-top: 15px;' }
Disponibles Disponibles
%table %table
@ -27,7 +27,7 @@
- if index%2 == 0 || tables.first.to_s.include?('champs') - if index%2 == 0 || tables.first.to_s.include?('champs')
%tr %tr
%td.col-xs-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 %h5= tables.first.to_s.gsub('_', ' ').capitalize
%ul %ul
- if tables.second - if tables.second
@ -42,5 +42,5 @@
= hidden_field_tag :procedure_id, @facade_data_view.procedure_id = hidden_field_tag :procedure_id, @facade_data_view.procedure_id
= columns.second[:libelle] = columns.second[:libelle]
%button.btn.btn-default.btn-xs{type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}"} %button.btn.btn-default.btn-xs{ type: :submit, id: "add_pref_list_#{columns.second[:table]}_#{columns.second[:attr]}" }
%i.fa.fa-plus %i.fa.fa-plus

View file

@ -1,21 +1,21 @@
#state_description.row{style:'width: 50%; margin-left: auto; margin-right: auto'} #state_description.row{ style: 'width: 50%; margin-left: auto; margin-right: auto;' }
.panel.panel-info .panel.panel-info
.panel-body.center .panel-body.center
.row .row
.col-md-1.col-lg-1.col-sm-1.col-xs-1.col-sm-1.col-xs-1 .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%'} .fa.fa-info-circle.text-info{ style: 'font-size: 2em; margin-top: 20%;' }
.col-xs-11 .col-xs-11
-if dossiers_list_facade.liste == 'nouveaux' - if dossiers_list_facade.liste == 'nouveaux'
Tous les dossiers présents dans cette liste sont ceux qui Tous les dossiers présents dans cette liste sont ceux qui
%b %b
n'ont jamais été ouvert par votre service. n'ont jamais été ouvert par votre service.
Il attende une première lecture et intervention de votre part. Il attende une première lecture et intervention de votre part.
-elsif dossiers_list_facade.liste == 'a_traiter' - elsif dossiers_list_facade.liste == 'a_traiter'
Tous les dossiers présents dans cette liste sont ceux qui sont Tous les dossiers présents dans cette liste sont ceux qui sont
%b %b
en cours de construction avec l'usager. en cours de construction avec l'usager.
Ils ne sont pas figés et ne sont donc pas complets. Ils ne sont pas figés et ne sont donc pas complets.
-elsif dossiers_list_facade.liste == 'fige' - elsif dossiers_list_facade.liste == 'fige'
Tous les dossiers présents dans cette liste ont été déclarés Tous les dossiers présents dans cette liste ont été déclarés
%b %b
complets complets
@ -23,14 +23,14 @@
%b %b
plus modifiables par l'usager. plus modifiables par l'usager.
Ils attendent donc leurs dépots officiels qui doit être effectué par l'usager. Ils attendent donc leurs dépots officiels qui doit être effectué par l'usager.
-elsif dossiers_list_facade.liste == 'deposes' - elsif dossiers_list_facade.liste == 'deposes'
Tous les dossiers présents dans cette liste ont été Tous les dossiers présents dans cette liste ont été
%b %b
officiellement déposé par l'usager pour examen. officiellement déposé par l'usager pour examen.
Il faut donc que vous confirmiez par "accusé de réception" la bonne réception de toutes les informations et documents demandés avant examen final. Il faut donc que vous confirmiez par "accusé de réception" la bonne réception de toutes les informations et documents demandés avant examen final.
-elsif dossiers_list_facade.liste == 'a_instruire' - elsif dossiers_list_facade.liste == 'a_instruire'
Tous les dossiers présents dans cette liste sont à instruire. Ceux sont tous les dossiers Tous les dossiers présents dans cette liste sont à instruire. Ceux sont tous les dossiers
%b %b
qui ont reçu bonne réception. qui ont reçu bonne réception.
-elsif dossiers_list_facade.liste == 'termine' - elsif dossiers_list_facade.liste == 'termine'
Tous les dossiers présents dans cette liste sont considérés comme cloturé car ils ont tous reçu un verdict final qui peut être "Validé", "Refusé" ou "Sans suite". Tous les dossiers présents dans cette liste sont considérés comme cloturé car ils ont tous reçu un verdict final qui peut être "Validé", "Refusé" ou "Sans suite".

View file

@ -16,13 +16,13 @@
.row.center .row.center
.col-xs-3 .col-xs-3
=link_to 'Tous les états', '?liste=all_state', class: 'text-info', style:"text-decoration: #{@facade_data_view.liste == 'all_state'? 'underline' : ''}" = link_to 'Tous les états', '?liste=all_state', class: 'text-info', style: "text-decoration: #{@facade_data_view.liste == 'all_state'? 'underline' : ''}"
.col-xs-3 .col-xs-3
=link_to 'En construction', '?liste=a_traiter', class: 'text-danger', style:"text-decoration: #{@facade_data_view.liste == 'a_traiter'? 'underline' : ''}" = link_to 'En construction', '?liste=a_traiter', class: 'text-danger', style: "text-decoration: #{@facade_data_view.liste == 'a_traiter'? 'underline' : ''}"
.col-xs-3 .col-xs-3
=link_to 'En instruction', '?liste=a_instruire', class: 'text-warning', style:"text-decoration: #{@facade_data_view.liste == 'a_instruire'? 'underline' : ''}" = link_to 'En instruction', '?liste=a_instruire', class: 'text-warning', style: "text-decoration: #{@facade_data_view.liste == 'a_instruire'? 'underline' : ''}"
.col-xs-3 .col-xs-3
=link_to 'Terminés', '?liste=termine', class: 'text-success', style:"text-decoration: #{@facade_data_view.liste == 'termine'? 'underline' : ''}" = link_to 'Terminés', '?liste=termine', class: 'text-success', style: "text-decoration: #{@facade_data_view.liste == 'termine'? 'underline' : ''}"
.default_data_block.default_visible .default_data_block.default_visible
.row.show-block#follow_dossiers .row.show-block#follow_dossiers

View file

@ -3,14 +3,14 @@
= render partial: 'backoffice/dossiers/pref_list' = render partial: 'backoffice/dossiers/pref_list'
.default_data_block.default_visible .default_data_block.default_visible
%div.row.show-block#new_dossiers .row.show-block#new_dossiers
%div.header .header
%div.col-lg-10.col-md-10.col-sm-10.col-xs-10.title .col-lg-10.col-md-10.col-sm-10.col-xs-10.title
%div.carret-right .carret-right
%div.carret-down .carret-down
Résultat de la recherche Résultat de la recherche
%div.col-lg-2.col-md-2.col-sm-2.col-xs-2.count .col-lg-2.col-md-2.col-sm-2.col-xs-2.count
=@dossiers.count = @dossiers.count
dossiers dossiers
%div.body .body
= smart_listing_render :search = smart_listing_render :search

View file

@ -41,14 +41,14 @@
%br %br
%h3#object_website %h3#object_website
Object du site internet Object du site internet
%a{:href => "https://tps.apientreprise.fr/"} %a{ :href => "https://tps.apientreprise.fr/" }
%strong tps.apientreprise.fr %strong tps.apientreprise.fr
%p %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 lexamen par plusieurs services des demandes formulées par les usagers auprès dun ou organismes publics. 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 lexamen par plusieurs services des demandes formulées par les usagers auprès dun ou organismes publics.
%br %br
%h3#acteurs %h3#acteurs
Acteurs de Acteurs de
%a{:href => "https://tps.apientreprise.fr/"} %a{ :href => "https://tps.apientreprise.fr/" }
TPS TPS
%p Les acteurs de TPS sont les suivants : %p Les acteurs de TPS sont les suivants :
%ul %ul
@ -64,7 +64,7 @@
%li N° de sécurité sociale, %li N° de sécurité sociale,
%li Infractions, condamnations, mesures de sécurité, %li Infractions, condamnations, mesures de sécurité,
%li %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. %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 %br
%h3#data_collects %h3#data_collects
Données collectées et responsabilité des organismes publics à linitiative de démarches en ligne avec TPS. Données collectées et responsabilité des organismes publics à linitiative de démarches en ligne avec TPS.
@ -78,7 +78,7 @@
%h4 Données personnelles : %h4 Données personnelles :
%p %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 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 %a{ :href => "http://www.faire-simple.gouv.fr/contact" } Contact
%h4 Données de connexion : %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. %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.
@ -97,9 +97,9 @@
%br/ %br/
Tél. : 01 41 17 50 50 Tél. : 01 41 17 50 50
%p %p
%a{:href => "http://www.insee.fr/fr/bases-de-donnees/default.asp?page=sirene.htm"} Informations de la base SIRENE %a{ :href => "http://www.insee.fr/fr/bases-de-donnees/default.asp?page=sirene.htm" } Informations de la base SIRENE
%br/ %br/
%a{:href => "http://www.sirene.fr/sirene/public/static/mentions-legales"} Condition légales dutilisation de service SIRENE %a{ :href => "http://www.sirene.fr/sirene/public/static/mentions-legales" } Condition légales dutilisation de service SIRENE
%br %br
%h4 INFOGREFFE : %h4 INFOGREFFE :
%p %p
@ -112,9 +112,9 @@
94300 VINCENNES 94300 VINCENNES
%p %p
Les informations transmises aux autorités publiques en charges de lexamen de dossiers de candidature sont définis par le service en ligne suivant proposé aux internautes : Les informations transmises aux autorités publiques en charges de lexamen 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 %a{ :href => "https://www.infogreffe.fr/societes/documents-officiels/demande-kbis.html" } https://www.infogreffe.fr/societes/documents-officiels/demande-kbis.html
%p %p
%a{:href => "https://www.infogreffe.fr/societes/cgu-cgv.html"} Conditions générales dutilisation des données dinfogreffe %a{ :href => "https://www.infogreffe.fr/societes/cgu-cgv.html" } Conditions générales dutilisation des données dinfogreffe
%br %br
%h4 TPS fait appel à dautres services opérés par le SGMAP afin de faciliter les démarches administratives : %h4 TPS fait appel à dautres services opérés par le SGMAP afin de faciliter les démarches administratives :
@ -122,18 +122,18 @@
%p %p
%strong> France CONNECT %strong> France CONNECT
\ : informations complémentaires : \ : informations complémentaires :
%a{:href => "https://franceconnect.gouv.fr/"} https://franceconnect.gouv.fr/ %a{ :href => "https://franceconnect.gouv.fr/" } https://franceconnect.gouv.fr/
%p %p
%strong La base dadresse nationale : %strong La base dadresse nationale :
%a{:href => "https://adresse.data.gouv.fr/"} https://adresse.data.gouv.fr/ %a{ :href => "https://adresse.data.gouv.fr/" } https://adresse.data.gouv.fr/
%p %p
%strong TPS est un service de lEtat Plateforme : %strong TPS est un service de lEtat Plateforme :
%a{:href => "http://etatplateforme.modernisation.gouv.fr/"} http://etatplateforme.modernisation.gouv.fr/ %a{ :href => "http://etatplateforme.modernisation.gouv.fr/" } http://etatplateforme.modernisation.gouv.fr/
%p %p
%strong Il met en œuvre les principes définis par le programme « Dites-le nous une fois » %strong Il met en œuvre les principes définis par le programme « Dites-le nous une fois »
%p %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 %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 %br
%h3#reproduction %h3#reproduction
Droit de reproduction : Droit de reproduction :
@ -143,7 +143,7 @@
%p Lautorisation de création de liens est valable pour tout support, à lexception de ceux diffusant des informations à caractère raciste, pornographique, xénophobe ou pouvant porter atteinte à la sensibilité du plus grand nombre. %p Lautorisation de création de liens est valable pour tout support, à lexception de ceux diffusant des informations à caractère raciste, pornographique, xénophobe ou pouvant porter atteinte à la sensibilité du plus grand nombre.
%p %p
La rubrique La rubrique
%a{:href => "http://www.faire-simple.gouv.fr/contact"} Contactez-nous %a{ :href => "http://www.faire-simple.gouv.fr/contact" } Contactez-nous
est à votre disposition pour nous faire part de vos remarques et suggestions. est à votre disposition pour nous faire part de vos remarques et suggestions.
%br %br
%h3#propriete_intellectuelle %h3#propriete_intellectuelle

View file

@ -1,8 +1,8 @@
%br %br
%div{style: 'text-align: center; max-width:500px; margin-left:auto; margin-right:auto; padding: 20px;'} %div{ style: 'text-align: center; max-width: 500px; margin-left: auto; margin-right: auto; padding: 20px;' }
= render partial: 'users/sessions/resume_procedure' = render partial: 'users/sessions/resume_procedure'
.center{style:'margin-top: -20px'} .center{ style: 'margin-top: -20px;' }
%h3 %h3
La campagne de création de nouveau dossier La campagne de création de nouveau dossier
%br %br
@ -11,5 +11,5 @@
%br %br
%p %p
Si vous avez déjà déposé un ou plusieurs dossiers : Si vous avez déjà déposé un ou plusieurs dossiers :
%a.btn.btn-lg.btn-info{href: new_user_session_path} %a.btn.btn-lg.btn-info{ href: new_user_session_path }
Accéder à mon espace en ligne. Accéder à mon espace en ligne.

View file

@ -1,7 +1,7 @@
- unless smart_listing.empty? - unless smart_listing.empty?
%table.table %table.table
%tr %tr
%th{colspan: 4} %th{ colspan: 4 }
%h4 Lien vers les procédures TPS %h4 Lien vers les procédures TPS
%tr %tr
%th= smart_listing.sortable 'ID', 'id' %th= smart_listing.sortable 'ID', 'id'

View file

@ -16,7 +16,7 @@
%tr %tr
%td= file.user.nil? ? 'Accompagnateur' : file.user.email %td= file.user.nil? ? 'Accompagnateur' : file.user.email
%td= file.created_at.localtime %td= file.created_at.localtime
%td= link_to file.original_filename, file.content_url, style:'color: green', target: '_blank' %td= link_to file.original_filename, file.content_url, style: 'color: green;', target: '_blank'
- else - else
%h4.text-primary %h4.text-primary
Pas de fichier dans le flux de commentaires. Pas de fichier dans le flux de commentaires.

View file

@ -2,66 +2,66 @@
- if @facade.procedure.individual_with_siret - if @facade.procedure.individual_with_siret
.default_data_block .default_data_block
%div.row.show-block.infos .row.show-block.infos
%div.header .header
%div.col-xs-8.title-no-expanse .col-xs-8.title-no-expanse
%div.carret-right .carret-right
INFORMATIONS DU DEMANDEUR INFORMATIONS DU DEMANDEUR
- if !@current_gestionnaire && ["draft", "updated", "replied", "initiated"].include?(@facade.dossier.state) - if !@current_gestionnaire && ["draft", "updated", "replied", "initiated"].include?(@facade.dossier.state)
%a#add_siret.action{href: users_dossier_add_siret_path(dossier_id: @facade.dossier.id)} %a#add_siret.action{ href: users_dossier_add_siret_path(dossier_id: @facade.dossier.id) }
%div.col-lg-4.col-md-4.col-sm-4.col-xs-4.action .col-lg-4.col-md-4.col-sm-4.col-xs-4.action
= "Renseigner un SIRET" Renseigner un SIRET
- unless @facade.entreprise.nil? - unless @facade.entreprise.nil?
.default_data_block .default_data_block
%div.row.show-block.infos#infos_entreprise .row.show-block.infos#infos_entreprise
%div.header .header
%div.col-xs-12.title .col-xs-12.title
%div.carret-right .carret-right
%div.carret-down .carret-down
INFORMATIONS DU DEMANDEUR INFORMATIONS DU DEMANDEUR
%div.body.display-block-on-print .body.display-block-on-print
= render partial: '/dossiers/infos_entreprise' = render partial: '/dossiers/infos_entreprise'
.default_data_block.default_visible .default_data_block.default_visible
%div.row.show-block.infos#infos_dossier .row.show-block.infos#infos_dossier
%div.header .header
%div.col-xs-10.title .col-xs-10.title
%div.carret-right .carret-right
%div.carret-down .carret-down
CONSTRUCTION DU DOSSIER CONSTRUCTION DU DOSSIER
= render partial: '/dossiers/edit_dossier' = render partial: '/dossiers/edit_dossier'
%div.body.display-block-on-print .body.display-block-on-print
= render partial: '/dossiers/infos_dossier' = render partial: '/dossiers/infos_dossier'
- if @facade.dossier.procedure.module_api_carto.use_api_carto - if @facade.dossier.procedure.module_api_carto.use_api_carto
.default_data_block.default_visible.no-page-break-inside .default_data_block.default_visible.no-page-break-inside
%div.row.show-block#carto .row.show-block#carto
%div.header .header
%div.col-xs-10.title .col-xs-10.title
%div.carret-right .carret-right
%div.carret-down .carret-down
CARTOGRAPHIE CARTOGRAPHIE
= render partial: '/dossiers/edit_carto' = render partial: '/dossiers/edit_carto'
%div.body.display-block-on-print .body.display-block-on-print
%input{id: 'json_latlngs', type: 'hidden', value: "#{@facade.dossier.json_latlngs}", name: 'json_latlngs'} %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: 'quartier_prioritaires', type: 'hidden', value: "#{@facade.dossier.quartier_prioritaires.to_json}" }
%input{id: 'cadastres', type: 'hidden', value: "#{@facade.dossier.cadastres.to_json}"} %input{ id: 'cadastres', type: 'hidden', value: "#{@facade.dossier.cadastres.to_json}" }
= render partial: '/users/carte/map', locals: {dossier: @facade.dossier} = render partial: '/users/carte/map', locals: { dossier: @facade.dossier }
= render partial: 'users/carte/init_carto', locals: {dossier: @facade.dossier} = render partial: 'users/carte/init_carto', locals: { dossier: @facade.dossier }
- if @current_gestionnaire && gestionnaire_signed_in? && @champs_private.count > 0 - if @current_gestionnaire && gestionnaire_signed_in? && @champs_private.count > 0
.default_data_block.default_visible .default_data_block.default_visible
%div.row.show-block#private-fields .row.show-block#private-fields
%div.header .header
%div.col-xs-10.title .col-xs-10.title
%div.carret-right .carret-right
%div.carret-down .carret-down
= "formulaire privé".upcase = "formulaire privé".upcase
%div.col-xs-2.count .col-xs-2.count
- private_fields_count = @champs_private.count - private_fields_count = @champs_private.count
= (private_fields_count == 1) ? "1 champ" : "#{private_fields_count} champs" = (private_fields_count == 1) ? "1 champ" : "#{private_fields_count} champs"
%div.body .body
= render partial: '/dossiers/infos_private_fields' = render partial: '/dossiers/infos_private_fields'

View file

@ -1,5 +1,5 @@
- unless @facade.dossier.read_only? - unless @facade.dossier.read_only?
- if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email)) - if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email))
%a#maj_carte.action{href: "/users/dossiers/#{@facade.dossier.id}/carte"} %a#maj_carte.action{ href: "/users/dossiers/#{@facade.dossier.id}/carte" }
%div.col-lg-2.col-md-2.col-sm-2.col-xs-2.action .col-lg-2.col-md-2.col-sm-2.col-xs-2.action
= 'éditer'.upcase = 'éditer'.upcase

View file

@ -1,5 +1,5 @@
- unless @facade.dossier.read_only? - unless @facade.dossier.read_only?
- if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email)) - if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email))
%a#maj_infos.action{href: "/users/dossiers/#{@facade.dossier.id}/description"} %a#maj_infos.action{ href: "/users/dossiers/#{@facade.dossier.id}/description" }
%div#edit-dossier.col-lg-2.col-md-2.col-sm-2.col-xs-2.action %div#edit-dossier.col-lg-2.col-md-2.col-sm-2.col-xs-2.action
= "éditer".upcase = "éditer".upcase

View file

@ -1,11 +1,11 @@
- unless @facade.dossier.read_only? - unless @facade.dossier.read_only?
- if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email)) - if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email))
- if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.size > 0 - if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.size > 0
%div.col-lg-4.col-md-4.col-sm-4.col-xs-4.action .col-lg-4.col-md-4.col-sm-4.col-xs-4.action
%a#maj_pj.action{"data-target" => "#UploadPJmodal", %a#maj_pj.action{ "data-target" => "#UploadPJmodal",
"data-toggle" => "modal", "data-toggle" => "modal",
:type => "button", :type => "button",
style: 'margin-bottom: 15px; margin-top: -30px'} style: 'margin-bottom: 15px; margin-top: -30px;' }
Modifier les documents Modifier les documents
%br %br
= render partial: 'users/recapitulatif/modal_upload_pj' = render partial: 'users/recapitulatif/modal_upload_pj'

View file

@ -1,11 +1,11 @@
.row .row
.col-xs-12 .col-xs-12
#map.mini{class: @facade.dossier.procedure.module_api_carto.classes} #map.mini{ class: @facade.dossier.procedure.module_api_carto.classes }
%input{id: 'json_latlngs', type:'hidden', value: "#{@facade.dossier.json_latlngs}"} %input{ id: 'json_latlngs', type: 'hidden', value: "#{@facade.dossier.json_latlngs}" }
%input{id: 'quartier_prioritaires', type:'hidden', value: "#{@facade.dossier.quartier_prioritaires.to_json}"} %input{ id: 'quartier_prioritaires', type: 'hidden', value: "#{@facade.dossier.quartier_prioritaires.to_json}" }
%input{id: 'cadastres', type:'hidden', value: "#{@facade.dossier.cadastres.to_json}"} %input{ id: 'cadastres', type: 'hidden', value: "#{@facade.dossier.cadastres.to_json}" }
%script{type: 'text/javascript'} %script{ type: 'text/javascript' }
= "var dossier_id =#{@facade.dossier.id}" = "var dossier_id =#{@facade.dossier.id}"
initCarto(); initCarto();

View file

@ -1,26 +1,26 @@
%div.row .row
.col-xs-12 .col-xs-12
- if @facade.procedure.for_individual? - if @facade.procedure.for_individual?
.row.title-row .row.title-row
%div.col-xs-4.split-hr .col-xs-4.split-hr
%div.col-xs-4.dossier-title= t('utils.depositaire').upcase .col-xs-4.dossier-title= t('utils.depositaire').upcase
%div.col-xs-4.split-hr .col-xs-4.split-hr
.row .row
%div.col-xs-6.depositaire-label Civilité .col-xs-6.depositaire-label Civilité
%div.col-xs-1.comments-off= "-" .col-xs-1.comments-off= "-"
%div.col-xs-5.depositaire-info= @facade.individual.gender .col-xs-5.depositaire-info= @facade.individual.gender
.row .row
%div.col-xs-6.depositaire-label Nom .col-xs-6.depositaire-label Nom
%div.col-xs-1.comments-off= "-" .col-xs-1.comments-off= "-"
%div.col-xs-5.depositaire-info= @facade.individual.nom .col-xs-5.depositaire-info= @facade.individual.nom
.row .row
%div.col-xs-6.depositaire-label Prénom .col-xs-6.depositaire-label Prénom
%div.col-xs-1.comments-off= "-" .col-xs-1.comments-off= "-"
%div.col-xs-5.despositaire-info= @facade.individual.prenom .col-xs-5.despositaire-info= @facade.individual.prenom
.row .row
%div.col-xs-6.depositaire-label Date de naissance .col-xs-6.depositaire-label Date de naissance
%div.col-xs-1.comments-off= "-" .col-xs-1.comments-off= "-"
%div.col-xs-5.depositaire-info= @facade.individual.birthdate .col-xs-5.depositaire-info= @facade.individual.birthdate
.row.margin-top-20 .row.margin-top-20
- unless @facade.champs.nil? - unless @facade.champs.nil?
@ -28,32 +28,39 @@
- next if champ.type_champ == 'explication' - next if champ.type_champ == 'explication'
- if champ.type_champ == 'header_section' - if champ.type_champ == 'header_section'
.row.title-row.margin-top-40 .row.title-row.margin-top-40
%div.col-xs-3.split-hr .col-xs-3.split-hr
%div.col-xs-6.dossier-title= champ.libelle.upcase .col-xs-6.dossier-title= champ.libelle.upcase
%div.col-xs-3.split-hr .col-xs-3.split-hr
- else - else
.row .row
%div.col-xs-6.depositaire-label= champ.libelle .col-xs-6.depositaire-label= champ.libelle
%div.col-md-1.col-lg-1.col-sm-1.col-xs-1.comments-off .col-xs-1.comments-off
= "-" = "-"
%div.col-xs-5.depositaire-info{ id: "champ-#{champ.id}-value" } .col-xs-5.depositaire-info{ id: "champ-#{champ.id}-value" }
- unless champ.decorate.value.blank? - unless champ.decorate.value.blank?
- if champ.type_champ == 'dossier_link'
- dossier = Dossier.find_by(id: champ.decorate.value)
- if dossier && gestionnaire_signed_in?
= link_to(dossier.procedure.libelle, backoffice_dossier_path(champ.decorate.value), target: '_blank')
- else
= dossier.nil? ? 'pas de dossier associé' : dossier.procedure.libelle
- else
= champ.decorate.value.html_safe = champ.decorate.value.html_safe
- if @facade.dossier.mandataire_social && gestionnaire_signed_in? - if @facade.dossier.mandataire_social && gestionnaire_signed_in?
.mandataire_social.text-success.center .mandataire_social.text-success.center
%br %br
="Il est probable que le soumissionnaire du dossier soit un des mandataire social de l'entreprise (" Il est probable que le soumissionnaire du dossier soit un des mandataire social de l'entreprise (
%b %b
="#{@facade.dossier.user.given_name} #{@facade.dossier.user.family_name}" = "#{@facade.dossier.user.given_name} #{@facade.dossier.user.family_name}"
=")" )
%div.row .row
- if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.count > 0 - if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.count > 0
.col-xs-12 .col-xs-12
.row.title-row .row.title-row
%div.col-xs-4.split-hr .col-xs-4.split-hr
%div.col-xs-4.dossier-title= t('utils.pieces').upcase .col-xs-4.dossier-title= t('utils.pieces').upcase
%div.col-xs-4.split-hr .col-xs-4.split-hr
.col-xs-12#pieces_justificatives.margin-bot-40 .col-xs-12#pieces_justificatives.margin-bot-40
.row .row
@ -65,39 +72,39 @@
.col-xs-5.despositaire-info .col-xs-5.despositaire-info
- if @facade.dossier.cerfa_available? - if @facade.dossier.cerfa_available?
%a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter %a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter
%span{style:'margin-left:12px'} %span{ style: 'margin-left: 12px;' }
\- \-
= link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#PJmodal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => 'cerfa' do = link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#PJmodal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => 'cerfa' do
%span.fa.fa-clock-o %span.fa.fa-clock-o
- else - else
= 'Pièce non fournie' Pièce non fournie
.row .row
.col-xs-12 .col-xs-12
- @facade.types_de_pieces_justificatives.each do |type_de_piece_justificative| - @facade.types_de_pieces_justificatives.each do |type_de_piece_justificative|
.row.piece-row .row.piece-row
.col-xs-12{ id: "piece_justificative_#{type_de_piece_justificative.id}" } .col-xs-12{ id: "piece_justificative_#{type_de_piece_justificative.id}" }
.row .row
%div.col-xs-6.depositaire-label= type_de_piece_justificative.libelle .col-xs-6.depositaire-label= type_de_piece_justificative.libelle
%div.col-xs-1.comments-off= "-" .col-xs-1.comments-off= "-"
%div.col-xs-5.despositaire-info .col-xs-5.despositaire-info
- if type_de_piece_justificative.api_entreprise - if type_de_piece_justificative.api_entreprise
%span.text-success Nous l'avons récupéré pour vous. %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? - elsif !(@pj = @facade.dossier.retrieve_last_piece_justificative_by_type(type_de_piece_justificative.id)).nil?
%a{ href: "#{@pj.content_url}", target: '_blank' } Consulter %a{ href: "#{@pj.content_url}", target: '_blank' } Consulter
%span{style:'margin-left:12px'} %span{ style: 'margin-left: 12px;' }
\- \-
- if @facade.dossier.pieces_justificatives.where(type_de_piece_justificative_id: type_de_piece_justificative.id).count > 1 - if @facade.dossier.pieces_justificatives.where(type_de_piece_justificative_id: type_de_piece_justificative.id).count > 1
= link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#PJmodal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}" do = link_to "", class: "historique", "data-toggle" => "modal", "data-target" => "#PJmodal", :type => "button", "data-modal_title" => 'formulaires', "data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}" do
%span.fa.fa-clock-o %span.fa.fa-clock-o
- else - else
= 'Pièce non fournie' Pièce non fournie
- unless @facade.dossier.read_only? - unless @facade.dossier.read_only?
- if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email)) - if user_signed_in? && (@facade.dossier.owner?(current_user.email) || @facade.dossier.invite_by_user?(current_user.email))
- if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.size > 0 - if @facade.procedure.cerfa_flag? || @facade.dossier.types_de_piece_justificative.size > 0
.row .row
.col-xs-4 .col-xs-4
%a#maj_pj.action{"data-target" => "#UploadPJmodal", "data-toggle" => "modal", :type => "button"} %a#maj_pj.action{ "data-target" => "#UploadPJmodal", "data-toggle" => "modal", :type => "button" }
.col-xs-4.action .col-xs-4.action
Modifier les documents Modifier les documents
%br %br
@ -105,12 +112,12 @@
.col-xs-4 .col-xs-4
- if gestionnaire_signed_in? - if gestionnaire_signed_in?
#PJmodal.modal.fade{"aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1"} #PJmodal.modal.fade{ "aria-labelledby" => "myModalLabel", :role => "dialog", :tabindex => "-1" }
.modal-dialog.modal-lg{:role => "document"} .modal-dialog.modal-lg{ :role => "document" }
.modal-content .modal-content
.modal-header .modal-header
%button.close{"aria-label" => "Close", "data-dismiss" => "modal", :type => "button"} %button.close{ "aria-label" => "Close", "data-dismiss" => "modal", :type => "button" }
%span{"aria-hidden" => "true"} × %span{ "aria-hidden" => "true" } ×
%h4#myModalLabel.modal-title %h4#myModalLabel.modal-title
Historique des Historique des
%span#PJmodal_title %span#PJmodal_title
@ -124,7 +131,7 @@
%th %th
Lien Lien
%thead.tr_content#cerfa %thead.tr_content#cerfa
-if @facade.procedure.cerfa_flag? - if @facade.procedure.cerfa_flag?
- if @facade.dossier.cerfa_available? - if @facade.dossier.cerfa_available?
- @facade.cerfas_ordered.each do |cerfa| - @facade.cerfas_ordered.each do |cerfa|
%tr %tr
@ -133,9 +140,9 @@
%td.col-md-6.col-sm-6.col-xs-6.col-lg-4 %td.col-md-6.col-sm-6.col-xs-6.col-lg-4
= cerfa.created_at = cerfa.created_at
%td.col-md-6.col-sm-6.col-xs-6.col-lg-4 %td.col-md-6.col-sm-6.col-xs-6.col-lg-4
=link_to 'Récupérer', cerfa.content_url, {target: :blank} = link_to 'Récupérer', cerfa.content_url, { target: :blank }
- @facade.dossier.types_de_piece_justificative.each do |type_de_piece_justificative| - @facade.dossier.types_de_piece_justificative.each do |type_de_piece_justificative|
%tbody.tr_content{id: "type_de_pj_#{type_de_piece_justificative.id}"} %tbody.tr_content{ id: "type_de_pj_#{type_de_piece_justificative.id}" }
- @facade.dossier.retrieve_all_piece_justificative_by_type(type_de_piece_justificative.id).each do |piece_justificative| - @facade.dossier.retrieve_all_piece_justificative_by_type(type_de_piece_justificative.id).each do |piece_justificative|
%tr %tr
%td.col-md-6.col-sm-6.col-xs-6.col-lg-4 %td.col-md-6.col-sm-6.col-xs-6.col-lg-4
@ -143,15 +150,15 @@
%td.col-md-6.col-sm-6.col-xs-6.col-lg-4 %td.col-md-6.col-sm-6.col-xs-6.col-lg-4
= piece_justificative.created_at = piece_justificative.created_at
%td.col-md-6.col-sm-6.col-xs-6.col-lg-4 %td.col-md-6.col-sm-6.col-xs-6.col-lg-4
=link_to 'Récupérer', piece_justificative.content_url, {target: :blank} = link_to 'Récupérer', piece_justificative.content_url, { target: :blank }
.modal-footer .modal-footer
#modalCommentairesDossierParChamp.modal.fade{"tabindex" => -1, "role" => "dialog"} #modalCommentairesDossierParChamp.modal.fade{ "tabindex" => -1, "role" => "dialog" }
.modal-dialog{"role" => "document"} .modal-dialog{ "role" => "document" }
.modal-content .modal-content
.modal-header .modal-header
%button.close{"data-dismiss" => "modal", "aria-label" => "Fermer"} %button.close{ "data-dismiss" => "modal", "aria-label" => "Fermer" }
%span{"aria-hidden" => true} %span{ "aria-hidden" => true }
&times; &times;
.modal-title .modal-title
Commentaires Commentaires
@ -159,5 +166,5 @@
%p %p
Chargement des commentaires en cours... Chargement des commentaires en cours...
.modal-footer .modal-footer
%button.btn.btn-primary{"data-dismiss" => "modal"} %button.btn.btn-primary{ "data-dismiss" => "modal" }
Fermer Fermer

View file

@ -2,51 +2,51 @@
%h4 %h4
= @facade.entreprise.raison_sociale_or_name = @facade.entreprise.raison_sociale_or_name
.row.split-row .row.split-row
%div.col-xs-12.split-hr .col-xs-12.split-hr
%div.row .row
.col-xs-12 .col-xs-12
.row .row
%div.col-xs-4.entreprise-label Siret : .col-xs-4.entreprise-label Siret :
%div.col-xs-8.entreprise-info= @facade.etablissement.siret .col-xs-8.entreprise-info= @facade.etablissement.siret
- if @facade.etablissement.siret != @facade.entreprise.siret_siege_social - if @facade.etablissement.siret != @facade.entreprise.siret_siege_social
.row .row
%div.col-xs-4.entreprise-label SIRET siège social : .col-xs-4.entreprise-label SIRET siège social :
%div.col-xs-8.entreprise-info= @facade.entreprise.siret_siege_social .col-xs-8.entreprise-info= @facade.entreprise.siret_siege_social
.row .row
%div.col-xs-4.entreprise-label Forme juridique : .col-xs-4.entreprise-label Forme juridique :
%div.col-xs-8.entreprise-info= @facade.entreprise.forme_juridique .col-xs-8.entreprise-info= @facade.entreprise.forme_juridique
.row .row
%div.col-xs-4.entreprise-label Libellé naf : .col-xs-4.entreprise-label Libellé naf :
%div.col-xs-8.entreprise-info= @facade.etablissement.libelle_naf .col-xs-8.entreprise-info= @facade.etablissement.libelle_naf
.row .row
%div.col-xs-4.entreprise-label Code naf : .col-xs-4.entreprise-label Code naf :
%div.col-xs-8.entreprise-info= @facade.etablissement.naf .col-xs-8.entreprise-info= @facade.etablissement.naf
.row .row
%div.col-xs-4.entreprise-label Date de création : .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" .col-xs-8.entreprise-info= Time.at(@facade.entreprise.date_creation).strftime "%d-%m-%Y"
.row .row
%div.col-xs-4.entreprise-label Effectif organisation : .col-xs-4.entreprise-label Effectif organisation :
%div.col-xs-8.entreprise-info= @facade.entreprise.effectif .col-xs-8.entreprise-info= @facade.entreprise.effectif
.row .row
%div.col-xs-4.entreprise-label Code effectif : .col-xs-4.entreprise-label Code effectif :
%div.col-xs-8.entreprise-info= @facade.entreprise.code_effectif_entreprise .col-xs-8.entreprise-info= @facade.entreprise.code_effectif_entreprise
.row .row
%div.col-xs-4.entreprise-label Numéro TVA intracommunautaire : .col-xs-4.entreprise-label Numéro TVA intracommunautaire :
%div.col-xs-8.entreprise-info= @facade.entreprise.numero_tva_intracommunautaire .col-xs-8.entreprise-info= @facade.entreprise.numero_tva_intracommunautaire
.row .row
%div.col-xs-4.entreprise-label Adresse : .col-xs-4.entreprise-label Adresse :
%div.col-xs-8.entreprise-info .col-xs-8.entreprise-info
- @facade.etablissement.adresse.split("\n").each do |line| - @facade.etablissement.adresse.split("\n").each do |line|
= line = line
.row .row
%div.col-xs-4.entreprise-label Capital social : .col-xs-4.entreprise-label Capital social :
%div.col-xs-8.entreprise-info= @facade.entreprise.pretty_capital_social .col-xs-8.entreprise-info= @facade.entreprise.pretty_capital_social
.row .row
%div.col-xs-4.entreprise-label Exercices : .col-xs-4.entreprise-label Exercices :
%div.col-xs-8.entreprise-info .col-xs-8.entreprise-info
- @facade.etablissement.exercices.each_with_index do |exercice, index| - @facade.etablissement.exercices.each_with_index do |exercice, index|
%strong %strong
= "#{exercice.dateFinExercice.year} : " = "#{exercice.dateFinExercice.year} : "
@ -54,6 +54,6 @@
%br %br
.row.split-row .row.split-row
%div.col-xs-12.split-hr .col-xs-12.split-hr
- unless @facade.entreprise.rna_information.nil? - unless @facade.entreprise.rna_information.nil?
= render partial: '/dossiers/infos_rna' = render partial: '/dossiers/infos_rna'

View file

@ -8,14 +8,14 @@
.col-xs-5 .col-xs-5
- if @facade.dossier.cerfa_available? - if @facade.dossier.cerfa_available?
%a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter %a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter
%span{style:'margin-left:12px'} %span{ style: 'margin-left: 12px;' }
\- \-
%a.btn.fa.fa-timer{style:'color: black; padding-top: 0', %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;',
"data-target" => "#PJmodal", "data-target" => "#PJmodal",
"data-toggle" => "modal", "data-toggle" => "modal",
:type => "button", :type => "button",
"data-modal_title" => 'formulaires', "data-modal_title" => 'formulaires',
"data-modal_index" => 'cerfa'} "data-modal_index" => 'cerfa' }
- else - else
= 'Pièce non fournie' = 'Pièce non fournie'
@ -30,20 +30,20 @@
- if type_de_piece_justificative.api_entreprise - if type_de_piece_justificative.api_entreprise
%span.text-success Nous l'avons récupéré pour vous. %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? - elsif !(@pj = @facade.dossier.retrieve_last_piece_justificative_by_type(type_de_piece_justificative.id)).nil?
-#- if user_signed_in? -# - if user_signed_in?
-# = 'Pièce fournie' -# = 'Pièce fournie'
-#- elsif gestionnaire_signed_in? -# - elsif gestionnaire_signed_in?
%a{ href: "#{@pj.content_url}", target: '_blank' } Consulter %a{ href: "#{@pj.content_url}", target: '_blank' } Consulter
%span{style:'margin-left:12px'} %span{ style: 'margin-left: 12px;' }
\- \-
%a.btn.fa.fa-timer{style:'color: black; padding-top: 0', %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;',
"data-target" => "#PJmodal", "data-target" => "#PJmodal",
"data-toggle" => "modal", "data-toggle" => "modal",
:type => "button", :type => "button",
"data-modal_title" => type_de_piece_justificative.libelle, "data-modal_title" => type_de_piece_justificative.libelle,
"data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}"} "data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}" }
- else - else
= 'Pièce non fournie' = 'Pièce non fournie'
-#- if gestionnaire_signed_in? -# - if gestionnaire_signed_in?
= render partial: '/dossiers/modal_historique' = render partial: '/dossiers/modal_historique'

View file

@ -1,6 +1,6 @@
.row{style: 'margin-top: -20px'} .row{ style: 'margin-top: -20px;' }
.col-xs-12 .col-xs-12
= form_for @facade.dossier, url: {controller: 'backoffice/private_formulaires', action: :update, dossier_id: @facade.dossier.id}, remote: true do = 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} = render partial: '/users/description/champs', locals: { private: true }
.row.center .row.center
= submit_tag :Enregistrer, {class: 'btn-action'} = submit_tag :Enregistrer, { class: 'btn-action' }

View file

@ -14,4 +14,4 @@
.col-xs-3 .col-xs-3
= form_tag invites_dossier_path(dossier_id: @facade.dossier.id), method: :post, class: 'form-inline' do = 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' = text_field_tag :email, '', class: 'form-control', placeholder: 'Envoyer une invitation'
= submit_tag 'Ajouter', class: 'btn btn-success', id: 'send-invitation', data: {confirm: "Envoyer l'invitation ?"} = submit_tag 'Ajouter', class: 'btn btn-success', id: 'send-invitation', data: { confirm: "Envoyer l'invitation ?" }

View file

@ -1,4 +1,4 @@
.default_data_block{style:'margin-top: 40px'} .default_data_block{ style: 'margin-top: 40px;' }
.row.show-block.clearfix#messages .row.show-block.clearfix#messages
.header .header
.col-xs-10.title .col-xs-10.title

View file

@ -1,22 +1,22 @@
#pieces_justificatives #pieces_justificatives
%table.table %table.table
- if @facade.procedure.cerfa_flag? - if @facade.procedure.cerfa_flag?
%tr{id: "piece_justificative_0"} %tr{ id: "piece_justificative_0" }
%th{class:'col-lg-6'} %th.col-lg-6
='Formulaire' Formulaire
%td.col-lg-6.col-md-6.col-sm-6.col-xs-6 %td.col-lg-6.col-md-6.col-sm-6.col-xs-6
- if @facade.dossier.cerfa_available? - if @facade.dossier.cerfa_available?
%a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter %a{ href: "#{@facade.dossier.cerfa.last.content_url}", target: '_blank' } Consulter
%span{style:'margin-left:12px'} %span{ style: 'margin-left: 12px;' }
\- \-
%a.btn.fa.fa-timer{style:'color: black; padding-top: 0', %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;',
"data-target" => "#PJmodal", "data-target" => "#PJmodal",
"data-toggle" => "modal", "data-toggle" => "modal",
:type => "button", :type => "button",
"data-modal_title" => 'formulaires', "data-modal_title" => 'formulaires',
"data-modal_index" => 'cerfa'} "data-modal_index" => 'cerfa' }
- else - else
= 'Pièce non fournie' Pièce non fournie
- @facade.dossier.types_de_piece_justificative.order('order_place ASC').each do |type_de_piece_justificative| - @facade.dossier.types_de_piece_justificative.order('order_place ASC').each do |type_de_piece_justificative|
%tr{ id: "piece_justificative_#{type_de_piece_justificative.id}" } %tr{ id: "piece_justificative_#{type_de_piece_justificative.id}" }
@ -26,20 +26,20 @@
- if type_de_piece_justificative.api_entreprise - if type_de_piece_justificative.api_entreprise
%span.text-success Nous l'avons récupéré pour vous. %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? - elsif !(@pj = @facade.dossier.retrieve_last_piece_justificative_by_type(type_de_piece_justificative.id)).nil?
-#- if user_signed_in? -# - if user_signed_in?
-# = 'Pièce fournie' -# = 'Pièce fournie'
-#- elsif gestionnaire_signed_in? -# - elsif gestionnaire_signed_in?
%a{ href: "#{@pj.content_url}", target: '_blank' } Consulter %a{ href: "#{@pj.content_url}", target: '_blank' } Consulter
%span{style:'margin-left:12px'} %span{ style: 'margin-left: 12px;' }
\- \-
%a.btn.fa.fa-timer{style:'color: black; padding-top: 0', %a.btn.fa.fa-timer{ style: 'color: black; padding-top: 0;',
"data-target" => "#PJmodal", "data-target" => "#PJmodal",
"data-toggle" => "modal", "data-toggle" => "modal",
:type => "button", :type => "button",
"data-modal_title" => type_de_piece_justificative.libelle, "data-modal_title" => type_de_piece_justificative.libelle,
"data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}"} "data-modal_index" => "type_de_pj_#{type_de_piece_justificative.id}" }
- else - else
= 'Pièce non fournie' = 'Pièce non fournie'
-#- if gestionnaire_signed_in? -# - if gestionnaire_signed_in?
=render partial: '/dossiers/modal_historique' = render partial: '/dossiers/modal_historique'

View file

@ -6,9 +6,9 @@
.row.etape.etape_2 .row.etape.etape_2
= render partial: '/dossiers/etapes/etape2' = render partial: '/dossiers/etapes/etape2'
-#- if @facade.procedure.module_api_carto.use_api_carto? -# - if @facade.procedure.module_api_carto.use_api_carto?
-# .row.etape.etape_3 -# .row.etape.etape_3
-# = render partial: '/dossiers/etapes/etape3' -# = render partial: '/dossiers/etapes/etape3'
-# -#
-#.row.etape.etape_4 -# .row.etape.etape_4
-# = render partial: '/dossiers/etapes/etape4' -# = render partial: '/dossiers/etapes/etape4'

View file

@ -1,4 +1,4 @@
%div.commentaire .commentaire
.comment-header .comment-header
= commentaire.header = commentaire.header
.content .content

View file

@ -1,11 +1,10 @@
= form_tag(url_for({ controller: 'commentaires', action: :create, dossier_id: dossier_facade.dossier.id, champ_id: dossier_facade.champ_id }), class: 'form-inline', method: 'POST', multipart: true) do = form_tag(url_for({ controller: 'commentaires', action: :create, dossier_id: dossier_facade.dossier.id, champ_id: dossier_facade.champ_id }), class: 'form-inline', method: 'POST', multipart: true) do
%textarea.form-control{id: 'texte_commentaire', class: 'wysihtml5', name: 'texte_commentaire', style: 'width: 100%; margin-bottom:2%', rows: '5', placeholder:"Commentaire"} %textarea.form-control.wysihtml5{ id: 'texte_commentaire', name: 'texte_commentaire', style: 'width: 100%; margin-bottom: 2%;', rows: '5', placeholder: "Commentaire" }
.row .row
.col-md-6 .col-md-6
%h4.text-primary{style: 'margin-top: 0px'} Ajouter un fichier %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' = file_field_tag "piece_justificative[content]", accept: PieceJustificative.accept_format, style: 'float: left; margin-left: 20px;'
.col-md-6.text-right .col-md-6.text-right
%input#save-message.form-control.btn.btn-danger{ type: 'submit', value: 'ENVOYER' } %input#save-message.form-control.btn.btn-danger{ type: 'submit', value: 'ENVOYER' }

View file

@ -1,13 +1,13 @@
.col-xs-3.center .col-xs-3.center
%h3 Ma procédure %h3 Ma procédure
#logos.center{class: (@facade.entreprise.nil? ? '' : 'mask')} #logos.center{ class: (@facade.entreprise.nil? ? '' : 'mask') }
- if @facade.procedure.euro_flag - if @facade.procedure.euro_flag
#euro_flag.flag #euro_flag.flag
=image_tag('drapeau_europe.png') = image_tag('drapeau_europe.png')
#logo_procedure.flag #logo_procedure.flag
=image_tag( @facade.procedure.decorate.logo_img ) = image_tag( @facade.procedure.decorate.logo_img )
.etape.etapes_informations.col-xs-9 .etape.etapes_informations.col-xs-9
.row .row
@ -15,10 +15,10 @@
%h2#titre_procedure.text-info %h2#titre_procedure.text-info
= @facade.procedure.libelle = @facade.procedure.libelle
%p#description_procedure{style:'width: 95%;', class: (@facade.entreprise.nil? ? '' : 'mask')} %p#description_procedure{ style: 'width: 95%;', class: (@facade.entreprise.nil? ? '' : 'mask') }
= h @facade.procedure.description.html_safe = h @facade.procedure.description.html_safe
- unless @facade.procedure.lien_site_web.blank? - unless @facade.procedure.lien_site_web.blank?
.center .center
%a{href: "#{@facade.procedure.lien_site_web.html_safe}", target: '_blank'} %a{ href: "#{@facade.procedure.lien_site_web.html_safe}", target: '_blank' }
En savoir plus ... En savoir plus ...

View file

@ -3,7 +3,7 @@
Mes informations Mes informations
%br %br
- unless @facade.entreprise.nil? - unless @facade.entreprise.nil?
.center{style:'margin-left: -5%'} .center{ style: 'margin-left: -5%;' }
Vous êtes authentifié avec le SIRET Vous êtes authentifié avec le SIRET
%h3.text-success %h3.text-success
@ -15,8 +15,8 @@
.etape.etapes_informations.col-xs-9 .etape.etapes_informations.col-xs-9
.row .row
- if @facade.entreprise.nil? - if @facade.entreprise.nil?
#new_siret{style:'margin-left: 20%; margin-top: 5%'} #new_siret{ style: 'margin-left: 20%; margin-top: 5%;' }
= form_for @facade.dossier, html: {class: 'form-inline'}, url: users_dossier_siret_informations_path(dossier_id: @facade.dossier.id), method: :post, remote: true do |f| = form_for @facade.dossier, html: { class: 'form-inline' }, url: users_dossier_siret_informations_path(dossier_id: @facade.dossier.id), method: :post, remote: true do |f|
.form-group.form-group-lg .form-group.form-group-lg
= f.text_field :siret, class: "form-control", placeholder: "Entrez votre Siret", value: @siret = f.text_field :siret, class: "form-control", placeholder: "Entrez votre Siret", value: @siret
= f.hidden_field :dossier_id, value: @facade.dossier.id = f.hidden_field :dossier_id, value: @facade.dossier.id
@ -26,15 +26,15 @@
#recap_info_entreprise #recap_info_entreprise
= render partial: '/dossiers/infos_entreprise' = render partial: '/dossiers/infos_entreprise'
%p#insee_infogreffe{style:'color:grey; float:right'} %p#insee_infogreffe{ style: 'color: grey; float: right;' }
%i %i
Informations récupérées auprès de l'INSEE et d'INFOGREFFE Informations récupérées auprès de l'INSEE et d'INFOGREFFE
%br %br
= form_for @facade.dossier, url: { controller: '/users/dossiers', action: :update } do |f| = form_for @facade.dossier, url: { controller: '/users/dossiers', action: :update } do |f|
= f.hidden_field :id = f.hidden_field :id
%label{ style:'font-weight:normal' } %label{ style: 'font-weight: normal;' }
= f.check_box :autorisation_donnees = f.check_box :autorisation_donnees
J'autorise les décideurs publics à vérifier les informations de mon organisation auprès des administrations concernées. Ces informations resteront strictement confidentielles. J'autorise les décideurs publics à vérifier les informations de mon organisation auprès des administrations concernées. Ces informations resteront strictement confidentielles.
%br %br
= f.submit 'Etape suivante', class: "btn btn btn-info", style: 'float:right', id: 'etape_suivante', disabled: :disabled = f.submit 'Etape suivante', class: "btn btn btn-info", style: 'float: right;', id: 'etape_suivante', disabled: :disabled

View file

@ -21,24 +21,24 @@
%label %label
%h4 %h4
Nom * Nom *
= ff.text_field :nom, {class: 'form-control'} = ff.text_field :nom, { class: 'form-control', required: true }
.form-group .form-group
%label %label
%h4 %h4
Prénom * Prénom *
= ff.text_field :prenom, {class: 'form-control'} = ff.text_field :prenom, { class: 'form-control', required: true }
.form-group .form-group
%label %label
%h4 %h4
Date de naissance * Date de naissance *
= ff.date_field :birthdate, {class: 'form-control', placeholder: 'jj/mm/aaaa'} = ff.date_field :birthdate, { class: 'form-control', placeholder: 'jj/mm/aaaa', required: true }
%p %p
%label{ style:'font-weight:normal' } %label{ style: 'font-weight: normal;' }
= f.check_box :autorisation_donnees = f.check_box :autorisation_donnees
= "&nbsp;".html_safe = "&nbsp;".html_safe
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. 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' = link_to 'en savoir plus', cgu_path, target: '_blank'
.row .row
.col-xs-5.col-xs-5 .col-xs-5.col-xs-5
.col-xs-2.col-xs-2 .col-xs-2.col-xs-2

View file

@ -1,9 +1,9 @@
%h2.text-info %h2.text-info
= image_tag('logo_FC_02_small.png', style: 'height: 55px') = image_tag('logo_FC_02_small.png', style: 'height: 55px;')
&nbsp;France Connect - Particulier &nbsp;France Connect - Particulier
%h3 Nouvelle connexion %h3 Nouvelle connexion
%h4.text-warning{style:'margin-left: 20px'} Email déjà utilisé %h4.text-warning{ style: 'margin-left: 20px;' } Email déjà utilisé
%br %br
%p %p
@ -13,11 +13,11 @@
%br %br
.center .center
#france_connect_particulier_email #france_connect_particulier_email
= form_for @user, url: {controller: 'france_connect/particulier', action: :check_email}, method: :post do |f| = form_for @user, url: { controller: 'france_connect/particulier', action: :check_email }, method: :post do |f|
.form-group.form-group-lg .form-group.form-group-lg
= f.text_field :email_france_connect, class: "form-control", readonly: 'readonly' = f.text_field :email_france_connect, class: "form-control", readonly: 'readonly'
%br %br
= f.password_field :password, class: "form-control", placeholder: "Entrez votre mot de passe" = f.password_field :password, class: "form-control", placeholder: "Entrez votre mot de passe"
= hidden_field_tag :fci_id, params[:fci_id] = hidden_field_tag :fci_id, params[:fci_id]
= hidden_field_tag :salt, params[:salt] = hidden_field_tag :salt, params[:salt]
= f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', id: 'valid_new_fcp' = f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top: 20px;', id: 'valid_new_fcp'

View file

@ -1,5 +1,5 @@
%h2.text-info %h2.text-info
= image_tag('logo_FC_02_small.png', style: 'height: 55px') = image_tag('logo_FC_02_small.png', style: 'height: 55px;')
&nbsp;France Connect - Particulier &nbsp;France Connect - Particulier
%h3 Nouvelle connexion %h3 Nouvelle connexion
@ -24,9 +24,9 @@
.center .center
#france_connect_particulier_email #france_connect_particulier_email
= form_for @user, url: {controller: 'france_connect/particulier', action: :check_email}, method: :post do |f| = form_for @user, url: { controller: 'france_connect/particulier', action: :check_email }, method: :post do |f|
.form-group.form-group-lg .form-group.form-group-lg
= f.text_field :email_france_connect, class: "form-control", placeholder: "Entrez votre email" = f.text_field :email_france_connect, class: "form-control", placeholder: "Entrez votre email"
= hidden_field_tag :fci_id, params[:fci_id] = hidden_field_tag :fci_id, params[:fci_id]
= hidden_field_tag :salt, params[:salt] = hidden_field_tag :salt, params[:salt]
= f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top:20px;', id: 'valid_new_fcp' = f.submit 'Terminer', class: %w(btn btn-lg btn-success), style: 'margin-top: 20px;', id: 'valid_new_fcp'

View file

@ -27,5 +27,5 @@
%br %br
%br %br
.actions .actions
= f.submit "Changer", class:'btn btn-primary' = f.submit "Changer", class: 'btn btn-primary'
%br %br

View file

@ -19,5 +19,5 @@
%br %br
%br %br
.actions .actions
= f.submit "Renvoyer", class:'btn btn-primary' = f.submit "Renvoyer", class: 'btn btn-primary'
%br %br

View file

@ -24,6 +24,6 @@
%br %br
%br %br
.actions .actions
= f.submit "Se connecter", class:'btn btn-primary' = f.submit "Se connecter", class: 'btn btn-primary'
%br %br
= render "gestionnaires/shared/links" = render "gestionnaires/shared/links"

View file

@ -1,4 +1,4 @@
%div.dropdown-menu#credentials .dropdown-menu#credentials
%div.description= t("utils.deconnexion") .description= t("utils.deconnexion")
= @current_gestionnaire.email if @current_gestionnaire = @current_gestionnaire.email if @current_gestionnaire
= @current_user.email if @current_user = @current_user.email if @current_user

View file

@ -1 +1 @@
= submit_tag 'Etape suivante', class: %w(btn btn btn-info), style: 'float:right', id: 'etape_suivante', data: { disable_with: 'Etape suivante', submit: true} = submit_tag 'Etape suivante', class: %w(btn btn btn-info), style: 'float: right;', id: 'etape_suivante', data: { disable_with: 'Etape suivante', submit: true }

View file

@ -1,10 +1,12 @@
%div#footer %div#footer
%p{class: "copyright col-md-push-#{12-main_container_size} col-md-#{main_container_size} col-lg-push-#{12-main_container_size} col-lg-#{main_container_size} text-muted small"} %p{ class: "copyright col-md-push-#{12-main_container_size} col-md-#{main_container_size} col-lg-push-#{12-main_container_size} col-lg-#{main_container_size} text-muted small" }
= link_to 'SGMAP', "http://etatplateforme.modernisation.gouv.fr" = link_to 'SGMAP', "http://etatplateforme.modernisation.gouv.fr"
= Time.now.year = Time.now.year
\- \-
= link_to 'Nouveautés', 'https://github.com/sgmap/tps/releases', target: '_blank' = link_to 'Nouveautés', 'https://github.com/sgmap/tps/releases', target: '_blank'
\- \-
= link_to 'Statistiques', stats_path
\-
= link_to 'CGU / Mentions légales', cgu_path = link_to 'CGU / Mentions légales', cgu_path
\- \-
= link_to 'Contact', "mailto:"+t('dynamics.contact_email') = link_to 'Contact', "mailto:"+t('dynamics.contact_email')

View file

@ -1,8 +1,8 @@
="<!--[if lt IE 10]>".html_safe = "<!--[if lt IE 10]>".html_safe
%div.center{style:'width: 100%; background-color: white; position: fixed; top:0; left:0; z-index: 100000'} .center{ style: 'width: 100%; background-color: white; position: fixed; top: 0; left: 0; z-index: 100000;' }
%h3.text-danger %h3.text-danger
%b %b
Votre version d'Internet Explorer est trop ancienne pour être utilisée sur le service TPS. Version minimum : Internet Explorer 10 Votre version d'Internet Explorer est trop ancienne pour être utilisée sur le service TPS. Version minimum : Internet Explorer 10
="<![endif]-->".html_safe = "<![endif]-->".html_safe

View file

@ -1,3 +1,3 @@
%div{style: 'float:right'} %div{ style: 'float: right;' }
%a.btn{href: "/users/dossiers/#{@dossier.id}/recapitulatif"} Retour %a.btn{ href: "/users/dossiers/#{@dossier.id}/recapitulatif" } Retour
= submit_tag 'Modification terminée', class: %w(btn btn btn-info), id: 'modification_terminee', data: { disable_with: 'Modification terminée', submit: true} = submit_tag 'Modification terminée', class: %w(btn btn btn-info), id: 'modification_terminee', data: { disable_with: 'Modification terminée', submit: true }

View file

@ -1,5 +1,5 @@
.col-xs-2 .col-xs-2
%a#title_navbar{href: '/'} %a#title_navbar{ href: '/' }
.row#home .row#home
.col-lg-6.no-padding .col-lg-6.no-padding
= image_tag('marianne_small.png', class: 'logo') = image_tag('marianne_small.png', class: 'logo')
@ -9,9 +9,9 @@
.col-xs-10.no-padding .col-xs-10.no-padding
#navbar-body #navbar-body
.row .row
-begin - begin
= render partial: @navbar_url = render partial: @navbar_url
-rescue - rescue
= render partial: 'layouts/navbars/navbar_default' = render partial: 'layouts/navbars/navbar_default'
= render partial: 'layouts/navbars/navbar_log_options' = render partial: 'layouts/navbars/navbar_log_options'

View file

@ -5,5 +5,5 @@
= BROWSER.value.version = BROWSER.value.version
\- \-
Attention, votre navigateur n'est pas recommandé pour la navigation sur ce site internet. Aucun support ne pourra vous être prodigué en cas de dysfonctionnement. Attention, votre navigateur n'est pas recommandé pour la navigation sur ce site internet. Aucun support ne pourra vous être prodigué en cas de dysfonctionnement.
%a{href: '/cgu/#navigateurs'} %a{ href: '/cgu/#navigateurs' }
Voir la liste des navigateurs compatibles. Voir la liste des navigateurs compatibles.

View file

@ -1,6 +1,6 @@
- if SwitchDeviseProfileService.new(warden).multiple_devise_profile_connect? - if SwitchDeviseProfileService.new(warden).multiple_devise_profile_connect?
#switch_menu.dropdown.dropup #switch_menu.dropdown.dropup
%button.btn.btn-default.dropdown-toggle{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false} %button.btn.btn-default.dropdown-toggle{ type: :button, 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false }
%i.fa.fa-toggle-on %i.fa.fa-toggle-on
%span.caret %span.caret
%ul.dropdown-menu.dropdown-menu-left %ul.dropdown-menu.dropdown-menu-left

View file

@ -1,10 +1,10 @@
%html %html
%head %head
%meta{:content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type"}/ %meta{ :content => "text/html; charset=UTF-8", "http-equiv" => "Content-Type" }/
%meta{ name: "turbolinks-cache-control", content: "no-cache" } %meta{ name: "turbolinks-cache-control", content: "no-cache" }
%title %title
=t('dynamics.page_title') = t('dynamics.page_title')
%meta{'http-equiv' => "X-UA-Compatible", :content => "IE=edge"} %meta{ 'http-equiv' => "X-UA-Compatible", :content => "IE=edge" }
= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true = stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true
= stylesheet_link_tag 'print', media: 'print', 'data-turbolinks-track' => true = stylesheet_link_tag 'print', media: 'print', 'data-turbolinks-track' => true
@ -14,14 +14,14 @@
= action_cable_meta_tag = action_cable_meta_tag
%body %body
= render partial: 'layouts/support_navigator_banner' = render partial: 'layouts/support_navigator_banner'
#beta{class:(Rails.env == 'production' ? '' : 'beta_staging')} #beta{ class: (Rails.env == 'production' ? '' : 'beta_staging') }
- if Rails.env == 'production' - if Rails.env == 'production'
Beta Beta
- else - else
Env Test Env Test
- if Rails.env == 'test' - if Rails.env == 'test'
%script{type: 'text/javascript'} %script{ type: 'text/javascript' }
(typeof jQuery !== 'undefined') && (jQuery.fx.off = true); (typeof jQuery !== 'undefined') && (jQuery.fx.off = true);
@ -29,12 +29,12 @@
%div#wrap %div#wrap
%div.row .row
%div#header.navbar %div#header.navbar
= render partial: "layouts/navbar" = render partial: "layouts/navbar"
%div.row.no-margin .row.no-margin
- if RenderPartialService.left_panel_exist? @left_pannel_url - if RenderPartialService.left_panel_exist? @left_pannel_url
%div.col-xs-2#left-panel .col-xs-2#left-panel
- if gestionnaire_signed_in? - if gestionnaire_signed_in?
#search-block #search-block
= render partial: 'layouts/left_panels/search_area' = render partial: 'layouts/left_panels/search_area'
@ -44,13 +44,13 @@
- else - else
- main_container_size = 12 - main_container_size = 12
=render partial: 'layouts/main_container', locals: {main_container_size: main_container_size} = render partial: 'layouts/main_container', locals: { main_container_size: main_container_size }
#mask_search #mask_search
%h1 %h1
%i.fa.fa-times{style:'position: fixed; top: 10; right: 30; color: white;'} %i.fa.fa-times{ style: 'position: fixed; top: 10; right: 30; color: white;' }
= render partial: 'layouts/switch_devise_profile_module' = render partial: 'layouts/switch_devise_profile_module'
= render partial: 'layouts/notifications_alert' = render partial: 'layouts/notifications_alert'
= render partial: 'layouts/footer', locals: {main_container_size: main_container_size} = render partial: 'layouts/footer', locals: { main_container_size: main_container_size }
= render partial: 'layouts/google_analytics' = render partial: 'layouts/google_analytics'

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Accompagnateurs'} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'Accompagnateurs' }

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'E-mails'} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'E-mails' }

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'E-mails'} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'E-mails' }

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Pieces'} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'Pieces' }

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Prévisualisation'} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'Prévisualisation' }

View file

@ -1 +1 @@
=render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index' = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index'

View file

@ -1 +1 @@
=render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index' = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_index'

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Description'} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'Description' }

View file

@ -1,5 +1,5 @@
%div#first-block %div#first-block
%div.en-cours .en-cours
%b %b
= dossier_count = current_administrateur.procedures.count = dossier_count = current_administrateur.procedures.count
= ("Procedures".pluralize(dossier_count)).upcase = ("Procedures".pluralize(dossier_count)).upcase
@ -7,27 +7,27 @@
%div#action-block %div#action-block
%div#menu-block %div#menu-block
%div.split-hr-left .split-hr-left
#procedure_list #procedure_list
%a{:href => "#{url_for :admin_procedures_draft}", id: "draft-procedures"} %a{ :href => "#{url_for :admin_procedures_draft}", id: "draft-procedures" }
%div.procedure_list_element{class: @draft_class} .procedure_list_element{ class: @draft_class }
= "Brouillons" Brouillons
.badge.progress-bar-default .badge.progress-bar-default
= current_administrateur.procedures.where(published: false, archived: false).count = current_administrateur.procedures.where(published: false, archived: false).count
%a{:href => "#{url_for :admin_procedures}", id: "active-procedures"} %a{ :href => "#{url_for :admin_procedures}", id: "active-procedures" }
%div.procedure_list_element{class: @active_class} .procedure_list_element{ class: @active_class }
= "Actives" Actives
.badge.progress-bar-success .badge.progress-bar-success
= current_administrateur.procedures.where(published: true, archived: false).count = current_administrateur.procedures.where(published: true, archived: false).count
%a{:href => "#{url_for :admin_procedures_archived}", id: "archived-procedures"} %a{ :href => "#{url_for :admin_procedures_archived}", id: "archived-procedures" }
%div.procedure_list_element{class: @archived_class} .procedure_list_element{ class: @archived_class }
="Archivées" Archivées
.badge.progress-bar-purple .badge.progress-bar-purple
= current_administrateur.procedures.where(archived: true).count = current_administrateur.procedures.where(archived: true).count
%div.split-hr-left .split-hr-left
%div#infos-block %div#infos-block

View file

@ -1,51 +1,51 @@
%div#first-block %div#first-block
%div.en-cours .en-cours
-unless @procedure.logo.blank? - unless @procedure.logo.blank?
= image_tag @procedure.decorate.logo_img, style: 'width: 30px' = image_tag @procedure.decorate.logo_img, style: 'width: 30px;'
%b %b
=@procedure.libelle = @procedure.libelle
%div#action-block %div#action-block
%div#menu-block %div#menu-block
%div.split-hr-left .split-hr-left
#procedure_list #procedure_list
%a{:href => "#{url_for admin_procedure_path(@procedure)}", id: 'onglet-infos'} %a{ :href => "#{url_for admin_procedure_path(@procedure)}", id: 'onglet-infos' }
%div.procedure_list_element{class: ('active' if active == 'Informations')} .procedure_list_element{ class: ('active' if active == 'Informations') }
Informations Informations
%a{:href => "#{url_for admin_procedure_accompagnateurs_path(@procedure)}", id: 'onglet-accompagnateurs'} %a{ :href => "#{url_for admin_procedure_accompagnateurs_path(@procedure)}", id: 'onglet-accompagnateurs' }
%div.procedure_list_element{class: ('active' if active == 'Accompagnateurs')} .procedure_list_element{ class: ('active' if active == 'Accompagnateurs') }
=t('dynamics.admin.procedure.onglets.accompagnateurs') = t('dynamics.admin.procedure.onglets.accompagnateurs')
%a{:href => "#{url_for edit_admin_procedure_path(@procedure)}", id: 'onglet-description'} %a{ :href => "#{url_for edit_admin_procedure_path(@procedure)}", id: 'onglet-description' }
%div.procedure_list_element{class: ('active' if active == 'Description')} .procedure_list_element{ class: ('active' if active == 'Description') }
Description Description
- unless @procedure.locked? - unless @procedure.locked?
%a{:href => "#{url_for admin_procedure_types_de_champ_path(@procedure)}", id: 'onglet-champs'} %a{ :href => "#{url_for admin_procedure_types_de_champ_path(@procedure)}", id: 'onglet-champs' }
%div.procedure_list_element{class: ('active' if active == 'Champs')} .procedure_list_element{ class: ('active' if active == 'Champs') }
Champs Champs
- unless @procedure.locked? - unless @procedure.locked?
%a{:href => "#{url_for admin_procedure_pieces_justificatives_path(@procedure)}", id: 'onglet-pieces'} %a{ :href => "#{url_for admin_procedure_pieces_justificatives_path(@procedure)}", id: 'onglet-pieces' }
%div.procedure_list_element{class: ('active' if active == 'Pieces')} .procedure_list_element{ class: ('active' if active == 'Pieces') }
Pièces jointes Pièces jointes
- unless @procedure.locked? - unless @procedure.locked?
%a{:href => "#{url_for admin_procedure_types_de_champ_private_path(@procedure)}", id: 'onglet-private-champs'} %a{ :href => "#{url_for admin_procedure_types_de_champ_private_path(@procedure)}", id: 'onglet-private-champs' }
%div.procedure_list_element{class: ('active' if active == 'Champs privés')} .procedure_list_element{ class: ('active' if active == 'Champs privés') }
Champs privés Champs privés
%a{:href => "#{url_for admin_procedure_mail_templates_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')} .procedure_list_element{ class: ('active' if active == 'E-mails') }
E-mails E-mails
%a{:href => "#{url_for admin_procedure_previsualisation_path(@procedure)}", id: 'onglet-preview'} %a{ :href => "#{url_for admin_procedure_previsualisation_path(@procedure)}", id: 'onglet-preview' }
%div.procedure_list_element{class: ('active' if active == 'Prévisualisation')} .procedure_list_element{ class: ('active' if active == 'Prévisualisation') }
Prévisualisation Prévisualisation
%div.split-hr-left .split-hr-left
%div#infos-block %div#infos-block

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: 'Informations'} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: 'Informations' }

View file

@ -1 +1 @@
= render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: {active: @types_de_champ_facade.active} = render partial: 'layouts/left_panels/left_panel_admin_procedurescontroller_navbar', locals: { active: @types_de_champ_facade.active }

Some files were not shown because too many files have changed in this diff Show more