UPDATE
This commit is contained in:
@@ -0,0 +1,35 @@
|
||||
CONFIG_RESPONSE_TEMPLATE = {
|
||||
"farmData": {
|
||||
"soilType": None,
|
||||
"organicMatter": None,
|
||||
"waterEC": None,
|
||||
},
|
||||
"growthStages": [
|
||||
{"id": "prePlanting", "icon": "tabler-seedling"},
|
||||
{"id": "earlyGrowth", "icon": "tabler-leaf"},
|
||||
{"id": "flowering", "icon": "tabler-flower"},
|
||||
{"id": "fruiting", "icon": "tabler-apple"},
|
||||
{"id": "postHarvest", "icon": "tabler-basket"},
|
||||
],
|
||||
"cropOptions": [
|
||||
{"id": "wheat", "labelKey": "wheat", "icon": "tabler-wheat"},
|
||||
{"id": "corn", "labelKey": "corn", "icon": "tabler-plant-2"},
|
||||
{"id": "cotton", "labelKey": "cotton", "icon": "tabler-flower"},
|
||||
{"id": "saffron", "labelKey": "saffron", "icon": "tabler-flower-2"},
|
||||
{"id": "canola", "labelKey": "canola", "icon": "tabler-leaf"},
|
||||
{"id": "vegetables", "labelKey": "vegetables", "icon": "tabler-carrot"},
|
||||
],
|
||||
"status": "success",
|
||||
"source": "default_template",
|
||||
}
|
||||
|
||||
|
||||
FERTILIZATION_DASHBOARD_TEMPLATE = {
|
||||
"title": "کود",
|
||||
"subtitle": "داده توصیه کودهی هنوز ثبت نشده است.",
|
||||
"avatarIcon": "tabler-leaf",
|
||||
"avatarColor": "success",
|
||||
"status": "empty",
|
||||
"source": "db",
|
||||
"warnings": ["No persisted fertilization recommendation is available for this farm."],
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
from copy import deepcopy
|
||||
|
||||
from .mock_data import FERTILIZATION_DASHBOARD_RECOMMENDATION, RECOMMEND_RESPONSE_DATA
|
||||
from .defaults import FERTILIZATION_DASHBOARD_TEMPLATE
|
||||
from .models import FertilizationPlan, FertilizationRecommendationRequest
|
||||
|
||||
|
||||
@@ -77,9 +77,11 @@ def build_active_plan_context(farm):
|
||||
|
||||
|
||||
def get_fertilization_dashboard_recommendation(farm=None):
|
||||
default_item = deepcopy(FERTILIZATION_DASHBOARD_RECOMMENDATION)
|
||||
default_item = deepcopy(FERTILIZATION_DASHBOARD_TEMPLATE)
|
||||
result = _get_latest_result(farm)
|
||||
plan = result.get("plan") or RECOMMEND_RESPONSE_DATA.get("plan", {})
|
||||
plan = result.get("plan") or {}
|
||||
if not isinstance(plan, dict) or not plan:
|
||||
return default_item
|
||||
|
||||
npk_ratio = plan.get("npkRatio") or "20-20-20 (NPK)"
|
||||
amount = plan.get("amountPerHectare")
|
||||
@@ -91,5 +93,8 @@ def get_fertilization_dashboard_recommendation(farm=None):
|
||||
default_item["title"] = f"کود: {npk_ratio}"
|
||||
if subtitle_parts:
|
||||
default_item["subtitle"] = "، ".join(subtitle_parts)
|
||||
default_item["status"] = "success"
|
||||
default_item["source"] = "db"
|
||||
default_item["warnings"] = []
|
||||
|
||||
return default_item
|
||||
|
||||
@@ -18,7 +18,7 @@ from farm_hub.models import FarmHub
|
||||
from farmer_calendar import PLAN_TYPE_FERTILIZATION, delete_plan_events, sync_plan_events
|
||||
from .models import FertilizationPlan, FertilizationRecommendationRequest
|
||||
from .services import build_active_plan_context
|
||||
from .mock_data import CONFIG_RESPONSE_DATA
|
||||
from .defaults import CONFIG_RESPONSE_TEMPLATE
|
||||
from .serializers import (
|
||||
FreeTextPlanParserRequestSerializer,
|
||||
FreeTextPlanParserResponseDataSerializer,
|
||||
@@ -81,7 +81,7 @@ class ConfigView(FarmAccessMixin, APIView):
|
||||
)
|
||||
def get(self, request):
|
||||
farm = self._get_farm(request, request.query_params.get("farm_uuid"))
|
||||
data = dict(CONFIG_RESPONSE_DATA)
|
||||
data = dict(CONFIG_RESPONSE_TEMPLATE)
|
||||
data["farm_uuid"] = str(farm.farm_uuid)
|
||||
return Response({"status": "success", "data": data}, status=status.HTTP_200_OK)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user