Christophe Robillard
696a058280
delete adminis with procs managed by other admins
2020-01-13 10:06:43 +01:00
Christophe Robillard
9a62d3fe0c
delete a user
2020-01-13 10:06:43 +01:00
Christophe Robillard
58ef36ff57
tells if a user can be deleted
2020-01-13 10:06:43 +01:00
Paul Chavard
785a09b326
Use service_url instead of blob_url on secure attachments
2020-01-08 14:43:05 +01:00
Paul Chavard
cccb04d725
ActiveStorage url should expire after an hour
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
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
simon lehericey
03b7e81ca4
Send deletion notice for near expired brouillon
2019-12-03 17:18:53 +01:00
Pierre de La Morinerie
f351ade434
javascript: expose Turbolinks globally
...
When calling `redirect_to` in a Rails controller that emits Javascript,
Rails will emit `Turbolinks.replace(…)` commands. And for this,
Turbolinks needs to be globally available.
2019-12-03 16:28:47 +01:00
Pierre de La Morinerie
3212dfddca
app: allow hiding the browser banner for one week
2019-12-03 16:09:18 +01:00
Pierre de La Morinerie
299f9df375
app: on the old design, move the deprecation banner to a better location
...
Otherwise it hides the "Change role" controls.
2019-12-03 16:02:08 +01:00
Pierre de La Morinerie
2b934610a0
app: improve the browser deprecation banner appearance
2019-12-03 16:02:08 +01:00
clemkeirua
8b1535e462
ajout de pagination au sommet de la liste des dossiers
2019-12-03 14:55:43 +01:00
Pierre de La Morinerie
5928a16b37
Amélioration de la mise en page
2019-12-03 14:06:12 +01:00
clemkeirua
841b00bafe
focus sur le mot de passe lorsqu'on traite les suggestions
2019-12-03 14:06:12 +01:00
clemkeirua
8cab6ae19f
retours divers
2019-12-03 14:06:12 +01:00
clemkeirua
fdec2e04c3
la boite de suggestion d'email est en dessous du champ email
2019-12-03 14:06:11 +01:00
Pierre de La Morinerie
fb3f82074d
Hide the suggestions when the user corrects the address
2019-12-03 14:06:11 +01:00
Pierre de La Morinerie
1d1260060e
Fix the tests by using event delegation
2019-12-03 14:06:11 +01:00
clemkeirua
80b68afab5
implement email suggestion
2019-12-03 14:06:11 +01:00
clemkeirua
0bfdb2d5da
fermeture et acceptation de la suggestion d'email
2019-12-03 14:06:11 +01:00
Christophe Robillard
3db2d44fc0
affiche un warning pour l'email qqsoit l'email
2019-12-03 14:06:11 +01:00
clemkeirua
9e44af70b5
minor typo in textareas
2019-12-03 10:13:16 +01:00
clemkeirua
233c93bb7c
move p outside of label
2019-12-03 10:07:04 +01:00
clemkeirua
d712cc7a35
move ul outside of p
2019-12-03 10:07:04 +01:00
clemkeirua
9ae1a3c2d3
add missing alt
2019-12-03 10:07:04 +01:00
simon lehericey
4175aa0b28
GroupeInstructeur: do not use outdated email column
2019-12-02 14:52:01 +01:00
Paul Chavard
b845753a60
Fix admin creation
...
fix #4592
2019-11-29 20:14:35 +01:00
Paul Chavard
7b947feae4
Rename demarche archivée to demarche close
2019-11-28 15:07:16 +01:00
Paul Chavard
2cf415dc41
Simplify React components loader
2019-11-28 14:45:40 +01:00
Paul Chavard
c1c8ab7ac6
Disable transition from publiée to brouillon
2019-11-28 14:17:47 +01:00
Paul Chavard
3e334a3306
Drop test_started_at
...
# Conflicts:
# spec/models/procedure_spec.rb
2019-11-28 14:17:47 +01:00
benjaminhenkel
09d0c8d8a4
Correction d'une petite faute
2019-11-27 16:13:17 +00:00
Pierre de La Morinerie
b9fd844633
dossiers: fix autosave not ignoring file inputs
...
The dossier autosave is supposed to ignore file inputs (which are
handled differently by ActiveStorage).
Fix a typo in the CSS selector.
2019-11-27 13:57:39 +00:00
simon lehericey
6657459f9c
Fix add instructeur with empty mail
...
As select2 does not handle required attribute, we can only add server side logic
2019-11-27 14:39:16 +01:00
simon lehericey
71051441d6
only one h1
2019-11-27 12:59:08 +00:00
simon lehericey
38d433b53d
Add some role
2019-11-27 12:59:08 +00:00
simon lehericey
07112f2e15
Remove alt on decorative image
2019-11-27 12:59:08 +00:00
simon lehericey
2f47495173
Use h1 tag for .hero-tagline
2019-11-27 12:59:08 +00:00
simon lehericey
9296e24452
Reduce marianne image to 65px wide as ie11 cannot resize svg
2019-11-27 12:59:08 +00:00
simon lehericey
d4f256b735
Use text instead of image for logo
...
- "it is good design practice to use actual text that is styled with CSS rather than image-based text presentation" (https://www.w3.org/WAI/tutorials/images/textual )
- mm markup que https://www.gov.uk/ et que https://www.w3.org/WAI/tutorials/images/decorative/#decorative-image-as-part-of-a-text-link
2019-11-27 12:59:08 +00:00
Paul Chavard
e9f993fe0c
[GraphQL]: normalize date names in French
2019-11-27 12:23:00 +01:00
Pierre de La Morinerie
52051914aa
editor: disable the "Add champ" button until the champ is saved
...
Otherwise some champs are created before the previous one has been
saved, and React complains that several champs have the same
`champ-undefined` key.
(Plus it made the tests flaky and unreliable.)
2019-11-27 11:58:46 +01:00
Pierre de La Morinerie
7ed649dfca
editor: don't create a champ by default
...
Before the editor attempted to create a default champ as soon as the
list became empty.
This created many race conditions, which made the tests flaky.
Remove this behavior, and add an empty label instead.
2019-11-27 11:58:45 +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
30b822b135
dossiers: don't trigger an autosave when an attachment is modified
...
The draft autosave should not be triggered when attaching a file
(as file inputs are handled separately).
2019-11-27 10:37:33 +00:00
Pierre de La Morinerie
c6eab70679
dossiers: autosave shouldn't send files being uploaded
...
When a file is being uploaded asynchronosely, hidden input fields
are created by DirectUpload to contain the result of the upload.
However, before the upload finishes, the value of these inputs is not
meaningful. Moreover, it makes the ActiveRecord signature invalid – thus
preventing drafts from being saved.
Exclude these fields from the auto-save.
2019-11-27 10:37:33 +00:00
Pierre de La Morinerie
64d96646a3
javascript: autosave with explicit cookies settings
...
Older browsers implemented a different default value for `window.fetch`
credentials: it was omitted unless explicitely set.
So we force the value for these older browsers:
- Firefox 39-60
- Chrome 42-67
- Safari 10.1-11.1.2
See https://github.com/github/fetch#sending-cookies
2019-11-27 10:37:33 +00:00
Pierre de La Morinerie
2309017727
javascript: add a window.fetch polyfill
...
This allows the autosave to work on browsers that don't support fetch:
- IE 11
- Edge < 14
- Safari < 11
2019-11-27 10:37:33 +00:00
maatinito
9de9a1fd71
Use time.zone functions instead of server time functions
...
(Time.zone.today vs Date.today)
2019-11-26 14:26:36 +01:00
maatinito
14bc2b99b9
auto-archive badly occurs in UTC time and not in local time (1 hour too late in France, 10 hours before in Tahiti ;-)
2019-11-25 14:39:42 +01:00
Pierre de La Morinerie
c2c332244e
manager: fix Instructeur and Administrateur email
...
Use the email attribute on the User (rather than the deprecated email
column on Instructeur or Administrateur).
Fix #4565
2019-11-25 13:01:22 +01:00
clemkeirua
9503a363e5
4378 Ajout des PJ de la messagerie dans le zip des PJs du dossier
2019-11-25 10:36:32 +01:00
Pierre de La Morinerie
b78134c691
specs: make the routing feature test more robust
...
- Use human-readable form labels
- Always wait for the result of the previous action to be loaded before
starting another action
2019-11-21 18:29:45 +01:00
simon lehericey
054181a16f
Champ Repetition has no label, thus it's displayed as a section
2019-11-21 15:34:59 +01:00
simon lehericey
2162522814
ul should have li childs
2019-11-21 15:34:59 +01:00
simon lehericey
bc85e9b7ec
Use aria-describedby to link notice and input again
...
https://www.w3.org/WAI/tutorials/forms/instructions/#using-aria-describedby
2019-11-21 15:34:59 +01:00
simon lehericey
84b125d272
p cannot be included in label
...
The main problem come from
%label{for: input_id}
#{champ.libelle}
%span.notice= string_to_html(champ.description)
%input
where string_to_html contains p tags
The proposed solution is
%label #{champ.libelle}
%p.notice
%input
It should be iso in the graphic sense.
2019-11-21 15:34:59 +01:00
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