simon lehericey
d5da7916e5
Placeholder not allowed in date input
2019-11-21 15:34:59 +01:00
simon lehericey
f45ede7f44
href should not contain space
2019-11-21 15:34:59 +01:00
clemkeirua
f2c69400aa
add rescue_from to UserDeviseMailer
2019-11-21 14:59:30 +01:00
Pierre de La Morinerie
6de5c0c9d1
autosave: make requests time out
...
This avoids recent requests being stuck because an older request never
finished.
2019-11-21 14:00:06 +01:00
Pierre de La Morinerie
68f5aae99d
autosave: add feature test
2019-11-21 14:00:06 +01:00
Pierre de La Morinerie
bff7892ba8
dossiers: autosave drafts
2019-11-21 14:00:06 +01:00
Paul Chavard
0c6705f7fd
Drop old export service
2019-11-21 10:25:40 +01:00
clemkeirua
be7fde1103
fix UnknownFormat raised in Instructeurs::ProceduresController#download_export
2019-11-21 09:52:38 +01:00
Pierre de La Morinerie
74a9db6580
javascript: make utils resilient to missing elements
2019-11-20 17:36:09 +01:00
Christophe Robillard
b42f21264e
permet le suivi auto après envoi instructeur
...
Close #4163
2019-11-20 16:41:30 +01: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
Pierre de La Morinerie
03a7bc3d5a
dossiers: give the edit form an unique id
2019-11-20 11:24:31 +01:00
Pierre de La Morinerie
b90cd9f28f
styles: fix hover on dropdown items
...
More specifically, fix items in the Help dropdown displaying a pointer
cursor on the whole area – where only the links inside the item should
have the hover cursor.
Also, having a `cursor: pointer` rule applied only on hover state is
difficult to debug: better to apply it always, and let the browser
handle it.
2019-11-20 10:48:53 +01:00
simon lehericey
59d5cd7abc
fix label > div by label > span
2019-11-19 15:14:06 +01:00
simon lehericey
45ff1fd697
Change span by div to fix Element p not allowed as child of element span
2019-11-19 15:14:06 +01:00
simon lehericey
4a5059ed34
Add alt='' to decorative image https://www.w3.org/WAI/tutorials/images/decorative/
2019-11-19 15:14:06 +01:00
simon lehericey
0e6ffd0baa
Fix table layout: tbody was wrapped in thead
2019-11-19 15:14:06 +01:00
simon lehericey
279696451e
Fix html: Element div not allowed as child of element span
2019-11-19 15:14:06 +01:00
simon lehericey
59432594a0
Header: same outline for the search button
2019-11-19 15:14:06 +01:00
simon lehericey
9f6b9c5028
Make the help button accessible for keyboard
2019-11-19 15:14:06 +01:00
simon lehericey
0a3a47339c
Add title to print button
2019-11-19 15:14:06 +01:00
simon lehericey
41445564b4
Remove unused .header-help div
2019-11-19 15:14:06 +01:00
simon lehericey
fa808c8010
Make login w3c compatible again
2019-11-19 15:14:06 +01:00
simon lehericey
dae7a3bfd0
[ fix #4529 ] Log user email in manager space
2019-11-19 12:15:03 +01:00
Paul Chavard
e600aceccc
[GraphQL]: add dossier state change mutations
2019-11-19 11:51:34 +01:00
simon lehericey
3217f18a0b
Simple wording
2019-11-18 17:08:51 +01:00
simon lehericey
874439580b
Pluralize some texts
2019-11-18 17:08:51 +01:00
simon lehericey
67495e9662
Add person icon to table
2019-11-18 17:08:51 +01:00
simon lehericey
9ca026a630
Use a select2 box for looking to instructeurs
2019-11-18 17:08:51 +01:00
benjaminhenkel
2f6b1fa302
Maj message quand messagerie désactivée
2019-11-18 14:28:05 +01:00
simon lehericey
efd35a3de7
Accessibility: outline links to ease keyboard navigation
2019-11-14 09:50:04 +01:00
Paul Chavard
ba03dbf8dd
[GraphQL] Add dossierEnvoyerMessage mutation
2019-11-13 19:54:27 +01:00
Paul Chavard
3db741b6b6
[GraphQL]: add ValidationErrorType
2019-11-13 19:54:27 +01:00
Paul Chavard
9ce81f665b
[GraphQL]: fix geo_areas docs
2019-11-13 15:53:56 +01:00
Paul Chavard
a23e84bc57
[GraphQL]: more docs
2019-11-13 15:53:56 +01:00
Paul Chavard
ea6667ff9f
[GraphQL]: démarche and dossier number should be a number
2019-11-13 15:53:56 +01:00
Paul Chavard
556ec351f3
Drop email on instructeurs
2019-11-13 15:38:44 +01:00
Paul Chavard
2874b31c44
Bump activestorage-openstack
2019-11-13 11:59:43 +01:00
Pierre de La Morinerie
88373ddf20
individual: raise when the individual object cannot be created
...
Currently, a number of dossiers in production are for procedures for
individuals, but don't have a `individual` object.
This is probably because creating the Individual from France Connect
infos fails – but fails quietly, and nullify the relationship.
As a first step, we now raise an exception when the creation from FC
infos fails. We will then identify the issue, and see if we can fix it –
or if we should be resilient to this kind of issues.
2019-11-12 18:29:37 +01:00
Paul Chavard
ac092089ff
Remove service.siret from manager
2019-11-12 17:39:36 +01:00
Paul Chavard
fa741c9bae
[GraphQL]: do not return dossiers brouillons
2019-11-07 22:07:42 +01:00
Paul Chavard
990c867c2e
[GraphQL] Add more filters to dossiers
2019-11-07 22:07:42 +01:00
Paul Chavard
5bc8b5fe12
Implement ActiveStorage::FileNotFoundError
2019-11-07 17:20:09 +01:00
Pierre de La Morinerie
8a7f4ec769
editor: reduce scroll duration when inserting a new champ
...
The previous default was 1s, which felt slooooow.
2019-11-07 15:49:15 +01:00
Pierre de La Morinerie
fc8a0d46ff
editor: insert new champs after the last fully visible champ
...
Before, when the "Add new champ" button was clicked, the new champ
was inserted after the **first** fully visible champ.
That was most of the time unexpected. The correct behavior would be to
insert the new champ after the **last** fully visible champ.
That's what this commit does. Now the "Add new champ" behavior feels
much less confusing.
2019-11-07 15:19:11 +01:00
Paul Chavard
f22b39b7c5
Handle non unique champ repetable labels
...
fix #4466
2019-11-07 14:27:52 +01:00
Paul Chavard
2a61ed5b1c
Export etablissement information in csv
...
fix #4440
2019-11-07 14:27:52 +01:00
Paul Chavard
4231b81727
[GraphQL] Add create direct upload mutation
2019-11-07 12:48:51 +01:00
simon lehericey
9469734f29
Follow flipper name convention to appears on manager admin page
2019-11-07 11:09:05 +01:00
clemkeirua
75923f7cb2
add explanation about rescue_from in application_mailer
2019-11-07 10:13:11 +01:00
clemkeirua
7f76ab6671
disable retry sending a mail with an invalid email adress
2019-11-07 10:11:48 +01:00
simon lehericey
1a1bd306b1
Add main and headers tags in layout (RGAA 9.2.1)
2019-11-06 17:18:08 +01:00
simon lehericey
9c7feae0b2
RGAA fix : 9.1.2 Dans chaque page Web, la hiérarchie entre les titres (balises h ou balise possédant un role ARIA "heading" associé à une propriété aria-level) est-elle pertinente ?
2019-11-06 17:01:07 +01:00
simon lehericey
b6765a03ae
Footer: remove top list and make each column a list as service-public.fr
...
(note: not so sure because of https://www.service-public.fr/P10025 )
2019-11-06 17:01:07 +01:00
simon lehericey
6ec2b084c7
h3 -> p
2019-11-06 17:01:07 +01:00
simon lehericey
16814af474
Make (part of) the html valid again
...
simple_format always wraps its content so the better idea I have got was to use a span to avoid p in p.
2019-11-06 17:01:07 +01:00
simon lehericey
8efac29eba
Better structure footer-site-links in list
...
it follows service-public.fr structure
- remove extraneous footer-link class
- remove extraneous space with `>` haml weird stuff
- homogenize json-style hash
- merge classes on ul
- use pseudo element for eye candy
2019-11-06 17:01:07 +01:00
simon lehericey
79968f12fb
RGAA A : h4 => span in top dropdown item to respect title hierarchy (9.1.2)
2019-11-06 17:01:07 +01:00
simon lehericey
daeeeda583
RGAA: ajout de title aux links
2019-11-06 17:01:07 +01:00
Chaïb Martinez
a00ce94eea
RGAA A : ajout de l'attribut alt pour les images
...
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-11-06 17:01:07 +01:00
Chaïb Martinez
47b177fd31
RGAA A : L'attribut alt est absent pour le logo des demarches
...
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-11-06 16:50:10 +01:00
clemkeirua
04c13190c3
introduce smtp_key in order to use 2 different sendinblue keys
...
client_key is exposed to the client via gon, so if we use it for sending email too we are exposing a key so anybody could send an email.
The current client_key has a different level of right and can't send emails so it's ok to expose it.
2019-11-06 13:34:36 +01:00
clemkeirua
959aacdea5
Sendinblue email balancing using proper credentials
...
This reverts commit c61981e795
.
2019-11-06 13:34:36 +01:00
Paul Chavard
0562e2728f
Fix type_de_champ validation error
2019-11-06 12:54:07 +01:00
Paul Chavard
ee62d6fca4
Fix move type de champs
2019-11-06 12:54:07 +01:00
Paul Chavard
a708b071dd
Do not crash with champ repetable with no children
2019-11-06 12:54:07 +01:00
Paul Chavard
f5c80f211d
Guard for missing attestation on dossier
2019-11-06 12:54:07 +01:00
Paul Chavard
95f98fe605
API v1 correctly handle resultats_par_page
2019-11-06 12:54:07 +01:00
Pierre de La Morinerie
8df91df9fa
assigns: strip and lowercase the search filter
2019-11-06 12:16:30 +01:00
Pierre de La Morinerie
0eeac59ecd
assigns: fix search among the unassigned instructeurs
...
This was broken since moving the email out of the Instructeur column.
2019-11-06 12:16:30 +01:00
Paul Chavard
08b1a0f90d
[API Carto]: use typhoeus and correctly handle errors
2019-11-06 11:10:56 +01:00
simon lehericey
9f5169eb7d
Remove unused Administrateur.reset_password method
2019-11-05 14:10:39 +01:00
simon lehericey
395aba8bbc
Remove administrateur active notion
2019-11-05 14:10:39 +01:00
simon lehericey
5643e671a0
Code use user.active?
2019-11-05 14:10:39 +01:00
simon lehericey
b193dd1465
User get the active notion
2019-11-05 14:10:39 +01:00
Pierre de La Morinerie
c37bfc7349
instructeurs: fix email casing in invitation
...
When inviting an instructeur, the code first looked up an existing
instructeur using the normalized (downcased) email address–but then
tried to promote it using the non-normalized version, which failed.
This fixes the issue by always using the normalized email.
2019-11-05 10:54:58 +01:00
simon lehericey
e3d7688e66
[ fix #4473 ] Invite_administrateur!: do not reset password if the user is active
2019-11-05 10:29:39 +01:00
simon lehericey
243bc2887f
Invite_administrateur!: remove unused return
2019-11-05 10:29:39 +01:00
Pierre de La Morinerie
f63cd86811
webhook: fix a crash when the Helpscout customer is unknown
2019-11-04 18:36:52 +01:00
clemkeirua
c61981e795
Revert "Sendinblue email balancing using interceptor"
...
This reverts commit b2135b6576
.
2019-11-04 15:55:08 +01:00
Chaïb Martinez
b2135b6576
Sendinblue email balancing using interceptor
...
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-11-04 15:30:44 +01:00
Pierre de La Morinerie
2e8d365b93
instructeurs: disable the email column
2019-11-04 10:44:24 +01:00
Pierre de La Morinerie
f8358b3ae9
instructeurs: create without providing the email
2019-11-04 10:44:24 +01:00
Pierre de La Morinerie
f131dbb80d
instructeurs: make the create form not using email directly
...
Before the form attempted to read an email value from the Instructeur
model, and failed (because the empty Instructeur had no user yet).
We could let `Instructeur#email` return `nil` if there is no User –
but as a created Instructeur is always supposed to have a User, this
seems like a nice safeguard to keep.
So instead this commit rewrites the create form, which now doesn’t
depend on an Instructeur model. Seems easy enough for now.
2019-11-04 10:44:24 +01:00
Pierre de La Morinerie
d78d206544
instructeurs: fix expert creation not to use Instructeur.email
...
It kind of worked until now, because the email field is disabled, and
thus never accessed.
But better make it clean, by accessing an object (User) where the email
field actually exists.
2019-11-04 10:44:24 +01:00
Pierre de La Morinerie
8e6930d257
instructeurs: fix ProcedurePresentation to use instructeur.user.email
...
The `joins` are declared explicitely in order to associate a predictable
name to the joined table.
Otherwise, when the query is joined with `:users`, ActiveRecord will
alias the join automatically to solve the conflict. Unfortunately, the
automatic resolution means that the table name becomes unpredictable,
and thus unsuitable to perform queries on.
2019-11-04 10:44:24 +01:00
Pierre de La Morinerie
8b8213c301
instructeurs: always eager load the user relationship
...
Now that `Instructeur.email` is merely an alias to `instructeur.user.email`,
and we changed every occurence of `instructeurs.pluck(:email)` to
`instructeurs.map(&:email)`, the new version using `map` may cause N+1 queries
if the users have not been preloaded.
It makes sense to always preload the user when fetching an Instructeur:
- Instructeur and User have a strongly coupled relationship
- It avoids N+1 queries everywhere in the app
Of course fetching an instructeur without needing its user will now do an
unecessary fetch of the associated user. But it seems better than leaving
a risk of N+1 queries in many places.
2019-11-04 10:44:24 +01:00
Pierre de La Morinerie
a462edb9bc
instructeurs: alias instructeur.email
...
This also means we need to replace instances of `pluck` on the email
column.
2019-11-04 10:44:24 +01:00
Pierre de La Morinerie
cd478b489e
instructeurs: replace calls to Instructeur.find_by(email: …)
2019-11-04 10:44:23 +01:00
Paul Chavard
839b0d7e6d
Add Entreprise raison sociale to dossier export
...
fix #4422
2019-10-31 17:11:46 +01:00
Paul Chavard
18e91e7ca3
Extend old export format till mid-November
2019-10-31 17:11:46 +01:00
Pierre de La Morinerie
627d30191f
manager: allow hidden procedures to be searched
...
The Manager::DossiersController already allow hidden dossiers to be
searched and displayed. Give the same behavior to Procedures.
2019-10-31 17:03:02 +01:00
Pierre de La Morinerie
076e3a9294
procedure: improve layout of the "webhook" field
2019-10-31 16:04:47 +01:00
Pierre de La Morinerie
817662f7d9
procedure: move description to views/shared
...
Now that the description is used not only in the layout, but also in the
procedure form, better to make it an official shared partial.
2019-10-31 10:27:19 +01:00
Pierre de La Morinerie
2e0ef84941
images: rename 'attachment' icon to 'attached'
...
This avoids conflicts with the 'attachment' component.
2019-10-31 10:27:19 +01:00
Pierre de La Morinerie
aea93779cc
procedure: use the attachment view to upload files
2019-10-31 10:27:19 +01:00
Pierre de La Morinerie
1c61f2de58
views: refactor the attachment/edit view
...
Make it more reusable, by:
- Renaming `attachment/update` to `attachment/edit`
- Refactoring the CSS styles into their own stylesheet
- Allow to specify the 'accept' option
2019-10-31 10:27:19 +01:00
Pierre de La Morinerie
5be83bd01e
procedure: make the layout more similar to the mockup
2019-10-31 10:27:19 +01:00
Pierre de La Morinerie
02384b078c
procedure: remove UI to edit the european flag
...
This is an option we want to deprecate, and remove entirely in the
future.
Admins can still add the EU flag manually to their uploaded logo.
2019-10-31 10:27:19 +01:00
Pierre de La Morinerie
112b44bdea
procedure: align radio buttons vertically
...
- Remove the unused `.radios.vertical`
- Add a `.editable-champ-radio.vertical` variant for vertical radios
- Add an example of vertical radios to the patron
- Use vertical radios to display the procedure options
2019-10-31 10:27:19 +01:00
Nicolas Bouilleaud
72b7ff221c
move procedure to new design
2019-10-31 10:27:19 +01:00
simon lehericey
652e95d0c5
Add link from instructeur procedure view
2019-10-30 14:27:51 +01:00
simon lehericey
477f7c9837
Remove instructeur
2019-10-30 14:27:51 +01:00
simon lehericey
79b808470c
Add instructeur
2019-10-30 14:27:51 +01:00
simon lehericey
94081a3997
Show Groupe Instructeur
2019-10-30 14:27:51 +01:00
simon lehericey
4491dca19a
Index Groupe Instructeur
2019-10-30 14:27:51 +01:00
simon lehericey
def9c67c56
Clean html
2019-10-30 14:27:51 +01:00
Paul Chavard
6a3d725134
Revert "Revert "Decommission ActiveStorage proxy service and use openstack service""
...
This reverts commit 71227be37f
.
2019-10-30 12:11:45 +01:00
simon lehericey
71227be37f
Revert "Decommission ActiveStorage proxy service and use openstack service"
...
This reverts commit 0ff6c793ae
.
2019-10-29 10:30:40 +01:00
simon lehericey
4febf1851f
notifications_for_procedure is now based on instructeur.groupe_instructeurs
2019-10-25 09:42:17 +02:00
simon lehericey
d411bfddc8
We can send a dossier to instructeurs from the same groupe
2019-10-25 09:42:17 +02:00
simon lehericey
e290fc3674
No need to update column as the sign_up process activates the user
2019-10-24 18:32:48 +02:00
simon lehericey
8ae592fe25
[ fix #4361 ] administrateur active
2019-10-24 18:32:48 +02:00
Pierre de La Morinerie
dc1f3b4220
champs: add a "plus" icon to the "Add row" button
2019-10-24 16:52:29 +02:00
Pierre de La Morinerie
906f0fc468
champs: fix margin of "Add row" button in the Preview
2019-10-24 16:52:29 +02:00
Pierre de La Morinerie
35e97ac617
patron: add content to the repetition champ
2019-10-24 16:52:29 +02:00
Pierre de La Morinerie
8f4ead96b0
patron: make the labels more readable
2019-10-24 16:52:29 +02:00
clemkeirua
d9e993571c
add a warning during export generation
2019-10-24 16:27:10 +02:00
clemkeirua
cb5f922bb6
cleanup the queue flag during cleanup job
2019-10-24 16:27:10 +02:00
clemkeirua
da590cc73a
sequence async file generation so that the queue flag is cleared
2019-10-24 16:27:10 +02:00
Pierre de La Morinerie
bb024d1850
javascript: display a localized message on upload errors
2019-10-24 16:12:56 +02:00
Pierre de La Morinerie
a3057afc22
javascript: report upload errors to Sentry
2019-10-24 16:12:56 +02:00
Paul Chavard
a192924ee5
Fix infinit rerendering of TypeDeChamp component
...
fix #4428
2019-10-24 13:31:54 +02:00
simon lehericey
90ae4181bf
fix dossier_linked_path in routed procedure
2019-10-23 21:47:20 +02:00
simon lehericey
fbe93e0fce
Fix pluralization in search page
2019-10-23 21:47:20 +02:00
simon lehericey
35bba62297
Update routing critéria name
2019-10-23 21:47:20 +02:00
simon lehericey
d136d023cd
Add feature flipped link in admin nav bar
2019-10-23 21:47:20 +02:00
simon lehericey
a5ffe9f54b
Remove instructeur from the group
2019-10-23 21:47:20 +02:00
simon lehericey
a6deafd885
Add instructeurs to groupe
2019-10-23 21:47:20 +02:00
simon lehericey
3dd3af8482
Groupe instructeur update
2019-10-23 21:47:20 +02:00
simon lehericey
9a6336f508
Groupe instructeur create
2019-10-23 21:47:20 +02:00
simon lehericey
733e83cc54
Groupe instructeur show
2019-10-23 21:47:20 +02:00
simon lehericey
2749c00ce3
Groupe instructeur index
2019-10-23 21:47:20 +02:00
simon lehericey
6a974663b0
An instructeur owns procedure with groupe instructeur mechanisme
2019-10-23 21:47:20 +02:00
simon lehericey
1fa149575c
Add constraints to GroupeInstructeur
2019-10-23 21:47:20 +02:00
simon lehericey
4b058001aa
Fix active link in left panel
2019-10-23 21:47:20 +02:00
Paul Chavard
0ff6c793ae
Decommission ActiveStorage proxy service and use openstack service
...
We are making these changes in order to always use DS_Proxy. Before this change DS_Proxy was not used to write files when ActiveStorage was used directly and not through “direct upload”.
2019-10-23 17:58:00 +02:00
Paul Chavard
86b271997b
Invite experts to linked dossiers
...
closes #3669
2019-10-23 13:10:09 +02:00
Pierre de La Morinerie
d542bca8de
admin: relabel the number
champ
...
Avoid two type de champs having the same label.
Soon this champ will even be deprecated and disappear.
Ref #4414
2019-10-22 15:59:43 +02:00
clemkeirua
ec78c99a2a
ajout d'un job de suppression des vieux exports
2019-10-22 15:23:49 +02:00
clemkeirua
7290214624
uniformize export wording in UI
2019-10-22 12:15:49 +02:00
clemkeirua
4a6893d88b
migrate sendinblue API to v3
2019-10-22 10:06:53 +02:00
clemkeirua
87741f4b49
introduce constant for exports
2019-10-22 09:51:14 +02:00
clemkeirua
cdab08b198
UI work
2019-10-22 09:51:14 +02:00
clemkeirua
43424e4f4e
merge with the work of paul, using 3 links
2019-10-22 09:51:14 +02:00
clemkeirua
70ea5e167e
procedure download is performed through a controller in order not to leak the URL
2019-10-22 09:50:58 +02:00
clemkeirua
1af2b63ed1
initial implementation of async export
2019-10-22 09:50:58 +02:00
simon lehericey
18de25fac7
Display the dossier.groupe_instructeur.label on various screens
2019-10-17 15:48:14 +02:00
simon lehericey
b7434c3132
User can choose its gi
2019-10-17 15:48:14 +02:00