Files
django-maraudes/sujets/views.py

84 lines
2.1 KiB
Python

from django.shortcuts import render
from django.views import generic
from website import views
from .models import Sujet
from django.forms import ModelForm
# Create your views here.
class SujetsView(views.WebsiteProtectedMixin):
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):
template_name = "sujets/sujet_details.html"
model = Sujet
class PageInfo:
title = "Sujet - {{ sujet }}"
header = "{{ sujet }}"
header_small = "suivi"
class SujetListView(SujetsView, generic.ListView):
model = Sujet
template_name = "sujets/sujet_liste.html"
class PageInfo:
title = "Sujet - Liste des sujets"
header = "Liste des sujets"
class SujetUpdateView(SujetsView, generic.edit.UpdateView):
template_name = "sujets/sujet_update.html"
model = Sujet
fields = '__all__'
class PageInfo:
title = "Mise à jour - {{sujet}}"
header = "{{sujet}}"
header_small = "mise à jour"
class SujetCreateForm(ModelForm):
class Meta:
model = Sujet
fields = ['nom', 'surnom', 'prenom', 'genre', 'premiere_rencontre']
class SujetCreateView(views.WebsiteProtectedWithAjaxMixin, generic.edit.CreateView):
template_name = "sujets/sujet_create.html"
form_class = SujetCreateForm
class PageInfo:
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"]
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
#Hack
get_active_app = SujetsView.get_active_app