Commit graph

201 commits

Author SHA1 Message Date
Damien Le Thiec
8a7cb3f1fe
Merge branch 'main' into fix/stored_query_issue 2023-03-01 10:22:40 +01:00
Damien Le Thiec
01f142183e Add and correct tests 2023-03-01 10:21:22 +01:00
sebastiencarceles
f52554b5a3 review: update value with async fetch
1 - spec cover the job which fetches external data

2 - refactor the job with guard clauses

3 - delegate update operation to the champ itself

4 - annuaire education: override the update operation
to let the value be populated by the fetched data

5 - prefilling: don't fetch data synchronously
2023-02-28 14:53:08 +01:00
sebastiencarceles
8b25503f7e feature spec cover 2023-02-28 14:23:38 +01:00
sebastiencarceles
8f12467168 feature spec cover 2023-02-27 15:18:37 +01:00
sebastiencarceles
1caf56d943 fix lint 2023-02-27 14:48:46 +01:00
sebastiencarceles
efd5464bd5 cover use case with feature spec 2023-02-27 14:43:48 +01:00
sebastiencarceles
becf4da70a fix raison social fetch 2023-02-27 13:54:35 +01:00
sebastiencarceles
498e5d7487 cover use case with a feature spec 2023-02-27 13:53:18 +01:00
sebastiencarceles
bd1bed940c feature spec cover 2023-02-27 12:20:11 +01:00
Damien Le Thiec
fbe4fe251a Fix format prefill repetition 2023-02-22 19:32:25 +01:00
Damien Le Thiec
2052bc7840 Remove dependency type_de_champ -> procedure 2023-02-21 16:00:58 +01:00
Damien Le Thiec
dce4c84f9a Merge branch 'main' into feature/prefill_repetible 2023-02-16 17:08:30 +01:00
sebastiencarceles
a3ca79076e cover the use case with feature specs 2023-02-16 10:49:15 +01:00
Damien Le Thiec
539b9e4f10 Merge branch 'main' into feature/prefill_repetible 2023-02-15 17:53:06 +01:00
Damien Le Thiec
4876d583b6 Merge branch 'main' into feature/prefill_repetible 2023-02-15 17:39:19 +01:00
Damien Le Thiec
4b3d403d7e fix spec 2023-02-15 17:14:29 +01:00
sebastiencarceles
8aa31522b6 cover feature with specs 2023-02-15 12:14:11 +01:00
Damien Le Thiec
dbb92e7fd3 Merge branch 'main' into feature/prefill_repetible 2023-02-11 22:40:56 +01:00
Damien Le Thiec
4b0e6ea382
Convert datetime field to datetime_local (#8572)
* Convert datetime field to datetime_local

* Fix tests

* Add value formatting view datetime component

* Add helper datetime component value
2023-02-09 15:18:38 +01:00
sebastiencarceles
7a254d124f feature spec cover 2023-02-09 13:51:52 +01:00
Paul Chavard
6924b8e46d feat(dossier): optional repetition champ should not add first row 2023-02-06 11:53:32 +01:00
Damien Le Thiec
63e7c17fda First tests for prefill repetition 2023-02-03 12:14:18 +01:00
Martin
4f4791a864 bug(liens-invitation): ne devrait pas pointer sur l'avis ayant le même id que l'invitation 2023-01-31 16:33:31 +01:00
Colin Darie
3265fff30e fix(dropdown): wait "other" input to be disabled before autosave
Fix le workflow suivant pour un champ drop down avec option "autre" :

- on choisit la valeur "autre" avec une valeur => ça autosave la bonne valeur
- on choisit finalement une autre valeur proposée => l'autosave envoyait
  la nouvelle valeur, et toujours la valeur "other" car l'input n'était pas encore
  `disabled`. Par conséquent la valeur other overridait la valeur choisie
  et ça provoquait des erreurs en cascade, notamment dans le conditionnel.
2023-01-30 12:16:25 +01:00
Martin
8528939b75 correctif(champs/repetitions#remove): les row id etant des ulid commence par un int. utiliser l'ulid comme selecteur css n'est pas valide. il faut donc avoir un selecteur CSS 'safe', et envoyer le row_id 2023-01-19 10:48:01 +01:00
Damien Le Thiec
5e26acb0e1
Make date and datetime prefillable (#8304)
* Make date and datetime prefillable

* Format in ISO8601 format
2023-01-12 17:42:02 +01:00
Sébastien Carceles
fa6fc077b4
normalize boolean values (#8320)
* extract parent for yes no and checkbox champs

* checkbox stores true / false instead of on / off

* normalize blank value to nil

* normalize invalid value to false

* after party task: normalize checkbox values

* after party task: normalize yes_no values
2023-01-05 11:18:27 +00:00
Colin Darie
b89fc16999 style(instructeurs/expiration): convert banner to DSFR 2023-01-04 13:15:10 +01:00
Paul Chavard
6e18090fb3 refactor(virus_scan_result): use column instead of metadata on blob 2023-01-04 12:12:11 +01:00
Martin
a4d6692bc6 accessibilite(pages-authentification): evolutions des pages de connexion/creation de compte pour respecter le DSFR et supporter une meilleure accessibilite
Update app/components/dsfr/input_component/input_component.html.haml

Co-authored-by: Colin Darie <colin@darie.eu>
2023-01-03 16:26:05 +01:00
Sébastien Carceles
20136b7ac8
feat(demarche): create and prefill a dossier with POST request (#8233)
* add base controller for public api

* add dossiers controller with basic checks

* create the dossier

* ensure content-type is json

* prefill dossier with given values

* mark a dossier as prefilled

When a dossier is prefilled, it's allowed not to have a user.

Plus, we add a secure token to the dossier, which we will need later to set a
user after sign in / sign up.

* set user as owner of an orphan prefilled dossier

When a visitor comes from the dossier_url answered by the public api,
the dossier is orphan:
- when the user is already authenticated: they become the owner
- when the user is not authenticated: they can sign in / sign up / france_connect
and then they become the owner

So here is the procedure:
- allow to sign in / sign up / france connect when user is unauthenticated
- set dossier ownership when the dossier is orphan
- check dossier ownership when the dossier is not
- redirect to brouillon path when user is signed in and owner

* mark the dossier as prefilled when it's prefilled
(even with a GET request, because it will be useful later on, for
exmample in order to cleanup the unused prefilled dossiers)

* system spec: prefilling dossier with post request
2023-01-03 14:46:10 +01:00
Paul Chavard
00218fded2 fix(dossier): update spec 2022-12-21 14:03:02 +01:00
Paul Chavard
cb5b60ccda Revert "Revert "Merge pull request #7907 from tchak/feat-cond-repetitions""
This reverts commit 0d10d36cb0.

# Conflicts:
#	app/models/dossier.rb
#	app/models/dossier_preloader.rb
2022-12-15 19:09:25 +01:00
Sébastien Carceles
b8ff0ba4a2
feat(demarche): sign up when prefilling a dossier (#8247)
* store prefill params in session

Instead of using query params on /dossier/new, we assume the user comes
from /commencer/:path, which is the new prefill link.

There, we store the prefill params in session, and use them to prefill
the dossier when creating it, in /dossiers/new.

* spec: cover the case

* review: serialize with json instead of yaml

* review: rename method

* review: store only query params

* review: comment why we dont override already stored params
2022-12-15 10:58:17 +01:00
Colin Darie
3a9a71079a
Merge branch 'main' into pj-en-construction-replace 2022-12-14 16:59:48 +01:00
Paul Chavard
0d10d36cb0 Revert "Merge pull request #7907 from tchak/feat-cond-repetitions"
This reverts commit 1900f8ff4c, reversing
changes made to febffc2d64.

# Conflicts:
#	app/models/dossier.rb
2022-12-14 11:25:45 +01:00
Colin Darie
013a05f24a
feat(piece_justificative): replace with multiple attachments for dossier en_construction 2022-12-14 09:58:15 +01:00
sebastiencarceles
bfdba0c513 review: system spec 2022-12-08 15:27:39 +01:00
Paul Chavard
16a48c02aa feat(cond): add tests 2022-12-08 09:38:12 +01:00
Colin Darie
8cf8c2c88a
test(attachment): maybe fix flaky test 2022-12-06 16:37:11 +01:00
Colin Darie
53d4395cbd test(attachments): system test for multiple attachments upload 2022-12-05 10:47:10 +01:00
Colin Darie
cb2afc74b0 style(attachments): better UX when we can try to upload without network 2022-12-05 10:47:10 +01:00
Colin Darie
b13c5e56f6 refactor(piece_justificative): UX follows mockups 2022-12-05 10:47:10 +01:00
Colin Darie
f625d99934 chore(dossier_transfer): extract i18n 2022-11-25 13:34:12 +01:00
sebastiencarceles
c294ce70ca fix: escape characters when showing page title 2022-11-25 09:30:20 +01:00
Paul Chavard
ff470ada48 fix(dossier): fix dossier brouillon spec 2022-11-23 11:56:35 +01:00
Martin
05dcf5e7cf amelioration(usager.liste_des_dossier): ajout du bouton pour cloner un dossier 2022-11-14 09:13:54 +01:00
Paul Chavard
e6288c39f2 refactor(dossier): champs -> champs_public 2022-11-10 22:44:39 +00:00
Eric Leroy-Terquem
b419c48262 toggle routing when adding or deleting groupe_instructeurs 2022-11-04 12:03:43 +01:00
simon lehericey
e7666e274f fix(spec/system): wait for merci page 2022-10-28 14:51:41 +02:00
simon lehericey
d859f1ed0a fix(spec/system): add delay when dealing with pj 2022-10-28 14:51:41 +02:00
simon lehericey
00d1552060 clean(spec): remove useless autosave 2022-10-25 14:44:43 +02:00
Eric Leroy-Terquem
2147a1865c add test 2022-10-13 19:49:32 +02:00
Paul Chavard
dd38fa4458 refactor(spec): add wait_for_autosave helper 2022-10-13 14:44:46 +02:00
Paul Chavard
03c714e86d test(flipper): cleanup flipper calls in tests 2022-10-12 14:14:30 +02:00
Colin Darie
10917af523 style: signin button styled accordingly to UX 2022-10-11 09:50:21 +02:00
Martin
17ed80b18a clean(Champs::Engagement): migrate to Champs::Checkbox, some for TypeDeChamp 2022-09-27 19:09:28 +02:00
Paul Chavard
d6f5be622c feat(dossier): autosave en construction 2022-09-08 11:26:29 +02:00
Martin
df3ef23f7e fix(spec): 1. visit new_user_session_path instead of navigating to it. 2. change way to submit search according to dsfr html. 3. avoid nav without aria label. 4. various lint fixes 2022-09-06 10:09:12 +02:00
Martin
96cdae0dd5 feat(DSFR.header): switch to DSFR header 2022-09-06 10:09:12 +02:00
Martin
c230db1ec4 bug(brouillon.edit.form): when their is a type de champs repetition having a child being mandatory. if the condition is not met, should be able to submit form 2022-08-24 15:18:05 +02:00
simon lehericey
00d0813292 ensure the mandatory star hint is always displayed 2022-08-09 10:29:41 +02:00
simon lehericey
898badb579 a champ is mandatory when visible with a mandatory tdc 2022-08-09 10:25:47 +02:00
simon lehericey
ec40836589 spec 2022-08-08 18:02:28 +02:00
simon lehericey
0b90c81c3a wrap existing spec in specific context 2022-08-08 18:02:28 +02:00
Paul Chavard
2d7803cd48 refactor(spec): use new procedure.types_de_champ factory 2022-08-04 12:10:32 +02:00
Colin Darie
9ebcbbbd67
test(brouillon_spec): fix random errors due to db champs not yet updated 2022-08-03 16:15:40 +02:00
Colin Darie
e8b088c2c5
test(brouillon_spec): remove unecessary manual sleep, improve "brouillon" feedback testing 2022-08-03 16:15:39 +02:00
Colin Darie
81a9258c8a
test(brouillon_spec): use capybara wait matchers 2022-08-03 16:15:39 +02:00
Colin Darie
983815bfe8
test(brouillon_spec): fix frequent dossier_link error by using an existing dossier 2022-08-03 16:15:39 +02:00
simon lehericey
0d3856e84a fix(conditional): handle incorrect user input 2022-07-22 15:55:43 +02:00
simon lehericey
d1e3a0d29f spec 2022-07-20 11:23:57 +02:00
Paul Chavard
982e604b07 feat(dossier): test check conditions on en construction dossier 2022-07-12 18:32:03 +02:00
Paul Chavard
120b593015 feat(dossier): toggle conditional champs visibility 2022-07-12 17:33:42 +02:00
Paul Chavard
a4681d8832 refactor(autosave): improuve events handling 2022-07-12 11:47:33 +02:00
Colin Darie
9768f4e1c9
style(champ): add placeholders for email, iban, phone, siret champs
Closes #7428
2022-07-11 17:16:19 +02:00
Martin
4c0aac8e0c fix(linked_dropdown/dropdown): for dropdown_list, drop blank option because rails add it when the field is required. kind of same behaviour for linked_dropdown_list [but requires to manage it on the front too] 2022-07-11 14:47:26 +02:00
Martin
7ad47f3eae bug(linked_dropdown/dropdown): dropdown_list : when mandatory, add an extra blank option. linked_dropdown_list : when mandatory and not filled, add an extra blank option to first list, then when select an element from the first list, another extra blank. 2022-07-11 14:47:26 +02:00
Martin
274b5eab2e feat(invite): wrap invitation with targeted_user_links 2022-06-17 16:44:37 +02:00
Martin
7ed9d586cf fix(drop_down_list): ensure to skip disabled input when sending data via autosave 2022-06-02 09:06:37 +02:00
Paul Chavard
02675a104d fix(revision): fix tests to use new revison system 2022-05-31 08:58:53 +02:00
Pierre de La Morinerie
4fcb85fd65 app: remove procedure_dossier_papertrail feature flag
The feature is now enabled for all procedures.
2022-05-24 17:32:11 +02:00
Paul Chavard
c9b8d43acd feat(autosave): use new autosave controller 2022-05-10 18:10:20 +02:00
Pierre de La Morinerie
7109e2d4e6 views: add a link to the deposit receipt 2022-05-04 16:09:52 +02:00
Paul Chavard
2d1370d123 refactor(champ): simplify repetition champ 2022-05-03 16:14:54 +02:00
Pierre de La Morinerie
8786b60285 specs: fix flaky "dossier brouillon" spec
When filling all the champs of a dossier, we skip the "Address"
champ (because it would attempt to request a blocked URL).

But that means the "Yes/No" radio buttons may be under the sticky
bottom bar, and thus not register the click – which makes the test fail.

Fix the issue by manually scrolling to the radio buttons.
2022-02-15 15:04:49 +01:00
Paul Chavard
cb66348916 a11y(select): cleanup select helpers in specs 2022-01-05 12:33:40 +01:00
Kara Diaby
598cb09c6d tests 2021-12-29 17:37:58 +01:00
simon lehericey
3bdf6b63d9 small wording fixes 2021-12-08 11:19:30 +01:00
Paul Chavard
2ba05bfb4f fix(dossier): use depose_at instead of en_construction_at 2021-12-06 15:49:17 +01:00
Martin
081d5094a9 feat(instructeurs/procedure/dossiers#extend_conservation): add extends duree conservation in action button list, also rewire this action for user [extend by procedure.duree_conservation_dans_ds by default] but force 1.month for instructeur. add new icon for standby based on https://en.wikipedia.org/wiki/Power_symbol 2021-12-06 07:20:01 +01:00
Martin
725521c3a1 fix(expiration_banner): only show expirations info when flip is enabled
fix(lint): lint haml

fix(spec): enable flipper and allow procedure to receive flipper check when checking banner presence

fix(doc): add missing documentation on readme regarding system testing with a visual feedback

fix(typo): add missing accent

clean(PR): feedback from Tchak, better to wrap feature check for expirability by procedure within dossier.expirable? helper
2021-11-30 16:05:32 +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
Pierre de La Morinerie
9dd7806ae5 specs: add two missing fields to the brouillon spec 2021-11-09 15:22:20 +01:00
Pierre de La Morinerie
5dbb9f9e3c specs: fix flaky "dossier brouillon" spec
The previous fix (scrolling to the viewport) didn't actually worked,
because the code tried to scroll the checkbox itself.
2021-11-09 15:21:59 +01:00
simon lehericey
d1162d7493 add e2e spec 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
Pierre de La Morinerie
b06183d7bf specs: rename Dossier's with_all_champs to with_populated_champs
This better reflects what the trait is used for, and disambiguate it
from the similarly named trait in the Procedure factory.
2021-11-03 19:38:01 +01:00
kara Diaby
71aa13f468 tests 2021-10-27 12:00:39 +02:00
Pierre de La Morinerie
9fd38cae5e specs: migrate from features to system specs
System specs have been available since Rails 5.1, and are better
integrated with the Rails framework.

- Rename `spec/features` to `spec/system`
- Rename `feature do` to `describe do`
- Configure Capybara for system specs

Steps mostly taken from https://medium.com/table-xi/a-quick-guide-to-rails-system-tests-in-rspec-b6e9e8a8b5f6
2021-10-26 12:24:46 +02:00