Commit Graph

372 Commits

Author SHA1 Message Date
Valentin Deniaud 5269bc60c1 api: add support for subscriptions in recurring fillslots (#58446) 2021-12-13 16:41:23 +01:00
Valentin Deniaud 270daa2202 api: filter by subscriptions in recurring events list (#58446) 2021-12-13 16:41:23 +01:00
Valentin Deniaud 2e7d87ffe7 api: add support for subscriptions in multiple agendas fillslots (#58446) 2021-12-13 16:41:23 +01:00
Valentin Deniaud 97b0b899af api: filter by subscriptions in multiple agendas datetimes (#58446) 2021-12-13 16:41:23 +01:00
Valentin Deniaud 02837f7632 api: add agenda deletion (#59127) 2021-12-13 09:58:12 +01:00
Valentin Deniaud 48a8af32d2 agendas: add subscription model (#58444) 2021-11-25 18:51:36 +01:00
Valentin Deniaud 1c8c5f447b api: make APIError less verbose (#58014) 2021-11-18 10:16:05 +01:00
Lauréline Guérin 629b512836
api: show events out of minimal delay (#58286) 2021-11-18 09:33:03 +01:00
Valentin Deniaud e7adcb1828 api: allow multiple grouping in statistics (#57817) 2021-11-02 10:03:08 +01:00
Valentin Deniaud 7ce030c69f api: add prefetching to recurring events endpoints (#57957) 2021-11-02 09:46:57 +01:00
Valentin Deniaud 753c7ad6f1 api: make recurring events fillslots work with multiple agendas (#57957) 2021-11-02 09:46:57 +01:00
Valentin Deniaud bb781f8c83 api: make recurring events list endpoint work with multiple agendas (#57957) 2021-11-02 09:46:57 +01:00
Valentin Deniaud 84f5dbc4c8 api: move MultipleAgendasEventsFillslots validation to serializers (#57957) 2021-11-02 09:46:57 +01:00
Lauréline Guérin 268a0db229
api: bypass_delays parameter for event fillslot endpoints (#57961) 2021-10-29 14:44:14 +02:00
Lauréline Guérin b07288d1be
api: bypass_delays parameter for datetimes endpoints (#57961) 2021-10-29 14:44:14 +02:00
Lauréline Guérin a43252d748
api: fix start/end date with recurring events in multi datetimes (#58257) 2021-10-29 13:36:38 +02:00
Valentin Deniaud 887f2a5f02 api: include event label and day when listing recurring events (#57958) 2021-10-20 10:50:45 +02:00
Lauréline Guérin 6297ea6231
agendas: event publication_datetime (#56634) 2021-10-15 08:13:28 +02:00
Nicolas Roche a7757b7a22 api: prefetch roles on agenda display (#57670) 2021-10-11 14:52:42 +02:00
Nicolas Roche 0660f76ee7 api: display category on agenda details (#57670) 2021-10-11 14:50:38 +02:00
Valentin Deniaud 77e8da72c3 api: forbid booking of recurring event (#57523) 2021-10-07 11:18:19 +02:00
Nicolas Roche 3719bb7db4 api: move post event api from add-event/ to event/ endpoint (#57547) 2021-10-06 15:44:18 +02:00
Nicolas Roche 030a355ebf api: add an endpoint to patch an event (#57305) 2021-10-06 15:31:01 +02:00
Nicolas Roche 25b5222dd4 api: add post method on agenda endpoint (#57103) 2021-10-06 10:51:09 +02:00
Nicolas Roche b9e6c9c55c api: display minimal_booking_delay_in_working_days on meetings agenda details (#57103) 2021-10-06 10:47:09 +02:00
Nicolas Roche b7811f5235 api: display roles on agenda details (#57103) 2021-10-06 10:47:09 +02:00
Lauréline Guérin f07d2bb8b2
api: show_past_events for agendas/datetimes endpoint (#56615) 2021-10-04 18:04:26 +02:00
Lauréline Guérin 09b1ce63d9
api: a past event is disabled except if we want to book it (#56615) 2021-10-04 17:52:27 +02:00
Lauréline Guérin e4603ed856
api: rename show_events in bookable_events (#56615) 2021-10-04 17:47:37 +02:00
Emmanuel Cazenave 3b9c1370c9 agendas: use custom urls in bookings (#56820) 2021-09-27 10:23:48 +02:00
Nicolas Roche 9bf248a095 api: add add-event endpoint (#47337) 2021-09-24 09:35:17 +02:00
Benjamin Dauvergne af17a62015 api: reduce search window for open slots in fillslot (#56896) 2021-09-13 22:08:54 +02:00
Valentin Deniaud 246e14e7e4 misc: add event duration in export and api (#56786) 2021-09-08 12:37:59 +02:00
Lauréline Guérin 0b53360c0c
agendas: trigger full and places event fields (#54747) 2021-08-30 10:39:07 +02:00
Valentin Deniaud 5041ef37ce api: specify which event is not bookable (#55996) 2021-08-24 15:18:07 +02:00
Frédéric Péters 694a51beef trivial: add missing interpolation to string (#56300) 2021-08-21 14:51:36 +02:00
Valentin Deniaud f6de72a5a9 api: disable event only if excluded_user_external_id is specified (#55369) 2021-08-17 16:13:36 +02:00
Valentin Deniaud 67f1f68fd6 api: add endpoint to book multiple events accross several agendas (#56104) 2021-08-17 15:51:36 +02:00
Valentin Deniaud 0cf2c62199 api: factorize getting objects from list of slugs (#56104) 2021-08-17 15:50:04 +02:00
Valentin Deniaud fa34281ade api: prefetch events in multiple agendas datetimes (#55370) 2021-08-17 15:47:08 +02:00
Valentin Deniaud e86d0cb11f api: add datetimes for multiple events agendas (#55370) 2021-08-17 15:47:08 +02:00
Valentin Deniaud 8f127f3606 api: use serializer for event datetimes api (#56083) 2021-08-17 15:46:47 +02:00
Valentin Deniaud 95e2618863 api: move serializers to new file (#56083) 2021-08-17 15:46:47 +02:00
Lauréline Guérin 402438f4df
api: reduce datetimes querysets (#56046) 2021-08-13 08:57:03 +02:00
Valentin Deniaud 89ccbc922a api: allow empty slots parameter in multiple event booking (#56000) 2021-08-05 16:46:03 +02:00
Valentin Deniaud 96b10d052b api: allow changing recurrence bookings (#54746) 2021-08-05 14:42:44 +02:00
Valentin Deniaud 92d209ed11 api: allow changing multiple event bookings (#55368) 2021-08-05 14:10:36 +02:00
Valentin Deniaud a26183e5fa api: add endpoint to book multiple events independently (#55367) 2021-08-05 11:53:26 +02:00
Valentin Deniaud 3936f9450a api: move event selection code to function (#55367) 2021-08-02 16:52:43 +02:00
Valentin Deniaud 63c7dfecc1 api: rely on DRF validation (#55367) 2021-08-02 16:52:43 +02:00
Valentin Deniaud 2d5a9bfd73 api: fix waiting list condition in RecurringFillslots (#55905) 2021-08-02 09:48:48 +02:00
Valentin Deniaud 7f4c9d96df misc: remove django 1.11 compatibility code (#55895) 2021-07-29 14:44:20 +02:00
Lauréline Guérin 1ec4ad9376
misc: apply pyupgrade (#55867) 2021-07-27 15:19:00 +02:00
Valentin Deniaud c0e2726e67 api: filter statistics by extra_data (#55424) 2021-07-19 12:30:37 +02:00
Lauréline Guérin f9cd760301
misc: fix dangerous-default-value pylint error (#55505) 2021-07-15 15:02:15 +02:00
Lauréline Guérin b6952a21c5
misc: fix undefined-loop-variable pylint error (#55505) 2021-07-15 15:02:15 +02:00
Lauréline Guérin 25da6b2a74
misc: fix no-else-raise pylint error (#55505) 2021-07-15 15:02:14 +02:00
Lauréline Guérin 4f56ef4167
misc: fix super-with-arguments pylint error (#55505) 2021-07-15 15:02:13 +02:00
Lauréline Guérin 9fd102df87
misc: fix unused-variable pylint error (#55505) 2021-07-15 15:02:13 +02:00
Valentin Deniaud fc79c17012 api: add agenda filter in booking statistics (#55267) 2021-07-15 10:24:23 +02:00
Lauréline Guérin 90c4cfd084
api: accept events in GET params for fillslot (#55404) 2021-07-09 11:00:56 +02:00
Lauréline Guérin 5c945da024
api: rename slots views (#55208) 2021-07-09 10:34:54 +02:00
Lauréline Guérin e8c683fb91
agenda: option to disable check update when event is checked (#53933) 2021-07-09 08:54:25 +02:00
Frédéric Péters 8104efa1e2 api: include date attribute in /datetimes API calls (#55366) 2021-07-05 14:27:00 +02:00
Lauréline Guérin 9ac90f720a
api: return events param in fillslot_url (#55316) 2021-07-02 09:13:52 +02:00
Lauréline Guérin daf613525d
api: don't escape result of event_display_template (#55220) 2021-07-01 18:47:38 +02:00
Valentin Deniaud 63148a30dd api: fix string for localization 2021-07-01 15:33:06 +02:00
Valentin Deniaud 4fb6581e8d api: allow booking all recurrences of recurring events (#54332) 2021-07-01 10:11:20 +02:00
Valentin Deniaud 91ee8ca870 api: group bookings by event start datetime in statistics (#55266) 2021-07-01 10:02:58 +02:00
Valentin Deniaud 38048a93f7 api: change label for booking without presence info in statistics (#55277) 2021-06-30 17:00:10 +02:00
Valentin Deniaud 2921ed52a3 api: prevent crash on invalid event_display_template (#54388) 2021-06-28 15:26:45 +02:00
Lauréline Guérin 7d7f52487c
api: endpoint to check an event (#53932) 2021-06-28 09:17:21 +02:00
Lauréline Guérin 3ba5dac136
manager: show when an event is checked (#53707) 2021-06-28 08:35:59 +02:00
Lauréline Guérin dd424bc388
api: user_external_id for datetimes (#55002) 2021-06-25 18:03:20 +02:00
Lauréline Guérin 3999cf7a22
api: fillslot & past events (#48397) 2021-06-25 15:46:29 +02:00
Lauréline Guérin 302c2c0285
api: datetimes & past events (#48397) 2021-06-25 15:46:28 +02:00
Frédéric Péters 4d9c0330ad api: prefetch exception desk when getting available slots (#54994) 2021-06-19 07:54:31 +02:00
Benjamin Dauvergne 15e1c48ea2 Revert "api: add lock_code parameter to fillslot and datetimes" (#54956)
This reverts commit 2f9bf16a57.
2021-06-18 07:45:12 +02:00
Thomas NOËL f3bb5e44ac api: add label to event details (#54932) 2021-06-17 10:27:54 +02:00
Valentin Deniaud 6372afc4a5 manager: add more granular control over event recurrence (#50560) 2021-06-11 18:29:03 +02:00
Benjamin Dauvergne 2f9bf16a57 api: add lock_code parameter to fillslot and datetimes (#17685) 2021-06-11 07:43:30 +02:00
Valentin Deniaud 4e89a1d568 agendas: really check publication date for recurring events (#54430) 2021-06-01 10:07:47 +02:00
Valentin Deniaud 045ae53bf1 api: add bookings count statistics (#52846) 2021-05-31 10:10:54 +02:00
Valentin Deniaud 8da8fd1396 api: raise error if known body parameter is in query (#54216) 2021-05-31 10:06:33 +02:00
Valentin Deniaud bf4b986591 agendas: allow custom event api text (#53661) 2021-05-20 09:50:57 +02:00
Lauréline Guérin 71850e67c6
api: booking, user_name and first/last_name (#53172) 2021-05-18 16:20:50 +02:00
Lauréline Guérin 7eea2968b7
api: add absence reasons to agenda details (#53147) 2021-05-17 11:42:59 +02:00
Lauréline Guérin 4fe0a35cd2
api: check absence reason exists (#53147) 2021-05-17 10:30:07 +02:00
Valentin Deniaud 6aa49605cc api: prefetch exceptions for recurring events (#50561) 2021-04-28 17:27:46 +02:00
Benjamin Dauvergne 6c9518f4d6 api: change date filtering of already booked meetings (#53313)
For a researsing slots in an interval of

    [min, max]

overlapping events should be considered if

    event.start_datetime \in [min - agenda.max_duration_meeting_types, max]

as the implicit event.end_datetime cannot be superior to:

    event.start_datetime + agenda.max_meeting_types_duration

and the formal condition for an overlapping event is :

    event.start_datetime < max && event.end_datetime > min
2021-04-23 10:31:55 +02:00
Benjamin Dauvergne 0bb2ca3676 api: fix typo in gel_all_slots() (#53313) 2021-04-23 10:31:55 +02:00
Lauréline Guérin aa175d1306
api: add resources api (#53272) 2021-04-23 09:44:45 +02:00
Lauréline Guérin e9c9655064
api: fix event meta for ocurrences (#53209) 2021-04-23 09:09:42 +02:00
Lauréline Guérin 6554c0a42c
api: fix date_start & meetings/datetimes - again (#53207) 2021-04-16 15:33:23 +02:00
Lauréline Guérin 34224c56aa
misc: apply isort (#52856) 2021-04-16 10:32:59 +02:00
Lauréline Guérin bf10ddf860
api: hide disabled slots if requested (#51160) 2021-03-26 14:23:12 +01:00
Lauréline Guérin 07f2af930b
api: use date or datetimes for start/end param in datetimes (#51986) 2021-03-26 10:13:48 +01:00
Lauréline Guérin bbd93a1bec api: fix date parsing (#52172) 2021-03-23 13:31:29 +01:00
Benjamin Dauvergne 918d2c2339 agenda: factorize code to compute min/max_booking_time (#52227) 2021-03-19 14:51:46 +01:00
Lauréline Guérin e9f180d5fe
api: fix datetimes meta if first slot is disabled for user (#52051) 2021-03-16 11:19:19 +01:00
Lauréline Guérin 5b7c92ea5d
api: exclude slots already booked by user in fillslot (#51432) 2021-03-05 08:38:54 +01:00
Lauréline Guérin 6d57af612e
api: exclude slots already booked by user - meetings (#51341) 2021-03-01 10:48:28 +01:00
Lauréline Guérin e15439bd3c
api: exclude slots already booked by user - events (#51341) 2021-03-01 10:48:26 +01:00
Lauréline Guérin d23eafcfc6
api: list bookings of somebody (#51187) 2021-03-01 10:07:10 +01:00
Valentin Deniaud 929f70d2ac api: allow passing minimum places count in /datetimes/ (#51172) 2021-03-01 09:55:31 +01:00
Valentin Deniaud 9954337197 api: include anonymize url in fillslots response (#51366) 2021-03-01 09:42:04 +01:00
Lauréline Guérin 5e94ddeff3
api: APIError handling (#51181) 2021-02-26 08:24:26 +01:00
Lauréline Guérin 64a8a4b7f1
api: patch booking extra_data (#51340) 2021-02-23 09:00:23 +01:00
Valentin Deniaud a699e144b4 add support for recurring events (#41663) 2021-02-17 15:49:57 +01:00
Valentin Deniaud a392213dce agendas: make returning a queryset in get_open_events useless (#41663) 2021-02-17 15:49:57 +01:00
Valentin Deniaud 24296826b1 api: add first bookable slot info in /datetimes/ meta (#51165) 2021-02-16 11:21:16 +01:00
Lauréline Guérin f32f64ea54
api: category filter (#49355) 2021-02-12 09:55:09 +01:00
Valentin Deniaud 7342e8d24e api: add anonymize booking endpoint (#49093) 2021-02-01 16:33:08 +01:00
Valentin Deniaud 55841ecfcd agendas: share booking colors between agendas (#50379) 2021-01-26 20:55:12 +01:00
Nicolas Roche 446ca922be api: add a meta dict on datetimes endpoints (#50278) 2021-01-22 07:19:59 +01:00
Lauréline Guérin 1ec10c4e46 api: store the reason of an absence (#49179) 2021-01-22 07:19:44 +01:00
Lauréline Guérin d0bc3146d6
api: mark user as present or not (#38678) 2021-01-19 19:10:43 +01:00
Frédéric Péters eeda0c3f2e apply black 20.8b1 formatting 2020-12-29 10:42:33 +01:00
Valentin Deniaud 8409186543 manager: differentiate bookings with colors (#39794) 2020-12-22 17:29:11 +01:00
Valentin Deniaud 221a4051f9 api: match StringOrListField max length with model definition (#48586) 2020-12-17 14:39:02 +01:00
Lauréline Guérin 2ec664efd3
api: complete slot_status endpoint result (#48877) 2020-12-14 13:41:48 +01:00
Valentin Deniaud a51a036c13 api: use current timezone in get_max_datetime (#48464) 2020-11-30 10:37:36 +01:00
Emmanuel Cazenave 6d0e8a57ad agendas: add date filter params on datetimes api (#48078) 2020-11-17 16:31:21 +01:00
Lauréline Guérin 14baf0d93e
api: add places in datetimes endpoint result (#48431) 2020-11-17 15:07:00 +01:00
Lauréline Guérin 241d65612b
api: proper error if datetime part is wrong in a slot (#48132) 2020-11-13 09:17:28 +01:00
Emmanuel Cazenave f0b054a756 agendas: make maximal_booking_delay an excluded upper bound (#48185) 2020-11-10 16:12:42 +01:00
Emmanuel Cazenave 3617c3ff05 api: order desks by identifier (#48065) 2020-10-27 15:47:36 +01:00
Lauréline Guérin d98707aeae
api: ignore desks from other agendas in datetimes (#47645) 2020-10-15 14:47:43 +02:00
Emmanuel Cazenave 7320dcfbe6 add support for unavailability calendars (#46555) 2020-10-12 10:20:33 +02:00
Lauréline Guérin 2e091220f5
api: use APIError in fillslots view (#43077) 2020-10-01 16:30:40 +02:00
Lauréline Guérin eb8026c790
api: return only agenda with open events (#44294) 2020-09-28 13:56:55 +02:00
Lauréline Guérin 8ca72fd705
api: suspend, accept and resize endpoints only for events (#46027) 2020-09-28 11:26:28 +02:00
Lauréline Guérin 4ed8c9ce00
api: always return urls with slugs (#46758) 2020-09-28 11:02:33 +02:00
Lauréline Guérin 1995cc18e4
api: better pk & slug support in status url (#46772) 2020-09-28 10:39:43 +02:00
Valentin Deniaud 271cea7b44 agendas: add new attributes to Booking (#45293) 2020-09-16 10:05:08 +02:00
Lauréline Guérin 2537992d19
api: status view, get Event by slug and agenda (#45520) 2020-09-15 17:20:33 +02:00
Lauréline Guérin f380c419db
api: always return accept and suspend urls (#41773) 2020-09-14 17:56:30 +02:00
Emmanuel Cazenave 38df08daf0 api: use a for loop instead of itertools.group_by (#46145) 2020-09-03 10:22:00 +02:00
Valentin Deniaud bde66b58e0 manager: add event cancellation (#44157) 2020-08-31 10:04:44 +02:00
Valentin Deniaud 1864d7466d manager: add booking cancellation (#44159) 2020-08-03 12:56:18 +02:00
Lauréline Guérin e9fca76b10
manager: add opened events view for event agenda (#44457) 2020-07-24 10:06:29 +02:00
Lauréline Guérin 8adb86e2eb
misc: remove dead code 2020-07-24 10:06:29 +02:00
Lauréline Guérin 2ba381fa34
api: fix resize endpoint (#44739) 2020-07-21 14:14:59 +02:00
Emmanuel Cazenave 4dc5481456 api: support overlapping events (#44644) 2020-07-02 06:22:31 +02:00
Lauréline Guérin ff939fc570
api: return slot-bookings url in datetimes api (#44374) 2020-06-26 16:49:22 +02:00
Lauréline Guérin 549e64e4bb
agenda: generate event slug if not provided (#44375) 2020-06-26 14:30:20 +02:00
Valentin Deniaud 49bca6ecc3 api: get meeting by slug (#43526) 2020-06-26 10:53:07 +02:00
Emmanuel Cazenave ff19227fc9 agendas: mark MeetingType for deletion (#44132) 2020-06-19 08:40:48 +02:00
Lauréline Guérin 82d1a53b24
api: don't list cancelled bookings in slot_bookings api (#44160) 2020-06-18 09:50:14 +02:00
Lauréline Guérin c77edebd62
api: return opened_events_available in events agenda detail payload
(#43937)
2020-06-15 11:00:41 +02:00