Files
django-maraudes/sujets/views.py

64 lines
1.7 KiB
Python

from django.shortcuts import render, redirect
from django.views import generic
from .models import Sujet
from .forms import SujetCreateForm
### Webpage config
from utilisateurs.models import Maraudeur
from website import decorators as website
sujets = website.app_config(
name="suivi",
groups=[Maraudeur],
menu=["suivi/menu/sujets.html"],
admin_menu=["sujets/menu/admin_sujet.html"],
ajax=True,
)
### Views
@sujets
class SujetDetailsView(generic.DetailView):
class PageInfo:
title = "Sujet - {{ sujet }}"
header = "{{ sujet }}"
header_small = "informations"
#DetailView
template_name = "sujets/sujet_details.html"
model = Sujet
@sujets
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__'
@sujets
class SujetCreateView(generic.edit.CreateView):
class PageInfo:
title = "Nouveau sujet"
header = "Nouveau 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