| author | cavaliet |
| Wed, 20 Aug 2014 16:09:56 +0200 | |
| changeset 311 | 6c16170f947f |
| parent 310 | 05c9f6551fde |
| child 312 | 1c2c8e16bdbe |
| permissions | -rw-r--r-- |
| 293 | 1 |
# -*- coding: utf-8 -*- |
2 |
''' |
|
3 |
Created on Jul 01, 2014 |
|
4 |
||
5 |
@author: tc |
|
6 |
''' |
|
| 308 | 7 |
|
8 |
||
| 293 | 9 |
from datetime import datetime |
| 308 | 10 |
from django.conf import settings |
11 |
from django.contrib.auth import REDIRECT_FIELD_NAME, login as auth_login |
|
12 |
from django.contrib.auth.forms import AuthenticationForm |
|
13 |
from django.contrib.sites.models import get_current_site |
|
14 |
from django.core.urlresolvers import reverse |
|
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
15 |
from django.db.models import Q |
| 310 | 16 |
from django.http import HttpResponse, HttpResponseBadRequest |
| 308 | 17 |
from django.http import HttpResponseRedirect |
| 300 | 18 |
from django.shortcuts import get_object_or_404, redirect |
| 308 | 19 |
from django.shortcuts import resolve_url |
20 |
from django.template.response import TemplateResponse |
|
21 |
from django.utils.http import is_safe_url |
|
22 |
from django.views.decorators.cache import never_cache |
|
23 |
from django.views.decorators.csrf import csrf_exempt, csrf_protect |
|
24 |
from django.views.decorators.debug import sensitive_post_parameters |
|
| 300 | 25 |
from django.views.generic import TemplateView, View |
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
26 |
from hdabo.models import Tag |
| 300 | 27 |
from hdalab.models.renkan import HdalabRenkan |
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
28 |
from hdalab.views.ajax import filter_generic |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
29 |
from renkanmanager.models import Renkan |
| 301 | 30 |
from renkanmanager.utils import LineNodePlacer, renkan_copier, renkan_deleter |
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
31 |
from renkanmanager.views import RenkanGetPut |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
32 |
import json |
| 297 | 33 |
import uuid |
| 293 | 34 |
|
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
35 |
|
| 308 | 36 |
|
| 293 | 37 |
import logging |
38 |
logger = logging.getLogger(__name__) |
|
39 |
||
40 |
||
41 |
class ProfileHome(TemplateView): |
|
42 |
||
43 |
template_name = "profile_home.html" |
|
44 |
||
| 294 | 45 |
def get_context_data(self, **kwargs): |
46 |
context = super(ProfileHome, self).get_context_data(**kwargs) |
|
| 300 | 47 |
context['renkan_list'] = HdalabRenkan.objects.select_related("renkan").filter(renkan__owner=self.request.user).order_by("-renkan__modification_date") |
48 |
return context |
|
49 |
||
50 |
||
| 301 | 51 |
class RenkanPublicList(TemplateView): |
52 |
||
53 |
template_name = "renkan_list.html" |
|
54 |
||
55 |
def get_context_data(self, **kwargs): |
|
56 |
context = super(RenkanPublicList, self).get_context_data(**kwargs) |
|
57 |
context['renkan_list'] = HdalabRenkan.objects.select_related("renkan").filter(state=HdalabRenkan.PUBLISHED).order_by("-renkan__modification_date") |
|
58 |
return context |
|
59 |
||
60 |
||
| 300 | 61 |
|
62 |
class RenkanNew(View): |
|
63 |
||
64 |
def get(self, request): |
|
| 294 | 65 |
|
| 300 | 66 |
rk = Renkan() |
67 |
rk_id = unicode(uuid.uuid1()) |
|
68 |
rk.rk_id = rk_id |
|
69 |
rk.owner = request.user |
|
70 |
rk.content = '{}' |
|
71 |
rk.title = "Nouveau Renkan " |
|
72 |
rk.save() |
|
73 |
hr = HdalabRenkan() |
|
74 |
hr.renkan = rk |
|
75 |
from random import randrange |
|
76 |
hr.state = randrange(4) + 1 |
|
77 |
hr.save() |
|
| 295 | 78 |
|
| 300 | 79 |
return redirect("%s?rk_id=%s" % (reverse('renkan_edit'), rk_id)) |
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
80 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
81 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
82 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
83 |
class RenkanEdit(TemplateView): |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
84 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
85 |
template_name="renkan_edit.html" |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
86 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
87 |
def get_context_data(self, **kwargs): |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
88 |
context = super(RenkanEdit, self).get_context_data(**kwargs) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
89 |
# If a renkan id is set |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
90 |
rk_id = self.request.GET.get("rk_id", "") |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
91 |
if rk_id!="": |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
92 |
rk = get_object_or_404(Renkan, rk_id=rk_id) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
93 |
if rk.owner!=self.request.user: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
94 |
raise Exception("You are not allowed to edit this renkan") |
| 294 | 95 |
|
| 308 | 96 |
form = AuthenticationForm(self.request) |
97 |
context["form"] = form |
|
98 |
||
| 294 | 99 |
return context |
| 296 | 100 |
|
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
101 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
102 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
103 |
class HdalabRenkanGetPut(RenkanGetPut): |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
104 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
105 |
@csrf_exempt |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
106 |
def dispatch(self, *args, **kwargs): |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
107 |
return super(HdalabRenkanGetPut, self).dispatch(*args, **kwargs) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
108 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
109 |
def get(self, request): |
| 293 | 110 |
|
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
111 |
# If a renkan id is set |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
112 |
rk_id = request.GET.get("rk_id", "") |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
113 |
if rk_id!="": |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
114 |
rk = get_object_or_404(Renkan, rk_id=rk_id) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
115 |
return HttpResponse(rk.content, content_type="application/json") |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
116 |
|
|
302
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
117 |
# Otherwise we build the datas |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
118 |
# Get tags and countries |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
119 |
labels = request.GET.get("label", "").split(",") |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
120 |
countries = request.GET.get("country", "").split(",") |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
121 |
# Tags arrive with french label, countries with dbpedia uri |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
122 |
label_list = [t for t in labels if t!=""] |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
123 |
country_list = [c for c in countries if c!=""] |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
124 |
all_tags = Tag.objects.filter( Q(label__in=label_list) | Q(dbpedia_uri__in=country_list) ).select_related("dbpedia_fields") |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
125 |
|
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
126 |
|
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
127 |
now = datetime.now().strftime("%Y-%m-%d %H:%M") |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
128 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
129 |
content = { |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
130 |
"id": unicode(uuid.uuid1()), |
|
302
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
131 |
"title": "", |
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
132 |
"description": "(empty description)", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
133 |
"created": now, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
134 |
"updated": now, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
135 |
"nodes": [], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
136 |
"edges": [], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
137 |
"views": [], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
138 |
"users": [], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
139 |
} |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
140 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
141 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
142 |
# Get datasheets from ajax filter search |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
143 |
filter_output = filter_generic(request.GET.get('lang',request.LANGUAGE_CODE), None, ",".join(label_list), ",".join(country_list)) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
144 |
filter_output = json.loads(filter_output) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
145 |
#logger.debug("COUCOU") |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
146 |
#logger.debug(json.dumps(filter_output, indent=2)) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
147 |
#return HttpResponse(json.dumps(filter_output, indent=2), content_type="application/json") |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
148 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
149 |
# Prepare other tags |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
150 |
related_tags = [] |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
151 |
all_labels = [t.label for t in all_tags] |
|
302
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
152 |
title = "Recherche " + ", ".join(all_labels) |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
153 |
content["title"] = title |
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
154 |
related_tags_dict = {} |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
155 |
for c in filter_output["contents"]: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
156 |
c["id"] = unicode(uuid.uuid1()) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
157 |
related_tags_dict[c["id"]] = [] |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
158 |
for t in c["tags"]: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
159 |
if t["label"] not in all_labels and t["order"]<6: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
160 |
thumbnail_url = "" |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
161 |
for tt in filter_output["tags"]: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
162 |
if tt["label"]==t["label"]: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
163 |
thumbnail_url = tt["thumbnail"] |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
164 |
related_tags.append({"label": t["label"], "thumbnail":thumbnail_url, "id":t["id"]}) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
165 |
all_labels.append(t["label"]) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
166 |
related_tags_dict[c["id"]].append(t["id"]) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
167 |
#return HttpResponse(json.dumps({"t":related_tags_label}, indent=2), content_type="application/json") |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
168 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
169 |
# Prepare Node placer : |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
170 |
np = LineNodePlacer() |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
171 |
np.init({"tags": (1, len(all_tags)), "datasheet": (2, len(filter_output["contents"])), "related": (3, len(related_tags))}) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
172 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
173 |
project_id = unicode(uuid.uuid1()) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
174 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
175 |
for t in all_tags: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
176 |
content["nodes"].append({ |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
177 |
"id": unicode(uuid.uuid1()), |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
178 |
"title": t.label, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
179 |
"description": t.dbpedia_uri, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
180 |
"uri": t.dbpedia_uri, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
181 |
"position": np.get_place("tags"), |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
182 |
"image": t.dbpedia_fields.thumbnail if hasattr(t, 'dbpedia_fields') and t.dbpedia_fields and t.dbpedia_fields.thumbnail else None, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
183 |
"size": 0, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
184 |
"project_id": project_id, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
185 |
"color": None, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
186 |
#"created_by": "roster_user-84fe909f-ba37-48e6-a25f-9d2f129a95b7" |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
187 |
}) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
188 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
189 |
for c in filter_output["contents"]: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
190 |
content["nodes"].append({ |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
191 |
"id": c["id"], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
192 |
"title": c["title"], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
193 |
"description": c["description"], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
194 |
"uri": c["url"], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
195 |
"position": np.get_place("datasheet"), |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
196 |
"image": None, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
197 |
"size": 0, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
198 |
"project_id": project_id, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
199 |
"color": "#FF0033", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
200 |
#"created_by": "roster_user-84fe909f-ba37-48e6-a25f-9d2f129a95b7" |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
201 |
}) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
202 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
203 |
for t in related_tags: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
204 |
content["nodes"].append({ |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
205 |
"id": t["id"], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
206 |
"title": t["label"], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
207 |
"description": "", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
208 |
"uri": "", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
209 |
"position": np.get_place("related"), |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
210 |
"image": t["thumbnail"], |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
211 |
"size": 0, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
212 |
"project_id": project_id, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
213 |
"color": "#00FF33", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
214 |
#"created_by": "roster_user-84fe909f-ba37-48e6-a25f-9d2f129a95b7" |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
215 |
}) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
216 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
217 |
for c_id in related_tags_dict: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
218 |
for tag_id in related_tags_dict[c_id]: |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
219 |
content["edges"].append({ |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
220 |
"id": unicode(uuid.uuid1()), |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
221 |
"title": "", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
222 |
"description": "", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
223 |
"uri": "", |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
224 |
"color": None, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
225 |
"from": c_id, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
226 |
"to": tag_id, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
227 |
"project_id": project_id, |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
228 |
#"created_by": "de68xf75y6hs5rgjhgghxbm217xk" |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
229 |
}) |
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
230 |
|
|
302
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
231 |
response = json.dumps(content) |
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
232 |
|
|
106c33871db4
better presentation and automatic save for renkan from facettes
cavaliet
parents:
301
diff
changeset
|
233 |
return HttpResponse(response, content_type="application/json") |
| 310 | 234 |
|
235 |
||
236 |
def post(self, request): |
|
237 |
||
238 |
rk_id = request.GET.get("rk_id", "") |
|
239 |
#data = json.loads(request.body) |
|
240 |
#logger.debug(data["edges"]) |
|
241 |
#logger.debug(data["nodes"]) |
|
242 |
#logger.debug(request.user.is_authenticated()) |
|
243 |
#logger.debug(request.user.is_anonymous()) |
|
244 |
if rk_id!="": |
|
245 |
rk = get_object_or_404(Renkan, rk_id=rk_id) |
|
246 |
if rk.owner!=request.user: |
|
247 |
return HttpResponseBadRequest("You are not allowed to edit this renkan") |
|
248 |
rk.content = request.body |
|
249 |
data = json.loads(request.body) |
|
250 |
if "title" in data: |
|
251 |
rk.title = data["title"] |
|
252 |
rk.save() |
|
253 |
return HttpResponse("SAVED") |
|
254 |
else: |
|
255 |
# if rk_id was not a get parameter AND if it is set in json data AND if user is authenticated |
|
256 |
# Then we can save the renkan |
|
257 |
data = json.loads(request.body) |
|
258 |
if "id" in data: |
|
259 |
rk_id = data["id"] |
|
260 |
if rk_id != "" and Renkan.objects.filter(rk_id=rk_id).count()==0 and request.user.is_authenticated(): |
|
261 |
rk = Renkan() |
|
262 |
rk.rk_id = rk_id |
|
263 |
rk.title = data["title"] if "title" in data else "" |
|
264 |
rk.content = data |
|
265 |
rk.owner = request.user |
|
266 |
rk.save() |
|
267 |
hr = HdalabRenkan() |
|
268 |
hr.renkan = rk |
|
269 |
hr.state = HdalabRenkan.EDITION |
|
270 |
hr.save() |
|
271 |
return HttpResponse("rk_id=" + rk_id) |
|
272 |
||
273 |
||
274 |
return HttpResponse("NOT SAVED") |
|
|
299
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
275 |
|
|
8e00641076e7
remove renkan management to an other django app (see renkan hg repo)
cavaliet
parents:
297
diff
changeset
|
276 |
|
| 301 | 277 |
|
278 |
||
279 |
class HdalabRenkanCopy(View): |
|
280 |
||
281 |
def get(self, request, rk_id): |
|
282 |
rk = renkan_copier(request.user, rk_id) |
|
283 |
hr = HdalabRenkan() |
|
284 |
hr.renkan = rk |
|
285 |
hr.state = HdalabRenkan.EDITION |
|
286 |
hr.save() |
|
287 |
if "next" in request.GET: |
|
288 |
return redirect(request.GET["next"]) |
|
289 |
return redirect(reverse('profile_home')) |
|
290 |
||
291 |
||
292 |
||
293 |
class HdalabRenkanDelete(View): |
|
294 |
||
295 |
def get(self, request, rk_id): |
|
296 |
renkan_deleter(request.user, rk_id) |
|
297 |
if "next" in request.GET: |
|
298 |
return redirect(request.GET["next"]) |
|
299 |
return redirect(reverse('profile_home')) |
|
| 308 | 300 |
|
301 |
||
302 |
||
303 |
# Function copied from django.contrib.auth.views to simplify ajax login |
|
304 |
@sensitive_post_parameters() |
|
305 |
@csrf_protect |
|
306 |
@never_cache |
|
307 |
def ajax_login(request, template_name='ajax_identification/ajax_login.html', |
|
308 |
redirect_field_name=REDIRECT_FIELD_NAME, |
|
309 |
authentication_form=AuthenticationForm, |
|
310 |
current_app=None, extra_context=None): |
|
311 |
""" |
|
312 |
Displays the login form and handles the login action. |
|
313 |
""" |
|
314 |
redirect_to = request.REQUEST.get(redirect_field_name, '') |
|
315 |
||
316 |
if request.method == "POST": |
|
317 |
form = authentication_form(request, data=request.POST) |
|
318 |
if form.is_valid(): |
|
319 |
||
320 |
# Ensure the user-originating redirection url is safe. |
|
321 |
if not is_safe_url(url=redirect_to, host=request.get_host()): |
|
322 |
redirect_to = resolve_url(settings.LOGIN_REDIRECT_URL) |
|
323 |
||
324 |
# Okay, security check complete. Log the user in. |
|
325 |
auth_login(request, form.get_user()) |
|
326 |
||
327 |
return HttpResponseRedirect(redirect_to) |
|
328 |
else: |
|
329 |
form = authentication_form(request) |
|
330 |
||
331 |
current_site = get_current_site(request) |
|
332 |
||
333 |
context = { |
|
334 |
'form': form, |
|
335 |
redirect_field_name: redirect_to, |
|
336 |
'site': current_site, |
|
337 |
'site_name': current_site.name, |
|
338 |
} |
|
339 |
if extra_context is not None: |
|
340 |
context.update(extra_context) |
|
341 |
return TemplateResponse(request, template_name, context, |
|
342 |
current_app=current_app) |
|
| 293 | 343 |