def __create_or_update_event_with_location (form, user, event): "Creates or updates an Event from the submitted EventForm. If the given Event is None a new Event is created." if event == None: event = Event() event.title=form.cleaned_data['title'] event.set_date_time_begin_cet(form.cleaned_data['date_time_begin']) event.set_date_time_end_cet(form.cleaned_data['date_time_end']) event.url=form.cleaned_data['url'] event.description=form.cleaned_data['description'] event.location=form.cleaned_data['location'] event.tags=form.cleaned_data['tags'] if event.location == None: location = __create_location(form) event.location=location # Only when a new event is created if event.id == None: # auto-publish for staff users event.published = user.is_staff # link event to user if user.is_authenticated(): event.user=user # Compute and store the archived flag event.update_archived_flag() event.save() return event