1 # Create your views here.
5 from django import forms
6 from django.views.decorators.csrf import csrf_exempt
7 from django.core import urlresolvers
8 from django.contrib.auth.decorators import login_required
9 from django.http import HttpResponseRedirect, HttpResponseForbidden, HttpResponse
10 from django.shortcuts import get_object_or_404, render_to_response
11 from django.core.context_processors import request
12 from django.template.context import RequestContext
13 from django.template.loader import get_template
14 from django.utils import simplejson
15 from django.core.urlresolvers import reverse
16 from django.contrib import messages
17 from flowspy.accounts.models import *
19 from django.forms.models import model_to_dict
21 from flowspy.flowspec.forms import *
22 from flowspy.flowspec.models import *
24 from copy import deepcopy
26 def days_offset(): return datetime.now() + timedelta(days = settings.EXPIRATION_DAYS_OFFSET)
29 def user_routes(request):
30 if request.user.is_anonymous():
31 return HttpResponseRedirect(reverse('login'))
32 user_routes = Route.objects.filter(applier=request.user)
33 return render_to_response('user_routes.html', {'routes': user_routes},
34 context_instance=RequestContext(request))
37 def group_routes(request):
38 if request.user.is_anonymous():
39 return HttpResponseRedirect(reverse('login'))
40 peer = request.user.get_profile().peer
42 peer_members = UserProfile.objects.filter(peer=peer)
43 users = [prof.user for prof in peer_members]
44 group_routes = Route.objects.filter(applier__in=users)
45 return render_to_response('user_routes.html', {'routes': group_routes},
46 context_instance=RequestContext(request))
50 def add_route(request):
51 if request.method == "GET":
53 return render_to_response('apply.html', {'form': form},
54 context_instance=RequestContext(request))
57 form = RouteForm(request.POST)
59 route=form.save(commit=False)
60 route.applier = request.user
61 route.expires = days_offset()
65 return HttpResponseRedirect(urlresolvers.reverse("user-routes"))
67 return render_to_response('apply.html', {'form': form},
68 context_instance=RequestContext(request))
70 def edit_route(request, route_slug):
71 route_edit = get_object_or_404(Route, name=route_slug)
72 route_original = deepcopy(route_edit)
74 form = RouteForm(request.POST, instance = route_edit)
76 route=form.save(commit=False)
77 route.name = route_original.name
78 route.applier = route_original.applier
79 route.expires = route_original.expires
80 route.is_active = route_original.is_active
84 return HttpResponseRedirect(urlresolvers.reverse("user-routes"))
86 return render_to_response('apply.html', {'form': form, 'edit':True},
87 context_instance=RequestContext(request))
89 dictionary = model_to_dict(route_edit, fields=[], exclude=[])
90 form = RouteForm(dictionary)
91 return render_to_response('apply.html', {'form': form, 'edit':True},
92 context_instance=RequestContext(request))
95 def delete_route(request, route_slug):
97 route = get_object_or_404(Route, name=route_slug)
98 if route.applier == request.user:
100 route.commit_delete()
101 return HttpResponseRedirect(urlresolvers.reverse("user-routes"))