feat: add ReferenceItem model and update QuickEvaluation FKs
- Create ReferenceitemModel with type, name, parent (self FK), order, is_active fields - Add ReferenceType choices: brand, marka, color, fuel_type, body_type, car_position, state_car - Implement ReferenceItem API (list, retrieve) with filter by type/parent/is_active, search, ordering - Add ReferenceItem admin with list_filter, search, inline editing - Change QuickEvaluation FK fields from shared.OptionsModel to evaluation.ReferenceitemModel - Update serializers and views to use .name instead of .key - Add ReferenceItem to unfold admin navigation
This commit is contained in:
48
core/apps/evaluation/serializers/reference/ReferenceItem.py
Normal file
48
core/apps/evaluation/serializers/reference/ReferenceItem.py
Normal file
@@ -0,0 +1,48 @@
|
||||
from rest_framework import serializers
|
||||
|
||||
from core.apps.evaluation.models import ReferenceitemModel
|
||||
|
||||
|
||||
class BaseReferenceitemSerializer(serializers.ModelSerializer):
|
||||
type_display = serializers.CharField(source="get_type_display", read_only=True)
|
||||
parent_name = serializers.CharField(source="parent.name", read_only=True, default=None)
|
||||
|
||||
class Meta:
|
||||
model = ReferenceitemModel
|
||||
fields = [
|
||||
"id",
|
||||
"type",
|
||||
"type_display",
|
||||
"name",
|
||||
"parent",
|
||||
"parent_name",
|
||||
"order",
|
||||
"is_active",
|
||||
]
|
||||
|
||||
|
||||
class ListReferenceitemSerializer(BaseReferenceitemSerializer):
|
||||
class Meta(BaseReferenceitemSerializer.Meta):
|
||||
pass
|
||||
|
||||
|
||||
class RetrieveReferenceitemSerializer(BaseReferenceitemSerializer):
|
||||
children = serializers.SerializerMethodField()
|
||||
|
||||
class Meta(BaseReferenceitemSerializer.Meta):
|
||||
fields = BaseReferenceitemSerializer.Meta.fields + ["children"]
|
||||
|
||||
def get_children(self, obj):
|
||||
children = obj.children.filter(is_active=True).order_by("order", "name")
|
||||
return ListReferenceitemSerializer(children, many=True).data
|
||||
|
||||
|
||||
class CreateReferenceitemSerializer(BaseReferenceitemSerializer):
|
||||
class Meta(BaseReferenceitemSerializer.Meta):
|
||||
fields = [
|
||||
"type",
|
||||
"name",
|
||||
"parent",
|
||||
"order",
|
||||
"is_active",
|
||||
]
|
||||
Reference in New Issue
Block a user