feat: async PDF cache i API media putanje za putne naloge
Some checks failed
ERP CI/CD Pipeline / test (push) Has been cancelled
ERP CI/CD Pipeline / Deploy (server git pull + compose) (push) Has been cancelled

Uvodi background request tok za generiranje PDF-a s 24h cache-om i cleanup taskom preko Celery beat-a. Dodaje notification metadata download_url za ponovno preuzimanje bez regeneracije, API image endpointe za putne naloge i račune, te frontend integraciju za async download i produkcijski prikaz slika.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
mariomitte
2026-07-17 16:42:02 +02:00
parent 5e7ec72a4e
commit e8330473cd
17 changed files with 726 additions and 231 deletions

View File

@@ -1,5 +1,6 @@
from rest_framework import serializers
import re
from django.urls import reverse
from .models import (
Crane,
Vehicle,
@@ -183,6 +184,8 @@ class WorkOrderSerializer(serializers.ModelSerializer):
class WorkOrderInvoiceSerializer(serializers.ModelSerializer):
image_url = serializers.SerializerMethodField()
class Meta:
model = WorkOrderInvoice
fields = [
@@ -193,11 +196,22 @@ class WorkOrderInvoiceSerializer(serializers.ModelSerializer):
'datum',
'opis',
'image',
'image_url',
'created_by',
'created_at',
]
read_only_fields = ['id', 'created_by', 'created_at']
def get_image_url(self, obj):
request = self.context.get('request')
if not obj.image:
return None
if request is None:
return None
return request.build_absolute_uri(
reverse('work-order-invoice-image', kwargs={'pk': obj.pk})
)
class WorkOrderPhotoSerializer(serializers.ModelSerializer):
class Meta: