improved NoteFormMixin, added Appel model and form in 'suivi'
This commit is contained in:
@@ -39,10 +39,7 @@ class UserNoteForm(NoteForm):
|
||||
fields = ['sujet', 'text', 'created_date', 'created_time']
|
||||
|
||||
def __init__(self, request, **kwargs):
|
||||
args = []
|
||||
if request.POST:
|
||||
args += (request.POST, request.FILES)
|
||||
super().__init__(*args, **kwargs)
|
||||
super().__init__(**kwargs)
|
||||
try:
|
||||
self.author = Professionnel.objects.get(pk=request.user.pk)
|
||||
except Professionnel.DoesNotExist:
|
||||
@@ -50,28 +47,15 @@ class UserNoteForm(NoteForm):
|
||||
raise RuntimeError(msg)
|
||||
|
||||
def save(self, commit=True):
|
||||
print('save UserNote', self)
|
||||
instance = super().save(commit=False)
|
||||
instance.created_by = self.author
|
||||
if commit:
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
class UserAutoDateNoteForm(UserNoteForm):
|
||||
""" Form that automatically sets 'date' and 'time' to save time """
|
||||
|
||||
class AutoNoteForm(UserNoteForm):
|
||||
class Meta(UserNoteForm.Meta):
|
||||
fields = ['sujet', 'text']
|
||||
|
||||
def save(self, commit=True):
|
||||
instance = super().save(commit=False)
|
||||
instance.created_date = timezone.now().date()
|
||||
instance.created_time = timezone.now().time()
|
||||
if commit:
|
||||
instance.save()
|
||||
return instance
|
||||
|
||||
class AutoNoteForm(UserAutoDateNoteForm):
|
||||
class Meta(UserAutoDateNoteForm.Meta):
|
||||
fields = ['text']
|
||||
|
||||
def __init__(self, request, **kwargs):
|
||||
|
||||
@@ -3,30 +3,28 @@ from django.shortcuts import redirect
|
||||
|
||||
from .forms import *
|
||||
|
||||
class SujetNoteFormMixin(object):
|
||||
class NoteFormMixin(FormMixin):
|
||||
|
||||
form_class = AutoNoteForm
|
||||
form_class = None
|
||||
|
||||
def get_form(self, request, **kwargs):
|
||||
def get_form(self):
|
||||
# Should add test to ensure this instance class is
|
||||
# has SingleObjectMixin set with Sujet model ??
|
||||
kwargs = self.get_form_kwargs()
|
||||
return self.form_class(
|
||||
self.request,
|
||||
sujet=self.get_object()
|
||||
**kwargs
|
||||
)
|
||||
|
||||
def dispatch(self, request, **kwargs):
|
||||
self.form = self.get_form(request)
|
||||
return super().dispatch(request, **kwargs)
|
||||
|
||||
def post(self, request, **kwargs):
|
||||
if self.form.is_valid():
|
||||
self.form.save()
|
||||
return redirect(self.get_success_url())
|
||||
return self.get(request, **kwargs)
|
||||
form = self.get_form()
|
||||
if form.is_valid():
|
||||
form.save()
|
||||
return self.form_valid(form)
|
||||
return self.form_invalid(form)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context['note_form'] = self.form
|
||||
context['note_form'] = self.get_form()
|
||||
return context
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ class Note(models.Model):
|
||||
related_name="notes",
|
||||
on_delete=models.CASCADE
|
||||
)
|
||||
text = models.TextField()
|
||||
text = models.TextField("Texte")
|
||||
created_by = models.ForeignKey(
|
||||
'utilisateurs.Professionnel',
|
||||
blank=True,
|
||||
|
||||
Reference in New Issue
Block a user