added SignalementForm, updated NoteFormMixin, various fixes

This commit is contained in:
Arthur Gerbaud
2016-08-24 18:17:59 +02:00
parent 6e9a76696e
commit 746c21e52b
13 changed files with 100 additions and 38 deletions

View File

@@ -1,10 +1,40 @@
from .notes import *
from notes.forms import *
from django.utils import timezone
from sujets.models import Sujet, GENRE_CHOICES
from django import forms
class AppelForm(UserNoteForm):
class Meta(UserNoteForm.Meta):
model = Appel
fields = ['sujet', 'text', 'entrant', 'created_date', 'created_time']
class SignalementForm(UserNoteForm):
nom = forms.CharField(64, required=False)
prenom = forms.CharField(64, required=False)
age = forms.IntegerField(required=False)
genre = forms.ChoiceField(choices=GENRE_CHOICES)
class Meta(UserNoteForm.Meta):
model = Signalement
fields = ['text', 'source', 'created_date', 'created_time']
def clean(self):
super().clean()
if not self.cleaned_data['nom'] and not self.cleaned_data['prenom']:
self.add_error('nom', '')
self.add_error('prenom', '')
raise forms.ValidationError("Entrez au moins un nom ou prénom")
def save(self, commit=True):
sujet = Sujet.objects.create(
nom=self.cleaned_data['nom'],
prenom=self.cleaned_data['prenom'],
genre=self.cleaned_data['genre'],
age=self.cleaned_data['age']
)
instance = super().save(commit=False)
instance.sujet = sujet
if commit:
instance.save()
return instance

View File

@@ -11,10 +11,10 @@ class Appel(Note):
class Signalement(Note):
source = models.CharField('Source', max_length=128)
source = models.ForeignKey("utilisateurs.Organisme")
def note_labels(self): return [self.source]
def note_bg_colors(self): return ('warning', 'alert')
def note_labels(self): return [self.source, self.created_by]
def note_bg_colors(self): return ('warning', 'info')

View File

@@ -1,4 +1,3 @@
<div class="panel panel-primary">
<div class="panel-heading">
<h4 class="panel-title">Enregistrer un appel</h4>

View File

@@ -1,4 +1,5 @@
{% load bootstrap3 %}
{{ form.media.js }}{{ form.media.css }}
<form action="" method="POST">{% csrf_token %}
{% with "inline" as layout %}
<div class="form-group form-{{layout}} well col-md-10 col-md-offset-2">

View File

@@ -1,5 +1,7 @@
<div class="col-md-6 col-md-offset-6">
{% include "suivi/appel_form.html" %}
<div class="col-md-6">
{% include "suivi/signalement_form.html" with form=signalement_form %}
</div>
<div class="col-md-6">
{% include "suivi/appel_form.html" with form=appel_form %}
</div>

View File

@@ -1,9 +1,14 @@
{% load bootstrap3 %}
<li class="dropdown app-menu"><a class="dropdown-toggle" data-toggle="dropdown" href="#">Sujets<b class="caret"></b></a>
<li class="app-menu">
<a href="{% url 'sujets:liste' %}">Liste des sujets
<span class="pull-right">{% bootstrap_icon "list" %}</span></a>
</li>
{% if user.is_superuser %}{% load bootstrap3 %}
<li class="dropdown app-menu">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
Administration <b class="caret"></b>
</a>
<ul class="dropdown-menu">
<li><a href="{% url 'sujets:liste' %}">{% bootstrap_icon "list" %} Liste complète</a></li>
{% if user.is_superuser %}{% load bootstrap3 %}
<li class="dropdown-header">Administration</li>
<li><a href="{% url 'sujets:create' %}">{% bootstrap_icon "plus" %} Nouveau sujet</a></li>
<li><a href="{% url 'admin:app_list' app_label='sujets' %}">
{% bootstrap_icon "wrench" %} Gérer les sujets</a></li>

View File

@@ -1,5 +1,6 @@
from django.shortcuts import render, reverse
from django.views import generic
from django.utils import timezone
from sujets.models import Sujet
from .forms import *
@@ -22,13 +23,16 @@ class IndexView(NoteFormMixin, generic.TemplateView):
header = "Suivi"
header_small = "Tableau de bord"
#NoteFormMixin
form_class = AppelForm
forms = {
'appel': AppelForm,
'signalement': SignalementForm,
}
success_url = "/suivi/"
#FormView
template_name = "suivi/index.html"
def get_initial(self):
return {'created_date': timezone.now().date(),
'created_time': timezone.now().time()}
return {'created_date': timezone.localtime(timezone.now()).date(),
'created_time': timezone.localtime(timezone.now()).time()}
@@ -40,7 +44,9 @@ class SuiviSujetView(NoteFormMixin, generic.DetailView):
header = "{{sujet}}"
header_small = "suivi"
#NoteFormMixin
form_class = AutoNoteForm
forms = {
'note': AutoNoteForm,
}
def get_success_url(self):
return reverse('suivi:details', kwargs={'pk': self.get_object().pk})
def get_form_kwargs(self):