Add view for editing global cluster config

This commit is contained in:
Roberto Rosario
2012-08-01 04:14:31 -04:00
parent b238874ddb
commit 833e149921
10 changed files with 173 additions and 19 deletions

View File

@@ -3,17 +3,19 @@ from __future__ import absolute_import
from django.shortcuts import render_to_response
from django.template import RequestContext
from django.utils.translation import ugettext_lazy as _
from django.shortcuts import get_object_or_404
from django.shortcuts import get_object_or_404, HttpResponseRedirect
from django.db.models.loading import get_model
from django.http import Http404
from django.core.exceptions import PermissionDenied
from django.contrib import messages
from permissions.models import Permission
from common.utils import encapsulate
from acls.models import AccessEntry
from .models import Node
from .permissions import PERMISSION_NODES_VIEW
from .forms import ClusteringConfigForm
from .models import Node, ClusteringConfig
from .permissions import PERMISSION_NODES_VIEW, PERMISSION_EDIT_CLUSTER_CONFIGURATION
def node_list(request):
@@ -65,3 +67,34 @@ def node_workers(request, node_pk):
return render_to_response('generic_list.html', context,
context_instance=RequestContext(request))
def clustering_config_edit(request):
Permission.objects.check_permissions(request.user, [PERMISSION_EDIT_CLUSTER_CONFIGURATION])
cluster_config = ClusteringConfig.get()
post_action_redirect = None
previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', '/')))
next = request.POST.get('next', request.GET.get('next', post_action_redirect if post_action_redirect else request.META.get('HTTP_REFERER', '/')))
if request.method == 'POST':
form = ClusteringConfigForm(data=request.POST)
if form.is_valid():
try:
form.save()
except Exception, exc:
messages.error(request, _(u'Error trying to edit cluster configuration; %s') % exc)
else:
messages.success(request, _(u'Cluster configuration edited successfully.'))
return HttpResponseRedirect(next)
else:
form = ClusteringConfigForm(instance=cluster_config)
return render_to_response('generic_form.html', {
'form': form,
'object': cluster_config,
'title': _(u'Edit cluster configuration')
}, context_instance=RequestContext(request))