Commit graph

5096 commits

Author SHA1 Message Date
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
Paul Chavard
e61e39d345 Remove unused code and tests 2020-01-07 11:52:51 +01:00
Paul Chavard
ff46ee366e Fix user brouillon spec 2020-01-07 11:52:51 +01:00
Paul Chavard
4bbd16576b Add champ communes 2020-01-07 11:52:51 +01:00
Paul Chavard
22aa2d4ee0 Make all location champs autocomplete 2020-01-07 11:52:51 +01:00
Paul Chavard
fa2eea81aa Cleanup demarche archivee state 2020-01-07 11:13:42 +01:00
clemkeirua
4f604c8b0a put the strike banner behind a feature-flip 2020-01-06 15:25:43 +01:00
Pierre de La Morinerie
a5f2c84cbf sign_up: fix suggestions error when navigating away
When navigating away from the page, the field receives the 'focusout'
event – but stops to be present in the DOM.

Thus we need to check that the DOM element is actually present.
2019-12-19 17:45:14 +01:00
Pierre de La Morinerie
8eb295d67e dossiers: avoid exceptions on invalid AASM transitions
When attempting an invalid transition on a dossier, provide a meaningful
error message (instead of letting an `AASM::InvalidTransition` exception
propagate).

This handles not only the case where the same state is applied twice
(which was already handled manually), but all cases where the transition
is invalid.
2019-12-19 13:25:32 +01:00
Pierre de La Morinerie
c7a307553c helpers: allow dossier_display_state to take a state as input
This allow to use either:

- `dossier_display_state(dossier)`
- `dossier_display_state(:en_construction)`
2019-12-19 13:22:40 +01:00
simon lehericey
2ee559c748 Fix typo in purges_stale_exports_job filename 2019-12-18 13:35:04 +01:00
simon lehericey
60538c9c28 Controller use new export model 2019-12-18 13:13:15 +01:00
simon lehericey
745086cbb5 Simplify view 2019-12-18 13:13:15 +01:00
simon lehericey
ce7ab89934 Add purge stale export job 2019-12-18 13:13:15 +01:00
simon lehericey
d0939ae1a4 Add Export Model 2019-12-18 13:13:15 +01:00
simon lehericey
d0f0533a32 Remove unused code 2019-12-18 13:13:15 +01:00
simon lehericey
f069f6f779 Make the new instructeur receive the affectation mail 2019-12-16 18:20:00 +01:00
simon lehericey
c02e8b9553 Routing: send emails to the right group 2019-12-16 17:47:08 +01:00
clemkeirua
c2c3f05262 p'tit fix d'utilisabilité 2019-12-16 09:49:23 +01:00
simon lehericey
278659dcb3 fix footer without tel 2019-12-12 15:57:47 +01:00
maatinito
9672d892e9 Bug with time zone: Time.zone.today looses time_zone and may breaks database comparisons 2019-12-11 17:34:10 +01:00
simon lehericey
058442c84e [link to #4557] An instructeur cannot change its email on its own 2019-12-11 17:18:21 +01:00
simon lehericey
21910c959e @current_user -> current_user 2019-12-11 17:18:21 +01:00
simon lehericey
301653bb89 Only display email form if the user is not instructeur 2019-12-11 17:18:21 +01:00
Paul Chavard
6b5793f0b9 [GraphQL] fix a crash in mutations with an attachment 2019-12-11 13:22:32 +01:00
Paul Chavard
422b7f37ec [GraphQL] expose file information 2019-12-11 12:34:49 +01:00
Pierre de La Morinerie
ef76af5546 app: add a site-wide banner for the national strike 2019-12-04 17:32:04 +01:00
Paul Chavard
2f060fc30a Add depubliee state to procedures 2019-12-04 16:52:41 +01:00
Paul Chavard
3a142fea40 Isolate react components from react loaders 2019-12-04 16:26:59 +01:00
Paul Chavard
03326169c5 Always load IntersectionObserver to fix old browsers
fix #4614
2019-12-04 16:26:59 +01:00
Pierre de La Morinerie
7f2d5f6248 app: unify pre-maintenance banner with other site-wide banners 2019-12-04 15:29:15 +01:00
Pierre de La Morinerie
704ac64f63 stylesheet: move all browser banner styles into site-banner.scss 2019-12-04 15:25:37 +01:00
Paul Chavard
e5f582d644 Afficher la description du champ répétable
fix #4579
2019-12-04 14:28:31 +01:00
Paul Chavard
b5eafdab56 [GraphQL]: informations du service 2019-12-04 14:21:40 +01:00
Paul Chavard
fd42fafcb4 [GraphQL]: informations du demandeur du dossier 2019-12-04 12:39:29 +01:00
Paul Chavard
34afc44813 Expose declarative démarche state in GraphQL 2019-12-04 12:30:26 +01:00
Paul Chavard
e429c79eb1 Allow administrators to set themselves démarches as déclaratives 2019-12-04 12:30:26 +01:00
Christophe Robillard
e35dcad5ae rend le téléphone obligatoire côté client 2019-12-04 05:34:43 +01:00
Christophe Robillard
77b647fe25 N'affiche pas un telephone inexistant d'un service 2019-12-04 05:34:43 +01:00
Christophe Robillard
6eb36482bc rend lisible l'explication d'un contact valide 2019-12-04 05:34:43 +01:00
Christophe Robillard
8ee6657f1e rend le champ telephone optionnel côté client 2019-12-04 05:34:43 +01:00
Christophe Robillard
4e7c779116 refuse les numéros de tel invalides
rend facultatif les numéros de téléphone
2019-12-04 05:34:43 +01:00
Christophe Robillard
b60aff8468 explique en détail l'importance de renseigner des info de contact valides 2019-12-04 05:34:43 +01:00
Christophe Robillard
0b518844dc explique pourquoi un tel valide est important 2019-12-04 05:34:43 +01:00
simon lehericey
508ba8f116 Add seek_and_destroy_expired_dossier 2019-12-03 17:18:53 +01:00
simon lehericey
006e426a11 Work on deletion mail 2019-12-03 17:18:53 +01:00
simon lehericey
79bfb8b143 Delete expired dossiers 2019-12-03 17:18:53 +01:00
simon lehericey
6391f7ff9c Work on notify_near_deletion mailer 2019-12-03 17:18:53 +01:00