Commit Graph

372 Commits

Author SHA1 Message Date
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
Lauréline Guérin 70f0a0185f
api: add resources in fillslot_url for meetings datetime response (#43685) 2020-06-05 15:16:11 +02:00
Nicolas Roche 854b7abcc8 api: return end_datetime on booking events (#37352) 2020-06-04 10:12:29 +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 0f89c488c8
api: check publication_date in datetimes & fillslots api (#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 7973059dcb api: handle empty opening hours after removing exceptions (#43126) 2020-05-20 10:06:39 +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
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
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
Emmanuel Cazenave 2748439c23 api: add more infos on places for an event agenda (#40412) 2020-03-31 14:47:12 +02:00
Emmanuel Cazenave ec474b46d2 api: restrict slots with exluded timeperiods (#40058) 2020-03-20 13:03:34 +01:00
Emmanuel Cazenave 55f6d0e47d virtual agendas: use real agendas booking delays (#40121)
If booking delays are defined on the virtual agenda, they will take
precedence.
2020-03-20 13:03:34 +01:00
Emmanuel Cazenave 06f542f851 virtual agendas: balance fill rate (#40056) 2020-03-20 13:03:34 +01:00
Emmanuel Cazenave 565d471d07 start virtual agendas (#37123) 2020-03-20 13:03:34 +01:00
Lauréline Guérin f675e0e7ef
api: return overbooked_places in accept endpoint response (#40017) 2020-03-19 16:16:57 +01:00
Lauréline Guérin 8ea7b2ae37
api: endpoint to resize a booking (#40039) 2020-03-17 15:00:29 +01:00
Lauréline Guérin bccba482b4
api: can not cancel, accept or suspend a secondary booking (#40039) 2020-03-17 14:21:50 +01:00
Lauréline Guérin 5636c001ac
api: agendas endpoint with filtering (#37436) 2020-03-13 10:51:01 +01:00
Frédéric Péters a9cedd9018 api: always use event id in advertised fillslot URL (#40648) 2020-03-11 12:44:37 +01:00
Emmanuel Cazenave 3d9ea06ec7 general: reformat using black 2020-03-04 16:17:54 +01:00
Lauréline Guérin bd40148eed
api: add a param force_waiting_list to fillslot (#40022) 2020-03-03 15:26:24 +01:00
Lauréline Guérin 8d327c0dfe
api: add a suspend action on Booking (#40018) 2020-02-21 16:15:12 +01:00
Frédéric Péters 61496b5cdf general: add pricing & url attributes to events (#37979) 2020-01-14 15:25:53 +01:00
Emmanuel Cazenave 7c6528f3b8 api: count correctly requested places on multiple booking (#38306) 2019-12-20 12:02:42 +01:00
Emmanuel Cazenave 559452990c api: return 400 when no events found (#38333) 2019-12-20 11:53:56 +01:00
Emmanuel Cazenave c420dde65d api: accept slots as a string (#38333) 2019-12-20 11:46:10 +01:00
Emmanuel Cazenave 5f09ce7fdb api: return events details if multiple booking (#38330) 2019-12-20 11:14:29 +01:00
Frédéric Péters 30bbc8c90f general: reformat using black (#37464)
black--target-version py35 --skip-string-normalization --line-length 110 .
2019-12-16 16:24:38 +01:00
Frédéric Péters bd6dbe50fd misc: get reverse{_lazy} from new django.urls module (#36331) 2019-12-11 09:45:02 +01:00
Frédéric Péters 5be7a36833 api: only use event slug in URLs when it is set (#38081) 2019-11-29 13:41:39 +01:00
Lauréline Guérin 35dcc849df
api: return places info on fillslot api for an event agenda (#35297) 2019-11-19 16:31:56 +01:00
Lauréline Guérin 3bf36a1617
api: return err_desc & reason in case of error (#24025) 2019-11-07 17:01:01 +01:00
Lauréline Guérin 90dfb10afa
api: get event status and fillslot with event pk or slug (#15726) 2019-11-06 18:25:25 +01:00
Frédéric Péters a0da57e0f3 misc: add a description field to events (#36169) 2019-09-17 08:50:05 +02:00
Benjamin Dauvergne 61e0c590b8 api: returns 400 on invalid fillslot's event_pk (#35451) 2019-08-20 19:32:01 +02:00
Thomas NOËL af3b8ffc44 api: allow empty cancel_booking_id (#33783) 2019-06-11 12:10:07 +02:00
Emmanuel Cazenave ab9ff7adf1 api: cancel a booking when making a new one (#33489) 2019-05-29 16:09:56 +02:00
Frédéric Péters c3373ae379 api: format dates in fillslot response (#33151) 2019-05-17 09:34:28 +02:00
Serghei Mihai 0cfa22dbc0 agendas: add new booking's label attribute for user presentation purposes (#25820)
Use the new label in ICS summary
2019-03-21 12:02:04 +01:00
Frédéric Péters 3cc8e5d690 misc: remove comments with old attribute value (#31421) 2019-03-17 15:17:28 +01:00
Frédéric Péters cd36887df6 api: return an error when number of requested places is <= 0 (#31047) 2019-03-06 11:11:02 +01:00
Frédéric Péters b3a284d825 api: include delays in agenda API (#29847) 2019-02-07 11:25:11 +01:00
Frédéric Péters ac9705a167 api: fix max size of booking label (#29402) 2019-01-02 17:11:31 +01:00
Frédéric Péters 07e3e5180f api: add duration to meeting fillslot result (#27900) 2018-11-14 08:42:59 +01:00
Serghei Mihai 0f34cd204c api: expose meeting type duration (#25410) 2018-07-23 09:47:05 +02:00
Serghei Mihai 0ce55339a7 api: add booking ics view (#22930) 2018-07-19 10:39:17 +02:00
Frédéric Péters e1536441af remove unused imports 2018-07-01 13:18:48 +02:00
Thomas NOËL ae54f6960f api: add endpoint to fill a list of slots (#16238) 2018-05-31 14:11:10 +02:00
Frédéric Péters f4203d05f3 general: add support for Python 3 (#23678) 2018-05-13 15:19:14 +02:00
Thomas NOËL 87f8cbff15 api: use rest_framework serializers (#22979) 2018-04-04 16:07:00 +02:00
Frédéric Péters 385670124f api: create real Event object after slot has been checked (#22971) 2018-04-04 10:51:54 +02:00
Frédéric Péters 1c73fa736c doc: comment fake_event usage in meeting datetimes API 2018-04-04 10:51:54 +02:00
Josue Kouka a20bfdb254 api: add shortcut for event status url (#22125) 2018-03-06 17:13:20 +01:00
Frédéric Péters 51bd5c752d api: check time periods have enough time for a single meeting (#21463) 2018-01-29 16:28:32 +01:00
Frédéric Péters b8b130e4f7 misc: always use timezone-aware datetimes (#20926) 2018-01-09 19:49:28 +01:00
Benjamin Dauvergne 6d4afedc47 api: replace intervaltree by chrono.interval (#20732) 2017-12-30 08:56:02 +01:00
Frédéric Péters 8069c20c74 api: include meeting end datetime in fillslot API response (#20556) 2017-12-11 11:20:53 +01:00
Frédéric Péters 1111695dd5 api: correctly remove all timeslots overlapped by exceptions (#20386) 2017-12-04 14:23:18 +01:00
Frédéric Péters a51fb45aa4 general: add label/user_name/backoffice_url metadata on bookings (#20280) 2017-12-02 19:01:14 +01:00
Frédéric Péters 20aa74b697 api: don't return agenda internal identifiers (#19266) 2017-10-30 14:38:49 +01:00
Frédéric Péters 6ead030aed api: add dedicated error handling for invalid place count value (#19552) 2017-10-19 14:08:40 +02:00
Josue Kouka fc1bdf3391 api: add desk info in booking response (#18973) 2017-10-12 08:56:45 +02:00
Frédéric Péters 169cc6a0ab api: add new API to get list of desks (#19069) 2017-10-12 08:51:49 +02:00
Josue Kouka 74516b5300 fix: exclude slot one exception at a time (#19009) 2017-09-27 15:50:54 +02:00
Josue Kouka 9d7738929c add time period exception management (#12550) 2017-09-26 10:16:58 +02:00
Frédéric Péters b721160128 fix next day but less than 24h delta booking (#18495) 2017-09-08 17:18:36 +02:00
Josue Kouka f851de07df add multiple desk management (#15729) 2017-09-04 11:00:01 +02:00
Frédéric Péters f7db30cfcc api: optimize fillslot endpoint calculation in meetings/datetimes API (#17954) 2017-08-10 11:28:57 +02:00
Frédéric Péters b3f6f63853 api: include full meeting timeslot as disabled values (#17953) 2017-08-10 09:47:22 +02:00
Josue Kouka 2ebb54d63c api datetimes: add date range filter (#16193) 2017-07-21 17:00:50 +02:00
Frédéric Péters 471d8db694 api: only look in waiting list if there's not enough place in event (#17514) 2017-07-11 13:40:13 +02:00
Josue Kouka 28028b681d api: add API to retrieve agenda detail (#17188) 2017-06-26 17:50:57 +02:00
Frédéric Péters ffcda3904a general: add possibility to book multiple places at once (#15218) 2017-06-23 12:59:13 +02:00
Frédéric Péters 2907e4bb90 api: include full URL in cancel_url and accept_url attributes (#17145) 2017-06-23 12:58:23 +02:00
Frédéric Péters 678b297adf api: include meeting types endpoints in /agenda/ API (#16448) 2017-06-11 10:09:10 +02:00
Frédéric Péters d46adc81c0 api: do not crash on unknown agenda (with integer identifier) (#15066) 2017-06-11 09:49:07 +02:00
Frédéric Péters 7abcd52464 api: change http status code on wrong agenda kind error (#16813) 2017-06-11 09:48:48 +02:00
Frédéric Péters 998b6575f8 api: add endpoint to get list of meeting types (#13360) 2017-06-11 09:48:48 +02:00
Frédéric Péters 63ffddd5fb api: fix datetimes API on UTC/local timezone/hour borders (#16348) 2017-05-23 14:50:16 +02:00
Frédéric Péters 7a0d7e5557 api: make datetimes return datetimes in localtime (#16194) 2017-05-06 13:04:42 +02:00
Frédéric Péters c5d7c3da9d api: change agendas API to have datetimes URL in a datetimes_url key (#16213) 2017-05-06 13:04:42 +02:00
Frédéric Péters 2e0f219a66 api: include accept/cancel URLs in booking response (#16126) 2017-05-06 10:03:46 +02:00
Frédéric Péters 59f03a9fbe api: include fillslot API URLs in datetimes response (#16125) 2017-05-06 10:03:46 +02:00
Frédéric Péters 5ad7c3ee62 api: include datetime in fillslot return value (#16031) 2017-05-06 10:03:46 +02:00
Frédéric Péters e5d44b42df api: include iso formatted datetime in datetime APIs (#14514) 2017-01-20 10:50:07 +01:00
Frédéric Péters 51bbc55b7f general: don't allow booking past the event date (#14513) 2017-01-20 10:39:47 +01:00
Frédéric Péters f4a7564058 api: open up agendas and datetimes API endpoints (#14604) 2017-01-13 14:59:10 +01:00
Frédéric Péters 3b82689ba8 tests: add more api error checks 2016-10-29 20:39:52 +02:00
Frédéric Péters c33754433f api: update meeting types API to be based on slugs (#13792) 2016-10-29 15:14:50 +02:00
Frédéric Péters a233f39dd1 api: update datetimes/fillslot API to get agenda by slug (#13792) 2016-10-29 15:14:49 +02:00
Frédéric Péters 948bb3d003 api: include full events in /datetimes/ API, with a disabled attribute (#13037) 2016-10-09 11:38:56 +02:00
Frédéric Péters afedcf933f api: rely on model default ordering when presenting list of events 2016-09-13 19:12:28 +02:00
Frédéric Péters 71b7130445 add minimal/maximal booking delays (#12673) 2016-09-11 19:16:15 +02:00
Frédéric Péters b26f51e36c add support for "meetings" agendas (#13139) 2016-09-11 11:31:29 +02:00
Frédéric Péters 2da78fd12a api: return a 404 on /status/ for non-existing booking id 2016-07-22 13:45:53 +02:00