root / flowspec / views.py @ 6ee21ffd
History | View | Annotate | Download (3.9 kB)
1 |
# Create your views here.
|
---|---|
2 |
import urllib2 |
3 |
import re |
4 |
import socket |
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 * |
18 |
|
19 |
from django.forms.models import model_to_dict |
20 |
|
21 |
from flowspy.flowspec.forms import * |
22 |
from flowspy.flowspec.models import * |
23 |
|
24 |
from copy import deepcopy |
25 |
|
26 |
def days_offset(): return datetime.now() + timedelta(days = settings.EXPIRATION_DAYS_OFFSET) |
27 |
|
28 |
@login_required
|
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)) |
35 |
|
36 |
@login_required
|
37 |
def group_routes(request): |
38 |
if request.user.is_anonymous():
|
39 |
return HttpResponseRedirect(reverse('login')) |
40 |
peer = request.user.get_profile().peer |
41 |
if 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)) |
47 |
|
48 |
|
49 |
@login_required
|
50 |
def add_route(request): |
51 |
if request.method == "GET": |
52 |
form = RouteForm() |
53 |
return render_to_response('apply.html', {'form': form}, |
54 |
context_instance=RequestContext(request)) |
55 |
|
56 |
else:
|
57 |
form = RouteForm(request.POST) |
58 |
if form.is_valid():
|
59 |
route=form.save(commit=False)
|
60 |
route.applier = request.user |
61 |
route.expires = days_offset() |
62 |
route.save() |
63 |
form.save_m2m() |
64 |
route.commit_add() |
65 |
return HttpResponseRedirect(urlresolvers.reverse("user-routes")) |
66 |
else:
|
67 |
return render_to_response('apply.html', {'form': form}, |
68 |
context_instance=RequestContext(request)) |
69 |
@login_required
|
70 |
def edit_route(request, route_slug): |
71 |
route_edit = get_object_or_404(Route, name=route_slug) |
72 |
route_original = deepcopy(route_edit) |
73 |
if request.POST:
|
74 |
form = RouteForm(request.POST, instance = route_edit) |
75 |
if form.is_valid():
|
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 |
81 |
route.save() |
82 |
form.save_m2m() |
83 |
route.commit_edit() |
84 |
return HttpResponseRedirect(urlresolvers.reverse("user-routes")) |
85 |
else:
|
86 |
return render_to_response('apply.html', {'form': form, 'edit':True}, |
87 |
context_instance=RequestContext(request)) |
88 |
else:
|
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)) |
93 |
|
94 |
@login_required
|
95 |
def delete_route(request, route_slug): |
96 |
if request.is_ajax():
|
97 |
route = get_object_or_404(Route, name=route_slug) |
98 |
if route.applier == request.user:
|
99 |
route.deactivate() |
100 |
route.commit_delete() |
101 |
return HttpResponseRedirect(urlresolvers.reverse("user-routes")) |