1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-01 12:24:28 +01:00
Commit Graph

582 Commits

Author SHA1 Message Date
Du Peng
522b559ced (feat) add payment status to order 2022-09-13 18:43:37 +02:00
Du Peng
b76c7889ac (bug) fix add to cart button can't apply a quantity min 2022-09-13 16:36:44 +02:00
Du Peng
7673c1f814 (feat) sort order lists by created at date 2022-09-13 16:11:27 +02:00
Sylvain
feabded2a0 (feat) update the stock total 2022-09-13 15:01:55 +02:00
Du Peng
42f7320e63 (feat) show payment info in order 2022-09-13 14:05:31 +02:00
Du Peng
0ee45f8404 (bug) fix comput the wallet amount that dont apply coupon 2022-09-13 12:36:18 +02:00
Peng
d491384326 (bug) fix comput the wallet amount that dont apply coupon 2022-09-13 10:27:46 +00:00
Du Peng
dbe4570c30 (feat) client can show orders in dashbaord 2022-09-12 19:44:13 +02:00
Sylvain
36704be01d (bug) do not verify group change when no initial group 2022-09-12 12:19:31 +02:00
Du Peng
dff0cb26be (bug) product pagination in store 2022-09-09 17:14:22 +02:00
Du Peng
9bfeaf3ef3 Merge branch 'product-store-invoice' into product-store 2022-09-09 16:37:33 +02:00
Du Peng
185589407f (feat) order invoice 2022-09-09 16:35:49 +02:00
vincent
a1c6757cc3 (quality) Increase products per page count 2022-09-09 14:00:53 +02:00
vincent
dd26a1d9af (merge) 'origin/product-store' 2022-09-09 13:54:42 +02:00
vincent
6678412cd6 (feat) pagination 2022-09-09 13:48:20 +02:00
Du Peng
50276f5b41 (feat) VAT for store's product and Accounting code/label 2022-09-09 09:31:00 +02:00
Du Peng
8d414a3172 (feat) admin can set offer for product in cart 2022-09-08 15:10:56 +02:00
Du Peng
6d2239bc15 (fix) cant pay order with coupon 2022-09-07 17:24:14 +02:00
Du Peng
79182fb8c1 Merge branch 'product_store-store' into product-store 2022-09-07 15:00:27 +02:00
Du Peng
fd97d23208 (feat) set order reference after create order 2022-09-06 19:16:29 +02:00
Du Peng
59d2b8c990 (feat) order reference 2022-09-06 19:12:06 +02:00
Du Peng
e86b143c5e (quality) refactroing find or create service 2022-09-06 18:17:11 +02:00
Sylvain
80825a2113 (bug) unable to build stats
NoMethodError: undefined method `project_id' for #<Hash>
app/services/statistics/concerns/projects_concern.rb:50:in `project_info_stat'
2022-09-05 16:53:56 +02:00
Sylvain
b7af29c1a8 (bug) unable to build stats
NoMethodError: undefined method `date' for #<Hash>
app/services/statistics/builders/projects_builder_service.rb:12:in `block in build'
2022-09-05 16:29:01 +02:00
Sylvain
9a9aaf6889 (bug) unable to build stats
NoMethodError: undefined method `project_info' for Statistics::FetcherService:Class
app/services/statistics/fetcher_service.rb:179:in `block in projects_list'
2022-09-05 15:15:35 +02:00
Sylvain
b9c02742a1 (bug) unable to generate statistics 2022-08-29 17:34:09 +02:00
Du Peng
631d5889c0 refactoring create cart service 2022-08-28 23:23:58 +02:00
Du Peng
c80198603e set customer of cart dont save before payment 2022-08-27 18:01:25 +02:00
Du Peng
981cffa27d pay cart with coupon code 2022-08-26 20:10:21 +02:00
Du Peng
3a669109b5 order extends to payment document 2022-08-26 15:56:20 +02:00
Du Peng
453954e2b9 save payment gateway object after pay an order 2022-08-26 15:30:51 +02:00
Du Peng
e3dfe4935a set default value of order_item_id in update_stock 2022-08-26 14:08:20 +02:00
Du Peng
8d52768031 set operator_profile_id after payment 2022-08-26 14:07:18 +02:00
Du Peng
5030f5e1bc fix bug: user cant pay order by wallet 2022-08-26 13:37:23 +02:00
Du Peng
49aa54193d rename operator id to operator_profile_id in order 2022-08-26 11:55:35 +02:00
Du Peng
7c59d44785 add payment method in order after payment 2022-08-26 11:24:42 +02:00
Du Peng
939927fb73 add wallet transaction id to order 2022-08-26 11:19:09 +02:00
Du Peng
8059512f19 add order item id to product stock movement for sold 2022-08-26 11:06:09 +02:00
Du Peng
97ee15cf78 rename order amount to total 2022-08-26 10:46:30 +02:00
Du Peng
8a8ce607b7 check product is valid and in stock before payment 2022-08-25 11:46:14 +02:00
Du Peng
193c21a583 payment of cart by stripe/payzen/local 2022-08-25 08:52:17 +02:00
Du Peng
cfd21adb60 cart button 2022-08-20 18:47:15 +02:00
Du Peng
ab800a519f store cart 2022-08-19 20:03:09 +02:00
Du Peng
16288ae2bd fablab store page 2022-08-16 19:47:27 +02:00
Du Peng
1b605b3265 fix bug: product amount cannot update 2022-08-04 14:02:19 +02:00
Du Peng
d690db8b6f reset product_category_id to nil if product_category is removed 2022-08-03 10:18:00 +02:00
Du Peng
1e3e7854b2 Product model/controller 2022-08-03 10:16:36 +02:00
Du Peng
432b60ca9a store product category create/list/update/delete 2022-08-03 10:16:08 +02:00
Nicolas Florentin
1d6a59dd67 improvement: add complexity check of the user password 2022-07-29 17:37:42 +02:00
Sylvain
3f84c2dfa1 (bug) ics description not using new methdod 2022-07-27 13:58:52 +02:00
Sylvain
be5b6af3f1
Merge pull request #375 from Guichaguri/feat/add-admin-member-usernames
Add username column to the member list
2022-07-27 09:32:45 +02:00
Sylvain
bb7eec924c Usage of the rails logger instead of printing to standard output 2022-07-26 17:27:33 +02:00
Sylvain
07757e6adb (bug) Erroneous "cancelation failed" message if elasticsearch was disabled 2022-07-26 15:08:59 +02:00
Guilherme Chaguri
026a09194a Improve filter and sorting to include the users prefix 2022-07-21 13:21:06 -03:00
Sylvain
e0944746a9 (bug) unable to cancel a machine reservation + unable to update member profile 2022-07-20 11:52:38 +02:00
Sylvain
c4d959570f code linting 2022-07-19 17:32:55 +02:00
Sylvain
b243800f5a (bug) As admin, unable to create a new member (#374) 2022-07-19 16:29:28 +02:00
Sylvain
e9a7b609bb (bug) Unable to change the group of a user 2022-07-19 16:08:24 +02:00
Sylvain
c710af04b7 (bug) slot title must only contains name of the requested resource 2022-07-19 15:56:21 +02:00
Sylvain
06ee1acea5 (bug) fix slot reservation is considered full 2022-07-19 15:40:28 +02:00
Sylvain
d26e2ae313 (bug) fix various issues due to slots behavior refactoring 2022-07-19 11:32:12 +02:00
Sylvain
e955ecc6f8 (bug) create slots when occurences is nil 2022-07-18 17:27:40 +02:00
Sylvain
6a8c441e85 public calendar endpoint refactoring & testing 2022-07-18 17:19:33 +02:00
Sylvain
b68e47a0ea refactor shopping_cart/reservation
Previsouly, the reservation was expecting parameters like:
slots_attributes: [{start_at: date, end_at: date, availability_id: number}]

Now, the reservation is expecting simpler parameters like:
slots_reservations_attributes:[{slot_id: number}]
2022-07-18 17:18:01 +02:00
Sylvain
37b24a8d2f refactor slots model 2022-07-18 17:18:01 +02:00
Sylvain
5012912edd (wip) refactoring Availabilities::AvailabilitiesService and Availabilities::StatusService 2022-07-18 17:18:01 +02:00
Sylvain
783e86d9cc (bug) fix slots creation 2022-07-18 17:18:00 +02:00
Sylvain
b2fd2e1b48 build all slots at reservation creation time 2022-07-18 17:18:00 +02:00
Guilherme Chaguri
d63b8d0dfa Add username column to the member list 2022-07-14 16:11:44 -03:00
Sylvain
4fe7226959 (bug) unable to import a new account from an SSO provider 2022-07-06 15:37:47 +02:00
Sylvain
bcbd3bfb58 (bug) invalid users are reported in search 2022-06-29 15:35:17 +02:00
Sylvain
d03a34b894 (bug) unable to update the user profile after toggling the organization switch twice 2022-06-22 17:14:19 +02:00
Sylvain
61080a5188 (feat) feature the first event 2022-06-14 17:50:04 +02:00
Du Peng
ef5d603065 Fix a bug: admins are shown in select member for reservation by admin 2022-06-03 12:05:55 +02:00
Du Peng
4d3fe6aa2a Fix a bug: if multi VAT no value is filled in, the general rate can't apply 2022-06-01 12:41:19 +02:00
Sylvain
838dbc85af (bug) admins can collaborate on projects 2022-05-30 13:59:01 +02:00
Sylvain
31b4089bd2 (bug) OIDC scopes 2022-05-30 12:56:22 +02:00
Du Peng
cecf8126e0 Fix bug: Unable to create plans for all group 2022-05-17 17:38:00 +02:00
Du Peng
3e34b3c7a7 add user validation required setting, user proof of identity upload and organization custom field 2022-05-11 16:57:44 +02:00
Sylvain
302c55755e (ui) admin edit user: use new user-profile-form component 2022-05-10 10:23:43 +02:00
Sylvain
18a80a225c (bug) define uid field in openid connect configuration 2022-05-04 12:36:31 +02:00
Sylvain
b3848596bf (bug) unable to create openid connect provider from the interface 2022-05-04 12:36:31 +02:00
Du Peng
b1e8b64ecc Auto sync projects to OpenLab if set openlab_app_id and openlab_app_secret 2022-04-20 17:43:38 +02:00
Du Peng
9b0c5948cf Updated generate invoice reference method 2022-04-11 19:01:08 +02:00
Du Peng
60e9ccd7ce Fix a bug: unable to show deleted user in reservation slot 2022-04-05 16:44:55 +02:00
Du Peng
a6c230145b Optimise sql query, avoid to N+1 2022-04-01 16:31:46 +02:00
Sylvain
1b21453adc (bug) fix generate statistics 2022-03-23 17:27:04 +01:00
Sylvain
6e97336005 (bug) fix building stats
ActiveRecord::EagerLoadPolymorphicError: Cannot eagerly load the polymorphic association :object
2022-03-23 16:56:27 +01:00
Sylvain
3f935adeb2 (bug) unable to generate subscription statistics
Can't join 'InvoiceItem' to association named 'subscription'
2022-03-23 16:13:42 +01:00
Sylvain
ee97b93a49 (style) replace Setting.find_by(name... by Setting.get 2022-03-23 13:30:55 +01:00
Sylvain
2fcda8a0ce (feature) Prepaid-packs purchases are exported to the accounting CSV file 2022-03-23 13:14:34 +01:00
Sylvain
51a2bed16c (bug) prepaid-packs purchases are reported as subscriptions in the statistics 2022-03-23 12:35:02 +01:00
Sylvain
c8753d108a (bug) fix errors due to sidekiq upgrade
- NoMethodError: undefined method 'delay' for UsersMailer:Class
- Removed open_api_calls_count_tracings fixtures due to the removal of the related table
2022-03-22 17:58:52 +01:00
Sylvain
a46e3ae783 (bug) prepaid-packs without expiration date do not work 2022-01-18 17:12:19 +01:00
Sylvain
634da414f8 (feat) When a payment schedule is in error or canceled, ability to re-enable it with another payment method 2022-01-17 12:38:53 +01:00
Sylvain
d8568f47ad (bug) if a specialized VAT rate was defined when the VAT was disabled, the resulting VAT rate is wrong 2022-01-12 14:57:56 +01:00
Sylvain
a91610f530 Optimized multiple DB queries 2022-01-11 16:04:14 +01:00
Nicolas Florentin
217f2f3a3c bug fix: xlsx export are not corrupted anymore 2022-01-06 13:43:51 +01:00
Sylvain
f3f15a2b9d Ability to cancel a payement schedule from the interface 2022-01-03 17:13:35 +01:00
Sylvain
00b9bce587 export collected VAT by rate 2021-12-29 17:00:54 +01:00
Sylvain
16242d2127 frontend invoice configuration page uses multiVAT 2021-12-29 12:08:50 +01:00
Sylvain
9286738b69 add comments in complex VAT history function 2021-12-29 10:57:59 +01:00
Sylvain
44853930ed WIP: improve VatHistoryService 2021-12-28 19:42:04 +01:00
Du Peng
d52b8bde06 fix bug: accounting period export 2021-12-28 13:45:29 +01:00
Du Peng
0868cee6d9 fix bug: multi VAT setting no exsit 2021-12-28 13:45:29 +01:00
Du Peng
c5211e98e3 generate invoice with multi vat 2021-12-28 13:45:28 +01:00
Du Peng
5e8c90458b vat history service receive invoice item param 2021-12-28 13:45:28 +01:00
Vincent
934ac309a1 Merge branch 'dev' into 'spaces_multiprices'
# Conflicts:
#   CHANGELOG.md
2021-12-22 14:29:56 +00:00
Sylvain
61f432914c optimize payment schedules list loading 2021-12-21 17:27:51 +01:00
Sylvain
d6b30875a4 compute the price based on custom durations 2021-12-20 17:08:14 +01:00
Sylvain
1a672b0644 stave start date in subscription schedule 2021-10-18 15:19:58 +02:00
Sylvain
4c56dffc04 remove deprecated code and endpoints 2021-10-18 10:15:48 +02:00
Sylvain
fd39eaf2f1 fix renew subscription API
TODO:
- remove old endpoints
- bug in UI (start date invalid)
- fix tests
- payzen
2021-10-15 17:31:01 +02:00
Sylvain
315e899540 [WIP] fix tests 2021-10-14 18:20:10 +02:00
Sylvain
336a4b789c proceed with payment on subscription renewal 2021-10-13 17:39:39 +02:00
Sylvain
17a0baac7e refactored free subscription extending 2021-10-12 14:07:35 +02:00
Sylvain
2b088ff035 Merge branch 'extend_subscription' into dev 2021-10-07 18:04:38 +02:00
Sylvain
3663f8ab86 full stripe subscription code refacto
TODO: test
2021-10-06 17:09:35 +02:00
Sylvain
8b811a1b3e improved syntax 2021-10-06 08:56:16 +02:00
Du Peng
a9f431a6a2 fix bug: offer and extends subscription 2021-10-06 08:56:16 +02:00
Du Peng
235fd2e58a Merge branch 'buy_pack_for_plan_option' into dev 2021-09-21 18:01:54 +02:00
Du Peng
1c54e54c17 use plant.base_name instands of plan.name 2021-09-21 18:00:48 +02:00
Du Peng
f2dd1bbcd2 add an option Subscription valid for purchase and use of a prepaid pack 2021-09-20 19:43:05 +02:00
Du Peng
2973dec6a7 rewrite payment schedule workflow by stripe 2021-09-08 18:57:10 +02:00
Du Peng
d3bc26794c fix bug: cant generate avoir for wallet 2021-08-06 11:12:22 +02:00
Du Peng
524b2c97bb fix bug: statistic service cant run 2021-08-02 17:10:20 +02:00
Sylvain
95d8f1d204 [bug] do not include fully used packs in user's packs 2021-07-02 14:27:30 +02:00
Sylvain
520d3e0a74 remove warning duplicate constant declaration 2021-07-01 10:05:04 +02:00
Sylvain
6c326c7209 compute price according to prepaid hours
Also: handle prepaid hours decreasing when used
2021-06-30 10:53:05 +02:00
Sylvain
baf41588d3 packs summary component 2021-06-29 11:14:36 +02:00
Sylvain
f56b8eae75 admin can configure renew threshold 2021-06-29 09:07:11 +02:00
Sylvain
1aad4891c1 buy prepaid-pack a hours from modal 2021-06-28 18:17:11 +02:00
Sylvain
f16cbc44ff WIP: buy pack modal 2021-06-25 17:24:34 +02:00
Sylvain
1a65b97653 Merge branch 'dev' into prepaid 2021-06-24 17:15:17 +02:00
Sylvain
07017e4a49 [bug] stripe subscription generation fails if the user already has a subscription 2021-06-24 16:52:47 +02:00
Sylvain
8cc4811794 edit machines pricings 2021-06-22 17:56:13 +02:00
Sylvain
d7ba83f6a0 WIP: migrate machine pricing edition interface to react 2021-06-22 11:13:44 +02:00
Sylvain
d54f30e048 WIP: interface to configure packs 2021-06-21 17:39:48 +02:00
Sylvain
569be57a1f [bug] a message tells that creating a new plan fails, but it worked 2021-06-14 16:53:52 +02:00
Sylvain
27ac345588 remove reference to stripe in user creation workflow 2021-06-14 15:14:14 +02:00
Sylvain
13fae70277 test payzen endpoints 2021-06-09 18:48:51 +02:00
Sylvain
68f64cfc5c update the card for payment schedules 2021-06-04 18:26:20 +02:00
Sylvain
89adcf1a9d WIP: pay item 2021-06-03 16:25:42 +02:00
Sylvain
dc0a75e52d verify each deadlines on payzen for payment schedules 2021-06-03 12:22:37 +02:00
Sylvain
87cd41794e WIP: payzen subscription
TODO: retreive the payzen subscription from PayZen::Item
2021-06-02 20:07:53 +02:00
Sylvain
209bde9f28 refreshed all footprints in fixtures, all tests passing 2021-05-31 17:14:42 +02:00
Sylvain
d0011a10f0 check for slots restricted to subscribers at cart level 2021-05-31 15:39:56 +02:00
Sylvain
55b0e25ee9 generate footprints in a reproductible way 2021-05-31 12:53:28 +02:00
Sylvain
36e173fb43 test presence of footprint debug data 2021-05-31 12:19:28 +02:00
Sylvain
db58ee28c0 migration to object[]
TODO: fix invoices checksums
2021-05-31 11:52:53 +02:00
Sylvain
d942d46632 WIP: migration to object[]
TODO: fix running tests, fix front-end
2021-05-28 17:34:20 +02:00
Sylvain
6cd74ac33e remove references to PaymentSchedule.scheduled 2021-05-27 16:11:23 +02:00
Sylvain
5f5ec8dbb6 remove references to Invoice.invoiced 2021-05-27 15:58:55 +02:00
Sylvain
13f50c0e33 remove references to WalletService.transactable 2021-05-27 13:43:54 +02:00
Sylvain
b938232c19 Merge branch 'dev' into payzen 2021-05-25 14:06:30 +02:00
Sylvain
ecf80b0591 ability to set invoices as erroneous 2021-05-24 16:34:27 +02:00
Sylvain
c7a59c8cb7 WIP: refactoring to singularize the booking process
We need to achieve only one process for all booking, not one for subscription, one for reservations, etc.
Moreover we must store one object per invoice_item/payment_schedule_object and stop using Invoice.invoiced or PaymentSchedule.scheduled
2021-05-21 18:25:18 +02:00
Sylvain
66f81a975e WIP: array of items
Migration from cart_items:{reservation:{}, subscription:{}, ...}
to cart_items:{items:[{reservation:{}, ...}], ...}
2021-05-19 18:12:52 +02:00
Sylvain
1f9a7ba6cc fix debugging footprints 2021-05-17 17:04:52 +02:00
Sylvain
6bcd9f6fef Merge branch 'dev' into payzen 2021-05-17 15:07:41 +02:00
Sylvain
390f62fd41 [bug] the count of successfully updated events was not correct 2021-05-12 15:53:32 +02:00
Sylvain
e3187460ea create payment schedules on payzen
Also: make generic the creation of products on remote gateway
Also: make generic the call to gateway specific actions
2021-04-30 16:07:19 +02:00
Sylvain
dbdedadf8c fix price computation in front-end 2021-04-28 16:22:22 +02:00
Sylvain
d5f7bd7abd fix test Reservations::CreateTest
create subscription w/ the reservation if applicable
+ refactor payments_controller to factorize the on_*_success codes
2021-04-26 17:42:03 +02:00
Sylvain
53e9a1c4f2 fix running test create_as_admin_test
- do not create an empty payment gateway object if not needed
2021-04-26 12:00:07 +02:00
Sylvain
b9e8c8867c fix running test renew_as_admin_test 2021-04-26 11:40:26 +02:00
Sylvain
bc6ef8ef50 WIP: move backend code base to new architecture
- from stripe only to payment gateway abstract
- from reservation params style to unified cart_items

TODO: fix not passing tests,
subscriptions/renew_as_admin_test.rb fails because InvoiceItem(9).amount = nil
2021-04-23 17:54:59 +02:00
Sylvain
94cbcd3236 refactor to use the new price computation system based on ShoppingCart 2021-04-23 12:52:06 +02:00
Sylvain
e456ddc7c9 WIP: refactor the price computation system 2021-04-22 19:24:08 +02:00
Sylvain
26dfbef5e1 WIP: refactor models to use payment_gateway_objects 2021-04-21 17:38:06 +02:00
Sylvain
434ec9c205 refactored Invoices to get rid of stripe references 2021-04-20 17:22:53 +02:00
Sylvain
a897d37b2d improved footprint debug process 2021-04-16 16:03:10 +02:00
Sylvain
343b2f7d23 refactor code related to archiving 2021-04-16 10:34:02 +02:00
Sylvain
1bbb8c3965 move the architecture from stripe-only to gateway-generic 2021-04-15 17:01:52 +02:00
Sylvain
1749dea0e2 fix tests 2021-03-23 12:32:59 +01:00
Sylvain
a5b3728f8c [bug] various fixes on accouting exports
- accounting exports may ignore some invoices for the first and last days
- file caching for accounring exports is not used
2021-03-22 17:42:54 +01:00
Sylvain
e9185bd402 [bug] recurring availabilities are not restricted to subscribers 2021-03-22 10:43:45 +01:00
Sylvain
d7056f0adc fix footprints checking for payment schedule items 2021-02-23 14:04:42 +01:00
Sylvain
305e462011 on stripe subscription renew: cancel subscription after the last deadline 2021-02-22 11:28:52 +01:00
Sylvain
c478ade85c fix admin operations on subscriptions w/ schedules 2021-02-10 17:24:03 +01:00
Sylvain
ecb23c02b9 fix extend susbcription w/ payment schedule 2021-02-10 13:32:13 +01:00
Sylvain
f3ad59d33a fix cancel schedule 2021-02-09 16:26:09 +01:00
Sylvain
ff0c69fc58 stripe card update + cancel subscription 2021-02-09 15:44:56 +01:00
Sylvain
d1584604b3 fix a rounding error with coupons 2021-02-08 15:42:45 +01:00
Sylvain
0e7226c85c handle stripe requires_action 2021-02-08 15:28:47 +01:00
Sylvain
eddf23622d Merge branch 'dev' into monthly-payment 2021-02-02 17:17:15 +01:00
Sylvain
588b8050db [bug] when an event is modified, the member's reservations does not reflect the new event date 2021-02-02 15:52:55 +01:00
Sylvain
163976b988 WIP: error handling for card payments on later deadlines 2021-01-27 17:24:10 +01:00
Sylvain
8d08100166 WIP: schedules management inerface 2021-01-27 13:59:41 +01:00
Sylvain
def0778a4d basic inteface to retrieve payment schedules 2021-01-25 17:42:30 +01:00
Sylvain
01a0612a4b fix create invoice for each due date 2021-01-25 14:37:07 +01:00
Sylvain
26636254bd generate the invoices for each schedule item and notify if something goes wrong 2021-01-25 13:05:27 +01:00
Sylvain
ecdec70755 WIP: generate invoices for each payment schedule item 2021-01-20 17:00:23 +01:00
Sylvain
8adb569891 fix payment schedule total 2021-01-20 13:47:29 +01:00
Sylvain
37af665991 save subcription id in payment schedule item 2021-01-04 17:03:44 +01:00
Sylvain
8b13ae45ac all tests passing 2021-01-04 16:26:52 +01:00
Sylvain
dc00df4afc fix stripe subscription w/ coupon + wallet 2020-12-30 12:19:33 +01:00
Sylvain
b8319a5124 handle percent coupons w/ stripe subscriptions 2020-12-30 10:17:39 +01:00
Sylvain
fba5f57a1c handle wallet transaction w/ stripe subscription 2020-12-29 18:55:00 +01:00
Sylvain
abe1619392 fix book reservation+subscription 2020-12-29 11:27:59 +01:00