add decorators 'webpage' decorator for 'website', rewrite views

This commit is contained in:
Arthur Gerbaud
2016-08-07 16:22:19 +02:00
parent a5af70becb
commit d718984a59
7 changed files with 219 additions and 212 deletions

View File

@@ -1,25 +1,20 @@
from django.shortcuts import render
from django.views import generic
from website import views
from website import decorators as website
from .models import Sujet
from django.forms import ModelForm
webpage = website.webpage(ajax=True, permissions=['sujets.view_sujets'])
# Create your views here.
class SujetsView(views.WebsiteProtectedMixin):
# TODO: deal with setting an active_app name other than module name
class PageInfo:
title = "Sujets"
def get_active_app(self):
return super(views.WebsiteProtectedMixin, self).get_active_app(app_name='suivi')
class SujetDetailsView(SujetsView, generic.DetailView):
@webpage
class SujetDetailsView(generic.DetailView):
template_name = "sujets/sujet_details.html"
model = Sujet
@@ -28,7 +23,8 @@ class SujetDetailsView(SujetsView, generic.DetailView):
header = "{{ sujet }}"
header_small = "suivi"
class SujetListView(SujetsView, generic.ListView):
@webpage
class SujetListView(generic.ListView):
model = Sujet
template_name = "sujets/sujet_liste.html"
@@ -36,8 +32,8 @@ class SujetListView(SujetsView, generic.ListView):
title = "Sujet - Liste des sujets"
header = "Liste des sujets"
class SujetUpdateView(SujetsView, generic.edit.UpdateView):
@webpage
class SujetUpdateView(generic.edit.UpdateView):
template_name = "sujets/sujet_update.html"
model = Sujet
fields = '__all__'
@@ -55,8 +51,8 @@ class SujetCreateForm(ModelForm):
fields = ['nom', 'surnom', 'prenom', 'genre', 'premiere_rencontre']
class SujetCreateView(views.WebsiteProtectedWithAjaxMixin, generic.edit.CreateView):
@website.webpage(ajax=True, permissions=['sujets.add_sujet'])
class SujetCreateView(generic.edit.CreateView):
template_name = "sujets/sujet_create.html"
form_class = SujetCreateForm
@@ -64,8 +60,6 @@ class SujetCreateView(views.WebsiteProtectedWithAjaxMixin, generic.edit.CreateVi
title = "Nouveau sujet"
header = "Nouveau sujet"
permissions = ['sujets.view_sujets', 'sujets.add_sujet']
def post(self, request, *args, **kwargs):
if 'next' in self.request.POST:
self.success_url = self.request.POST["next"]
@@ -78,6 +72,3 @@ class SujetCreateView(views.WebsiteProtectedWithAjaxMixin, generic.edit.CreateVi
except:
context['next'] = None
return context
#Hack
get_active_app = SujetsView.get_active_app