diff --git a/maraudes/forms.py b/maraudes/forms.py index 42c5903..e2578b4 100644 --- a/maraudes/forms.py +++ b/maraudes/forms.py @@ -1,9 +1,9 @@ from django import forms from django.forms import inlineformset_factory -from notes.forms import SimpleNoteForm +from notes.forms import * # Models -from .models import Maraude, Rencontre -from .notes import Observation, Signalement +from .models import * +from .notes import * class MaraudeAutoDateForm(forms.ModelForm): diff --git a/maraudes/notes.py b/maraudes/notes.py index bc1220d..33a3d03 100644 --- a/maraudes/notes.py +++ b/maraudes/notes.py @@ -10,8 +10,8 @@ class Observation(Note): objects = managers.ObservationManager() rencontre = models.ForeignKey( 'maraudes.Rencontre', - related_name="observations", - on_delete=models.CASCADE + models.CASCADE, + related_name="observations" ) # Note attributes proxies @@ -28,3 +28,6 @@ class Signalement(Note): def note_labels(self): return [self.source] def note_bg_colors(self): return ('warning', 'alert') + + + diff --git a/maraudes/views.py b/maraudes/views.py index 2a1fbe5..5646e50 100644 --- a/maraudes/views.py +++ b/maraudes/views.py @@ -56,7 +56,7 @@ class IndexView(DerniereMaraudeMixin, generic.TemplateView): title = "Maraude - Tableau de bord" header = "La Maraude" header_small = "Tableau de bord" - + # TemplateView template_name = "maraudes/index.html" def get_context_data(self, *args, **kwargs): diff --git a/notes/forms.py b/notes/forms.py index e983e60..8bede4f 100644 --- a/notes/forms.py +++ b/notes/forms.py @@ -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): diff --git a/notes/mixins.py b/notes/mixins.py index 1622a39..717c6c2 100644 --- a/notes/mixins.py +++ b/notes/mixins.py @@ -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 diff --git a/notes/models.py b/notes/models.py index 64a3851..206473c 100644 --- a/notes/models.py +++ b/notes/models.py @@ -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, diff --git a/suivi/notes.py b/suivi/notes.py new file mode 100644 index 0000000..f677591 --- /dev/null +++ b/suivi/notes.py @@ -0,0 +1,13 @@ +from django.db import models +from notes.models import Note + +class Appel(Note): + + entrant = models.BooleanField( "Appel entrant ?") + + def save(self, **kwargs): + print('save', self) + return super().save(**kwargs) + + def note_labels(self): return ["Reçu" if self.entrant else "Émis", self.created_by] + def note_bg_colors(self): return ("warning", "info") diff --git a/suivi/templates/suivi/index.html b/suivi/templates/suivi/index.html index b28b04f..8dfb330 100644 --- a/suivi/templates/suivi/index.html +++ b/suivi/templates/suivi/index.html @@ -1,3 +1,5 @@ - +