Skip to content

Commit

Permalink
Merge branch 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
gregoirenovel committed Sep 25, 2018
2 parents 21587e6 + 526bd28 commit a05a129
Show file tree
Hide file tree
Showing 40 changed files with 332 additions and 181 deletions.
13 changes: 13 additions & 0 deletions app/assets/stylesheets/new_design/landing.scss
Original file line number Diff line number Diff line change
Expand Up @@ -424,3 +424,16 @@ $cta-panel-button-border-size: 2px;
text-decoration: none;
}
}

.tour-de-france-banner {
padding-top: 15px;
padding-bottom: 15px;
background-color: $blue;
color: #FFFFFF;
text-align: center;

a {
color: #FFFFFF;
text-decoration: underline;
}
}
23 changes: 13 additions & 10 deletions app/jobs/auto_receive_dossiers_for_procedure_job.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,25 @@ class AutoReceiveDossiersForProcedureJob < ApplicationJob

def perform(procedure_id, state)
procedure = Procedure.find(procedure_id)
attrs = case state
case state
when Dossier.states.fetch(:en_instruction)
{
procedure.dossiers.state_en_construction.update_all(
state: Dossier.states.fetch(:en_instruction),
en_instruction_at: DateTime.now
}
)
when Dossier.states.fetch(:accepte)
{
state: Dossier.states.fetch(:accepte),
en_instruction_at: DateTime.now,
processed_at: DateTime.now
}
procedure.dossiers.state_en_construction.find_each do |dossier|
dossier.update(
state: Dossier.states.fetch(:accepte),
en_instruction_at: DateTime.now,
processed_at: DateTime.now
)
dossier.attestation = dossier.build_attestation
dossier.save
NotificationMailer.send_closed_notification(dossier).deliver_later
end
else
raise "Receiving Procedure##{procedure_id} in invalid state \"#{state}\""
end

procedure.dossiers.state_en_construction.update_all(attrs)
end
end
2 changes: 1 addition & 1 deletion app/models/champs/linked_drop_down_list_champ.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
class Champs::LinkedDropDownListChamp < Champ
delegate :primary_options, :secondary_options, to: :type_de_champ
delegate :primary_options, :secondary_options, to: 'type_de_champ.dynamic_type'

def primary_value
if value.present?
Expand Down
16 changes: 16 additions & 0 deletions app/models/type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
class TypeDeChamp < ApplicationRecord
# TODO drop next line when `type` column has been dropped from `types_de_champ` table
self.inheritance_column = nil

enum type_champs: {
text: 'text',
textarea: 'textarea',
Expand Down Expand Up @@ -27,6 +30,10 @@ class TypeDeChamp < ApplicationRecord

belongs_to :procedure

after_initialize :set_dynamic_type

attr_reader :dynamic_type

scope :public_only, -> { where(private: false) }
scope :private_only, -> { where(private: true) }
scope :ordered, -> { order(order_place: :asc) }
Expand All @@ -52,6 +59,15 @@ def create(params = {})
before_validation :check_mandatory
before_save :remove_piece_justificative_template, if: -> { type_champ_changed? }

def set_dynamic_type
@dynamic_type = type_champ.present? ? self.class.type_champ_to_class_name(type_champ).constantize.new(self) : nil
end

def type_champ=(value)
super(value)
set_dynamic_type
end

def params_for_champ
{
private: private?,
Expand Down
2 changes: 1 addition & 1 deletion app/models/types_de_champ/checkbox_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::CheckboxTypeDeChamp < TypeDeChamp
class TypesDeChamp::CheckboxTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/civilite_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::CiviliteTypeDeChamp < TypeDeChamp
class TypesDeChamp::CiviliteTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/date_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::DateTypeDeChamp < TypeDeChamp
class TypesDeChamp::DateTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/datetime_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::DatetimeTypeDeChamp < TypeDeChamp
class TypesDeChamp::DatetimeTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/dossier_link_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::DossierLinkTypeDeChamp < TypeDeChamp
class TypesDeChamp::DossierLinkTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/drop_down_list_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::DropDownListTypeDeChamp < TypeDeChamp
class TypesDeChamp::DropDownListTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/header_section_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::HeaderSectionTypeDeChamp < TypeDeChamp
class TypesDeChamp::HeaderSectionTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
class TypesDeChamp::LinkedDropDownListTypeDeChamp < TypeDeChamp
class TypesDeChamp::LinkedDropDownListTypeDeChamp < TypesDeChamp::TypeDeChampBase
PRIMARY_PATTERN = /^--(.*)--$/

delegate :drop_down_list, to: :@type_de_champ

def primary_options
primary_options = unpack_options.map(&:first)
if primary_options.present?
Expand Down
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::MultipleDropDownListTypeDeChamp < TypeDeChamp
class TypesDeChamp::MultipleDropDownListTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/number_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::NumberTypeDeChamp < TypeDeChamp
class TypesDeChamp::NumberTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::PieceJustificativeTypeDeChamp < TypeDeChamp
class TypesDeChamp::PieceJustificativeTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/siret_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::SiretTypeDeChamp < TypeDeChamp
class TypesDeChamp::SiretTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
2 changes: 1 addition & 1 deletion app/models/types_de_champ/text_type_de_champ.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
class TypesDeChamp::TextTypeDeChamp < TypeDeChamp
class TypesDeChamp::TextTypeDeChamp < TypesDeChamp::TypeDeChampBase
end
5 changes: 5 additions & 0 deletions app/models/types_de_champ/type_de_champ_base.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class TypesDeChamp::TypeDeChampBase
def initialize(type_de_champ)
@type_de_champ = type_de_champ
end
end
14 changes: 6 additions & 8 deletions app/services/dossier_field_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,6 @@ def get_value(dossier, table, column)
dossier.user.send(column)
when 'france_connect_information'
dossier.user.france_connect_information&.send(column)
when 'entreprise'
dossier.etablissement&.send(:"entreprise_#{column}")
when 'etablissement'
dossier.etablissement&.send(column)
when 'type_de_champ'
Expand All @@ -79,19 +77,19 @@ def filtered_ids(dossiers, filters)
.includes(relation)
.where("champs.type_de_champ_id = ?", filter['column'].to_i)
.where("champs.value ILIKE ?", "%#{filter['value']}%")
when 'entreprise'
table = 'etablissement'
if filter['column'] == 'date_creation'
when 'etablissement'
table = filter['table']
if filter['column'] == 'entreprise_date_creation'
date = filter['value'].to_date rescue nil
dossiers
.includes(table)
.where("#{table.pluralize}.entreprise_#{filter['column']} = ?", date)
.where("#{table.pluralize}.#{filter['column']} = ?", date)
else
dossiers
.includes(table)
.where("#{table.pluralize}.entreprise_#{filter['column']} ILIKE ?", "%#{filter['value']}%")
.where("#{table.pluralize}.#{filter['column']} ILIKE ?", "%#{filter['value']}%")
end
when 'user', 'etablissement'
when 'user'
dossiers
.includes(filter['table'])
.where("#{filter['table'].pluralize}.#{filter['column']} ILIKE ?", "%#{filter['value']}%")
Expand Down
4 changes: 0 additions & 4 deletions app/services/types_de_champ_service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,6 @@ def self.create_update_procedure_params(params, private = false)

parameters[attributes].each do |index, param|
param[:private] = private
if param[:type_champ]
param[:type] = TypeDeChamp.type_champ_to_class_name(param[:type_champ])
end

if param[:libelle].empty?
parameters[attributes].delete(index.to_s)
end
Expand Down
1 change: 0 additions & 1 deletion app/views/admin/types_de_champ/_fields.html.haml
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,6 @@

.form-group
= ff.hidden_field :order_place, value: ff.index
= ff.hidden_field :type
= ff.hidden_field :id

- if ff.object.id.present?
Expand Down
6 changes: 6 additions & 0 deletions app/views/root/administration.html.haml
Original file line number Diff line number Diff line change
@@ -1,6 +1,12 @@
- content_for :footer do
= render partial: "root/footer"

.tour-de-france-banner
.container
L'équipe demarches-simplifiees.fr vient à votre rencontre cet automne.
= succeed '.' do
= link_to "En savoir plus", tour_de_france_path

.landing
.landing-panel.hero-panel
.container
Expand Down
5 changes: 5 additions & 0 deletions db/migrate/20180924074121_drop_entreprises.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
class DropEntreprises < ActiveRecord::Migration[5.2]
def change
drop_table :entreprises
end
end
21 changes: 1 addition & 20 deletions db/schema.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.

ActiveRecord::Schema.define(version: 2018_09_19_084403) do
ActiveRecord::Schema.define(version: 2018_09_24_074121) do

# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
Expand Down Expand Up @@ -251,25 +251,6 @@
t.index ["type_de_champ_id"], name: "index_drop_down_lists_on_type_de_champ_id"
end

create_table "entreprises", id: :serial, force: :cascade do |t|
t.string "siren"
t.bigint "capital_social"
t.string "numero_tva_intracommunautaire"
t.string "forme_juridique"
t.string "forme_juridique_code"
t.string "nom_commercial"
t.string "raison_sociale"
t.string "siret_siege_social"
t.string "code_effectif_entreprise"
t.datetime "date_creation"
t.string "nom"
t.string "prenom"
t.integer "dossier_id"
t.datetime "created_at"
t.datetime "updated_at"
t.index ["dossier_id"], name: "index_entreprises_on_dossier_id"
end

create_table "etablissements", id: :serial, force: :cascade do |t|
t.string "siret"
t.boolean "siege_social"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace :'2018_05_14_add_annotation_privee_to_procedure' do
tdc.update_attribute(:order_place, tdc.order_place + 1)
end

new_tdc = TypesDeChamp::TextTypeDeChamp.create(
new_tdc = TypeDeChamp.create(
procedure_id: procedure_id,
private: true,
libelle: 'URL Espace de consultation',
Expand Down
12 changes: 6 additions & 6 deletions lib/tasks/2018_07_31_nutriscore.rake
Original file line number Diff line number Diff line change
Expand Up @@ -34,23 +34,23 @@ namespace :'2018_07_31_nutriscore' do
end

discard_source_champ(
TypesDeChamp::TextTypeDeChamp.new(
TypeDeChamp.new(
type_champ: 'text',
order_place: siret_order_place,
libelle: 'Numéro SIRET'
)
)

discard_source_champ(
TypesDeChamp::TextTypeDeChamp.new(
TypeDeChamp.new(
type_champ: 'text',
order_place: fonction_order_place,
libelle: 'Fonction'
)
)

compute_destination_champ(
TypesDeChamp::TextTypeDeChamp.new(
TypeDeChamp.new(
type_champ: 'text',
order_place: fonction_order_place,
libelle: 'Fonction',
Expand All @@ -66,7 +66,7 @@ namespace :'2018_07_31_nutriscore' do
end

compute_destination_champ(
TypesDeChamp::SiretTypeDeChamp.new(
TypeDeChamp.new(
type_champ: 'siret',
order_place: siret_order_place,
libelle: 'Numéro SIRET'
Expand All @@ -80,7 +80,7 @@ namespace :'2018_07_31_nutriscore' do
end

compute_destination_champ(
TypesDeChamp::HeaderSectionTypeDeChamp.new(
TypeDeChamp.new(
type_champ: 'header_section',
order_place: 18,
libelle: 'PARTIE 3 : ZONE GEOGRAPHIQUE'
Expand All @@ -90,7 +90,7 @@ namespace :'2018_07_31_nutriscore' do
end

compute_destination_champ(
TypesDeChamp::MultipleDropDownListTypeDeChamp.new(
TypeDeChamp.new(
type_champ: 'multiple_drop_down_list',
order_place: 19,
libelle: 'Pays de commercialisation',
Expand Down
51 changes: 51 additions & 0 deletions lib/tasks/2018_09_20_procedure_presentation_entreprise.rake
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
namespace :'2018_09_20_procedure_presentation_entreprise' do
task run: :environment do
Class.new do
def run
fix_displayed_fields
fix_sort
fix_filters
end

def fix_displayed_fields
ProcedurePresentation.where(%q`displayed_fields @> '[{"table": "entreprise"}]'`).each do |procedure_presentation|
procedure_presentation.displayed_fields.each { |field| entreprise_to_etablissement(field) }

procedure_presentation.save
end
end

def fix_sort
ProcedurePresentation.where(%q`sort @> '{"table": "entreprise"}'`).each do |procedure_presentation|
entreprise_to_etablissement(procedure_presentation['sort'])

procedure_presentation.save
end
end

def fix_filters
ProcedurePresentation.find_by_sql(
<<~SQL
SELECT procedure_presentations.*, array_agg(key) as keys
FROM procedure_presentations, LATERAL jsonb_each(filters)
WHERE value @> '[{"table": "entreprise"}]'
GROUP BY id;
SQL
).each do |procedure_presentation|
procedure_presentation.keys.each do |key|
procedure_presentation.filters[key].each { |filter| entreprise_to_etablissement(filter) }
end

procedure_presentation.save
end
end

def entreprise_to_etablissement(field)
if field['table'] == 'entreprise'
field['table'] = 'etablissement'
field['column'] = "entreprise_#{field['column']}"
end
end
end.new.run
end
end
Loading

0 comments on commit a05a129

Please sign in to comment.