diff --git a/grandlyon_elyx/models.py b/grandlyon_elyx/models.py index 6cd9e99..ab7c27e 100644 --- a/grandlyon_elyx/models.py +++ b/grandlyon_elyx/models.py @@ -6,7 +6,9 @@ import json import datetime from django.db import models +from django.utils.encoding import force_text from django.utils.translation import ugettext_lazy as _ + from django.core.cache import cache from passerelle.base.models import BaseResource @@ -92,7 +94,7 @@ class GrandlyonElyx(BaseResource): def create(self, request): # get creation fields from payload try: - formdata = FormData(json.loads(request.body), CREATION_SCHEMA) + formdata = FormData(json.loads(force_text(request.body)), CREATION_SCHEMA) except ValueError as e: raise ParameterTypeError(e.message) @@ -128,7 +130,7 @@ class GrandlyonElyx(BaseResource): resp = self.send_post(send_request) #print >> open('/home/grandlyon/log/elyx.debug', 'a+'), datetime.datetime.now(), "resp.content:", resp.content - return {'data': json.loads(resp.content)} + return {'data': json.loads(force_text(resp.content))} @endpoint(perm='can_access') def status(self, request, iddemande): @@ -137,7 +139,7 @@ class GrandlyonElyx(BaseResource): send_request = requests.Request() send_request.url = self.service_url+'/rr/Demandes?operation=suivi&id='+iddemande resp = self.send_get(send_request) - data = json.loads(resp.content) + data = json.loads(force_text(resp.content)) if data['EtatDemande'] == "DEMANDE_DISPO": @@ -146,7 +148,7 @@ class GrandlyonElyx(BaseResource): file_request.url = self.service_url+'/rs/ReadResource?url='+data['Url'] #print >> open('/home/grandlyon/log/elyx.debug', 'a+'), datetime.datetime.now(), "file url:", file_request.url file_resp = self.send_get(file_request) - file = {'b64_content': base64.b64encode(file_resp.content), 'filename': 'certificat.pdf'} + file = {'b64_content': force_text(base64.b64encode(file_resp.content)), 'filename': 'certificat.pdf'} #print >> open('/home/grandlyon/log/elyx.pdf', 'a+'), datetime.datetime.now(), file_resp.content