* CDEK barcode PDF invalidation

This commit is contained in:
Phil Zhitnikov 2023-11-03 00:13:35 +04:00
parent 64423a1670
commit d41fc46642

View File

@ -577,12 +577,17 @@ class Checklist(models.Model):
if old_obj and self.status != old_obj.status:
self.status_updated_at = timezone.now()
# Invalidate old CDEK barcode PDF
if self.cdek_tracking != old_obj.cdek_tracking:
self.cdek_barcode_pdf.delete(save=False)
self.cdek_barcode_pdf = None
# Try to get CDEK barcode PDF
if not self.cdek_barcode_pdf and self.cdek_tracking and self.status in Checklist.Status.PDF_AVAILABLE_STATUSES:
from store.views import CDEKAPI
pdf_file = CDEKAPI.client.get_barcode_file(self.cdek_tracking)
if pdf_file:
self.cdek_barcode_pdf.save(f'{self.id}_barcode.pdf', pdf_file)
self.cdek_barcode_pdf.save(f'{self.id}_barcode.pdf', pdf_file, save=False)
# Create preview image
if not self.preview_image: