clemkeirua
d23b1136ad
send invite notifications using a hook
2020-09-29 18:15:38 +00:00
clemkeirua
dd7840cdc4
Notify new draft after dossier commit
2020-09-29 18:15:38 +00:00
kara Diaby
2a69e2fbeb
fix services choice into a procedure
2020-09-29 19:53:28 +02:00
Keirua
3fa628235e
Nettoyage de I18n.transliterate pour les noms de feuilles d'exports
...
Co-authored-by: LeSim <mail@simon.lehericey.net>
2020-09-29 15:50:19 +00:00
clemkeirua
9714b607aa
ensure valid excel worksheet names
2020-09-29 15:50:19 +00:00
Paul Chavard
a55be55c6a
Add mandatory * to secondary value
2020-09-29 14:33:27 +00:00
simon lehericey
1eb780b0c9
convert sheet_name to ascii before tuncate to 30 to ensure length < 31 bytes
2020-09-29 14:11:06 +02:00
simon lehericey
29ef5e6785
compute async only after create
2020-09-29 14:00:31 +02:00
simon lehericey
5ed491b958
export are kept for 1 hour
2020-09-29 13:59:57 +02:00
clemkeirua
245e9e59c7
do not run ApiEntreprise jobs on missing etablissements
2020-09-28 17:36:38 +02:00
clemkeirua
bf02238662
fix for missing user_sign_in_count
2020-09-28 15:55:18 +02:00
clemkeirua
560e1fc4fe
tag.span instead of content_tag
2020-09-25 12:53:11 +00:00
clemkeirua
2cb3b1c68e
more idiomatic count
2020-09-25 12:53:11 +00:00
clemkeirua
f7ebbdc7c2
use match if possible
2020-09-25 12:53:11 +00:00
clemkeirua
9b324614b8
transform_values instead of map+to_h
2020-09-25 12:53:11 +00:00
clemkeirua
eb46cc6425
piecejusticative file validation focus on size
2020-09-25 09:35:16 +00:00
clemkeirua
c155de1d7e
ajout de la liste des extensions
2020-09-25 09:35:16 +00:00
clemkeirua
31d48c2879
validation is enableed only for 'new' procedures
2020-09-25 09:35:16 +00:00
clemkeirua
0d88674cea
better translations
2020-09-25 09:35:16 +00:00
clemkeirua
8711e8f911
reenable validator on piece_justificative
2020-09-25 09:35:16 +00:00
clemkeirua
d617a4b252
create export after commiting the export object
2020-09-24 18:56:22 +00:00
clemkeirua
c19b653581
higher level length sanitization for worksheet length
2020-09-24 14:59:46 +02:00
Paul Chavard
a49c962ab3
Redirect demandes to DEMANDE_INSCRIPTION_ADMIN_PAGE_URL
2020-09-24 09:57:43 +02:00
Paul Chavard
26a6e18cb9
Do not crash when rgeo can’t calculate polygon area
...
example are “hourglass” shaped polygons
2020-09-23 16:52:08 +02:00
Paul Chavard
61c315b276
Fix geo area point coordinates display
2020-09-23 16:52:08 +02:00
Paul Chavard
ea4bcf59ad
remove demandes/new page
2020-09-23 16:27:17 +02:00
kara Diaby
cb4e91c405
Add iban type de champ
2020-09-23 15:56:26 +02:00
Paul Chavard
dea78c49f6
Run jobs in named queues
2020-09-23 08:22:17 +02:00
Paul Chavard
973973ab6a
Do not enqueue web hooks for empty urls
2020-09-22 17:03:19 +02:00
Christophe Robillard
6fd0134b6d
convert to es6 classes
2020-09-22 16:09:15 +02:00
Christophe Robillard
8baaee8810
load expanded buttons only for contact form
2020-09-22 16:09:15 +02:00
Christophe Robillard
5bd4644c2c
fix js lint errors
2020-09-22 16:09:15 +02:00
Christophe Robillard
9be015752a
set input value for question type of contact page
2020-09-22 16:09:15 +02:00
Christophe Robillard
df9a15a224
expand buttons for contact page
2020-09-22 16:09:15 +02:00
Christophe Robillard
61ea73580f
use buttons instead of select for contact page
2020-09-22 16:09:15 +02:00
Paul Chavard
c9f2224991
Remove ignored_columns from type_de_champ
2020-09-22 11:28:48 +02:00
Paul Chavard
3d3d0259a0
Remove TypeDeChamp.to_stable_id
2020-09-22 11:28:48 +02:00
Paul Chavard
a3f3b8a8e0
procedure.dossiers through revisions
2020-09-22 10:55:17 +02:00
Paul Chavard
061a743759
[GraphQL] Add archiver mutation
2020-09-22 08:34:38 +00:00
Paul Chavard
a911a71db9
Log dossier archiver/desarchiver operations
2020-09-22 08:34:38 +00:00
clemkeirua
7ba8ab9e6a
maj du schema json
2020-09-22 10:14:55 +02:00
clemkeirua
412a87e532
add fix for nil values on numeroVoie and typeVoie
2020-09-22 09:43:44 +02:00
clemkeirua
1173f1e459
add default values when nil
2020-09-22 09:43:44 +02:00
Paul Chavard
512cdeb6ff
normalize features on import
2020-09-22 09:12:55 +02:00
Paul Chavard
50c0955465
Avoid an error if area can’t be computed
2020-09-22 09:12:55 +02:00
clemkeirua
111f309c7f
changement de l'adresse de création de compte administrateur
2020-09-21 17:02:37 +02:00
simon lehericey
95cd176bf2
bump administrate
2020-09-21 11:15:25 +02:00
clemkeirua
f9c4e967d6
remove :autosave_dossier_draft
2020-09-21 08:46:01 +00:00
clemkeirua
f96377d878
refactor Dossier#with_notifications
2020-09-21 08:28:42 +00:00
clemkeirua
d01a53eb72
remove :cached_notifications gate
2020-09-21 08:28:42 +00:00
kara Diaby
5c68d75107
add titre_identite champ
2020-09-18 14:57:08 +02:00
clemkeirua
1e32a3c11f
add complexity check to admin account creation
2020-09-18 11:16:34 +02:00
clemkeirua
5a8fbde0e7
remove dead code in admin model
2020-09-18 11:16:34 +02:00
clemkeirua
14e1f8d06c
more accurate naming in AdministrationMailer#invite_admin
2020-09-18 11:16:34 +02:00
clemkeirua
de3118bc7b
force password reset on admin promotion or creation
2020-09-17 16:39:13 +02:00
clemkeirua
0307beecd6
Revert "Merge pull request #5576 from tchak/soft-delete-users"
...
This reverts commit bf0d3914ce
, reversing
changes made to 503527459e
.
2020-09-17 15:39:16 +02:00
clemkeirua
08d0fa80fa
remove old route
2020-09-17 14:03:31 +02:00
Paul Chavard
a0dd3604a4
User discard_and_anonymize!
2020-09-17 11:16:56 +02:00
Paul Chavard
337b20661a
Add discared_at to users
2020-09-17 11:16:56 +02:00
clemkeirua
6643b598c3
remove :administrateur_graphql
2020-09-17 09:24:50 +02:00
clemkeirua
4a760287d4
make xray available in development only
2020-09-17 09:24:50 +02:00
clemkeirua
2c418f63a8
remove :team_on_strike
2020-09-17 09:24:50 +02:00
clemkeirua
01ac4d7e19
remove operation_log_serialize_subject
2020-09-17 09:24:50 +02:00
kara Diaby
13e4589905
Publications page to the new UI (admin)
2020-09-16 09:15:44 +02:00
Christophe Robillard
4b86586ca0
add aria-disclosure for all dropdown buttons
2020-09-15 18:12:26 +02:00
Christophe Robillard
5158b73e86
add alt info for 'Mon compte' image
2020-09-15 18:12:26 +02:00
Christophe Robillard
51c4001a1a
add aria-disclosure for Mon compte button
2020-09-15 18:12:26 +02:00
Paul Chavard
bbcdff0ccf
Use IGN plan v2 and add MNHN data sources
2020-09-15 14:39:02 +02:00
kara Diaby
f1445c3e51
Remove contactez nous from administration page and put Faq instead
2020-09-11 11:58:31 +02:00
simon lehericey
9bd4c11d52
Use render collection to speed up render
2020-09-11 09:43:04 +00:00
simon lehericey
b124579681
cache procedure_ids_with_notifications to avoid seeking the AR cache by going through the stack
2020-09-11 09:43:04 +00:00
simon lehericey
e4de522b48
only retrieve id of procedures with notifications
2020-09-11 09:43:04 +00:00
simon lehericey
d9c7051a00
Avoid superfluous count
2020-09-11 09:43:04 +00:00
simon lehericey
63ea2045a7
Improve admin query on landing
2020-09-11 09:46:54 +02:00
clemkeirua
47fd8f48cb
replace tabs with 2 spaces in attestation PDF, instead of one
2020-09-09 07:18:58 +00:00
clemkeirua
19c1043b94
replace tabs with spaces in attestation
2020-09-09 07:18:58 +00:00
clemkeirua
3697c610b6
make polynesia mobile phone number valid
2020-09-09 09:00:07 +02:00
simon lehericey
5459c2fa7f
Fix uninitialized excon constant
2020-09-08 18:36:24 +02:00
clemkeirua
c7b96d3d43
add feature-flip for instructeurs on cached notifications
2020-09-08 15:40:42 +00:00
clemkeirua
52ea5ef89a
make Dossier#with_notifications great again
...
Co-authored-by: Christophe Robillard <christophe.robillard@beta.gouv.fr>
2020-09-08 15:40:42 +00:00
simon lehericey
19d73f13f0
variabilize banner message
2020-09-08 14:52:42 +02:00
Paul Chavard
91bc2db594
Expose revisions on GraphQL API
2020-09-08 10:54:13 +02:00
clemkeirua
61cf33e3ca
remove duplicate private champ
2020-09-04 15:40:23 +02:00
Paul Chavard
6d4425885d
Fix champ order joins sql error
2020-09-03 18:32:43 +02:00
Paul Chavard
11a1e44fbe
Remove procedure_id from type_de_champ
2020-09-03 15:23:58 +02:00
Paul Chavard
d1de1587d3
Always serialize type_de_champ stable_id as id
2020-09-03 15:23:58 +02:00
Pierre de La Morinerie
e033ec3404
js: ignore missing DOM element on ProgressBar
...
Currently ProgressBar is used to monitor upload progress of attachments.
But there's two cases where the associated DOM element may be removed:
- In the champs editor, when the list scrolls, DOM elements are removed
and added dynamically by React;
- In the user form, the user might start an upload on a repetition, and
then remove the associated row during the download.
In both those cases, we don't want the missing DOM element to trigger
an error.
2020-09-03 15:03:13 +02:00
kara Diaby
ae61c279af
migrate emails text editor to new interface
2020-09-03 14:42:22 +02:00
Pierre de La Morinerie
292dc84eb4
jobs: ignore deleted file in Virus Scan
...
We have errors in production where the job starts correctly (i.e. the
blob exists), but `blob.open` fails with a `ActiveStorage::FileNotFound`
error.
When checking later in production, the blob has been deleted.
This points to the blob (and the file) being deleted during the virus
scan job.
In that case, ignore the error (rather than retrying the job).
2020-09-03 11:00:59 +02:00
simon lehericey
49aa426d1b
application job swallow BadRequest error and retry
2020-09-02 16:59:54 +02:00
Paul Chavard
5ceae8235b
Ignore type_de_champ procedure_id
2020-09-02 11:26:26 +02:00
Paul Chavard
ec72fdd164
Remove migration service
2020-09-02 11:26:26 +02:00
Pierre de La Morinerie
d5a2fc0788
views: fix Safari stretching logos in admin procedures list
2020-09-01 18:09:32 +02:00
Pierre de La Morinerie
ae1f14a3f9
views: reduce nested flex containers in admin procedures list
...
We can achieve the same layout with fewer nested flex containers.
2020-09-01 18:09:32 +02:00
kara Diaby
1788471664
carto hack : traduce edition buttons in french
2020-09-01 17:41:20 +02:00
Judith
25a24ba7c8
removal of translation keys already present in the gem rails-i18n
2020-09-01 16:33:58 +02:00
Fabrice Gangler
1a43f888fb
Feat: allow to disable France-Connect
...
Refs: #5440
2020-09-01 15:51:10 +02:00
Fabrice Gangler
f2c4378596
fix: use APPLICATION_NAME in view/users/sessions/new
...
Refs: #5462
2020-09-01 15:18:29 +02:00
Judith
7bc5a0a278
internationalization of /contact-admin
2020-09-01 12:58:19 +00:00
Fabrice Gangler
bfb28e5a2b
Fix(mailers/_signature): use APPLICATION_NAME
...
Refs: #5456
2020-08-28 03:44:46 +02:00
Judith
af25fdd77c
gem http_accept_language installed and (de)activable with feature flag
2020-08-27 16:15:01 +02:00
Pierre de La Morinerie
0800bf68d0
views: allow unselecting all values from a multiple dropdown
...
Currently, deselecting all values from a multiple dropdown rendered as
checkboxes doesn't have any effect when submitting the form (the
previous values are still there, instead of being deselected).
This is because unchecked checkboxes are not sent by the browser – so
the "empty selection" never gets sent.
Rails `form.check_box` usually works around this by inserting an empty
hidden checkbox element, that will be sent even if all others are
de-selected. But the documentation warns that this is not possible when
iterating over an array (rather than a model). Which is our case here.
To fix this, this commit uses `collection_check_boxes` instead. It will
insert the proper hidden checkboxes in all cases, and fix our use case.
See https://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-collection_check_boxes
2020-08-27 11:13:40 +02:00
Judith
2f0953692c
Internationalization of the Contact page in FR and EN
2020-08-27 11:03:34 +02:00
Pierre de La Morinerie
3fdecf0924
helpers: remove element immediately when no timeout is specified
...
This fixes an issue where clicking quickly on several "Remove row"
buttons on a repetition field results in autosave errors.
This is because the N+1 autosave request is correctly sent after the
Nth response from the server, but _before_ the row element is actually
removed from the DOM. So the N+1 request actually sends the fields for
the deleted row, which makes the server raise an error.
With this fix, the row gets properly removed when the server responds,
and before the next request is started.
2020-08-25 15:45:49 +02:00
Pierre de La Morinerie
ecc4f01c20
autosave: trigger an autosave after removing a row
2020-08-25 15:45:49 +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
Pierre de La Morinerie
e157a289e1
autosave: factorize some javascript code
2020-08-25 14:39:34 +02:00
Pierre de La Morinerie
3c91cfc83c
jobs: add health-related keywords to dubious procedures scanner
...
We are not certified for hosting health-related data yet.
2020-08-25 12:04:10 +00:00
Pierre de La Morinerie
4bba1f0660
views: add a "None" option to optional radio lists
...
After clicking on a radio button option, it is impossible to revert to
the "None of the values selected" state.
However on non-mandatory fields, reverting to the no-selection value
should be possible.
To fix this, add an explicit "N/A" option.
2020-08-25 11:42:30 +02:00
Pierre de La Morinerie
50f61ee37b
views: remove "Select a value" text on radio lists
...
This text:
- Isn't present on other form controls
- Should only be displayed if the field is mandatory anyway
2020-08-25 11:42:30 +02:00
Christophe Robillard
abe62398b6
very light client-side validation for phone
2020-08-20 15:33:03 +02:00
Christophe Robillard
090a247ba9
validates phone champ server side
2020-08-20 15:33:03 +02:00
Christophe Robillard
f77cc06a91
prend en compte le nom de l'enseigne pour l'établissement
2020-08-20 14:23:02 +02:00
Judith
74cff31876
autofocus on 'input: password' removed according to accessibility audit requirements. No change noticed
2020-08-19 14:35:34 +00:00
Judith
206646f765
date champs: adding a placeholder for IE and Safari (which do not support the input type date)
2020-08-19 14:10:58 +00:00
Pierre de La Morinerie
a7361fdbd3
models: require belong_to associations on mail templates
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
29e8c43e5e
models: require belong_to associations on groupe_instructeur
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
5a7bd24fba
models: require belong_to associations on type_de_champ
...
- Make `type_de_champ.procedure` a requirement;
- Move the procedure_id assignation to `before_validation` (otherwise
the record is invalid, and never gets saved);
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
6328011f60
models: require belong_to associations on champ
...
- Make `champ.dossier` a requirement;
- Move the dossier_id assignation to `before_validation` (otherwise
the record is invalid, and never gets saved);
- Allow specs to only build the champ (instead of saving it to the
database), which bypasses the requirement to have a dossier.
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
eb22dc9d8f
models: require belong_to associations on module_api_carto
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
71d9774d58
models: require belong_to associations on trusted_device_token
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
d807700c7b
models: require belong_to associations on traitement
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
059c147ffc
models: require belong_to associations on service
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
ce53e219e0
models: require belong_to associations on procedure_presentation
...
Some tests are still failing
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
802d3804f5
models: require belong_to associations on invite
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
fe8804f208
models: require belong_to associations on individual
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
afb1c33154
models: require belong_to associations on geo_area
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
aff2713032
models: require belong_to associations on follow
2020-08-18 15:57:37 +02:00
Pierre de La Morinerie
91619b16e8
models: require belong_to associations on feedback
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
79fcf5e814
models: require belong_to associations on exercice
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
51d392a1dc
models: require belong_to associations on dossier
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
01248022bf
models: require belong_to associations on deleted_dossier
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
dd1bed9340
models: require belong_to associations on commentaire
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
32e55a6d37
models: require belong_to associations on avis
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
aefdd5d2a1
models: require belong_to associations on attestation_template
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
1ea4c2aa36
models: require belong_to associations on attestation
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
c1e2928ce7
models: require belong_to associations on assign_to
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
11456109c0
models: explicitly mark optional belongs_to
relationship as so
...
This prepares making the `belongs_to` relationship required by default.
2020-08-18 15:57:36 +02:00
Pierre de La Morinerie
7d4c748432
services: make etablissement save raise on error
...
Before, if saving the etablissement failed, the error would be ignored silently.
2020-08-18 14:56:40 +02:00
Pierre de La Morinerie
c01d640997
models: return procedure revisions in deterministic order
...
Fixes a randomly-failing spec in spec/models/procedure_revision_spec.rb.
2020-08-13 17:27:37 +02:00
Judith
c27b2da90b
datetime type de champ: changed the years range from [1950;2100] to [to current year - 1;
...
current year + 50] (or [entered_date; current_year + 50] if old date already entered) because:
The type_de_champ Datetime is used for close future dates and very close past dates (for accident declaration for ex.)
The select currently has a range from 1950 to 2100, so 70+ years not supposed to be used, leading to:
- many bad data entered (0000 or 1950 to not scroll)
- making it difficult for users to give the proper date (current date is lost in the middle of 149 others) so risk to be lazy and select a random one or genuinely make a mistake
2020-08-13 13:41:45 +00:00
Christophe Robillard
f2dcb61521
transform job in task for set dossiers_last_updated_at
2020-08-12 16:10:15 +02:00
Pierre de La Morinerie
2892fdbeef
models: remove columns that have been deleted from db schema
...
These columns are gone, so we can't stop ignoring them.
2020-08-12 12:06:58 +02:00
Pierre de La Morinerie
6d28069539
models: generate annotations
2020-08-12 11:45:53 +02:00
Christophe Robillard
eea5fd66ad
corrige mise en forme commentaire
2020-08-10 17:36:23 +02:00
Christophe Robillard
0b35619322
skip verify authenticity token for helpscout
...
Co-authored-by: LeSim <mail@simon.lehericey.net>
2020-08-10 17:19:22 +02:00
kara Diaby
9b66c894b2
Adapt configuration email view to the new UI
2020-08-06 16:56:24 +02:00
Fabrice Gangler
cf7a4437e5
Fix syntax for using APPLICATION_NAME in mailers/layout
...
Refs: #5453
2020-08-06 12:45:19 +02:00
Pierre de La Morinerie
54a4db1c47
config: flip config.active_storage.queues
...
ActiveStorage jobs are now moved to their own queue.
For consistency, we also move our own analysis jobs (VirusScannerJob)
on the same `:active_storage_analysis` queue.
2020-08-05 16:48:36 +02:00
Pierre de La Morinerie
7708dbbc71
views: explicitely marks form_with
as non-remote forms
...
Starting from Rails 5.1, `form_with` behavior is to generate remote
forms by default.
However with Turbolinks disabled, the form gets sent, but nothing is set
up to handle the server response (like replacing the content of the
page).
So we have two choices: either enable a global config option that makes
`form_with` generate non-remote forms, or do it explicitely on each
form. I chose the explicit way, so that developers expecting the usual
remote behavior of `form_with` are not surprised.
2020-08-05 13:02:56 +02:00