Merge branch 'develop' into add_dossier_workflow_dates

This commit is contained in:
Mathieu Magnin 2017-03-02 11:46:17 +01:00 committed by GitHub
commit 6fcd35fd4c
45 changed files with 303 additions and 210 deletions

View file

@ -64,7 +64,6 @@ gem 'fog'
gem 'fog-openstack' gem 'fog-openstack'
gem 'pg' gem 'pg'
gem 'scenic'
gem 'rgeo-geojson' gem 'rgeo-geojson'
gem 'leaflet-rails' gem 'leaflet-rails'
@ -115,6 +114,7 @@ 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 +122,7 @@ group :development do
gem 'web-console' gem 'web-console'
gem 'rack-handlers' gem 'rack-handlers'
gem 'xray-rails' gem 'xray-rails'
gem 'scenic'
end end
group :development, :test do group :development, :test do
@ -152,5 +153,6 @@ group :development, :test do
end end
group :production, :staging do group :production, :staging do
gem 'scenic'
gem 'sentry-raven' gem 'sentry-raven'
end end

View file

@ -564,6 +564,7 @@ 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)
@ -695,6 +696,7 @@ DEPENDENCIES
simplecov simplecov
smart_listing smart_listing
spreadsheet_architect spreadsheet_architect
sqlite3
therubyracer therubyracer
timecop timecop
turbolinks (~> 2.5) turbolinks (~> 2.5)
@ -708,4 +710,4 @@ DEPENDENCIES
xray-rails xray-rails
BUNDLED WITH BUNDLED WITH
1.13.7 1.14.4

View file

@ -2,8 +2,6 @@
font-family: Arial; font-family: Arial;
.show-block { .show-block {
width: 840px;
min-width: 840px;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5); box-shadow: 0 0 1px 0 rgba(0, 0, 0, 0.5);

View file

@ -34,7 +34,7 @@
} }
} }
#navbar-body { #navbar-body {
height: 60px; min-height: 60px;
background-color: #FFFFFF; background-color: #FFFFFF;
box-shadow: 0 1px 2px 0 rgba(50,50,50,0.5); box-shadow: 0 1px 2px 0 rgba(50,50,50,0.5);
padding-left: 50px; padding-left: 50px;
@ -43,7 +43,7 @@
font-size: 18px; font-size: 18px;
font-weight: bold; font-weight: bold;
line-height: 58px; line-height: 58px;
height: 58px; min-height: 58px;
color: #000000; color: #000000;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@ -56,7 +56,7 @@
color: #666666; color: #666666;
padding: 8px; padding: 8px;
border-right: 1px solid #C8C6C8; border-right: 1px solid #C8C6C8;
height: 60px; min-height: 60px;
.dropdown-toggle { .dropdown-toggle {
cursor: pointer; cursor: pointer;
} }

View file

@ -181,7 +181,8 @@ class Admin::ProceduresController < AdminController
def path_list def path_list
render json: ProcedurePath render json: ProcedurePath
.joins(', procedures') .joins(', procedures')
.where("procedures.id = procedure_paths.procedure_id AND procedures.archived != true") .where("procedures.id = procedure_paths.procedure_id")
.where("procedures.archived" => false)
.where("path LIKE '%#{params[:request]}%'") .where("path LIKE '%#{params[:request]}%'")
.pluck(:path, :administrateur_id) .pluck(:path, :administrateur_id)
.inject([]) { .inject([]) {

View file

@ -159,6 +159,15 @@ class Backoffice::DossiersController < Backoffice::DossiersListController
redirect_to backoffice_dossiers_path redirect_to backoffice_dossiers_path
end end
def reopen
create_dossier_facade params[:dossier_id]
@facade.dossier.initiated!
flash.notice = 'Dossier réouvert.'
redirect_to backoffice_dossiers_path
end
private private
def create_dossier_facade dossier_id def create_dossier_facade dossier_id

View file

@ -5,6 +5,7 @@ class MailTemplateDecorator < Draper::Decorator
case object.type case object.type
when "MailReceived" when "MailReceived"
"E-mail d'accusé de réception" "E-mail d'accusé de réception"
else
object.type object.type
end end
end end

View file

@ -1,5 +1,6 @@
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

@ -1,2 +1,2 @@
%div.col-lg-12.col-md-12.col-sm-12.col-xs-12#backoffice_dossier_show #backoffice_dossier_show.col-xs-12
= render partial: "dossiers/dossier_show" = render partial: "dossiers/dossier_show"

View file

@ -1,4 +1,4 @@
%div#main-container{class: "col-lg-#{main_container_size} col-md-#{main_container_size}"} %div#main-container{class: "col-xs-#{main_container_size}"}
%div.row %div.row
= render partial: 'layouts/flash_messages' = render partial: 'layouts/flash_messages'
%div.row %div.row

View file

@ -17,6 +17,7 @@
= form_tag(url_for({controller: 'backoffice/dossiers', action: :refuse, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Refuser') do = form_tag(url_for({controller: 'backoffice/dossiers', action: :refuse, dossier_id: @facade.dossier.id}), class: 'form-inline action_button', method: 'POST', style: 'display:inline', 'data-toggle' => :tooltip, title: 'Refuser') do
%button.action.refuse-dossier %button.action.refuse-dossier
%i.fa.fa-times %i.fa.fa-times
= link_to 'Reouvrir', backoffice_dossier_reopen_path(@facade.dossier), method: :post, class: 'btn btn-default btn-block'
- unless @facade.dossier.archived? - unless @facade.dossier.archived?
= link_to 'Archiver', backoffice_dossier_archive_path(@facade.dossier), method: :post, class: 'btn btn-default btn-block' = link_to 'Archiver', backoffice_dossier_archive_path(@facade.dossier), method: :post, class: 'btn btn-default btn-block'

View file

@ -1,6 +1,6 @@
%div.col-lg-8.col-md-8.col-sm-8.col-xs-8.main-info .col-xs-7.main-info
%div.col-lg-3.col-md-3.col-sm-3.col-xs-3.options .col-xs-3.options
%div{ style: "decorate:none; display: flex;box-shadow:none; float:right; display: flex; margin-top: 5px" } %div{ style: "decorate:none; display: flex;box-shadow:none; float:right; display: flex; margin-top: 5px" }
%div{ style: "vertical-align: middle; margin-right: 10px; margin-top: auto; margin-bottom: auto;" } %div{ style: "vertical-align: middle; margin-right: 10px; margin-top: auto; margin-bottom: auto;" }
= current_administrateur.email = current_administrateur.email

View file

@ -1,4 +1,4 @@
%div.col-lg-8.col-md-8.col-sm-8.col-xs-8.main-info .col-xs-7.main-info
= @facade_data_view.procedure_id.nil? ? "Tous les dossiers" : @facade_data_view.procedure.libelle = @facade_data_view.procedure_id.nil? ? "Tous les dossiers" : @facade_data_view.procedure.libelle
%div.col-lg-3.col-md-3.col-sm-3.col-xs-3.options %div.col-lg-3.col-md-3.col-sm-3.col-xs-3.options
%div.row %div.row

View file

@ -1,2 +1,2 @@
%div.col-lg-11.col-md-11.col-sm-11.col-xs-11.main-info .col-xs-10.main-info
Recherche dans tous les dossiers Recherche dans tous les dossiers

View file

@ -1,9 +1,9 @@
%div.col-lg-8.col-md-8.col-sm-8.col-xs-8.main-info .col-xs-7.main-info
%span{ 'data-toggle' => :tooltip, "data-placement" => :bottom, title: @facade.dossier.procedure.libelle } %span{ 'data-toggle' => :tooltip, "data-placement" => :bottom, title: @facade.dossier.procedure.libelle }
= @facade.dossier.procedure.libelle = @facade.dossier.procedure.libelle
%div.col-lg-3.col-md-3.col-sm-3.col-xs-3.options .col-xs-3.options
%div.row .row
%div.col-lg-12.col-md-12.col-sm-12.col-xs-12 .col-xs-12
- if current_gestionnaire.follow?(@facade.dossier.id) - if current_gestionnaire.follow?(@facade.dossier.id)
= link_to backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), "data-method" => :put, class: "button-navbar-action",id: "suivre_dossier_#{@facade.dossier.id}" do = link_to backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), "data-method" => :put, class: "button-navbar-action",id: "suivre_dossier_#{@facade.dossier.id}" do
%i.fa.fa-user-times %i.fa.fa-user-times
@ -12,14 +12,14 @@
= link_to backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), 'data-method' => :put, class: 'button-navbar-action', id: "suivre_dossier_#{@facade.dossier.id}" do = link_to backoffice_dossier_follow_path(dossier_id: @facade.dossier.id), 'data-method' => :put, class: 'button-navbar-action', id: "suivre_dossier_#{@facade.dossier.id}" do
%i.fa.fa-user-plus %i.fa.fa-user-plus
Suivre le dossier Suivre le dossier
%div.row .row
%div.col-lg-12.col-md-12.col-sm-12.col-xs-12 .col-xs-12
%div#invitations.dropdown-toggle{ 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false } #invitations.dropdown-toggle{ 'data-toggle' => 'dropdown', 'aria-haspopup' => true, 'aria-expanded' => false }
%i.fa.fa-user %i.fa.fa-user
= t('utils.involved') = t('utils.involved')
.badge.progress-bar-info .badge.progress-bar-info
= @facade.dossier.invites.count = @facade.dossier.invites.count
%div.dropdown-menu.dropdown-menu-right.dropdown-pannel .dropdown-menu.dropdown-menu-right.dropdown-pannel
%h4= t('dynamics.dossiers.followers.title') %h4= t('dynamics.dossiers.followers.title')
%ul %ul
- unless @facade.followers.empty? - unless @facade.followers.empty?

View file

@ -1 +1 @@
.col-lg-11.col-md-11.col-sm-11.col-xs-11 .col-xs-10

View file

@ -1,17 +1,15 @@
-#%span.fa.fa-sign-out
-if user_signed_in? -if user_signed_in?
.col-lg-1.col-md-1.col-sm-1.col-xs-1#sign_out.no-padding #sign_out.col-xs-2.no-padding
= render partial: 'users/login_banner' = render partial: 'users/login_banner'
= render partial: 'layouts/credentials' = render partial: 'layouts/credentials'
-elsif gestionnaire_signed_in? -elsif gestionnaire_signed_in?
.col-lg-1.col-md-1.col-sm-1.col-xs-1#sign_out.no-padding #sign_out.col-xs-2.no-padding
= render partial: 'gestionnaires/login_banner' = render partial: 'gestionnaires/login_banner'
= render partial: 'layouts/credentials' = render partial: 'layouts/credentials'
-elsif administrateur_signed_in? -elsif administrateur_signed_in?
.col-lg-1.col-md-1.col-sm-1.col-xs-1#sign_out.no-padding #sign_out.col-xs-2.no-padding
= render partial: 'administrateurs/login_banner' = render partial: 'administrateurs/login_banner'
= render partial: 'layouts/credentials' = render partial: 'layouts/credentials'
-else -else
.col-lg-1.col-md-1.col-sm-1.col-xs-1#sign_in #sign_in.col-xs-2
= link_to "Connexion", new_user_session_path, :class => 'btn btn-lg btn-primary' = link_to "Connexion", new_user_session_path, :class => 'btn btn-lg btn-primary'

View file

@ -1,4 +1,4 @@
%div.col-lg-8.col-md-8.col-sm-8.col-xs-8.main-info .col-xs-7.main-info
%span{ 'data-toggle' => :tooltip, "data-placement" => :bottom, title: @facade.dossier.procedure.libelle } %span{ 'data-toggle' => :tooltip, "data-placement" => :bottom, title: @facade.dossier.procedure.libelle }
= @facade.dossier.procedure.libelle.truncate(60) = @facade.dossier.procedure.libelle.truncate(60)
%div.col-lg-3.col-md-3.col-sm-3.col-xs-3.options %div.col-lg-3.col-md-3.col-sm-3.col-xs-3.options

3
circle.yml Normal file
View file

@ -0,0 +1,3 @@
database:
override:
- bundle exec rake db:drop db:create db:migrate RAILS_ENV=test

View file

@ -10,12 +10,7 @@ development:
test: test:
adapter: postgresql adapter: sqlite3
encoding: unicode
database: tps_test<%= ENV['TEST_ENV_NUMBER'] %>
host: localhost
pool: 5 pool: 5
username: tps timeout: 5000
password: lol database: db/test<%= ENV['TEST_ENV_NUMBER'] %>.sqlite3

View file

@ -1,2 +1,14 @@
file_path = "#{Rails.root}/config/france_connect.yml" FRANCE_CONNECT = if !Rails.env.test?
FRANCE_CONNECT = Hashie::Mash.load(file_path) file_path = "#{Rails.root}/config/france_connect.yml"
Hashie::Mash.load(file_path)
else
Hashie::Mash.new({
particulier_identifier: 'plop',
particulier_secret: 'plip',
particulier_redirect_uri: 'https://bidon.com/endpoint',
particulier_authorization_endpoint: 'https://bidon.com/endpoint',
particulier_token_endpoint: 'https://bidon.com/endpoint',
particulier_userinfo_endpoint: 'https://bidon.com/endpoint',
particulier_logout_endpoint: 'https://bidon.com/endpoint',
})
end

View file

@ -163,6 +163,7 @@ Rails.application.routes.draw do
post 'without_continuation' => 'dossiers#without_continuation' post 'without_continuation' => 'dossiers#without_continuation'
post 'close' => 'dossiers#close' post 'close' => 'dossiers#close'
post 'archive' => 'dossiers#archive' post 'archive' => 'dossiers#archive'
post 'reopen' => 'dossiers#reopen'
put 'follow' => 'dossiers#follow' put 'follow' => 'dossiers#follow'
resources :commentaires, only: [:index] resources :commentaires, only: [:index]

View file

@ -16,8 +16,8 @@ class DeviseCreateUsers < ActiveRecord::Migration
t.integer :sign_in_count, default: 0, null: false t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at t.datetime :current_sign_in_at
t.datetime :last_sign_in_at t.datetime :last_sign_in_at
t.inet :current_sign_in_ip t.string :current_sign_in_ip
t.inet :last_sign_in_ip t.string :last_sign_in_ip
## Confirmable ## Confirmable
# t.string :confirmation_token # t.string :confirmation_token

View file

@ -16,8 +16,8 @@ class DeviseCreatePros < ActiveRecord::Migration
t.integer :sign_in_count, default: 0, null: false t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at t.datetime :current_sign_in_at
t.datetime :last_sign_in_at t.datetime :last_sign_in_at
t.inet :current_sign_in_ip t.string :current_sign_in_ip
t.inet :last_sign_in_ip t.string :last_sign_in_ip
## Confirmable ## Confirmable
# t.string :confirmation_token # t.string :confirmation_token

View file

@ -16,8 +16,8 @@ class DeviseCreateGestionnaires < ActiveRecord::Migration
t.integer :sign_in_count, default: 0, null: false t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at t.datetime :current_sign_in_at
t.datetime :last_sign_in_at t.datetime :last_sign_in_at
t.inet :current_sign_in_ip t.string :current_sign_in_ip
t.inet :last_sign_in_ip t.string :last_sign_in_ip
## Confirmable ## Confirmable
# t.string :confirmation_token # t.string :confirmation_token

View file

@ -16,8 +16,8 @@ class CreateUsers < ActiveRecord::Migration
t.integer :sign_in_count, default: 0, null: false t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at t.datetime :current_sign_in_at
t.datetime :last_sign_in_at t.datetime :last_sign_in_at
t.inet :current_sign_in_ip t.string :current_sign_in_ip
t.inet :last_sign_in_ip t.string :last_sign_in_ip
## Confirmable ## Confirmable
# t.string :confirmation_token # t.string :confirmation_token

View file

@ -16,8 +16,8 @@ class DeviseCreateAdministrateurs < ActiveRecord::Migration
t.integer :sign_in_count, default: 0, null: false t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at t.datetime :current_sign_in_at
t.datetime :last_sign_in_at t.datetime :last_sign_in_at
t.inet :current_sign_in_ip t.string :current_sign_in_ip
t.inet :last_sign_in_ip t.string :last_sign_in_ip
## Confirmable ## Confirmable
# t.string :confirmation_token # t.string :confirmation_token

View file

@ -1,7 +1,11 @@
class ChangeDateCreationTypeToEntreprise < ActiveRecord::Migration class ChangeDateCreationTypeToEntreprise < ActiveRecord::Migration
def up def up
if Rails.env.test?
change_column :entreprises, :date_creation, "timestamp"
else
change_column :entreprises, :date_creation, "timestamp USING to_timestamp(date_creation) at time zone 'UTC-2'" change_column :entreprises, :date_creation, "timestamp USING to_timestamp(date_creation) at time zone 'UTC-2'"
end end
end
def down def down
change_column :entreprises, :date_creation, "integer USING extract(epoch from date_creation::timestamp with time zone)::integer" change_column :entreprises, :date_creation, "integer USING extract(epoch from date_creation::timestamp with time zone)::integer"

View file

@ -16,8 +16,8 @@ class DeviseCreateAdministrations < ActiveRecord::Migration
t.integer :sign_in_count, default: 0, null: false t.integer :sign_in_count, default: 0, null: false
t.datetime :current_sign_in_at t.datetime :current_sign_in_at
t.datetime :last_sign_in_at t.datetime :last_sign_in_at
t.inet :current_sign_in_ip t.string :current_sign_in_ip
t.inet :last_sign_in_ip t.string :last_sign_in_ip
## Confirmable ## Confirmable
# t.string :confirmation_token # t.string :confirmation_token

View file

@ -4,14 +4,14 @@ class FixDefaultTypeOnTypeDeChampTable < ActiveRecord::Migration
end end
def up def up
TypeDeChamp.where("private = false").update_all("type = 'TypeDeChampPublic'") TypeDeChamp.where(private: false).update_all("type = 'TypeDeChampPublic'")
TypeDeChamp.where("private = true").update_all("type = 'TypeDeChampPrivate'") TypeDeChamp.where(private: true).update_all("type = 'TypeDeChampPrivate'")
remove_column :types_de_champ, :private remove_column :types_de_champ, :private
end end
def down def down
add_column :types_de_champ, :private, :boolean, default: true add_column :types_de_champ, :private, :boolean, default: true
TypeDeChamp.where("type = 'TypeDeChampPublic'").update_all("private = false") TypeDeChamp.where("type = 'TypeDeChampPublic'").update_all(private: false)
TypeDeChamp.where("type = 'TypeDeChampPrivate'").update_all("private = true") TypeDeChamp.where("type = 'TypeDeChampPrivate'").update_all(private: true)
end end
end end

View file

@ -9,7 +9,7 @@ class CreateSearches < ActiveRecord::Migration
add_index :individuals, :dossier_id add_index :individuals, :dossier_id
add_index :pieces_justificatives, :dossier_id add_index :pieces_justificatives, :dossier_id
add_index :rna_informations, :entreprise_id add_index :rna_informations, :entreprise_id
create_view :searches #, materialized: true create_view :searches unless Rails.env.test? #, materialized: true
end end
def down def down
@ -22,6 +22,6 @@ class CreateSearches < ActiveRecord::Migration
remove_index :individuals, :dossier_id remove_index :individuals, :dossier_id
remove_index :pieces_justificatives, :dossier_id remove_index :pieces_justificatives, :dossier_id
remove_index :rna_informations, :entreprise_id remove_index :rna_informations, :entreprise_id
drop_view :searches #, materialized: true drop_view :searches unless Rails.env.test? #, materialized: true
end end
end end

View file

@ -1,9 +1,9 @@
class UpdateSearchesToVersion2 < ActiveRecord::Migration class UpdateSearchesToVersion2 < ActiveRecord::Migration
def up def up
replace_view :searches, version: 2 replace_view :searches, version: 2 unless Rails.env.test?
end end
def down def down
replace_view :searches, version: 1 replace_view :searches, version: 1 unless Rails.env.test?
end end
end end

View file

@ -0,0 +1,29 @@
class MoveInetColumnToString < ActiveRecord::Migration[5.0]
def up
change_column :users, :last_sign_in_ip, 'string'
change_column :users, :current_sign_in_ip, 'string'
change_column :gestionnaires, :last_sign_in_ip, 'string'
change_column :gestionnaires, :current_sign_in_ip, 'string'
change_column :administrateurs, :last_sign_in_ip, 'string'
change_column :administrateurs, :current_sign_in_ip, 'string'
change_column :administrations, :last_sign_in_ip, 'string'
change_column :administrations, :current_sign_in_ip, 'string'
end
def down
change_column :users, :last_sign_in_ip, 'inet USING last_sign_in_ip::inet'
change_column :users, :current_sign_in_ip, 'inet USING last_sign_in_ip::inet'
change_column :gestionnaires, :last_sign_in_ip, 'inet USING last_sign_in_ip::inet'
change_column :gestionnaires, :current_sign_in_ip, 'inet USING last_sign_in_ip::inet'
change_column :administrateurs, :last_sign_in_ip, 'inet USING last_sign_in_ip::inet'
change_column :administrateurs, :current_sign_in_ip, 'inet USING last_sign_in_ip::inet'
change_column :administrations, :last_sign_in_ip, 'inet USING last_sign_in_ip::inet'
change_column :administrations, :current_sign_in_ip, 'inet USING last_sign_in_ip::inet'
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20170228144909) do ActiveRecord::Schema.define(version: 20170228150522) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -24,8 +24,8 @@ ActiveRecord::Schema.define(version: 20170228144909) do
t.integer "sign_in_count", default: 0, null: false t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at" t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at" t.datetime "last_sign_in_at"
t.inet "current_sign_in_ip" t.string "current_sign_in_ip"
t.inet "last_sign_in_ip" t.string "last_sign_in_ip"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.string "api_token" t.string "api_token"
@ -50,8 +50,8 @@ ActiveRecord::Schema.define(version: 20170228144909) do
t.integer "sign_in_count", default: 0, null: false t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at" t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at" t.datetime "last_sign_in_at"
t.inet "current_sign_in_ip" t.string "current_sign_in_ip"
t.inet "last_sign_in_ip" t.string "last_sign_in_ip"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.index ["email"], name: "index_administrations_on_email", unique: true, using: :btree t.index ["email"], name: "index_administrations_on_email", unique: true, using: :btree
@ -210,8 +210,8 @@ ActiveRecord::Schema.define(version: 20170228144909) do
t.integer "sign_in_count", default: 0, null: false t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at" t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at" t.datetime "last_sign_in_at"
t.inet "current_sign_in_ip" t.string "current_sign_in_ip"
t.inet "last_sign_in_ip" t.string "last_sign_in_ip"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.integer "procedure_filter" t.integer "procedure_filter"
@ -378,8 +378,8 @@ ActiveRecord::Schema.define(version: 20170228144909) do
t.integer "sign_in_count", default: 0, null: false t.integer "sign_in_count", default: 0, null: false
t.datetime "current_sign_in_at" t.datetime "current_sign_in_at"
t.datetime "last_sign_in_at" t.datetime "last_sign_in_at"
t.inet "current_sign_in_ip" t.string "current_sign_in_ip"
t.inet "last_sign_in_ip" t.string "last_sign_in_ip"
t.datetime "created_at" t.datetime "created_at"
t.datetime "updated_at" t.datetime "updated_at"
t.string "siret" t.string "siret"

View file

@ -52,7 +52,9 @@ describe API::V1::DossiersController do
describe 'dossier' do describe 'dossier' do
subject { super().first } subject { super().first }
it { expect(subject[:id]).to eq(dossier.id) } it { expect(subject[:id]).to eq(dossier.id) }
if ENV['PG'] == 'true'
it { expect(subject[:updated_at]).to eq("2008-09-01T08:05:00.000Z") } it { expect(subject[:updated_at]).to eq("2008-09-01T08:05:00.000Z") }
end
it { expect(subject.keys.size).to eq(2) } it { expect(subject.keys.size).to eq(2) }
end end
end end
@ -124,8 +126,10 @@ describe API::V1::DossiersController do
it { expect(subject[:id]).to eq(dossier.id) } it { expect(subject[:id]).to eq(dossier.id) }
it { expect(subject[:state]).to eq(dossier.state) } it { expect(subject[:state]).to eq(dossier.state) }
if ENV['PG'] == 'true'
it { expect(subject[:created_at]).to eq('2008-09-01T08:05:00.000Z') } it { expect(subject[:created_at]).to eq('2008-09-01T08:05:00.000Z') }
it { expect(subject[:updated_at]).to eq('2008-09-01T08:05:00.000Z') } it { expect(subject[:updated_at]).to eq('2008-09-01T08:05:00.000Z') }
end
it { expect(subject[:archived]).to eq(dossier.archived) } it { expect(subject[:archived]).to eq(dossier.archived) }
it { expect(subject[:mandataire_social]).to eq(dossier.mandataire_social) } it { expect(subject[:mandataire_social]).to eq(dossier.mandataire_social) }

View file

@ -174,6 +174,8 @@ describe Backoffice::DossiersController, type: :controller do
end end
end end
if ENV['PG'] == 'true'
describe 'POST #search' do describe 'POST #search' do
describe 'by id' do describe 'by id' do
context 'when I am logged as a gestionnaire' do context 'when I am logged as a gestionnaire' do
@ -212,6 +214,7 @@ describe Backoffice::DossiersController, type: :controller do
end end
end end
end end
end
describe 'POST #receive' do describe 'POST #receive' do
before do before do
@ -357,6 +360,23 @@ describe Backoffice::DossiersController, type: :controller do
end end
end end
describe 'POST #reopen' do
before do
dossier.received!
sign_in gestionnaire
end
subject { post :reopen, params: {dossier_id: dossier_id} }
it 'change state to initiated' do
subject
dossier.reload
expect(dossier.state).to eq('initiated')
end
it { is_expected.to redirect_to backoffice_dossiers_path }
end
describe 'POST #archive' do describe 'POST #archive' do
before do before do

View file

@ -164,7 +164,7 @@ shared_examples 'carte_controller_spec' do
subject { Cadastre.last } subject { Cadastre.last }
it { expect(subject.surface_intersection).to eq('0.0006') } it { expect(subject.surface_intersection).to eq('0.0006') }
it { expect(subject.surface_parcelle).to eq(11252.6925830903) } it { expect(subject.surface_parcelle).to eq(11252.692583090324) }
it { expect(subject.numero).to eq('0013') } it { expect(subject.numero).to eq('0013') }
it { expect(subject.feuille).to eq(1) } it { expect(subject.feuille).to eq(1) }
it { expect(subject.section).to eq('CD') } it { expect(subject.section).to eq('CD') }

View file

@ -307,13 +307,17 @@ describe Users::DossiersController, type: :controller do
describe "with siret without whitespaces" do describe "with siret without whitespaces" do
let(:example_siret) { siret } let(:example_siret) { siret }
if ENV['CIRCLECI'].nil?
it_should_behave_like "with valid siret" it_should_behave_like "with valid siret"
end end
end
describe "with siret with whitespaces" do describe "with siret with whitespaces" do
let(:example_siret) { siret_with_whitespaces } let(:example_siret) { siret_with_whitespaces }
if ENV['CIRCLECI'].nil?
it_should_behave_like "with valid siret" it_should_behave_like "with valid siret"
end end
end
context 'with non existant siret' do context 'with non existant siret' do
before do before do

View file

@ -11,7 +11,7 @@ shared_examples 'current_user_dossier_spec' do
end end
context 'when dossier id is incorrect' do context 'when dossier id is incorrect' do
it { expect { subject.current_user_dossier 1 }.to raise_error ActiveRecord::RecordNotFound } it { expect { subject.current_user_dossier 666 }.to raise_error ActiveRecord::RecordNotFound }
end end
end end

View file

@ -53,15 +53,15 @@ feature 'As an Accompagnateur I can navigate and use each functionnality around
expect(page.all("#all_state_dossiers .dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id}") expect(page.all("#all_state_dossiers .dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id}")
visit "/backoffice/dossiers/procedure/#{procedure_1.id}?all_state_dossiers_smart_listing[sort][id]=desc" visit "/backoffice/dossiers/procedure/#{procedure_1.id}?all_state_dossiers_smart_listing[sort][id]=desc"
wait_for_ajax wait_for_ajax
expect(page.all(".dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.last.id}") expect(page.all("#all_dossiers .dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.last.id}")
page.find('#all_state_dossiers .next_page a').trigger('click') page.find('#all_state_dossiers .next_page a').trigger('click')
wait_for_ajax wait_for_ajax
page.find('#all_state_dossiers .next_page a').trigger('click') page.find('#all_state_dossiers .next_page a').trigger('click')
wait_for_ajax wait_for_ajax
expect(page.all(".dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id + 9}") expect(page.all("#all_dossiers .dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id + 9}")
page.find('#all_state_dossiers .prev a').trigger('click') page.find('#all_state_dossiers .prev a').trigger('click')
wait_for_ajax wait_for_ajax
expect(page.all(".dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id + 19}") expect(page.all("#all_dossiers .dossier-row")[0]['id']).to eq("tr_dossier_#{procedure_1.dossiers.first.id + 19}")
end end
scenario 'Using filter' do scenario 'Using filter' do
@ -79,7 +79,7 @@ feature 'As an Accompagnateur I can navigate and use each functionnality around
expect(page.all('#follow_dossiers .count').first.text).to eq('0 dossiers') expect(page.all('#follow_dossiers .count').first.text).to eq('0 dossiers')
visit "/backoffice/dossiers/procedure/#{procedure_1.id}?all_state_dossiers_smart_listing[sort][id]=asc" visit "/backoffice/dossiers/procedure/#{procedure_1.id}?all_state_dossiers_smart_listing[sort][id]=asc"
page.find_by_id("suivre_dossier_#{procedure_1.dossiers.first.id}").click page.find("#all_dossiers #suivre_dossier_#{procedure_1.dossiers.first.id}").click
visit "/backoffice/dossiers/#{procedure_1.dossiers.second.id}" visit "/backoffice/dossiers/#{procedure_1.dossiers.second.id}"
page.find_by_id("suivre_dossier_#{procedure_1.dossiers.second.id}").click page.find_by_id("suivre_dossier_#{procedure_1.dossiers.second.id}").click
@ -88,8 +88,9 @@ feature 'As an Accompagnateur I can navigate and use each functionnality around
expect(page.all('#follow_dossiers .count').first.text).to eq('2 dossiers') expect(page.all('#follow_dossiers .count').first.text).to eq('2 dossiers')
end end
if ENV['CIRCLECI'].nil?
scenario 'Adding message', js: true do scenario 'Adding message', js: true do
page.find_by_id("tr_dossier_#{procedure_1.dossiers.first.id}").trigger('click') page.find("#all_dossiers #tr_dossier_#{procedure_1.dossiers.first.id}").trigger('click')
expect(page).to have_current_path(backoffice_dossier_path(procedure_1.dossiers.first.id), only_path: true) expect(page).to have_current_path(backoffice_dossier_path(procedure_1.dossiers.first.id), only_path: true)
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')")
@ -97,4 +98,5 @@ feature 'As an Accompagnateur I can navigate and use each functionnality around
expect(page.find('.last-commentaire .content').text).to eq('Contenu du nouveau message') expect(page.find('.last-commentaire .content').text).to eq('Contenu du nouveau message')
end end
end end
end
end end

View file

@ -1,6 +1,7 @@
require 'spec_helper' require 'spec_helper'
feature 'search file on gestionnaire backoffice' do if ENV['PG'] == 'true'
feature 'search file on gestionnaire backoffice' do
let(:administrateur) { create(:administrateur) } let(:administrateur) { create(:administrateur) }
let(:gestionnaire) { create(:gestionnaire, administrateurs: [administrateur]) } let(:gestionnaire) { create(:gestionnaire, administrateurs: [administrateur]) }
@ -49,4 +50,5 @@ feature 'search file on gestionnaire backoffice' do
end end
end end
end end
end
end end

View file

@ -1,6 +1,6 @@
require 'spec_helper' require 'spec_helper'
feature 'As a User I want to sort and paginate dossiers', js: true do xfeature 'As a User I want to sort and paginate dossiers', js: true do
let(:user) { create(:user) } let(:user) { create(:user) }
let(:procedure_for_individual) { create(:procedure, :published, :for_individual) } let(:procedure_for_individual) { create(:procedure, :published, :for_individual) }

View file

@ -3,9 +3,11 @@ require 'spec_helper'
describe Carto::Geocodeur do describe Carto::Geocodeur do
let(:address) { '50 av des champs elysees' } let(:address) { '50 av des champs elysees' }
describe '.convert_adresse_to_point', vcr: { cassette_name: 'bano_octo' } do describe '.convert_adresse_to_point', vcr: { cassette_name: 'bano_octo' } do
if ENV['CIRCLECI'].nil?
it 'return a point' do it 'return a point' do
expect(described_class.convert_adresse_to_point(address).class).to eq(RGeo::Cartesian::PointImpl) expect(described_class.convert_adresse_to_point(address).class).to eq(RGeo::Cartesian::PointImpl)
end end
end
context 'when RestClient::Exception' do context 'when RestClient::Exception' do
before do before do
allow_any_instance_of(Carto::Bano::Driver).to receive(:call).and_raise(RestClient::Exception) allow_any_instance_of(Carto::Bano::Driver).to receive(:call).and_raise(RestClient::Exception)

View file

@ -49,7 +49,7 @@ describe Procedure do
subject.reload subject.reload
end end
it { expect(subject.mail_templates.size).to eq 2 } it { expect(subject.mail_templates.size).to eq 1 }
it { expect(subject.mail_received).not_to be_nil } it { expect(subject.mail_received).not_to be_nil }
end end

View file

@ -1,6 +1,7 @@
require 'spec_helper' require 'spec_helper'
describe Search do if ENV['PG'] == 'true'
describe Search do
describe '.results' do describe '.results' do
subject { liste_dossiers } subject { liste_dossiers }
@ -76,4 +77,5 @@ describe Search do
it { expect(subject.size).to eq(1) } it { expect(subject.size).to eq(1) }
end end
end end
end
end end