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
Sylvain
feeed2f450
fix take a reservation + subscription
...
FIXME:
ActionView::Template::Error (undefined method `iso8601' for nil:NilClass)
Callstack:
app/views/api/reservations/show.json.jbuilder:40:in `_app_views_api_reservations_show_json_jbuilder'
app/controllers/api/payments_controller.rb:91:in `confirm_payment_schedule'
2020-12-28 18:30:27 +01:00
Sylvain
65277800e2
fix creation subcription on stripe
2020-12-23 16:25:24 +01:00
Sylvain
f661428db2
better error handling in stripe::subscription creation process
2020-12-23 15:29:56 +01:00
Sylvain
bbf88846dd
refactored Invoice & PaymentSchedule to use inheritance
2020-12-22 14:43:08 +01:00
Sylvain
6fa9780ad5
refactor chainable/footprint protected models to use inheritance
2020-12-22 09:53:41 +01:00
Sylvain
d3a41903cd
WIP: exclude invoice_id from footprint in payment_schedule_item
2020-12-21 17:37:58 +01:00
Sylvain
609d19e5d1
refactored subscription process + renew (update) subscription/ offre free days
2020-12-21 16:12:34 +01:00
Sylvain
a4131e4d5c
fixed new reservation process
2020-12-21 12:02:59 +01:00
Sylvain
40c78974b8
refactoring of reservation:pay_and_save
...
TODO: debug with tests,
refactor subscription:pay_and_save on the same template
2020-12-16 18:33:43 +01:00
Sylvain
908ccf5bab
handle reservations+subscription w/ schedule
...
integration testing for payment schedule
debug reservation process
2020-12-14 17:42:23 +01:00
Sylvain
c3c881d2a8
process the schedule to the stripe subscription
...
- only for subscriptions for now
- TODO: reservations (see app/services/reservations/reserv.rb:13)
2020-12-09 16:47:51 +01:00
Sylvain
5941446a72
fixes for card payment
2020-12-02 14:28:41 +01:00
Sylvain
34a9084501
pass payment method to the ruby service
2020-11-23 11:48:44 +01:00
Sylvain
a56112a47f
using stripe api
2020-11-17 16:23:55 +01:00
Sylvain
678af0de1f
using stripe api + improved ui + ui to configure schedules reference
...
TODO: as an admin, I can select if payment_method = (stripe || local)
2020-11-16 16:37:40 +01:00
Sylvain
b5504d2342
create stripe subscription with all data
2020-11-12 16:44:55 +01:00
Sylvain
ed5b90cbdc
add stp_product_id to all items that can be scheduled
2020-11-12 12:14:51 +01:00
Sylvain
78847bdb4b
WIP: create subscription on stripe
2020-11-10 17:02:21 +01:00
Sylvain
7833b0924b
add other cart items to the first schedule
2020-11-05 14:55:06 +01:00
Sylvain
b0afa02f1d
use cart directive on the plan subscription page
...
+ fix payment schedule compute
+ fix price for monthly-payments plans in plan-card
+ TODO: valid_reservation_modal.html
+ TODO: Stripe processing
2020-11-04 16:22:31 +01:00
Sylvain
7d37174b51
[bug] when a cash coupon was used, an invalid amount is shown in the statistics
2020-11-04 15:53:40 +01:00
Sylvain
21bd1312bc
compute payment schedule + basic display
2020-11-03 16:50:11 +01:00
Sylvain
19fb816d36
Enhanced rake task to create fixtures for test cases
2020-07-22 09:45:20 +02:00
Sylvain
7bf06ff23e
debug footprints
2020-07-21 19:25:21 +02:00
Sylvain
a83a42c70c
[bug] Health API is broken if ElasticSearch is not present
2020-07-01 15:13:44 +02:00
Sylvain
e288f66997
use search index to speed up projects searches
2020-06-23 17:06:59 +02:00
Sylvain
23338eb36d
refactored project search using service
2020-06-23 15:45:38 +02:00
Sylvain
40dd39304e
enable/disable statistics module fomr the UI
2020-06-17 12:20:51 +02:00
Sylvain
24155bc009
ability to lock settings from the env vars
2020-06-15 13:20:48 +02:00
Sylvain
4b8504f531
fix tests
2020-06-10 11:52:54 +02:00
Sylvain
88208627c9
read stripe_public_key from the db
2020-06-10 11:02:30 +02:00
Sylvain
9ff0a06029
many sidekiq fixes
2020-06-09 18:51:57 +02:00
Sylvain
a70668f52a
sync members on stripe after keys update
2020-06-09 14:27:18 +02:00
Sylvain
06b5da9df8
configure online payment from the UI
2020-06-08 17:42:59 +02:00
Sylvain
f78eb10c75
use openlab_app_secret from db w/ openlab_ruby gem
2020-06-08 15:17:56 +02:00
Sylvain
88f2fb3749
secure the settings API (read) + read the openlab settings from the db
2020-06-08 15:08:07 +02:00
Sylvain
0d211e2e31
configure google recaptcha from UI
2020-05-27 16:35:30 +02:00
Sylvain
628a0f3bc3
configure facebook_app_id from the UI
2020-05-27 12:29:51 +02:00
Sylvain
2d628d8826
disable the invoicing module from the UI config panel
2020-05-26 18:07:07 +02:00
Sylvain
537743a740
configure the plans module from the admin UI
2020-05-26 15:39:28 +02:00
Sylvain
6cc6bba7ce
refactored app to gather spaces module status from the settings
2020-05-26 13:59:40 +02:00
Sylvain
01017f3012
fix setting.get for boolean
2020-05-25 16:47:06 +02:00
Sylvain
98c63e8327
[bug] managers do not see the name of the user who reserved a slot
2020-05-25 16:35:21 +02:00
Sylvain
ba4c39ca99
use slot duration from the db setting
2020-05-25 12:55:01 +02:00
Sylvain
f80eb230ca
refactored code to use Setting.get
2020-05-25 12:54:19 +02:00
Sylvain
bf57587301
[bug] recurrent availabilities do not keep the custom duration
2020-05-25 11:03:31 +02:00
Sylvain
18e2b032ae
fix import users from csv
2020-05-19 11:45:51 +02:00
Sylvain
ca7a50bacc
[bug] admin's members list shows the same members multiple times
2020-05-13 10:59:16 +02:00
Sylvain
7e1edef8a0
[bug] when an admin logs on the subscription page, his view is broken
...
Also: Prevent admins from leaving their dedicated group
2020-05-13 08:37:49 +02:00
Sylvain
06502cde33
[bug] accounting periods totals are wrong for periods closed after 2019-08-01
2020-05-11 10:10:52 +02:00
Sylvain
47a0fca481
show all availabilities to managers
2020-05-06 12:56:12 +02:00
Sylvain
be23cf27c3
use Price.compute to generate invoice items
2020-05-06 12:43:47 +02:00
Sylvain
6aa7ba89e8
manager's notifications
2020-04-29 15:34:30 +02:00
Sylvain
5312c13d3f
[manager] manage agenda + book machines for himself&others
2020-04-27 12:12:29 +02:00
Sylvain
e1a8646e5f
inteface to add/remove/edit managers
2020-04-22 10:09:16 +02:00
Sylvain
2ca5c8c50f
managers interface
2020-04-21 17:24:22 +02:00
Sylvain
ff75a96ecc
Ability to define, per availability, a custom duration for the reservation slots
2020-04-15 18:08:02 +02:00
Sylvain
a4cd6e4dc7
[bug] unable to access health endpoint
2020-04-07 15:19:41 +02:00
Sylvain
f24d94b979
set correct invoicing_profile_id for refund invoice during wallet credit
2020-04-01 17:58:32 +02:00
Sylvain
3917d6042c
[bug] no statistics for subscriptions ( #196 )
...
+ [bug] issing translation for subscriptions statistics > duration
2020-04-01 17:25:55 +02:00
Sylvain
705bedc25c
[bug] crediting a wallet w/ refund invoice prevent statistics generation ( #196 )
2020-04-01 12:51:18 +02:00
Sylvain
570f61c5df
[bug] report error on invalid encoding in members import
2020-03-31 16:53:30 +02:00
Du Peng
b3313d3e75
update rails to 5.1.7
2020-03-25 12:35:07 +01:00
Sylvain
6b63483fcc
fix an issue with the health endpoint
2020-02-26 12:00:51 +01:00
Sylvain
b7dda83060
Merge branch 'edit_event_recurrent' into dev
2020-02-11 15:43:29 +01:00
Du Peng
c3965b28cf
remove rebocop disable
2020-02-03 10:53:54 +01:00
Du Peng
05073d5a28
fix bug for update event recurrent
2020-01-30 12:03:50 +01:00
Sylvain
fd0f49f132
rubocop: ruby syntax
2020-01-29 17:50:06 +01:00
Sylvain
5b97ef03a9
rubocop: ruby syntax
2020-01-29 17:49:05 +01:00
Du Peng
35d9bec8a5
update event recurrent
2020-01-29 17:20:19 +01:00
Du Peng
de02bb1c72
update all attributes of event
2020-01-28 18:34:32 +01:00
Du Peng
b1419271e6
edit event recurrent in progress
2020-01-27 18:21:46 +01:00
Sylvain
656a603d6c
customize home page css
2020-01-27 17:10:29 +01:00
Sylvain
97660924cb
fix typo and wording
2020-01-21 11:16:49 +01:00
Du Peng
3c26c6d4bd
disable add plan with reserve slot in the past
2020-01-20 16:17:10 +01:00
Du Peng
0143c3d495
allow admin reserve machine/space in the past time
2020-01-20 16:17:10 +01:00
Sylvain
7929d3b198
detailled view of collected data in fabanalytics
2020-01-15 12:48:55 +01:00
Sylvain
059096c2dd
privacy option for fab-analytics
2020-01-15 10:46:04 +01:00
Sylvain
bb48a13f83
health endpoint & automated version check
2020-01-14 14:33:00 +01:00
Sylvain
64764e5498
check version on hub & [ongoing] health endpoint
2020-01-13 17:05:53 +01:00
Sylvain
54be21729b
batch delete periodic events
2020-01-07 17:18:49 +01:00
Sylvain
f778ee9016
fix syntax + add missing translations
2020-01-07 10:44:29 +01:00
Nicolas Florentin
62c979cfc0
members filters, translations for other languages are still needed
2019-12-20 15:47:42 +01:00
Sylvain
60755a2c2a
Merge remote-tracking branch 'origin/fix-time-now' into dev
2019-12-03 15:51:22 +01:00
Sylvain
64fe68b2b0
icalendar source sync: create/update/delete ical events
2019-12-03 12:16:07 +01:00
Sylvain
cca6b14f58
import events asyncronously from icalendar
2019-12-02 15:53:24 +01:00
Nicolas Florentin
77cf8c8218
replaces almost all Time.now by DateTime.current
2019-12-02 11:57:25 +01:00
Sylvain
36eba99808
[bug] report errors on admin creation
2019-12-02 10:39:42 +01:00
Sylvain
bbd613f2a5
compute right nb of free seats for event reservation
...
also: copy nb_total_places to n+1 instances when creating recurrent
availabilities
2019-11-25 10:30:12 +01:00
Sylvain
9ec736e6b5
delete recursive slots
2019-11-18 17:29:51 +01:00
Sylvain
26738563bd
create reccursive events
2019-11-18 11:50:20 +01:00
Sylvain
a60a39ff9e
[ongoing] create multiple availabilities according to UI
2019-11-13 12:13:22 +01:00
Nicolas Florentin
12b9155b43
try to fix edge cases of VatHistoryService, related to issue #156
2019-10-29 15:20:25 +01:00
Sylvain
fdcec06345
CVE-2019-16892 + #49
...
- updated rubyzip to fix a security issue
- updated axlsx and file writing method as a possible fix for #49
2019-10-21 16:11:49 +02:00