Files
django-maraudes/sujets/models.py
2016-08-06 19:55:57 +02:00

125 lines
3.9 KiB
Python

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: Parcours institutionnel
PARCOURS_INSTITUTIONNEL = "Institutionnel"
PARCOURS_FAMILIAL = "Familial"
PARCOURS_NR = "Non renseigné"
PARCOURS_DE_VIE_CHOICES = (
(PARCOURS_FAMILIAL, "Parcours familial"),
(PARCOURS_INSTITUTIONNEL, "Parcours institutionnel"),
(PARCOURS_NR, "Ne sait pas"),
)
#Item: Type d'habitation
HABITATION_SANS = "Sans Abri"
HABITATION_LOGEMENT = "Logement"
HABITATION_TIERS = "Hébergement"
HABITATION_MAL_LOGEMENT = "Mal logé"
HABITATION_NR = "Non renseigné"
HABITATION_CHOICES = (
(HABITATION_SANS, "Sans abri"),
(HABITATION_TIERS, "Hébergé"),
(HABITATION_LOGEMENT, "Logé"),
(HABITATION_MAL_LOGEMENT, "Mal logé"),
(HABITATION_NR, "Ne sait pas"),
)
#Item: Ressources
RESSOURCES_RSA = "RSA"
RESSOURCES_AAH = "AAH"
RESSOURCES_POLE_EMPLOI = "Pôle Emploi"
RESSOURCES_AUTRES = "Autres"
RESSOURCES_SANS = "Pas de ressources"
RESSOURCES_NR = "Non renseigné"
RESSOURCES_CHOICES = (
(RESSOURCES_AAH, "AAH"),
(RESSOURCES_RSA, "RSA"),
(RESSOURCES_SANS, "Aucune"),
(RESSOURCES_POLE_EMPLOI, "Pôle emploi"),
(RESSOURCES_AUTRES, "Autres ressources"),
(RESSOURCES_NR, "Ne sait pas")
)
from django.db import models
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)
lien_familial = models.NullBooleanField("Lien Familial")
parcours_de_vie = models.CharField(max_length=64,
choices=PARCOURS_DE_VIE_CHOICES,
default=PARCOURS_NR)
# Problématiques
prob_psychiatrie = models.NullBooleanField("Psychiatrie")
prob_administratif = models.NullBooleanField("Administratif")
prob_addiction = models.NullBooleanField("Addiction")
prob_somatique = models.NullBooleanField("Somatique")
# Logement
habitation = models.CharField("Type d'habitat", max_length=64,
choices=HABITATION_CHOICES,
default=HABITATION_NR)
ressources = models.CharField("Ressources", max_length=64,
choices=RESSOURCES_CHOICES,
default=RESSOURCES_NR)
connu_siao = models.NullBooleanField("Connu du SIAO ?")
class Meta:
verbose_name = "Sujet"
permissions = (
('view_sujets', "Accès à l'application 'sujets'"),
)
def get_absolute_url(self):
return reverse('suivi:details', kwargs={'pk': self.id})