feat: proširi prikaz dizalice i vlasnika u zadacima
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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user