server/python/django/renkanmanager/views.py
author ymh <ymh.work@gmail.com>
Thu, 21 Apr 2016 16:17:50 +0200
changeset 606 e7e699f3cf97
parent 320 154b121a43f1
permissions -rw-r--r--
update version nb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
318
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     1
# -*- coding: utf-8 -*-
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     2
'''
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     3
Created on Jul 01, 2014
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     4
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     5
@author: tc
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     6
'''
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     7
from datetime import datetime
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     8
from django.core.urlresolvers import reverse
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
     9
from django.http.response import HttpResponse, HttpResponseBadRequest
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    10
from django.shortcuts import get_object_or_404, redirect
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    11
from django.views.decorators.csrf import csrf_exempt
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    12
from django.views.generic import View
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    13
from renkanmanager.models import Renkan
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    14
from renkanmanager.utils import LineNodePlacer, renkan_copier, renkan_deleter
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    15
import uuid
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    16
import json
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    17
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    18
import logging
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    19
logger = logging.getLogger(__name__)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    20
            
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    21
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    22
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    23
class RenkanGetPut(View):
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    24
    
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    25
    @csrf_exempt
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    26
    def dispatch(self, *args, **kwargs):
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    27
        return super(RenkanGetPut, self).dispatch(*args, **kwargs)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    28
    
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    29
    def get(self, request):
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    30
        
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    31
        # If a renkan id is set
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    32
        rk_id = request.GET.get("rk_id", "")
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    33
        if rk_id!="":
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    34
            rk = get_object_or_404(Renkan, rk_id=rk_id)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    35
            return HttpResponse(rk.content, content_type="application/json")
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    36
        
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    37
        return HttpResponseBadRequest("An error occurred while getting renkan.")
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    38
    
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    39
    
320
154b121a43f1 enhance save on click (snapshot mode) and update django app
cavaliet
parents: 319
diff changeset
    40
    def post(self, request):
318
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    41
        
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    42
        rk_id = request.GET.get("rk_id", "")
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    43
        #data = json.loads(request.body)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    44
        #logger.debug(data["edges"])
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    45
        #logger.debug(data["nodes"])
319
91245f09c7a7 little correction
cavaliet
parents: 318
diff changeset
    46
        #logger.debug(request.user.is_authenticated())
91245f09c7a7 little correction
cavaliet
parents: 318
diff changeset
    47
        #logger.debug(request.user.is_anonymous())
318
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    48
        if rk_id!="":
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    49
            rk = get_object_or_404(Renkan, rk_id=rk_id)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    50
            if rk.owner!=request.user:
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    51
                return HttpResponseBadRequest("You are not allowed to edit this renkan")
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    52
            rk.content = request.body
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    53
            data = json.loads(request.body)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    54
            if "title" in data:
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    55
                rk.title = data["title"]
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    56
            rk.save()
319
91245f09c7a7 little correction
cavaliet
parents: 318
diff changeset
    57
            return HttpResponse("SAVED")
318
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    58
            
319
91245f09c7a7 little correction
cavaliet
parents: 318
diff changeset
    59
        return HttpResponse("NOT SAVED")
318
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    60
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    61
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    62
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    63
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    64
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    65
class RenkanCopy(View):
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    66
    
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    67
    def get(self, request, rk_id):
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    68
        renkan_copier(request.user, rk_id)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    69
        if "next" in request.GET:
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    70
            return redirect(request.GET["next"])
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    71
        return redirect(reverse('home'))
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    72
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    73
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    74
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    75
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    76
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    77
class RenkanDelete(View):
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    78
    
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    79
    def get(self, request, rk_id):
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    80
        renkan_deleter(request.user, rk_id)
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    81
        if "next" in request.GET:
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    82
            return redirect(request.GET["next"])
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    83
        return redirect(reverse('home'))
815589aed866 django app renkamanager (models, vanilla views, utils, static files)
cavaliet
parents:
diff changeset
    84