summaryrefslogtreecommitdiff
path: root/coip/apps
diff options
context:
space:
mode:
authorLeif Johansson <leifj@sunet.se>2010-07-09 00:14:16 +0200
committerLeif Johansson <leifj@sunet.se>2010-07-09 00:14:16 +0200
commit342cb7d1edb536378f462d6a7757c2f9ccdfe1ea (patch)
tree90fc81da1afc78a34e98cfc6f54c28ad3e5a5a62 /coip/apps
parent2bb8b5dd3eee47e665da570eb72cfea87c6ca3fe (diff)
basic edit view for nodes
Diffstat (limited to 'coip/apps')
-rw-r--r--coip/apps/name/forms.py7
-rw-r--r--coip/apps/name/views.py34
2 files changed, 37 insertions, 4 deletions
diff --git a/coip/apps/name/forms.py b/coip/apps/name/forms.py
index 0c96480..62c6fb5 100644
--- a/coip/apps/name/forms.py
+++ b/coip/apps/name/forms.py
@@ -12,4 +12,9 @@ class NameForm(forms.ModelForm):
class AttributeForm(forms.ModelForm):
class Meta:
- model = Attribute \ No newline at end of file
+ model = Attribute
+
+class NameEditForm(forms.ModelForm):
+ class Meta:
+ model = Name
+ fields = ['short','description'] \ No newline at end of file
diff --git a/coip/apps/name/views.py b/coip/apps/name/views.py
index 3152b0d..125060c 100644
--- a/coip/apps/name/views.py
+++ b/coip/apps/name/views.py
@@ -5,20 +5,48 @@ Created on Jul 6, 2010
'''
from coip.apps.name.models import Name, lookup, traverse
from django.core.exceptions import ObjectDoesNotExist
-from django.http import HttpResponseNotFound, HttpResponseForbidden
+from django.http import HttpResponseNotFound, HttpResponseForbidden,\
+ HttpResponseRedirect
from django.contrib.auth.decorators import login_required
from coip.multiresponse import respond_to, json_response
from pprint import pprint
+from coip.apps.name.forms import NameEditForm
+from twisted.python.reflect import ObjectNotFound
+
+def edit(request,id):
+ name = None
+ try:
+ name = Name.objects.get(id=id)
+ except ObjectNotFound:
+ return HttpResponseNotFound()
+
+ if not name.has_permission(request.user,'#w'):
+ return HttpResponseForbidden()
+
+ if request.method == 'POST':
+ form = NameEditForm(request.POST,instance=name)
+ if form.is_valid():
+ form.save()
+ return HttpResponseRedirect("/name/id/%d" % name.id)
+ else:
+ form = NameEditForm(instance=name)
+
+ return respond_to(request,{'text/html': 'apps/name/edit.html'},{'form': form,'name': name})
+
def show_root(request):
- return respond_to(request, {'text/html': 'apps/name/name.html'}, {'name': None, 'memberships': None, 'children': Name.objects.filter(parent=None)})
+ return respond_to(request,
+ {'text/html': 'apps/name/name.html'},
+ {'name': None, 'memberships': None, 'edit': False})
def show(request,name):
if not name:
return HttpResponseNotFound()
if name.has_permission(request.user,'r'):
- return respond_to(request, {'text/html': 'apps/name/name.html'}, {'name': name, 'memberships': name.memberships})
+ return respond_to(request,
+ {'text/html': 'apps/name/name.html'},
+ {'name': name, 'memberships': name.memberships, 'edit': name.has_permission(request.user,'#w')})
else:
return HttpResponseForbidden()