85 lines
2.4 KiB
Python
Executable File
85 lines
2.4 KiB
Python
Executable File
from rest_framework import serializers
|
|
|
|
from outbo.apps.activity_log.enums import MessageType
|
|
from outbo.apps.activity_log.models import ProductLogItem, ProjectLogItem
|
|
|
|
|
|
class BaseProductLogItemSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ProductLogItem
|
|
|
|
def get_message_type(self, instance):
|
|
t, val = str(instance.message_type).split(".", 1)
|
|
return MessageType[val].value
|
|
|
|
|
|
class ProductLogItemSerializer:
|
|
class List(BaseProductLogItemSerializer):
|
|
message_type = serializers.SerializerMethodField()
|
|
|
|
class Meta(BaseProductLogItemSerializer.Meta):
|
|
fields = [
|
|
"message",
|
|
"message_type",
|
|
"stage",
|
|
"updated_at",
|
|
"created_at",
|
|
"created_by",
|
|
]
|
|
|
|
class Create(BaseProductLogItemSerializer):
|
|
class Meta(BaseProductLogItemSerializer.Meta):
|
|
fields = ["message"]
|
|
|
|
class AfterCreate(BaseProductLogItemSerializer):
|
|
message_type = serializers.SerializerMethodField()
|
|
|
|
class Meta(BaseProductLogItemSerializer.Meta):
|
|
fields = [
|
|
"message",
|
|
"message_type",
|
|
"stage",
|
|
"updated_at",
|
|
"created_at",
|
|
"created_by",
|
|
]
|
|
|
|
|
|
class BaseProjectLogItemSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = ProjectLogItem
|
|
|
|
def get_message_type(self, instance):
|
|
t, val = str(instance.message_type).split(".", 1)
|
|
return MessageType[val].value
|
|
|
|
|
|
class ProjectLogItemSerializer:
|
|
class List(BaseProjectLogItemSerializer):
|
|
message_type = serializers.SerializerMethodField()
|
|
|
|
class Meta(BaseProjectLogItemSerializer.Meta):
|
|
fields = [
|
|
"message",
|
|
"message_type",
|
|
"updated_at",
|
|
"created_at",
|
|
"created_by",
|
|
]
|
|
|
|
class Create(BaseProjectLogItemSerializer):
|
|
class Meta(BaseProjectLogItemSerializer.Meta):
|
|
fields = ["message"]
|
|
|
|
class AfterCreate(BaseProjectLogItemSerializer):
|
|
message_type = serializers.SerializerMethodField()
|
|
|
|
class Meta(BaseProjectLogItemSerializer.Meta):
|
|
fields = [
|
|
"message",
|
|
"message_type",
|
|
"updated_at",
|
|
"created_at",
|
|
"created_by",
|
|
]
|