123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- from django import forms
- from django.db import models
- from django.utils import timezone
- from gest_clin.models import Clinique as Clinique
- from gest_clin.models import Services as Clin_Services
- login_type = (
- (u'pnom', u'1er lettre du Prenom puis Nom'),
- (u'pnomMGAG', u'1er lettre du Prenom puis Nom en Mag'),
- (u'pre.nom', u'Prenom.Nom'),
- (u'preMAG.nomMAG', u'PRENOM.NOM'),
- (u'mixed', u'Au choix'),
- (u'pre.nom', u'Lié a AD'),
- (u'pre.nom@el', u'Lié au compte email'),
- (u'autre', u'Autre'),
- )
- def generate_password(length=9, chars="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"):
- import random
- password = ""
- for _ in range(length):
- password += random.choice(chars)
- return password
- class GES_APP(models.Model):
- GESAP_Nom = models.CharField("Nom", max_length=16)
- GESAP_ltype = models.CharField("Type de Login",choices=login_type, max_length=48, default='pre.nom')
- GESAP_Sup_Nom = models.CharField("Champ complaimentaire", max_length=16, blank=True)
- #GESAP_Commentaire = models.TextField("Aide pour la création du compte", blank=True)
- GESAP_Procedure = models.CharField("Lien vers la Procédure de création de compte", max_length=248, blank=True)
- GESAP_Actif = models.BooleanField("Active ?", default = True)
- def __str__(self):
- return self.GESAP_Nom
- class Meta:
- verbose_name = "Les apllications métiers"
- verbose_name_plural = "Les apllications métiers"
- ordering = ['GESAP_Nom']
- class GES_Fonction(models.Model):
- GESFC_Nom = models.CharField("Nom", max_length=16)
-
- def __str__(self):
- return self.GESFC_Nom
- class Meta:
- verbose_name = "Les fonctions"
- verbose_name_plural = "Les fonctions"
- ordering = ['GESFC_Nom']
-
- class GES_User(models.Model):
- GES_Site = models.ForeignKey(Clinique, verbose_name="Clinique", on_delete=models.PROTECT, null=True)
- GES_Nom = models.CharField("Nom", max_length=16)
- GES_Prenom = models.CharField("Prénom", max_length=16)
- GES_Motdepasse = models.CharField("Mot de passe", max_length=16, blank=True)
- GES_Service = models.ForeignKey(Clin_Services, verbose_name="Service", on_delete=models.PROTECT, blank=True, null=True)
- GES_Fonction = models.ForeignKey(GES_Fonction, verbose_name="Fonction", on_delete=models.PROTECT, blank=True, null=True)
- GES_APPs = models.ManyToManyField(GES_APP, verbose_name="Applications", limit_choices_to={'GESAP_Actif': True},)
- GES_Date = models.DateField("Date d'arrivée", blank=True, null=True)
- GES_OK = models.BooleanField("Création complété", default = False)
- ordering = ['GES_Service']
- def save(self, *args, **kwargs) :
- if self.GES_Motdepasse == "" :
- self.GES_Motdepasse = generate_password()
- super(GES_User, self).save(*args, **kwargs)
- def __str__(self):
- return self.GES_Nom + ' ' + self.GES_Prenom
- class Meta:
- verbose_name = "Les utilisateurs"
- verbose_name_plural = "Les utilisateurs"
- class GES_APPLink(models.Model):
- GES_APPLink_User = models.ForeignKey(GES_User, on_delete=models.CASCADE)
- GES_APPLink_APP = models.ForeignKey(GES_APP, on_delete=models.CASCADE, verbose_name="Application", limit_choices_to={'GESAP_Actif': True},)
- GES_APPLink_Login = models.CharField("Login", max_length=48)
- GES_APPLink_MDP = models.CharField("Mot de passe", max_length=16)
- GES_APPLink_Sup = models.CharField("Info supplémentaire", max_length=16, blank=True)
- GES_APPLink_Create = models.BooleanField("Crée", default = False)
- class GES_APPMat(models.Model):
- GES_Fonction = models.ForeignKey(GES_Fonction, verbose_name="Fonction", on_delete=models.PROTECT, blank=True, null=True)
- GES_Service = models.ManyToManyField(Clin_Services, verbose_name="Services")
- GES_APPs = models.ManyToManyField(GES_APP, verbose_name="Applications", limit_choices_to={'GESAP_Actif': True},)
-
- def __str__(self):
- return self.GES_Fonction.GESFC_Nom
-
- def Select_GES_Service(self):
- return "\n".join([p.SERVICE_Nom +', ' for p in self.GES_Service.all()])
- def Select_GES_APPs(self):
- return "\n".join([p.GESAP_Nom +', ' for p in self.GES_APPs.all()])
- class Meta:
- verbose_name = "Matrice Services - Fonctions - Applications"
- verbose_name_plural = "Matrice Services - Fonctions - Applications"
-
- class GES_User_form(forms.ModelForm):
- class Meta:
- model = GES_User
- fields = '__all__'
- exclude = ['GES_APPs','GES_OK',]
- class GES_APPLink_form(forms.ModelForm):
- class Meta:
- model = GES_APPLink
- fields = ['GES_APPLink_Login', 'GES_APPLink_MDP', 'GES_APPLink_Sup']
- class GES_APPLink_add_form(forms.ModelForm):
- class Meta:
- model = GES_APPLink
- fields = ['GES_APPLink_APP',]
- class PSearch_form(forms.Form):
- PSearch = forms.CharField(label='Recherche', max_length=128)
|