summaryrefslogtreecommitdiff
path: root/ishtar_common/views.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2014-10-30 00:49:28 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2014-10-30 00:52:17 +0100
commit64575e18848ed4020019f532560dbdf8d2b3adb0 (patch)
tree316a8cfc21ab85b6a652fb685a87d72ad90a27a6 /ishtar_common/views.py
parent46c62fbab9959af12bfab844938879d3966dae42 (diff)
downloadIshtar-64575e18848ed4020019f532560dbdf8d2b3adb0.tar.bz2
Ishtar-64575e18848ed4020019f532560dbdf8d2b3adb0.zip
Add a new menu for admin tasks - new view for global variable edition (refs #2111)
Diffstat (limited to 'ishtar_common/views.py')
-rw-r--r--ishtar_common/views.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 889bd3893..c27aae74b 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -32,8 +32,11 @@ from tempfile import NamedTemporaryFile
import ho.pisa as pisa
import unicodedata
+from extra_views import ModelFormSetView
+
from django.conf import settings
from django.contrib.auth import logout
+from django.contrib.auth.decorators import login_required
from django.core import serializers
from django.core.exceptions import ObjectDoesNotExist
from django.core.urlresolvers import reverse, NoReverseMatch
@@ -41,6 +44,7 @@ from django.db.models import Q, ImageField
from django.http import HttpResponse, Http404
from django.shortcuts import render_to_response, redirect
from django.template import RequestContext, loader
+from django.utils.decorators import method_decorator
from django.utils.translation import ugettext, ugettext_lazy as _
if settings.XHTML2ODT_PATH:
@@ -790,3 +794,29 @@ def dashboard_main_detail(request, item_name):
'%d_%d_%d' % (n.minute, n.second, n.microsecond)
return render_to_response('ishtar/dashboards/dashboard_main_detail.html',
dct, context_instance=RequestContext(request))
+
+
+class LoginRequiredMixin(object):
+ @method_decorator(login_required)
+ def dispatch(self, request, *args, **kwargs):
+ return super(LoginRequiredMixin, self).dispatch(request, *args,
+ **kwargs)
+ if kwargs.get('pk') and not self.request.user.is_staff and \
+ not str(kwargs['pk']) == str(self.request.user.company.pk):
+ return redirect(reverse('index'))
+ return super(LoginRequiredMixin, self).dispatch(request, *args,
+ **kwargs)
+
+class AdminLoginRequiredMixin(LoginRequiredMixin):
+ def dispatch(self, request, *args, **kwargs):
+ if not request.user.is_staff:
+ return redirect(reverse('start'))
+ return super(AdminLoginRequiredMixin, self).dispatch(request, *args,
+ **kwargs)
+
+class GlobalVarEdit(AdminLoginRequiredMixin, ModelFormSetView):
+ template_name = 'ishtar/formset.html'
+ model = models.GlobalVar
+ extra = 1
+ can_delete = True
+ fields = ['slug', 'value', 'description']