server/python/django/renkanmanager/views.py
changeset 318 815589aed866
child 319 91245f09c7a7
equal deleted inserted replaced
317:2b30c5426f1e 318:815589aed866
       
     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