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