Javi Martín
6da53b5716
Add unique index to poll voters table
...
Note that Rails 7.1 changes `find_or_create_by!` so it calls
`create_or_find_by!` when no record is found, meaning we'll rarely get
`RecordNotUnique` exceptions when using this method during a race
condition.
Adding this index means we need to remove the uniqueness validation.
According to the `create_or_find_by` documentation [1]:
> Columns with unique database constraints should not have uniqueness
> validations defined, otherwise create will fail due to validation
> errors and find_by will never be called.
We're adding a test that checks what happens when using
`create_or_find_by!`.
Note that we're creating voters combining `create_with` with
`find_or_create_by!`. Using `find_or_create_by!(...)` with all
attributes (including non-key ones like `origin`) fails when a voter
already exists with different values, e.g. an existing `origin: "web"`
and an incoming `"booth"`. In this situation the existing record is not
matched and the unique index raises an exception.
`create_with(...).find_or_create_by!(user: ..., poll: ...)` searches by
the unique key only and applies the extra attributes only on creation.
Existing voters are returned unchanged, which is the intended behavior.
For the `take_votes_from` method, we're handling a (highly unlikely, but
theoretically possible) scenario where a user votes at the same time as
taking voters from another user. For that, we're doing something similar
to what `create_or_find_by!` does: we're updating the `user_id` column
inside a new transaction (using a new transactions avoids a
`PG::InFailedSqlTransaction` exception when there are duplicate
records), and deleting the existing voter when we get a
`RecordNotUnique` exception.
On `Poll::WebVote` we're simply raising an exception when there's
already a user who's voted via booth, because the `Poll::WebVote#update`
method should never be called in this case.
We still need to use `with_lock` in `Poll::WebVote`, but not due to
duplicate voters (`find_or_create_by!` method will now handle the unique
record scenario, even in the case of simultaneous transactions), but
because we use a uniqueness validation in `Poll::Answer`; this
validation would cause an error in simultaneous transactions.
[1] https://api.rubyonrails.org/v7.1/classes/ActiveRecord/Relation.html#method-i-create_or_find_by
2025-08-28 14:42:30 +02:00
..
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2022-08-25 21:36:31 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2023-08-30 14:46:35 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:16 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:16 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2022-08-25 21:36:31 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2021-09-03 11:49:52 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2022-08-25 21:36:31 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:16 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2021-09-03 11:49:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2022-08-25 21:36:31 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:16 +02:00
2019-10-24 21:20:16 +02:00
2019-10-24 21:20:16 +02:00
2019-10-24 21:20:16 +02:00
2019-10-24 21:20:16 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2021-09-03 11:49:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2021-09-03 11:49:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2022-08-25 21:36:31 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:16 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2021-09-03 11:49:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2022-08-25 21:36:31 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2021-09-03 11:49:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:16 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2021-09-03 11:49:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 20:35:13 +02:00
2020-09-08 11:00:19 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-24 19:24:01 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2020-09-08 11:00:19 +02:00
2019-05-28 16:40:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2021-09-03 11:49:52 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-10-24 21:20:17 +02:00
2019-10-24 21:20:17 +02:00
2020-09-08 11:00:19 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:16 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2021-08-09 23:53:21 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 21:20:17 +02:00
2019-10-24 21:20:17 +02:00
2021-08-09 23:53:21 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2021-08-09 23:53:21 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-05-28 16:40:52 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2023-08-18 14:56:16 +02:00
2023-08-30 14:46:35 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2023-08-30 14:46:35 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2022-08-25 21:36:31 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2022-11-09 17:52:05 +01:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-24 19:24:01 +02:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-17 17:40:56 +02:00
2019-10-24 20:35:13 +02:00
2019-04-29 13:08:43 -05:00
2019-04-24 19:24:01 +02:00
2019-04-29 13:08:43 -05:00
2022-08-25 21:36:31 +02:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2019-04-24 19:24:01 +02:00
2019-04-24 19:24:01 +02:00
2019-10-24 21:20:17 +02:00
2019-10-24 20:35:13 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2019-04-29 13:08:43 -05:00
2019-04-29 13:08:43 -05:00
2023-08-30 14:46:35 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 21:20:16 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2020-04-24 15:43:54 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2023-05-31 16:56:15 +02:00
2019-04-17 17:40:56 +02:00
2019-05-28 16:40:52 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2019-06-27 09:20:25 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2020-04-24 15:43:54 +02:00
2019-10-24 21:20:16 +02:00
2020-04-24 15:43:54 +02:00
2021-08-09 18:54:44 +02:00
2023-05-31 16:56:15 +02:00
2019-04-17 17:40:56 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2020-04-24 15:43:54 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:35 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:19:36 +02:00
2020-04-24 15:43:54 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:20:24 +02:00
2019-06-27 09:19:37 +02:00
2019-06-27 09:19:36 +02:00
2019-06-27 09:19:37 +02:00
2019-10-24 21:20:17 +02:00
2019-10-24 21:20:17 +02:00
2019-04-17 17:40:56 +02:00
2019-04-17 17:40:56 +02:00
2019-11-07 22:01:43 +01:00
2022-11-09 18:19:20 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2022-08-23 14:30:38 +02:00
2019-05-28 16:40:52 +02:00
2019-05-28 16:40:52 +02:00
2019-10-24 21:20:17 +02:00
2019-10-24 21:20:17 +02:00
2019-08-07 13:53:27 +02:00
2019-06-07 17:36:22 +02:00
2021-08-09 23:53:21 +02:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-11-07 22:01:43 +01:00
2019-10-24 21:20:17 +02:00
2019-08-07 13:53:27 +02:00
2019-05-21 13:50:19 +02:00
2021-09-03 11:49:52 +02:00
2019-04-29 13:08:43 -05:00
2020-08-06 12:38:18 +02:00
2019-06-07 17:36:22 +02:00
2023-08-30 14:46:35 +02:00
2019-08-07 13:53:27 +02:00
2019-05-22 11:50:03 +02:00
2019-06-07 17:36:22 +02:00
2019-06-12 16:23:40 +02:00
2019-10-24 20:35:13 +02:00
2019-06-12 16:23:40 +02:00
2019-05-22 11:50:03 +02:00
2019-08-07 13:53:27 +02:00
2019-08-07 13:53:27 +02:00
2019-08-07 13:53:27 +02:00
2019-07-29 13:07:24 +02:00
2019-06-12 18:03:53 +02:00
2019-10-24 20:35:13 +02:00
2019-06-12 18:03:53 +02:00
2019-06-12 18:03:53 +02:00
2019-06-12 18:03:53 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 20:35:13 +02:00
2019-10-24 20:35:13 +02:00
2019-07-29 13:07:24 +02:00
2019-09-12 16:49:01 +02:00
2019-06-07 18:55:29 +02:00
2020-04-23 18:49:43 +02:00
2020-04-23 18:49:43 +02:00
2020-04-09 07:11:52 +10:00
2019-10-24 21:20:17 +02:00
2019-10-20 17:36:36 +02:00
2019-10-20 17:36:36 +02:00
2019-10-25 18:05:59 +02:00
2019-10-30 02:26:42 +01:00
2019-10-30 02:26:42 +01:00
2019-10-30 18:48:55 +01:00
2019-10-30 18:48:55 +01:00
2019-11-01 16:49:14 +01:00
2019-11-01 17:12:42 +01:00
2019-11-01 17:12:42 +01:00
2019-11-01 20:08:46 +01:00
2019-11-05 13:02:37 +01:00
2019-11-05 13:02:37 +01:00
2019-11-06 00:04:02 +01:00
2019-11-07 20:36:43 +01:00
2019-11-08 18:57:54 +01:00
2021-02-23 17:05:24 +01:00
2021-06-09 19:16:55 +02:00
2021-03-11 19:37:58 +01:00
2021-06-09 21:51:39 +02:00
2020-07-08 18:34:58 +02:00
2023-08-18 14:56:17 +02:00
2020-09-08 12:12:43 +02:00
2020-09-08 12:13:01 +02:00
2020-09-08 12:13:13 +02:00
2020-09-08 12:13:21 +02:00
2022-08-25 21:36:31 +02:00
2020-12-02 12:13:02 +01:00
2020-12-04 15:15:32 +01:00
2023-08-30 14:46:35 +02:00
2020-12-08 11:30:46 +01:00
2020-12-16 11:43:15 +01:00
2020-12-21 18:04:48 +01:00
2020-12-21 18:04:48 +01:00
2022-01-17 13:55:31 +01:00
2021-01-18 13:17:37 +01:00
2021-01-14 17:37:58 +01:00
2021-01-14 17:38:01 +01:00
2021-01-26 19:10:12 +01:00
2022-02-25 16:22:52 +01:00
2021-08-16 16:31:04 +02:00
2021-08-16 16:31:04 +02:00
2021-08-16 16:31:04 +02:00
2021-08-16 16:31:04 +02:00
2023-08-30 14:46:35 +02:00
2021-09-03 11:49:52 +02:00
2021-10-06 14:13:44 +02:00
2023-09-11 23:40:37 +02:00
2023-09-11 23:40:37 +02:00
2022-08-24 14:33:02 +02:00
2021-11-05 16:40:36 +01:00
2021-11-05 16:40:36 +01:00
2022-10-18 10:38:59 +02:00
2022-09-22 10:34:07 +02:00
2023-02-22 00:52:51 +01:00
2022-12-13 13:10:02 +01:00
2022-12-28 14:34:00 +01:00
2023-02-20 14:21:03 +01:00
2023-05-29 15:12:40 +02:00
2023-10-24 20:20:27 +02:00
2024-03-21 18:10:26 +01:00
2023-10-23 15:49:01 +02:00
2025-01-23 17:03:30 +01:00
2024-04-15 15:39:23 +02:00
2024-05-17 20:11:16 +02:00
2024-05-09 14:56:25 +02:00
2024-05-09 14:56:25 +02:00
2024-11-13 15:55:20 +01:00
2024-11-13 15:55:20 +01:00
2024-06-26 15:41:44 +02:00
2024-06-26 20:20:24 +02:00
2024-11-07 12:04:46 +01:00
2024-11-07 12:04:46 +01:00
2025-03-26 16:42:04 +01:00
2025-03-26 16:42:04 +01:00
2025-08-28 14:42:30 +02:00