add signalement model and form on maraudes:index
This commit is contained in:
@@ -3,7 +3,7 @@ from django.forms import inlineformset_factory
|
|||||||
from notes.forms import NoteForm
|
from notes.forms import NoteForm
|
||||||
# Models
|
# Models
|
||||||
from .models import Maraude, Rencontre
|
from .models import Maraude, Rencontre
|
||||||
from .notes import Observation
|
from .notes import Observation, Signalement
|
||||||
|
|
||||||
|
|
||||||
class MaraudeAutoDateForm(forms.ModelForm):
|
class MaraudeAutoDateForm(forms.ModelForm):
|
||||||
@@ -24,6 +24,12 @@ class RencontreForm(forms.ModelForm):
|
|||||||
fields = ['lieu', 'heure_debut', 'duree']
|
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,
|
ObservationInlineFormSet = inlineformset_factory( Rencontre, Observation,
|
||||||
form=NoteForm,
|
form=NoteForm,
|
||||||
|
|||||||
@@ -28,4 +28,9 @@ class Observation(Note):
|
|||||||
def note_bg_colors(self): return ("info", "info")
|
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')
|
||||||
|
|||||||
@@ -17,6 +17,8 @@
|
|||||||
|
|
||||||
{% include 'maraudes/panel_dernieres_maraudes.html' %}
|
{% include 'maraudes/panel_dernieres_maraudes.html' %}
|
||||||
|
|
||||||
|
{% include 'maraudes/panel_signalement.html' %}
|
||||||
|
|
||||||
{% if user.is_superuser %}<div class="col-md-6" id="administration">
|
{% if user.is_superuser %}<div class="col-md-6" id="administration">
|
||||||
<div class="panel panel-danger">
|
<div class="panel panel-danger">
|
||||||
<div class="panel-heading">Administration</div>
|
<div class="panel-heading">Administration</div>
|
||||||
|
|||||||
@@ -18,7 +18,7 @@ from django import forms
|
|||||||
from django.forms import inlineformset_factory, modelformset_factory, modelform_factory
|
from django.forms import inlineformset_factory, modelformset_factory, modelform_factory
|
||||||
from django.forms.extras import widgets
|
from django.forms.extras import widgets
|
||||||
from django_select2.forms import Select2Widget
|
from django_select2.forms import Select2Widget
|
||||||
from .forms import ( RencontreForm, RencontreInlineFormSet,
|
from .forms import ( RencontreForm, RencontreInlineFormSet, SignalementForm,
|
||||||
ObservationInlineFormSet, ObservationInlineFormSetNoExtra,
|
ObservationInlineFormSet, ObservationInlineFormSetNoExtra,
|
||||||
MaraudeAutoDateForm, MonthSelectForm, )
|
MaraudeAutoDateForm, MonthSelectForm, )
|
||||||
|
|
||||||
@@ -46,7 +46,7 @@ class DerniereMaraudeMixin(object):
|
|||||||
|
|
||||||
|
|
||||||
@webpage
|
@webpage
|
||||||
class IndexView(DerniereMaraudeMixin, generic.TemplateView):
|
class IndexView(DerniereMaraudeMixin, generic.FormView):
|
||||||
|
|
||||||
class PageInfo:
|
class PageInfo:
|
||||||
title = "Maraude - Tableau de bord"
|
title = "Maraude - Tableau de bord"
|
||||||
@@ -54,6 +54,7 @@ class IndexView(DerniereMaraudeMixin, generic.TemplateView):
|
|||||||
header_small = "Tableau de bord"
|
header_small = "Tableau de bord"
|
||||||
|
|
||||||
template_name = "maraudes/index.html"
|
template_name = "maraudes/index.html"
|
||||||
|
form_class = SignalementForm
|
||||||
|
|
||||||
|
|
||||||
## MARAUDES
|
## MARAUDES
|
||||||
|
|||||||
@@ -3,10 +3,13 @@ from .mixins import *
|
|||||||
def _insert_bases(cls, bases):
|
def _insert_bases(cls, bases):
|
||||||
old_bases = cls.__bases__
|
old_bases = cls.__bases__
|
||||||
new_bases = tuple(bases) + old_bases
|
new_bases = tuple(bases) + old_bases
|
||||||
print(new_bases)
|
|
||||||
cls.__bases__ = new_bases
|
cls.__bases__ = new_bases
|
||||||
|
|
||||||
def webpage(**options):
|
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')
|
try: ajax = options.pop('ajax')
|
||||||
except KeyError: ajax = False
|
except KeyError: ajax = False
|
||||||
try: permissions = options.pop('permissions')
|
try: permissions = options.pop('permissions')
|
||||||
|
|||||||
Reference in New Issue
Block a user