Add plan variety change tracking

This commit is contained in:
akira
2026-04-05 16:32:57 +09:00
parent 5a9b6a053b
commit 21fb2323eb
6 changed files with 258 additions and 13 deletions

View File

@@ -10,6 +10,7 @@ from .serializers import (
RiceTransplantPlanSerializer,
RiceTransplantPlanWriteSerializer,
)
from .services import update_plan_with_variety_tracking
from apps.fields.models import Field
@@ -120,15 +121,23 @@ class PlanViewSet(viewsets.ModelViewSet):
updated = 0
created = 0
for field_id in field_ids:
plan, was_created = Plan.objects.update_or_create(
field_id=field_id,
year=year,
defaults={'crop': crop, 'variety': variety}
)
if was_created:
plan = Plan.objects.filter(field_id=field_id, year=year).first()
if plan is None:
Plan.objects.create(
field_id=field_id,
year=year,
crop=crop,
variety=variety,
)
created += 1
else:
updated += 1
continue
update_plan_with_variety_tracking(
plan,
crop=crop,
variety=variety,
)
updated += 1
return Response({'created': created, 'updated': updated, 'total': created + updated})