403Webshell
Server IP : 65.108.144.40  /  Your IP : 216.73.217.165
Web Server : Apache/2.4.52 (Ubuntu)
System : Linux ubuntu-8gb-hel1-1 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64
User : dev ( 1000)
PHP Version : 8.2.30
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/erp/horilla_api/api_serializers/asset/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/erp/horilla_api/api_serializers/asset/serializers.py
from rest_framework import serializers

from asset.models import *


class AssetCategorySerializer(serializers.ModelSerializer):
    asset_count = serializers.SerializerMethodField()

    class Meta:
        model = AssetCategory
        exclude = ["created_at", "created_by", "company_id", "is_active"]

    def get_asset_count(self, obj):
        return obj.asset_set.all().count()


class AssetCategoryMiniSerializer(serializers.ModelSerializer):
    class Meta:
        model = AssetCategory
        fields = ["id", "asset_category_name"]

    def get_asset_count(self, obj):
        return obj.asset_set.all().count()


class AssetLotSerializer(serializers.ModelSerializer):
    class Meta:
        model = AssetLot
        fields = "__all__"


class AssetGetAllSerializer(serializers.ModelSerializer):
    class Meta:
        model = Asset
        fields = ["id", "asset_name", "asset_status"]


class AssetSerializer(serializers.ModelSerializer):
    class Meta:
        model = Asset
        fields = "__all__"


class AssetAssignmentSerializer(serializers.ModelSerializer):
    class Meta:
        model = AssetAssignment
        fields = "__all__"


class AssetAssignmentGetSerializer(serializers.ModelSerializer):
    asset = serializers.SerializerMethodField()
    asset_category = serializers.SerializerMethodField()
    allocated_user = serializers.SerializerMethodField()

    class Meta:
        model = AssetAssignment
        fields = [
            "id",
            "asset",
            "asset_category",
            "allocated_user",
            "assigned_date",
            "return_status",
        ]

    def get_asset(self, obj):
        return obj.asset_id.asset_name

    def get_asset_category(self, obj):
        return obj.asset_id.asset_category_id.asset_category_name

    def get_allocated_user(self, obj):
        return EmployeeGetSerializer(obj.assigned_to_employee_id).data


class AssetRequestSerializer(serializers.ModelSerializer):
    class Meta:
        model = AssetRequest
        fields = "__all__"


class AssetRequestGetSerializer(serializers.ModelSerializer):
    asset_category_id = serializers.SerializerMethodField()
    requested_employee_id = serializers.SerializerMethodField()

    class Meta:
        model = AssetRequest
        fields = "__all__"

    def get_asset_category_id(self, obj):
        return AssetCategoryMiniSerializer(obj.asset_category_id).data

    def get_requested_employee_id(self, obj):
        return EmployeeGetSerializer(obj.requested_employee_id).data


class EmployeeGetSerializer(serializers.ModelSerializer):
    full_name = serializers.SerializerMethodField()

    class Meta:
        model = Employee
        fields = ["id", "full_name", "employee_profile", "badge_id"]

    def get_full_name(self, obj):
        return obj.get_full_name()


class AssetApproveSerializer(serializers.ModelSerializer):
    class Meta:
        model = AssetAssignment
        fields = [
            "id",
            "asset_id",
            "assigned_to_employee_id",
            "assigned_by_employee_id",
            "assign_images",
        ]

    def validate_asset_id(self, value):
        asset_request = self.context.get("asset_request")
        asset_category = asset_request.asset_category_id
        if value.asset_category_id != asset_category:
            raise serializers.ValidationError("Invalid asset.")
        return value


class AssetReturnSerializer(serializers.ModelSerializer):
    return_status = serializers.CharField(required=True)
    image = serializers.FileField(required=True)

    class Meta:
        model = AssetAssignment
        fields = ["return_status", "return_condition", "image"]

    def validate_return_status(self, value):
        if value not in [status[0] for status in AssetAssignment.STATUS]:
            raise serializers.ValidationError("Invalid Choice")
        return value

    def validate(self, data):
        if self.instance.return_date:
            raise serializers.ValidationError("Already Returned")
        return data


# class ReturnImageSerializer(serializers.ModelSerializer):
#     image = serializers.FileField(required=True)
#     class Meta:
#         model = ReturnImages
#         fields = '__all__'

Youez - 2016 - github.com/yon3zu
LinuXploit