From ee43650c32986d253cc059937a37a27810d124f8 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Mon, 20 Aug 2018 17:20:51 +0200 Subject: [PATCH 1/2] Demande: add nb_of_procedure, deadline and nb_of_dossier fields --- .../stylesheets/new_design/demande.scss | 17 +++++++++ app/controllers/demandes_controller.rb | 18 ++++++++- app/lib/pipedrive/deal_adapter.rb | 21 ++++++++++- app/services/pipedrive_service.rb | 4 +- app/views/demandes/new.html.haml | 37 +++++++++++++++++-- 5 files changed, 88 insertions(+), 9 deletions(-) create mode 100644 app/assets/stylesheets/new_design/demande.scss diff --git a/app/assets/stylesheets/new_design/demande.scss b/app/assets/stylesheets/new_design/demande.scss new file mode 100644 index 000000000..6b0b88451 --- /dev/null +++ b/app/assets/stylesheets/new_design/demande.scss @@ -0,0 +1,17 @@ +@import "constants"; + +.demande { + padding-bottom: $default-padding; + + h1 { + margin-bottom: $default-padding; + } + + .intro { + margin: $default-padding 0; + } + + b { + font-weight: bold; + } +} diff --git a/app/controllers/demandes_controller.rb b/app/controllers/demandes_controller.rb index 53fad026d..c381df1ae 100644 --- a/app/controllers/demandes_controller.rb +++ b/app/controllers/demandes_controller.rb @@ -12,7 +12,10 @@ class DemandesController < ApplicationController demande_params[:poste], demande_params[:source], demande_params[:organization_name], - demande_params[:address] + demande_params[:address], + demande_params[:nb_of_procedures], + demande_params[:nb_of_dossiers], + demande_params[:deadline] ) flash.notice = 'Votre demande a bien été enregistrée, nous vous contacterons rapidement.' redirect_to root_path @@ -21,6 +24,17 @@ class DemandesController < ApplicationController private def demande_params - params.permit(:organization_name, :poste, :name, :email, :phone, :source, :address) + params.permit( + :organization_name, + :poste, + :name, + :email, + :phone, + :source, + :address, + :nb_of_procedures, + :nb_of_dossiers, + :deadline + ) end end diff --git a/app/lib/pipedrive/deal_adapter.rb b/app/lib/pipedrive/deal_adapter.rb index b86654771..80919f229 100644 --- a/app/lib/pipedrive/deal_adapter.rb +++ b/app/lib/pipedrive/deal_adapter.rb @@ -10,6 +10,20 @@ class Pipedrive::DealAdapter PIPEDRIVE_LOST_STATUS = "lost" PIPEDRIVE_LOST_REASON = "refusé depuis DS" + PIPEDRIVE_NB_OF_PROCEDURES_ATTRIBUTE_ID = "b22f8710352a7fb548623c062bf82ed6d1b6b704" + PIPEDRIVE_NB_OF_PROCEDURES_DO_NOT_KNOW_VALUE = "Je ne sais pas" + PIPEDRIVE_NB_OF_PROCEDURES_1_VALUE = "juste 1" + PIPEDRIVE_NB_OF_PROCEDURES_1_TO_10_VALUE = "de 1 a 10" + PIPEDRIVE_NB_OF_PROCEDURES_10_TO_100_VALUE = "de 10 a 100" + PIPEDRIVE_NB_OF_PROCEDURES_ABOVE_100_VALUE = "Plus de 100" + + PIPEDRIVE_DEADLINE_ATTRIBUTE_ID = "36a72c82af9d9f0d476b041ede8876844a249bf2" + PIPEDRIVE_DEADLINE_ASAP_VALUE = "Le plus vite possible" + PIPEDRIVE_DEADLINE_NEXT_3_MONTHS_VALUE = "Dans les 3 prochain mois" + PIPEDRIVE_DEADLINE_NEXT_6_MONTHS_VALUE = "Dans les 6 prochain mois" + PIPEDRIVE_DEADLINE_NEXT_12_MONTHS_VALUE = "Dans les 12 prochain mois" + PIPEDRIVE_DEADLINE_NO_DATE_VALUE = "Pas de date" + def self.refuse_deal(deal_id, owner_id) params = { user_id: owner_id, @@ -32,12 +46,15 @@ class Pipedrive::DealAdapter Pipedrive::API.put_deal(deal_id, params) end - def self.add_deal(organisation_id, person_id, title) + def self.add_deal(organisation_id, person_id, title, nb_of_procedures, nb_of_dossiers, deadline) params = { org_id: organisation_id, person_id: person_id, title: title, - user_id: Pipedrive::PersonAdapter::PIPEDRIVE_ROBOT_ID + user_id: Pipedrive::PersonAdapter::PIPEDRIVE_ROBOT_ID, + "#{PIPEDRIVE_NB_OF_PROCEDURES_ATTRIBUTE_ID}": nb_of_procedures, + value: nb_of_dossiers, + "#{PIPEDRIVE_DEADLINE_ATTRIBUTE_ID}": deadline, } Pipedrive::API.post_deal(params) diff --git a/app/services/pipedrive_service.rb b/app/services/pipedrive_service.rb index df46dca6b..ecd9b8a17 100644 --- a/app/services/pipedrive_service.rb +++ b/app/services/pipedrive_service.rb @@ -17,9 +17,9 @@ class PipedriveService Pipedrive::PersonAdapter.get_demandes_from_persons_owned_by_robot end - def self.add_demande(email, phone, name, poste, source, organization_name, address) + def self.add_demande(email, phone, name, poste, source, organization_name, address, nb_of_procedures, nb_of_dossiers, deadline) organization_id = Pipedrive::OrganizationAdapter.add_organization(organization_name, address) person_id = Pipedrive::PersonAdapter.add_person(email, phone, name, organization_id, poste, source) - Pipedrive::DealAdapter.add_deal(organization_id, person_id, organization_name) + Pipedrive::DealAdapter.add_deal(organization_id, person_id, organization_name, nb_of_procedures, nb_of_dossiers, deadline) end end diff --git a/app/views/demandes/new.html.haml b/app/views/demandes/new.html.haml index ca4a68199..6eab8c947 100644 --- a/app/views/demandes/new.html.haml +++ b/app/views/demandes/new.html.haml @@ -1,7 +1,9 @@ -.container +.container.demande %h1 Demande de compte administrateur - %p Pour obtenir un compte administrateur sur demarches-simplifiees.fr, veuillez remplir le formulaire ci-dessous et un membre de notre équipe vous contactera très prochainement. - %p Tous les champs sont obligatoires. + + %p.intro Attention, la création de compte administrateur est réservée uniquement aux organismes publics. Elle ne concerne ni les particuliers, ni les entreprises, ni les associations (sauf celles reconnues d'utilité publique), ni les personnes souhaitant remplir un dossier ou faire une démarche en ligne. Ce compte vous permettra de créer des démarches sur demarches-simplifiees.fr, vous pourrez ensuite les diffuser en ligne auprès de vos usagers. + %p.intro Pour obtenir un compte administrateur sur demarches-simplifiees.fr, veuillez remplir le formulaire ci-dessous et un membre de notre équipe vous contactera dès que possible. + %p.intro Tous les champs sont obligatoires. = form_tag({ controller: 'demandes', action: 'create' }, class: 'form') do @@ -40,4 +42,33 @@ %span.mandatory * = text_field_tag :address, nil, required: true + = label_tag :nb_of_procedures do + Combien de procédures souhaitez-vous dématerialiser ? + %span.mandatory * + = select_tag :nb_of_procedures, + options_for_select({ 'je ne sais pas' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_DO_NOT_KNOW_VALUE, + '1' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_1_VALUE, + '1 à 10' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_1_TO_10_VALUE, + '10 à 100 ' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_10_TO_100_VALUE, + 'plus de 100' => Pipedrive::DealAdapter::PIPEDRIVE_NB_OF_PROCEDURES_ABOVE_100_VALUE }), + prompt: 'choisir un intervalle', + required: true + + = label_tag :deadline do + À quelle échance voudriez-vous dématerialiser ? + %span.mandatory * + = select_tag :deadline, + options_for_select({ 'le plus vite possible' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_ASAP_VALUE, + 'dans les 3 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_3_MONTHS_VALUE, + 'dans les 6 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_6_MONTHS_VALUE, + 'dans les 12 prochains mois' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NEXT_12_MONTHS_VALUE, + 'pas de date' => Pipedrive::DealAdapter::PIPEDRIVE_DEADLINE_NO_DATE_VALUE }), + prompt: 'choisir une échéance', + required: true + + = label_tag :nb_of_dossiers do + Nombre de dossiers usagers qui seront démateerialisés, par an ? (Mettez 0 si vous ne savez pas) + %span.mandatory * + = number_field_tag :nb_of_dossiers, nil, required: true + = submit_tag 'Envoyer', class: 'button', data: { disable: true } From d9a9677d1dac4206ebbe85ca3d01d3022529a2b0 Mon Sep 17 00:00:00 2001 From: simon lehericey Date: Wed, 22 Aug 2018 20:50:08 +0200 Subject: [PATCH 2/2] [fix #2397] Manager: update crm conf --- app/lib/pipedrive/deal_adapter.rb | 9 +++++---- app/views/manager/demandes/index.html.erb | 11 ++++++----- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/lib/pipedrive/deal_adapter.rb b/app/lib/pipedrive/deal_adapter.rb index 80919f229..725a62936 100644 --- a/app/lib/pipedrive/deal_adapter.rb +++ b/app/lib/pipedrive/deal_adapter.rb @@ -1,11 +1,12 @@ class Pipedrive::DealAdapter PIPEDRIVE_ADMIN_CENTRAL_STOCK_STAGE_ID = 35 - PIPEDRIVE_REGIONS_STOCK_STAGE_ID = 24 - PIPEDRIVE_PREFECTURES_STOCK_STAGE_ID = 20 - PIPEDRIVE_DEPARTEMENTS_STOCK_STAGE_ID = 30 - PIPEDRIVE_COMMUNES_STOCK_STAGE_ID = 40 + PIPEDRIVE_SERVICE_DECO_REGIONAL_STOCK_STAGE_ID = 24 + PIPEDRIVE_SERVICE_DECO_DEPARTEMENTAL_STOCK_STAGE_ID = 20 + PIPEDRIVE_COLLECTIVITE_DEP_OU_REG_STOCK_STAGE_ID = 30 + PIPEDRIVE_COLLECTIVITE_LOCALE_STOCK_STAGE_ID = 40 PIPEDRIVE_ORGANISMES_STOCK_STAGE_ID = 1 PIPEDRIVE_ORGANISMES_REFUSES_STOCK_STAGE_ID = 45 + PIPEDRIVE_SUSPECTS_COMPTE_CREE_STAGE_ID = 48 PIPEDRIVE_LOST_STATUS = "lost" PIPEDRIVE_LOST_REASON = "refusé depuis DS" diff --git a/app/views/manager/demandes/index.html.erb b/app/views/manager/demandes/index.html.erb index cefc88e74..7a45aa726 100644 --- a/app/views/manager/demandes/index.html.erb +++ b/app/views/manager/demandes/index.html.erb @@ -35,11 +35,12 @@ <%= select_tag "stage_id", options_for_select({ "administration centrale" => Pipedrive::DealAdapter::PIPEDRIVE_ADMIN_CENTRAL_STOCK_STAGE_ID, - "région" => Pipedrive::DealAdapter::PIPEDRIVE_REGIONS_STOCK_STAGE_ID, - "préfecture" => Pipedrive::DealAdapter::PIPEDRIVE_PREFECTURES_STOCK_STAGE_ID, - "département" =>Pipedrive::DealAdapter::PIPEDRIVE_DEPARTEMENTS_STOCK_STAGE_ID, - "commune" => Pipedrive::DealAdapter::PIPEDRIVE_COMMUNES_STOCK_STAGE_ID, - "organisme" => Pipedrive::DealAdapter::PIPEDRIVE_ORGANISMES_STOCK_STAGE_ID + "service déco. régional" => Pipedrive::DealAdapter::PIPEDRIVE_SERVICE_DECO_REGIONAL_STOCK_STAGE_ID, + "service déco. départemental" => Pipedrive::DealAdapter::PIPEDRIVE_SERVICE_DECO_DEPARTEMENTAL_STOCK_STAGE_ID, + "collectivité dép. ou rég." =>Pipedrive::DealAdapter::PIPEDRIVE_COLLECTIVITE_DEP_OU_REG_STOCK_STAGE_ID, + "collectivité locale" => Pipedrive::DealAdapter::PIPEDRIVE_COLLECTIVITE_LOCALE_STOCK_STAGE_ID, + "organisme" => Pipedrive::DealAdapter::PIPEDRIVE_ORGANISMES_STOCK_STAGE_ID, + "suspect" => Pipedrive::DealAdapter::PIPEDRIVE_SUSPECTS_COMPTE_CREE_STAGE_ID }), style: 'margin-bottom: 20px; width: inherit;' %>