Commit graph

1875 commits

Author SHA1 Message Date
Frederic Merizen
0dea9f9ece [#2741] Additional test to filtered_ids to be sure 2018-10-17 12:16:51 +02:00
Frederic Merizen
c652cf3ae5 [#2741] Expand unit tests for sorted_ids just to be sure 2018-10-17 12:16:51 +02:00
Frederic Merizen
37fb358bd5 [#2741] Expand unit tests for #get_value just to be sure 2018-10-17 12:16:51 +02:00
Frederic Merizen
a2bd0582b9 [Fix #2741] Filter / sort by en_construction_at 2018-10-17 12:16:51 +02:00
Pierre de La Morinerie
c178e9226b spec: add integration tests for the new SIRET flow 2018-10-17 10:37:06 +02:00
Pierre de La Morinerie
015b74ae56 spec: refactor dossier creation spec 2018-10-17 10:37:06 +02:00
Pierre de La Morinerie
879dfa0fcc spec: move dossier_creation_spec to from user to new_user 2018-10-17 10:37:06 +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
Paul Chavard
93ba94a9e6 Add carte champ and geo area models 2018-10-16 14:01:12 +03:00
gregoirenovel
baf69acbcb [Fix #2833] Move /support files to /fixtures 2018-10-16 10:47:41 +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
0018326451 Add some spacing to specs 2018-10-16 09:33:16 +02:00
gregoirenovel
22088b167d Remove ApiAdresse::Geocodeur 2018-10-16 09:33:16 +02:00
gregoirenovel
145880555e ApiAdresse::PointAdapter#point → #geocode 2018-10-16 09:33:16 +02:00
gregoirenovel
af716fa3c6 ApiAdresse::PointRetriever → ApiAdresse::PointAdapter 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
76cf9ab746 ApiGeo::Driver → ApiGeo::API 2018-10-15 23:31:23 +02:00
gregoirenovel
8b4ba42f15 Simplify ApiAdresse 2018-10-15 23:31:23 +02:00
gregoirenovel
a841a517df ApiAdresse::Driver → ApiAdresse::API 2018-10-15 23:31:23 +02:00
gregoirenovel
5db4de6c53 QuartiersPrioritaires::Adapter → QuartiersPrioritairesAdapter 2018-10-15 23:31:23 +02:00
gregoirenovel
918a91a985 ApiCarto::Cadastre::Adapter → ApiCarto::CadastreAdapter 2018-10-15 23:31:23 +02:00
gregoirenovel
dc28e79ab4 Group API Entreprise mock responses in a folder 2018-10-15 23:31:23 +02:00
gregoirenovel
7ae5e8ce52 Group API Adresse mock responses in a folder 2018-10-15 23:31:23 +02:00
gregoirenovel
bfa2d5748d Properly name a support files folder 2018-10-15 23:31:23 +02:00
gregoirenovel
2a57c093c0 Remove a duplicated cassette 2018-10-15 20:55:46 +02:00
gregoirenovel
5e9e913dce Carto::Geocodeur → ApiAdresse::Geocodeur 2018-10-15 20:55:46 +02:00
gregoirenovel
d726fbf698 CARTO::SGMAP → ApiCarto 2018-10-15 20:55:46 +02:00
gregoirenovel
bf63e7d6ab Use HTTPS for the API Adresse URL 2018-10-15 20:55:46 +02:00
gregoirenovel
dac2019675 Carto::Bano → ApiAdresse 2018-10-15 20:55:46 +02:00
gregoirenovel
4903a6b189 Carto::GeoAPI → ApiGeo 2018-10-15 20:55:46 +02:00
gregoirenovel
2c76b9386e Remove unused cassettes 2018-10-15 19:57:50 +02:00
gregoirenovel
34ac68b27f 2018-10-15 17:12:34 +02:00
gregoirenovel
b162c68844 Use Hash#slice 2018-10-15 17:12:34 +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
gregoirenovel
1f0af303f3 Remove the unused ModuleApiCarto#classes method 2018-10-15 16:16:16 +02:00
Pierre de La Morinerie
47af56cf8b spec: move /spec/lib/rake to /spec/lib/tasks
This reflects the structure of the `/lib/tasks` directory.
2018-10-15 11:51:49 +02:00
Paul Chavard
38091963c1 Update carto tests 2018-10-14 12:34:44 +02:00
Paul Chavard
b5a3fc76fb Remove legacy carto routes 2018-10-14 12:34:43 +02:00
simon lehericey
888bbee097 [fix #2818] DossierController: ensure save_draft is authorized 2018-10-12 12:14:49 +02:00
Frederic Merizen
3dca3c7dee [Fix #1961] Check that sorted_ids works for individual 2018-10-11 12:13:03 +02:00
Frederic Merizen
abd066c6f4 [#1961] filtered_ids for individual 2018-10-11 12:13:03 +02:00
Frederic Merizen
34da620b0f [#1961] get_value for individual 2018-10-11 12:13:03 +02:00
Frederic Merizen
5d862ae92b [#1961] Add individual fields 2018-10-11 12:13:03 +02:00
Frederic Merizen
577475f26e [Fix #2580] Filter by created_at / updated_at 2018-10-10 18:18:28 +02:00
gregoirenovel
c8f872c566 InviteUser → Invite 2018-10-10 12:07:10 +02:00
gregoirenovel
ed11852300 Delete the InviteGestionnaire model 2018-10-10 12:07:10 +02:00
Frederic Merizen
40a5ff0266 [#2750] do parsing of displayed_fields inside ProcedurePresentation
rather than in the view
2018-10-10 09:07:57 +02:00
Frederic Merizen
9fa7a6fd0e [#2750] Move get_value to ProcedurePresentation 2018-10-10 09:07:57 +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
simon lehericey
2288303de9 [fix #2777] DossiersSerializer: add state 2018-10-08 18:36:49 +02:00
simon lehericey
87e731bc75 Dossier: move state translation to model dossier 2018-10-08 17:55:20 +02:00
Frederic Merizen
33f29f35ab Avoid recreating service too often 2018-10-04 18:09:39 +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
5107b33af8 Remove FC fields from search 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
Frederic Merizen
b36d153620 Fix missing sort columns 2018-10-03 17:09:49 +02:00
gregoirenovel
7e4268db67 Enable Style/TrailingCommaInArguments 2018-10-03 12:03:21 +02:00
gregoirenovel
a171186dd8 Enable Style/TrailingCommaInHashLiteral 2018-10-03 12:03:21 +02:00
gregoirenovel
ed240cb4d3 Enable Style/UnneededInterpolation 2018-10-03 12:03:21 +02:00
gregoirenovel
6eeba14885 Enable Style/WordArray 2018-10-03 12:03:21 +02:00
Frederic Merizen
8bb08a1b8b [#2579] Validate columns on ProcedurePresentation model 2018-10-03 10:17:46 +02:00
Frederic Merizen
6fa0c8d2d6 [#2579] Add unit tests for get_value 2018-10-03 10:17:46 +02:00
Frederic Merizen
d2362c29ed [#2579] Add unit tests for DossierFieldService.sorted_ids 2018-10-03 10:17:46 +02:00
Frederic Merizen
b8f88ece5c [#2579] Fix injection SQL dans le filtrage instructeur 2018-10-03 10:17:46 +02:00
Paul Chavard
941c529b2c Remove CGU checkbox
fix #2725
2018-10-03 08:59:02 +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
Pierre de La Morinerie
f007eaa2ee dossier: enable new UI by default 2018-10-02 12:23:53 +02:00
gregoirenovel
cf69c28979 Fix scope for logo/notice/deliberation deletion 2018-10-02 11:03:48 +02:00
Pierre de La Morinerie
cd938b4c36 dropdown: refactor to make the button an actual button 2018-09-27 17:43:08 +02:00
Pierre de La Morinerie
c79c1a2636 carto: update link to dossier 2018-09-27 17:22:59 +02:00
Pierre de La Morinerie
0526551e71 templates: update link to dossier 2018-09-27 17:22:59 +02:00
Pierre de La Morinerie
40cf7ebdcb mailers: update links to messagerie 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
Pierre de La Morinerie
421a4107da dossier: rename dossier_spec to brouillon_spec 2018-09-27 17:22:59 +02:00
simon lehericey
6725c5e34c Procedure: add test on mean_instruction_time 2018-09-27 15:02:38 +02:00
simon lehericey
88f7e888c3 Administrateur: do not save api_token in clear text anymore 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
3c95273d6f ProcedureController: use new token validation 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
6837c79dd1 Spec: use have_http_status matcher 2018-09-27 10:24:56 +02:00
simon lehericey
2b46a56259 Spec: simplify 2018-09-27 10:24:56 +02:00
simon lehericey
d14944fba3 Spec: mutualize subject 2018-09-27 10:24:56 +02:00
simon lehericey
7b27f00a23 Spec: do not use the deprecated api_token 2018-09-27 10:24:56 +02:00
simon lehericey
9a6e985bac Spec: remove useless require 2018-09-27 10:24:56 +02:00
simon lehericey
674d231194 Spec: add spaces for readability 2018-09-27 10:24:56 +02:00
simon lehericey
1af789b9a8 Profile: add breadcrumb 2018-09-27 10:14:32 +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
499021588d [Fix #1285] Password strength is ensured when saving an administrateur 2018-09-26 09:03:03 +02:00
Frederic Merizen
998754ab73 [Fix #2258] Validate options for linked dropdown menus 2018-09-25 20:32:19 +02:00
Frederic Merizen
3fea14c07d [#2258] Let dynamic type validate the type de champ 2018-09-25 20:31:34 +02:00
Pierre de La Morinerie
aae1a22b3b dossier spec: add tests to demande view 2018-09-25 16:47:16 +02:00
Pierre de La Morinerie
613900a053 dossier spec: mutualize demande view specs 2018-09-25 16:47:16 +02:00
Frederic Merizen
7631bde16a [#2550] Generate attestation on auto-accepted dossier 2018-09-25 15:53:57 +02:00
Pierre de La Morinerie
8a3f455aa3 dossier spec: test invitation behavior with the new dossier UI 2018-09-25 11:39:31 +02:00
Pierre de La Morinerie
12ee9ba3ce dossier spec: add navigate_to_invited_dossier helper 2018-09-25 11:39:31 +02:00
Pierre de La Morinerie
1c7ad4d37b dossier spec: rename user to owner
This makes the distinction between the invited user and the owner 
clearer.
2018-09-25 11:39:31 +02:00
Pierre de La Morinerie
fe4921bf8e dossier spec: deprecate the old UI tests 2018-09-25 11:39:31 +02:00
Pierre de La Morinerie
c534a9a792 dossier spec: extract the dossier edition behaviors to a shared spec
This will allow to test behavior for invited users.
2018-09-25 11:39:31 +02:00
Pierre de La Morinerie
df2bbba201 dossier spec: create a simple_procedure factory 2018-09-25 11:39:30 +02:00
Pierre de La Morinerie
2b2dbcb112 dossier spec: move visit_dossier to a before block 2018-09-25 11:38:30 +02:00
Frederic Merizen
9beaa293cd [#1421] Use delegation rather than STI for TypeDeChamp 2018-09-25 08:26:56 +02:00
Frederic Merizen
112fdb71fb [#2613] Remove dead code 2018-09-24 20:19:26 +02:00
Frederic Merizen
26ece1d144 [Fix #2613] Filter by date creation entreprise 2018-09-24 20:19:26 +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
Pierre de La Morinerie
23820988be fixup! dossier: allow inviting users on the dossier page 2018-09-24 17:12:15 +02:00
Pierre de La Morinerie
01599ac1e1 dossier: allow inviting users on the dossier page 2018-09-24 17:05:26 +02:00
gregoirenovel
5db408efdb [Fix #1511] Remove the now obsolete DS logo 2018-09-24 12:16:58 +02:00
gregoirenovel
227006d87b [Fix #329] Properly translate the “password is too short” error 2018-09-23 22:39:01 +02:00
Frederic Merizen
ac82a72dcc [#1946] Monthly expiring dossiers summary mail 2018-09-20 17:44:31 +02:00
Frederic Merizen
43d8db88d9 [#1946] Check if a dossier’s retention period has expired 2018-09-20 17:44:31 +02:00
Frederic Merizen
b672377f5b [#1946] Query dossiers by remaining retention time 2018-09-20 17:44:31 +02:00
Frederic Merizen
5e16b5d80e [#1946] Set en_instruction_at for factorybot-created dossiers 2018-09-20 17:44:31 +02:00
Frederic Merizen
e00aa4a250 [#1946] Make assertions independent 2018-09-20 17:43:06 +02:00
gregoirenovel
0c9628c180 Fix some files according the the .editorconfig rules 2018-09-20 16:23:09 +02:00
gregoirenovel
a87e79ac1f Update a test to comply with Rubocop rules 2018-09-20 16:23:09 +02:00
Paul Chavard
f2139552c2 Reset Flipflop before each test 2018-09-20 16:13:34 +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
bfa2a4b89d invite: refactor the syntax of the submit_login_form helper 2018-09-19 12:41:09 +02:00
Pierre de La Morinerie
a63e035daf spec: fix Flipflop state not being reseted after test
This would cause the Support specs to fail randomly with an unexpected
redirection.
2018-09-19 12:41:09 +02:00
gregoirenovel
f3a257d81d Show the mean verification time in the Résumé tab 2018-09-19 12:31:59 +02:00
gregoirenovel
d55c9dff4d Show the mean instruction time in the Résumé tab 2018-09-19 12:31:59 +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
gregoirenovel
4e4b7c617f [Fix #2618] Do not enforce Luhn for La Poste SIRET numbers 2018-09-19 10:29:43 +02:00
gregoirenovel
471f6799c8 Refactor Siret tests 2018-09-19 10:15:42 +02:00
Paul Chavard
db1a93ab35 fix procédure -> démarche 2018-09-18 11:22:06 +02:00
Pierre de La Morinerie
ea3267c0d7 dossier: don't display 'brouillon' in the timeline if not required
Unless the user is actually editing a brouillon, we don't need to show
this state.
2018-09-18 10:33:11 +02:00
Pierre de La Morinerie
27727eabf3 dossier: add link to attestation when accepted 2018-09-17 16:29:48 +02:00
Pierre de La Morinerie
fd7f07a244 dossier: add link to messagerie when rejected 2018-09-17 16:29:48 +02:00
gregoirenovel
cedf1ba427 footer → dossier_footer 2018-09-13 10:46:32 +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
Pierre de La Morinerie
926dc3e107 dossier: display latest message on summary page 2018-09-12 10:09:16 +02:00
Pierre de La Morinerie
968952ff46 Reorder a test to prepare for a future one 2018-09-12 10:09:16 +02:00
gregoirenovel
c1bec7cf0b Pass the connected_user object instead of its email 2018-09-11 18:17:40 +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
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
Pierre de La Morinerie
353ab812fc messagerie: fix 'Invité' label in message sender 2018-09-07 12:02:26 +02:00
Pierre de La Morinerie
211674435e messagerie: better format message dates 2018-09-07 12:02:26 +02:00
gregoirenovel
095166e38f Add original states restoration after some tests
To avoid failing tests
2018-09-07 10:31:39 +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
Pierre de La Morinerie
19908ede25 gestionnaire: fix dossier printing page
Fix the invalid template, and add tests.
2018-09-05 16:17:26 +02:00
gregoirenovel
00ecae5f93 Procédure → Démarche 2018-09-05 15:46:24 +02:00
lucien mollard
b2f2e75f43 mailer: add layout for notifications emails 2018-09-05 15:31:08 +02:00
Pierre de La Morinerie
2a5a8cf621 mailer: fix typo in spec 2018-09-05 15:25:46 +02:00
Pierre de La Morinerie
d7dd027cb8 mailer: improve naming in specs 2018-09-05 15:25:46 +02:00
Pierre de La Morinerie
af5df2d661 dossier: add "Messagerie" tab 2018-09-05 14:02:12 +02:00
Pierre de La Morinerie
63472f00e6 messagerie: generalize the current user email 2018-09-05 13:56:12 +02:00
Pierre de La Morinerie
4e2a5f0b9b messagerie: move templates to a shared location 2018-09-05 13:56:12 +02:00
Pierre de La Morinerie
d77e0e938f dossier: fix status overview test 2018-09-05 13:55:52 +02:00
Pierre de La Morinerie
d99e606206 dossier: rename status_progress to status_overview 2018-09-05 11:52:04 +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
f66d8451b1 Fix FactoryBot warnings 2018-09-04 16:46:48 +02:00
gregoirenovel
b2dc502ed5 Use an env var for Carrierwave's cache_dir 2018-09-04 16:07:59 +02:00
gregoirenovel
75ee41b7fa [Fix #2494] Improve deletion warning text 2018-08-31 15:41:51 +02:00
Frederic Merizen
559d080ca6 [#1946] Show data retention time in footer 2018-08-30 18:03:01 +02:00
Paul Chavard
4866f9724a Add support controller send_form tests 2018-08-30 15:16:35 +01:00
Paul Chavard
8e88f2c27f Cleanup support controller tests 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
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
3662b82039 accompagnateur → instructeur 2018-08-29 23:09:08 +02:00
Frederic Merizen
580c6145d0 Migrate nutriscore dossiers from old procedure to new procedure 2018-08-29 19:40:02 +02:00
gregoirenovel
4b071ecf06 Use enum to the fullest with Dossier.states 2018-08-29 17:31:08 +02:00
gregoirenovel
ee25bba38c Use enum to the fullest with Service.type_organismes 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
gregoirenovel
606b56033a Use enum to the fullest with VirusScan.statuses 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
gregoirenovel
0ac160c824 Remove the now useless stats API 2018-08-29 14:54:49 +02:00
Paul Chavard
bad107ffae Add contact form 2018-08-29 10:44:12 +01:00
Paul Chavard
6453b53a41 Add helpscout API adapter 2018-08-29 10:43:00 +01:00
gregoirenovel
6b1ab9b552 Remove a now useless facade 2018-08-28 15:38:39 +02:00