changes display of notes in tables (headers on the side)
corrects code for 'notes' modules according to PEP8 guidelines
This commit is contained in:
@@ -1,34 +1,39 @@
|
||||
from django.views.generic.edit import FormMixin
|
||||
from django.contrib import messages
|
||||
|
||||
from .forms import *
|
||||
|
||||
class NoteFormMixin(FormMixin):
|
||||
""" A mixin that allows to easily embed multiple distinct forms on a view.
|
||||
Only one form can be processed by request !
|
||||
"""
|
||||
|
||||
# 'forms' shall be a dict of form classes, indexed by a prefix
|
||||
forms = None
|
||||
|
||||
def get_form(self, prefix):
|
||||
kwargs = self.get_form_kwargs()
|
||||
kwargs['prefix'] = prefix
|
||||
def get_form_kwargs(self):
|
||||
kwargs = super().get_form_kwargs()
|
||||
kwargs['request'] = self.request
|
||||
form_class = self.forms[prefix]
|
||||
return form_class(**kwargs)
|
||||
return kwargs
|
||||
|
||||
def get_form_by_prefix(self, prefix):
|
||||
try:
|
||||
return self.get_form(form_class=self.forms[prefix])
|
||||
except KeyError:
|
||||
raise ValueError("The form with prefix %s is not declared in %s" % (prefix, self.forms))
|
||||
|
||||
def post(self, request, **kwargs):
|
||||
""" Save the first valid form found or reload page displaying a warning """
|
||||
for prefix in self.forms.keys():
|
||||
form = self.get_form(prefix)
|
||||
form = self.get_form_by_prefix(prefix)
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
messages.success(self.request, "Un nouveau %s a été enregistré" % prefix)
|
||||
return self.form_valid(form)
|
||||
return self.form_invalid(form)
|
||||
|
||||
def form_valid(self, form):
|
||||
messages.success(self.request, "Un nouveau %s a été enregistré" % form.prefix)
|
||||
return super().form_valid(form)
|
||||
messages.warning(request, "Il y a eu une erreur lors du traitement du formulaire")
|
||||
return self.get(request, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super(FormMixin, self).get_context_data(**kwargs)
|
||||
for prefix in self.forms.keys():
|
||||
context['%s_form' % prefix] = self.get_form(prefix)
|
||||
context['%s_form' % prefix] = self.get_form_by_prefix(prefix)
|
||||
return context
|
||||
|
||||
|
||||
Reference in New Issue
Block a user