annotate gcalendar/views.py @ 645:99f7917702ca

Fix 081a88b3bfc8, javascript resize of forum images. Commit 081a88b3bfc8 broke those pages that loaded forums.js but did not load the imagesLoaded jQuery extension. Now we have arranged it so that only the forums topic view loads imagesLoaded and put the resizing javascript inline.
author Brian Neal <bgneal@gmail.com>
date Mon, 11 Mar 2013 15:30:25 -0500
parents ee87ea74d46b
children 9e803323a0d0
rev   line source
gremmie@1 1 """
gremmie@1 2 Views for the gcalendar application.
gremmie@1 3 """
gremmie@1 4
gremmie@1 5 from django.contrib.auth.decorators import login_required
gremmie@1 6 from django.core.urlresolvers import reverse
gremmie@1 7 from django.http import HttpResponse
gremmie@1 8 from django.http import HttpResponseBadRequest
gremmie@1 9 from django.http import HttpResponseForbidden
gremmie@1 10 from django.http import HttpResponseRedirect
gremmie@1 11 from django.http import Http404
gremmie@1 12 from django.shortcuts import render_to_response
gremmie@1 13 from django.shortcuts import get_object_or_404
gremmie@1 14 from django.template import RequestContext
gremmie@1 15
gremmie@1 16 from gcalendar.forms import EventEntryForm
gremmie@1 17 from gcalendar.models import Event
gremmie@1 18
gremmie@1 19
gremmie@1 20 def index(request):
bgneal@345 21 user = request.user
bgneal@345 22 if user.is_authenticated():
bgneal@345 23 profile = user.get_profile()
bgneal@345 24 tz = profile.time_zone
bgneal@345 25 else:
bgneal@345 26 tz = 'US/Pacific'
bgneal@345 27
gremmie@1 28 return render_to_response('gcalendar/index.html', {
bgneal@345 29 'tz': tz,
gremmie@1 30 },
gremmie@1 31 context_instance = RequestContext(request))
gremmie@1 32
gremmie@1 33
gremmie@1 34 @login_required
gremmie@1 35 def add_event(request):
gremmie@1 36 if request.method == 'POST':
gremmie@1 37 form = EventEntryForm(request.POST)
gremmie@1 38 if form.is_valid():
gremmie@1 39 event = form.save(commit=False)
gremmie@1 40 event.user = request.user
gremmie@1 41 event.repeat = 'none'
gremmie@1 42 event.save()
gremmie@1 43 return HttpResponseRedirect(reverse('gcalendar-add_thanks'))
gremmie@1 44 else:
gremmie@1 45 form = EventEntryForm()
gremmie@1 46
gremmie@1 47 return render_to_response('gcalendar/event.html', {
gremmie@1 48 'title': 'Add Calendar Event',
gremmie@1 49 'form': form,
gremmie@1 50 },
gremmie@1 51 context_instance = RequestContext(request))
gremmie@1 52
gremmie@1 53
gremmie@1 54 @login_required
gremmie@1 55 def add_thanks(request):
gremmie@1 56 return render_to_response('gcalendar/thanks_add.html', {
gremmie@1 57 },
gremmie@1 58 context_instance = RequestContext(request))
gremmie@1 59
gremmie@1 60
gremmie@1 61 @login_required
gremmie@1 62 def edit_events(request):
gremmie@1 63 events = Event.objects.filter(user=request.user, status=Event.ON_CAL).order_by('start_date')
gremmie@1 64 return render_to_response('gcalendar/edit.html', {
gremmie@1 65 'events': events,
gremmie@1 66 },
gremmie@1 67 context_instance = RequestContext(request))
gremmie@1 68
gremmie@1 69
gremmie@1 70 @login_required
gremmie@1 71 def edit_event(request, event_id):
gremmie@1 72 event = get_object_or_404(Event, pk=event_id)
gremmie@1 73 if event.user != request.user:
gremmie@1 74 raise Http404
gremmie@1 75
gremmie@1 76 if request.method == 'POST':
gremmie@1 77 form = EventEntryForm(request.POST, instance=event)
gremmie@1 78 if form.is_valid():
gremmie@1 79 event = form.save(commit=False)
gremmie@1 80 event.user = request.user
gremmie@1 81 event.repeat = 'none'
gremmie@1 82 event.status = Event.EDIT_REQ
gremmie@1 83 event.save()
gremmie@1 84 return HttpResponseRedirect(reverse('gcalendar-edit_thanks'))
gremmie@1 85 else:
gremmie@1 86 form = EventEntryForm(instance=event)
gremmie@1 87
gremmie@1 88 return render_to_response('gcalendar/event.html', {
gremmie@1 89 'title': 'Change Calendar Event',
gremmie@1 90 'form': form,
gremmie@1 91 },
gremmie@1 92 context_instance = RequestContext(request))
gremmie@1 93
gremmie@1 94
gremmie@1 95 @login_required
gremmie@1 96 def edit_thanks(request):
gremmie@1 97 return render_to_response('gcalendar/thanks_edit.html', {
gremmie@1 98 },
gremmie@1 99 context_instance = RequestContext(request))
gremmie@1 100
gremmie@1 101
gremmie@1 102 def delete_event(request):
gremmie@1 103 """This view marks an event for deletion. It is called via AJAX."""
gremmie@1 104 if request.user.is_authenticated():
gremmie@1 105 id = request.POST.get('id', None)
gremmie@1 106 if id is None or not id.isdigit():
gremmie@1 107 return HttpResponseBadRequest()
gremmie@1 108 try:
gremmie@1 109 event = Event.objects.get(pk=id)
gremmie@1 110 except Event.DoesNotExist:
gremmie@1 111 return HttpResponseBadRequest()
gremmie@1 112 if request.user != event.user:
gremmie@1 113 return HttpResponseForbidden()
gremmie@1 114
gremmie@1 115 event.status = Event.DEL_REQ
gremmie@1 116 event.save()
gremmie@1 117 return HttpResponse(id)
gremmie@1 118
gremmie@1 119 return HttpResponseForbidden()
gremmie@1 120
gremmie@1 121
gremmie@1 122 # vim: ts=4 sw=4