diff --git a/maraudes/forms.py b/maraudes/forms.py index afc1359..fce4cc5 100644 --- a/maraudes/forms.py +++ b/maraudes/forms.py @@ -3,7 +3,7 @@ from django.forms import inlineformset_factory from notes.forms import NoteForm # Models from .models import Maraude, Rencontre -from .notes import Observation +from .notes import Observation, Signalement class MaraudeAutoDateForm(forms.ModelForm): @@ -24,6 +24,12 @@ class RencontreForm(forms.ModelForm): fields = ['lieu', 'heure_debut', 'duree'] +class SignalementForm(NoteForm): + + class Meta: + model = Signalement + fields = ['source', 'created_date', 'created_time', 'sujet', 'text'] + ObservationInlineFormSet = inlineformset_factory( Rencontre, Observation, form=NoteForm, diff --git a/maraudes/notes.py b/maraudes/notes.py index 3651443..1cfafc0 100644 --- a/maraudes/notes.py +++ b/maraudes/notes.py @@ -28,4 +28,9 @@ class Observation(Note): def note_bg_colors(self): return ("info", "info") +class Signalement(Note): + source = models.CharField('Source', max_length=128) + + def note_labels(self): return [self.source] + def note_bg_colors(self): return ('warning', 'alert') diff --git a/maraudes/templates/maraudes/index.html b/maraudes/templates/maraudes/index.html index 12a1407..2abbc74 100644 --- a/maraudes/templates/maraudes/index.html +++ b/maraudes/templates/maraudes/index.html @@ -17,6 +17,8 @@ {% include 'maraudes/panel_dernieres_maraudes.html' %} +{% include 'maraudes/panel_signalement.html' %} + {% if user.is_superuser %}
Administration
diff --git a/maraudes/views.py b/maraudes/views.py index c471543..65f9f91 100644 --- a/maraudes/views.py +++ b/maraudes/views.py @@ -18,7 +18,7 @@ from django import forms from django.forms import inlineformset_factory, modelformset_factory, modelform_factory from django.forms.extras import widgets from django_select2.forms import Select2Widget -from .forms import ( RencontreForm, RencontreInlineFormSet, +from .forms import ( RencontreForm, RencontreInlineFormSet, SignalementForm, ObservationInlineFormSet, ObservationInlineFormSetNoExtra, MaraudeAutoDateForm, MonthSelectForm, ) @@ -46,7 +46,7 @@ class DerniereMaraudeMixin(object): @webpage -class IndexView(DerniereMaraudeMixin, generic.TemplateView): +class IndexView(DerniereMaraudeMixin, generic.FormView): class PageInfo: title = "Maraude - Tableau de bord" @@ -54,6 +54,7 @@ class IndexView(DerniereMaraudeMixin, generic.TemplateView): header_small = "Tableau de bord" template_name = "maraudes/index.html" + form_class = SignalementForm ## MARAUDES diff --git a/website/decorators.py b/website/decorators.py index 256d5c8..f981d70 100644 --- a/website/decorators.py +++ b/website/decorators.py @@ -3,10 +3,13 @@ from .mixins import * def _insert_bases(cls, bases): old_bases = cls.__bases__ new_bases = tuple(bases) + old_bases - print(new_bases) cls.__bases__ = new_bases def webpage(**options): + """ Class decorators that insert needed bases according to options : + -- ajax : view will return content_template for Ajax requests + -- permissions : list of permissions needed to access view + """ try: ajax = options.pop('ajax') except KeyError: ajax = False try: permissions = options.pop('permissions')