traite les données sans valeurs
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Thu, 12 May 2011 14:34:31 +0000 (10:34 -0400)
committerNicolas Cadou <ncadou@cadou.ca>
Thu, 19 May 2011 00:12:23 +0000 (20:12 -0400)
project/dae/forms.py
project/dae/models.py
project/dae/templates/dae/poste.html
project/dae/templates/dae/poste_resume.html

index 6690b05..e938629 100644 (file)
@@ -143,6 +143,17 @@ class JustificationAutreEmployeForm(inlineformset_factory(dae.Dossier,
 
 class PosteForm(forms.ModelForm):
     """ Formulaire des postes. """
+
+    responsable=AutoCompleteSelectField('responsables', required=True)
+    #responsable = forms.ModelChoiceField(
+    #        queryset=rh.Poste.objects.select_related(depth=1))
+
+    # La liste des choix est laissée vide. Voir __init__ pour la raison.
+    poste = forms.ChoiceField(label="Nouveau poste ou évolution du poste",
+                              choices=(), required=False)
+
+    valeur_point_min  = forms.ModelChoiceField(queryset=rh.ValeurPoint.actuelles.all(), required=False)
+    valeur_point_max = forms.ModelChoiceField(queryset=rh.ValeurPoint.actuelles.all(), required=False)
     
     
     class Meta:
@@ -173,17 +184,6 @@ class PosteForm(forms.ModelForm):
                        #devise_max=forms.Select(attrs={'disabled':'disabled'}),
                     )
 
-    responsable=AutoCompleteSelectField('responsables', required=True)
-    #responsable = forms.ModelChoiceField(
-    #        queryset=rh.Poste.objects.select_related(depth=1))
-
-    # La liste des choix est laissée vide. Voir __init__ pour la raison.
-    poste = forms.ChoiceField(label="Nouveau poste ou évolution du poste",
-                              choices=(), required=False)
-
-    valeur_point_min  = forms.ModelChoiceField(queryset=rh.ValeurPoint.actuelles.all(), required=False)
-    valeur_point_max = forms.ModelChoiceField(queryset=rh.ValeurPoint.actuelles.all(), required=False)
-
     def __init__(self, *args, **kwargs):
         """ Mise à jour dynamique du contenu du menu des postes.
 
index 2f832d8..e1a2e97 100644 (file)
@@ -203,7 +203,7 @@ class Poste(PosteWorkflow, models.Model):
         try:
             return rh.TauxChange.objects.filter(implantation=self.implantation, devise=self.devise_min)[0].taux
         except:
-            return 1
+            raise Exception('Taux indisponible pour la devise %s (%s)' % (self.devise_min, self.implantation))
 
     def get_couts_minimum_euros(self):
         return self.get_couts_minimum() * self.get_taux_minimum()
@@ -215,11 +215,37 @@ class Poste(PosteWorkflow, models.Model):
         try:
             return rh.TauxChange.objects.filter(implantation=self.implantation, devise=self.devise_max)[0].taux
         except:
-            return 1
+            raise Exception('Taux indisponible pour la devise %s (%s)' % (self.devise_max, self.implantation))
 
     def get_couts_maximum_euros(self):
         return self.get_couts_maximum() * self.get_taux_maximum()
 
+
+    def show_taux_minimum(self):
+        try:
+            return self.get_taux_minimum()
+        except Exception, e:
+            return e
+
+    def show_couts_minimum_euros(self):
+        try:
+            return self.get_couts_minimum_euros()
+        except Exception, e:
+            return e
+
+    def show_taux_maximum(self):
+        try:
+            return self.get_taux_maximum()
+        except Exception, e:
+            return e
+
+    def show_couts_maximum_euros(self):
+        try:
+            return self.get_couts_maximum_euros()
+        except Exception, e:
+            return e
+
+
     ######################
     # Comparaison de poste
     ######################
index 39243ab..09a630b 100644 (file)
@@ -181,9 +181,9 @@ Demande d'autorisation d'embauche
                 {{ form.salaire_min.errors }}
             </td>
             <td><span class="devise_code">EUR</span></td>
-            <td>{{ form.indemn_min }}</td>
+            <td>{{ form.indemn_min }} {{ form.indemn_min.errors }}</td>
             <td><span class="devise_code">EUR</span></td>
-            <td>{{ form.autre_min }}</td>
+            <td>{{ form.autre_min }} {{ form.autre_min.errors }}</td>
             <td><span class="devise_code">EUR</span></td>
             <td id="total_min" class="total-devise cell-nombre">0.00</td>
             <td><span class="devise_code">EUR</span></td>
@@ -210,9 +210,9 @@ Demande d'autorisation d'embauche
                 {{ form.salaire_max.errors }}
             </td>
             <td><span class="devise_code">EUR</span></td>
-            <td>{{ form.indemn_max }}</td>
+            <td>{{ form.indemn_max }} {{ form.indemn_max.errors }}</td>
             <td><span class="devise_code">EUR</span></td>
-            <td>{{ form.autre_max }}</td>
+            <td>{{ form.autre_max }} {{ form.autre_max.errors }}</td>
             <td><span class="devise_code">EUR</span></td>
             <td id="total_max" class="total-devise cell-nombre">0.00</td>
             <td><span class="devise_code">EUR</span></td>
index 770bcbe..6de655f 100644 (file)
@@ -86,9 +86,9 @@
         <td class="montant">{{ poste.salaire_min|floatformat:0 }} {{ poste.devise_min.code }}</td>
         <td class="montant">{{ poste.indemn_min|floatformat:0 }} {{ poste.devise_min.code }}</td>
         <td class="montant">{{ poste.autre_min|floatformat:0 }} {{ poste.devise_min.code }}</td>
-        <td class="montant">{{ poste.get_couts_minimum|floatformat:0 }} {{ poste.devise_min.code }}</td>
-        <td>{{ poste.get_taux_minimum }}</td>
-        <td class="montant">{{ poste.get_couts_minimum_euros|floatformat:0 }} EUR</td>
+        <td class="montant">{{ poste.show_couts_minimum|floatformat:0 }} {{ poste.devise_min.code }}</td>
+        <td>{{ poste.show_taux_minimum }}</td>
+        <td class="montant">{{ poste.show_couts_minimum_euros|floatformat:0 }} EUR</td>
     </tr>
     <tr>
         <th>Maximum</th>
@@ -96,9 +96,9 @@
         <td class="montant">{{ poste.salaire_max|floatformat:0 }} {{ poste.devise_max.code }}</td>
         <td class="montant">{{ poste.indemn_max|floatformat:0 }} {{ poste.devise_max.code }}</td>
         <td class="montant">{{ poste.autre_max|floatformat:0 }} {{ poste.devise_max.code }}</td>
-        <td class="montant">{{ poste.get_couts_maximum|floatformat:0 }} {{ poste.devise_max.code }}</td>
-        <td>{{ poste.get_taux_maximum }}</td>
-        <td class="montant">{{ poste.get_couts_maximum_euros|floatformat:0 }} EUR</td>
+        <td class="montant">{{ poste.show_couts_maximum|floatformat:0 }} {{ poste.devise_max.code }}</td>
+        <td>{{ poste.show_taux_maximum }}</td>
+        <td class="montant">{{ poste.show_couts_maximum_euros|floatformat:0 }} EUR</td>
     </tr>
     </tbody>
 </table>