debut dev piece complementaire
This commit is contained in:
parent
18ffcd34b0
commit
e1ee93e23f
|
@ -256,6 +256,9 @@ class CartADS(BaseResource):
|
|||
finally:
|
||||
os.remove(localFileName)
|
||||
|
||||
if formdata.values['commune_raw'] == None:
|
||||
return {'message': 'commune_raw=None', 'err': 1}
|
||||
|
||||
message = '<?xml version="1.0" encoding="UTF-8"?><SOAP-ENV:Envelope xmlns:ns0="http://tempuri.org/" xmlns:ns1="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays" '
|
||||
message += 'xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header/><ns1:Body><ns0:NotifierDepotDossier>'
|
||||
message += '<ns0:token>'+self.get_token_cartads()+'</ns0:token>'
|
||||
|
@ -439,6 +442,83 @@ class CartADS(BaseResource):
|
|||
resp = self.get_client('cartads-dossier.wsdl').service.GetInfosDossier(self.get_token_cartads(), id_dossier)
|
||||
return {'data': sudsobject_to_dict(resp)}
|
||||
|
||||
@endpoint(perm='can_access')
|
||||
def get_pieces_dossier_a_completer(self, request, id_dossier):
|
||||
resp = self.get_client('cartads-piece.wsdl').service.GetPiecesDossierACompleter(self.get_token_cartads(), id_dossier)
|
||||
dict_resp = sudsobject_to_dict(resp)
|
||||
#return {'data': sudsobject_to_dict(resp)}
|
||||
|
||||
if not 'PieceDossier' in dict_resp:
|
||||
return {'data': None, 'err': 0}
|
||||
|
||||
# On parcourt la liste pour la mettre sous la forme id, text, pour l'utiliser comme source de donnees dans le formulaire
|
||||
out = []
|
||||
for objet in dict_resp['PieceDossier']:
|
||||
out_item = {}
|
||||
out_item['id'] = objet["IdPiece"]
|
||||
out_item['text'] = objet["CodePiece"] + " - " + objet["LibellePiece"]
|
||||
out_item['Descriptif'] = objet["Descriptif"]
|
||||
out_item['IdDosPiece'] = objet["IdDosPiece"]
|
||||
out_item['CodePiece'] = objet["CodePiece"]
|
||||
out.append(out_item)
|
||||
|
||||
def getKey(objet):
|
||||
return objet['CodePiece']
|
||||
return {'data': sorted(out, key=getKey)}
|
||||
|
||||
@endpoint(perm='can_access', methods=['get','post'])
|
||||
def upload_file(self, request):
|
||||
# get creation fields from payload
|
||||
try:
|
||||
formdata = FormData(json.loads(request.body), CREATION_SCHEMA)
|
||||
except ValueError as e:
|
||||
raise ParameterTypeError(e.message)
|
||||
|
||||
print >> open('/home/grandlyon/log/cartads.debug', 'a+'), datetime.datetime.now(), "piece_compl_var_fichier: ", formdata.values['piece_compl_var_fichier']
|
||||
print >> open('/home/grandlyon/log/cartads.debug', 'a+'), datetime.datetime.now(), "piece_compl_var_fichier_raw: ", formdata.values['piece_compl_var_fichier_raw']
|
||||
|
||||
|
||||
#TODO: faire un get de https://demarches.guichet-dev.grandlyon.com/permis-de-construire/21/files/form-piece_compl_depose-fichier/plan-situation.txt
|
||||
|
||||
|
||||
|
||||
if not formdata.values['piece_compl_var_fichier']:
|
||||
return {'data': 'no piece_compl_var_fichier', 'err': 1}
|
||||
|
||||
message = '<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:tem="http://tempuri.org/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">'
|
||||
message += '<soapenv:Header>'
|
||||
message += '<tem:Token>'+self.get_token_cartads()+'</tem:Token>'
|
||||
message += '<tem:NomFichier>'+formdata.values['piece_compl_var_fichier']+'</tem:NomFichier>'
|
||||
message += '<tem:Length>'+length(formdata.values['piece_compl_var_fichier_raw'])+'</tem:Length>'
|
||||
message += '<tem:InformationsComplementaires>'
|
||||
message += '<arr:KeyValueOfstringstring><arr:Key>docDaact</arr:Key><arr:Value>doc</arr:Value></arr:KeyValueOfstringstring>'
|
||||
message += '</tem:InformationsComplementaires>'
|
||||
message += '<tem:IdDossier>'+'436205'+'</tem:IdDossier>'
|
||||
message += '</soapenv:Header>'
|
||||
message += '<soapenv:Body><tem:RemoteFileInfoUploadRequest>'
|
||||
message += '<tem:FileByteStream>'+formdata.values['piece_compl_var_fichier_raw']+'</tem:FileByteStream>'
|
||||
message += '</tem:RemoteFileInfoUploadRequest></soapenv:Body></soapenv:Envelope>'
|
||||
|
||||
headers = {'Authorization': self.get_token(),
|
||||
'SOAPAction':'"http://tempuri.org/IServiceDocumentation/UploadFile"',
|
||||
'Content-Type': 'text/xml; charset=UTF-8'}
|
||||
|
||||
#headers = u'Content-Length: 844 | Accept-Encoding: gzip, deflate | SOAPAction: "http://tempuri.org/IServicePortail/NotifierDepotDossier" | Accept: */* | User-Agent: python-requests/2.4.3 CPython/2.7.9 Linux/3.16.0-4-amd64 | Connection: keep-alive | Content-Type: text/xml; charset=utf-8 | '
|
||||
#headers += u'Authorization: Bearer 458931e2-fbac-3087-875c-e0833d66f620' # + self.get_token()
|
||||
|
||||
print >> open('/home/grandlyon/log/cartads.debug', 'a+'), datetime.datetime.now(), "test avant le UploadFile"
|
||||
|
||||
print >> open('/home/grandlyon/log/cartads.debug', 'a+'), datetime.datetime.now(), "message: " + message
|
||||
|
||||
#TODO: faire en soap comme les autres ou adapter url pour prod
|
||||
resp = self.requests.post('https://api-rec.grandlyon.com/ads-rec-documentation/',
|
||||
data=message,
|
||||
headers=headers)
|
||||
|
||||
return {'data': resp.content, 'err': 0}
|
||||
|
||||
|
||||
|
||||
def write_wcs_page(self, request, no_page, label_page, output_string, objet, id):
|
||||
output_string += u"<field>\n"
|
||||
output_string += u" <label>"+label_page+u"</label>\n"
|
||||
|
|
Reference in New Issue