Adding the core applications code to the repository
This commit is contained in:
124
sujets/models.py
Normal file
124
sujets/models.py
Normal file
@@ -0,0 +1,124 @@
|
||||
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('suivis:details', kwargs={'pk': self.id})
|
||||
Reference in New Issue
Block a user