cartads cs: give a tracking code to paper files (#36821)

This commit is contained in:
Frédéric Péters 2019-10-09 22:36:41 +02:00
parent 918e4b40cf
commit 43761d7053
2 changed files with 11 additions and 3 deletions

View File

@ -20,6 +20,7 @@ import datetime
from ftplib import FTP
import json
import os
import random
import re
from xml.etree import ElementTree as etree
import zipfile
@ -701,7 +702,7 @@ class AbstractCartaDSCS(BaseResource):
if name_id:
dossier.subscribers.add(CartaDSSubscriber.objects.get_or_create(name_id=name_id)[0])
self.add_job('pack', dossier_id=dossier.id)
return {'err': 0, 'dossier_id': dossier.id}
return {'err': 0, 'dossier_id': dossier.id, 'tracking_code': dossier.tracking_code}
def pack(self, dossier_id):
dossier = CartaDSDossier.objects.get(id=dossier_id)
@ -1052,11 +1053,17 @@ class AbstractCartaDSCS(BaseResource):
dossier.type_dossier_id = infos['CoTypeDossier']
dossier.commune_id = self.get_commune_id(infos['Commune'])
dossier.formdata_url = formdata_url
CHARS = 'BCDFGHJKLMNPQRSTVWXZ'
r = random.SystemRandom()
dossier.tracking_code = 'A-' + ''.join([r.choice(CHARS) for x in range(8)])
dossier.save()
dossier.subscribers.add(CartaDSSubscriber.objects.get_or_create(name_id=name_id)[0])
return {'err': 0, 'dossier_id': dossier.id, 'formdata_url': dossier.formdata_url}
return {'err': 0,
'dossier_id': dossier.id,
'formdata_url': dossier.formdata_url,
'tracking_code': dossier.tracking_code,
}
@endpoint(perm='can_access',
description=_('Unsubscribe from dossier'),

View File

@ -595,6 +595,7 @@ def test_join(connector, app, cached_data):
assert dossier.commune_id == '2'
assert dossier.type_dossier_id == 'PC'
assert dossier.formdata_url == 'https://etc.'
assert dossier.tracking_code == resp.json['tracking_code']
# existing
with mock.patch('passerelle.apps.cartads_cs.models.CartaDSCS.soap_client') as client: