[#4971] Générer une erreur lisible lorsqu'un taux de change n'est pas associé à une...
authorEric Mc Sween <eric.mcsween@auf.org>
Wed, 12 Dec 2012 15:58:47 +0000 (10:58 -0500)
committerEric Mc Sween <eric.mcsween@auf.org>
Wed, 12 Dec 2012 15:58:47 +0000 (10:58 -0500)
project/dae/views.py

index f6933f0..1ac7b48 100644 (file)
@@ -6,10 +6,9 @@ from auf.django.permissions.decorators import get_object
 from django.contrib import messages
 from django.contrib.auth.decorators import login_required, user_passes_test
 from django.contrib.contenttypes.models import ContentType
-from django.core.exceptions import MultipleObjectsReturned
 from django.core.paginator import Paginator, InvalidPage
 from django.db.models import Q
-from django.http import Http404, HttpResponse, HttpResponseGone
+from django.http import Http404, HttpResponse, HttpResponseNotFound
 from django.shortcuts import redirect, render, get_object_or_404
 from sendfile import sendfile
 from simplejson import dumps
@@ -866,7 +865,7 @@ def dossier_resume(request, dossier_id=None):
     try:
         dossier = rh.Dossier.objects.get(id=dossier_id)
     except:
-        return HttpResponseGone("Ce dossier n'est pas accessible")
+        return HttpResponseNotFound("Ce dossier n'est pas accessible")
 
     data = {}
     data['personne'] = unicode(dossier.employe)
@@ -890,7 +889,7 @@ def poste_resume(request, dossier_id=None):
     try:
         dossier = rh.Dossier.objects.get(id=dossier_id)
     except:
-        return HttpResponseGone("Ce dossier n'est pas accessible")
+        return HttpResponseNotFound("Ce dossier n'est pas accessible")
 
     data = {}
     data['implantation'] = dossier.poste.implantation.id
@@ -973,8 +972,13 @@ def devise(request):
             taux = rh.TauxChange.objects.get(
                 annee=annee, devise=valeur_point.devise
             )
-        except MultipleObjectsReturned:
-            return HttpResponseGone(
+        except rh.TauxChange.DoesNotExist:
+            return HttpResponseNotFound(
+                u"Taux de change introuvable pour la devise %s "
+                u"pour l'année %d" % (valeur_point.devise.code, annee)
+            )
+        except rh.TauxChange.MultipleObjectsReturned:
+            return HttpResponseNotFound(
                 u"Il existe plusieurs taux pour la devise %s "
                 u"cette année-là : %s" % (valeur_point.devise.code, annee)
             )
@@ -984,7 +988,7 @@ def devise(request):
         data['devise_code'] = taux.devise.code
         data['taux_euro'] = taux.taux
     else:
-        return HttpResponseGone("Vous devez choisir une valeur de point")
+        return HttpResponseNotFound("Vous devez choisir une valeur de point")
     return HttpResponse(dumps(data))
 
 
@@ -1002,7 +1006,7 @@ def devise_code(request):
         annee = date.today().year
         taux = rh.TauxChange.objects.filter(annee=annee, devise=devise)
         if len(taux) == 0:
-            return HttpResponseGone("Le taux n'est pas disponible")
+            return HttpResponseNotFound("Le taux n'est pas disponible")
         data['devise_code'] = devise.code
         data['taux_euro'] = taux[0].taux
     return HttpResponse(dumps(data))