# 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