def save_event(user, data, form): is_new = (form.instance.pk is None) event = form.save() event.venue = venue_service.get_venue_from_request_data(event, data, user) if user.is_authenticated(): event.email = user.email if event.venue_account_owner \ and event.venue_account_owner.account.user != user \ and user.is_staff: # if event is created by admin, but venue account belongs to other user event.owner = event.venue_account_owner.account.user else: event.owner = user # add city name to tags if it's a new record if is_new and event.venue.city and not event.venue.city.name_std in [tag.name for tag in event.tags.all()]: event.tags.add(event.venue.city.name_std) event = event.save() event_occurrence_service.update_occurrences(data, event) event.eventattachment_set.all().delete() if data["attachments"]: attachments = data["attachments"].split(";") for attachment in attachments: EventAttachment.objects.get_or_create( event=event, attachment=attachment.replace(settings.MEDIA_URL, "") ) event.eventimage_set.all().delete() if data["images"]: images = json.loads(data["images"])["images"] for image in images: image_src, cropping, order = image["filepath"], image["cropping"], image["order"] EventImage.objects.get_or_create( event=event, picture=image_src.replace(settings.MEDIA_URL, ""), cropping=cropping, order=order ) return event
def save_event(user, data, form): event = form.save() event.venue = venue_service.get_venue_from_request_data(event, data) event_occurrence_service.update_occurrences(data, event) if user.is_authenticated(): event.owner = user event.email = user.email if data["picture_src"]: event.picture.name = data["picture_src"].replace(settings.MEDIA_URL, "") event = event.save() return event