Commit graph

4554 commits

Author SHA1 Message Date
Pierre de La Morinerie
06afc3890f france_connect: raise an error if some validation error occurs
If a validation error occurs in `find_or_create`, an object without `id`
will be returned–and the code will crash soon after.

Ensure that we crash immediately, so that we can report the root cause
(the validation error) instead of a seemingly-unrelated crash later.
2019-07-09 15:50:28 +02:00
Pierre de La Morinerie
6b27ac8514 france_connect: make existing user lookup case-insensitive
Fix #4053
2019-07-09 15:50:28 +02:00
Pierre de La Morinerie
ecfccae6f0 dossiers: remove support for Dossier#expects_multiple_submissions 2019-07-09 14:50:11 +02:00
Pierre de La Morinerie
d77a5552b7 dossiers: allow to start a new dossier after submitting one 2019-07-09 14:44:36 +02:00
Pierre de La Morinerie
b5ed74c09d dossiers: always allow to create a new dossier
Turns out this is confusing for users (some UI elements are present for
some procedures, but not for others).

Better enable it for everyone.
2019-07-09 14:44:30 +02:00
simon lehericey
ea79b9a595 typo: use ’ 2019-07-09 11:55:17 +02:00
simon lehericey
d36f6ebcd7 [fix #1709] A user can change its email 2019-07-09 11:55:17 +02:00
simon lehericey
d68d2be798 Profil: accessible to all roles 2019-07-09 11:55:17 +02:00
clemkeirua
39f72a2be3 courbage d'apostrophes 2019-07-09 10:59:42 +02:00
clemkeirua
44fa210e34 changement du choix particulier/entreprise lors de creation d'une procedure 2019-07-09 10:59:42 +02:00
Paul Chavard
ad0a74ea7c Fix dates in dossiers export 2019-07-09 10:02:08 +02:00
Pierre de La Morinerie
422f4b9cdb dossiers_controller: warn properly when instructing a dossier twice
Fix #4055
2019-07-08 17:58:45 +02:00
Nicolas Bouilleaud
930fd345de Validate messagerie_available? when creating a new Commentaire
Commentaires bu Users and Gestionnaire need the messagerie to be available; Automatic system Commentaires can be created anytime.

This reintroduces Commentaire validation that was introduced in #3979 and disabled in #4018
2019-07-08 16:13:43 +02:00
Nicolas Bouilleaud
3f439ac07a Add Commentaire.is_sent_by_system? and .is_sent_by(someone)
And use it in CommentaireHelper and in the _message_icon and _message_issuer partials
2019-07-08 16:06:44 +02:00
Nicolas Bouilleaud
2abd93d360 Display the full User email in Commentaires
* Only redact gestionnaires’ emails
* Also, rename Commentaire.sender to Commentaire.redacted_email
2019-07-08 16:06:44 +02:00
Nicolas Bouilleaud
3bf19de124 Remove Commentaire::columns override
It was used for a cleanup migration a long time ago (see #233, #3033, #3043)
2019-07-08 16:06:44 +02:00
Nicolas Bouilleaud
7e98213829 Pass the signed-in user as the commentaire author from /contact 2019-07-08 16:06:44 +02:00
Nicolas Bouilleaud
72fd5d250f Respect dossier.messagerie_available? in SupportController (/contact) 2019-07-08 16:06:44 +02:00
Nicolas Bouilleaud
12008728d2 Actually respect dossier.messagerie_available? in _messagerie.html.haml
instead of dossier.archived?

(fixup after #3979)
2019-07-08 16:06:44 +02:00
Chaïb Martinez
c43b0c00db minor text change [fix #4050]
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-07-08 14:46:47 +02:00
Chaïb Martinez
94d340d25c Remove phone number
Add chat link

Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-07-08 14:32:55 +02:00
Chaïb Martinez
0fdae2456b We will not quibble
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-07-08 14:20:49 +02:00
Nicolas Bouilleaud
4d73275bab Drop Procedure.administrateur_id 2019-07-04 17:01:12 +02:00
maatinito
fee3ef8f4f A4 output and allows large logos (headers) to take the whole width of the page 2019-07-03 15:31:34 -10:00
Paul Chavard
05987223db Avoid crashing when demarche have no service 2019-07-03 17:18:44 +02:00
Paul Chavard
e582ff729c Add aasm to dossiers state 2019-07-03 13:37:27 +02:00
Mathieu Magnin
10d3ba10f2 Before save copy body in rich_body 2019-07-03 13:15:49 +02:00
Mathieu Magnin
d13b7f953f Migrate mail body to ActionText 2019-07-03 13:15:49 +02:00
Mathieu Magnin
b34f8fbe3d Add ActionText 2019-07-03 13:15:49 +02:00
simon lehericey
4b154983fb Landing: voir les démarches -> comment trouver ma démarche 2019-07-03 12:59:09 +02:00
Paul Chavard
860588b216 Upgrade javascript dependencies and add actiontext 2019-07-03 11:42:25 +02:00
simon lehericey
522d7684ea dossier state button in red when refused 2019-07-02 18:40:20 +02:00
simon lehericey
c7e10fc43f Manager: remove repasser_en_instruction 2019-07-02 18:40:20 +02:00
simon lehericey
b2c987ff0d [fix #3683] Dossier: add repasser_en_instruction! 2019-07-02 18:40:20 +02:00
simon lehericey
b79220e711 UI 2019-07-02 18:35:47 +02:00
Paul Chavard
8cb6b348a4
Update app/views/gestionnaires/procedures/_download_dossiers.html.haml
Co-Authored-By: Nicolas Bouilleaud <nico@bou.io>
2019-07-02 14:52:56 +02:00
Paul Chavard
fb0ef15e3c Export dossiers v2 2019-07-02 14:20:29 +02:00
Paul Chavard
46c1bbbc6f Official support for declarative demarches 2019-07-02 14:12:26 +02:00
Nicolas Bouilleaud
bd666a53af Reallow automatic Commentaires for archived/closed Dossier 2019-07-01 11:59:29 +02:00
Nicolas Bouilleaud
3fee1c7644 Fix UpdateAdministrateurUsageStatisticsJob not being properly scheduled 2019-07-01 11:14:26 +02:00
Chaïb Martinez
e7b868c16f Bug fix
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-07-01 11:13:36 +02:00
Chaïb Martinez
017f914e21 Add admin roi low and high
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-07-01 11:13:36 +02:00
Nicolas Bouilleaud
bd47bf2691 Disable Messagerie in archived Dossiers and procedures
* Use the existing Dossier#messagerie_available? method
* Raise when attempting to build a Commentaire if not messagerie_available?
* Disable the Messagerie form if not messagerie_available?
* Add tests :)
* Tweak the Horaires formatting while we’re here.
2019-07-01 09:39:39 +02:00
Paul Chavard
0d80c48b7e Add avis to api 2019-06-27 14:40:17 +02:00
Paul Chavard
7f8079b5bb Download active_storage blobs through proxy 2019-06-26 15:32:57 +02:00
Paul Chavard
aad4025ce0 Revert "Download active_storage blobs through proxy"
This reverts commit 0b39da7080.
2019-06-26 15:31:35 +02:00
Paul Chavard
0b39da7080 Download active_storage blobs through proxy 2019-06-26 15:07:40 +02:00
Paul Chavard
7a2e9fe8a4
Merge pull request #3990 from betagouv/benjamin-alerte
Minor text change
2019-06-25 16:39:38 +01:00
Paul Chavard
c5704fa22f Remove unused code from Commentaire 2019-06-25 17:04:29 +02:00
benjaminhenkel
1200d25f26
Update _list.html.haml 2019-06-24 17:00:10 +02:00
Pierre de La Morinerie
50cf6059e6 tasks: ensure creating an empty champ doesn’t display a notification 2019-06-24 15:49:02 +02:00
Nicolas Bouilleaud
44b9a2ef12 Include application_helper in ApplicationMailer
fixes a crash in activate_before_expiration.haml (sentry RAILS-40)
2019-06-21 09:50:33 +02:00
Paul Chavard
1781a49932 Add order param to API 2019-06-20 15:28:16 +02:00
Pierre de La Morinerie
9ce92d5c3b champs: show attachment actions only when the atachment is persisted
Fix #3961
2019-06-20 11:03:08 +02:00
Pierre de La Morinerie
d561936863 task: ensure that hidden dossiers are rolled back 2019-06-20 10:48:56 +02:00
Pierre de La Morinerie
f8dda3ae45 tasks: don't abort rollback when a dossier fails
Instead print a warning, and continue rolling back the other dossiers.
2019-06-20 10:31:23 +02:00
Pierre de La Morinerie
91393be13c tasks: extract rollback to a separate method 2019-06-20 10:31:23 +02:00
Nicolas Bouilleaud
43f936ec77 Do not check for path availability when in the “new procedure” form
The user can’t even enter the path here, it’s nil.

fixes #3918

The @availability was always PATH_NOT_AVAILABLE when the form was reloaded after an error, because Procedure::path_availability always found an (archived) procedure with a nil path. It got confused and concluded its path was conflicting.

🤷🏻‍♂️
2019-06-18 14:31:12 +02:00
Nicolas Bouilleaud
eb592f8ddf Add manager controller for bill signatures 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
925edb01c7 Add OperationsSignatureJob 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
ad3553f0be Add BillSignature Service 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
f355f849a6 Add BillSignature Model 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
dace9a53d3 Add Universign timestamp API query 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
e16cb731c5 Add poor man’s ASN1 parsing 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
7e80b8a4dc Enable the Rails/InverseOf cop and add missing inverse_of 2019-06-17 13:44:07 +02:00
Pierre de La Morinerie
51aacabf13 models: fix touch not propagating when using nested attributes
Sometimes, when using nested attributes, touch doesn’t propagate to
parent relationships. (see https://github.com/rails/rails/issues/26726)

Specifically, this happens in our app when updating a dossier with
only new attachements (but without changing the value of any fields).

To work around this, we need to define the parent relationship
explicitely. This is good practice anyway.

Fix #3906
2019-06-17 13:44:07 +02:00
Pierre de La Morinerie
1a832388fe brouillon: clarify the "How to save" explanations 2019-06-17 11:12:26 +02:00
Pierre de La Morinerie
f12668fbfb tasks: prevent the PJ migrations task updating from touching dossiers 2019-06-12 19:07:45 +02:00
Pierre de La Morinerie
60a61da644 tasks: extract dossier migration to a separate method 2019-06-12 18:58:47 +02:00
pedong
7ef1a558f4 change date format for all, use try_format_date of helper 2019-06-12 17:48:12 +02:00
simon lehericey
ee296f2b44 Use default format for date and datetime champ 2019-06-12 17:48:12 +02:00
pedong
abcd58c35d [fix #3710] date with letter
Co-Authored-By: simon lehericey <mail@simon.lehericey.net>
2019-06-12 17:48:12 +02:00
Nicolas Bouilleaud
5acb7a3f1b Make rubocop happy
I did make some changes some lines above this 🤷.
2019-06-12 17:33:53 +02:00
Nicolas Bouilleaud
1ac6cad132 Display previous followers in “personnes impliquées” 2019-06-12 17:33:53 +02:00
Nicolas Bouilleaud
6b90bc1ea1 Add “previously followed” dossiers and gestionnaires
Using an “inactive” Follow scope, similar to the “active” scope.

(I was tempted to use a default_scope, but this breaks when trying to `unscope` it in associations.)
2019-06-12 17:33:53 +02:00
Nicolas Bouilleaud
be4c575622 Add Follow.unfollowed_at
The active scopes is used indirectly in the dossier<->gestionnaire associations: the existing tests in dossier and gestionnaire just work™.
2019-06-12 17:33:53 +02:00
Nicolas Bouilleaud
d417907f36 Just rely on the constraints to avoid duplicate Follows
Don’t check manually in advance: just try to create the new Follow and silently fail.

Since we have both Rails validation and DB constraints in place, we have two types of errors to check. I’m not actually sure this change improves the legibility of the code.
2019-06-12 17:33:53 +02:00
Nicolas Bouilleaud
ba48a1da6e Ensure Follow dates can not be not null
* Add Follow.unfollowed_at
* Change the unicity constraint to gestionnaire/dossier AND unfollowed_at
2019-06-12 17:33:53 +02:00
Nicolas Bouilleaud
8e04b4f0c9 Clear the “add admin” field after submit
Extract the add_admin form to its own partial and re-render it when an admin is successfully added.
2019-06-12 16:58:30 +02:00
Pierre de La Morinerie
55c9dfc001 api_entreprise: display better error message when SIRET is private
Previously we blamed the network.

Now we say that the entreprise infos cannot be retrieved. Which is not
ideal, but better.
2019-06-12 11:58:04 +02:00
Pierre de La Morinerie
78f75744e3 javascript: fix payload of ActiveStorage events missing on IE 11
Under some circumstances (like dispatching events just before a page
navigation), IE 11 events will be dispatched twice by the browser: once
with the payload, and a second time without.

To prevent these errors, ignore the events if the payload is missing.
2019-06-06 15:00:57 +02:00
Chaïb Martinez
eccd456325 Add crisp
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-06-05 17:41:47 +02:00
Paul Chavard
5a216b5583 Fix default button type
fix #3924
2019-06-04 17:59:02 +02:00
Chaïb Martinez
9198f7f437 Remove useless select options
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-06-04 16:55:11 +02:00
Chaïb Martinez
3b513af32a Add nb_of_dossiers by years and deadline to PipeDrive Person
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-06-04 16:55:11 +02:00
Paul Chavard
6d312e1716 spec: refactor wait_for_ajax to work with out new ajax utils
`wait_for_ajax` is not used anymore, but it may be in the future.
2019-06-04 16:30:36 +02:00
Paul Chavard
d5911071f8 Return dossiers on api with stable order 2019-06-04 15:34:49 +02:00
Pierre de La Morinerie
1f69c6c6eb stylesheets: fix font of dropdown items on Firefox
Styling `<select>` elements is notoriously hard. Here, it seems that
Firefox doesn't handle custom fonts on `<option>` elements. As we have
no fallback font, the browser uses its default font, Times.

Having fallback fonts is good practice anyway.
2019-06-04 11:37:40 +02:00
Pierre de La Morinerie
f2f16e2580 carte: disable tiles layer during tests
During integration tests, we don't want to load the tiles from OSM:

- It hits OSM servers during every test run;
- It it slow (Capybara waits for the tiles to be loaded to proceed);
- It makes test time out when tiles cannot be loaded for some reason.

Fix #3913
2019-06-03 17:24:15 +02:00
Paul Chavard
ff44b7a600 Refactor purge pj to be more generic 2019-05-29 15:54:51 +02:00
Pierre de La Morinerie
a8847e40ea pj migration: add comments and notices 2019-05-29 14:46:49 +02:00
Pierre de La Morinerie
6cb02f2927 pj migration: handle signal interrupts 2019-05-29 14:46:49 +02:00
Pierre de La Morinerie
1a256b37f8 pj migration: print a notice when migrating missing files 2019-05-29 12:20:10 +02:00
Pierre de La Morinerie
a168ae3a72 pj migration: reduce the number of queries by preloading champs 2019-05-29 12:20:10 +02:00
Pierre de La Morinerie
10df7b70ee carrierwave: when migrating, create an empty blob if file is missing 2019-05-28 18:19:33 +02:00
Pierre de La Morinerie
44c410d40d piece_justificative_service: fix for missing order_place
In production some pieces justificatives don't have an order place.

In this case, insert the champs after the ones that have an order place.
2019-05-28 17:20:07 +02:00
Pierre de La Morinerie
d410e31344 active_storage: document the virus scan hooks 2019-05-28 11:39:22 +02:00
Pierre de La Morinerie
52b7a82932 services: mark attachments migrated from CarrierWave as safe
This avoids to enqueue thousands of scans when migrating the PJs of
a whole procedure.
2019-05-28 11:39:22 +02:00
Pierre de La Morinerie
4cf54e0d28 tasks: add progress report to the pjs migration task
Progress is indicated per migrated champ.
2019-05-28 10:42:18 +02:00
Pierre de La Morinerie
21ac60ad04 tasks: add a task to migrate pjs of procedures in batches 2019-05-28 10:42:18 +02:00