Skip to content

Commit 380cb99

Browse files
fix: updates validate_date check for publishing draft event
fixes hound issues
1 parent 30cc028 commit 380cb99

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

app/api/events.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,13 @@ def validate_date(event, data):
105105
"ends-at should be after starts-at")
106106

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

111116
class EventList(ResourceList):
112117
def before_get(self, args, kwargs):
@@ -175,7 +180,8 @@ def before_post(self, args, kwargs, data=None):
175180
user = User.query.filter_by(id=kwargs['user_id']).first()
176181
modules = Module.query.first()
177182
validate_event(user, modules, data)
178-
validate_date(None, data)
183+
if data['state'] != 'draft':
184+
validate_date(None, data)
179185

180186
def after_create_object(self, event, data, view_kwargs):
181187
"""
@@ -492,8 +498,15 @@ def before_update_object(self, event, data, view_kwargs):
492498
:param view_kwargs:
493499
:return:
494500
"""
501+
# call validate_date if either event start_at or end_at is updated
495502
if data.get('starts_at') != event.starts_at or data.get('ends_at') != event.ends_at:
496503
validate_date(event, data)
504+
# call validate_date if drafted event is being published
505+
elif event.state == "draft" and data.get('state') == "published":
506+
validate_date(event, data)
507+
# call validate_date if event is being restored
508+
elif event.deleted_at and not data.get('deleted_at'):
509+
validate_date(event, data)
497510

498511
if has_access('is_admin') and data.get('deleted_at') != event.deleted_at:
499512
if len(event.orders) != 0:

0 commit comments

Comments
 (0)