feat: async PDF cache i API media putanje za putne naloge
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:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user