247 |
247 |
wcs_request.payload[label] = utils.localtz_to_utc(post_data[label])
|
248 |
248 |
wcs_request.save()
|
249 |
249 |
if not wcs_request.push(timeout=10):
|
250 |
250 |
self.add_job(
|
251 |
251 |
'create_intervention_job',
|
252 |
252 |
pk=str(wcs_request.pk),
|
253 |
253 |
natural_id='wcs-request-%s' % wcs_request.pk,
|
254 |
254 |
)
|
255 |
|
return {
|
256 |
|
'data': {
|
257 |
|
'wcs_form_api_url': wcs_request.wcs_form_api_url,
|
258 |
|
'wcs_form_number': wcs_request.wcs_form_number,
|
259 |
|
'uuid': wcs_request.uuid,
|
260 |
|
'payload': wcs_request.payload,
|
261 |
|
'result': wcs_request.result,
|
262 |
|
'status': wcs_request.status,
|
263 |
|
'tries': wcs_request.tries,
|
264 |
|
}
|
265 |
|
}
|
|
255 |
return {'data': wcs_request.reply}
|
266 |
256 |
|
267 |
257 |
def create_intervention_job(self, *args, **kwargs):
|
268 |
258 |
wcs_request = self.wcs_requests.get(pk=kwargs['pk'])
|
269 |
259 |
after_timestamp = None
|
270 |
260 |
if not wcs_request.push():
|
271 |
261 |
if wcs_request.tries < 5:
|
272 |
262 |
if wcs_request.tries == 3:
|
273 |
263 |
after_timestamp = datetime.timedelta(hours=1)
|
274 |
264 |
if wcs_request.tries == 4:
|
275 |
265 |
after_timestamp = datetime.timedelta(days=1)
|
276 |
266 |
else:
|
277 |
267 |
wcs_request.status = 'failed'
|
278 |
268 |
wcs_request.save()
|
279 |
|
payload = {
|
280 |
|
'creation_response': {
|
281 |
|
'wcs_form_api_url': wcs_request.wcs_form_api_url,
|
282 |
|
'wcs_form_number': wcs_request.wcs_form_number,
|
283 |
|
'uuid': str(wcs_request.uuid),
|
284 |
|
'payload': wcs_request.payload,
|
285 |
|
'result': wcs_request.result,
|
286 |
|
'status': wcs_request.status,
|
287 |
|
'tries': wcs_request.tries,
|
288 |
|
}
|
289 |
|
}
|
|
269 |
payload = {'creation_response': wcs_request.reply}
|
290 |
270 |
smart_request = wcs_request.smart_requests.create(payload=payload)
|
291 |
271 |
self.add_job(
|
292 |
272 |
'update_intervention_job',
|
293 |
273 |
id=smart_request.id,
|
294 |
274 |
natural_id='smart-request-%s' % smart_request.id,
|
295 |
275 |
)
|
296 |
276 |
if wcs_request.status == 'registered':
|
297 |
277 |
raise SkipJob(after_timestamp)
|
... | ... | |
437 |
417 |
self.save()
|
438 |
418 |
return False
|
439 |
419 |
for label in 'interventionCreated', 'interventionDesired':
|
440 |
420 |
self.result[label] = utils.utc_to_localtz(self.result[label])
|
441 |
421 |
self.status = 'sent'
|
442 |
422 |
self.save()
|
443 |
423 |
return True
|
444 |
424 |
|
|
425 |
@property
|
|
426 |
def reply(self):
|
|
427 |
return {
|
|
428 |
'wcs_form_api_url': self.wcs_form_api_url,
|
|
429 |
'wcs_form_number': self.wcs_form_number,
|
|
430 |
'uuid': str(self.uuid),
|
|
431 |
'payload': self.payload,
|
|
432 |
'result': self.result,
|
|
433 |
'status': self.status,
|
|
434 |
'tries': self.tries,
|
|
435 |
}
|
|
436 |
|
445 |
437 |
class Meta:
|
446 |
438 |
unique_together = [
|
447 |
439 |
('wcs_form_api_url', 'wcs_form_step'),
|
448 |
440 |
]
|
449 |
441 |
|
450 |
442 |
|
451 |
443 |
def upload_to(wcs_request_file, filename):
|
452 |
444 |
instance = wcs_request_file.resource.resource
|
453 |
|
-
|