Files
django-maraudes/sujets/views.py
Arthur Gerbaud 1681833e8b minor clean up
2016-08-17 16:11:27 +02:00

78 lines
2.1 KiB
Python

from django.shortcuts import render
from django.views import generic
from .models import Sujet
from .forms import SujetCreateForm
### Webpage config
from website import decorators as website
webpage = website.webpage(
ajax=True,
permissions=['sujets.view_sujets'],
app_name="suivi",
app_menu=[]
)
### Views
@webpage
class SujetDetailsView(generic.DetailView):
class PageInfo:
title = "Sujet - {{ sujet }}"
header = "{{ sujet }}"
header_small = "suivi"
#DetailView
template_name = "sujets/sujet_details.html"
model = Sujet
@webpage
class SujetListView(generic.ListView):
class PageInfo:
title = "Sujet - Liste des sujets"
header = "Liste des sujets"
#ListView
model = Sujet
template_name = "sujets/sujet_liste.html"
paginate_by = 10
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.insert_menu("suivi/menu_sujets.html")
@webpage
class SujetUpdateView(generic.edit.UpdateView):
class PageInfo:
title = "Mise à jour - {{sujet}}"
header = "{{sujet}}"
header_small = "mise à jour"
#UpdateView
template_name = "sujets/sujet_update.html"
model = Sujet
fields = '__all__'
@webpage
class SujetCreateView(generic.edit.CreateView):
class PageInfo:
title = "Nouveau sujet"
header = "Nouveau sujet"
# Special permissions
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.permissions += ['sujets.add_sujet']
#CreateView
template_name = "sujets/sujet_create.html"
form_class = SujetCreateForm
def post(self, request, *args, **kwargs):
if 'next' in self.request.POST:
self.success_url = self.request.POST["next"]
return super().post(self, request, *args, **kwargs)
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
try: context['next'] = self.request.GET['next']
except:context['next'] = None
return context