feat: proširi prikaz dizalice i vlasnika u zadacima
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

Dodaj detalje dizalice (proizvođač, model i SN) te vlasnika u modal radnog zadatka i kalendar zadataka, uz zajednički frontend helper za DRY prikaz.

Proširi Task API serializer dodatnim poljima za prikaz dizalice/vlasnika i ažuriraj testove serializera za nova izlazna polja.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
mariomitte
2026-07-20 09:53:09 +02:00
parent 1a18498b30
commit b92596f6a6
6 changed files with 118 additions and 4 deletions

View File

@@ -86,6 +86,11 @@ class TaskSerializer(serializers.ModelSerializer):
assigned_to_name = serializers.SerializerMethodField()
work_order_label = serializers.SerializerMethodField()
vehicle_registration = serializers.SerializerMethodField()
vehicle_make = serializers.SerializerMethodField()
vehicle_model = serializers.SerializerMethodField()
vehicle_owner_name = serializers.SerializerMethodField()
vehicle_asset_type = serializers.SerializerMethodField()
crane_serial_number = serializers.SerializerMethodField()
template_id = serializers.UUIDField(write_only=True, required=False, allow_null=True)
auto_close_work_order = serializers.BooleanField(write_only=True, required=False)
@@ -94,7 +99,8 @@ class TaskSerializer(serializers.ModelSerializer):
fields = [
'id', 'title', 'description', 'status',
'assigned_to', 'assigned_to_name',
'vehicle', 'vehicle_registration',
'vehicle', 'vehicle_registration', 'vehicle_make', 'vehicle_model',
'vehicle_owner_name', 'vehicle_asset_type', 'crane_serial_number',
'work_order', 'work_order_label',
'scheduled_date',
'template_id', 'auto_close_work_order',
@@ -180,3 +186,28 @@ class TaskSerializer(serializers.ModelSerializer):
if not obj.vehicle_id:
return None
return obj.vehicle.registration_number
def get_vehicle_make(self, obj):
if not obj.vehicle_id:
return None
return obj.vehicle.make or None
def get_vehicle_model(self, obj):
if not obj.vehicle_id:
return None
return obj.vehicle.model or None
def get_vehicle_owner_name(self, obj):
if not obj.vehicle_id or not obj.vehicle.client_id:
return None
return obj.vehicle.client.name
def get_vehicle_asset_type(self, obj):
if not obj.vehicle_id:
return None
return obj.vehicle.asset_type
def get_crane_serial_number(self, obj):
if not obj.vehicle_id:
return None
return obj.vehicle.crane_serial_number or None