This commit is contained in:
2026-05-13 16:45:54 +03:30
parent 948c062b93
commit 46fe62fa04
96 changed files with 3834 additions and 155 deletions
+8 -3
View File
@@ -32,7 +32,7 @@ def create_or_get_block_subdivision(
اگر subdivision این بلوک قبلاً ساخته شده باشد همان را برمی‌گرداند؛
در غیر این صورت الگوریتم grid + KMeans را اجرا و ذخیره می‌کند.
"""
from .models import BlockSubdivision
from .models import BlockSubdivision, build_default_sub_block, ensure_block_layout_defaults
existing = BlockSubdivision.objects.filter(
soil_location=location,
@@ -244,7 +244,7 @@ def render_elbow_plot(
def sync_block_layout_with_subdivision(location, subdivision) -> None:
layout = location.block_layout or {}
layout = ensure_block_layout_defaults(location.block_layout, block_count=location.input_block_count)
blocks = list(layout.get("blocks") or [])
target_block = None
for block in blocks:
@@ -263,7 +263,12 @@ def sync_block_layout_with_subdivision(location, subdivision) -> None:
blocks.append(target_block)
target_block["needs_subdivision"] = subdivision.centroid_count > 1
target_block["sub_blocks"] = list(subdivision.centroid_points or [])
target_block["sub_blocks"] = list(subdivision.centroid_points or []) or [
build_default_sub_block(
str(target_block.get("block_code") or "block-1"),
boundary=target_block.get("boundary") or {},
)
]
target_block["subdivision_summary"] = {
"chunk_size_sqm": subdivision.chunk_size_sqm,
"grid_point_count": subdivision.grid_point_count,