simon lehericey
fb76197404
SessionController: flipflop trusted device
2018-11-13 10:41:45 +01:00
simon lehericey
36621bffeb
FlipFlop: enable for gestionnaire
2018-11-13 10:41:45 +01:00
simon lehericey
457bc13c75
SessionController: do not display 'Connecté' when a login_link is required
2018-11-13 10:41:45 +01:00
simon lehericey
87967568b7
SessionController: if a admin is login in, redirect to admin page
2018-11-13 10:41:45 +01:00
simon lehericey
0d8d2de5a6
Session: add trusted_device cookie
2018-11-13 10:41:45 +01:00
simon lehericey
5690599289
Session: send a mail to confirm gestionnaire login
2018-11-13 10:41:45 +01:00
Pierre de La Morinerie
c7ac43cfe7
confirmation: add a dedicated page with confirmation instructions
...
Fix #2586
2018-11-08 16:20:05 +01:00
Paul Chavard
624b442cd7
Remove “Outil de changement d'état d'un dossier”
2018-11-08 14:56:45 +01:00
Paul Chavard
80189def98
Remove n+1 calls from API queries
2018-11-08 14:45:09 +01:00
Chaïb Martinez
8d02b4dbdf
Add Matomo Suivi page
2018-11-08 14:25:37 +01:00
Paul Chavard
a7de2e68ed
Refactor types_de_champ views to use service instead of facade
2018-11-07 11:36:10 +01:00
Mathieu Magnin
62c01706df
[ Fix #2867 ] fix default sort for administrate
2018-11-06 19:22:01 +01:00
Pierre de La Morinerie
b0541fba79
users: sign-in after confirming an account within a short time
2018-11-06 18:24:34 +01:00
Frederic Merizen
d564eb1225
[ #835 ] Report failed and successful invitations
2018-11-06 16:40:42 +01:00
Frederic Merizen
8cf235f2fd
[ #835 ] Enable html5 validation of multiple mails
2018-11-06 15:44:43 +01:00
Frederic Merizen
c7358a8f53
[ Fix #835 ] Enable asking for multiple avis at the same time
2018-11-06 15:44:43 +01:00
Frederic Merizen
31ca0552ab
[ #835 ] Extract avis creation into concern
2018-11-06 15:44:43 +01:00
gregoirenovel
19a6391dc8
[ #835 ] Use the create_avis_params method instead of the params hash
2018-11-06 15:44:43 +01:00
Paul Chavard
cfd1950e17
Migrate commencer to new_user
2018-11-01 13:10:41 +01:00
Paul Chavard
e391fe6bec
Clarify procedure path availability code
2018-10-30 15:59:37 +01:00
Paul Chavard
6e4d111e09
Refactor and fix procedure update error handling
2018-10-30 15:59:37 +01:00
Mathieu Magnin
e90c541ab4
[ Fix #2276 ] When service creation fails form is not cleared
2018-10-30 15:49:18 +01:00
gregoirenovel
6bc1a8cb71
Remove the confirmation button from the manager
2018-10-30 15:24:30 +01:00
Paul Chavard
725e88a89a
Rename :procedure_path -> :path
2018-10-30 12:01:45 +01:00
Paul Chavard
f1fd1b38ec
Refactor procedures_controller
2018-10-30 12:01:45 +01:00
Paul Chavard
641831864b
Refactor commencer actions
2018-10-30 12:01:45 +01:00
simon lehericey
2238e5bd9f
Time.now => Time.zone.now
2018-10-26 10:10:20 +00:00
simon lehericey
13ffa61435
DateTime.now => Time.zone.now
2018-10-26 10:10:20 +00:00
Paul Chavard
fba0fad22e
Show warning on dossier pages when procedure is brouillon
2018-10-25 18:05:47 +02:00
Paul Chavard
72db9084a8
Fix old carto exception when no selection is passed
2018-10-24 13:16:50 +02:00
Paul Chavard
c0344fc30e
Fix procedures with multiple dossier link champs
2018-10-24 10:44:28 +02:00
Paul Chavard
5a8a4b393f
Add RPG carte source
2018-10-23 18:13:44 +02:00
Frederic Merizen
7baa239095
[ #2604 ] Introduce errors when retrieving ProcedurePresentation
2018-10-23 16:34:38 +02:00
Frederic Merizen
dd80cc280a
[ #2604 ] Extract method in ProceduresController
2018-10-23 16:34:19 +02:00
Paul Chavard
c8c75fc254
Better handle empty user selection layers
2018-10-23 09:35:25 +02:00
Paul Chavard
99e1a20d98
Add champ carte endpoint
2018-10-23 09:35:25 +02:00
Paul Chavard
53a261f424
Don’t rely on a decorator for ProcedureSerializer#geographic_information
2018-10-22 23:28:16 +02:00
Paul Chavard
4ebc0b7f4c
Refactor link attribute generation on ProcedureSerializer
2018-10-22 23:28:16 +02:00
Paul Chavard
e5d8d351ba
Fix sentry errors in old carto module
2018-10-22 15:40:19 +02:00
Frederic Merizen
4b2a06acb5
[ #2874 ] Show archived / followed status of dossier in search result
2018-10-18 16:05:19 +02:00
Pierre de La Morinerie
65bdfacd8c
dossier: remove old SIRET code, controllers and views
2018-10-18 15:46:00 +02:00
simon lehericey
fd9bdbf31d
StatsController: avoid doing useless queries
2018-10-18 11:50:43 +02:00
Pierre de La Morinerie
93f1a53dfc
dossier: add page for etablissement
2018-10-17 10:37:06 +02:00
Pierre de La Morinerie
310f4b92d1
dossier: add action to save SIRET number
2018-10-17 10:37:06 +02:00
Pierre de La Morinerie
54ba0f8e50
dossier: add new page for SIRET identification
2018-10-17 10:37:06 +02:00
simon lehericey
aff085bb6b
StatsController: avoid division by nil
2018-10-16 18:02:00 +02:00
gregoirenovel
99894961a5
AddressController#get → #suggestions
2018-10-16 09:38:53 +02:00
gregoirenovel
43f9fc93de
AddressController#get_address_point → #geocode
2018-10-16 09:38:53 +02:00
gregoirenovel
79ebdc3443
Ban::SearchController → AddressController
2018-10-16 09:38:53 +02:00
gregoirenovel
22088b167d
Remove ApiAdresse::Geocodeur
2018-10-16 09:33:16 +02:00
gregoirenovel
7af41b35a2
ApiAdresse::AddressAdapter#list → #get_suggestions
2018-10-16 09:33:16 +02:00
gregoirenovel
517c0ad3fc
ApiAdresse::AddressRetriever → ApiAdresse::AddressAdapter
2018-10-16 09:33:16 +02:00
gregoirenovel
5e9e913dce
Carto::Geocodeur → ApiAdresse::Geocodeur
2018-10-15 20:55:46 +02:00
gregoirenovel
dac2019675
Carto::Bano → ApiAdresse
2018-10-15 20:55:46 +02:00
gregoirenovel
22beb41240
Unify #generate_qp with #generate_cadastre
2018-10-15 16:45:30 +02:00
gregoirenovel
2ed4c1da1c
Use round brackets
2018-10-15 16:45:30 +02:00
simon lehericey
3d51b7f4a3
so crazy right now
2018-10-15 14:55:07 +02:00
simon lehericey
21e3dc1498
Let the stats be great again
2018-10-15 14:55:07 +02:00
simon lehericey
17b100b4e9
ControllerStat: renaming
2018-10-15 14:55:07 +02:00
Paul Chavard
c6a28d1444
Cleanup carto save
2018-10-14 12:34:44 +02:00
Paul Chavard
dff4f2116a
Move geographical zones list to a partial
2018-10-14 12:34:43 +02:00
Paul Chavard
b5a3fc76fb
Remove legacy carto routes
2018-10-14 12:34:43 +02:00
Paul Chavard
59c1b24f3c
Change demarche modifee message
...
fix #2821
2018-10-13 11:06:31 +02:00
simon lehericey
888bbee097
[ fix #2818 ] DossierController: ensure save_draft is authorized
2018-10-12 12:14:49 +02:00
gregoirenovel
c8f872c566
InviteUser → Invite
2018-10-10 12:07:10 +02:00
gregoirenovel
46d02d3e2b
Remove a return
2018-10-10 10:38:57 +02:00
gregoirenovel
89dec3d363
Add a variable to ease code reading
2018-10-10 10:38:57 +02:00
gregoirenovel
4e2964aec3
Unify code in Users::Dossiers::InvitesController#show
2018-10-10 10:38:57 +02:00
gregoirenovel
662349c8bb
Remove InviteDossierFacades
2018-10-10 09:36:05 +02:00
Frederic Merizen
fc157c3e4c
[ #2750 ] Move sorted_ids to ProcedurePresentation
2018-10-10 09:07:57 +02:00
Frederic Merizen
2e9dafb4c3
[ #2750 ] Move filtered_ids to ProcedurePresentation
2018-10-10 09:07:57 +02:00
Frederic Merizen
0e9b40ccf6
[ #2750 ] Move fields from Procedure to ProcedurePresentation
2018-10-10 09:07:57 +02:00
Frederic Merizen
efcac5192a
[ #2750 ] Move fields_for_select to ProcedurePresentation
2018-10-10 09:07:57 +02:00
gregoirenovel
f3caa8ef7f
Remove apipie (and maruku)
2018-10-09 17:23:07 +02:00
gregoirenovel
98d348aab1
Remove the delete demarche feature for admins
2018-10-09 16:42:32 +02:00
Paul Chavard
bcbfc370b2
Add button in manager to transition démarche in brouillon state
...
fix #2565
2018-10-09 16:14:18 +02:00
Paul Chavard
cc96723475
Allow users to fill dossiers on démarches en brouillon
2018-10-09 15:05:08 +02:00
Frederic Merizen
eafd0e8348
Evite de cacher la whitelist trop longtemps
2018-10-04 18:09:39 +02:00
gregoirenovel
12f0c99b5a
Remove FC fields from instructeur table customisation
2018-10-04 13:54:07 +02:00
gregoirenovel
5f8e8caeb5
Stop auto copying the FC infos to the dossier identity
2018-10-04 13:54:07 +02:00
Paul Chavard
44511acfed
Do not reload page when instructeur change dossier state
...
fix #2425
2018-10-04 11:12:43 +02:00
Pierre de La Morinerie
627df7a1f3
session: migrate the password pages to the new design
2018-10-03 15:10:02 +02:00
Pierre de La Morinerie
bfd106ba30
session: migrate the "token confirmation" page to the new design
2018-10-03 15:09:30 +02:00
gregoirenovel
c91a1cf474
Enable Style/SymbolArray
2018-10-03 12:15:48 +02:00
gregoirenovel
d9d4f6fe20
Enable Style/SymbolProc
2018-10-03 12:15:48 +02:00
gregoirenovel
a171186dd8
Enable Style/TrailingCommaInHashLiteral
2018-10-03 12:03:21 +02:00
gregoirenovel
d1439f8a52
Enable Style/YodaCondition
2018-10-03 12:00:17 +02:00
Paul Chavard
941c529b2c
Remove CGU checkbox
...
fix #2725
2018-10-03 08:59:02 +02:00
Mathieu Magnin
a029aa62b1
[ Fix #2674 ] Add Services to manager
2018-10-02 16:17:17 +02:00
Pierre de La Morinerie
36c1aa118d
dossier: remove RecapitulatifController
...
And add a redirection to the new URLs.
2018-10-02 15:42:29 +02:00
Pierre de La Morinerie
bf9f427299
dossier: remove DescriptionController
2018-10-02 14:40:47 +02:00
Pierre de La Morinerie
3392df0029
dossier: remove CommentairesController
2018-10-02 14:40:38 +02:00
Pierre de La Morinerie
758ccff984
dossier: remove feature flag
2018-10-02 12:25:44 +02:00
gregoirenovel
cf69c28979
Fix scope for logo/notice/deliberation deletion
2018-10-02 11:03:48 +02:00
gregoirenovel
b994fa4206
Do one thing per line
2018-10-01 16:15:46 +02:00
Pierre de La Morinerie
5f1ce48d2e
invites: update link to dossier
2018-09-27 17:22:59 +02:00
Pierre de La Morinerie
08dfe7d13a
support: update link to messagerie
2018-09-27 17:22:59 +02:00
Paul Chavard
3c66fceba5
Replace password strength js with ujs
2018-09-27 16:00:14 +02:00
simon lehericey
16566b46c0
DossierController: private some methods
2018-09-27 10:24:56 +02:00
simon lehericey
912371fbd6
DossierController: use new token validation
2018-09-27 10:24:56 +02:00
simon lehericey
8dd4a1ca4e
ProcedureController: remove useless logger call
2018-09-27 10:24:56 +02:00
simon lehericey
3c95273d6f
ProcedureController: use new token validation
2018-09-27 10:24:56 +02:00
simon lehericey
0b2a98cdce
ApiController: private some methods
2018-09-27 10:24:56 +02:00
simon lehericey
f7c23bb435
ApiController: remove ensure_token_is_present
...
An admin without token answer false to admin.api_token_valid?(api_token) with api_token=*
2018-09-27 10:24:56 +02:00
simon lehericey
4a04f2e59f
ApiController: check token validity for a given admin
2018-09-27 10:24:56 +02:00
simon lehericey
d576d426f4
ApiController: remove old authenticate logic
...
The old logic cannot work anymore as we cannot `find_by api_token`
2018-09-27 10:24:56 +02:00
simon lehericey
8c4f8347ca
Api Token: store token in an encrypted form
2018-09-27 10:14:32 +02:00
simon lehericey
1997f45d7e
Api Token: do not generate one token by default
2018-09-27 10:14:32 +02:00
simon lehericey
17285b0368
Profil: display token only once
2018-09-27 10:14:32 +02:00
simon lehericey
bd04972f65
Profile: move to new design
2018-09-27 10:14:32 +02:00
Paul Chavard
f94a24d7ce
Add path field to procedure information form
2018-09-26 10:53:45 +02:00
Mathieu Magnin
2507f963b1
[ Fix #1285 ] Create an endpoint to check password strength
2018-09-26 09:03:04 +02:00
Frederic Merizen
b521095010
[ #2258 ] Notify administrator of problems saving the types de champs
2018-09-25 20:31:42 +02:00
Frederic Merizen
7d382837d9
[ Fix #2622 ] Change filters to proper JSONB
2018-09-24 19:39:01 +02:00
Frederic Merizen
1419e9b73f
[ #2622 ] Change sort to proper JSONB
2018-09-24 19:39:01 +02:00
Frederic Merizen
68608307ad
[ #2622 ] Change displayed_fields to proper JSONB
2018-09-24 19:39:01 +02:00
gregoirenovel
5b011fef59
[ Fix #2652 ] Add the /tour-de-france page
2018-09-24 18:07:29 +02:00
Pierre de La Morinerie
682e29a211
dossier: refactor the pages permissions
...
Fixes the invites not being able to create a commentaire.
2018-09-24 17:05:27 +02:00
Pierre de La Morinerie
a5419b2f08
dossier: fix redirection to dossiers/invite
2018-09-24 17:05:27 +02:00
gregoirenovel
7b3a7d2336
[ Fix #187 ] Allow an admin to delete their demarche logo
2018-09-24 13:29:35 +02:00
gregoirenovel
94378e3663
[ Fix #2332 ] Allow the notice deletion
2018-09-24 12:25:10 +02:00
gregoirenovel
535f9004bf
Admins can delete the attestation template's logo
2018-09-24 10:15:22 +02:00
gregoirenovel
d649e29bb0
[ Fix #1979 ] Admins can delete the attestation template's signature
2018-09-24 10:15:02 +02:00
gregoirenovel
0c9628c180
Fix some files according the the .editorconfig rules
2018-09-20 16:23:09 +02:00
Paul Chavard
905a715e16
Fix dossier link
2018-09-20 16:05:40 +02:00
gregoirenovel
b317b49b3d
Confirmation → activation
2018-09-20 10:43:07 +02:00
Pierre de La Morinerie
e5f4056fe2
invite: fix prefilling the invited user email
2018-09-19 12:41:09 +02:00
Pierre de La Morinerie
bc55afba51
invite: clarify logic of sign-up redirection
2018-09-19 12:41:09 +02:00
Pierre de La Morinerie
082ef92a99
invite: move invites link to the after_confirmation
callback
...
Refactored from 6a69d958da
The `after_confirmation_path_for` isn't really made to be a callbback.
For instance, it is not executed during tests.
Moving the invitations linking to a proper documented callback allows
the linking to work in a testing environment, when invoking `user.confirm`.
2018-09-19 12:08:28 +02:00
Pierre de La Morinerie
38f6d11c57
dossier: finish feature-switch for enabled new dossier details
2018-09-18 16:48:27 +02:00
Frederic Merizen
63fc0b3bc3
[ Fix #2584 ] Move Field related code to a service
2018-09-18 13:49:34 +02:00
Paul Chavard
18922122b4
Fix SQL ambiguous name error
2018-09-18 13:21:29 +02:00
Paul Chavard
e2f13a8b73
Use helpers rather then view_context
2018-09-18 12:06:27 +02:00
gregoirenovel
f696560a14
Affichage du service dans la liste des démarches
2018-09-18 10:44:49 +02:00
gregoirenovel
cac202342a
Remove a new useless helper
2018-09-13 16:27:46 +02:00
gregoirenovel
aba0c1dcd6
Add links to the most popular demarches
2018-09-13 16:27:46 +02:00
gregoirenovel
9fe9f9b616
Add a new demarches page, showing the demarches already done
2018-09-13 16:27:46 +02:00
Frederic Merizen
a94397a70c
[ Fix #2562 ] Make dossier filters case insensitive
2018-09-13 10:29:22 +02:00
Paul Chavard
55a9b31b93
Cleanup SIRET champ
2018-09-12 15:53:02 +02:00
Paul Chavard
3f6cc668a7
Implement check_availability route
2018-09-12 12:37:15 +02:00
gregoirenovel
f8a6765367
[ Fix #2540 ] Allow an instructeur to send a dossier to several instructeurs
2018-09-11 18:00:24 +02:00
Paul Chavard
5a794cbb08
Use Procedure#publish_or_reopen!
2018-09-11 10:38:31 +02:00
Paul Chavard
e6485603c4
Add ProcedurePath#valid?
2018-09-11 10:38:31 +02:00
Paul Chavard
de908ef4be
Extract ProcedurePath#find_by_path
2018-09-11 10:38:31 +02:00
gregoirenovel
50019e5317
Show user satisfaction in percentages
2018-09-11 10:17:40 +02:00
gregoirenovel
26e0ada3d4
Improve the ratings stats
...
Make sure that for each data point, we have do not
have any partial data (e.g. a week that hasn’t
finished yet)
2018-09-11 10:17:40 +02:00
gregoirenovel
05d2988f61
Format FeedbackController like the other controllers
2018-09-11 10:10:43 +02:00
gregoirenovel
d504af3216
FeedbacksController should inherit from UserController
2018-09-11 10:10:43 +02:00
Paul Chavard
f3333595a0
Drop text_summary endpoint
2018-09-07 19:41:34 +01:00
Paul Chavard
c49db4b5a4
Add a champs/dossier_link endpoint and use it to fetch dossier info
2018-09-07 19:41:33 +01:00
Paul Chavard
e2a2748e79
Expose authenticated_logged_user! method
2018-09-07 17:11:19 +01:00
Paul Chavard
7e94f7778a
Disable csrf forgery protection in test environement
2018-09-07 17:11:19 +01:00
Pierre de La Morinerie
21dc9f8109
messagerie: improve success message
2018-09-07 12:02:26 +02:00
gregoirenovel
23405efd3a
Mutualize some code in #update_dossier_and_compute_errors
2018-09-07 10:19:10 +02:00
gregoirenovel
6fe1f912c8
Refactor DossiersController#update
...
Nested ifs are heavier but easier to understand
as related conditions are visually grouped
2018-09-07 10:19:10 +02:00
gregoirenovel
230bf22b77
Redactor DossierController#update_brouillon
2018-09-07 10:19:10 +02:00
gregoirenovel
f5debfef46
DossierController#draft? → #save_draft?
2018-09-07 10:19:10 +02:00
gregoirenovel
87e59e2bfb
Streamline DossierController#update_brouillon and #update
2018-09-07 10:19:10 +02:00
gregoirenovel
1341074325
Add DossierController#update
2018-09-07 10:19:10 +02:00
gregoirenovel
cd46ee06e1
Add DossierController#modifier
2018-09-07 10:19:10 +02:00
gregoirenovel
338ffb8b50
DossierController#update → #update_brouillon
2018-09-07 10:19:10 +02:00
gregoirenovel
5ac8117c69
DossierController#modifier → #brouillon
2018-09-07 10:19:10 +02:00
gregoirenovel
00ecae5f93
Procédure → Démarche
2018-09-05 15:46:24 +02:00
Pierre de La Morinerie
af5df2d661
dossier: add "Messagerie" tab
2018-09-05 14:02:12 +02:00
Pierre de La Morinerie
5cfb200417
dossier: cache the dossier value
2018-09-05 13:56:12 +02:00
gregoirenovel
6b88968889
Formulaire → demande, when not editable
2018-09-05 11:07:11 +02:00
Pierre de La Morinerie
750e1e0c83
gestionnaire: move commentaire creation into a service
2018-09-04 18:52:43 +02:00
gregoirenovel
d05209d28f
Make the stats code more robust to empty databases
2018-09-03 17:35:14 +02:00
Paul Chavard
0c582197da
Do not send messages to brouillon dossier
2018-08-30 15:12:50 +01:00
Paul Chavard
ea5248dde1
Flatten tags list, cast to array and remove blank elements
2018-08-30 15:12:50 +01:00
Paul Chavard
b60805a54c
Use mailto in error message
2018-08-30 15:12:50 +01:00
Paul Chavard
441e123e8a
Do not lose form content on errors
2018-08-30 15:12:50 +01:00
gregoirenovel
6a33c30812
Rename the last “Gestionnaire” occurence in the UI to “Instructeur”
2018-08-30 14:42:09 +02:00
Frederic Merizen
37c45f0d29
[ #2486 ] Always order champs
...
to help activerecord cache the champs collection
2018-08-30 14:13:32 +02:00
gregoirenovel
e60aa0c37b
Use scopes when possible
2018-08-30 13:16:14 +02:00
gregoirenovel
47962ef795
Simplify route_authorization
2018-08-30 13:16:14 +02:00
gregoirenovel
bf9f3b40df
Remove useless .to_s
2018-08-30 13:16:14 +02:00
gregoirenovel
de48dab031
Alignment
2018-08-30 13:16:14 +02:00
gregoirenovel
15d1b01a90
Code simplification
2018-08-30 13:16:14 +02:00
gregoirenovel
3662b82039
accompagnateur → instructeur
2018-08-29 23:09:08 +02:00
Paul Chavard
5f12ea43a7
Add helpscout webhook
2018-08-29 21:41:14 +01:00
gregoirenovel
4b071ecf06
Use enum to the fullest with Dossier.states
2018-08-29 17:31:08 +02:00
gregoirenovel
2d3b553e4d
Use enum to the fullest with TypeDeChamp.type_champs
2018-08-29 17:31:08 +02:00
gregoirenovel
16a719922b
Use enum to the fullest with User.loged_in_with_france_connects
2018-08-29 17:31:08 +02:00
Paul Chavard
509613afe6
Use contact_link helper instead of mailto
2018-08-29 16:08:01 +01:00
Paul Chavard
f5579aa14b
Add type param to support form
2018-08-29 16:08:01 +01:00
gregoirenovel
0ac160c824
Remove the now useless stats API
2018-08-29 14:54:49 +02:00
gregoirenovel
00610991b7
[ Fixes #2480 ] Add 30-days evolution stats to the stats page
2018-08-29 14:54:49 +02:00
Paul Chavard
bad107ffae
Add contact form
2018-08-29 10:44:12 +01:00
Paul Chavard
41815cfb1c
Add logged_in? helper
2018-08-29 10:43:47 +01:00
gregoirenovel
6b1ab9b552
Remove a now useless facade
2018-08-28 15:38:39 +02:00
gregoirenovel
4c7f9af73d
Order the legend in the same order as the enum
2018-08-27 18:18:26 +02:00
gregoirenovel
577496cb06
Fix a typo
2018-08-27 17:58:53 +02:00
gregoirenovel
18624ff872
Update the stats code to use ratings instead of marks
2018-08-27 17:12:01 +02:00
gregoirenovel
3ba4ce0d37
Create feedbacks with ratings instead of marks
2018-08-27 17:12:01 +02:00
gregoirenovel
62878f9c5a
Encourage users that give us feedback to write to us
2018-08-27 14:16:20 +02:00
gregoirenovel
83e081426c
Redirect admins requests to the admin page after the form submission
2018-08-27 14:09:43 +02:00
gregoirenovel
b158a92493
Add a graph showing the user satisfaction
2018-08-27 14:00:34 +02:00
gregoirenovel
f381d45d1a
Add a chart showing the dossiers state repartition
2018-08-27 14:00:34 +02:00
lucien mollard
9292e243ef
Add a button to download the stats in CSV
2018-08-27 14:00:34 +02:00