[#2562] Séparation des éléments 1, 2 et 3, chacuns dans leur table
authorEric Mc Sween <eric.mcsween@auf.org>
Fri, 24 Feb 2012 19:34:24 +0000 (14:34 -0500)
committerEric Mc Sween <eric.mcsween@auf.org>
Fri, 24 Feb 2012 19:40:13 +0000 (14:40 -0500)
CHANGES [new file with mode: 0644]
auf/django/coda/managedcoda/models.py
auf/django/coda/models.py

diff --git a/CHANGES b/CHANGES
new file mode 100644 (file)
index 0000000..c14515a
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,8 @@
+0.6 (2012-02-24)
+================
+
+* Déclaration des namespace packages
+
+* Des vues vers la BD ``coda`` sont maintenant créées au syncdb
+
+* Séparation des éléments en trois tables distinctes
index 21b5f37..463ce45 100644 (file)
@@ -3,38 +3,37 @@
 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, db_index=True)
+    code = models.CharField(max_length=72, primary_key=True)
     timestamp = models.BigIntegerField()
     nom = models.CharField(max_length=36)
 
-    # Managers
-    objects = models.Manager()
-    comptes_comptables = ElementManager(1)
-    tiers_operations = ElementManager(2)
-    projets_postes = ElementManager(3)
-
     class Meta:
-        db_table = 'coda_element'
-        ordering = ['id']
+        abstract = True
+        ordering = ['code']
 
     def __unicode__(self):
         return self.code
 
 
+class PCG(Element):
+
+    class Meta:
+        db_table = 'coda_pcg'
+
+
+class TiersOperation(Element):
+
+    class Meta:
+        db_table = 'coda_tiersoperation'
+
+
+class ProjetPoste(Element):
+
+    class Meta:
+        db_table = 'coda_projetposte'
+
+
 class Ecriture(models.Model):
     id = models.CharField(max_length=25, primary_key=True)
     code = models.CharField(max_length=12)
@@ -49,7 +48,7 @@ class Ecriture(models.Model):
         ordering = ['id']
 
 
-class LigneEcriture(models.Model):
+class Ligne(models.Model):
     DEBIT_CREDIT_CHOICES = (
         ('D', 'Débit'),
         ('C', 'Crédit'),
@@ -66,12 +65,12 @@ class LigneEcriture(models.Model):
     )
 
     id = models.CharField(max_length=36, primary_key=True)
-    ecriture = models.ForeignKey(Ecriture, related_name='doclines')
+    ecriture = models.ForeignKey(Ecriture, related_name='lignes')
     numero = models.IntegerField()
     timestamp = models.BigIntegerField()
-    compte_comptable = models.ForeignKey(Element, related_name='+')
-    tiers_operation = models.ForeignKey(Element, related_name='+')
-    projet_poste = models.ForeignKey(Element, related_name='+')
+    pcg = models.ForeignKey(PCG, related_name='lignes')
+    tiers_operation = models.ForeignKey(TiersOperation, related_name='lignes')
+    projet_poste = models.ForeignKey(ProjetPoste, related_name='lignes')
     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)
@@ -83,5 +82,5 @@ class LigneEcriture(models.Model):
     etat_paiement = models.CharField(max_length=1, choices=ETAT_PAIEMENT_CHOICES)
 
     class Meta:
-        db_table = 'coda_ligneecriture'
+        db_table = 'coda_ligne'
         ordering = ['id']
index 65d71e0..102419c 100644 (file)
@@ -3,7 +3,21 @@
 from auf.django.coda.managedcoda import models as managedcoda
 
 
-class Element(managedcoda.Element):
+class PCG(managedcoda.PCG):
+
+    class Meta:
+        proxy = True
+        managed = False
+
+
+class TiersOperation(managedcoda.TiersOperation):
+
+    class Meta:
+        proxy = True
+        managed = False
+
+
+class ProjetPoste(managedcoda.ProjetPoste):
 
     class Meta:
         proxy = True
@@ -17,7 +31,7 @@ class Ecriture(managedcoda.Ecriture):
         managed = False
 
 
-class LigneEcriture(managedcoda.LigneEcriture):
+class Ligne(managedcoda.Ligne):
 
     class Meta:
         proxy = True