many fixes
This commit is contained in:
@@ -1,44 +1,11 @@
|
||||
from django.utils import timezone
|
||||
from django.core.urlresolvers import reverse
|
||||
|
||||
from django.core.exceptions import ValidationError
|
||||
from django.utils.translation import ugettext_lazy as _
|
||||
|
||||
from django.db import models
|
||||
|
||||
# Create your models here.
|
||||
|
||||
class Personne(models.Model):
|
||||
""" Modèle de base d'une personne
|
||||
- genre
|
||||
- nom
|
||||
- prénom
|
||||
"""
|
||||
|
||||
HOMME = 'M'
|
||||
FEMME = 'Mme'
|
||||
GENRE_CHOICES = (
|
||||
(HOMME, 'Homme'),
|
||||
(FEMME, 'Femme'),
|
||||
)
|
||||
genre = models.CharField(max_length=3,
|
||||
choices=GENRE_CHOICES,
|
||||
default=HOMME)
|
||||
nom = models.CharField(max_length=32, blank=True)
|
||||
prenom = models.CharField(max_length=32, blank=True)
|
||||
surnom = models.CharField(max_length=64, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
string = '%s ' % self.genre
|
||||
if self.nom: string += '%s ' % self.nom
|
||||
if self.surnom: string += '"%s" ' % self.surnom
|
||||
if self.prenom: string += '%s' % self.prenom
|
||||
return string
|
||||
|
||||
def clean(self):
|
||||
if not any([self.nom, self.prenom, self.surnom]):
|
||||
raise ValidationError(_("Vous devez remplir au moins un nom, prénom ou surnom"))
|
||||
return super().clean()
|
||||
### Item choices
|
||||
|
||||
# Item: Parcours institutionnel
|
||||
PARCOURS_INSTITUTIONNEL = "Institutionnel"
|
||||
@@ -81,15 +48,49 @@ RESSOURCES_CHOICES = (
|
||||
)
|
||||
|
||||
|
||||
from django.db import models
|
||||
|
||||
### Models
|
||||
# - Personne
|
||||
# - Sujet
|
||||
|
||||
class Personne(models.Model):
|
||||
""" Modèle de base d'une personne
|
||||
- genre
|
||||
- nom
|
||||
- prénom
|
||||
"""
|
||||
|
||||
HOMME = 'M'
|
||||
FEMME = 'Mme'
|
||||
GENRE_CHOICES = (
|
||||
(HOMME, 'Homme'),
|
||||
(FEMME, 'Femme'),
|
||||
)
|
||||
genre = models.CharField(max_length=3,
|
||||
choices=GENRE_CHOICES,
|
||||
default=HOMME)
|
||||
nom = models.CharField(max_length=32, blank=True)
|
||||
prenom = models.CharField(max_length=32, blank=True)
|
||||
surnom = models.CharField(max_length=64, blank=True)
|
||||
|
||||
def __str__(self):
|
||||
string = '%s ' % self.genre
|
||||
if self.nom: string += '%s ' % self.nom
|
||||
if self.surnom: string += '"%s" ' % self.surnom
|
||||
if self.prenom: string += '%s' % self.prenom
|
||||
return string
|
||||
|
||||
def clean(self):
|
||||
if not any([self.nom, self.prenom, self.surnom]):
|
||||
raise ValidationError(_("Vous devez remplir au moins un nom, prénom ou surnom"))
|
||||
return super().clean()
|
||||
|
||||
|
||||
|
||||
class Sujet(Personne):
|
||||
""" Personne faisant l'objet d'un suivi par la maraude
|
||||
|
||||
"""
|
||||
# referent = models.ForeignKey("utilisateurs.Professionnel", related_name="suivis")
|
||||
|
||||
premiere_rencontre = models.DateField(default=timezone.now)
|
||||
age = models.SmallIntegerField(blank=True, null=True)
|
||||
|
||||
@@ -113,7 +114,6 @@ class Sujet(Personne):
|
||||
default=RESSOURCES_NR)
|
||||
connu_siao = models.NullBooleanField("Connu du SIAO ?")
|
||||
|
||||
|
||||
class Meta:
|
||||
verbose_name = "Sujet"
|
||||
ordering = ('surnom', 'nom', 'prenom')
|
||||
|
||||
@@ -1,85 +1,77 @@
|
||||
from django.shortcuts import render
|
||||
|
||||
from django.views import generic
|
||||
from website import decorators as website
|
||||
|
||||
from .models import Sujet
|
||||
from .forms import SujetCreateForm
|
||||
|
||||
from django.forms import ModelForm
|
||||
|
||||
|
||||
### Webpage config
|
||||
from website import decorators as website
|
||||
webpage = website.webpage(
|
||||
ajax=True,
|
||||
permissions=['sujets.view_sujets'],
|
||||
app_name="suivi",
|
||||
app_menu=["suivi/menu_sujets.html", "suivi/menu_administration.html"]
|
||||
app_menu=["sujets/menu_sujet.html"]
|
||||
)
|
||||
# Create your views here.
|
||||
|
||||
# TODO: deal with setting an active_app name other than module name
|
||||
### Views
|
||||
|
||||
@webpage
|
||||
class SujetDetailsView(generic.DetailView):
|
||||
template_name = "sujets/sujet_details.html"
|
||||
model = Sujet
|
||||
|
||||
class PageInfo:
|
||||
title = "Sujet - {{ sujet }}"
|
||||
header = "{{ sujet }}"
|
||||
header_small = "suivi"
|
||||
#DetailView
|
||||
template_name = "sujets/sujet_details.html"
|
||||
model = Sujet
|
||||
|
||||
|
||||
|
||||
@webpage
|
||||
class SujetListView(generic.ListView):
|
||||
model = Sujet
|
||||
template_name = "sujets/sujet_liste.html"
|
||||
|
||||
class PageInfo:
|
||||
title = "Sujet - Liste des sujets"
|
||||
header = "Liste des sujets"
|
||||
#ListView
|
||||
model = Sujet
|
||||
template_name = "sujets/sujet_liste.html"
|
||||
paginate_by = 10
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.app_menu = ["suivi/menu_sujets.html"]
|
||||
|
||||
|
||||
|
||||
@webpage
|
||||
class SujetUpdateView(generic.edit.UpdateView):
|
||||
template_name = "sujets/sujet_update.html"
|
||||
model = Sujet
|
||||
fields = '__all__'
|
||||
|
||||
class PageInfo:
|
||||
title = "Mise à jour - {{sujet}}"
|
||||
header = "{{sujet}}"
|
||||
header_small = "mise à jour"
|
||||
#UpdateView
|
||||
template_name = "sujets/sujet_update.html"
|
||||
model = Sujet
|
||||
fields = '__all__'
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
print('SujetUpdateView init:', self.__class__.__bases__)
|
||||
|
||||
class SujetCreateForm(ModelForm):
|
||||
class Meta:
|
||||
model = Sujet
|
||||
fields = ['nom', 'surnom', 'prenom', 'genre', 'premiere_rencontre']
|
||||
|
||||
|
||||
@webpage
|
||||
class SujetCreateView(generic.edit.CreateView):
|
||||
template_name = "sujets/sujet_create.html"
|
||||
form_class = SujetCreateForm
|
||||
|
||||
class PageInfo:
|
||||
title = "Nouveau sujet"
|
||||
header = "Nouveau sujet"
|
||||
|
||||
# Special permissions
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
self.permissions += ['sujets.add_sujet']
|
||||
|
||||
#CreateView
|
||||
template_name = "sujets/sujet_create.html"
|
||||
form_class = SujetCreateForm
|
||||
def post(self, request, *args, **kwargs):
|
||||
if 'next' in self.request.POST:
|
||||
self.success_url = self.request.POST["next"]
|
||||
return super().post(self, request, *args, **kwargs)
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
try:
|
||||
context['next'] = self.request.GET['next']
|
||||
except:
|
||||
context['next'] = None
|
||||
try: context['next'] = self.request.GET['next']
|
||||
except:context['next'] = None
|
||||
return context
|
||||
|
||||
Reference in New Issue
Block a user