def edit_event(request, slug=None, clone=None): """Edit event view.""" event, created = get_or_create_instance(Event, slug=slug) if created: event.owner = request.user else: # This is for backwards compatibility for all the events # that were set before the change in the minutes section # of the drop down widget to multiples of 5. # Start time: Floor rounding # End time: Ceilling rounding event.start -= timedelta(minutes=event.start.minute % 5) if (event.end.minute % 5) != 0: event.end += timedelta(minutes=(5 - (event.end.minute % 5))) initial = {'country': request.user.userprofile.country, 'city': request.user.userprofile.city, 'region': request.user.userprofile.region} if request.user.groups.filter(name='Admin').count(): event_form = forms.EventForm(request.POST or None, editable_owner=True, instance=event, initial=initial) else: event_form = forms.EventForm(request.POST or None, editable_owner=False, instance=event, initial=initial) metrics_formset = forms.EventMetricsFormset(request.POST or None, instance=event) if (event_form.is_valid() and metrics_formset.is_valid() and request.POST): event_form.save(clone=clone) metrics_formset.save(clone=clone) if created: messages.success(request, 'Event successfully created.') else: messages.success(request, 'Event successfully updated.') return redirect('events_view_event', slug=event_form.instance.slug) can_delete_event = False if (not created and (event.owner == request.user or request.user.has_perm('events.can_delete_events'))): can_delete_event = True selected_categories = map(int, event_form['categories'].value()) return render(request, 'edit_event.html', {'creating': created, 'event': event, 'event_form': event_form, 'selected_categories': selected_categories, 'metrics_formset': metrics_formset, 'can_delete_event': can_delete_event})
def edit_event(request, slug=None): """Edit event view.""" event, created = get_or_create_instance(Event, slug=slug) if created: event.owner = request.user if request.user.groups.filter(name='Admin').count(): event_form = forms.EventForm(request.POST or None, editable_owner=True, instance=event) else: event_form = forms.EventForm(request.POST or None, editable_owner=False, instance=event) metrics_formset = forms.EventMetricsFormset(request.POST or None, instance=event) if (event_form.is_valid() and metrics_formset.is_valid()): event_form.save() metrics_formset.save() if created: messages.success(request, 'Event successfully created.') else: messages.success(request, 'Event successfully updated.') return redirect('events_view_event', slug=event_form.instance.slug) can_delete_event = False if (not created and (event.owner == request.user or request.user.has_perm('events.can_delete_events'))): can_delete_event = True return render( request, 'edit_event.html', { 'creating': created, 'event': event, 'event_form': event_form, 'metrics_formset': metrics_formset, 'can_delete_event': can_delete_event })