Skip to content

Commit ce62ff0

Browse files
shreyanshdwivediiamareebjamal
authored andcommitted
fix: updates validate_date check for publishing draft event (#6246)
1 parent 770d204 commit ce62ff0

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

app/api/events.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -107,8 +107,13 @@ def validate_date(event, data):
107107
"ends-at should be after starts-at")
108108

109109
if datetime.timestamp(data['starts_at']) <= datetime.timestamp(datetime.now()):
110-
raise UnprocessableEntity({'pointer': '/data/attributes/starts-at'},
111-
"starts-at should be after current date-time")
110+
if event and event.deleted_at and not data.get('deleted_at'):
111+
data['state'] = 'draft'
112+
elif event and not event.deleted_at and data.get('deleted_at'):
113+
pass
114+
else:
115+
raise UnprocessableEntity({'pointer': '/data/attributes/starts-at'},
116+
"starts-at should be after current date-time")
112117

113118
class EventList(ResourceList):
114119
def before_get(self, args, kwargs):
@@ -233,7 +238,8 @@ def before_post(self, args, kwargs, data=None):
233238
user = User.query.filter_by(id=kwargs['user_id']).first()
234239
modules = Module.query.first()
235240
validate_event(user, modules, data)
236-
validate_date(None, data)
241+
if data['state'] != 'draft':
242+
validate_date(None, data)
237243

238244
def after_create_object(self, event, data, view_kwargs):
239245
"""
@@ -550,7 +556,11 @@ def before_update_object(self, event, data, view_kwargs):
550556
:param view_kwargs:
551557
:return:
552558
"""
553-
if data.get('starts_at') != event.starts_at or data.get('ends_at') != event.ends_at:
559+
is_date_updated = (data.get('starts_at') != event.starts_at or data.get('ends_at') != event.ends_at)
560+
is_draft_published = (event.state == "draft" and data.get('state') == "published")
561+
is_event_restored = (event.deleted_at and not data.get('deleted_at'))
562+
563+
if is_date_updated or is_draft_published or is_event_restored:
554564
validate_date(event, data)
555565

556566
if has_access('is_admin') and data.get('deleted_at') != event.deleted_at:

0 commit comments

Comments
 (0)