added data

This commit is contained in:
2025-08-04 11:01:18 +03:30
parent 953dbe5a08
commit 812d507f26
6 changed files with 62 additions and 14 deletions

View File

@@ -70,7 +70,7 @@ class Job(models.Model):
type = models.CharField(max_length=15, choices=TYPE_CHOICES, default="Irrigating")
field = models.ForeignKey(Field, on_delete=models.CASCADE)
made_date = models.DateTimeField(auto_now_add=True)
due_date = models.DateTimeField()
due_date = models.DateTimeField(auto_now_add=True)
status = models.BooleanField()
costs = models.ForeignKey(Cost, on_delete=models.SET_NULL, null=True, blank=True)
notes = models.ForeignKey(Note, on_delete=models.SET_NULL, null=True, blank=True)

View File

@@ -1,6 +1,8 @@
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:
@@ -21,22 +23,31 @@ class CostSerializer(serializers.ModelSerializer):
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())
costs = serializers.PrimaryKeyRelatedField(
queryset=Cost.objects.all(), required=False, allow_null=True
)
notes = serializers.PrimaryKeyRelatedField(
queryset=Note.objects.all(), required=False, allow_null=True
)
images = serializers.PrimaryKeyRelatedField(
queryset=Image.objects.all(), required=False, allow_null=True
)
# 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

View File

@@ -10,6 +10,9 @@ from .views import (
CostDetail,
FieldListCreate,
FieldDetail,
cultivation_calender,
ProductListCreate,
ProductDetail,
)
@@ -20,13 +23,15 @@ def register_crud_urls(prefix, list_view, detail_view):
]
urlpatterns = []
urlpatterns = [
path("cultivation/", cultivation_calender.as_view(), name="cultivation_calender"),
]
urlpatterns += register_crud_urls("jobs", JobListCreate, JobDetail)
urlpatterns += register_crud_urls("notes", NoteListCreate, NoteDetails)
urlpatterns += register_crud_urls("images", ImageListCreate, ImageDetail)
urlpatterns += register_crud_urls("costs", CostListCreate, CostDetail)
urlpatterns += register_crud_urls("fields", FieldListCreate, FieldDetail)
urlpatterns += register_crud_urls("products", ProductListCreate, ProductDetail)
# urlpatterns = [

View File

@@ -3,13 +3,15 @@ from rest_framework import status, generics
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated
from .models import Job, Note, Image, Cost, Field
from .models import Job, Note, Image, Cost, Field, Cultivation_calender, Product
from .serializers import (
JobSerializer,
NoteSerializer,
ImageSerializer,
CostSerializer,
FieldSerializer,
CultivationCalenderSerializer,
ProductSerializer,
)
from rest_framework.viewsets import ModelViewSet
@@ -98,6 +100,33 @@ class NoteDetails(generics.RetrieveUpdateDestroyAPIView):
return Note.objects.filter(user=self.request.user)
class cultivation_calender(generics.ListCreateAPIView):
serializer_class = CultivationCalenderSerializer
premission_classes = [IsAuthenticated]
def get_queryset(self):
return Cultivation_calender.objects.all()
def perform_create(self, serializer):
serializer.save()
class ProductListCreate(generics.ListCreateAPIView):
serializer_class = ProductSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
return Product.objects.all()
class ProductDetail(generics.RetrieveUpdateDestroyAPIView):
serializer_class = ProductSerializer
permission_classes = [IsAuthenticated]
def get_queryset(self):
return Product.objects.filter()
class JobListCreate(generics.ListCreateAPIView):
serializer_class = JobSerializer
permission_classes = [IsAuthenticated]