Commit graph

3979 commits

Author SHA1 Message Date
maatinito
384dbf3e1b Add an intro to the last week overview email 2018-12-20 17:07:19 +01:00
maatinito
10cd16656d Improve the style of the last week overview email 2018-12-20 17:07:17 +01:00
maatinito
15ad7bae53 Improve the style of the avis invitation email 2018-12-20 17:07:15 +01:00
maatinito
5ca9267065 Improve the style of the dossier expiration summary email 2018-12-20 17:07:11 +01:00
maatinito
87cccae17a Change the title of the avis invitation 2018-12-20 17:07:07 +01:00
maatinito
249a64f1a6 Improve the copy of the invite guest email 2018-12-20 17:07:06 +01:00
maatinito
e4883aa152 [Fix #325] Set InviteMailer’s layout 2018-12-20 16:21:27 +01:00
maatinito
a1a11adb83 [#325] Make the notification layout inherit from the general layout 2018-12-20 16:21:27 +01:00
maatinito
d80bf601e1 [#325] Add support for a footer in layout.html.erb 2018-12-20 16:21:27 +01:00
Mathieu Magnin
b40c706d98 [Fix #3192] Clone service if procedure is transferred 2018-12-20 15:45:48 +01:00
Chaïb Martinez
0fe473b84e Add 2 new categories in admin contact form 2018-12-20 15:29:49 +01:00
Chaïb Martinez
206f17be90 Add warning text in email field 2018-12-20 15:29:49 +01:00
Mathieu Magnin
1dcc8303a6 Add html links in invitation mail templates 2018-12-20 15:01:04 +01:00
Paul Chavard
eb9edc1cee Order types de champ in scope 2018-12-20 14:14:15 +01:00
gregoirenovel
af21618652 Improve the avis invitation email footer 2018-12-20 11:57:07 +01:00
maatinito
b72fd330b5 Use the layout's footer for the avis invitation email 2018-12-20 11:20:10 +01:00
maatinito
e554cc3644 Unify the emails' intro tag 2018-12-20 11:20:10 +01:00
maatinito
2de328da64 Unify the emails' intro sentence 2018-12-20 11:20:10 +01:00
maatinito
f51cdd0e48 Add a partial for the emails' signature 2018-12-20 11:20:10 +01:00
Frederic Merizen
2a758d0759 [Fix #3196] Convert YAML to JSON 2018-12-19 23:17:55 +01:00
Frederic Merizen
36d6a43084 [#3196] Make TypeDeChamp#options compatible with raw JSON
instead of YAML inside a JSON string.
We still need to support the YAML form until the data has been migrated
2018-12-19 18:43:56 +01:00
Paul Chavard
5d1c24f3d8 Add type de champ repetition models (with row) 2018-12-19 15:31:11 +01:00
gregoirenovel
df7e0a9881 Remove dead code 2018-12-19 14:59:15 +01:00
gregoirenovel
4b0e632abb Enable the Style/ColonMethodCall cop 2018-12-19 13:56:10 +01:00
gregoirenovel
616e9305e9 Enable the Style/ClassCheck cop 2018-12-19 13:56:10 +01:00
gregoirenovel
fba8d97256 Enable the Stlye/BlockDelimiters cop 2018-12-19 13:56:10 +01:00
gregoirenovel
a8f700b572 Enable the Style/FormatString cop 2018-12-19 13:56:10 +01:00
pedong
09552ed9ff [fix #3188] replace a to link_to in footer 2018-12-19 13:18:01 +01:00
gregoirenovel
85a20f9b28 Remove double spaces 2018-12-19 12:35:22 +01:00
Chaïb Martinez
408ee31595 Add Sendinbue subscribe form
Remove Mailjet newsletter subscribe popin
2018-12-19 12:35:22 +01:00
Frederic Merizen
d1cfe4468d Encourager la création de champs PJ plutôt que de vieilles PJS 2018-12-19 11:57:23 +01:00
gregoirenovel
336ee6aba0 Remove the Tour de France banner from the administration landing page 2018-12-19 10:57:28 +01:00
gregoirenovel
e69310fe07 ModuleApiCartoService → ApiCartoService 2018-12-19 10:29:11 +01:00
gregoirenovel
129df93fb1 Add a blank line to ease readability 2018-12-18 22:49:27 +01:00
gregoirenovel
3ce3d203d4 Simplify some code 2018-12-18 22:49:27 +01:00
gregoirenovel
81ee1c2961 Use a method instead of a comparison 2018-12-18 22:18:38 +01:00
gregoirenovel
026fd1aaa2 Use parentheses 2018-12-18 22:18:38 +01:00
maatinito
008793d844 [Fix #1318] ETQ Instructeur, j'aimerais être averti que le texte de la motivation sera visible par les utilisateurs 2018-12-18 16:27:51 +01:00
Mathieu Magnin
8435ff004f Add annotations privées to procedure page on manager 2018-12-18 12:15:50 +01:00
Frederic Merizen
57a136c861 Make champ PJ generally available 2018-12-18 11:11:23 +01:00
Pierre de La Morinerie
d614ea6bd5 stats: display contact rate 2018-12-18 10:38:59 +01:00
Mathieu Magnin
5ab0853f1c Harmonize user champ pj purge route to gestionnaire 2018-12-14 11:38:59 +01:00
Mathieu Magnin
edf3eefa87 Fix Sentry 114, Instructeur can delete pj in private champs 2018-12-13 17:27:05 +01:00
gregoirenovel
ebb76c57f1 Fix a typo 2018-12-12 11:29:59 +01:00
gregoirenovel
56dcbb5b64 Update message so that it reflects the reality 2018-12-10 17:25:44 +01:00
pedong
de5de75869 [fix #2985] del champ_linked_dropdown in feature 2018-12-10 16:47:22 +01:00
simon lehericey
5a87fad02e [fix #3154] order export 2018-12-10 16:41:37 +01:00
Pierre de La Morinerie
30774aa189 api_geo: cache requests for one day
This should make the 500 errors that we get in production less frequent.

NB: Unfortunately we can't write a spec for the caching behavior, as the
VCR mocks are never cached.
2018-12-10 11:41:07 +01:00
Pierre de La Morinerie
a0ae1afb45 typhoeus: add a cache store for successful requests 2018-12-10 11:41:07 +01:00
gregoirenovel
3b0562949c Ask API Entreprise for insee v3 2018-12-10 10:49:56 +01:00
gregoirenovel
31250b4642 Make more ApiEntreprise::API methods private 2018-12-10 10:48:57 +01:00
pedong
f70f276ae9 [fix #2813] set lien_notice nil when clone a procedure 2018-12-06 21:28:08 +01:00
Chaïb Martinez
80133601c7 Add Matomo tracking code for logged usagers 2018-12-06 19:44:50 +01:00
simon lehericey
db6c86b242 DossierController: user can destroy pjs 2018-12-06 10:45:10 +01:00
Frederic Merizen
4699e515ed [Fix #2999] Send gestionnaire back to what they were doing after email verification 2018-12-06 10:03:21 +01:00
Paul Chavard
ee93b4e33d Revert legacy carte API to parsed json 2018-12-05 18:19:15 +01:00
Paul Chavard
35494df78e Procedure export dossiers with champs siret 2018-12-05 17:09:39 +01:00
Pierre de La Morinerie
e206f3d4d4 gestionnaire: display draft procedures in the list
Fix #3088
2018-12-05 15:38:20 +01:00
Paul Chavard
a08f170dbd Assign users and gestionnaires to commentaires
fix #2052
2018-12-05 13:40:57 +01:00
Paul Chavard
2f2aa580f8 Update activestorage.js 2018-12-04 11:37:00 +01:00
Paul Chavard
c492e1cd88 Update webpacker (babel7) 2018-12-04 11:37:00 +01:00
Paul Chavard
f2f8770bb5 Fix wording on services page 2018-12-04 10:55:15 +01:00
pedong
1532d287ae [fix #3026] change champ date for archivage auto 2018-12-03 13:45:40 +01:00
pedong
c14f9900d6 [fix #2969] use JS replace semicolon by comma in the list email 2018-12-03 12:59:40 +01:00
Paul Chavard
e873b6a9c4 Expose selection utilisateur size on champ carte 2018-12-03 12:49:03 +01:00
Paul Chavard
d77a5c9f15 More tests and fixes on carte champ 2018-11-30 13:28:30 +01:00
Paul Chavard
097a15d624 Test and fix all possible cases of champ carte serialization 2018-11-30 12:02:27 +01:00
Paul Chavard
35d2bc36fc cleanup selection_utilisateur geo_json 2018-11-29 17:10:14 +01:00
Paul Chavard
ca147969ab Fix number champs validation 2018-11-29 15:12:31 +01:00
Paul Chavard
8d22275742 Make type_de_champ API ids stable 2018-11-29 11:41:13 +01:00
Paul Chavard
1883c57c87 Add stable ids to types_de_champ after every update 2018-11-29 11:41:13 +01:00
Paul Chavard
c18796d02a Fix geojson exposed on legacy carto API 2018-11-29 08:43:51 +01:00
Paul Chavard
9b39934e8b Destroy dossier_operation_logs when dossier is destroyed 2018-11-28 17:06:54 +01:00
Paul Chavard
b9af07b845 Add admin support contact form 2018-11-28 16:50:37 +01:00
gregoirenovel
5053d4a7d9 Change the admin landing tagline 2018-11-28 16:41:56 +01:00
gregoirenovel
6a39e0e831 Improve the admin landing page 2018-11-28 16:41:56 +01:00
gregoirenovel
684314c117 Fix a typo 2018-11-28 16:41:56 +01:00
Mathieu Magnin
b51bf759b1 [Fix #3081] If a dossier is destroyed, then destroy the attestation 2018-11-28 16:33:12 +01:00
Mathieu Magnin
fc5f698207 Fog was recently updated, NotFound Module changed 2018-11-28 16:15:33 +01:00
Paul Chavard
575a437f97 Remove carto from admin/procedure controller 2018-11-27 16:11:25 +01:00
Paul Chavard
c6ef30f3e1 Remove unused carto from instructeur interface 2018-11-27 16:11:25 +01:00
Paul Chavard
9ff65efea8 Remove deprecated carto from dossiers controller 2018-11-27 16:11:25 +01:00
Paul Chavard
d988638c58 Simplify API carte serializer 2018-11-27 16:11:25 +01:00
Paul Chavard
36f6f54337 Remove unused carto models 2018-11-27 16:11:25 +01:00
Paul Chavard
5632929d3d Remove old caro editor 2018-11-27 16:11:25 +01:00
Paul Chavard
37a7e26fc3 Remove unused users/carte_controller 2018-11-27 16:11:25 +01:00
Pierre de La Morinerie
ea8bc0c961 mailers: improve notification layout 2018-11-27 15:51:26 +01:00
Pierre de La Morinerie
3702b0967d mailers: ensure new_answer link is an actual a element 2018-11-27 15:42:09 +01:00
Mathieu Magnin
91115ea847 [Fix sentry-26] if file does not exist, filename should be nil 2018-11-27 14:10:43 +01:00
Paul Chavard
0f0ca2ec65 Lod dossier operations 2018-11-27 12:49:40 +01:00
Paul Chavard
85e3eb04f4 Add DossierOperationLog model 2018-11-27 12:49:40 +01:00
Paul Chavard
98d388b64d Use state change methods on dossier in dossier auto archive job 2018-11-27 12:49:40 +01:00
Paul Chavard
b5b6832be8 Use state change methods on dossier in dossier auto recieve job 2018-11-27 12:49:40 +01:00
Paul Chavard
a079eaea5c Add procedure gestionnaire_for_cron_job method 2018-11-27 12:49:40 +01:00
Paul Chavard
15b1499e5d Use state change methods on dossier in dossier controller 2018-11-27 12:49:40 +01:00
Paul Chavard
9843666bdc Implement state change methods on dossier 2018-11-27 12:49:40 +01:00
Paul Chavard
febf625dd9 Make difference between error and empty geo json 2018-11-27 12:36:10 +01:00
Paul Chavard
f2e7feec1d Do not send error json to backend - it doesn’t need it and it creates bad data 2018-11-27 11:45:24 +01:00
Mathieu Magnin
718a30639f [Fix #2929] Improve readability of invitation for avis 2018-11-23 13:18:36 +01:00
pedong
0d02f5896e [Fix #1339] properly display avis confidentiality to experts 2018-11-22 18:38:31 +01:00
Frederic Merizen
ad991a2fe5 Show user on dossier page in manager 2018-11-22 15:27:01 +01:00
gregoirenovel
251bd635c2 Prepare for champ_id deletion 2018-11-22 12:27:48 +01:00
gregoirenovel
e8c24c27e5 [Fix #110] Remove any reference left to facades 2018-11-22 11:25:55 +01:00
gregoirenovel
55143b94fc [Fix #1698] Show the footer on the “Merci” page 2018-11-22 10:04:41 +01:00
gregoirenovel
dc89c7f530 [Fix #3027] Redirect to the demarches index after a demarche deletion 2018-11-22 02:06:48 +01:00
gregoirenovel
d0ec53a494 Move accessibilite to the root controller 2018-11-22 02:00:54 +01:00
gregoirenovel
82d764e340 Move tour_de_france to the root controller 2018-11-22 02:00:54 +01:00
gregoirenovel
dffd132564 Remove a useless file 2018-11-22 01:51:55 +01:00
gregoirenovel
5b24d116d9 [Fix #324] Convert the last text email to html 2018-11-22 01:38:21 +01:00
gregoirenovel
5c5175d37c [Fix #463] Use l instead of I18n.l in views 2018-11-22 01:33:10 +01:00
Chaïb Martinez
0e8d235800 Add some params to track forms submissions 2018-11-21 18:25:47 +01:00
Mathieu Magnin
3ce9dd39af [Fix #3008] Soft delete demarche button in manager 2018-11-21 14:29:42 +01:00
Mathieu Magnin
5c2fe50319 Fix width in manager procedure detail 2018-11-21 14:24:09 +01:00
Mathieu Magnin
7c1768e5bb [Fix #3016] Do not crash if PJ has no extension 2018-11-21 14:15:45 +01:00
Paul Chavard
c99ef811b6 Do not save error json in database 2018-11-21 13:03:01 +01:00
Paul Chavard
49c872fb97 Fail fast if passed champ_id is invalid 2018-11-21 13:03:01 +01:00
Pierre de La Morinerie
38b5c77ad3 mailers: use notification layout for 'new answer' email
Fix #2224
2018-11-20 14:46:31 +01:00
Pierre de La Morinerie
a5f9be00e0 mailers: add preview URL to all previewable mailers 2018-11-20 14:46:31 +01:00
Pierre de La Morinerie
e5303fd986 mailers: streamline the NotificationMailer
Notifications are now only for demarche-templated emails.
2018-11-20 14:46:31 +01:00
Paul Chavard
7ba9624a3f Fix instructeurs list filter
fix #3002
2018-11-20 14:27:32 +01:00
Paul Chavard
d43068ace5 Disable carto for new procedures 2018-11-20 12:14:10 +01:00
Paul Chavard
e374a5c726 Refactor ChampSerializer 2018-11-20 10:53:14 +01:00
Paul Chavard
0b017580c5 Expose migrated legacy carto champs on api 2018-11-20 10:53:14 +01:00
Paul Chavard
fe630847e9 Refactor legacy carto serializer 2018-11-20 10:53:14 +01:00
Paul Chavard
31099b782f Remove dead code 2018-11-20 10:53:14 +01:00
Paul Chavard
d92364b90b Add user_geo_area do champ carte 2018-11-20 10:53:14 +01:00
Paul Chavard
971a08c92a Add expose legacy carto api flag 2018-11-20 10:53:14 +01:00
Paul Chavard
18815e88a3 Rename champ.zones to champ.geo_json 2018-11-20 10:53:14 +01:00
Paul Chavard
2462e42b53 Stop using legacy api carto after migration 2018-11-20 10:53:14 +01:00
Frederic Merizen
101e8e2588 [#2999] Rediriger vers la bonne page apres login
(ne corrige pas le cas ou l'utilisateur est passe par le mail de confirmation)
2018-11-16 15:44:20 +01:00
Frederic Merizen
238c0c707b [#2180] Bump Carrierwave 2018-11-16 11:11:39 +01:00
pengfei
0593299def tronquer uniquement label et mettre close-icon avant le text 2018-11-15 15:10:41 +01:00
pengfei
89daaedbe4 [fix #2719] tronquer les textes dans le filtre, max=50 2018-11-15 15:10:41 +01:00
Paul Chavard
2eb61bd6ed Move dossier invites handler to invites controller 2018-11-14 15:16:49 +01:00
Pierre de La Morinerie
83031b5cdd procedure: compute the usual instruction time only for the last month 2018-11-13 17:23:31 +01:00
Pierre de La Morinerie
b02d50dac8 manager: improve code to hide production features 2018-11-13 16:38:56 +01:00
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
simon lehericey
2613d05a4f An admin has always a gestionnaire role 2018-11-13 10:41:45 +01:00
Pierre de La Morinerie
7a7093503a dossier: avoid the estimated duration to dangle on a new line 2018-11-12 10:22:21 +01:00
Pierre de La Morinerie
7635aede98 dossier: improve wording of estimated time
Ref #2970
2018-11-12 10:21:57 +01:00
Pierre de La Morinerie
e59bec51ef procedure: use 90th percentile to estimate the completion delay 2018-11-08 18:29:17 +01:00
Pierre de La Morinerie
5c921182ea procedure: rename mean_instruction_time to usual_instruction_time
Ref #2970
2018-11-08 17:20:06 +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
Pierre de La Morinerie
c927e6651d footer: fix extra horizontal pixels being added to the page 2018-11-08 16:20:05 +01:00
Paul Chavard
33c6ddc452 Remove dead code related to dossier state 2018-11-08 14:56:45 +01:00
Paul Chavard
eede94a59f Use dossier_legacy_state helper 2018-11-08 14:56:45 +01:00
Paul Chavard
0fe59a7c65 Add dossier_legacy_state helper 2018-11-08 14:56:45 +01:00
Paul Chavard
a524c72add Use dossier_display_state helper 2018-11-08 14:56:45 +01:00
Paul Chavard
f09a7a01c8 Add dossier_display_state helper 2018-11-08 14:56:45 +01:00
Paul Chavard
624b442cd7 Remove “Outil de changement d'état d'un dossier” 2018-11-08 14:56:45 +01:00
Paul Chavard
6706b9004f Fix includes on api queries 2018-11-08 14:45:09 +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
Chaïb Martinez
3187b5b05a Add Matomo tracking code 2018-11-07 17:34:10 +01:00
Paul Chavard
a7de2e68ed Refactor types_de_champ views to use service instead of facade 2018-11-07 11:36:10 +01:00
Paul Chavard
1c87eda6e1 Move types_de_champ helper to service 2018-11-07 11:36:10 +01:00
Paul Chavard
2d647f9fa7 Move types_de_champ facade to service 2018-11-07 11:36:10 +01:00
Paul Chavard
9acb1950a4 Remove dossier 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
simon lehericey
9d406770a8 [fix #2956] YesNo: fixing to_s 2018-11-06 16:59:47 +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
9833564863 [#835] Add a missing validation to avis 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
7a60f1b549 Enable champ carte for everyone 2018-11-06 14:26:32 +01:00
Paul Chavard
9ac85295c6 Do not serialize properties on carte champs 2018-11-06 14:26:32 +01:00
Paul Chavard
ca09aa52a3 Put IntegerNumberChamp behind a flag 2018-11-06 11:28:44 +01:00
Paul Chavard
074050a91a Add IntegerNumberChamp 2018-11-06 11:28:44 +01:00
Paul Chavard
45bfb2fd47 Add DecimalNumberChamp 2018-11-06 11:28:44 +01:00
Paul Chavard
cfd1950e17 Migrate commencer to new_user 2018-11-01 13:10:41 +01:00
Mathieu Magnin
917b271a7f [Fix #2697] When file does not exist on openstack do not crash 2018-10-31 15:22:45 +01:00
Paul Chavard
8ff45c7978 Fix commentaire file_url generator 2018-10-31 12:53:14 +01:00
simon lehericey
2f2f1e1321 Let the API return times in UTC for now 2018-10-31 11:43:48 +01:00
Paul Chavard
9b40ef2a77 Expose commentaire attachement on api
fix #2817
2018-10-30 16:22:51 +01:00
Paul Chavard
e391fe6bec Clarify procedure path availability code 2018-10-30 15:59:37 +01:00
Paul Chavard
6782643426 Fix js error on path check before publish 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
fcdc0114fd Add id to geo areas 2018-10-30 12:16:09 +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
b42095363e Refactor procedure model 2018-10-30 12:01:45 +01:00
Paul Chavard
641831864b Refactor commencer actions 2018-10-30 12:01:45 +01:00
Paul Chavard
78dc582588 Remove ProcedurePath 2018-10-30 12:01:45 +01:00
Frederic Merizen
06a667f353 [Fix #2815] Ne pas parler de plusieur PJs quand il n'y en a qu'une 2018-10-30 11:19:17 +01:00
Frederic Merizen
f6207bee26 Do not take time of day into account when searching dates 2018-10-26 17:53:26 +02:00
simon lehericey
a06f872a4b ProcedurePresentation: rescue big int as a datetime value 2018-10-26 14:39:17 +02:00
simon lehericey
63db387984 ProcedurePresentation: display dossier date in d/m/Y 2018-10-26 10:10:20 +00:00
simon lehericey
3685c65fb7 [fix #2905] fix DATE_TRUNC usage
DATE_TRUNC is played on the db where the timestamp are stored in utc.
So if a user search for 12/12/2012 in Paris timezone and that we truncate it should do something similar to :

SELECT DATE_TRUNC('day', foo.timezone) from (SELECT timestamp '2012-12-12 00:00:00' AT TIME ZONE 'Europe/Paris') as foo;
=> 2012-12-11

To avoid such pb, I suggest avoiding DATE_TRUNC when exact results are needed
2018-10-26 10:10:20 +00:00
simon lehericey
3dad743d56 remove localtime as it uses server timezone 2018-10-26 10:10:20 +00:00
simon lehericey
ee0a6b1913 Time.at => Time.zone.at 2018-10-26 10:10:20 +00:00