Ordonnancements par défaut
[auf_django_coda.git] / auf / django / coda / models.py
index fc539ba..a74daa4 100755 (executable)
@@ -3,18 +3,37 @@
 from django.conf import settings
 from django.db import models
 
+class ElementManager(models.Manager):
+
+    def __init__(self, niveau):
+        super(ElementManager, self).__init__()
+        self.niveau = niveau
+
+    def get_query_set(self):
+        qs = super(ElementManager, self).get_query_set()
+        return qs.filter(niveau=self.niveau)
+
 
 class Element(models.Model):
     id = models.CharField(max_length=74, primary_key=True)
     niveau = models.IntegerField()
-    code = models.CharField(max_length=72)
+    code = models.CharField(max_length=72, db_index=True)
     date_modification = models.DateField()
     nom = models.CharField(max_length=36)
 
+    # Managers
+    objects = models.Manager()
+    comptes_comptables = ElementManager(1)
+    tiers_operations = ElementManager(2)
+    projets_postes = ElementManager(3)
+
     class Meta:
         managed = False
         db_table = 'coda_element'
+        ordering = ['id']
 
+    def __unicode__(self):
+        return self.code
 
 class Ecriture(models.Model):
     id = models.CharField(max_length=25, primary_key=True)
@@ -28,6 +47,7 @@ class Ecriture(models.Model):
     class Meta:
         managed = False
         db_table = 'coda_ecriture'
+        ordering = ['id']
 
 
 class LigneEcriture(models.Model):
@@ -47,9 +67,9 @@ class LigneEcriture(models.Model):
     ecriture = models.ForeignKey(Ecriture, related_name='doclines')
     numero = models.IntegerField()
     date_modification = models.DateField()
-    compte_comptable = models.ForeignKey(Element, related_name='+', db_index=True)
-    tiers_operation = models.ForeignKey(Element, related_name='+', db_index=True)
-    projet_poste = models.ForeignKey(Element, related_name='+', db_index=True)
+    compte_comptable = models.ForeignKey(Element, related_name='+')
+    tiers_operation = models.ForeignKey(Element, related_name='+')
+    projet_poste = models.ForeignKey(Element, related_name='+')
     description = models.CharField(max_length=36)
     montant_eur = models.DecimalField(max_digits=17, decimal_places=2)
     debit_credit = models.CharField(max_length=1, choices=DEBIT_CREDIT_CHOICES)
@@ -63,3 +83,4 @@ class LigneEcriture(models.Model):
     class Meta:
         managed = False
         db_table = 'coda_ligne_ecriture'
+        ordering = ['id']