Exemple #1
0
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