69 lines
2.1 KiB
Python
69 lines
2.1 KiB
Python
from django.shortcuts import render, reverse
|
|
from django.views import generic
|
|
from django.utils import timezone
|
|
|
|
from sujets.models import Sujet
|
|
from .forms import *
|
|
from notes.mixins import NoteFormMixin
|
|
from notes.forms import AutoNoteForm
|
|
# Create your views here.
|
|
from utilisateurs.models import Maraudeur
|
|
from website import decorators as website
|
|
webpage = website.webpage(
|
|
ajax=False,
|
|
app_users=[Maraudeur],
|
|
app_menu=["suivi/menu/sujets.html", "suivi/menu/admin_sujets.html"]
|
|
)
|
|
|
|
|
|
|
|
@webpage
|
|
class IndexView(NoteFormMixin, generic.TemplateView):
|
|
class PageInfo:
|
|
title = "Suivi des bénéficiaires"
|
|
header = "Suivi"
|
|
header_small = "Tableau de bord"
|
|
#NoteFormMixin
|
|
forms = {
|
|
'appel': AppelForm,
|
|
'signalement': SignalementForm,
|
|
}
|
|
def get_initial(self):
|
|
return {'created_date': timezone.localtime(timezone.now()).date(),
|
|
'created_time': timezone.localtime(timezone.now()).time()}
|
|
def get_success_url(self):
|
|
return reverse('suivi:index')
|
|
#TemplateView
|
|
template_name = "suivi/index.html"
|
|
|
|
|
|
|
|
|
|
@webpage
|
|
class SuiviSujetView(NoteFormMixin, generic.DetailView):
|
|
class PageInfo:
|
|
title = "Sujet - {{sujet}}"
|
|
header = "{{sujet}}"
|
|
header_small = "suivi"
|
|
#NoteFormMixin
|
|
forms = {
|
|
'note': AutoNoteForm,
|
|
}
|
|
def get_success_url(self):
|
|
return reverse('suivi:details', kwargs={'pk': self.get_object().pk})
|
|
def get_form_kwargs(self):
|
|
kwargs = super().get_form_kwargs()
|
|
kwargs['sujet'] = self.get_object()
|
|
return kwargs
|
|
#DetailView
|
|
model = Sujet
|
|
template_name = "suivi/details.html"
|
|
context_object_name = "sujet"
|
|
def __init__(self, *args, **kwargs):
|
|
super().__init__(*args, **kwargs)
|
|
self.insert_menu("sujets/menu_sujet.html")
|
|
def get_context_data(self, *args, **kwargs):
|
|
context = super().get_context_data(*args, **kwargs)
|
|
context['notes'] = self.object.notes.by_date(reverse=True)
|
|
return context
|