Skip to content

Commit

Permalink
Excluded deleted events from multiple views
Browse files Browse the repository at this point in the history
Do not allow to update/delete deleted Event
Raise 404 when trying to access ical of deleted event
Raise 405 Method Not Allowed for non POST requests to delete event view
  • Loading branch information
kelvan committed Aug 28, 2015
1 parent d412ca5 commit 2924fa3
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 7 deletions.
1 change: 1 addition & 0 deletions cal/models.py
Expand Up @@ -122,6 +122,7 @@ def start_end_date_eq(self):

def delete(self):
self.deleted = True
self.save()

def get_icalendar_event(self):
domain = Site.objects.get_current().domain
Expand Down
13 changes: 6 additions & 7 deletions cal/views.py
Expand Up @@ -9,7 +9,7 @@
from django.contrib.auth.decorators import login_required
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from django.http import HttpResponse
from django.http import HttpResponse, HttpResponseNotAllowed
from django.core.exceptions import ObjectDoesNotExist
from django.views.generic import ListView
from django.utils.html import conditional_escape as esc
Expand Down Expand Up @@ -128,21 +128,20 @@ def display_special_events(request, typ, name):

@login_required
def delete_event(request, object_id=None):
if not request.method == 'POST' or not request.user.is_authenticated():
return
if not request.method == 'POST':
return HttpResponseNotAllowed(['POST'])

event = get_object_or_404(Event, id=object_id)
event = get_object_or_404(Event.all, id=object_id)

event.delete()
event.save()

return HttpResponse()


@login_required
def update_event(request, new, object_id=None):
if not new:
event = get_object_or_404(Event, id=object_id)
event = get_object_or_404(Event.all, id=object_id)
else:
event = Event()

Expand Down Expand Up @@ -185,7 +184,7 @@ def event_list(request, number=0):


def event_icalendar(request, object_id):
event = get_object_or_404(Event, pk=object_id)
event = get_object_or_404(Event.all, pk=object_id)

response = HttpResponse(event.get_icalendar().to_ical(),
content_type='text/calendar; charset=utf-8')
Expand Down

0 comments on commit 2924fa3

Please sign in to comment.