# HG changeset patch # User cavaliet # Date 1405681051 -7200 # Node ID 0a742e5a25aa9b32b82e610c9b319f2efeb8b194 # Parent c69dfb9d410e5d8b9ebe1dcd09279a6ce3a500b7 save and load renkan to edit from profile page diff -r c69dfb9d410e -r 0a742e5a25aa src/hdalab/static/hdalab/js/profile.js diff -r c69dfb9d410e -r 0a742e5a25aa src/hdalab/templates/profile_home.html --- a/src/hdalab/templates/profile_home.html Thu Jul 17 16:47:29 2014 +0200 +++ b/src/hdalab/templates/profile_home.html Fri Jul 18 12:57:31 2014 +0200 @@ -12,6 +12,11 @@ {% endblock %} +{% block js_import %} +{{block.super}} + +{% endblock %} + {% block main_content %}

Votre profil

Vos renkans :

@@ -23,10 +28,10 @@ {{ r.modification_date|date:"Y-m-d H:i" }} {% thumbnail r.image 100x100 as thumb %} - + - - + + {% endfor %} diff -r c69dfb9d410e -r 0a742e5a25aa src/hdalab/urls.py --- a/src/hdalab/urls.py Thu Jul 17 16:47:29 2014 +0200 +++ b/src/hdalab/urls.py Fri Jul 18 12:57:31 2014 +0200 @@ -1,7 +1,8 @@ # -*- coding: utf-8 -*- from django.conf.urls import patterns, include, url from django.views.generic import TemplateView -from hdalab.views.renkan import RenkanGetPut, RenkanCopy +from hdalab.views.renkan import RenkanGetPut, RenkanCopy, RenkanDelete,\ + RenkanEdit from hdalab.views.profile import ProfileHome # Uncomment the next two lines to enable the admin: @@ -30,9 +31,10 @@ url(r'^notice/(?P[\w-]+)$', 'hdalab.views.pages.datasheet', name='notice'), - url(r'^renkan/edit/$', TemplateView.as_view(template_name="renkan_edit.html"), name='renkan_edit'), + url(r'^renkan/edit/$', RenkanEdit.as_view(), name='renkan_edit'), url(r'^renkan/getput/$', RenkanGetPut.as_view(), name='renkan_get_put'), url(r'^renkan/copy/(?P.*)$', RenkanCopy.as_view(), name='renkan_copy'), + url(r'^renkan/delete/(?P.*)$', RenkanDelete.as_view(), name='renkan_delete'), url(r'^profile/$', ProfileHome.as_view(), name='profile_home'), ) diff -r c69dfb9d410e -r 0a742e5a25aa src/hdalab/views/profile.py --- a/src/hdalab/views/profile.py Thu Jul 17 16:47:29 2014 +0200 +++ b/src/hdalab/views/profile.py Fri Jul 18 12:57:31 2014 +0200 @@ -8,6 +8,7 @@ from django.conf import settings from django.views.generic import TemplateView from hdalab.models.renkan import Renkan +import uuid import logging logger = logging.getLogger(__name__) @@ -20,8 +21,8 @@ def get_context_data(self, **kwargs): context = super(ProfileHome, self).get_context_data(**kwargs) -# now = datetime.utcnow().isoformat() -# +# now = datetime.utcnow().isoformat() + # rk = Renkan() # rk.rk_id = unicode(uuid.uuid1()) # rk.owner = self.request.user @@ -29,7 +30,7 @@ # rk.title = now # rk.save() - context['renkan_list'] = Renkan.objects.all().order_by("-modification_date") + context['renkan_list'] = Renkan.objects.filter(owner=self.request.user).order_by("-modification_date") #now = datetime.utcnow() #context['renkan_list'] = [ diff -r c69dfb9d410e -r 0a742e5a25aa src/hdalab/views/renkan.py --- a/src/hdalab/views/renkan.py Thu Jul 17 16:47:29 2014 +0200 +++ b/src/hdalab/views/renkan.py Fri Jul 18 12:57:31 2014 +0200 @@ -7,10 +7,10 @@ from datetime import datetime from django.core.urlresolvers import reverse from django.db.models import Q -from django.http.response import HttpResponse +from django.http.response import HttpResponse, HttpResponseBadRequest from django.shortcuts import get_object_or_404, redirect from django.views.decorators.csrf import csrf_exempt -from django.views.generic import View, RedirectView +from django.views.generic import TemplateView, View from hdabo.models import Tag from hdalab.models.renkan import Renkan from hdalab.utils import LineNodePlacer @@ -22,6 +22,23 @@ logger = logging.getLogger(__name__) +class RenkanEdit(TemplateView): + + template_name="renkan_edit.html" + + def get_context_data(self, **kwargs): + context = super(RenkanEdit, self).get_context_data(**kwargs) + # If a renkan id is set + rk_id = self.request.GET.get("rk_id", "") + if rk_id!="": + rk = get_object_or_404(Renkan, rk_id=rk_id) + if rk.owner!=self.request.user: + raise Exception("You are not allowed to edit this renkan") + + return context + + + class RenkanGetPut(View): @csrf_exempt @@ -29,9 +46,14 @@ return super(RenkanGetPut, self).dispatch(*args, **kwargs) def get(self, request): - #file_path = settings.JSON_TEST_PATH - #content = open(file_path,"r") + # If a renkan id is set + rk_id = request.GET.get("rk_id", "") + if rk_id!="": + rk = get_object_or_404(Renkan, rk_id=rk_id) + return HttpResponse(rk.content, content_type="application/json") + + # Otherwise we build the datas now = datetime.now().strftime("%Y-%m-%d %H:%M") content = { @@ -141,13 +163,22 @@ #"created_by": "de68xf75y6hs5rgjhgghxbm217xk" }) - - return HttpResponse(json.dumps(content), content_type="application/json") def put(self, request): + rk_id = request.GET.get("rk_id", "") + #data = json.loads(request.body) + #logger.debug(data["edges"]) + #logger.debug(data["nodes"]) + if rk_id!="": + rk = get_object_or_404(Renkan, rk_id=rk_id) + if rk.owner!=request.user: + return HttpResponseBadRequest("You are not allowed to edit this renkan") + rk.content = request.body + rk.save() + return HttpResponse("OK") @@ -165,4 +196,18 @@ rk.title = old_rk.title + " (copy)" rk.save() return redirect(reverse('profile_home')) + + + + + +class RenkanDelete(View): + + def get(self, request, rk_id): + rk = get_object_or_404(Renkan, rk_id=rk_id) + if rk.owner==request.user: + rk.delete() + return redirect(reverse('profile_home')) + else: + return HttpResponseBadRequest("You are not allowed to remove this renkan") \ No newline at end of file