fix(conferences): разрешить дату в прошлом для закреплённых конференций
Закреплённая конференция — постоянная комната-ссылка, а не разовое событие: прошедшая дата в scheduled_at для неё осмысленна (например, серия «каждый день с такого-то числа», уже наступившего). Запрет прошлого остаётся в силе только для обычных конференций.
This commit is contained in:
@@ -91,7 +91,17 @@ class ConferenceCreateIn(BaseModel):
|
||||
raise ValueError("closed_conference_requires_password")
|
||||
if self.recurrence is not None and not self.is_pinned:
|
||||
raise ValueError("recurrence_requires_pinned")
|
||||
if self.scheduled_at is not None and self.scheduled_at < datetime.now(UTC) - PAST_TOLERANCE:
|
||||
# Запрет прошлого — только для обычных (не закреплённых) конференций.
|
||||
# Закреплённая конференция — не разовое событие с конкретной датой, а
|
||||
# постоянная комната-ссылка (см. комментарий у `is_pinned` в
|
||||
# `models/conference.py`); `scheduled_at` для неё — не более чем
|
||||
# подсказка в календаре, и прошедшая дата (например, «встречаемся тут
|
||||
# каждый день с такого-то числа», уже наступившего) осмысленна.
|
||||
if (
|
||||
not self.is_pinned
|
||||
and self.scheduled_at is not None
|
||||
and self.scheduled_at < datetime.now(UTC) - PAST_TOLERANCE
|
||||
):
|
||||
raise ValueError("scheduled_at_in_the_past")
|
||||
return self
|
||||
|
||||
|
||||
Reference in New Issue
Block a user