Pierre de La Morinerie
9db62178d2
views: display revision errors on the procedure dashboard
2021-11-30 13:34:41 +01:00
Pierre de La Morinerie
52b0fbf9b7
models: validate repetitions on publishing
2021-11-30 13:34:41 +01:00
Pierre de La Morinerie
48133c2595
models: don't save the procedure before the state transition
...
Otherwise a validation error occurs here instead of on save.
2021-11-30 13:34:41 +01:00
simon lehericey
c4cde500ce
fix acsv
2021-11-30 09:42:45 +01:00
simon lehericey
5a0fb6237f
😭 AASM does not support keyword arguments
...
https://github.com/aasm/aasm/issues/672
2021-11-30 09:42:45 +01:00
Pierre de La Morinerie
184a401182
app: rename new_administrateur
to administrateurs
2021-11-30 08:49:38 +01:00
simon lehericey
a0c0520502
avoid redirection to a deleted user
2021-11-29 15:27:17 +01:00
Kara Diaby
23677956f3
modify controller
2021-11-29 11:34:31 +01:00
Martin
cf82c030e8
hotfix(scoping): try to avoid requesting archived: false when using termine scope, use state_termine instead
2021-11-26 15:09:53 +01:00
Martin
970e43efb8
feat(stats#index): update Stat model to also query DossierDeleted in stats computation
...
tech(question): discard_and_keep_track! ; are we really keeping track with default_scope { kept } ?
feat(stats): add DeletedDossier in Stat computations
Revert "tech(question): discard_and_keep_track! ; are we really keeping track with default_scope { kept } ?"
This reverts commit d1155b7eeaaf1a9f80189e59667e109541fcb089.
feat(stats): support deleted_dossiers for last_four_months_hash and cumulative_hash. extract sanitize query & merge hashes in methdos
clean(rubocop): lint with rubocop
Update db/migrate/20211126080118_add_index_to_deleted_at_to_deleted_dossiers.rb
Co-authored-by: LeSim <mail@simon.lehericey.net>
fix(rubocop): avoid uneeded allocation
fix(migration): add concurrent index with expected synthax
fix(brakeman): add ignore message since group date_trunc evaluation is used by only ourself
2021-11-26 13:29:40 +01:00
Kara Diaby
2103f09be1
layout
2021-11-26 09:45:13 +01:00
Kara Diaby
24ba7b6633
modify dossier projection service
2021-11-26 09:45:13 +01:00
kara Diaby
eaac293da3
add a new tab traités on user dossiers
2021-11-26 09:45:13 +01:00
Martin
fdf0f18fda
fix(i18n): wrap text under i18n.t
...
i18n(france_connect/*): replace wording with i18n
fix(lint): i18n key issue
secu(views/france_connect/particulier/merge.html.haml): sanitize france_connect_email just in case
fix(brakeman): sanitize FCI.email_france_connect when used with html_safe via an I18n.t, also add exception to brakeman
2021-11-25 17:34:37 +01:00
Martin
febe890d28
fixup! Add confirmation by email when merging DC/FC accounts
2021-11-25 17:34:37 +01:00
Martin
8a315a4ac1
feat(UserMailer.france_connect_merge_confirmation): in addition to distance_of_time_in_words, add exact expiration date
2021-11-25 17:34:37 +01:00
Martin
21894d0a0a
feat(france_connect/particulier#callback): in case the FC email exists as an DC account which is an instructor or and administrator, returns early to new_session_path so he can connect with this existing account
2021-11-25 17:34:36 +01:00
Martin
ff073f8884
Add confirmation by email when merging DC/FC accounts
...
feat(fci.confirmation_code): add confirmation code to france_connect_informations
feat(user_mailer.france_connect_confirmation_code): add confirmation by email mail method/preview/spec, pointing to merge_mail_with_existing_account (reuse existing method)
feat(mail_merge): mail merge
feat(merge.cannot_use_france_connect): same behaviour as callback
clean(fci.confirmation_code): use same token for mail validation as merge
feat(resend_france_connect/particulier/merge_confirmation): resend email with link. also enhance some trads, cleanup halfy finished refacto
clean(tech): finalize story by plugging merge_with_new_account to email validation
fix(deadspec): was removed
fix(spec): broken after last refactoring
lint(rubocop): space before parenthesis
lint(haml-lint): yoohoooo space before =
fix(lint): scss now :D
Update app/assets/stylesheets/buttons.scss
cleanup
feat(france_connect): re-add confirm by email, with an option for confirmation by email instead of only confirmation by email
fixup! Add confirmation by email when merging DC/FC accounts
fix(lint): haml_spec failure
2021-11-25 17:34:34 +01:00
Paul Chavard
7d189575af
fix(commune): do not display foreign departement when selecting commune
2021-11-25 13:49:57 +03:00
mfo
91c3a8be19
fix(eslint): max columns
2021-11-25 13:43:28 +03:00
Martin
0d486981a6
fix(ComboCOmmunesSearch.typo): fix combo communes search typo
2021-11-25 13:43:28 +03:00
Paul Chavard
d847775c68
feat(traitements): add depose_at to dossiers
2021-11-25 12:57:55 +03:00
Paul Chavard
1f1dd9fce5
fix(traitements): add missing traitements to dossiers when reverting a decision
2021-11-25 12:57:55 +03:00
Pierre de La Morinerie
e5f5440663
models: explicitely save procedure's new revision
...
Deep-cloned objects have all their relationships stale. Thus, for a
newly deep-cloned revision, `revision.types_de_champs` returns `[]`,
even when it actually has associated types de champ.
This causes consecutive champs creations and re-ordering to fail in
subtle ways, like:
```
procedure.draft_revision.add_type_de_champ(…)
procedure.publish_revision!
procedure.draft_revision.add_type_de_champ(…)
procedure.draft_revision.move_type_de_champ(…) # this will fail
```
As `publish_revision!` created a new stale revision, moving the type
de champ fails because not all existing champs are found until the
object is refreshed.
We don't hit this path in production, because usually only a single
operation is made in a request.
To fix this, save the new revision before associating it as the draft
procedure.
(Another option would be to `reload` the revision after creation, but
this seems better contained and matches the name of the method.)
2021-11-25 08:49:17 +01:00
mfo
e7d9d047fe
Merge branch 'main' into 6649-etq-usager-instructeur-rendre-la-suppression-plus-visible
2021-11-24 14:07:32 +01:00
simon lehericey
bd4a5c419b
add title to agentconnect page
2021-11-24 12:50:47 +01:00
Paul Chavard
758e7d68e6
fix(graphql): fix and improuve query parsing for logs
2021-11-24 13:23:05 +03:00
Pierre de La Morinerie
60c2718f29
models: remove custom code for file size validation message
...
With active_storage_validations 0.9.6, we can use the %{max_size}
variable directly in the error message.
2021-11-24 10:06:45 +01:00
Martin
0fd9e15cc1
i18n(expiration_banner): extract test in i18n files
2021-11-23 15:23:22 +01:00
Pierre de La Morinerie
2227dcc1e7
app: remove leftovers of procedure path autocomplete
...
We used to pre-validate the procedure, to display in advance if the path
could be used.
Now that the path autocomplete is long gone, we can remove this kludgy
code.
2021-11-23 14:30:21 +01:00
simon lehericey
c5097451ef
add redirect
2021-11-23 14:17:59 +01:00
simon lehericey
5234a1854c
manage AgentConnect callback
2021-11-23 14:17:59 +01:00
simon lehericey
1926a630f9
add agent_connect_id to instructeur
2021-11-23 14:17:59 +01:00
simon lehericey
898df449d4
redirect to AgentConnect
2021-11-23 14:17:59 +01:00
simon lehericey
d2432e34eb
AgentConnect UI
2021-11-23 14:17:59 +01:00
mfo
49bb12a70e
Merge branch 'main' into 6649-etq-usager-instructeur-rendre-la-suppression-plus-visible
2021-11-23 11:05:51 +01:00
Martin
b6adf5fc72
feat(dossiers/show): enhance header with expirations message/banner. also ensure consistent design between dossier states
...
fix(spec): broken due to last refactoring
spec(dossier.extend_conservation): add system spec
lint(ruby): still not yet ready for auto lint in IDE...
2021-11-23 05:50:25 +01:00
Martin
2a87b9bf89
feat(users/dossiers/*): rework header for consistent design, add some utils spacers
2021-11-22 14:46:10 +01:00
Pierre de La Morinerie
859a147c49
api: return error cause on parse error
...
Currently, when a query can't be parsed, the error is:
- logged to Sentry (which is useless to us),
- returned as a generic 'Internal Server Error' (which is useless to the
user who made the query).
With this commit, the error is instead ignored from our logs (because it
is a user error), but the parse error details are returned to the user,
with the following format:
> {'errors': [{'message': 'Parse error on ")" (RPAREN) at [3, 23]'}]}
2021-11-19 15:15:10 +01:00
Martin
3d1533dee9
feat(users/dossiers?statut=dossiers-expirant): add dossiers-expirant tab
2021-11-19 15:14:39 +01:00
Martin
a9978fb70b
clean(code): move mfo comment to its rightful place
2021-11-19 14:34:20 +01:00
Martin
608a85148f
feat(Dossier.close_to_expiration): add method to find any kind of dossier close to expiration [reuse previous scopes], add missing spec to termine_close_to_expiration, complement spec for each kind of expiration scope with general close_to_expiration spec
2021-11-19 14:28:54 +01:00
Martin
d8257284ef
tech(refactor): extract states close to expiration within their scope.
2021-11-19 14:07:47 +01:00
Martin
1d721f14a0
fix(spec): get back to stable state
2021-11-19 12:36:03 +01:00
Martin
646459a1da
fix(spec): at least let us start from a green suite
2021-11-18 18:15:57 +01:00
Paul Chavard
df474b60cf
WIP
2021-11-18 18:58:17 +03:00
Paul Chavard
ae09b37e72
fix(champs): save departement info on champ commune
2021-11-17 14:52:47 +03:00
mfo
82b23b92c0
Merge branch 'main' into 6624/etq-instructeur-je-souhaite-supprimer-des-messages-envoyes-par-erreur
2021-11-17 05:41:56 +01:00
Paul Chavard
716a859c93
fix(profile): prevent crashing on renew token action
2021-11-16 20:01:56 +03:00
Paul Chavard
e74d599042
feat(procedure): remove duree_conservation_dossiers_hors_ds
2021-11-16 19:55:56 +03:00
Paul Chavard
65e59b8dcd
fix(procedure): allow to modify duree_conservation_dossiers_dans_ds after publication
2021-11-16 19:55:56 +03:00
Paul Chavard
406c5a61cc
fix(dossier): fix dossier traitements display
2021-11-16 19:00:20 +03:00
Paul Chavard
04e67ea20a
fix(dossier): add instructeur email to traitements when available
2021-11-16 19:00:20 +03:00
mfo
1d174df2ec
Merge branch 'main' into 6624/etq-instructeur-je-souhaite-supprimer-des-messages-envoyes-par-erreur
2021-11-16 16:37:15 +01:00
Martin
f0950b592b
clean(CommentaireService): extract soft delete within controller. returning an instance with an error[:base] is not persisted with validation : avoid poluting stuff
2021-11-16 16:13:11 +01:00
Paul Chavard
3400c4c628
fix(champs): attach piece justificative
2021-11-16 17:57:41 +03:00
Martin
8bbd77f89f
refactor(mail.delay): use simplier implementation using after_action to prevent email delivery with delay
2021-11-16 15:12:05 +01:00
Martin
0aecc301c9
refactor(Commentarie.soft_delete): use discard
2021-11-16 14:28:38 +01:00
Paul Chavard
7914775809
feat(routage): administrateur can disable routage
...
fix #6627
2021-11-16 11:49:51 +03:00
simon lehericey
e3c1e19424
include hidden dossier in merge
2021-11-15 23:14:41 +01:00
mfo
08350f394e
feat(mails): send it on mailer queue
2021-11-15 16:19:46 +01:00
Martin
ddabed0c7e
fix(refactor): continue to revert to past implementation. now use a job instead of calling deliver_later(wait: 5.minutes) [was not a satisfying implementation]
2021-11-15 15:45:48 +01:00
Martin
5534c3fbd6
fix(refactor): forgot to cleanup former implementation
2021-11-15 15:43:51 +01:00
Martin
5b6bb5171c
tech(lint): rubocopify
2021-11-15 15:42:20 +01:00
Martin
c68fa2d7f3
feat(Commentaire.notify_user): wait 5 minutes before sending email to user when instructor write a commentaire. leaving some space for instructor to destroy his message
2021-11-15 15:38:57 +01:00
Martin
46fc956de3
fix(refactor): forgot to pass var, classy
2021-11-15 15:01:56 +01:00
Martin
a74ca8ad39
fix(spec): scope out time as reference for time comparission, hope not a matter of precision
2021-11-15 14:55:35 +01:00
Martin
f1293814a3
fix(spec): apparently we do store time with zone
2021-11-15 14:35:43 +01:00
Martin
4042d51d1a
tech(lint): rubocopify
2021-11-15 14:17:57 +01:00
Martin
d4c74b5621
feat(rc.1): refine with better translations, better design
2021-11-15 14:15:05 +01:00
Martin
3b78a9d81a
feat(rc): first stable
2021-11-15 13:53:32 +01:00
simon lehericey
15d4c4c7b0
small fix on profil
2021-11-15 13:51:26 +01:00
Martin
8b931a57d4
feat(CommentairesController#destroy): implement destroy endpoint using CommentaireService
2021-11-15 13:18:10 +01:00
Martin
9a8ec1087c
feat(commentaire.soft_delete): wrap deletion behaviour in service
2021-11-15 12:43:53 +01:00
Martin
5b72bdec7e
fix(Commentaire.sent_by?): &.email compared to nil could sent by true when nil==nil, avoid this one
2021-11-15 12:01:56 +01:00
Martin
b03dc6ad5d
wip(dossiers/messages/_message): poc destroy button with expected ACL support
2021-11-15 11:30:41 +01:00
Paul Chavard
da47f491b3
fix(dossier): nullify close to expiration notice timestamps when changing state
2021-11-11 12:52:58 +01:00
Paul Chavard
faa235d205
fix(dossier): destroy operation logs when destroying an expired dossier
2021-11-11 09:37:09 +01:00
Paul Chavard
71939c650b
fix(export): remove wrong columns from repetition spreadsheets
...
This fix prevent repetition children types de champ from being pulled from cloned procedures. stable_id is stable across revisions but also across cloned procedures.
2021-11-10 20:45:32 +01:00
Peng-Fei DONG
dc560479ec
clean css in page deleted_dossiers for show the dossier table
2021-11-09 12:45:41 +01:00
kara Diaby
9ee9389ba1
add the good retry_on StaleObjectError
2021-11-05 13:32:21 +01:00
simon lehericey
17d131b3cc
add has_may requested_merge_from
2021-11-04 16:10:09 +01:00
simon lehericey
9041e201e8
one merge at a time
2021-11-04 16:10:09 +01:00
simon lehericey
adfac5fb7b
improve ui
2021-11-04 16:10:09 +01:00
simon lehericey
b160086cc5
update update_email to allow merge
2021-11-04 16:10:09 +01:00
simon lehericey
652b8367be
accept or refuse merge
2021-11-04 16:10:09 +01:00
simon lehericey
6625c6bac3
add requested_merge_into column in user table
2021-11-04 16:10:09 +01:00
simon lehericey
894e8fdd47
move update_email check to before_action
2021-11-04 16:10:09 +01:00
Paul Chavard
ba0211ba52
feat(champ): ask for departement before asking for commune
2021-11-04 11:55:25 +01:00
Paul Chavard
122cdacbc2
fix(avis): destroy avis for discarded en_construction dossiers
2021-11-04 10:12:44 +01:00
Paul Chavard
f6b8689a97
fix(revisions): fix repetitions export with revisions
2021-11-03 18:20:48 +01:00
Paul Chavard
0e2f09dd6f
fix(dossiers): wrap dossier discard in a transaction
...
By doing this we ensure that deleted_dossier are not created when dossier is not discarded
2021-11-02 18:17:35 +01:00
Paul Chavard
7ef73f13e4
fix(grope_instructeur): can not destroy groupe_instructeur with discarded dossiers
2021-11-02 12:15:24 +01:00
Paul Chavard
3c2515ce6d
feat(graphql): add graphql_operation to rails logs
2021-11-02 12:02:00 +01:00
kara Diaby
87ed764f9b
enlarge procedure title in user dossier
2021-10-29 14:05:49 +02:00
Paul Chavard
da49a6447f
refactor(repetition): optimize and add a transaction around repetition add row
2021-10-28 14:54:33 +02:00
Paul Chavard
f9a8fb4ada
fix(repetition): prevent rage clicks on add row button
2021-10-28 14:54:32 +02:00
Paul Chavard
c4b93f8d4a
fix(groupe_instructeur): unfollow dossiers when removed from groupe instructeur
2021-10-28 14:45:52 +02:00
simon lehericey
8fe1e2bf71
wrap merge in transaction
2021-10-28 14:39:13 +02:00
simon lehericey
7935e42109
Add merge log
2021-10-28 14:39:13 +02:00
simon lehericey
3328c9a132
merge move invite as well
2021-10-28 14:39:13 +02:00
simon lehericey
f2ccb39912
merge destroys the old role and account
2021-10-28 14:39:13 +02:00
simon lehericey
1401d163ba
add dependent_destroy to user instructeur / admin / expert roles
2021-10-28 14:39:13 +02:00
simon lehericey
c725999582
move merge method to user
2021-10-28 14:39:13 +02:00
Paul Chavard
1393b7b07b
fix(rebase): fix repetition champ rebase
2021-10-28 13:27:53 +02:00
Paul Chavard
d659595cde
fix(typo): addresse -> adresse
2021-10-27 18:59:18 +02:00
Paul Chavard
6599f9a992
fix(bulk_messages): disable pj on bulk messages
2021-10-27 15:41:53 +02:00
Paul Chavard
7ebc439630
refactor(drop_down_list_champ): other option
2021-10-27 12:01:15 +02:00
Paul Chavard
8154daf847
refactor(drop_down_list_champ): other option
2021-10-27 12:00:39 +02:00
kara Diaby
f1f2b76a3d
revisions
2021-10-27 12:00:39 +02:00
kara Diaby
c2fcd3992d
add other option for dropdown select
2021-10-26 16:11:15 +02:00
kara Diaby
0e65916e44
add other option for dropdown radio
2021-10-26 16:11:15 +02:00
kara Diaby
dc35d9521f
add other option to liste deroulante champ
2021-10-26 16:11:15 +02:00
Paul Chavard
6e8e0c7b6b
feat(type_de_champ): reflect changes of secondary labels and descriptions
2021-10-26 12:18:01 +02:00
Paul Chavard
d308448f02
feat(type_de_champ): add secondary label and description do linked drop downs
2021-10-26 12:18:01 +02:00
Paul Chavard
579dce8eb6
refactor(user): wrap user destruction in a transaction
2021-10-26 11:16:29 +02:00
Paul Chavard
d5d3995dad
fix(dossier): fix dossier.avis cascade
2021-10-26 11:16:29 +02:00
Paul Chavard
4aa573a75d
fix(transfer): remove discarded dossiers from transfers
2021-10-26 10:41:01 +02:00
Pierre de La Morinerie
d0e87a08cf
services: cache zxcvbn dictionaries per-thread
...
Before, every time a password was tested, the dictionaries were parsed
again by zxcvbn.
Parsing dictionaries is slow: it may take up to ~1s. This doesn't matter
that much in production, but it makes tests very slow (because we tend
to create a lot of User records).
With this changes, the initializer tester is shared between calls, class
instances and threads. It is lazily loaded on first use, in order not to
slow down the application boot sequence.
This uses ~20 Mo of memory (only once for all threads), but makes tests
more that twice faster.
For instance, model tests go from **8m 21s** to **3m 26s**.
NB:
An additionnal optimization could be to preload the tester on
boot, before workers are forked, to take advantage of Puma copy-on-write
mechanism. In this way all forked workers would use the same cached
instance.
But:
- We're not actually sure this would work properly. What if Ruby updates
an interval ivar on the class, and this forces the OS to copy the
whole data structure in each fork?
- Puma phased restarts are not compatible with copy-on-write anyway.
So we're avoiding this optimisation for now, and take the extra 20 Mo
per worker.
2021-10-25 12:04:56 +02:00
Paul Chavard
1561ea82f6
fix(transfer): manually nullify staled transfers references
2021-10-21 13:54:26 +02:00
Paul Chavard
2a3a9dd822
feat(revisions): rebase dossiers brouillons
2021-10-20 17:26:09 +02:00
Paul Chavard
09a09d3fcf
feat(revisions): add rebased_at to champs
2021-10-20 17:26:09 +02:00
Paul Chavard
67e98f79c9
feat(revisions): add stable_id to changes
2021-10-20 17:25:34 +02:00
Paul Chavard
1ca8192864
perf(export): load dossiers.champs in batches
2021-10-20 16:52:38 +02:00
lydiasan
6f9c3abfbc
i18n: display language selector on non-french accept-languages
2021-10-19 16:41:36 +02:00
simon lehericey
d19ad2840c
rename preexisting to targeted, remove duplicated test
2021-10-19 16:12:42 +02:00
simon lehericey
52b7e85954
merge administrateur in user_controller
2021-10-19 16:12:42 +02:00
simon lehericey
866df74706
merge admin
2021-10-19 16:12:42 +02:00
simon lehericey
44c880adc4
allow instructeur and administrateur to change their email to legit domain ( #6550 )
2021-10-19 15:54:57 +02:00
Paul Chavard
8fa544e176
feat(manager): bring back add administrateur
2021-10-19 12:06:31 +02:00
simon lehericey
f54dfe6ead
Do not raise error if user is nil
...
I do not get when it happens
2021-10-19 11:21:24 +02:00
simon lehericey
46fd15416b
add end to end test
2021-10-14 14:47:50 +02:00
simon lehericey
bb83fd2f18
To make an old test work, no idea
2021-10-14 14:47:50 +02:00
simon lehericey
933d7b8c8d
merge with another preexisting account
2021-10-14 14:47:50 +02:00
simon lehericey
ce40e1127d
merge with another new account
2021-10-14 14:47:50 +02:00
simon lehericey
19f81b594b
merge with an existing account by using the password
2021-10-14 14:47:50 +02:00
simon lehericey
218e4633a9
securely retrieve fci
2021-10-14 14:47:50 +02:00
simon lehericey
f7299da1e7
launch merge process if an unlinked DS account with the same email exists
2021-10-14 14:47:50 +02:00
simon lehericey
f6879eba60
associate_user take a target email
2021-10-14 14:47:50 +02:00
simon lehericey
09f828a6a2
create_merge_token!
2021-10-14 14:47:50 +02:00
simon lehericey
34862f41e0
Add fci valid_for_merge
2021-10-14 14:47:50 +02:00
simon lehericey
2e118a8f5b
allow unattached fci
2021-10-14 14:47:50 +02:00
simon lehericey
461b774188
a password input must not be that wide
2021-10-14 14:47:50 +02:00
simon lehericey
6e6635560f
Add merge token to FCI
2021-10-14 14:47:50 +02:00
simon lehericey
6826bf03b0
Sign in with a user linked by france connect sub (openid)
...
instead of looking linked user by email because :
- follows FC recommendation to fetch ds account by openid
- the email is not a valid key as many user can share the same FCI email.
The following scenario is now working
A user A (email: 1@mail.com ) uses FC to connect to DS
=> It is connected as 1@mail.com
Another user B (email: generic@mail.com ) uses FC to connect
=> It is connected as generic@mail.com
The first user A change its FC email to generic@mail.com and connect to DS
=> It is still connected as 1@mail.com
2021-10-14 14:47:50 +02:00
simon lehericey
06dee2e023
refactor controller to avoid return
2021-10-14 14:47:50 +02:00
simon lehericey
5aaf46258a
remove obsolete devise scope
2021-10-14 14:47:50 +02:00
Paul Chavard
4caf2f9592
fix(champs): remove redundant description
2021-10-13 13:55:09 +02:00
Pierre de La Morinerie
9be16a1208
views: rename the procedure_publish_label helper
...
The new text makes more sense.
2021-10-12 16:25:11 +02:00
Pierre de La Morinerie
50b1d4ce28
views: make france-connect-information more compact
...
Otherwise it takes a lot of space in the form.
2021-10-12 16:25:01 +02:00
simon lehericey
87de9e38c6
allow draft to be saved with invalid cnaf champ
2021-10-12 14:27:20 +02:00
simon lehericey
35c7f05a0a
source service supports unknown scope
2021-10-12 14:27:20 +02:00
simon lehericey
ecc26897e2
add end to end spec
2021-10-12 14:27:20 +02:00
simon lehericey
7aee944daa
show cnaf tdc when procedure is compatible
2021-10-12 14:27:20 +02:00
simon lehericey
7072993721
a form can upload numero_allocataire and code_postal
2021-10-12 14:27:20 +02:00
simon lehericey
57a7f82a8f
add cnaf ui
2021-10-12 14:27:20 +02:00
simon lehericey
40d0cfcdc4
add champ validation
2021-10-12 14:27:20 +02:00
simon lehericey
c76d1043fa
add cnaf champ
2021-10-12 14:27:20 +02:00
simon lehericey
354735ace4
add champ value_json jsonb column
2021-10-12 14:27:20 +02:00
simon lehericey
d68129b34d
add cnaf type de champ
2021-10-12 14:26:40 +02:00
simon lehericey
b69dafc3d4
CNAF in lowercase
2021-10-12 14:26:40 +02:00
simon lehericey
17a2b5dc53
fix a strange encoding error
2021-10-12 14:26:40 +02:00
Pierre de La Morinerie
0b02fce5e4
jobs: move ActiveJobLogSubscriber out of initializers
...
This is a class of its own, it doesn't need to be in the initializers.
2021-10-12 11:40:19 +02:00
simon lehericey
7c65571fca
add case when the old_expert or old_instructeur is nil
2021-10-12 11:04:06 +02:00
simon lehericey
d7e621d167
beef up the merge methods
2021-10-07 15:51:31 +02:00
simon lehericey
77d14d4a60
forbid admin merge yet
2021-10-07 15:51:31 +02:00
simon lehericey
5009c583ea
Add notice when merging account
2021-10-07 15:51:31 +02:00
simon lehericey
a480b31eb5
merge expert
2021-10-07 15:51:31 +02:00
simon lehericey
136f29524e
merge instructeur
2021-10-07 15:51:31 +02:00
simon lehericey
9a6a53349f
simple cases when the preexisting targeted account does not have instructeur or profile profile
2021-10-07 15:51:31 +02:00
Paul Chavard
4a947f9135
feat(manager): add become administrateur button in manager (with 24h expiration)
2021-10-07 11:32:12 +02:00
Paul Chavard
9d5c5447c2
fix(dossier): do not attempt to destroy transfers when a dossier is destroyed
...
we had a dependent option on both sides of a relationship which created race conditions
2021-10-06 17:51:09 +02:00
kara Diaby
13883393eb
modify layout
2021-10-06 16:41:08 +02:00
Paul Chavard
d3c1941fbe
fix(dossier): never write dossier log on dossiers brouillons
2021-10-05 17:56:51 +02:00
kara Diaby
e4b61eae21
layout
2021-10-05 15:37:29 +02:00
kara Diaby
177074bf32
css
2021-10-05 15:37:29 +02:00
kara Diaby
9c9eeb8e76
modify groupe instructeurs controller$
2021-10-05 15:37:29 +02:00
kara Diaby
0bd879ec9b
modify pj service
2021-10-05 15:00:21 +02:00
kara Diaby
6ef5b5d474
modify downloable file
2021-10-05 15:00:21 +02:00
kara Diaby
bfee9c275c
layout
2021-10-05 15:00:21 +02:00
kara Diaby
6d89d914e2
modify expert avis controller
2021-10-05 15:00:21 +02:00
simon lehericey
d8112b9548
[ Fix #6491 ] ui
2021-10-05 12:05:43 +02:00
simon lehericey
1000417bc9
update notifications_for_dossier used in dossier show
2021-10-05 12:05:43 +02:00
simon lehericey
65911b7680
update with_notifications dossiers scope (used in procedure index and show)
2021-10-05 12:05:43 +02:00
simon lehericey
f662b28baf
update identity_updated_at column when user identity change
2021-10-05 12:05:43 +02:00
simon lehericey
3a878dfc04
add identity_updated_at column to dossier
2021-10-05 12:05:43 +02:00
Pierre de La Morinerie
f854e3af63
controllers: use ACSV to import groupe instructeurs
...
Unlike `CSV`, `ACSV` auto-detect the file encoding and separator type.
2021-10-05 10:58:15 +02:00
Peng-Fei DONG
dee536fca1
app: localize CSV import for groupe instructeurs
2021-10-05 10:58:15 +02:00
simon lehericey
9679e233cd
[ Fix #6512 ] admin preview in new tab
2021-10-05 10:47:58 +02:00
simon lehericey
e4484eb6d9
discard expert not found job error
2021-10-04 12:57:37 +02:00
simon lehericey
64351d0287
[ Fix #6504 ] Fix exception raised when deleting a transfer
2021-10-01 12:11:03 +02:00
Pierre de La Morinerie
b2774ed2f6
js: fix pays API request on older Edge and Safari
...
The /api/pays API requires user authentication. However older versions
of Edge and Safari don't transmit cookies by default during a
`fetch` request.
Use the `credentials: 'same-origin'` option explicitely to fix the
countries list.
2021-09-30 16:21:24 +02:00
Pierre de La Morinerie
f01e4ed6ef
models: document upstream PR about file size validation
2021-09-30 15:45:30 +02:00
kara Diaby
7594d8470c
Fixe une faute d'orthographe dans une notification
2021-09-30 11:45:24 +02:00
Pierre de La Morinerie
2908f2bdba
assets: fix background of translate-icon
...
The background was white, instead of being transparent.
2021-09-28 16:42:04 +02:00
kara Diaby
eb951c75e4
change stats colors
2021-09-28 14:49:24 +02:00
kara Diaby
b5e699e8b8
change svg icons color
2021-09-28 14:49:24 +02:00
kara Diaby
1f2935719c
change blue color on all the app
2021-09-28 12:33:01 +02:00
kara Diaby
99cfd4f42c
adapte la page d'accueil au design system de l'état
2021-09-28 12:33:01 +02:00
simon lehericey
6eb10ecde5
display tdc alphabetically 🎉
2021-09-27 15:45:37 +02:00
simon lehericey
f55db98e97
rework type de champ type
2021-09-27 15:45:37 +02:00
Paul Chavard
c288739f13
Update app/helpers/procedure_helper.rb
...
Co-authored-by: LeSim <mail@simon.lehericey.net>
2021-09-27 15:06:17 +02:00
Paul Chavard
7deedf8245
feat(refactor): unify dossiers header
2021-09-27 15:06:17 +02:00
Paul Chavard
357c684688
feat(routage): self managing instructeurs
2021-09-27 15:06:17 +02:00
Paul Chavard
d4e8158887
feat(routing): add instructeurs_self_management_enabled to procedures
2021-09-27 15:06:17 +02:00
Paul Chavard
5933194149
feat(log): stop logging user emails
...
fix #6485
2021-09-27 14:56:00 +02:00
simon lehericey
57604b9c89
add schema validations
2021-09-22 12:08:24 +02:00
simon lehericey
75043070da
add CNAFAdapter
2021-09-22 12:08:24 +02:00
simon lehericey
a7651e3772
add api composition_familiale
2021-09-22 12:08:24 +02:00
simon lehericey
ceb09c5967
api remove useless symbolize
2021-09-22 12:08:24 +02:00
simon lehericey
07962cc2c7
service: match remote keys
2021-09-22 12:08:24 +02:00
Ismael MOUSSA S
36dc9c2ca2
Add File Validation concern after refactoring
2021-09-21 12:11:20 -05:00
Ismael MOUSSA S
7c7c9c9ea4
Fix file size validation message
2021-09-21 12:11:20 -05:00
Ismael MOUSSA S
bdbb4deb87
ADD FILE_MAX_SIZE constant to set allow file size limit
2021-09-21 12:04:56 -05:00
simon lehericey
1446660ca3
an api_particulier_token change erases previous api_particulier_sources
2021-09-21 11:21:10 -05:00
simon lehericey
2e1bed8748
an admin can save its sources
2021-09-21 11:21:10 -05:00
simon lehericey
8d747ff16e
add sanitize method to service
2021-09-21 11:21:10 -05:00
Pierre de La Morinerie
6656d1130b
i18n: refactor admin support locales
...
This allow i18n-tasks to better detect dynamic keys.
2021-09-21 10:44:20 -05:00
Pierre de La Morinerie
f9220891a7
i18n: refactor user support locales
...
This allow i18n-tasks to better detect dynamic keys.
2021-09-21 10:44:20 -05:00
Pierre de La Morinerie
274b92c453
i18n: remove simple_form locale files
...
We don't even use simple_form.
2021-09-21 10:44:20 -05:00
Pierre de La Morinerie
8748b6f494
i18n-tasks: add hint for default_i18n_subject in mailers
2021-09-21 10:44:20 -05:00
Pierre de La Morinerie
eef90efd49
app: fix exception during password reset when the token has expired
2021-09-21 10:30:09 -05:00
simon lehericey
a7ec77f0a8
do not display the action for instructeur
2021-09-20 13:58:11 +02:00
simon lehericey
75481a644c
Add confirm alert
2021-09-20 13:58:11 +02:00
simon lehericey
7239657a75
[ Fix #6481 ] a user see its waiting transfers
2021-09-20 13:58:11 +02:00
simon lehericey
c34476a766
a user can transfer all its dossier
2021-09-20 13:58:11 +02:00
Paul Chavard
c9accbf5a5
refactor(i18n): localize routage description
2021-09-18 11:51:27 +02:00
Paul Chavard
4db059a54c
Update app/views/new_administrateur/groupe_instructeurs/_routing.html.haml
...
Co-authored-by: Pierre de La Morinerie <kemenaran@gmail.com>
2021-09-18 11:22:35 +02:00
Paul Chavard
0c5c8faf16
feat(routage): enable routage for everyone
2021-09-18 11:22:35 +02:00
Paul Chavard
0ff62c5a5e
feat(routage): add routing_enabled to procedures
2021-09-18 11:22:35 +02:00
Paul Chavard
8b4bef2816
refactor(routage): simplify goupe_instructeur assign code
2021-09-18 11:21:26 +02:00
Paul Chavard
eea6b961d7
refactor(routage): remove administrateur_routage feature flag
2021-09-18 11:21:26 +02:00
simon lehericey
cfebc4698a
add link to sources UI
2021-09-17 13:50:23 +02:00
simon lehericey
2c13f70cd5
redirect to sources after updating token
2021-09-17 13:50:23 +02:00
simon lehericey
5dbd81ebeb
show api particulier sources
2021-09-17 13:50:23 +02:00
simon lehericey
8327c6fd0c
add ApiParticulier::Service::Sources
2021-09-17 13:50:23 +02:00
simon lehericey
b000590d81
add api particulier sources to procedure
2021-09-17 13:50:23 +02:00
Peng-Fei DONG
2b8f7f13a9
check SENDINBLUE_ENABLED when show the link
2021-09-16 15:37:31 +02:00
Pierre de La Morinerie
715b5ea6d8
i18n: move controller keys to the proper scope
2021-09-16 07:59:19 -05:00
Pierre de La Morinerie
423deb3c3a
i18n: fix invalid i18n key in the admin section
2021-09-16 07:51:56 -05:00
Pierre de La Morinerie
e6b044531d
i18n: fix invalid i18n-tasks-hint
2021-09-16 07:51:56 -05:00
Pierre de La Morinerie
f1fa84c12a
i18n: remove unused i18-tasks-hint
2021-09-16 07:51:56 -05:00
Pierre de La Morinerie
446738fbbf
i18n: make dynamic scopes explicit
...
This fixes i18n-tasks not being able to recognize the scopes.
2021-09-16 07:51:56 -05:00
Pierre de La Morinerie
1eefc151bc
i18n: move locale scope just after the key name
...
It helps i18n-tasks to understand the scope, and not report errors
about a missing key.
2021-09-16 07:51:56 -05:00
Pierre de La Morinerie
95d1cd6992
i18n: cleanup gender locales
...
The dot in the localized key messes up with i18n-tasks, and causes
false positives for missing strings.
2021-09-16 07:51:56 -05:00
simon lehericey
1d06c15ac0
save api particulier scopes
2021-09-16 09:49:16 +02:00
simon lehericey
6c6205e188
a cloned procedure to a different admin does not keep api_particulier token and scopes
2021-09-16 09:30:11 +02:00
simon lehericey
2d2ae3a878
add api particulier scopes to procedure
2021-09-16 09:30:11 +02:00
simon lehericey
7ee360df30
add logic to detect empty scopes
2021-09-16 09:09:34 +02:00
Pierre de La Morinerie
745e19bb8e
localize
2021-09-16 09:07:47 +02:00
simon lehericey
69bb174e29
add feature flipped link to add api particulier token
...
Co-authored-by: François VANTOMME <akarzim@gmail.com>
2021-09-15 14:56:42 +02:00
simon lehericey
ee6d19e3ee
an admin can save it's api particulier token
...
Co-authored-by: François VANTOMME <akarzim@gmail.com>
2021-09-15 14:56:42 +02:00
simon lehericey
4c0dd43055
add jetons particulier index page
...
Co-authored-by: François VANTOMME <akarzim@gmail.com>
2021-09-15 14:37:04 +02:00
simon lehericey
87cb16093f
fetch token introspection
...
Co-authored-by: François VANTOMME <akarzim@gmail.com>
2021-09-15 14:37:04 +02:00
Peng-Fei DONG
1979c44f9c
set OTP: Enable or Disable
2021-09-09 10:25:15 -05:00
Pierre de La Morinerie
4a71b1d202
app: remove former password complexity views
...
The old component is now unused and ca be removed.
2021-09-09 09:40:40 -05:00
Pierre de La Morinerie
e5f449b595
devise: unify password reset views
...
By default, Devise will look for views:
1. First in `views/resource/passwords/…`,
2. Then in `views/devise/passwords/…` if not found.
By moving the views to `views/devise`, we avoid having a partial in
`views/shared` that we need to include manually, and instead let Devise
do the job automatically.
2021-09-09 09:40:40 -05:00
Pierre de La Morinerie
80f9d4adc0
devise: use password_strength component in SuperAdmin::PasswordsController
2021-09-09 09:40:39 -05:00
Pierre de La Morinerie
62e4f7ee32
devise: use password_complexity in User::PasswordsController
...
This fixes the password strength meter no longer being displayed when
an admin changes their password.
2021-09-09 09:40:39 -05:00
Pierre de La Morinerie
ed8b19d2eb
app: use password_complexity in Administrateurs::ActivateController
2021-09-09 09:40:39 -05:00
Pierre de La Morinerie
428ca8755f
app: add a password_complexity component
...
This component will replace the previous `password_field` component.
2021-09-09 09:40:39 -05:00
Pierre de La Morinerie
e97b7164dd
models: extract password complexity to a concern
2021-09-09 09:40:39 -05:00
Pierre de La Morinerie
02bdfef893
devise: cleanup Users::PasswordController
2021-09-09 08:03:34 -05:00
Paul Chavard
3235f42a63
feat(dossier): add dossier transfers UI
2021-09-08 15:10:43 +02:00
Paul Chavard
5985755229
feat(dossier): add purge stale dossier transfers job
2021-09-08 14:39:46 +02:00
Paul Chavard
46226b7930
fix(i18n): use size instead of count in dossier mailers
2021-09-08 14:39:46 +02:00
Paul Chavard
d6cbdf2a48
feat(dossier): add dossier transfer models
2021-09-08 14:39:46 +02:00
Paul Chavard
44eb0ada4f
fix(i18n): add Kosovo to countries list
...
Kosovo is not part of ISO 3166 as of time of writing. https://en.wikipedia.org/wiki/ISO_3166-2:RS#cite_ref-1
2021-09-08 12:11:25 +02:00
Paul Chavard
a7ec43a21e
fix(i18n): fix email previews
2021-09-08 09:21:19 +02:00
Paul Chavard
ef12ded3ed
i18n: fix localization of notify_revert_to_instruction email
2021-09-08 09:21:19 +02:00
Paul Chavard
c8d8976a7c
i18n: fix localization of notify_new_answer email
2021-09-08 09:21:19 +02:00
Pierre de La Morinerie
f8d7b7b1e3
i18n: fix localization of notify_new_draft email
2021-09-08 09:21:19 +02:00
Pierre de La Morinerie
4f33a7b72e
js: improve auto-save-controller documentation
2021-09-07 16:45:52 -05:00
Pierre de La Morinerie
ad8dcc7f7d
js: don't report autosave failures that are timeouts
...
This prevents spamming Sentry with "[Autosave] Error: 0" messages.
2021-09-07 16:45:52 -05:00
Pierre de La Morinerie
8dce7d59ed
js: redirect to sign-in when a ujs link_to receives a 401
...
Before, when a 401 was received by a ujs-enabled link (like `link_to …,
method: :delete, data: { remote: true }`, rails-ujs tried to insert the
response text as a Javascript script.
As the script was something like `Please sign-in`, which is not valid
Javascript, the browser would throw an "Unexpected token" error.
The typical use-case is:
1. The user open a form in a tab,
2. The user disconnects in another tab,
3. In the first tab, the user clicks on a remote "Delete" link_to
In that case the browser raised an error in the console (and in Sentry),
but the user would see nothing.
With this commit, all 401 ujs errors are turned into redirects to the
sign-in page.
Fix https://sentry.io/organizations/demarches-simplifiees/issues/2522512693/activity/
2021-09-07 16:45:52 -05:00
Pierre de La Morinerie
255c00c174
js: ignore a new variant of the same warning
2021-09-07 16:45:52 -05:00
Pierre de La Morinerie
905fca0bd3
models: ensure Champs::Pays#to_s is always a string
...
Before this, the result of `Champs::Pays#to_s` could be `nil`, which
would break various things (like the PDF rendering of these champs).
2021-09-07 10:47:18 -05:00
Paul Chavard
74e277d0a2
feat(graphql): add an option to dossier state change mutations to disable notifications
2021-09-07 14:21:48 +02:00
Paul Chavard
96cbbc0192
fix(virus scan): prevent virus scan on archives and signatures uploads
2021-09-07 14:21:48 +02:00
Paul Chavard
084e48c8e3
fix(dossier_projection_service): select external_id on champs
2021-09-07 14:07:55 +02:00
simon lehericey
367f508e2e
linked_drop_down_list: empty primary => empty secondary
2021-09-07 10:09:18 +02:00
Paul Chavard
6a5a8233b5
feat(i18n): send dossier emails with its user locale and improuve translations
2021-09-07 09:51:23 +02:00
Paul Chavard
cd9f7df502
feat(i18n): send dossier notifications with its user locale
2021-09-07 09:51:23 +02:00
Paul Chavard
34b1418868
feat(i18n): save locale on user
2021-09-07 09:51:23 +02:00
Paul Chavard
ff7fa4d895
feat(i18n): expose locale on dossier and deleted_dossier
2021-09-07 09:51:23 +02:00
Paul Chavard
f1ff6da81b
feat(i18n): add locale to user
2021-09-07 09:47:01 +02:00
Pierre de La Morinerie
8bb283d977
app: delete old Admin::ProceduresController
2021-09-02 14:51:31 -05:00
Pierre de La Morinerie
a004ac59df
app: move archive to NewAdministrateur::ProceduresController
2021-09-02 14:51:31 -05:00
Pierre de La Morinerie
e7c8a9fff5
app: move clone to NewAdministrateur::ProceduresController
2021-09-02 14:51:31 -05:00
Pierre de La Morinerie
3e83ad454f
app: move new_from_existing to NewAdministrateur::ProceduresController
2021-09-02 14:51:31 -05:00
Pierre de La Morinerie
7729385d89
controllers: remove dead code on Admin::ProceduresController
...
This code has been migrated to NewAdministrateur::ProceduresController.
2021-09-02 14:51:26 -05:00
Pierre de La Morinerie
3fc934c8fb
app: remove leftovers of publish_validate route
...
The correponding code and feature have been removed a while ago.
2021-09-02 14:50:41 -05:00
Pierre de La Morinerie
0f9d7d6b8c
app: remove old Admin::InstructeursController
...
It was only hosting the deprecated "Instructeurs globally attached to
this admin", which wasn't used anywhere in the app anymore.
2021-09-02 14:40:36 -05:00
Jérôme Desboeufs
7079af2fd4
Update photographies-aeriennes basemap URL
2021-09-01 21:58:12 +02:00
Pierre de La Morinerie
7380d27d78
js: fix null xhr in autosave error handling
...
Sentry reports many cases of the xhr object being missing in the
error handler.
Ensure the error handling code doesn't crash because of the missing xhr.
2021-08-31 14:54:02 -05:00
Paul Chavard
5d63ced246
fix(eslint): fix eslint warnings
2021-08-31 18:14:04 +02:00
Paul Chavard
a3cc072bbd
feat(i18n): translate countries selector
2021-08-31 13:15:26 +02:00
Paul Chavard
241f564ecc
refactor(i18n): move signature translation keys to shared
2021-08-26 17:53:59 +02:00
Paul Chavard
c1c45613cc
feat(i18n): translate reexamin and new message emails
2021-08-26 17:53:59 +02:00
Paul Chavard
89d9a4a477
feat(i18n): translate notification emails actions
2021-08-26 17:53:59 +02:00