Bureautique: nettoyage et précisions
authorOngolaboy <willy.manga@auf.org>
Sun, 8 Mar 2015 12:31:28 +0000 (13:31 +0100)
committerOngolaboy <willy.manga@auf.org>
Sun, 8 Mar 2015 12:31:28 +0000 (13:31 +0100)
 * lors d'un retrait de consommable, ne proposer que les consommables
encore disponible

 * un consommable peut être assigné à plusieurs imprimantes et
vice-versa

 * ne pas oublier d'ajouter des valeurs par défaut

 * simplification des attributs

projets_django/bacgl_utils/bureautique/models.py

index ab6bb32..241d95f 100644 (file)
@@ -2,7 +2,6 @@
 
 import datetime
 from django.db import models
-from django.utils import timezone
 
 
 # Create your models here.
@@ -19,7 +18,7 @@ class Equipement(models.Model):
     marque = models.CharField(max_length=200,default="HP")
     modele = models.CharField(max_length=200,blank=True)
     num_serie = models.CharField("Numéro de série",
-            max_length=200,unique=True)
+            max_length=200,unique=True,default='x1')
     date_acquisition = models.DateField("Date d'acquisition")
 
 
@@ -32,43 +31,23 @@ class Imprimante(Equipement):
             ("multifonction","Multifonction"),
             )
 
-    emplacement = models.CharField(max_length=200)
-    fqdn = models.CharField("Nom DNS",max_length=200)
+    emplacement = models.CharField(max_length=200,default='Bureau')
+    fqdn = models.CharField("Nom DNS",max_length=200,default='Imprimante')
     categorie = \
             models.CharField(\
             "Type d'imprimante",
             max_length=20,
-            choices=CATEGORIE_IMPRIMANTE
+            choices=CATEGORIE_IMPRIMANTE,
+            default='encre',
             )
 
     def __unicode__(self):
-        return "Imprimante: %s %s (%s)" %\
-            (self.marque,self.modele,self.emplacement)
+        return "%s (%s)" % (self.modele,self.emplacement)
 
 
 class Consommable(Equipement):
     """Informations sur les consommables du bureau"""
 
-    CATEGORIE_CONSOMMABLE = (
-            ("encre","Jet d'encre"),
-            ("toner","Laser"),
-            ("autre","autres types"),
-            )
-
-    NOM_CONSOMMABLE = (
-            ("45","45"),
-            ("56","56"),
-            ("57","57"),
-            ("78","78"),
-            ("130","130"),
-            ("134","134"),
-            ("339","339"),
-            ("344","344"),
-            ("05A","05A"),
-            ("501A","501A"),
-            ("920XL","920XL"),
-            )
-
     NOM_COULEUR = (
             ("noir","noir"),
             ("jaune","jaune"),
@@ -77,20 +56,20 @@ class Consommable(Equipement):
             ("mixte","mixte"),
             )
 
-    nom = models.CharField(max_length=20,choices=NOM_CONSOMMABLE)
-    couleur = models.CharField(max_length=20,choices=NOM_COULEUR)
-    categorie = \
-            models.CharField(max_length=20,choices=CATEGORIE_CONSOMMABLE)
+    couleur = models.CharField(max_length=20,choices=NOM_COULEUR,
+            default='noir')
     date_expiration = models.DateField()
     disponible = models.BooleanField(default=True)
+    imprimante_compatible = models.ManyToManyField(Imprimante,blank=True)
 
     def __unicode__(self):
-        return "%s %s (%s)" %(self.nom,self.couleur,self.num_serie)
+        return "%s %s (%s)" %(self.modele,self.couleur,self.num_serie)
 
 class RetraitConsommable(models.Model):
     demandeur = models.ForeignKey(Personnel)
     date_retrait = models.DateField("date du retrait",auto_now_add=True)
-    code_consommable = models.OneToOneField(Consommable)
+    code_consommable = models.OneToOneField(Consommable,
+            limit_choices_to={'disponible__exact=True':True})
     imprimante_utilisee = models.ForeignKey(Imprimante)
 
     def __unicode__(self):