|
1 # -*- coding: utf-8 -*- |
|
2 ''' |
|
3 Created on Jul 01, 2014 |
|
4 |
|
5 @author: tc |
|
6 ''' |
|
7 from datetime import datetime |
|
8 from django.core.urlresolvers import reverse |
|
9 from django.http.response import HttpResponse, HttpResponseBadRequest |
|
10 from django.shortcuts import get_object_or_404, redirect |
|
11 from django.views.decorators.csrf import csrf_exempt |
|
12 from django.views.generic import View |
|
13 from renkanmanager.models import Renkan |
|
14 from renkanmanager.utils import LineNodePlacer, renkan_copier, renkan_deleter |
|
15 import uuid |
|
16 import json |
|
17 |
|
18 import logging |
|
19 logger = logging.getLogger(__name__) |
|
20 |
|
21 |
|
22 |
|
23 class RenkanGetPut(View): |
|
24 |
|
25 @csrf_exempt |
|
26 def dispatch(self, *args, **kwargs): |
|
27 return super(RenkanGetPut, self).dispatch(*args, **kwargs) |
|
28 |
|
29 def get(self, request): |
|
30 |
|
31 # If a renkan id is set |
|
32 rk_id = request.GET.get("rk_id", "") |
|
33 if rk_id!="": |
|
34 rk = get_object_or_404(Renkan, rk_id=rk_id) |
|
35 return HttpResponse(rk.content, content_type="application/json") |
|
36 |
|
37 return HttpResponseBadRequest("An error occurred while getting renkan.") |
|
38 |
|
39 |
|
40 def put(self, request): |
|
41 |
|
42 rk_id = request.GET.get("rk_id", "") |
|
43 #data = json.loads(request.body) |
|
44 #logger.debug(data["edges"]) |
|
45 #logger.debug(data["nodes"]) |
|
46 if rk_id!="": |
|
47 rk = get_object_or_404(Renkan, rk_id=rk_id) |
|
48 if rk.owner!=request.user: |
|
49 return HttpResponseBadRequest("You are not allowed to edit this renkan") |
|
50 rk.content = request.body |
|
51 data = json.loads(request.body) |
|
52 if "title" in data: |
|
53 rk.title = data["title"] |
|
54 rk.save() |
|
55 |
|
56 return HttpResponse("OK") |
|
57 |
|
58 |
|
59 |
|
60 |
|
61 |
|
62 class RenkanCopy(View): |
|
63 |
|
64 def get(self, request, rk_id): |
|
65 renkan_copier(request.user, rk_id) |
|
66 if "next" in request.GET: |
|
67 return redirect(request.GET["next"]) |
|
68 return redirect(reverse('home')) |
|
69 |
|
70 |
|
71 |
|
72 |
|
73 |
|
74 class RenkanDelete(View): |
|
75 |
|
76 def get(self, request, rk_id): |
|
77 renkan_deleter(request.user, rk_id) |
|
78 if "next" in request.GET: |
|
79 return redirect(request.GET["next"]) |
|
80 return redirect(reverse('home')) |
|
81 |