Commit graph

318 commits

Author SHA1 Message Date
Paul Chavard
91caef0bfe fix(dossier): ensure submitted dossiers always have groupe instructeur 2022-03-02 16:57:12 +00:00
Pierre de La Morinerie
56c2e57aee controllers: fix crash on APIEntreprise::API::Error::ServiceUnavailable
In that case we want to display the nicely formatted error message to the
user, instead of a "Error 500" page.
2022-02-23 11:31:41 +01:00
Kara Diaby
006eac4240 modify controller 2022-01-12 15:49:37 +01:00
Kara Diaby
37e991ccb8 User : delete the folder if the instructeur has hide it 2021-12-29 17:37:58 +01:00
François Vantomme
14e0c68266 feat(api particulier): add MESRI field 2021-12-16 16:45:18 +01:00
simon lehericey
3bdf6b63d9 small wording fixes 2021-12-08 11:19:30 +01:00
François Vantomme
6ab8ac0662 feat (api particulier): add Pole emploi field 2021-12-08 10:36:25 +01:00
François Vantomme
2110ef072c feat(api particulier): add DGFiP field 2021-12-07 11:03:05 +01:00
Martin
081d5094a9 feat(instructeurs/procedure/dossiers#extend_conservation): add extends duree conservation in action button list, also rewire this action for user [extend by procedure.duree_conservation_dans_ds by default] but force 1.month for instructeur. add new icon for standby based on https://en.wikipedia.org/wiki/Power_symbol 2021-12-06 07:20:01 +01:00
Martin
cf82c030e8 hotfix(scoping): try to avoid requesting archived: false when using termine scope, use state_termine instead 2021-11-26 15:09:53 +01:00
kara Diaby
eaac293da3 add a new tab traités on user dossiers 2021-11-26 09:45:13 +01:00
Martin
3d1533dee9 feat(users/dossiers?statut=dossiers-expirant): add dossiers-expirant tab 2021-11-19 15:14:39 +01:00
Paul Chavard
ae09b37e72 fix(champs): save departement info on champ commune 2021-11-17 14:52:47 +03:00
Paul Chavard
8154daf847 refactor(drop_down_list_champ): other option 2021-10-27 12:00:39 +02:00
simon lehericey
87de9e38c6 allow draft to be saved with invalid cnaf champ 2021-10-12 14:27:20 +02:00
simon lehericey
7072993721 a form can upload numero_allocataire and code_postal 2021-10-12 14:27:20 +02:00
simon lehericey
f662b28baf update identity_updated_at column when user identity change 2021-10-05 12:05:43 +02:00
Pierre de La Morinerie
715b5ea6d8 i18n: move controller keys to the proper scope 2021-09-16 07:59:19 -05:00
Paul Chavard
3235f42a63 feat(dossier): add dossier transfers UI 2021-09-08 15:10:43 +02:00
lydiasan
7de10731a6 i18n: localize dossiers edition 2021-07-20 14:18:20 +02:00
Paul Chavard
280e54b59d Enable test revisions 2021-07-01 15:59:07 +02:00
Paul Chavard
9b0dae4cc2 Fix apostrophes ‘ -> ’ 2021-05-26 18:05:14 +02:00
Paul Chavard
8a74438dc1 Use conservation_extension instead of en_construction_conservation_extension 2021-05-11 17:33:53 +02:00
Paul Chavard
1e0d6ea28f Rename en_construction_conservation_extension to conservation_extension 2021-05-11 14:08:51 +02:00
Paul Chavard
bcbfcdc537 Revert "Merge pull request #6142 from tchak/enable_brouillon_extend_conservation"
This reverts commit 48eb4d9778, reversing
changes made to 5539d5cb8c.

# Conflicts:
#	app/models/dossier.rb
#	db/schema.rb
2021-05-04 16:03:29 +02:00
Paul Chavard
f6508899de Refactor NotificationMailer 2021-05-04 12:05:06 +02:00
Paul Chavard
b2a867266a Allow users to extend conservation on drafts 2021-04-29 19:50:30 +02:00
Pierre de La Morinerie
3499f5af9a models: remove invalid Dossier ↔︎ Champ inverse relationship
`Dossier.champs` is not really an inverse of `Champs.dossier`: when a
Champ record is created, it should not always be added to dossier.champs
(for instance if the champ is private).

NB: this breaks the workaround we added in #3907 to fix the parent
dossier not being touched in some cases (the workaround was to add an
inverse relationship, but we now have to remove it).

The new workaround is to watch for `changed_for_autosave?` on champs.
Unlike `changed?`, `changed_for_autosave?` also detects changes to
attachments. This allows us to touch both `last_champ_updated_at` and
`updated_at` in a single pass.
2021-04-06 10:26:17 +02:00
Pierre de La Morinerie
fc4d8362dc models: fix typo in comments 2021-04-06 10:26:17 +02:00
Pierre de La Morinerie
3f3d6ae399 controllers: use template: rather than file: to render PDFs
ActionView now throws an error if a relative path is used with `file:`.
2021-03-25 13:24:53 +01:00
Paul Chavard
70500e3d56 Groupe instructeur selector default blank 2021-03-09 14:47:23 +01:00
Pierre de La Morinerie
150ddab660 zeitwerk: Api -> API 2021-02-09 13:07:30 +01:00
Paul Chavard
1b5aef10f2 Stop crashing when removed repetition row is submitted 2021-01-27 17:33:55 +01:00
Paul Chavard
9f691dce4c Set external_id from combo search inputs 2021-01-15 11:50:02 +01:00
simon lehericey
d760402393 fix typo 2020-12-16 15:00:26 +01:00
kara Diaby
c7643154d1 final optims after sim review 2020-12-16 15:00:26 +01:00
kara Diaby
f3c4040d2d add grace period to deleted dossiers 2020-12-16 15:00:26 +01:00
simon lehericey
d2f3bb18f9 instructeur can delete a dossier UI 2020-12-16 15:00:26 +01:00
kara Diaby
00b5ad7a10 EQT instructeur, je peux supprimer un dossier terminé 2020-12-16 15:00:26 +01:00
simon lehericey
b187244a29 extract and refactor api errors 2020-12-04 17:07:30 +01:00
simon lehericey
f56235c7ee retry exponentially on api entreprise timeout 2020-12-03 11:52:01 +01:00
simon lehericey
9eab310565 [#5675] for all api entreprise job, retry on 502, 503 2020-12-02 18:25:31 +01:00
Paul Chavard
ec72fdd164 Remove migration service 2020-09-02 11:26:26 +02:00
Pierre de La Morinerie
96037069ff autosave: remove the repetition row after deletion
Before, when autosaving a draft, removing a repetition row would
send `_destroy` inputs to the controller – but not remove the row
from the DOM. This led to the `_destroy` inputs being sent again
on the next autosave request, which made the controller raise
(because the row fields were already deleted before).

To fix this, we let the controller response remove the deleted
row(s) from the DOM.

Doing it using a controller response avoids the need to keep track
of operations on the Javascript side: the controller can easily
know which row was just deleted, and emit the relevant changes for
the DOM. This keeps the autosave requests robust: even if a request
is skipped (e.g. because of a network interruption), the next request
will still contain the relevant informations to succeed, and not let the
form in an unstable state.

Fix #5470
2020-08-25 14:39:34 +02:00
clemkeirua
c772c3454c update dossier after saving champ
update last_champ_updated_at without hook
update last_champ_private_updated_at without hook

Co-authored-by: Christophe Robillard <christophe.robillard@beta.gouv.fr>
2020-07-30 10:18:44 +02:00
clemkeirua
f3a675c3bc update dossier after saving commentaire
update last_commentaire_updated_at without hook

Co-authored-by: Christophe Robillard <christophe.robillard@beta.gouv.fr>
2020-07-30 10:18:44 +02:00
Paul Chavard
d18a9c8162 Migrate procedures “on demand” 2020-07-21 19:35:30 +02:00
Christophe Robillard
f631acd118 update state date in aasm after callbacks
call aasm event methods, not state methods directly
2020-07-08 18:15:15 +02:00
Christophe Robillard
eebfb5ee5b update dossiers_controller when updating siret
now, `ApiEntrepriseService` does'nt return a hash anymore but an
etablissement which is already persisted.
2020-05-20 11:09:54 +02:00
Christophe Robillard
3ddb5a4cb4 store attestation fiscale and display 2020-04-30 11:39:54 +02:00
Christophe Robillard
158b4802ab store attestation sociale and display 2020-04-29 16:25:47 +02:00
Christophe Robillard
339066778d send notif only to the right instructeurs
after a dossier creation, only the instructeurs that belong to the group
instructeur of the dossier, and who want notif will be notified by mail
2020-04-23 13:01:57 +02:00
Christophe Robillard
f683b850c3 Notifie instructeurs le souhaitant lors depot dossier
Notifie par mail uniquement les instructeurs qui le souhaitent à chaque dépôt de dossier
2020-04-09 15:02:05 +02:00
Christophe Robillard
ae18ff6627 Notifie tous les instructeurs lors dépôt dossier
- envoie un mail à tous les instructeurs d'une procédure après le dépôt
d'un nouveau dossier
2020-04-09 14:33:56 +02:00
Christophe Robillard
969478b706 Envoie une notif aux followers_instructeurs le souhaitant
après chaque message déposé par l'usager
2020-04-09 14:17:07 +02:00
Christophe Robillard
415d5c765e envoie une notification à chaque follower_instructeur après un commentaire déposé 2020-04-09 14:17:07 +02:00
clemkeirua
76139dbc71 recherche usager full-text avec plusieurs resultats 2020-04-09 09:42:31 +02:00
clemkeirua
98337f2334 recherche usager full-text avec 1 resultat 2020-04-09 09:42:31 +02:00
clemkeirua
34188c432c refactor _new_header so that user and instructeur search share similar signature 2020-04-09 09:42:31 +02:00
Paul Chavard
c707a21f97 Rename delete_and_keep_track -> discard_and_keep_track 2020-03-26 14:23:23 +01:00
clemkeirua
5896aedeeb added extension bouton to en_construction dossiers bound to expire 2020-03-24 18:10:51 +01:00
Paul Chavard
5c2eba1dd1 Always add a reason to dossier deletion 2020-03-24 09:30:11 +01:00
Christophe Robillard
775cc11d30 include store_location_extension for all controllers 2020-03-20 10:41:36 +01:00
Paul Chavard
c281347da1 Remove restclient 2020-03-17 11:12:14 +01:00
Paul Chavard
c46e012c10 Use dossier.assign_to_groupe_instructeur 2020-03-03 10:30:49 +01:00
clemkeirua
1c3573c7db fix DoubleRender error for brouillon pdf 2020-01-29 14:24:23 +01:00
clemkeirua
bc506bf693 ajout d'un lien d'export pdf usager 2020-01-14 09:29:29 +01:00
Paul Chavard
785a09b326 Use service_url instead of blob_url on secure attachments 2020-01-08 14:43:05 +01:00
Pierre de La Morinerie
b3558c497d dossiers: make build_default_individual explicit
It avoid the use of callbacks, and may avoid situations where an empty
individual is implicitely created.
2020-01-08 10:48:22 +01:00
Pierre de La Morinerie
5e05556ee8 dossiers: add a validation on dossier individual
Validate that a dossier on a `for_individual?` procedure always has
an `individual` associated record.

For this, the individual needs to be built before the record is
validated (i.e. even before the `before_create` callback is run).

This should help with #4596: now if a dossier is created without an
`individual`, or if the `invividual` record is later removed, the
validation will fail.
2020-01-08 10:48:22 +01:00
Pierre de La Morinerie
e32a42cfe6 dossiers: split the dossier creation on several lines 2020-01-08 10:48:22 +01:00
Pierre de La Morinerie
5b2311c851 dossiers: rescue RecordNotFound only for procedures
This ensures that we won't rescue an `ActiveRecord::RecordNotFound`
exception related to another object.
2020-01-08 10:48:21 +01:00
Pierre de La Morinerie
f58f9f9950 dossiers: render a valid response after an autosave
This helps Firefox DevTools to mark the request as valid and completed
successfuly.
2019-11-27 10:37:33 +00:00
Pierre de La Morinerie
5f9a9d059e dossiers: render JSON if needed
When receiving a request that expects JSON, return a simple '200'.

This avoids the unecessary work of rendering all the HTML page (which
ultimately will not be used).
2019-11-20 11:30:27 +01:00
Pierre de La Morinerie
8b8a96abda dossiers: save draft by default (instead of submitting)
Make the default behavior of `update_brouillon` be to update the draft,
instead of submitting the dossier.

This makes all requests made to `update_brouillon` without specifying
an extra `submit_draft` parameter to just save the draft. It will make
autosaving the draft easier and safer.
2019-11-20 11:24:31 +01:00
Paul Chavard
f5c80f211d Guard for missing attestation on dossier 2019-11-06 12:54:07 +01:00
simon lehericey
b7434c3132 User can choose its gi 2019-10-17 15:48:14 +02:00
Paul Chavard
8fcf1353f3 Remove duplicated attachments 2019-09-17 18:12:53 +02:00
Paul Chavard
347f03d2a9 Redirect to pdf attachement old name if not attached 2019-09-10 15:06:47 +02:00
simon lehericey
4da12ed3e8 User/DossierController: dossier are linked to default group by default 2019-09-03 06:47:02 +02:00
benjaminhenkel
73d643d1be Update flash message for test demarche 2019-08-28 14:54:17 +02:00
Paul Chavard
32563c3675 Redirect to active_storage files when available 2019-08-27 17:43:33 +02:00
clemkeirua
707e8a0004 dossier_controller#new uses info from FC if any 2019-08-01 17:42:32 +02:00
Pierre de La Morinerie
5502f2e42e dossier: remove UI for uploading old pieces justificatives 2019-07-30 16:11:16 +02:00
Pierre de La Morinerie
a8354bd103 dossiers: unify deletion of dossiers between manager and user
The code paths for deleting a dossier were different, depending on
whether the dossier was deleted by the user, or from the Manager.

This commit unifies the two code paths into one.

This has the effect of:

- An operation log is now recorded when an user deletes its own dossier;
- Gestionnaires are now notified even when the dossier is deleted from
  the Manager;
- The `support:delete_user_account` task now requires the email address
  of the author.
2019-07-16 16:22:20 +02:00
Paul Chavard
3cb39c2840 Refactor message attachements to use active_storage 2019-07-10 15:35:29 +02:00
Paul Chavard
ff44b7a600 Refactor purge pj to be more generic 2019-05-29 15:54:51 +02:00
Paul Chavard
4a9ef5d12e Always use purge_later 2019-05-21 14:05:33 +02:00
Pierre de La Morinerie
e06e32238c api_entreprise: display a specific error message on network errors 2019-05-02 11:24:38 +02:00
Paul Chavard
1c71355574 Better warnings in test mode 2019-04-30 11:03:24 +02:00
Pierre de La Morinerie
ded5b70444 app: rename new_user to users 2019-03-25 10:56:39 +01:00
Paul Chavard
cfd1950e17 Migrate commencer to new_user 2018-11-01 13:10:41 +01:00
Paul Chavard
725e88a89a Rename :procedure_path -> :path 2018-10-30 12:01:45 +01:00
Paul Chavard
641831864b Refactor commencer actions 2018-10-30 12:01:45 +01:00
Pierre de La Morinerie
65bdfacd8c dossier: remove old SIRET code, controllers and views 2018-10-18 15:46:00 +02:00
Pierre de La Morinerie
54ba0f8e50 dossier: add new page for SIRET identification 2018-10-17 10:37:06 +02:00
Paul Chavard
cc96723475 Allow users to fill dossiers on démarches en brouillon 2018-10-09 15:05:08 +02:00
gregoirenovel
5f8e8caeb5 Stop auto copying the FC infos to the dossier identity 2018-10-04 13:54:07 +02:00
Paul Chavard
941c529b2c Remove CGU checkbox
fix #2725
2018-10-03 08:59:02 +02:00
gregoirenovel
b994fa4206 Do one thing per line 2018-10-01 16:15:46 +02:00
Paul Chavard
f3333595a0 Drop text_summary endpoint 2018-09-07 19:41:34 +01:00
gregoirenovel
5ac8117c69 DossierController#modifier → #brouillon 2018-09-07 10:19:10 +02:00
gregoirenovel
00ecae5f93 Procédure → Démarche 2018-09-05 15:46:24 +02:00
gregoirenovel
47962ef795 Simplify route_authorization 2018-08-30 13:16:14 +02:00
gregoirenovel
4b071ecf06 Use enum to the fullest with Dossier.states 2018-08-29 17:31:08 +02:00
Paul Chavard
097b06e314 Fix test dossier page 2018-08-14 16:47:31 +02:00
Pierre de La Morinerie
f5d3adba5e dossiers: remove unused dossiers list code
This code is unused since the user dossiers list uses the new UI.
2018-07-04 12:23:49 +02:00
Pierre de La Morinerie
b4b533f0c5 dossiers: change all links to use the new user dossiers list 2018-07-02 13:58:58 +02:00
Paul Chavard
d99eed122d Use new models in controllers and views 2018-05-24 17:54:51 +02:00
simon lehericey
d2dc69cde0 Connection: redirect user to its procedure 2018-05-23 15:55:52 +02:00
Frederic Merizen
d1bbb8023a Remove smartlisting workaround
As it was fixed upstream in 1.2.2
2018-05-23 15:53:58 +02:00
Paul Chavard
ceddf65f6c Fix crash with inexistent paths 2018-05-23 15:36:50 +02:00
Paul Chavard
94d253c6dc Add commencer/test/:procedure_path route 2018-05-23 11:32:26 +02:00
gregoirenovel
be672e19bc ApiEntrepriseService #fetch -> #get_etablissement_params_for_siret 2018-04-10 12:26:06 +02:00
gregoirenovel
ace8441ec7 SIRETService -> ApiEntrepriseService 2018-04-10 12:24:49 +02:00
simon lehericey
c019cb623a Individual: use birthdate as a ... date :) 2018-04-04 13:19:39 +02:00
simon lehericey
1f536c94ab Individual: missing individual part in old controller 2018-04-04 12:25:54 +02:00
simon lehericey
46fd213ad2 Individual: old controller does not care about individual anymore 2018-04-03 21:16:54 +02:00
Paul Chavard
fd8674dffc Give procedure_id to SIRETService 2018-03-29 17:57:09 +02:00
Paul Chavard
6b7d0ccb82 Remove unused rescue in SIRET form controller 2018-03-27 13:56:22 +02:00
Paul Chavard
a17ac5a9db Remove debug logger 2018-03-26 17:44:51 +02:00
Frederic Merizen
2fa88a432b Add missing brackets around parameters in method definitions 2018-03-20 17:54:51 +01:00
gregoirenovel
d0a59058e8 Remove the mandataire_social guess
Rationale:
- is true for only 0.06% of Dossiers
- is not displayed anymore anyways
- will be a rare case for now
  * FC adoption is not insane
  * FC used more for personal than professional
    matters
  * not always the mandataires sociaux that fill
    dossiers for their companies, so not that
    relevant
- we can add it back later
2018-03-20 16:09:00 +01:00
Paul Chavard
6ef141b014 Build instead of create etablissement 2018-03-07 17:43:44 +01:00
gregoirenovel
e26f4148ff Bump development gems
- brakeman
- rubocop
- scss_lint
2018-03-06 16:17:22 +01:00
gregoirenovel
fe7f8da636 Revert "Bump development gems"
This reverts commit d6ad3fc3fd.
2018-03-06 15:11:26 +01:00
gregoirenovel
d6ad3fc3fd Bump development gems
- brakeman
- rubocop
- scss_lint
2018-03-06 10:36:35 +01:00
Mathieu Magnin
cc648fcdb3 Log siret behaviour to investigate Sentry #2371 2018-03-05 17:46:42 +01:00
Paul Chavard
94a503a2c4 Fix create dossier with siret 2018-02-28 17:16:03 +01:00
Paul Chavard
896518f3d5 add SIRETService 2018-02-27 16:22:53 +01:00
simon lehericey
a0667f5ad9 [fix #1411] user: link new screen to the rest of the application 2018-02-27 15:24:51 +01:00
Mathieu Magnin
3e5621f633 [Fix #1409] Plug identite new design to current workflow 2018-02-20 11:01:47 +01:00
Mathieu Magnin
50f35ee905 [Fix #1296] Birthday field is optional in procedure 2018-02-07 15:57:48 +01:00
Frederic Merizen
0ce26055d8 [#1374] Revert "Merge pull request #1373 from betagouv/fix_pagination"
This reverts commit 5a56fe0182, reversing
changes made to 31aabcd6b6.
2018-01-30 15:04:21 +01:00
simon lehericey
691b12688d Revert "[#1360] Upgrade SmartListing to fork of 1.2.1"
This reverts commit 506a505477.
2018-01-29 17:43:30 +01:00
Frederic Merizen
506a505477 [#1360] Upgrade SmartListing to fork of 1.2.1 2018-01-25 17:47:10 +01:00
gregoirenovel
b138dcd876 Enable the Layout/SpaceInsideHashLiteralBraces cop 2018-01-18 10:53:35 +01:00
gregoirenovel
0be657c0d7 Enable the Layout/IndentHash cop 2018-01-15 22:33:12 +01:00
gregoirenovel
7c34807f46 Don’t use unless 2018-01-12 11:32:43 +01:00
Simon Lehericey
72bae2c374 [fix #504] Dossier: draft -> brouillon 2017-12-15 11:52:09 +01:00
gregoirenovel
7be86796c1 After deleting a brouillon, stay on the brouillon tab
Instead of redirecting on another tab
2017-10-19 11:20:52 +02:00
Mathieu Magnin
a3b069e501 [Fix #589] When getting birthdate from France Connect format it to ISO 2017-08-01 16:47:44 +02:00
Mathieu Magnin
03fde0a502 [FIX #589] Force birthdate format when saving 2017-08-01 16:47:43 +02:00
Mathieu Magnin
1aabc6c82b [FIX #589] Validate birthdate from user input 2017-08-01 16:47:43 +02:00
gregoirenovel
cfec05506a Rename Procedure#archived? -> #archivee? 2017-07-13 15:32:13 +02:00
gregoirenovel
fc2540649f Add the publiees scope on Procedure 2017-07-13 14:46:07 +02:00
Simon Lehericey
693c2a43ac [Fix #592] mutualize sanitize and clean flash messages 2017-07-13 10:14:16 +02:00
gregoirenovel
411c5791c8 Use the not_archived Procedure scope 2017-07-10 17:24:43 +02:00
gregoirenovel
5f50f76341 Add the published scope en Procedure 2017-07-10 16:54:01 +02:00
Mathieu Magnin
aa929bb5b2 [Fix #554] If procedure is hidden, then don't crash 2017-07-06 14:40:06 +02:00