Merge branch 'dev'

This commit is contained in:
gregoirenovel 2018-01-29 11:35:21 +01:00
commit d4c06a5b3e
64 changed files with 472 additions and 297 deletions

View file

@ -68,7 +68,7 @@ jobs:
command: bundle exec rubocop command: bundle exec rubocop
- run: - run:
name: Run brakeman name: Run brakeman
command: bundle exec brakeman -z command: bundle exec brakeman
- run: - run:
name: Run haml-lint name: Run haml-lint
command: bundle exec haml-lint app/views/ command: bundle exec haml-lint app/views/

View file

@ -43,6 +43,10 @@ linters:
character: space # or tab character: space # or tab
width: 2 # ignored if character == tab width: 2 # ignored if character == tab
# TODO: enable once we got rid of the legacy UIs
InlineStyles:
enabled: false
InstanceVariables: InstanceVariables:
enabled: false enabled: false
file_types: partials file_types: partials
@ -117,3 +121,8 @@ linters:
# locally from time to time # locally from time to time
UnnecessaryStringOutput: UnnecessaryStringOutput:
enabled: false enabled: false
# Disabled because too agress ive, but to enable
# locally from time to time
ViewLength:
enabled: false

23
Gemfile
View file

@ -1,9 +1,9 @@
source 'https://rubygems.org' source 'https://rubygems.org'
gem 'rails', '5.0.0.1' gem 'rails'
# Use SCSS for stylesheets # Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0' gem 'sass-rails'
# Use Uglifier as compressor for JavaScript assets # Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0' gem 'uglifier', '>= 1.3.0'
@ -13,12 +13,12 @@ gem 'therubyracer', platforms: :ruby
# Use jquery as the JavaScript library # Use jquery as the JavaScript library
gem 'jquery-rails' gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks', '~> 5.0' gem 'turbolinks'
# bundle exec rake doc:rails generates the API under doc/api. # bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc gem 'sdoc', '~> 0.4.0', group: :doc
# Enable deep clone of active record models # Enable deep clone of active record models
gem 'deep_cloneable', '~> 2.2.1' gem 'deep_cloneable'
gem 'warden', git: 'https://github.com/hassox/warden.git', branch: 'master' gem 'warden', git: 'https://github.com/hassox/warden.git', branch: 'master'
@ -38,7 +38,7 @@ gem 'bootstrap-sass', '~> 3.3.5'
gem 'kaminari' gem 'kaminari'
# Decorators # Decorators
gem 'draper', '~> 3.0.0.pre1' gem 'draper'
gem 'unicode_utils' gem 'unicode_utils'
@ -76,7 +76,10 @@ gem 'hashie'
gem 'mailjet' gem 'mailjet'
gem 'smart_listing' # FIXME: this is a fork, go back to official version
# once https://github.com/Sology/smart_listing/pull/139
# has been merged and released
gem 'smart_listing', git: 'https://github.com/mizinsky/smart_listing.git', branch: 'kaminari-update'
gem 'bootstrap-wysihtml5-rails', '~> 0.3.3.8' gem 'bootstrap-wysihtml5-rails', '~> 0.3.3.8'
@ -107,8 +110,8 @@ gem "delayed_job_web"
gem 'select2-rails' gem 'select2-rails'
# PDF Generation # PDF Generation
gem 'prawn', '~> 2.0.1' gem 'prawn'
gem 'prawn_rails', '~> 0.0.11' gem 'prawn_rails'
gem 'chunky_png' gem 'chunky_png'
gem 'sentry-raven' gem 'sentry-raven'
@ -120,7 +123,7 @@ gem 'rack-mini-profiler'
group :test do group :test do
gem 'capybara' gem 'capybara'
gem 'launchy' gem 'launchy'
gem 'factory_girl' gem 'factory_bot'
gem 'database_cleaner' gem 'database_cleaner'
gem 'webmock' gem 'webmock'
gem 'shoulda-matchers', require: false gem 'shoulda-matchers', require: false
@ -153,7 +156,7 @@ group :development, :test do
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring # Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring' gem 'spring'
gem 'spring-commands-rspec' gem 'spring-commands-rspec'
gem 'rspec-rails', '~> 3.0' gem 'rspec-rails'
# Deploy # Deploy
gem 'mina', ref: '343a7', git: 'https://github.com/mina-deploy/mina.git' gem 'mina', ref: '343a7', git: 'https://github.com/mina-deploy/mina.git'

View file

@ -15,58 +15,69 @@ GIT
open4 (~> 1.3.4) open4 (~> 1.3.4)
rake rake
GIT
remote: https://github.com/mizinsky/smart_listing.git
revision: bcdd4f25954fc6f4faa3d6ea6ea9a69c65da678b
branch: kaminari-update
specs:
smart_listing (1.2.1)
coffee-rails
jquery-rails
kaminari (>= 0.17)
rails (>= 3.2)
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
specs: specs:
CFPropertyList (2.3.4) CFPropertyList (2.3.6)
actioncable (5.0.0.1) actioncable (5.0.6)
actionpack (= 5.0.0.1) actionpack (= 5.0.6)
nio4r (~> 1.2) nio4r (>= 1.2, < 3.0)
websocket-driver (~> 0.6.1) websocket-driver (~> 0.6.1)
actionmailer (5.0.0.1) actionmailer (5.0.6)
actionpack (= 5.0.0.1) actionpack (= 5.0.6)
actionview (= 5.0.0.1) actionview (= 5.0.6)
activejob (= 5.0.0.1) activejob (= 5.0.6)
mail (~> 2.5, >= 2.5.4) mail (~> 2.5, >= 2.5.4)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
actionpack (5.0.0.1) actionpack (5.0.6)
actionview (= 5.0.0.1) actionview (= 5.0.6)
activesupport (= 5.0.0.1) activesupport (= 5.0.6)
rack (~> 2.0) rack (~> 2.0)
rack-test (~> 0.6.3) rack-test (~> 0.6.3)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2) rails-html-sanitizer (~> 1.0, >= 1.0.2)
actionview (5.0.0.1) actionview (5.0.6)
activesupport (= 5.0.0.1) activesupport (= 5.0.6)
builder (~> 3.1) builder (~> 3.1)
erubis (~> 2.7.0) erubis (~> 2.7.0)
rails-dom-testing (~> 2.0) rails-dom-testing (~> 2.0)
rails-html-sanitizer (~> 1.0, >= 1.0.2) rails-html-sanitizer (~> 1.0, >= 1.0.3)
active_model_serializers (0.10.3) active_model_serializers (0.10.7)
actionpack (>= 4.1, < 6) actionpack (>= 4.1, < 6)
activemodel (>= 4.1, < 6) activemodel (>= 4.1, < 6)
jsonapi (= 0.1.1.beta2) case_transform (>= 0.2)
activejob (5.0.0.1) jsonapi-renderer (>= 0.1.1.beta1, < 0.3)
activesupport (= 5.0.0.1) activejob (5.0.6)
activesupport (= 5.0.6)
globalid (>= 0.3.6) globalid (>= 0.3.6)
activemodel (5.0.0.1) activemodel (5.0.6)
activesupport (= 5.0.0.1) activesupport (= 5.0.6)
activemodel-serializers-xml (1.0.1) activemodel-serializers-xml (1.0.2)
activemodel (> 5.x) activemodel (> 5.x)
activerecord (> 5.x)
activesupport (> 5.x) activesupport (> 5.x)
builder (~> 3.1) builder (~> 3.1)
activerecord (5.0.0.1) activerecord (5.0.6)
activemodel (= 5.0.0.1) activemodel (= 5.0.6)
activesupport (= 5.0.0.1) activesupport (= 5.0.6)
arel (~> 7.0) arel (~> 7.0)
activesupport (5.0.0.1) activesupport (5.0.6)
concurrent-ruby (~> 1.0, >= 1.0.2) concurrent-ruby (~> 1.0, >= 1.0.2)
i18n (~> 0.7) i18n (~> 0.7)
minitest (~> 5.1) minitest (~> 5.1)
tzinfo (~> 1.1) tzinfo (~> 1.1)
addressable (2.5.1) addressable (2.5.2)
public_suffix (~> 2.0, >= 2.0.2) public_suffix (>= 2.0.2, < 4.0)
administrate (0.4.0) administrate (0.4.0)
autoprefixer-rails (~> 6.0) autoprefixer-rails (~> 6.0)
bourbon (~> 4.2) bourbon (~> 4.2)
@ -79,19 +90,23 @@ GEM
rails (>= 4.2, < 5.1) rails (>= 4.2, < 5.1)
sass-rails (~> 5.0) sass-rails (~> 5.0)
selectize-rails (~> 0.6) selectize-rails (~> 0.6)
apipie-rails (0.3.7) apipie-rails (0.5.6)
json rails (>= 4.1)
arel (7.1.4) arel (7.1.4)
ast (2.3.0) ast (2.3.0)
attr_required (1.0.1) attr_required (1.0.1)
autoprefixer-rails (6.5.4) autoprefixer-rails (6.7.7.2)
execjs execjs
axlsx (2.0.1) axlsx (2.0.1)
htmlentities (~> 4.3.1) htmlentities (~> 4.3.1)
nokogiri (>= 1.4.1) nokogiri (>= 1.4.1)
rubyzip (~> 1.0.0) rubyzip (~> 1.0.0)
axlsx_styler (0.1.7)
activesupport (>= 3.1)
axlsx (~> 2.0)
bcrypt (3.1.11) bcrypt (3.1.11)
bindata (2.3.4) bindata (2.4.1)
bindex (0.5.0)
bootstrap-datepicker-rails (1.6.4.1) bootstrap-datepicker-rails (1.6.4.1)
railties (>= 3.0) railties (>= 3.0)
bootstrap-sass (3.3.7) bootstrap-sass (3.3.7)
@ -102,17 +117,17 @@ GEM
bourbon (4.3.4) bourbon (4.3.4)
sass (~> 3.4) sass (~> 3.4)
thor (~> 0.19) thor (~> 0.19)
brakeman (3.7.0) brakeman (4.1.1)
browser (2.3.0) browser (2.5.2)
builder (3.2.3) builder (3.2.3)
byebug (9.0.6) byebug (9.1.0)
capybara (2.13.0) capybara (2.17.0)
addressable addressable
mime-types (>= 1.16) mini_mime (>= 0.1.3)
nokogiri (>= 1.3.3) nokogiri (>= 1.3.3)
rack (>= 1.0.0) rack (>= 1.0.0)
rack-test (>= 0.5.4) rack-test (>= 0.5.4)
xpath (~> 2.0) xpath (>= 2.0, < 4.0)
capybara-selenium (0.0.6) capybara-selenium (0.0.6)
capybara capybara
selenium-webdriver selenium-webdriver
@ -123,15 +138,17 @@ GEM
mime-types (>= 1.16) mime-types (>= 1.16)
mimemagic (>= 0.3.0) mimemagic (>= 0.3.0)
carrierwave-i18n (0.2.0) carrierwave-i18n (0.2.0)
chartkick (2.2.1) case_transform (0.2)
activesupport
chartkick (2.2.5)
childprocess (0.8.0) childprocess (0.8.0)
ffi (~> 1.0, >= 1.0.11) ffi (~> 1.0, >= 1.0.11)
chunky_png (1.3.8) chunky_png (1.3.8)
clamav-client (3.1.0) clamav-client (3.1.0)
coderay (1.1.1) coderay (1.1.2)
coffee-rails (4.2.1) coffee-rails (4.2.2)
coffee-script (>= 2.2.0) coffee-script (>= 2.2.0)
railties (>= 4.0.0, < 5.2.x) railties (>= 4.0.0)
coffee-script (2.4.1) coffee-script (2.4.1)
coffee-script-source coffee-script-source
execjs execjs
@ -142,12 +159,11 @@ GEM
crack (0.4.3) crack (0.4.3)
safe_yaml (~> 1.0.0) safe_yaml (~> 1.0.0)
crass (1.0.3) crass (1.0.3)
daemons (1.2.4) daemons (1.2.6)
database_cleaner (1.5.3) database_cleaner (1.6.2)
datetime_picker_rails (0.0.7) datetime_picker_rails (0.0.7)
momentjs-rails (>= 2.8.1) momentjs-rails (>= 2.8.1)
debug_inspector (0.0.2) deep_cloneable (2.3.1)
deep_cloneable (2.2.2)
activerecord (>= 3.1.0, < 5.2.0) activerecord (>= 3.1.0, < 5.2.0)
delayed_cron_job (0.7.2) delayed_cron_job (0.7.2)
delayed_job (>= 4.1) delayed_job (>= 4.1)
@ -166,14 +182,14 @@ GEM
railties (>= 4.1.0, < 5.2) railties (>= 4.1.0, < 5.2)
responders responders
warden (~> 1.2.3) warden (~> 1.2.3)
diff-lcs (1.2.5) diff-lcs (1.3)
domain_name (0.5.20170404) domain_name (0.5.20170404)
unf (>= 0.0.5, < 1.0.0) unf (>= 0.0.5, < 1.0.0)
dotenv (2.2.0) dotenv (2.2.1)
dotenv-rails (2.2.0) dotenv-rails (2.2.1)
dotenv (= 2.2.0) dotenv (= 2.2.1)
railties (>= 3.2, < 5.1) railties (>= 3.2, < 5.2)
draper (3.0.0.pre1) draper (3.0.1)
actionpack (~> 5.0) actionpack (~> 5.0)
activemodel (~> 5.0) activemodel (~> 5.0)
activemodel-serializers-xml (~> 1.0) activemodel-serializers-xml (~> 1.0)
@ -186,23 +202,27 @@ GEM
eventmachine (1.2.1) eventmachine (1.2.1)
excon (0.60.0) excon (0.60.0)
execjs (2.7.0) execjs (2.7.0)
factory_girl (4.7.0) factory_bot (4.8.2)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
faraday (0.10.0) faraday (0.12.2)
multipart-post (>= 1.2, < 3) multipart-post (>= 1.2, < 3)
ffi (1.9.14) ffi (1.9.18)
fission (0.5.0) fission (0.5.0)
CFPropertyList (~> 2.2) CFPropertyList (~> 2.2)
fog (1.38.0) fog (1.41.0)
fog-aliyun (>= 0.1.0) fog-aliyun (>= 0.1.0)
fog-atmos fog-atmos
fog-aws (>= 0.6.0) fog-aws (>= 0.6.0)
fog-brightbox (~> 0.4) fog-brightbox (~> 0.4)
fog-cloudatcost (~> 0.1.0) fog-cloudatcost (~> 0.1.0)
fog-core (~> 1.32) fog-core (~> 1.45)
fog-digitalocean (>= 0.3.0)
fog-dnsimple (~> 1.0)
fog-dynect (~> 0.0.2) fog-dynect (~> 0.0.2)
fog-ecloud (~> 0.1) fog-ecloud (~> 0.1)
fog-google (<= 0.1.0) fog-google (<= 0.1.0)
fog-internet-archive
fog-joyent
fog-json fog-json
fog-local fog-local
fog-openstack fog-openstack
@ -222,7 +242,8 @@ GEM
fog-xenserver fog-xenserver
fog-xml (~> 0.1.1) fog-xml (~> 0.1.1)
ipaddress (~> 0.5) ipaddress (~> 0.5)
fog-aliyun (0.1.0) json (>= 1.8, < 2.0)
fog-aliyun (0.2.0)
fog-core (~> 1.27) fog-core (~> 1.27)
fog-json (~> 1.0) fog-json (~> 1.0)
ipaddress (~> 0.8) ipaddress (~> 0.8)
@ -230,12 +251,12 @@ GEM
fog-atmos (0.1.0) fog-atmos (0.1.0)
fog-core fog-core
fog-xml fog-xml
fog-aws (1.0.0) fog-aws (2.0.0)
fog-core (~> 1.38) fog-core (~> 1.38)
fog-json (~> 1.0) fog-json (~> 1.0)
fog-xml (~> 0.1) fog-xml (~> 0.1)
ipaddress (~> 0.8) ipaddress (~> 0.8)
fog-brightbox (0.11.0) fog-brightbox (0.14.0)
fog-core (~> 1.22) fog-core (~> 1.22)
fog-json fog-json
inflecto (~> 0.0.2) inflecto (~> 0.0.2)
@ -248,6 +269,14 @@ GEM
builder builder
excon (~> 0.58) excon (~> 0.58)
formatador (~> 0.2) formatador (~> 0.2)
fog-digitalocean (0.3.0)
fog-core (~> 1.42)
fog-json (>= 1.0)
fog-xml (>= 0.1)
ipaddress (>= 0.5)
fog-dnsimple (1.0.0)
fog-core (~> 1.38)
fog-json (~> 1.0)
fog-dynect (0.0.3) fog-dynect (0.0.3)
fog-core fog-core
fog-json fog-json
@ -259,23 +288,30 @@ GEM
fog-core fog-core
fog-json fog-json
fog-xml fog-xml
fog-internet-archive (0.0.1)
fog-core
fog-json
fog-xml
fog-joyent (0.0.1)
fog-core (~> 1.42)
fog-json (>= 1.0)
fog-json (1.0.2) fog-json (1.0.2)
fog-core (~> 1.0) fog-core (~> 1.0)
multi_json (~> 1.10) multi_json (~> 1.10)
fog-local (0.3.1) fog-local (0.4.0)
fog-core (~> 1.27) fog-core (~> 1.27)
fog-openstack (0.1.18) fog-openstack (0.1.23)
fog-core (>= 1.40) fog-core (~> 1.40)
fog-json (>= 1.0) fog-json (>= 1.0)
ipaddress (>= 0.8) ipaddress (>= 0.8)
fog-powerdns (0.1.1) fog-powerdns (0.1.1)
fog-core (~> 1.27) fog-core (~> 1.27)
fog-json (~> 1.0) fog-json (~> 1.0)
fog-xml (~> 0.1) fog-xml (~> 0.1)
fog-profitbricks (3.0.0) fog-profitbricks (4.1.1)
fog-core (~> 1.42) fog-core (~> 1.42)
fog-json (~> 1.0) fog-json (~> 1.0)
fog-rackspace (0.1.2) fog-rackspace (0.1.5)
fog-core (>= 1.35) fog-core (>= 1.35)
fog-json (>= 1.0) fog-json (>= 1.0)
fog-xml (>= 0.1) fog-xml (>= 0.1)
@ -309,24 +345,24 @@ GEM
fog-voxel (0.1.0) fog-voxel (0.1.0)
fog-core fog-core
fog-xml fog-xml
fog-vsphere (1.5.2) fog-vsphere (1.13.1)
fog-core fog-core
rbvmomi (~> 1.9) rbvmomi (~> 1.9)
fog-xenserver (0.2.3) fog-xenserver (0.3.0)
fog-core fog-core
fog-xml fog-xml
fog-xml (0.1.3) fog-xml (0.1.3)
fog-core fog-core
nokogiri (>= 1.5.11, < 2.0.0) nokogiri (>= 1.5.11, < 2.0.0)
font-awesome-rails (4.7.0.1) font-awesome-rails (4.7.0.3)
railties (>= 3.2, < 5.1) railties (>= 3.2, < 5.2)
formatador (0.2.5) formatador (0.2.5)
globalid (0.3.7) globalid (0.4.1)
activesupport (>= 4.1.0) activesupport (>= 4.2.0)
guard (2.14.0) guard (2.14.2)
formatador (>= 0.2.4) formatador (>= 0.2.4)
listen (>= 2.7, < 4.0) listen (>= 2.7, < 4.0)
lumberjack (~> 1.0) lumberjack (>= 1.0.12, < 2.0)
nenv (~> 0.1) nenv (~> 0.1)
notiffany (~> 0.0) notiffany (~> 0.0)
pry (>= 0.9.12) pry (>= 0.9.12)
@ -342,24 +378,25 @@ GEM
guard (~> 2.1) guard (~> 2.1)
guard-compat (~> 1.1) guard-compat (~> 1.1)
rspec (>= 2.99.0, < 4.0) rspec (>= 2.99.0, < 4.0)
haml (4.0.7) haml (5.0.4)
temple (>= 0.8.0)
tilt tilt
haml-lint (0.999.999) haml-lint (0.999.999)
haml_lint haml_lint
haml-rails (0.9.0) haml-rails (1.0.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, < 6.0)
html2haml (>= 1.0.1) html2haml (>= 1.0.1)
railties (>= 4.0.1) railties (>= 4.0.1)
haml_lint (0.24.0) haml_lint (0.27.0)
haml (>= 4.0, < 5.1) haml (>= 4.0, < 5.1)
rainbow rainbow
rake (>= 10, < 13) rake (>= 10, < 13)
rubocop (>= 0.47.0) rubocop (>= 0.50.0)
sysexits (~> 1.1) sysexits (~> 1.1)
hashdiff (0.3.1) hashdiff (0.3.7)
hashie (3.4.6) hashie (3.5.7)
html2haml (2.2.0) html2haml (2.2.0)
erubis (~> 2.7.0) erubis (~> 2.7.0)
haml (>= 4.0, < 6) haml (>= 4.0, < 6)
@ -374,24 +411,22 @@ GEM
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
inflecto (0.0.2) inflecto (0.0.2)
ipaddress (0.8.3) ipaddress (0.8.3)
jquery-rails (4.2.1) jquery-rails (4.3.1)
rails-dom-testing (>= 1, < 3) rails-dom-testing (>= 1, < 3)
railties (>= 4.2.0) railties (>= 4.2.0)
thor (>= 0.14, < 2.0) thor (>= 0.14, < 2.0)
json (1.8.6) json (1.8.6)
json-jwt (1.7.0) json-jwt (1.8.3)
activesupport activesupport
bindata bindata
multi_json (>= 1.3)
securecompare securecompare
url_safe_base64 url_safe_base64
jsonapi (0.1.1.beta2) jsonapi-renderer (0.2.0)
json (~> 1.8)
jwt (1.5.6) jwt (1.5.6)
kaminari (0.17.0) kaminari (0.17.0)
actionpack (>= 3.0.0) actionpack (>= 3.0.0)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
kgio (2.10.0) kgio (2.11.1)
launchy (2.4.3) launchy (2.4.3)
addressable (~> 2.3) addressable (~> 2.3)
leaflet-draw-rails (0.1.0) leaflet-draw-rails (0.1.0)
@ -404,32 +439,32 @@ GEM
rb-inotify (~> 0.9, >= 0.9.7) rb-inotify (~> 0.9, >= 0.9.7)
ruby_dep (~> 1.2) ruby_dep (~> 1.2)
logstash-event (1.2.02) logstash-event (1.2.02)
logstasher (1.1.0) logstasher (1.2.2)
activerecord (>= 4.0)
activesupport (>= 4.0) activesupport (>= 4.0)
logstash-event (~> 1.2.0) logstash-event (~> 1.2.0)
request_store request_store
loofah (2.1.1) loofah (2.1.1)
crass (~> 1.0.2) crass (~> 1.0.2)
nokogiri (>= 1.5.9) nokogiri (>= 1.5.9)
lumberjack (1.0.10) lumberjack (1.0.12)
mail (2.6.4) mail (2.7.0)
mime-types (>= 1.16, < 4) mini_mime (>= 0.1.1)
mailjet (1.4.10) mailjet (1.5.4)
activesupport (>= 3.1.0) activesupport (>= 3.1.0)
rack (>= 1.4.0) rack (>= 1.4.0)
rest-client rest-client
maruku (0.7.2) maruku (0.7.3)
method_source (0.8.2) method_source (0.9.0)
mime-types (3.1) mime-types (3.1)
mime-types-data (~> 3.2015) mime-types-data (~> 3.2015)
mime-types-data (3.2016.0521) mime-types-data (3.2016.0521)
mimemagic (0.3.2) mimemagic (0.3.2)
mini_mime (1.0.0)
mini_portile2 (2.3.0) mini_portile2 (2.3.0)
minitest (5.11.1) minitest (5.11.1)
momentjs-rails (2.17.1) momentjs-rails (2.17.1)
railties (>= 3.1) railties (>= 3.1)
multi_json (1.12.1) multi_json (1.13.1)
multi_xml (0.6.0) multi_xml (0.6.0)
multipart-post (2.0.0) multipart-post (2.0.0)
mustermann (1.0.1) mustermann (1.0.1)
@ -438,7 +473,7 @@ GEM
thor (~> 0.19) thor (~> 0.19)
nenv (0.3.0) nenv (0.3.0)
netrc (0.11.0) netrc (0.11.0)
nio4r (1.2.1) nio4r (2.2.0)
nokogiri (1.8.1) nokogiri (1.8.1)
mini_portile2 (~> 2.3.0) mini_portile2 (~> 2.3.0)
normalize-rails (3.0.3) normalize-rails (3.0.3)
@ -451,7 +486,7 @@ GEM
multi_json (~> 1.3) multi_json (~> 1.3)
multi_xml (~> 0.5) multi_xml (~> 0.5)
rack (>= 1.2, < 3) rack (>= 1.2, < 3)
omniauth (1.7.1) omniauth (1.8.1)
hashie (>= 3.4.6, < 3.6.0) hashie (>= 3.4.6, < 3.6.0)
rack (>= 1.6.2, < 3) rack (>= 1.6.2, < 3)
omniauth-github (1.3.0) omniauth-github (1.3.0)
@ -461,46 +496,45 @@ GEM
oauth2 (~> 1.1) oauth2 (~> 1.1)
omniauth (~> 1.2) omniauth (~> 1.2)
open4 (1.3.4) open4 (1.3.4)
openid_connect (0.12.0) openid_connect (1.1.3)
activemodel activemodel
attr_required (>= 1.0.0) attr_required (>= 1.0.0)
json (>= 1.4.3) json (>= 1.4.3)
json-jwt (>= 1.5.0) json-jwt (>= 1.5.0)
rack-oauth2 (>= 1.3.1) rack-oauth2 (>= 1.6.1)
swd (>= 1.0.0) swd (>= 1.0.0)
tzinfo tzinfo
validate_email validate_email
validate_url validate_url
webfinger (>= 1.0.1) webfinger (>= 1.0.1)
openstack (3.3.7) openstack (3.3.12)
json json
orm_adapter (0.5.0) orm_adapter (0.5.0)
parallel (1.12.1) parallel (1.12.1)
parser (2.4.0.2) parser (2.4.0.2)
ast (~> 2.3) ast (~> 2.3)
pdf-core (0.6.1) pdf-core (0.7.0)
pg (0.19.0) pg (0.19.0)
powerpack (0.1.1) powerpack (0.1.1)
prawn (2.0.2) prawn (2.2.2)
pdf-core (~> 0.6.0) pdf-core (~> 0.7.0)
ttfunk (~> 1.4.0) ttfunk (~> 1.5)
prawn_rails (0.0.11) prawn_rails (0.0.11)
prawn (>= 0.11.1) prawn (>= 0.11.1)
railties (>= 3.0.0) railties (>= 3.0.0)
pry (0.10.4) pry (0.11.3)
coderay (~> 1.1.0) coderay (~> 1.1.0)
method_source (~> 0.8.1) method_source (~> 0.9.0)
slop (~> 3.4) pry-byebug (3.5.1)
pry-byebug (3.4.2) byebug (~> 9.1)
byebug (~> 9.0)
pry (~> 0.10) pry (~> 0.10)
public_suffix (2.0.5) public_suffix (3.0.1)
rack (2.0.3) rack (2.0.3)
rack-handlers (0.7.3) rack-handlers (0.7.3)
rack rack
rack-mini-profiler (0.10.7) rack-mini-profiler (0.10.7)
rack (>= 1.2.0) rack (>= 1.2.0)
rack-oauth2 (1.4.0) rack-oauth2 (1.7.0)
activesupport (>= 2.3) activesupport (>= 2.3)
attr_required (>= 0.0.5) attr_required (>= 0.0.5)
httpclient (>= 2.4) httpclient (>= 2.4)
@ -510,39 +544,39 @@ GEM
rack rack
rack-test (0.6.3) rack-test (0.6.3)
rack (>= 1.0) rack (>= 1.0)
rails (5.0.0.1) rails (5.0.6)
actioncable (= 5.0.0.1) actioncable (= 5.0.6)
actionmailer (= 5.0.0.1) actionmailer (= 5.0.6)
actionpack (= 5.0.0.1) actionpack (= 5.0.6)
actionview (= 5.0.0.1) actionview (= 5.0.6)
activejob (= 5.0.0.1) activejob (= 5.0.6)
activemodel (= 5.0.0.1) activemodel (= 5.0.6)
activerecord (= 5.0.0.1) activerecord (= 5.0.6)
activesupport (= 5.0.0.1) activesupport (= 5.0.6)
bundler (>= 1.3.0, < 2.0) bundler (>= 1.3.0)
railties (= 5.0.0.1) railties (= 5.0.6)
sprockets-rails (>= 2.0.0) sprockets-rails (>= 2.0.0)
rails-controller-testing (1.0.1) rails-controller-testing (1.0.2)
actionpack (~> 5.x) actionpack (~> 5.x, >= 5.0.1)
actionview (~> 5.x) actionview (~> 5.x, >= 5.0.1)
activesupport (~> 5.x) activesupport (~> 5.x)
rails-dom-testing (2.0.3) rails-dom-testing (2.0.3)
activesupport (>= 4.2.0) activesupport (>= 4.2.0)
nokogiri (>= 1.6) nokogiri (>= 1.6)
rails-html-sanitizer (1.0.3) rails-html-sanitizer (1.0.3)
loofah (~> 2.0) loofah (~> 2.0)
railties (5.0.0.1) railties (5.0.6)
actionpack (= 5.0.0.1) actionpack (= 5.0.6)
activesupport (= 5.0.0.1) activesupport (= 5.0.6)
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 (3.0.0) rainbow (3.0.0)
raindrops (0.17.0) raindrops (0.19.0)
rake (12.3.0) rake (12.3.0)
rb-fsevent (0.9.8) rb-fsevent (0.10.2)
rb-inotify (0.9.7) rb-inotify (0.9.10)
ffi (>= 0.5.0) ffi (>= 0.5.0, < 2)
rbvmomi (1.11.6) rbvmomi (1.11.6)
builder (~> 3.0) builder (~> 3.0)
json (>= 1.8) json (>= 1.8)
@ -550,7 +584,8 @@ GEM
trollop (~> 2.1) trollop (~> 2.1)
rdoc (4.3.0) rdoc (4.3.0)
ref (2.0.0) ref (2.0.0)
request_store (1.3.1) request_store (1.4.0)
rack (>= 1.4)
responders (2.4.0) responders (2.4.0)
actionpack (>= 4.2.0, < 5.3) actionpack (>= 4.2.0, < 5.3)
railties (>= 4.2.0, < 5.3) railties (>= 4.2.0, < 5.3)
@ -558,13 +593,13 @@ GEM
http-cookie (>= 1.0.2, < 2.0) http-cookie (>= 1.0.2, < 2.0)
mime-types (>= 1.16, < 4.0) mime-types (>= 1.16, < 4.0)
netrc (~> 0.8) netrc (~> 0.8)
rgeo (0.5.3) rgeo (1.0.0)
rgeo-geojson (0.4.3) rgeo-geojson (2.0.0)
rgeo (~> 0.5) rgeo (~> 1.0)
rodf (0.3.7) rodf (1.0.0)
activesupport (>= 3.0, < 6.0) activesupport (>= 3.0)
builder (~> 3.0) builder (>= 3.0)
rubyzip (~> 1.0) rubyzip (>= 1.0)
rspec (3.5.0) rspec (3.5.0)
rspec-core (~> 3.5.0) rspec-core (~> 3.5.0)
rspec-expectations (~> 3.5.0) rspec-expectations (~> 3.5.0)
@ -595,8 +630,8 @@ GEM
rainbow (>= 2.2.2, < 4.0) rainbow (>= 2.2.2, < 4.0)
ruby-progressbar (~> 1.7) ruby-progressbar (~> 1.7)
unicode-display_width (~> 1.0, >= 1.0.1) unicode-display_width (~> 1.0, >= 1.0.1)
rubocop-rspec-focused (0.1.0) rubocop-rspec-focused (1.0.0)
rubocop (>= 0.37) rubocop (>= 0.51)
ruby-progressbar (1.9.0) ruby-progressbar (1.9.0)
ruby_dep (1.5.0) ruby_dep (1.5.0)
ruby_parser (3.10.1) ruby_parser (3.10.1)
@ -604,19 +639,23 @@ GEM
rubyzip (1.0.0) rubyzip (1.0.0)
safe_yaml (1.0.4) safe_yaml (1.0.4)
sanitize-url (0.1.4) sanitize-url (0.1.4)
sass (3.4.22) sass (3.5.5)
sass-rails (5.0.6) sass-listen (~> 4.0.0)
sass-listen (4.0.0)
rb-fsevent (~> 0.9, >= 0.9.4)
rb-inotify (~> 0.9, >= 0.9.7)
sass-rails (5.0.7)
railties (>= 4.0.0, < 6) railties (>= 4.0.0, < 6)
sass (~> 3.1) sass (~> 3.1)
sprockets (>= 2.8, < 4.0) sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0) sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3) tilt (>= 1.1, < 3)
scenic (1.3.0) scenic (1.4.1)
activerecord (>= 4.0.0) activerecord (>= 4.0.0)
railties (>= 4.0.0) railties (>= 4.0.0)
scss_lint (0.53.0) scss_lint (0.56.0)
rake (>= 0.9, < 13) rake (>= 0.9, < 13)
sass (~> 3.4.20) sass (~> 3.5.3)
sdoc (0.4.2) sdoc (0.4.2)
json (~> 1.7, >= 1.7.7) json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0) rdoc (~> 4.0)
@ -627,61 +666,55 @@ GEM
selenium-webdriver (3.8.0) selenium-webdriver (3.8.0)
childprocess (~> 0.5) childprocess (~> 0.5)
rubyzip (~> 1.0) rubyzip (~> 1.0)
sentry-raven (2.2.0) sentry-raven (2.7.1)
faraday (>= 0.7.6, < 1.0) faraday (>= 0.7.6, < 1.0)
sexp_processor (4.10.0) sexp_processor (4.10.0)
shellany (0.0.1) shellany (0.0.1)
shoulda-matchers (3.1.1) shoulda-matchers (3.1.2)
activesupport (>= 4.0.0) activesupport (>= 4.0.0)
simple_form (3.4.0) simple_form (3.5.0)
actionpack (> 4, < 5.1) actionpack (> 4, < 5.2)
activemodel (> 4, < 5.1) activemodel (> 4, < 5.2)
sinatra (2.0.0) sinatra (2.0.0)
mustermann (~> 1.0) mustermann (~> 1.0)
rack (~> 2.0) rack (~> 2.0)
rack-protection (= 2.0.0) rack-protection (= 2.0.0)
tilt (~> 2.0) tilt (~> 2.0)
skylight (1.4.4) skylight (1.5.0)
activesupport (>= 3.0.0) activesupport (>= 3.0.0)
slop (3.6.0) spreadsheet_architect (2.0.2)
smart_listing (1.2.0)
coffee-rails
jquery-rails
kaminari (~> 0.17)
rails (>= 3.2)
spreadsheet_architect (1.4.8)
axlsx (>= 2.0) axlsx (>= 2.0)
rodf (= 0.3.7) axlsx_styler (>= 0.1.7)
spring (2.0.1) rodf (>= 1.0.0)
spring (2.0.2)
activesupport (>= 4.2) activesupport (>= 4.2)
spring-commands-rspec (1.0.4) spring-commands-rspec (1.0.4)
spring (>= 0.9.1) spring (>= 0.9.1)
sprockets (3.7.0) sprockets (3.7.1)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
rack (> 1, < 3) rack (> 1, < 3)
sprockets-rails (3.2.0) sprockets-rails (3.2.1)
actionpack (>= 4.0) actionpack (>= 4.0)
activesupport (>= 4.0) activesupport (>= 4.0)
sprockets (>= 3.0.0) sprockets (>= 3.0.0)
swd (1.0.1) swd (1.1.2)
activesupport (>= 3) activesupport (>= 3)
attr_required (>= 0.0.5) attr_required (>= 0.0.5)
httpclient (>= 2.4) httpclient (>= 2.4)
i18n
json (>= 1.4.3)
sysexits (1.2.0) sysexits (1.2.0)
temple (0.8.0)
therubyracer (0.12.3) therubyracer (0.12.3)
libv8 (~> 3.16.14.15) libv8 (~> 3.16.14.15)
ref ref
thor (0.20.0) thor (0.20.0)
thread_safe (0.3.6) thread_safe (0.3.6)
tilt (2.0.8) tilt (2.0.8)
timecop (0.8.1) timecop (0.9.1)
trollop (2.1.2) trollop (2.1.2)
ttfunk (1.4.0) ttfunk (1.5.1)
turbolinks (5.0.1) turbolinks (5.1.0)
turbolinks-source (~> 5) turbolinks-source (~> 5.1)
turbolinks-source (5.0.0) turbolinks-source (5.1.0)
tzinfo (1.2.4) tzinfo (1.2.4)
thread_safe (~> 0.1) thread_safe (~> 0.1)
uglifier (4.1.3) uglifier (4.1.3)
@ -691,7 +724,7 @@ GEM
unf_ext (0.0.7.4) unf_ext (0.0.7.4)
unicode-display_width (1.3.0) unicode-display_width (1.3.0)
unicode_utils (1.4.0) unicode_utils (1.4.0)
unicorn (5.2.0) unicorn (5.4.0)
kgio (~> 2.6) kgio (~> 2.6)
raindrops (~> 0.7) raindrops (~> 0.7)
url_safe_base64 (0.2.2) url_safe_base64 (0.2.2)
@ -701,27 +734,26 @@ GEM
validate_url (1.0.2) validate_url (1.0.2)
activemodel (>= 3.0.0) activemodel (>= 3.0.0)
addressable addressable
vcr (3.0.3) vcr (4.0.0)
web-console (3.4.0) web-console (3.5.1)
actionview (>= 5.0) actionview (>= 5.0)
activemodel (>= 5.0) activemodel (>= 5.0)
debug_inspector bindex (>= 0.4.0)
railties (>= 5.0) railties (>= 5.0)
webfinger (1.0.2) webfinger (1.1.0)
activesupport activesupport
httpclient (>= 2.4) httpclient (>= 2.4)
multi_json webmock (3.3.0)
webmock (2.3.1)
addressable (>= 2.3.6) addressable (>= 2.3.6)
crack (>= 0.3.2) crack (>= 0.3.2)
hashdiff hashdiff
websocket-driver (0.6.5) websocket-driver (0.6.5)
websocket-extensions (>= 0.1.0) websocket-extensions (>= 0.1.0)
websocket-extensions (0.1.2) websocket-extensions (0.1.3)
xml-simple (1.1.5) xml-simple (1.1.5)
xpath (2.1.0) xpath (3.0.0)
nokogiri (~> 1.3) nokogiri (~> 1.8)
xray-rails (0.2.0) xray-rails (0.3.1)
rails (>= 3.1.0) rails (>= 3.1.0)
PLATFORMS PLATFORMS
@ -747,14 +779,14 @@ DEPENDENCIES
copy_carrierwave_file copy_carrierwave_file
daemons daemons
database_cleaner database_cleaner
deep_cloneable (~> 2.2.1) deep_cloneable
delayed_cron_job delayed_cron_job
delayed_job_active_record delayed_job_active_record
delayed_job_web delayed_job_web
devise devise
dotenv-rails dotenv-rails
draper (~> 3.0.0.pre1) draper
factory_girl factory_bot
fog fog
fog-openstack fog-openstack
font-awesome-rails font-awesome-rails
@ -778,21 +810,21 @@ DEPENDENCIES
openid_connect openid_connect
openstack openstack
pg pg
prawn (~> 2.0.1) prawn
prawn_rails (~> 0.0.11) prawn_rails
pry-byebug pry-byebug
rack-handlers rack-handlers
rack-mini-profiler rack-mini-profiler
rails (= 5.0.0.1) rails
rails-controller-testing rails-controller-testing
rest-client rest-client
rgeo-geojson rgeo-geojson
rspec-rails (~> 3.0) rspec-rails
rspec_junit_formatter rspec_junit_formatter
rubocop rubocop
rubocop-rspec-focused rubocop-rspec-focused
sanitize-url sanitize-url
sass-rails (~> 5.0) sass-rails
scenic scenic
scss_lint scss_lint
sdoc (~> 0.4.0) sdoc (~> 0.4.0)
@ -801,13 +833,13 @@ DEPENDENCIES
shoulda-matchers shoulda-matchers
simple_form simple_form
skylight skylight
smart_listing smart_listing!
spreadsheet_architect spreadsheet_architect
spring spring
spring-commands-rspec spring-commands-rspec
therubyracer therubyracer
timecop timecop
turbolinks (~> 5.0) turbolinks
uglifier (>= 1.3.0) uglifier (>= 1.3.0)
unicode_utils unicode_utils
unicorn unicorn

View file

@ -120,7 +120,7 @@ Pour exécuter les tests de l'application, plusieurs possibilités :
## Linting ## Linting
- Faire tourner RuboCop : `bundle exec rubocop` - Faire tourner RuboCop : `bundle exec rubocop`
- Faire tourner Brakeman : `bundle exec brakeman -z` - Faire tourner Brakeman : `bundle exec brakeman`
- Linter les fichiers HAML : `bundle exec haml-lint app/views/` - Linter les fichiers HAML : `bundle exec haml-lint app/views/`
- Linter les fichiers SCSS : `bundle exec scss-lint app/assets/stylesheets/` - Linter les fichiers SCSS : `bundle exec scss-lint app/assets/stylesheets/`

View file

@ -6,6 +6,16 @@ class Admin::AccompagnateursController < AdminController
def show def show
assign_scope = @procedure.gestionnaires assign_scope = @procedure.gestionnaires
# FIXME: remove this comment (no code to remove) when
# https://github.com/Sology/smart_listing/issues/134
# is fixed.
#
# No need to permit parameters for smart_listing, because
# there are no sortable columns
#
# END OF FIXME
@accompagnateurs_assign = smart_listing_create :accompagnateurs_assign, @accompagnateurs_assign = smart_listing_create :accompagnateurs_assign,
assign_scope, assign_scope,
partial: "admin/accompagnateurs/list_assign", partial: "admin/accompagnateurs/list_assign",
@ -14,6 +24,15 @@ class Admin::AccompagnateursController < AdminController
not_assign_scope = current_administrateur.gestionnaires.where.not(id: assign_scope.ids) not_assign_scope = current_administrateur.gestionnaires.where.not(id: assign_scope.ids)
not_assign_scope = not_assign_scope.where("email LIKE ?", "%#{params[:filter]}%") if params[:filter] not_assign_scope = not_assign_scope.where("email LIKE ?", "%#{params[:filter]}%") if params[:filter]
# FIXME: remove this comment (no code to remove) when
# https://github.com/Sology/smart_listing/issues/134
# is fixed.
#
# No need to permit parameters for smart_listing, because
# there are no sortable columns
#
# END OF FIXME
@accompagnateurs_not_assign = smart_listing_create :accompagnateurs_not_assign, @accompagnateurs_not_assign = smart_listing_create :accompagnateurs_not_assign,
not_assign_scope, not_assign_scope,
partial: "admin/accompagnateurs/list_not_assign", partial: "admin/accompagnateurs/list_not_assign",

View file

@ -3,6 +3,12 @@ class Admin::GestionnairesController < AdminController
helper SmartListing::Helper helper SmartListing::Helper
def index def index
# FIXME: remove when
# https://github.com/Sology/smart_listing/issues/134
# is fixed
permit_smart_listing_params
# END OF FIXME
@gestionnaires = smart_listing_create :gestionnaires, @gestionnaires = smart_listing_create :gestionnaires,
current_administrateur.gestionnaires, current_administrateur.gestionnaires,
partial: "admin/gestionnaires/list", partial: "admin/gestionnaires/list",

View file

@ -5,6 +5,12 @@ class Admin::ProceduresController < AdminController
before_action :retrieve_procedure, only: [:show, :edit] before_action :retrieve_procedure, only: [:show, :edit]
def index def index
# FIXME: remove when
# https://github.com/Sology/smart_listing/issues/134
# is fixed
permit_smart_listing_params
# END OF FIXME
@procedures = smart_listing_create :procedures, @procedures = smart_listing_create :procedures,
current_administrateur.procedures.publiees.order(published_at: :desc), current_administrateur.procedures.publiees.order(published_at: :desc),
partial: "admin/procedures/list", partial: "admin/procedures/list",
@ -14,6 +20,12 @@ class Admin::ProceduresController < AdminController
end end
def archived def archived
# FIXME: remove when
# https://github.com/Sology/smart_listing/issues/134
# is fixed
permit_smart_listing_params
# END OF FIXME
@procedures = smart_listing_create :procedures, @procedures = smart_listing_create :procedures,
current_administrateur.procedures.archivees.order(published_at: :desc), current_administrateur.procedures.archivees.order(published_at: :desc),
partial: "admin/procedures/list", partial: "admin/procedures/list",
@ -25,6 +37,12 @@ class Admin::ProceduresController < AdminController
end end
def draft def draft
# FIXME: remove when
# https://github.com/Sology/smart_listing/issues/134
# is fixed
permit_smart_listing_params
# END OF FIXME
@procedures = smart_listing_create :procedures, @procedures = smart_listing_create :procedures,
current_administrateur.procedures.brouillons.order(created_at: :desc), current_administrateur.procedures.brouillons.order(created_at: :desc),
partial: "admin/procedures/list", partial: "admin/procedures/list",

View file

@ -109,4 +109,31 @@ class ApplicationController < ActionController::Base
}) })
end end
end end
def permit_smart_listing_params
# FIXME: remove when
# https://github.com/Sology/smart_listing/issues/134
# is fixed
self.params = params.permit(
dossiers_smart_listing:
[
:page,
:per_page,
{ sort: [:id, :'procedure.libelle', :state, :updated_at] }
],
gestionnaires_smart_listing:
[
:page,
:per_page,
{ sort: [:email] }
],
procedures_smart_listing:
[
:page,
:per_page,
{ sort: [:id, :libelle, :published_at] }
]
)
# END OF FIXME
end
end end

View file

@ -29,6 +29,12 @@ class Users::DossiersController < UsersController
return redirect_to users_dossiers_path return redirect_to users_dossiers_path
end end
# FIXME: remove when
# https://github.com/Sology/smart_listing/issues/134
# is fixed
permit_smart_listing_params
# END OF FIXME
@dossiers = smart_listing_create :dossiers, @dossiers = smart_listing_create :dossiers,
@dossiers_filtered, @dossiers_filtered,
partial: "users/dossiers/list", partial: "users/dossiers/list",

View file

@ -14,3 +14,7 @@ Bonne journée,
%br %br
%br %br
L'équipe Téléprocédures Simplifiées L'équipe Téléprocédures Simplifiées
%br
%br
Nous vous rappelons qu'en utilisant notre service, vous vous engagez à respecter nos
= link_to "conditions générales d'utilisation", CGU_URL

View file

@ -43,7 +43,7 @@
- if dossier - if dossier
= link_to("Dossier #{dossier.id}", dossier.decorate.url(gestionnaire_signed_in?), target: '_blank') = link_to("Dossier #{dossier.id}", dossier.decorate.url(gestionnaire_signed_in?), target: '_blank')
%br %br
= dossier.text_summary = sanitize(dossier.text_summary)
- else - else
Pas de dossier associé Pas de dossier associé
- else - else

View file

@ -36,7 +36,8 @@
%p %p
%label{ style: 'font-weight: normal;' } %label{ style: 'font-weight: normal;' }
= f.check_box :autorisation_donnees = f.check_box :autorisation_donnees
 J'accepte <a href="https://tps.gitbooks.io/tps-documentation/content/conditions-generales-dutilisation.html" target="_blank">les CGU</a>.  J'accepte
= link_to "les CGU", CGU_URL, 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

@ -7,6 +7,6 @@
\- \-
= link_to 'Statistiques', stats_path = link_to 'Statistiques', stats_path
\- \-
= link_to 'CGU / Mentions légales', "https://tps.gitbooks.io/tps-documentation/content/conditions-generales-dutilisation.html" = link_to 'CGU / Mentions légales', CGU_URL
\- \-
= link_to 'Contact', "mailto:"+t('dynamics.contact_email') = link_to 'Contact', "mailto:"+t('dynamics.contact_email')

View file

@ -21,7 +21,7 @@
%li.footer-link %li.footer-link
= link_to "Statistiques", stats_path, :class => "footer-link" = link_to "Statistiques", stats_path, :class => "footer-link"
%li.footer-link %li.footer-link
= link_to "CGU", "https://tps.gitbooks.io/tps-documentation/content/conditions-generales-dutilisation.html", :class => "footer-link", :target => "_blank" = link_to "CGU", CGU_URL, :class => "footer-link", :target => "_blank"
%li.footer-column %li.footer-column
%ul.footer-links %ul.footer-links

View file

@ -27,7 +27,7 @@
- else - else
Dossier nº #{dossier.id} Dossier nº #{dossier.id}
%br %br
= dossier.text_summary = sanitize(dossier.text_summary)
- else - else
Pas de dossier associé Pas de dossier associé
- else - else

View file

@ -9,7 +9,7 @@
%td= entreprise.siret_siege_social %td= entreprise.siret_siege_social
%tr %tr
%th Forme juridique : %th Forme juridique :
%td= entreprise.forme_juridique %td= sanitize(entreprise.forme_juridique)
- if etablissement.present? - if etablissement.present?
%tr %tr
%th Libellé NAF : %th Libellé NAF :

View file

@ -1,7 +1,7 @@
- dossier = Dossier.find_by(id: champ.value) - dossier = Dossier.find_by(id: champ.value)
- show_text_summary = dossier.present? - show_text_summary = dossier.present?
- show_warning = !show_text_summary && champ.value.present? - show_warning = !show_text_summary && champ.value.present?
- text_summary = dossier.try(:text_summary) - text_summary = sanitize(dossier.try(:text_summary))
.dossier-link .dossier-link
= form.number_field :value, = form.number_field :value,

View file

@ -189,7 +189,7 @@ Devise.setup do |config|
# Time interval you can reset your password with a reset password key. # Time interval you can reset your password with a reset password key.
# Don't put a too small interval or your users won't have the time to # Don't put a too small interval or your users won't have the time to
# change their passwords. # change their passwords.
config.reset_password_within = 6.hours config.reset_password_within = 7.days
# ==> Configuration for :encryptable # ==> Configuration for :encryptable
# Allow you to use another encryption algorithm besides bcrypt (default). You can use # Allow you to use another encryption algorithm besides bcrypt (default). You can use

View file

@ -3,3 +3,5 @@ if Rails.env.production?
else else
SIADEURL = 'https://staging.entreprise.api.gouv.fr' SIADEURL = 'https://staging.entreprise.api.gouv.fr'
end end
CGU_URL = "https://tps.gitbooks.io/tps-documentation/content/conditions-generales-dutilisation.html"

View file

@ -14,6 +14,17 @@ describe Admin::GestionnairesController, type: :controller do
it { expect(subject.status).to eq(200) } it { expect(subject.status).to eq(200) }
end end
describe 'GET #index with sorting and pagination' do
subject {
get :index,
'gestionnaires_smart_listing[page]': 1,
'gestionnaires_smart_listing[per_page]': 10,
'gestionnaires_smart_listing[sort][email]': 'asc'
}
it { expect(subject.status).to eq(200) }
end
describe 'POST #create' do describe 'POST #create' do
let(:email) { 'test@plop.com' } let(:email) { 'test@plop.com' }
let(:procedure_id) { nil } let(:procedure_id) { nil }

View file

@ -42,18 +42,51 @@ describe Admin::ProceduresController, type: :controller do
it { expect(response.status).to eq(200) } it { expect(response.status).to eq(200) }
end end
describe 'GET #index with sorting and pagination' do
subject {
get :index,
'procedures_smart_listing[page]': 1,
'procedures_smart_listing[per_page]': 10,
'procedures_smart_listing[sort][id]': 'asc'
}
it { expect(subject.status).to eq(200) }
end
describe 'GET #archived' do describe 'GET #archived' do
subject { get :archived } subject { get :archived }
it { expect(response.status).to eq(200) } it { expect(response.status).to eq(200) }
end end
describe 'GET #archived with sorting and pagination' do
subject {
get :archived,
'procedures_smart_listing[page]': 1,
'procedures_smart_listing[per_page]': 10,
'procedures_smart_listing[sort][libelle]': 'asc'
}
it { expect(subject.status).to eq(200) }
end
describe 'GET #published' do describe 'GET #published' do
subject { get :published } subject { get :published }
it { expect(response.status).to eq(200) } it { expect(response.status).to eq(200) }
end end
describe 'GET #draft with sorting and pagination' do
subject {
get :draft,
'procedures_smart_listing[page]': 1,
'procedures_smart_listing[per_page]': 10,
'procedures_smart_listing[sort][published_at]': 'asc'
}
it { expect(subject.status).to eq(200) }
end
describe 'DELETE #destroy' do describe 'DELETE #destroy' do
let(:procedure_draft) { create :procedure, administrateur: admin, published_at: nil, archived_at: nil } let(:procedure_draft) { create :procedure, administrateur: admin, published_at: nil, archived_at: nil }
let(:procedure_published) { create :procedure, administrateur: admin, published_at: Time.now, archived_at: nil } let(:procedure_published) { create :procedure, administrateur: admin, published_at: Time.now, archived_at: nil }

View file

@ -4,11 +4,11 @@ describe StatsController, type: :controller do
describe "#last_four_months_hash" do describe "#last_four_months_hash" do
context "while a regular user is logged in" do context "while a regular user is logged in" do
before do before do
FactoryGirl.create(:procedure, :created_at => 6.months.ago, :updated_at => 6.months.ago) FactoryBot.create(:procedure, :created_at => 6.months.ago, :updated_at => 6.months.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => 62.days.ago) FactoryBot.create(:procedure, :created_at => 2.months.ago, :updated_at => 62.days.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => 62.days.ago) FactoryBot.create(:procedure, :created_at => 2.months.ago, :updated_at => 62.days.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => 31.days.ago) FactoryBot.create(:procedure, :created_at => 2.months.ago, :updated_at => 31.days.ago)
FactoryGirl.create(:procedure, :created_at => 2.months.ago, :updated_at => Time.now) FactoryBot.create(:procedure, :created_at => 2.months.ago, :updated_at => Time.now)
@controller = StatsController.new @controller = StatsController.new
allow(@controller).to receive(:administration_signed_in?).and_return(false) allow(@controller).to receive(:administration_signed_in?).and_return(false)
@ -28,10 +28,10 @@ describe StatsController, type: :controller do
context "while a super admin is logged in" do context "while a super admin is logged in" do
before do before do
FactoryGirl.create(:procedure, :updated_at => 6.months.ago) FactoryBot.create(:procedure, :updated_at => 6.months.ago)
FactoryGirl.create(:procedure, :updated_at => 45.days.ago) FactoryBot.create(:procedure, :updated_at => 45.days.ago)
FactoryGirl.create(:procedure, :updated_at => 1.day.ago) FactoryBot.create(:procedure, :updated_at => 1.day.ago)
FactoryGirl.create(:procedure, :updated_at => 1.day.ago) FactoryBot.create(:procedure, :updated_at => 1.day.ago)
@controller = StatsController.new @controller = StatsController.new
@ -54,11 +54,11 @@ describe StatsController, type: :controller do
describe '#cumulative_hash' do describe '#cumulative_hash' do
before do before do
Timecop.freeze(Time.new(2016, 10, 2)) Timecop.freeze(Time.new(2016, 10, 2))
FactoryGirl.create(:procedure, :created_at => 55.days.ago, :updated_at => 43.days.ago) FactoryBot.create(:procedure, :created_at => 55.days.ago, :updated_at => 43.days.ago)
FactoryGirl.create(:procedure, :created_at => 45.days.ago, :updated_at => 40.days.ago) FactoryBot.create(:procedure, :created_at => 45.days.ago, :updated_at => 40.days.ago)
FactoryGirl.create(:procedure, :created_at => 45.days.ago, :updated_at => 20.days.ago) FactoryBot.create(:procedure, :created_at => 45.days.ago, :updated_at => 20.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago, :updated_at => 20.days.ago) FactoryBot.create(:procedure, :created_at => 15.days.ago, :updated_at => 20.days.ago)
FactoryGirl.create(:procedure, :created_at => 15.days.ago, :updated_at => 1.hour.ago) FactoryBot.create(:procedure, :created_at => 15.days.ago, :updated_at => 1.hour.ago)
end end
after { Timecop.return } after { Timecop.return }
@ -142,21 +142,21 @@ describe StatsController, type: :controller do
# dossier_p1_c: 5 days # dossier_p1_c: 5 days
before do before do
procedure_1 = FactoryGirl.create(:procedure) procedure_1 = FactoryBot.create(:procedure)
procedure_2 = FactoryGirl.create(:procedure) procedure_2 = FactoryBot.create(:procedure)
dossier_p1_a = FactoryGirl.create(:dossier, dossier_p1_a = FactoryBot.create(:dossier,
:procedure => procedure_1, :procedure => procedure_1,
:en_construction_at => 2.months.ago.beginning_of_month, :en_construction_at => 2.months.ago.beginning_of_month,
:processed_at => 2.months.ago.beginning_of_month + 3.days) :processed_at => 2.months.ago.beginning_of_month + 3.days)
dossier_p1_b = FactoryGirl.create(:dossier, dossier_p1_b = FactoryBot.create(:dossier,
:procedure => procedure_1, :procedure => procedure_1,
:en_construction_at => 2.months.ago.beginning_of_month, :en_construction_at => 2.months.ago.beginning_of_month,
:processed_at => 2.months.ago.beginning_of_month + 1.days) :processed_at => 2.months.ago.beginning_of_month + 1.days)
dossier_p1_c = FactoryGirl.create(:dossier, dossier_p1_c = FactoryBot.create(:dossier,
:procedure => procedure_1, :procedure => procedure_1,
:en_construction_at => 1.months.ago.beginning_of_month, :en_construction_at => 1.months.ago.beginning_of_month,
:processed_at => 1.months.ago.beginning_of_month + 5.days) :processed_at => 1.months.ago.beginning_of_month + 5.days)
dossier_p2_a = FactoryGirl.create(:dossier, dossier_p2_a = FactoryBot.create(:dossier,
:procedure => procedure_2, :procedure => procedure_2,
:en_construction_at => 2.month.ago.beginning_of_month, :en_construction_at => 2.month.ago.beginning_of_month,
:processed_at => 2.month.ago.beginning_of_month + 4.days) :processed_at => 2.month.ago.beginning_of_month + 4.days)
@ -190,24 +190,24 @@ describe StatsController, type: :controller do
# dossier_p1_c: 50 minutes # dossier_p1_c: 50 minutes
before do before do
procedure_1 = FactoryGirl.create(:procedure, :with_type_de_champ, :types_de_champ_count => 24) procedure_1 = FactoryBot.create(:procedure, :with_type_de_champ, :types_de_champ_count => 24)
procedure_2 = FactoryGirl.create(:procedure, :with_type_de_champ, :types_de_champ_count => 48) procedure_2 = FactoryBot.create(:procedure, :with_type_de_champ, :types_de_champ_count => 48)
dossier_p1_a = FactoryGirl.create(:dossier, dossier_p1_a = FactoryBot.create(:dossier,
:procedure => procedure_1, :procedure => procedure_1,
:created_at => 2.months.ago.beginning_of_month, :created_at => 2.months.ago.beginning_of_month,
:en_construction_at => 2.months.ago.beginning_of_month + 30.minutes, :en_construction_at => 2.months.ago.beginning_of_month + 30.minutes,
:processed_at => 2.months.ago.beginning_of_month + 1.day) :processed_at => 2.months.ago.beginning_of_month + 1.day)
dossier_p1_b = FactoryGirl.create(:dossier, dossier_p1_b = FactoryBot.create(:dossier,
:procedure => procedure_1, :procedure => procedure_1,
:created_at => 2.months.ago.beginning_of_month, :created_at => 2.months.ago.beginning_of_month,
:en_construction_at => 2.months.ago.beginning_of_month + 10.minutes, :en_construction_at => 2.months.ago.beginning_of_month + 10.minutes,
:processed_at => 2.months.ago.beginning_of_month + 1.day) :processed_at => 2.months.ago.beginning_of_month + 1.day)
dossier_p1_c = FactoryGirl.create(:dossier, dossier_p1_c = FactoryBot.create(:dossier,
:procedure => procedure_1, :procedure => procedure_1,
:created_at => 1.months.ago.beginning_of_month, :created_at => 1.months.ago.beginning_of_month,
:en_construction_at => 1.months.ago.beginning_of_month + 50.minutes, :en_construction_at => 1.months.ago.beginning_of_month + 50.minutes,
:processed_at => 1.months.ago.beginning_of_month + 1.day) :processed_at => 1.months.ago.beginning_of_month + 1.day)
dossier_p2_a = FactoryGirl.create(:dossier, dossier_p2_a = FactoryBot.create(:dossier,
:procedure => procedure_2, :procedure => procedure_2,
:created_at => 2.month.ago.beginning_of_month, :created_at => 2.month.ago.beginning_of_month,
:en_construction_at => 2.month.ago.beginning_of_month + 80.minutes, :en_construction_at => 2.month.ago.beginning_of_month + 80.minutes,

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
sequence(:administrateur_email) { |n| "admin#{n}@admin.com" } sequence(:administrateur_email) { |n| "admin#{n}@admin.com" }
factory :administrateur do factory :administrateur do
email { generate(:administrateur_email) } email { generate(:administrateur_email) }

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
sequence(:administration_email) { |n| "plop#{n}@plop.com" } sequence(:administration_email) { |n| "plop#{n}@plop.com" }
factory :administration do factory :administration do
email { generate(:administration_email) } email { generate(:administration_email) }

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :assign_to do factory :assign_to do
end end
end end

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :attestation_template do factory :attestation_template do
title 'title' title 'title'
body 'body' body 'body'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :avis do factory :avis do
introduction 'Bonjour, merci de me donner votre avis sur ce dossier' introduction 'Bonjour, merci de me donner votre avis sur ce dossier'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :cadastre do factory :cadastre do
numero '001' numero '001'
feuille 1 feuille 1

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :cerfa do factory :cerfa do
end end
end end

View file

@ -1,21 +1,21 @@
FactoryGirl.define do FactoryBot.define do
factory :champ do factory :champ do
type_de_champ { FactoryGirl.create(:type_de_champ_public) } type_de_champ { FactoryBot.create(:type_de_champ_public) }
trait :checkbox do trait :checkbox do
type_de_champ { FactoryGirl.create(:type_de_champ_public, :checkbox) } type_de_champ { FactoryBot.create(:type_de_champ_public, :checkbox) }
end end
trait :header_section do trait :header_section do
type_de_champ { FactoryGirl.create(:type_de_champ_public, :header_section) } type_de_champ { FactoryBot.create(:type_de_champ_public, :header_section) }
end end
trait :explication do trait :explication do
type_de_champ { FactoryGirl.create(:type_de_champ_public, :explication) } type_de_champ { FactoryBot.create(:type_de_champ_public, :explication) }
end end
trait :dossier_link do trait :dossier_link do
type_de_champ { FactoryGirl.create(:type_de_champ_public, :type_dossier_link) } type_de_champ { FactoryBot.create(:type_de_champ_public, :type_dossier_link) }
end end
end end
end end

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :commentaire do factory :commentaire do
body 'plop' body 'plop'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :dossier do factory :dossier do
state 'brouillon' state 'brouillon'
association :user, factory: [:user] association :user, factory: [:user]

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :drop_down_list do factory :drop_down_list do
value "val1\r\nval2\r\n--separateur--\r\nval3" value "val1\r\nval2\r\n--separateur--\r\nval3"
end end

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :entreprise do factory :entreprise do
siren '440117620' siren '440117620'
capital_social 537_100_000 capital_social 537_100_000

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :etablissement do factory :etablissement do
siret '44011762001530' siret '44011762001530'
siege_social true siege_social true

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :exercice do factory :exercice do
ca '12345678' ca '12345678'
dateFinExercice "2014-12-30 23:00:00" dateFinExercice "2014-12-30 23:00:00"

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :follow do factory :follow do
end end
end end

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :france_connect_information do factory :france_connect_information do
given_name 'plop' given_name 'plop'
family_name 'plip' family_name 'plip'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
sequence(:gestionnaire_email) { |n| "gest#{n}@gest.com" } sequence(:gestionnaire_email) { |n| "gest#{n}@gest.com" }
factory :gestionnaire do factory :gestionnaire do
email { generate(:gestionnaire_email) } email { generate(:gestionnaire_email) }

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :individual do factory :individual do
gender 'M.' gender 'M.'
nom 'Julien' nom 'Julien'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :invite do factory :invite do
email 'plop@octo.com' email 'plop@octo.com'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :invite_user do factory :invite_user do
email 'plop@octo.com' email 'plop@octo.com'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :closed_mail, class: Mails::ClosedMail do factory :closed_mail, class: Mails::ClosedMail do
subject "Subject, voila voila" subject "Subject, voila voila"
body "Blabla ceci est mon body" body "Blabla ceci est mon body"

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :module_api_carto do factory :module_api_carto do
use_api_carto false use_api_carto false
quartiers_prioritaires false quartiers_prioritaires false

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :notification do factory :notification do
type_notif 'commentaire' type_notif 'commentaire'
liste [] liste []

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :piece_justificative do factory :piece_justificative do
trait :rib do trait :rib do
content Rack::Test::UploadedFile.new("./spec/support/files/RIB.pdf", 'application/pdf') content Rack::Test::UploadedFile.new("./spec/support/files/RIB.pdf", 'application/pdf')

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
sequence(:published_path) { |n| "fake_path#{n}" } sequence(:published_path) { |n| "fake_path#{n}" }
factory :procedure do factory :procedure do
lien_demarche 'http://localhost' lien_demarche 'http://localhost'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :procedure_path do factory :procedure_path do
path 'fake_path' path 'fake_path'
end end

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :quartier_prioritaire do factory :quartier_prioritaire do
code 'QPcode' code 'QPcode'
commune 'Paris' commune 'Paris'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :rna_information do factory :rna_information do
association_id "W072000535" association_id "W072000535"
titre "ASSOCIATION POUR LA PROMOTION DE SPECTACLES AU CHATEAU DE ROCHEMAURE" titre "ASSOCIATION POUR LA PROMOTION DE SPECTACLES AU CHATEAU DE ROCHEMAURE"

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :type_de_champ_private do factory :type_de_champ_private do
sequence(:libelle) { |n| "Libelle champ privé #{n}" } sequence(:libelle) { |n| "Libelle champ privé #{n}" }
sequence(:description) { |n| "description du champ privé #{n}" } sequence(:description) { |n| "description du champ privé #{n}" }

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :type_de_champ_public do factory :type_de_champ_public do
sequence(:libelle) { |n| "Libelle du champ #{n}" } sequence(:libelle) { |n| "Libelle du champ #{n}" }
sequence(:description) { |n| "description du champ #{n}" } sequence(:description) { |n| "description du champ #{n}" }

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
factory :type_de_piece_justificative do factory :type_de_piece_justificative do
libelle 'RIB' libelle 'RIB'
description 'Releve identité bancaire' description 'Releve identité bancaire'

View file

@ -1,4 +1,4 @@
FactoryGirl.define do FactoryBot.define do
sequence(:user_email) { |n| "user#{n}@user.com" } sequence(:user_email) { |n| "user#{n}@user.com" }
factory :user do factory :user do
email { generate(:user_email) } email { generate(:user_email) }

View file

@ -11,24 +11,24 @@ feature 'As an administrateur I wanna create a new procedure', js: true do
context 'Right after sign_in I shall see all procedure states links' do context 'Right after sign_in I shall see all procedure states links' do
scenario 'Finding draft procedures' do scenario 'Finding draft procedures' do
page.find_by_id('draft-procedures').click page.find_by_id('draft-procedures').click
expect(page).to have_current_path(admin_procedures_draft_path, only_path: true) expect(page).to have_current_path(admin_procedures_draft_path)
end end
scenario 'Finding active procedures' do scenario 'Finding active procedures' do
page.find_by_id('active-procedures').click page.find_by_id('active-procedures').click
expect(page).to have_current_path(admin_procedures_path, only_path: true) expect(page).to have_current_path(admin_procedures_path)
end end
scenario 'Finding archived procedures' do scenario 'Finding archived procedures' do
page.find_by_id('archived-procedures').click page.find_by_id('archived-procedures').click
expect(page).to have_current_path(admin_procedures_archived_path, only_path: true) expect(page).to have_current_path(admin_procedures_archived_path)
end end
end end
context 'Creating a new procedure' do context 'Creating a new procedure' do
scenario 'Finding new procedure link' do scenario 'Finding new procedure link' do
page.find_by_id('new-procedure').click page.find_by_id('new-procedure').click
expect(page).to have_current_path(new_admin_procedure_path, only_path: true) expect(page).to have_current_path(new_admin_procedure_path)
end end
scenario 'Finding save button for new procedure, libelle and description required' do scenario 'Finding save button for new procedure, libelle and description required' do

View file

@ -107,7 +107,7 @@ feature 'The gestionnaire part' do
end end
scenario 'A gestionnaire can see the personnes impliquées' do scenario 'A gestionnaire can see the personnes impliquées' do
gestionnaire2 = FactoryGirl.create(:gestionnaire, password: password) gestionnaire2 = FactoryBot.create(:gestionnaire, password: password)
log_in(gestionnaire.email, password) log_in(gestionnaire.email, password)

View file

@ -21,30 +21,30 @@ feature 'As a User I wanna create a dossier' do
scenario "with a proper date input field for birthdate (type='date' supported)" do scenario "with a proper date input field for birthdate (type='date' supported)" do
fill_in 'dossier_individual_attributes_birthdate', with: '1987-10-14' fill_in 'dossier_individual_attributes_birthdate', with: '1987-10-14'
page.find_by_id('etape_suivante').click page.find_by_id('etape_suivante').click
expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s))
page.find_by_id('etape_suivante').click page.find_by_id('etape_suivante').click
fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1' fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1'
page.find_by_id('suivant').click page.find_by_id('suivant').click
expect(user.dossiers.first.individual.birthdate).to eq("1987-10-14") expect(user.dossiers.first.individual.birthdate).to eq("1987-10-14")
expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s))
end end
scenario "with a basic text input field for birthdate (type='date' unsupported)" do scenario "with a basic text input field for birthdate (type='date' unsupported)" do
fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987' fill_in 'dossier_individual_attributes_birthdate', with: '14/10/1987'
page.find_by_id('etape_suivante').click page.find_by_id('etape_suivante').click
expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_carte_path(procedure_for_individual.dossiers.last.id.to_s))
page.find_by_id('etape_suivante').click page.find_by_id('etape_suivante').click
fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1' fill_in "champs_#{procedure_for_individual.dossiers.last.champs.first.id}", with: 'contenu du champ 1'
page.find_by_id('suivant').click page.find_by_id('suivant').click
expect(user.dossiers.first.individual.birthdate).to eq("1987-10-14") expect(user.dossiers.first.individual.birthdate).to eq("1987-10-14")
expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_for_individual.dossiers.last.id.to_s))
end end
end end
scenario 'Identification through siret', vcr: { cassette_name: 'search_ban_paris' }, js: true do scenario 'Identification through siret', vcr: { cassette_name: 'search_ban_paris' }, js: true do
login_as user, scope: :user login_as user, scope: :user
visit commencer_path(procedure_path: procedure_with_siret.path) visit commencer_path(procedure_path: procedure_with_siret.path)
expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_path(procedure_with_siret.dossiers.last.id.to_s))
fill_in 'dossier-siret', with: siret fill_in 'dossier-siret', with: siret
stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}") stub_request(:get, "https://staging.entreprise.api.gouv.fr/v2/etablissements/#{siret}?token=#{SIADETOKEN}")
.to_return(status: 200, body: File.read('spec/support/files/etablissement.json')) .to_return(status: 200, body: File.read('spec/support/files/etablissement.json'))
@ -59,11 +59,11 @@ feature 'As a User I wanna create a dossier' do
expect(page).to have_css('#recap-info-entreprise') expect(page).to have_css('#recap-info-entreprise')
find(:css, "#dossier_autorisation_donnees[value='1']").set(true) find(:css, "#dossier_autorisation_donnees[value='1']").set(true)
page.find_by_id('etape_suivante').click page.find_by_id('etape_suivante').click
expect(page).to have_current_path(users_dossier_carte_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_carte_path(procedure_with_siret.dossiers.last.id.to_s))
page.find_by_id('etape_suivante').click page.find_by_id('etape_suivante').click
fill_in "champs_#{procedure_with_siret.dossiers.last.champs.first.id}", with: 'contenu du champ 1' fill_in "champs_#{procedure_with_siret.dossiers.last.champs.first.id}", with: 'contenu du champ 1'
page.find_by_id('suivant').click page.find_by_id('suivant').click
expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_with_siret.dossiers.last.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_recapitulatif_path(procedure_with_siret.dossiers.last.id.to_s))
end end
end end
end end

View file

@ -22,7 +22,7 @@ feature 'As a User I want to edit a dossier I own' do
scenario 'Getting a dossier, I want to create a new message on', js: true do scenario 'Getting a dossier, I want to create a new message on', js: true do
page.find_by_id('tr_dossier_' + dossier.id.to_s).click page.find_by_id('tr_dossier_' + dossier.id.to_s).click
expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_recapitulatif_path(Dossier.first.id.to_s))
page.find_by_id('open-message').click page.find_by_id('open-message').click
page.execute_script("$('#texte_commentaire').data('wysihtml5').editor.setValue('Contenu du nouveau message')") page.execute_script("$('#texte_commentaire').data('wysihtml5').editor.setValue('Contenu du nouveau message')")
page.find_by_id('save-message').click page.find_by_id('save-message').click
@ -31,18 +31,18 @@ feature 'As a User I want to edit a dossier I own' do
scenario 'On the same dossier, I want to edit informations', js: true do scenario 'On the same dossier, I want to edit informations', js: true do
page.find_by_id('tr_dossier_' + dossier.id.to_s).click page.find_by_id('tr_dossier_' + dossier.id.to_s).click
expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s))
# Linked Dossier # Linked Dossier
linked_dossier_id = dossier.champs.find { |c| c.type_de_champ.type_champ == 'dossier_link' }.value linked_dossier_id = dossier.champs.find { |c| c.type_de_champ.type_champ == 'dossier_link' }.value
expect(page).to have_link("Dossier #{linked_dossier_id}") expect(page).to have_link("Dossier #{linked_dossier_id}")
page.find_by_id('edit-dossier').click page.find_by_id('edit-dossier').click
expect(page).to have_current_path(users_dossier_description_path(dossier.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_description_path(dossier.id.to_s))
champ_id = dossier.champs.find { |t| t.type_champ == "text" }.id champ_id = dossier.champs.find { |t| t.type_champ == "text" }.id
fill_in "champs_#{champ_id.to_s}", with: 'Contenu du champ 1' fill_in "champs_#{champ_id.to_s}", with: 'Contenu du champ 1'
page.find_by_id('modification_terminee').click page.find_by_id('modification_terminee').click
expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s), only_path: true) expect(page).to have_current_path(users_dossier_recapitulatif_path(dossier.id.to_s))
expect(page.find("#champ-#{champ_id}-value").text).to eq('Contenu du champ 1') expect(page.find("#champ-#{champ_id}-value").text).to eq('Contenu du champ 1')
end end
end end

View file

@ -6,4 +6,8 @@ class AdministrationMailerPreview < ActionMailer::Preview
] ]
AdministrationMailer.dubious_procedures(procedures_and_champs) AdministrationMailer.dubious_procedures(procedures_and_champs)
end end
def invite_admin
AdministrationMailer.invite_admin(Administrateur.last, "12345678")
end
end end

View file

@ -30,7 +30,7 @@ describe Commentaire do
let(:user_invite) { create(:user) } let(:user_invite) { create(:user) }
before do before do
FactoryGirl.create(:invite_user, email: "invite@tps.apientreprise.fr", dossier: dossier, user: user_invite) FactoryBot.create(:invite_user, email: "invite@tps.apientreprise.fr", dossier: dossier, user: user_invite)
end end
it "calls notify_gestionnaires" do it "calls notify_gestionnaires" do

View file

@ -26,7 +26,7 @@ require 'database_cleaner'
require 'webmock/rspec' require 'webmock/rspec'
require 'shoulda-matchers' require 'shoulda-matchers'
require 'devise' require 'devise'
require 'factory_girl' require 'factory_bot'
require 'selenium/webdriver' require 'selenium/webdriver'
Capybara.javascript_driver = :headless_chrome Capybara.javascript_driver = :headless_chrome
@ -109,7 +109,7 @@ RSpec.configure do |config|
config.include Devise::Test::ControllerHelpers, type: :controller config.include Devise::Test::ControllerHelpers, type: :controller
config.include Devise::Test::ControllerHelpers, type: :view config.include Devise::Test::ControllerHelpers, type: :view
config.include FactoryGirl::Syntax::Methods config.include FactoryBot::Syntax::Methods
config.before(:each) do config.before(:each) do
allow_any_instance_of(PieceJustificativeUploader).to receive(:generate_secure_token).and_return("3dbb3535-5388-4a37-bc2d-778327b9f997") allow_any_instance_of(PieceJustificativeUploader).to receive(:generate_secure_token).and_return("3dbb3535-5388-4a37-bc2d-778327b9f997")

View file

@ -1,3 +1,3 @@
RSpec.configure do |config| RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods config.include FactoryBot::Syntax::Methods
end end

View file

@ -11,7 +11,7 @@ module FeatureHelpers
end end
def create_dossier def create_dossier
dossier = FactoryGirl.create(:dossier) dossier = FactoryBot.create(:dossier)
dossier dossier
end end
end end