Commit graph

2582 commits

Author SHA1 Message Date
simon lehericey
fc7ce3fe61 Fix capybara on linux ubuntu
Otherwise, it appears fullscreen
2019-08-21 17:38:54 +02:00
Paul Chavard
cc35a04e26 Migrate procedure logo to active_storage 2019-08-21 11:15:00 +02:00
simon lehericey
eb2ebee16e fix flaky spec in ip_service_spec 2019-08-20 16:41:32 +02:00
simon lehericey
86d968bb8e Use rack_attack_enabled?
We cannot enable rack attack during the tests as it interferes with features spec.
So we add a flag to enable it during the runtime.
2019-08-20 13:29:29 +02:00
simon lehericey
0f0fecdb25 RackAttack: use remote ip and test it ! 2019-08-20 13:29:29 +02:00
simon lehericey
b7f8bb2fea Simplify ip_service 2019-08-20 13:29:29 +02:00
simon lehericey
e0e29d741f Simplify instructeur and administrateur factory 2019-08-20 12:20:12 +02:00
simon lehericey
97d0855d47 add User.create_or_promote_to_instructeur 2019-08-20 12:20:12 +02:00
simon lehericey
ebe871819d Fix admin deletion by an administration 2019-08-20 12:01:36 +02:00
simon lehericey
77c11d8b79 fix_procedure_presentation 2019-08-20 11:28:18 +02:00
Paul Chavard
e9ba7700d4 Remove commentaire file uploader 2019-08-20 10:24:13 +02:00
simon lehericey
80cb8b87fe Keep only the FC logic and use devise for the rest 2019-08-16 16:48:22 +02:00
simon lehericey
54d7effe28 Spec: specify france_connect logic 2019-08-16 16:48:22 +02:00
simon lehericey
4be9c79e03 Spec : specify remember me 2019-08-16 16:48:22 +02:00
simon lehericey
08bb393ced Spec: specify locked logic 2019-08-16 16:48:22 +02:00
simon lehericey
1b14d85c77 Rerender if wrong credentials 2019-08-16 16:48:22 +02:00
simon lehericey
9a6b3c3757 Spec: specify the redirections when logged in 2019-08-16 16:48:22 +02:00
simon lehericey
56d34173e6 Spec: remove multi devise account tests 2019-08-16 12:04:54 +02:00
simon lehericey
95cd301d0d Spec: remove superfluous code 2019-08-16 11:47:53 +02:00
simon lehericey
f87e316a5d Spec: remove outdated trusted_device logic
This is tested on the application controller
2019-08-16 11:45:40 +02:00
simon lehericey
58ecf18390 ActivateController: add tests and clean a bit 2019-08-16 11:22:36 +02:00
simon lehericey
972b6793f7 Remove useless sessions_controller 2019-08-14 18:04:26 +02:00
simon lehericey
7fbedb78fb Add feature spec about managing passwords (with the courtesy of kemenaran) 2019-08-14 17:27:10 +02:00
simon lehericey
149b0b5797 Fix Sign out 2019-08-14 16:58:50 +02:00
simon lehericey
e3e6bc7689 ! NEED JOB REBOOT Move remind activation logic to user 2019-08-14 16:34:50 +02:00
simon lehericey
dc816472e9 Stub administrateur devise methods in spec 2019-08-14 16:34:50 +02:00
simon lehericey
d0ac1c3301 Fix manager invite administrateur 2019-08-14 16:34:50 +02:00
simon lehericey
c08e356367 Remove or fix nonsense code 2019-08-14 15:08:14 +02:00
simon lehericey
c380d807ab Spec: sign_in with administrateur.user 2019-08-14 15:08:14 +02:00
simon lehericey
1b38d4071d temporary remove password complexity check 2019-08-14 15:06:16 +02:00
simon lehericey
27c81c1992 Update administrateur factory 2019-08-14 15:06:16 +02:00
Paul Chavard
e68d2cf5e2 Enable champ repetition for all 2019-08-14 12:53:51 +01:00
Paul Chavard
0969b1f85f Enable email_login_token for all gestionnaires 2019-08-14 12:53:51 +01:00
simon lehericey
a9128895a2 Something wrong with stored location which prevent instructeur to be redirected to user procedure path 2019-08-13 15:15:16 +02:00
simon lehericey
640e3668a8 Strange session ... 2019-08-13 15:15:16 +02:00
simon lehericey
8fa3c9e4f7 Fix expert invitation 2019-08-13 15:15:16 +02:00
simon lehericey
fdbfd3bb42 Add feature spec on instructeur invitation 2019-08-13 15:15:16 +02:00
simon lehericey
5fdac38cb2 Fix instructeur invitation 2019-08-13 15:15:16 +02:00
simon lehericey
ad31822a68 Spec: sign_in with instructeur.user 2019-08-13 15:15:16 +02:00
simon lehericey
65a53909e1 Update instructeur factory 2019-08-13 15:15:16 +02:00
simon lehericey
47b7dc368b Remove or fix now nonsense code 2019-08-13 15:15:16 +02:00
simon lehericey
0d71a820a8 Stub instructeur devise methods in spec 2019-08-13 15:15:16 +02:00
simon lehericey
e3fd1cc33a Remove weird switch_devise_profile_service 2019-08-13 15:15:16 +02:00
Pierre de La Morinerie
79784089a4 dossiers: refresh the whole header actions bar on status change
This ensure the other state-dependant buttons get updated to–like the
"Follow" or "Archive" button.

Fix #4186
2019-08-13 15:07:22 +02:00
simon lehericey
5bda753735 Remove all devise route and controller for instructeur and administrateur 2019-08-13 14:13:48 +02:00
simon lehericey
a4b9eecded Remove unused devise session controller 2019-08-13 14:13:48 +02:00
simon lehericey
3fde2a6f70 Rename gestionnaire in code to instructeur 2019-08-12 13:47:01 +02:00
simon lehericey
6902f84b85 Brutally rename gestionnaire filename to instructeur 2019-08-12 13:47:01 +02:00
simon lehericey
bb8d65c6b4 Subtly rename admin/instructeurs to admin/assigns 2019-08-12 13:47:01 +02:00
simon lehericey
f7528f70ac add admin creation spec 2019-08-12 13:43:03 +02:00
clemkeirua
6c56fc73d7 used new constant for genders 2019-08-01 20:46:58 +02:00
clemkeirua
d7105cb6f8 added spec for dossier#update_with_france_connect 2019-08-01 17:42:32 +02:00
clemkeirua
6c52c71eee add redirection spec for dossier_controller#new 2019-08-01 17:42:32 +02:00
maatinito
44efa5a1b1 #3928 administrator tests handle password constants 2019-08-01 17:12:14 +02:00
maatinito
8d3e3baabc #3928 administrator new & edit pwd pages 2019-08-01 17:12:14 +02:00
Paul Chavard
02904f55b1 Fix champ policy 2019-08-01 16:41:53 +02:00
Paul Chavard
b8d3e4c41b Fix attestation url for dossiers with no attestation 2019-08-01 15:53:50 +02:00
Pierre de La Morinerie
6459e9cf37 tasks: fix the commentaires migration task to work with hidden dossiers
By default `commentaire.dossier` doesn't return the dossier if it is
hidden.
2019-08-01 15:43:09 +02:00
Paul Chavard
c75e39884e Save selection utilisateur as geo area 2019-08-01 11:38:09 +02:00
clemkeirua
f5d3818e3c remove unnecessary retransition methods 2019-08-01 10:40:08 +02:00
Keirua
2f82dd9a3d improve typography and texts
Co-Authored-By: Nicolas Bouilleaud <nico@bou.io>
2019-08-01 10:29:51 +02:00
clemkeirua
38b48f4217 transition from accepte to instruction as superadmin 2019-08-01 10:29:51 +02:00
Paul Chavard
b266915892 Add repetitions to api 2019-08-01 10:04:35 +02:00
Paul Chavard
fba195c0b5 Add attestation url to dossier on api 2019-07-31 18:30:40 +02:00
Paul Chavard
6cfad01d12 Stop using Flipflop as switch for weekly_overview 2019-07-31 15:15:09 +02:00
Paul Chavard
25db21467d Stop using Flipflop as switch for Fog 2019-07-31 15:15:09 +02:00
Paul Chavard
6f3fde21f2
Merge pull request #4139 from Keirua/fix/confirm-on-delete-champ
#4137 - Ajout d'un confirm à la suppression d'un champ
2019-07-31 12:31:44 +02:00
Paul Chavard
fc75580a3c Start using pundit 2019-07-30 18:09:28 +02:00
Paul Chavard
8c72470a6c Add default etablissement champ name 2019-07-30 17:17:36 +02:00
Paul Chavard
5a9468aa95 Fix repetition data export 2019-07-30 17:17:36 +02:00
Pierre de La Morinerie
02a5234bde lib: remove FileSizeValidator
It was only used by the PieceJustificative model.
2019-07-30 16:11:17 +02:00
Pierre de La Morinerie
65e7489b4f uploaders: remove PieceJustificativeUploader 2019-07-30 16:11:17 +02:00
Pierre de La Morinerie
95e24392f9 models: remove old pieces justificatives 2019-07-30 16:11:17 +02:00
Pierre de La Morinerie
0da0a2b446 model: remove support for cloning procedures with old pj 2019-07-30 16:11:17 +02:00
Pierre de La Morinerie
ffe081c1f2 specs: remove old pieces_justificative from specs and factories 2019-07-30 16:11:17 +02:00
Pierre de La Morinerie
f69f325236 api: remove export of old pieces justificatives 2019-07-30 16:11:17 +02:00
Pierre de La Morinerie
e975fe4ade tasks: remove task to migrate old pieces justificatives 2019-07-30 16:11:17 +02:00
Pierre de La Morinerie
0018f36b44 gestionnaire: remove UI for filtering pieces justificatives 2019-07-30 16:11:16 +02:00
Pierre de La Morinerie
f825f62ce5 dossier: remove UI for viewing old pieces justificatives 2019-07-30 16:11:16 +02:00
Pierre de La Morinerie
5502f2e42e dossier: remove UI for uploading old pieces justificatives 2019-07-30 16:11:16 +02:00
Pierre de La Morinerie
0c4cb3b498 admin: remove UI for managing old pj 2019-07-30 16:11:16 +02:00
Nicolas Bouilleaud
b066ccbc89 Make sure Procedure.path is not null in our data 2019-07-29 13:53:33 +02:00
clemkeirua
314b0f5dc0 fix tests 2019-07-25 17:15:19 +02:00
clemkeirua
6f47655301 rendu lien_site_web obligatoire au moment de la publication 2019-07-25 15:46:04 +02:00
clemkeirua
6b19432d47 deplacement de l'URL qui envoie vers la procédure 2019-07-25 15:46:04 +02:00
Pierre de La Morinerie
2174172e34 admin: display CTA buttons in emails preview 2019-07-25 12:25:50 +02:00
Pierre de La Morinerie
1c837eb901 mailers: improve wording of transactional emails and default templates 2019-07-25 12:25:50 +02:00
Pierre de La Morinerie
8313752663 mailers: add CTA to templated emails 2019-07-25 12:25:50 +02:00
clemkeirua
12f1a29b68 update tests 2019-07-25 11:13:30 +02:00
clemkeirua
0818331319 changement du endpoint dans les tests 2019-07-23 16:21:15 +02:00
Pierre de La Morinerie
858b093314 mailers: use the standard view mechanism to render notifications
Instead of rendering a view as a template, consider the view as a normal
view.
2019-07-23 14:53:50 +02:00
Pierre de La Morinerie
f32357f527 specs: avoid weird hacks to test NotificationMailer private method
- testing private methods is a code smell
- this setup is especially brittle
- we test the equivalent public method right below
2019-07-22 16:22:20 +02:00
clemkeirua
6d43465ee5 renammed into monavis_embed 2019-07-17 18:04:32 +02:00
clemkeirua
c8f9e3b5f8 automated test 2019-07-17 18:04:32 +02:00
clemkeirua
d8b63cd4c9 added 'monavis' inside the procedure and for users 2019-07-17 18:04:32 +02:00
Pierre de La Morinerie
71dfb38787 emails: improve typography of titles 2019-07-17 15:01:19 +02:00
Pierre de La Morinerie
44574b2b93 mailer_preview: improve data used for generating previews 2019-07-17 14:55:55 +02:00
Pierre de La Morinerie
5bafda6619 factories: fix unmatching MIME type in fixtures 2019-07-17 14:43:41 +02:00
clemkeirua
7eeddc0b79 using a shared example + scoped to state TERMINE 2019-07-17 11:53:16 +02:00
clemkeirua
b8fa567c81 ajout du tag 'lien document justificatif' 2019-07-17 11:53:16 +02:00
Pierre de La Morinerie
92dd91a31b messagerie: add a reply button next to the latest message 2019-07-17 11:43:21 +02:00
Pierre de La Morinerie
80efe27ff2 pj migration: retry when changing the content type fails 2019-07-16 17:51:29 +02:00
Pierre de La Morinerie
a8354bd103 dossiers: unify deletion of dossiers between manager and user
The code paths for deleting a dossier were different, depending on
whether the dossier was deleted by the user, or from the Manager.

This commit unifies the two code paths into one.

This has the effect of:

- An operation log is now recorded when an user deletes its own dossier;
- Gestionnaires are now notified even when the dossier is deleted from
  the Manager;
- The `support:delete_user_account` task now requires the email address
  of the author.
2019-07-16 16:22:20 +02:00
clemkeirua
25f81f1d3c download a dossier as zip with all attachments 2019-07-16 09:11:25 +02:00
Pierre de La Morinerie
36eca3d059 dossier: rename the "Submit" action 2019-07-15 17:18:28 +02:00
Pierre de La Morinerie
35c3795f56 dossier: make messagerie available on archived procedures
An Admin may archive a procedure to make it unavailable to
the general public, but before all dossiers are handled. In this case,
the messagerie needs to be available.

Fix #4089
2019-07-11 15:37:04 +02:00
Pierre de La Morinerie
10065df8ce champs: put champ label in numeric fields validation messages
Replaces

> La valeur du champ doit être un nombre entier (sans chiffres après
> la virgule)

by

> La valeur du champ « Nombre de parents » doit être un nombre entier
> (sans chiffres après la virgule)
2019-07-11 15:12:48 +02:00
simon lehericey
768a298c2d Same for go back in instruction 2019-07-11 12:50:15 +02:00
simon lehericey
5f39d3eac8 Fix bug when instruction repasse en construction twice 2019-07-11 12:50:15 +02:00
simon lehericey
6de1e2ec58 Fix bug when an instructeur closes a dossier already closed 2019-07-11 12:50:15 +02:00
Pierre de La Morinerie
c2c9b19b3b procedure: remove individual_with_siret
It isn't used anymore (see #3077)
2019-07-11 11:58:21 +02:00
Pierre de La Morinerie
7ca3d5fce2 procedure: select for_individual by default 2019-07-10 18:47:34 +02:00
simon lehericey
7b63ddfabb Better champs factories 2019-07-10 16:41:34 +02:00
Paul Chavard
be3283a9a8 Add commentaire pj migration task 2019-07-10 15:35:29 +02:00
Paul Chavard
3cb39c2840 Refactor message attachements to use active_storage 2019-07-10 15:35:29 +02:00
Pierre de La Morinerie
03fc555edf profile: send an email when the account is already taken 2019-07-10 11:31:09 +02:00
Pierre de La Morinerie
2b2493b0e6 profile: improve spec 2019-07-10 11:31:09 +02:00
Pierre de La Morinerie
58a8d017f2 spec: cleanup dossier spec 2019-07-10 11:31:09 +02:00
Pierre de La Morinerie
56bc06cfbf dossier: fix flaky spec for nearing_end_of_retention
If the spec takes longer than 1s to run, the test would fail.
2019-07-10 11:00:49 +02:00
Pierre de La Morinerie
6b27ac8514 france_connect: make existing user lookup case-insensitive
Fix #4053
2019-07-09 15:50:28 +02:00
Pierre de La Morinerie
d05bab3df3 france_connect: refactor specs 2019-07-09 15:50:28 +02:00
Pierre de La Morinerie
b5ed74c09d dossiers: always allow to create a new dossier
Turns out this is confusing for users (some UI elements are present for
some procedures, but not for others).

Better enable it for everyone.
2019-07-09 14:44:30 +02:00
simon lehericey
d36f6ebcd7 [fix #1709] A user can change its email 2019-07-09 11:55:17 +02:00
simon lehericey
0f9fdf3f75 Activate device email change confirmation 2019-07-09 11:55:17 +02:00
simon lehericey
d68d2be798 Profil: accessible to all roles 2019-07-09 11:55:17 +02:00
Paul Chavard
ad0a74ea7c Fix dates in dossiers export 2019-07-09 10:02:08 +02:00
Pierre de La Morinerie
422f4b9cdb dossiers_controller: warn properly when instructing a dossier twice
Fix #4055
2019-07-08 17:58:45 +02:00
Nicolas Bouilleaud
fac20ed190 Fix Commentaire factory so that the default case creates a valid object 2019-07-08 16:13:43 +02:00
Nicolas Bouilleaud
930fd345de Validate messagerie_available? when creating a new Commentaire
Commentaires bu Users and Gestionnaire need the messagerie to be available; Automatic system Commentaires can be created anytime.

This reintroduces Commentaire validation that was introduced in #3979 and disabled in #4018
2019-07-08 16:13:43 +02:00
Nicolas Bouilleaud
3f439ac07a Add Commentaire.is_sent_by_system? and .is_sent_by(someone)
And use it in CommentaireHelper and in the _message_icon and _message_issuer partials
2019-07-08 16:06:44 +02:00
Nicolas Bouilleaud
2abd93d360 Display the full User email in Commentaires
* Only redact gestionnaires’ emails
* Also, rename Commentaire.sender to Commentaire.redacted_email
2019-07-08 16:06:44 +02:00
Chaïb Martinez
39a2eb77e8 test fix
Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-07-08 14:58:32 +02:00
Paul Chavard
e582ff729c Add aasm to dossiers state 2019-07-03 13:37:27 +02:00
Mathieu Magnin
10d3ba10f2 Before save copy body in rich_body 2019-07-03 13:15:49 +02:00
Mathieu Magnin
d13b7f953f Migrate mail body to ActionText 2019-07-03 13:15:49 +02:00
simon lehericey
b2c987ff0d [fix #3683] Dossier: add repasser_en_instruction! 2019-07-02 18:40:20 +02:00
Paul Chavard
fb0ef15e3c Export dossiers v2 2019-07-02 14:20:29 +02:00
Paul Chavard
46c1bbbc6f Official support for declarative demarches 2019-07-02 14:12:26 +02:00
simon lehericey
92bd382c64 [fix #4008] secured login for all gestionnaires 2019-07-01 15:06:39 +02:00
Chaïb Martinez
36114c07a9 Add some test to admin roi calculation
[fix #3986]

Signed-off-by: Chaïb Martinez <chaibax@gmail.com>
2019-07-01 11:13:36 +02:00
Nicolas Bouilleaud
bd47bf2691 Disable Messagerie in archived Dossiers and procedures
* Use the existing Dossier#messagerie_available? method
* Raise when attempting to build a Commentaire if not messagerie_available?
* Disable the Messagerie form if not messagerie_available?
* Add tests :)
* Tweak the Horaires formatting while we’re here.
2019-07-01 09:39:39 +02:00
Paul Chavard
0d80c48b7e Add avis to api 2019-06-27 14:40:17 +02:00
Paul Chavard
c5704fa22f Remove unused code from Commentaire 2019-06-25 17:04:29 +02:00
Pierre de La Morinerie
50cf6059e6 tasks: ensure creating an empty champ doesn’t display a notification 2019-06-24 15:49:02 +02:00
Paul Chavard
1781a49932 Add order param to API 2019-06-20 15:28:16 +02:00
Pierre de La Morinerie
9ce92d5c3b champs: show attachment actions only when the atachment is persisted
Fix #3961
2019-06-20 11:03:08 +02:00
Pierre de La Morinerie
d561936863 task: ensure that hidden dossiers are rolled back 2019-06-20 10:48:56 +02:00
Pierre de La Morinerie
f8dda3ae45 tasks: don't abort rollback when a dossier fails
Instead print a warning, and continue rolling back the other dossiers.
2019-06-20 10:31:23 +02:00
Christian Lautier
2393fa86be Mailer preview correction: procedure has now multiple administrators 2019-06-20 10:17:55 +02:00
Nicolas Bouilleaud
c606644902 Tweak codestyle in specs, following review 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
ad3553f0be Add BillSignature Service 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
f355f849a6 Add BillSignature Model 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
dace9a53d3 Add Universign timestamp API query 2019-06-17 16:16:28 +02:00
Nicolas Bouilleaud
e16cb731c5 Add poor man’s ASN1 parsing 2019-06-17 16:16:28 +02:00
Pierre de La Morinerie
51aacabf13 models: fix touch not propagating when using nested attributes
Sometimes, when using nested attributes, touch doesn’t propagate to
parent relationships. (see https://github.com/rails/rails/issues/26726)

Specifically, this happens in our app when updating a dossier with
only new attachements (but without changing the value of any fields).

To work around this, we need to define the parent relationship
explicitely. This is good practice anyway.

Fix #3906
2019-06-17 13:44:07 +02:00
Pierre de La Morinerie
f12668fbfb tasks: prevent the PJ migrations task updating from touching dossiers 2019-06-12 19:07:45 +02:00
pedong
7ef1a558f4 change date format for all, use try_format_date of helper 2019-06-12 17:48:12 +02:00
simon lehericey
ee296f2b44 Use default format for date and datetime champ 2019-06-12 17:48:12 +02:00
pedong
abcd58c35d [fix #3710] date with letter
Co-Authored-By: simon lehericey <mail@simon.lehericey.net>
2019-06-12 17:48:12 +02:00
Nicolas Bouilleaud
6b90bc1ea1 Add “previously followed” dossiers and gestionnaires
Using an “inactive” Follow scope, similar to the “active” scope.

(I was tempted to use a default_scope, but this breaks when trying to `unscope` it in associations.)
2019-06-12 17:33:53 +02:00
Pierre de La Morinerie
55c9dfc001 api_entreprise: display better error message when SIRET is private
Previously we blamed the network.

Now we say that the entreprise infos cannot be retrieved. Which is not
ideal, but better.
2019-06-12 11:58:04 +02:00
Pierre de La Morinerie
0b49e61ec0 tasks: repair updated_at of dossiers wrongly touched by PJ migration
When running the PJ migration task, migrated dossiers have their
updated_at attribute modified.

This means a yellow notification badge pops up on the Instructeurs
pages.

This PR repairs the affected dossiers, by restoring an approximative
updated_at from the latest workflow value (or the timestamp of the
migrated champ).
2019-06-06 11:11:29 +02:00
Paul Chavard
6d312e1716 spec: refactor wait_for_ajax to work with out new ajax utils
`wait_for_ajax` is not used anymore, but it may be in the future.
2019-06-04 16:30:36 +02:00
Paul Chavard
f621bd63e5 spec: fix flaky test by using new wait_until helper
Fix #3911
2019-06-04 16:30:36 +02:00
Paul Chavard
cc80939a42 spec: remove tests for old pj (probably) dead code 2019-06-04 16:30:36 +02:00
Pierre de La Morinerie
c2fcc6057e spec: add a wait_until helper 2019-06-04 16:30:36 +02:00
Paul Chavard
e870ba186f spec: add a pause helper 2019-06-04 16:16:53 +02:00
Pierre de La Morinerie
b829d105d9 brouillon_spec: fix the slow use of have_select(locator, selected: …)
Capybara's `have_select` can be very slow for elemtns with many options
(see https://github.com/teamcapybara/capybara/issues/1527)

This is because Capybara asserts that no other elements than the
required ones are selected.

This faster version is not as complete, but helps when checking the
countries list or the years in a date picker.
2019-06-04 11:03:09 +02:00
Pierre de La Morinerie
5419c130f4 brouillon_spec: make the login sequence faster
Log the user with `login_as` (rather than the browser).
2019-06-04 11:03:09 +02:00
Pierre de La Morinerie
2bd749a325 specs: clear the React champ before adding a new value
This prevents the value from being
`Nouveau champ TexteLibellé de champ carte`.
2019-06-03 12:47:03 +02:00
Pierre de La Morinerie
c05dc38b95 specs: remove 'disable-gpu' from chromedriver options
This option as only ever needed on Windows [1] (which we don't use),
and it shouldn't be required anymore, as the underlying bug has been
fixed [2].

- [1] https://developers.google.com/web/updates/2017/04/headless-chrome
- [2] https://bugs.chromium.org/p/chromium/issues/detail?id=737678
2019-06-03 12:46:12 +02:00
Paul Chavard
ff44b7a600 Refactor purge pj to be more generic 2019-05-29 15:54:51 +02:00
Pierre de La Morinerie
6cb02f2927 pj migration: handle signal interrupts 2019-05-29 14:46:49 +02:00
Pierre de La Morinerie
60121a1be6 task_helper: ensure that incrementing above 100% doesn’t raise an error 2019-05-29 12:06:32 +02:00
Pierre de La Morinerie
10df7b70ee carrierwave: when migrating, create an empty blob if file is missing 2019-05-28 18:19:33 +02:00
Pierre de La Morinerie
44c410d40d piece_justificative_service: fix for missing order_place
In production some pieces justificatives don't have an order place.

In this case, insert the champs after the ones that have an order place.
2019-05-28 17:20:07 +02:00
Pierre de La Morinerie
52b7a82932 services: mark attachments migrated from CarrierWave as safe
This avoids to enqueue thousands of scans when migrating the PJs of
a whole procedure.
2019-05-28 11:39:22 +02:00
Pierre de La Morinerie
4cf54e0d28 tasks: add progress report to the pjs migration task
Progress is indicated per migrated champ.
2019-05-28 10:42:18 +02:00
Pierre de La Morinerie
21ac60ad04 tasks: add a task to migrate pjs of procedures in batches 2019-05-28 10:42:18 +02:00
clemkeirua
f06ae1631f no crash when q is missing on RechercheController::index 2019-05-22 15:02:57 +02:00
Paul Chavard
cc4eba2b36 Less mokey patching 2019-05-21 14:21:42 +02:00
Paul Chavard
f6421e081a Refactor attachment view 2019-05-21 14:21:13 +02:00
Paul Chavard
42235e81b1 Use active storage load hook to extend blob 2019-05-16 20:43:01 +02:00
Paul Chavard
9725f2a418 Enable new champs editor for all 2019-05-14 16:18:29 +02:00
Paul Chavard
3446782cd0 Remove deprecated editor 2019-05-14 16:18:29 +02:00
Paul Chavard
dba8d65137 Track dossier operations with author and subject 2019-05-14 14:31:03 +02:00
Pierre de La Morinerie
f5f7dfba40 france_connect: fix for params entirely missing from the callback
Fix a Sentry exception encountered in production.
2019-05-13 15:45:12 +02:00
pedong
b1f11c0b0a add explanation to spec login 2019-05-13 15:28:25 +02:00
pedong
a226999382 redirect to same path after use signup 2019-05-13 15:28:25 +02:00
Pierre de La Morinerie
e66e78b4db helpscout: remove integration of custom fields
Our new HelpScout plan doesn't allow custom fields
anymore.
2019-05-13 12:33:29 +02:00
clemkeirua
d0794f42d1 fix tag_substitution_concern links for lien attestation 2019-05-07 08:54:29 +02:00
clemkeirua
c98655be52 ellipsis on file input overflow 2019-05-07 08:54:29 +02:00
clemkeirua
0e26bda186 cleanup the tag substitution concern & uniformization 2019-05-07 08:54:29 +02:00
clemkeirua
e4259466b4 nettoyage du tag_substitution_concern 2019-05-07 08:54:29 +02:00
clemkeirua
f8a2598647 ajout du lien vers le justificatif dans la balise --lien attestation-- 2019-05-07 08:54:29 +02:00
clemkeirua
747dc505cc ajout d'un test 2019-05-07 08:54:29 +02:00
clemkeirua
4aab72be68 implementation du systeme de PJ de motivation 2019-05-07 08:54:29 +02:00
Nicolas Bouilleaud
df865e71dc Make sure that there always is at least one administrator per Procedure 2019-05-06 16:19:08 +02:00
Paul Chavard
96b3547788 Exercices and RNA information are optional and should not block the request 2019-05-03 18:23:21 +02:00
Paul Chavard
91f2d7d706 Remove deprecated virus_scan model 2019-05-03 11:07:19 +02:00
Paul Chavard
6e8b9cf668 Refactor piece_jointe template to avoid repetition 2019-05-02 15:58:09 +02:00
Paul Chavard
f113d108c9 Save virus scan status to blob metadata 2019-05-02 15:58:09 +02:00
Paul Chavard
2f633b5d23 Load leaflet from a separate chunk 2019-05-02 14:10:48 +02:00
Pierre de La Morinerie
e06e32238c api_entreprise: display a specific error message on network errors 2019-05-02 11:24:38 +02:00
Pierre de La Morinerie
ad4a89f0f6 api_entreprise: raise on network error 2019-05-02 11:24:22 +02:00
Pierre de La Morinerie
7c1c61248e spec: cleanup siret_controller_spec.rb 2019-05-02 11:24:22 +02:00
Pierre de La Morinerie
fd95ea2871 spec: cleanup exercices_adapter_spec 2019-05-02 11:24:22 +02:00
Pierre de La Morinerie
d855468cb6 dossiers: display the estimate of the entire processing time
Displaying separate estimations for en_construction and en_instruction
doesn't really make sense for the users: they want to know how
long it is going to take overall, not the petty details of our workflow.
2019-04-30 15:56:27 +02:00
Nicolas Bouilleaud
1c2e93ed41 Fix “nearing_end_of_retention” test
The `nearing_end_of_retention` test creates a `just_expired_dossier` “six months ago”, which is 29 Oct 2018. The autumn DST change was on October 28; this is the first time this test runs under these conditions. We workaround the time offset by creating the dossier one hour earlier.

This is technically a workaround, not a fix: the date arithmetics in `nearing_end_of_retention` are probably wrong. It looks like it’s comparing intervals, which seems error-prone, while it should be comparing dates. For now, I’m just making the tests pass.
2019-04-29 15:41:52 +02:00
Paul Chavard
8d093bd9ba Fix missing dossier_id on champs inside repetition 2019-04-18 16:55:35 +02:00
simon lehericey
e65e21a72f Email notification: use the right method for procedures 2019-04-18 15:07:01 +02:00
Paul Chavard
9beff5ee9a Always create menu deroulant champs with a value 2019-04-11 14:38:21 +02:00
Mathieu Magnin
1a97cd42de Fix missing helper in notification mailer 2019-04-11 12:25:55 +02:00
Mathieu Magnin
22034730b0 Fix factory to avoid crash because of procedure is nil 2019-04-11 12:25:55 +02:00
Mathieu Magnin
c550d40e3a [Fix #3064] Add preview test 2019-04-11 11:03:13 +02:00
Mathieu Magnin
28f9208ce8 When mail template is updated, stay on edit page to easily preview it 2019-04-11 11:03:13 +02:00
Mathieu Magnin
14c3fb7224 [Fix #3064] Add a preview button for state notifications emails 2019-04-11 11:03:13 +02:00
Mathieu Magnin
e91b412254 [Fix #3064] Use a different layout for state notifications emails 2019-04-11 11:03:12 +02:00
Nicolas Bouilleaud
c5122ee7f5 Allow filtering ProcedurePresentation by followers_gestionnaires
fixes #3464
2019-04-10 14:32:51 +02:00
Pierre de La Morinerie
e34c556f29 procedure: fix specs
When the time computations are done accross a Daylight Saving Time
change, they may be off by one hour.

It doesn't matter, as the estimated delay is counted in days, not
hours.
2019-04-08 15:24:44 +02:00
Pierre de La Morinerie
8ca683c515 mailers: fix last_week_overview crash when the overview is missing
This is because procedures may be unpublished between the time where
the job is enqueued and the time the mailer is run

Fix #3745
2019-04-04 17:32:12 +02:00
Paul Chavard
4fb889f10a Send browser support information and format user id 2019-04-04 14:21:32 +02:00
Pierre de La Morinerie
41ad89d8ac commencer: fix redirection with invalid path 2019-04-04 14:03:40 +02:00
Pierre de La Morinerie
158d6e1ae6 avis: format newlines in avis
Fix #3738
2019-04-04 10:20:57 +02:00
Paul Chavard
8157fd0127 Fix type de champ menu déroulant 2019-04-03 21:53:57 +02:00
Paul Chavard
b9be186d2c Sentry should send environment information 2019-04-03 18:19:16 +02:00
Pierre de La Morinerie
22f2ca105e commencer: display a FranceConnect button
Fix #3640
2019-04-03 16:08:09 +02:00
Pierre de La Morinerie
28dcbcb85b auth: move the FranceConnect button to a partial 2019-04-03 16:08:09 +02:00
simon lehericey
65370b20a9 Use IPService to remove secure connexion from trusted networks 2019-04-03 15:21:19 +02:00
simon lehericey
52e6632175 Add IPService 2019-04-03 15:21:19 +02:00
Paul Chavard
e2fc9e10b0 Update tests for new editor 2019-04-03 14:38:57 +02:00
Paul Chavard
639facaf2a Add new types_de_champ#move api 2019-04-03 14:38:07 +02:00
Pierre de La Morinerie
031c40aa55 stats: display 12 weeks of feedbacks 2019-04-02 17:22:38 +02:00
Mathieu Magnin
8525761332 Revert english dates 2019-04-02 14:38:47 +02:00
simon lehericey
f945b9ec63 Champ Siret: Fix siret-champ save
When a user enter a siret, it calls siret_controller in ajax. The champ value is stil nil, so champ.present? is false because champ.blank is redefined to focus on value. Thus the champ is not updated.
2019-04-02 14:17:21 +02:00
Mathieu Magnin
71e0969bc0 [Fix #3692] Ensure SIRET is correct on server 2019-03-28 18:03:53 +01:00
Mathieu Magnin
27c8e9dcb8 Use the same clone_attachment method for all attributes on procedure.clone 2019-03-28 17:17:29 +01:00
clemkeirua
0d71120f98 [fix #306] Possibilité de joindre un document à un avis 2019-03-28 15:45:14 +01:00
Pierre de La Morinerie
abeb58caa5 dossiers: displays an "Start an other dossier" item in action dropdown 2019-03-28 15:26:15 +01:00
Pierre de La Morinerie
d03e340345 dossiers: add an actions menu 2019-03-28 15:26:15 +01:00
Pierre de La Morinerie
06e7355d5b commencer: fix invalid URL on test procedures
Fix #3693
2019-03-28 14:15:46 +01:00
Pierre de La Morinerie
d267d782b8 help: add administration contact on /commencer pages 2019-03-28 11:36:24 +01:00
Frederic Merizen
9aebb76e77 [#2180] Avoid sending spurious notifications to instructeurs 2019-03-27 17:36:13 +01:00
Frederic Merizen
7d316b8369 [#2180] High-level PJ to champ PJ migration service 2019-03-27 17:36:13 +01:00
Frederic Merizen
e24242e4b2 [#2180] Low-level Carrierwave to ActiveStorage migration 2019-03-27 17:36:13 +01:00
Frederic Merizen
21dbe44e07 [#2180] Fix ordering of piece jointe champs 2019-03-27 17:36:13 +01:00
pedong
fb29d30826 [fix #3342] show date with format letter 2019-03-27 15:27:20 +01:00
Mathieu Magnin
4e27872a25 [Fix #3650] when cloning a procedure, do not forget pj_templates 2019-03-26 15:31:09 +01:00
Pierre de La Morinerie
30d11e0dac app: rename new_gestionnaire to gestionnaires 2019-03-26 10:48:59 +01:00
pedong
0d7c30c9dd [fix #3476] add notify email for the dossier change state to instruction 2019-03-25 16:04:33 +01:00
simon lehericey
39b710fdde Annotation: can use repetable 2019-03-25 11:08:53 +01:00
Pierre de La Morinerie
ded5b70444 app: rename new_user to users 2019-03-25 10:56:39 +01:00
Pierre de La Morinerie
b1a7018d30 procedure: ignore bad data when computing usual_instruction_time
Fix #3655
2019-03-20 17:48:54 +01:00
Mathieu Magnin
6570bed09c [Fix #3641] Do not change PJ value in API if PJ is safe 2019-03-20 11:37:31 +01:00
Pierre de La Morinerie
69580288a4 help: add a custom help dropdown in gestionnaire context 2019-03-20 11:06:54 +01:00
Pierre de La Morinerie
549b17f75e help: add a custom help dropdown in dossier context 2019-03-20 11:06:54 +01:00
Paul Chavard
69a51e3296 Save SIRET data on search 2019-03-19 16:22:42 +01:00
Pierre de La Morinerie
ed1f6ec38d procedure: fix verification delay
The verification delay was ignoring all dossiers not closed yet.
2019-03-19 15:51:51 +01:00
Mathieu Magnin
2c1e1db37d [Fix #3617] 404 when filter[value] contains a "." 2019-03-19 14:25:57 +01:00
simon lehericey
6607de4827 Notification: add service to send notifications 2019-03-18 16:37:51 +01:00
simon lehericey
ed6828c66c Notification: UI 2019-03-18 16:37:51 +01:00
Mathieu Magnin
6b9dbb22af Remove unused stats 2019-03-13 11:00:14 +01:00
Mathieu Magnin
ff0356e698 Fix Sentry 165 : api crash when siret is unknown 2019-03-12 17:53:11 +01:00
Paul Chavard
549eca44cb Enable flipflop on api requests 2019-03-12 14:02:55 +01:00
Paul Chavard
48701e80bd Enable flipflop for instructeurs 2019-03-12 12:14:34 +01:00
Paul Chavard
bb8ba75d22 Explicitly pass current_administrateur on publish 2019-03-12 11:59:01 +01:00
Paul Chavard
0e4b6e1ba2 Remove “Nombre d'administrations ayant dématérialisé N démarches” graph 2019-03-12 11:59:01 +01:00
Paul Chavard
c37f649453 Update specs to use multiple administrateurs 2019-03-12 11:59:01 +01:00
Paul Chavard
23d8f0d803 Remove old tasks depending on single administrateur 2019-03-12 11:57:51 +01:00
Mathieu Magnin
b690b89b34 Clean old support task 2019-03-12 11:26:07 +01:00
Mathieu Magnin
f96d1b1823 Create default path for brouillons procedures 2019-03-12 11:26:07 +01:00
Mathieu Magnin
44f28ec565 Remove feature flag for publish draft 2019-03-12 11:26:07 +01:00
Frederic Merizen
af37005b33 Fix test intermittent introduit par #3479 2019-03-11 20:27:24 +01:00
Frederic Merizen
8d8376947d [Fix #3477] Individually remove values from multi-value filter 2019-03-11 17:14:17 +01:00
Frederic Merizen
efa71284fc [#3477] Test eager_load_displayed_fields 2019-03-11 17:14:17 +01:00
Frederic Merizen
70bf6aecf6 [#3477] Filter by mutliple values 2019-03-11 17:14:17 +01:00
Frederic Merizen
5d01e37d70 [#3477] Make filters stand out a little more in spec 2019-03-11 17:14:17 +01:00
Frederic Merizen
b428406fc7 [Fix #3578] No tags for champs that cannot have user input anyway 2019-03-11 10:26:27 +01:00
Frederic Merizen
1d0156f9c6 [#3572] Add tests 2019-03-08 18:32:35 +01:00
Frederic Merizen
6b0832047b Service that computes administrator statistics and sends them to SendinBlue 2019-03-08 16:33:28 +01:00
Frederic Merizen
a8ce11a4d2 Add rel=noopener to links with target=_blank
http://support.detectify.com/customer/portal/articles/2792257-external-links-using-target-_blank-
2019-03-05 18:25:26 +01:00
Frederic Merizen
d053a9bb8d Fix test for the 2 months following February
The problem was caused by the variable lenght of 2.months.ago, used
in the test.
During the period from March 1st to April 29th, because February
is so short, the message would change from 'delai de 2 mois'
to 'delai de environ 2 mois', causing the test to fail.
2019-03-01 18:25:15 +01:00
Paul Chavard
f7af01e0dc Create new procedures with administrateurs 2019-02-26 16:38:58 +01:00
Pierre de La Morinerie
066672803b pj_link: fix an exception when the scan is not associated yet 2019-02-21 16:00:33 +01:00
clemkeirua
71bff0812c ajout d'un test pour caractériser le cas service = null 2019-02-21 12:34:53 +01:00
clemkeirua
236f73f838 ajout d'une balise pour le nom du service 2019-02-21 12:18:44 +01:00
Paul Chavard
84383fc3c1 Assigne admins to procedure.administrateurs 2019-02-20 17:10:57 +01:00
Paul Chavard
a7ba01a02a Fix champ spec
fix #3257
2019-02-20 16:26:12 +01:00
Mathieu Magnin
f7650135f4 [Fix #3375] on the API display safe files only 2019-02-19 18:10:35 +01:00
Pierre de La Morinerie
ffda67c1d8 spec: add specs for attachments 2019-02-19 18:02:27 +01:00
Pierre de La Morinerie
a3c0f3ccd6 spec: wait for the page to be rendered before checking values 2019-02-19 18:02:27 +01:00
Pierre de La Morinerie
d51cc8bfa2 spec: fix ActiveRecord queue not being set 2019-02-19 18:02:27 +01:00
Mathieu Magnin
11078b7f71 Add rake task to activate publish draft 2019-02-19 17:50:11 +01:00
Paul Chavard
aad685bb79 Show preview with correct type de champ options
fix #3439
2019-02-19 16:37:42 +01:00
clemkeirua
4ff9adde27 ajout d'un test auto pour l'affichage de la date de dépot coté instructeur 2019-02-19 12:00:36 +01:00
Mathieu Magnin
cf610bbd91
Merge branch 'dev' into enforce-rubocop-timezone 2019-02-18 17:41:41 +01:00
simon lehericey
0b8619be77 Gestionnaire: login_token! -> create_trusted_device_token 2019-02-18 17:21:46 +01:00
simon lehericey
c16e30442a save path before redirect to link_sent_path 2019-02-18 17:20:49 +01:00
simon lehericey
7de3a18fd1 valid period depend on trusted_device_token.created_at 2019-02-18 17:20:49 +01:00
simon lehericey
d664f130fd trustedDeviceToken: move token youth 2019-02-18 17:20:49 +01:00
simon lehericey
23db8a160c move token validity to trusted_device_token 2019-02-18 17:20:49 +01:00
simon lehericey
bee9a108c5 split login and trusted_device logic 2019-02-18 17:20:00 +01:00
simon lehericey
9d92e43d8d [fix #3315] Migrate service organisme 2019-02-18 16:50:44 +01:00
Mathieu Magnin
dd27167c5d Enforce Timezone rule in Rubocop 2019-02-18 16:19:42 +01:00
simon lehericey
a7e068003a [fix #3427] Administration can soft delete a dossier 2019-02-14 18:09:08 +01:00
Pierre de La Morinerie
7413df81e0 Revert "file upload: proxy direct upload through the APP_HOST"
This reverts commit 2365efbdaa.
2019-02-14 16:23:11 +01:00
Mathieu Magnin
2365efbdaa file upload: proxy direct upload through the APP_HOST
Ref #3409
2019-02-14 14:28:03 +01:00
Frederic Merizen
eb7cd28504 Fix undefined method for nil:NilClass 2019-02-13 19:22:38 +01:00
Frederic Merizen
41ab7246cf [#3424] Improve formatting of addresses with missing components 2019-02-13 09:57:33 +01:00
Paul Chavard
b7058947e1 Fix buttons on screen bottom 2019-02-12 16:22:12 +01:00
Paul Chavard
5da5f75c5f [Types de Champ Editeur] Save on change and only edited model 2019-02-07 17:05:55 +01:00
Pierre de La Morinerie
4bfc258cbd dossiers: refactor dossiers specs
- Use login_as instead of signing up in the browser
- Better name factory objects
- Group specs by use-case
2019-02-07 11:08:02 +01:00
Pierre de La Morinerie
a6704c4cd6 dossiers: allow users to delete "en construction" dossiers 2019-02-07 11:07:07 +01:00
Paul Chavard
6b39128be3 Clone nested types_de_champ 2019-02-06 10:05:27 +01:00
Mathieu Magnin
f6714cd9a3 If ClamavService fails then raise an error 2019-02-05 17:58:41 +01:00
simon lehericey
5715cdaa4c [fix #3363] use organisation_name in dossier summary 2019-02-05 17:41:51 +01:00
Frederic Merizen
a255e61556 [#3356] Improve formatting for menus that only have a primary value 2019-02-05 17:35:30 +01:00
Frederic Merizen
a3d7c8de55 [Fix #3356] Add tags for primary menu only / secondary menu only 2019-02-05 17:35:30 +01:00
Paul Chavard
a9a853b669 Fix and simplify linked-drop-down-list js 2019-02-05 16:48:26 +01:00
Paul Chavard
1d75a32cac Add a default text type de champ to editor 2019-02-05 16:48:26 +01:00
Paul Chavard
071448e1d9 Champ Repetition dossier editor 2019-02-04 16:19:07 +01:00
Paul Chavard
a4a421a91a Champ Repetition dossier display 2019-02-04 15:46:39 +01:00
Paul Chavard
9b7b59f67e Champs editor should handle repetition type 2019-02-04 11:58:26 +01:00
Paul Chavard
7678d8eb0b Revert for_api value on yes_no champs 2019-01-29 15:23:09 +01:00
Pierre de La Morinerie
803364490d carto: present API InternalServerError to the user, instead of failing 2019-01-28 18:22:55 +01:00
Pierre de La Morinerie
f1f7f0ef9f specs: cleanup "Delete draft from dossiers list" spec 2019-01-28 18:17:38 +01:00
Pierre de La Morinerie
934368616c form: remove the "Delete draft" button
Draft can now be deleted from the dossiers list. This is the best place
to delete it (as it allow to clean the list) – and it is better than
asking the user if they want to delete a draft *precisely while they
are filling the form*.
2019-01-28 18:17:38 +01:00
Pierre de La Morinerie
bb1cc1eef8 tasks: delete dossiers without procedures
Fix #3279
2019-01-23 17:19:36 +01:00
Pierre de La Morinerie
fb75461c78 procedure: delete dossiers on destroy 2019-01-23 17:19:36 +01:00
Pierre de La Morinerie
3f0f22d849 procedure: clarify controller spec 2019-01-23 17:14:14 +01:00
Pierre de La Morinerie
23276cb9f9 commencer: add temporal context about the dossier
Ref #2225
2019-01-23 16:14:25 +01:00
Pierre de La Morinerie
437f73b4ce search: exclude more special characters 2019-01-22 17:16:49 +01:00
Pierre de La Morinerie
151e5744e6 contact: rewrite specs to use finer-grained mocks
Before the specs mocked entire controller methods–which caused them
not to be tested.

Now we use finer mocks (or no mocks at all), to actually run more code.
2019-01-22 16:12:13 +01:00
pedong
6103176a78 [fix #1238] add previsualization attestation for gestionnaire 2019-01-22 14:54:24 +01:00
Pierre de La Morinerie
bb753ce23e commencer: redirect to the procedure page after sign-in and sign-up 2019-01-21 14:45:38 +01:00
Pierre de La Morinerie
016e5f2e6f commencer: add an independant page 2019-01-21 14:45:38 +01:00
simon lehericey
45db2d8e5a [#3268] Rake task to correct bad follows and logs 2019-01-21 14:17:17 +01:00
Frederic Merizen
d01270eff2 [#2180] Do not double-expose migrated type PJ as type champ PJ 2019-01-17 17:47:08 +01:00
Frederic Merizen
63519f04c8 [#2180] Expose migrated types PJ as legacy type PJ in dossier API 2019-01-17 17:47:08 +01:00
Frederic Merizen
bf23abdfe3 [#2180] Expose migrated PJs as legacy PJs in dossier API 2019-01-17 17:47:08 +01:00
Frederic Merizen
5f74ae1545 [#2180] Do not double-expose migrated type PJs as champs in procedure API 2019-01-17 17:47:08 +01:00
Frederic Merizen
082255b489 [#2180] Expose migrated types PJ as legacy types PJ in procedure API 2019-01-17 17:46:56 +01:00
Frederic Merizen
5e37400834 [#2180] Only retain old PJ API when cloning for same admin 2019-01-17 17:40:40 +01:00
Frederic Merizen
530079e464 [#2180] Make sure that old_pj is kept through successive clones 2019-01-17 17:40:40 +01:00
Frederic Merizen
8cb509d192 [#2180] Keep information that this type de champ was cloned from a PJ 2019-01-17 17:40:40 +01:00
Frederic Merizen
651fd6149b [#2180] When cloning a procedure, convert types de PJ to types de champ PJ 2019-01-17 17:40:40 +01:00
Mathieu Magnin
b1efe57403 [Fix #2423] Allow Usager to delete brouillon from dossiers#index 2019-01-17 17:30:37 +01:00
Paul Chavard
9136c9dfa0 Enable support_form for all 2019-01-17 15:17:48 +01:00
Mathieu Magnin
0e6b5678ad Fix tests 2019-01-17 14:04:59 +01:00
Paul Chavard
f0cda2ca13 Test new champs editor 2019-01-17 11:20:31 +01:00