69 lines
1.9 KiB
Python
69 lines
1.9 KiB
Python
from rest_framework import serializers
|
|
from .models import Field, Note, Cost, Image, Job, Cultivation_calender, Product
|
|
|
|
from jalali_date import datetime2jalali
|
|
|
|
|
|
class FieldSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Field
|
|
fields = "__all__"
|
|
|
|
|
|
class NoteSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Note
|
|
fields = "__all__"
|
|
|
|
|
|
class CostSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Cost
|
|
fields = "__all__"
|
|
|
|
|
|
class ImageSerializer(serializers.ModelSerializer):
|
|
uploaded_at = serializers.SerializerMethodField()
|
|
|
|
class Meta:
|
|
model = Image
|
|
fields = "__all__"
|
|
|
|
def get_uploaded_at(self, obj):
|
|
return datetime2jalali(obj.uploaded_at).strftime("%Y/%m/%d %H:%M:%S")
|
|
|
|
|
|
class JobSerializer(serializers.ModelSerializer):
|
|
# field = serializers.PrimaryKeyRelatedField(queryset=Field.objects.all())
|
|
field = FieldSerializer(read_only=True)
|
|
# costs = serializers.PrimaryKeyRelatedField(
|
|
# queryset=Cost.objects.all(), required=False, allow_null=True
|
|
# )
|
|
costs = CostSerializer(read_only=True, allow_null=True)
|
|
# notes = serializers.PrimaryKeyRelatedField(
|
|
# queryset=Note.objects.all(), required=False, allow_null=True
|
|
# )
|
|
notes = NoteSerializer(read_only=True, allow_null=True)
|
|
# images = serializers.PrimaryKeyRelatedField(
|
|
# queryset=Image.objects.all(), required=False, allow_null=True
|
|
# )
|
|
images = ImageSerializer(read_only=True, allow_null=True)
|
|
|
|
class Meta:
|
|
model = Job
|
|
fields = "__all__"
|
|
|
|
|
|
class CultivationCalenderSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Cultivation_calender
|
|
fields = "__all__"
|
|
|
|
|
|
class ProductSerializer(serializers.ModelSerializer):
|
|
cultivation_calender = CultivationCalenderSerializer()
|
|
|
|
class Meta:
|
|
model = Product
|
|
fields = "__all__"
|