fix #1448 #1453
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 11 May 2011 15:41:04 +0000 (11:41 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Wed, 11 May 2011 15:41:04 +0000 (11:41 -0400)
project/rh_v1/models.py

index 3852093..840935a 100644 (file)
@@ -397,6 +397,18 @@ TYPE_CLASSEMENT_CHOICES = (
     ('S', 'S'),
     ('T', 'T'),
 )
+
+class ClassementManager(models.Manager):
+    """
+    Ordonner les spcéfiquement les classements.
+    """
+    def get_query_set(self):
+        qs = super(self.__class__, self).get_query_set()
+        qs = qs.extra(select={'ponderation': 'FIND_IN_SET(type,"SO,HG,S,T,P,C,D")'})
+        qs = qs.extra(order_by=('ponderation', ))
+        return qs.all()
+
+
 class Classement(models.Model):
     # Identification
     id = models.IntegerField(primary_key=True)
@@ -409,9 +421,12 @@ class Classement(models.Model):
     date_modification = models.DateField(auto_now=True)
     actif = models.BooleanField()
 
+    # managers
+    objects = ClassementManager()
+
     def __unicode__(self):
-        return u'%s.%s.%s (%s)' % (self.type, self.echelon, self.degre,
-                                   self.coefficient)
+        return u'%s.%s.%s' % (self.type, self.echelon, self.degre )
+
     class Meta:
         ordering = ['type','echelon','degre','coefficient']