diff options
author | Leif Johansson <leifj@sunet.se> | 2010-07-09 00:14:16 +0200 |
---|---|---|
committer | Leif Johansson <leifj@sunet.se> | 2010-07-09 00:14:16 +0200 |
commit | 342cb7d1edb536378f462d6a7757c2f9ccdfe1ea (patch) | |
tree | 90fc81da1afc78a34e98cfc6f54c28ad3e5a5a62 /coip/apps | |
parent | 2bb8b5dd3eee47e665da570eb72cfea87c6ca3fe (diff) |
basic edit view for nodes
Diffstat (limited to 'coip/apps')
-rw-r--r-- | coip/apps/name/forms.py | 7 | ||||
-rw-r--r-- | coip/apps/name/views.py | 34 |
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() |