def ajax_edit_event(request, calendar_slug): try: id = request.REQUEST.get( 'id') # we got occurrence's encoded id or event id if id: kwargs = decode_occurrence(id) if kwargs: event_id = kwargs['event_id'] else: event_id = id event = Event.objects.get(pk=event_id) # deleting an event if request.REQUEST.get('action') == 'cancel': # cancellation of a non-recurring event means deleting the event event.delete() # there is nothing more - we return empty json return HttpResponse(serialize_occurrences([], request.user)) else: form = EventBackendForm(data=request.POST, instance=event) if form.is_valid(): event = form.save() return HttpResponse( serialize_occurrences( event.get_occurrences(event.start, event.end), request.user)) return JSONError(form.errors) else: calendar = get_object_or_404(Calendar, slug=calendar_slug) # creation of an event form = EventBackendForm(data=request.POST) if form.is_valid(): event = form.save(commit=False) event.creator = request.user event.calendar = calendar event.save() return HttpResponse( serialize_occurrences( event.get_occurrences(event.start, event.end), request.user)) return JSONError(form.errors) except Exception as e: # import traceback # traceback.print_exc() return JSONError(e)
def ajax_edit_occurrence_by_code(request): try: id = request.REQUEST.get('id') kwargs = decode_occurrence(id) event_id = kwargs.pop('event_id') event, occurrence = get_occurrence(event_id, **kwargs) if request.REQUEST.get('action') == 'cancel': occurrence.cancel() return HttpResponse(serialize_occurrences([occurrence], request.user)) form = OccurrenceBackendForm(data=request.POST or None, instance=occurrence) if form.is_valid(): occurrence = form.save(commit=False) occurrence.event = event occurrence.save() return HttpResponse(serialize_occurrences([occurrence], request.user)) return JSONError(form.errors) except Exception, e: import traceback traceback.print_exc() return JSONError(e)
def ajax_edit_event(request, calendar_slug): print request.POST try: id = request.REQUEST.get('id') # we got occurrence's encoded id or event id if id: kwargs = decode_occurrence(id) if kwargs: event_id = kwargs['event_id'] else: event_id = id event = Event.objects.get(pk=event_id) # deleting an event if request.REQUEST.get('action') == 'cancel': # cancellation of a non-recurring event means deleting the event event.delete() # there is nothing more - we return empty json return HttpResponse(serialize_occurrences([], request.user)) else: form = EventBackendForm(data=request.POST, instance=event) if form.is_valid(): event = form.save() return HttpResponse(serialize_occurrences(event.get_occurrences(event.start, event.end), request.user)) return JSONError(form.errors) else: calendar = get_object_or_404(Calendar, slug=calendar_slug) # creation of an event form = EventBackendForm(data=request.POST) if form.is_valid(): event = form.save(commit=False) event.creator = request.user event.calendar = calendar event.save() return HttpResponse(serialize_occurrences(event.get_occurrences(event.start, event.end), request.user)) return JSONError(form.errors) except Exception, e: import traceback traceback.print_exc() return JSONError(e)
def ajax_edit_occurrence_by_code(request): try: id = request.REQUEST.get('id') kwargs = decode_occurrence(id) event_id = kwargs.pop('event_id') event, occurrence = get_occurrence(event_id, **kwargs) if request.REQUEST.get('action') == 'cancel': occurrence.cancel() return HttpResponse( serialize_occurrences([occurrence], request.user)) form = OccurrenceBackendForm(data=request.POST or None, instance=occurrence) if form.is_valid(): occurrence = form.save(commit=False) occurrence.event = event occurrence.save() return HttpResponse( serialize_occurrences([occurrence], request.user)) return JSONError(form.errors) except Exception as e: # import traceback # traceback.print_exc() return JSONError(e)
def calendar_by_periods_json(request, calendar_slug, periods): # XXX is this function name good? # it conforms with the standard API structure but in this case it is rather cryptic user = request.user calendar = get_object_or_404(Calendar, slug=calendar_slug) date = coerce_date_dict(request.GET) if date: try: date = datetime.datetime(**date) except ValueError: raise Http404 else: date = datetime.datetime.now() event_list = GET_EVENTS_FUNC(request, calendar) period_object = periods[0](event_list, date) occurrences = [] for o in period_object.occurrences: if period_object.classify_occurrence(o): occurrences.append(o) resp = serialize_occurrences(occurrences, user) return HttpResponse(resp)