added SignalementForm, updated NoteFormMixin, various fixes
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
|
||||
<div class="panel panel-primary">
|
||||
<div class="panel-heading">
|
||||
<h4 class="panel-title">Enregistrer un appel</h4>
|
||||
|
||||
@@ -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">
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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):
|
||||
|
||||
Reference in New Issue
Block a user