add signalement model and form on maraudes:index

This commit is contained in:
Arthur Gerbaud
2016-08-10 13:52:32 +02:00
parent 824d000cb1
commit d31f1e05e3
5 changed files with 21 additions and 4 deletions

View File

@@ -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,

View File

@@ -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')

View File

@@ -17,6 +17,8 @@
{% include 'maraudes/panel_dernieres_maraudes.html' %}
{% include 'maraudes/panel_signalement.html' %}
{% if user.is_superuser %}<div class="col-md-6" id="administration">
<div class="panel panel-danger">
<div class="panel-heading">Administration</div>

View File

@@ -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

View File

@@ -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')