Commit Graph

516 Commits

Author SHA1 Message Date
Lauréline Guérin 70f0a0185f
api: add resources in fillslot_url for meetings datetime response (#43685) 2020-06-05 15:16:11 +02:00
Lauréline Guérin 4ca0af0b54
black 2020-06-05 15:14:16 +02:00
Nicolas Roche daab37c06d manager: add duration on events (#37352) 2020-06-04 11:24:23 +02:00
Nicolas Roche 7ac9cbe23a manager: simplify help text on ics exception upload file (#43609) 2020-06-04 10:19:02 +02:00
Nicolas Roche 854b7abcc8 api: return end_datetime on booking events (#37352) 2020-06-04 10:12:29 +02:00
Nicolas Roche 38e6c0aa7b tests: correct typo on DTEND in booking ics test (#43540) 2020-06-02 17:40:53 +02:00
Frédéric Péters 87a76b3032 translation update 2020-06-02 14:50:37 +02:00
Lauréline Guérin c19796751c
agendas: month/day agenda for resource (#38942) 2020-06-02 11:26:44 +02:00
Lauréline Guérin 4cc127c09e
api: book also resources in fillslot(s) endpoint (#38942) 2020-06-02 11:26:43 +02:00
Lauréline Guérin a1d38b0a88
api: check resources in datetimes endpoint (#38942) 2020-06-02 11:26:43 +02:00
Lauréline Guérin 4cc1bf6c45
api: add resources list on agenda details (#38942) 2020-06-02 11:26:43 +02:00
Lauréline Guérin b1b92bfa5c
agendas: add resource to agenda (#38942) 2020-06-02 11:26:43 +02:00
Lauréline Guérin a06c7796c8
agendas: manager views for resources (#38942) 2020-06-02 11:26:43 +02:00
Lauréline Guérin c62ebc9b56
agendas: resources in agendas fields in import/exports (#38942) 2020-06-02 11:26:43 +02:00
Lauréline Guérin 3f21f3f033
agendas: Resource model (#38942) 2020-06-02 11:26:43 +02:00
Frédéric Péters 1cc2e023c2 trivial: remove typo in assert message 2020-06-01 12:04:33 +02:00
Lauréline Guérin 1119909e34
agendas: reduce querysets on day/month views (#43306) 2020-05-29 16:52:28 +02:00
Lauréline Guérin 06ee841b11
agendas: add tests on queryset for day/month views (#43306) 2020-05-29 16:52:28 +02:00
Lauréline Guérin 4e68150938
agenda: dont check for bookings on exception creation (#42336) 2020-05-29 10:14:48 +02:00
Lauréline Guérin 0f89c488c8
api: check publication_date in datetimes & fillslots api (#40728) 2020-05-22 09:15:15 +02:00
Lauréline Guérin ff9da976c9
agendas: add publication_date on event (#40728) 2020-05-22 09:15:15 +02:00
Benjamin Dauvergne bb071f1980 misc: make empty interval using now() (#43185) 2020-05-21 10:49:44 +02:00
Benjamin Dauvergne b2f4df2722 tests: add test with exception completely covering opening hours of a desk of a virtual agenda (#43185) 2020-05-21 10:49:44 +02:00
Benjamin Dauvergne 7973059dcb api: handle empty opening hours after removing exceptions (#43126) 2020-05-20 10:06:39 +02:00
Benjamin Dauvergne fc2108bbb5 tests: add test with exception completely covering opening hours of a desk (#43126) 2020-05-20 10:06:34 +02:00
Benjamin Dauvergne 2f3afe5ad2 translation update 2020-05-19 19:36:15 +02:00
Benjamin Dauvergne ece063b2b3 api: optimize get_all_slots() and around it (#42169)
Workflow in get_all_slots() is simplified :
* first we accumulate, for each desk, the set of time slots when a booking cannot
occur or is already booked,
* then we generate the list of possible time slots and match them to the
exclusion and already booked set.

Intervals is replaced by a simpler data-structure, IntervalSet, it does
not need to be a map, a simple set is enough.

Also :
* moved TimePeriod.get_effective_timeperiods() to the agenda level , it
deduplictes TimePeriod between desks and remove excluded TimePeriod for
virtual agendas.

* added a named-tuple WeekTime to represent a TimePeriod base unit, so
we can use them in IntervalSet easily (as they can be compared) to
compute the effective time periods,

* the fact that base_duration is unique for a given virtual agenda is
now accounted and stated everywhere,

* the fact that generated time slots must have time in the local
timezone for the API to work is now stated everywhere,

* In get_all_slots(), also :
  * integrated the code of get_exceptions_by_desk() into get_all_slots()
  to further reduce the number of SQL queries.
  * used_min/max_datetime is reduced by the exclusion periods, and
    effective time periods are grouped based on the used_min/max_datetime of
    each agenda.
  * pre-filter slots for uniqueness when generating available datetimes
    (but for filling slot we still need exact availability information
    for each desk)
2020-05-19 18:19:34 +02:00
Benjamin Dauvergne 3c5d056fa3 add test on metz data (#42169) 2020-05-19 14:54:55 +02:00
Lauréline Guérin ea908cde22
manager: view to duplicate a desk (#42626) 2020-05-18 10:21:59 +02:00
Frédéric Péters b61097e250 manager: display undefined delays with proper label (#42270) 2020-05-16 09:28:55 +02:00
Lauréline Guérin d41b9ab20b
api: list bookings of user_external_id for an event (#40719) 2020-05-15 11:32:49 +02:00
Lauréline Guérin 1584b52ed3
agendas: add user_external_id field on Booking (#40719) 2020-05-15 11:15:41 +02:00
Lauréline Guérin 8e775f2bd3
api: fix fillslots api when meeting type id is not found (#42534) 2020-05-15 09:44:24 +02:00
Lauréline Guérin 19af0088ff
agendas: fix import when unknown field found (#42523) 2020-05-07 11:25:44 +02:00
Lauréline Guérin cc6da3d0a8
manager: fix exception form when start_datetime is invalid (#42397) 2020-05-05 14:59:24 +02:00
Benjamin Dauvergne d28c18add0 agendas: add unique_together meta to VirtualMember (#42413) 2020-05-04 16:30:03 +02:00
Lauréline Guérin 4d5d9a7c3c
agendas: fix import when missing exceptions or timeperiods (#42196) 2020-05-04 09:09:46 +02:00
Frédéric Péters 746e027573 api: include agenda details to fillslot response (#42360) 2020-05-03 18:58:15 +02:00
Frédéric Péters 9d0b76c82a api: reduce number of sql queries in datetimes API (#42142) 2020-05-01 09:29:17 +02:00
Benjamin Dauvergne 124ff4b0aa tests: use a temporary MEDIA_ROOT (#42325) 2020-04-30 12:56:17 +02:00
Frédéric Péters 4fac2c3cd1 misc: compute time slots using tz-aware datetimes (#42146) 2020-04-28 15:16:51 +02:00
Frédéric Péters cf030d8e4d misc: create timeslot virtual id on-demand (#42147) 2020-04-28 11:05:06 +02:00
Christophe Siraut 6f6bc17fe9 Jenkinsfile: use default distribution target (#41301) 2020-04-24 14:02:35 +02:00
Lauréline Guérin 19fa33cb21
agendas: clean db unique constraint for event slug (#41180) 2020-04-21 09:25:30 +02:00
Frédéric Péters 7536f3fe06 jenkins: build buster packages 2020-04-18 15:11:48 +02:00
Frédéric Péters e07c450d7c trivial: reapply black to sync_desks_timeperiod_exceptions.py 2020-04-14 20:09:01 +02:00
Frédéric Péters 01aaa54b4c translation update 2020-04-14 09:26:43 +02:00
Serghei Mihai fbd7720fa6 agendas: filter exception sources with really no associated file (#41331) 2020-04-04 15:25:11 +02:00
Frédéric Péters 5980720ec2 translation update 2020-04-01 11:05:48 +02:00
Emmanuel Cazenave 2748439c23 api: add more infos on places for an event agenda (#40412) 2020-03-31 14:47:12 +02:00