Refactor NormalCase model to use age_days instead of age_years, update forms, filters, and templates accordingly for improved age handling
This commit is contained in:
+28
-2
@@ -561,7 +561,13 @@ def toggle_case_normal(request, pk):
|
||||
# Create NormalCase
|
||||
from .models import NormalCase
|
||||
|
||||
NormalCase.objects.create(case=case, age_years=age, added_by=request.user)
|
||||
# Convert inferred integer years -> canonical days (approx)
|
||||
if age is not None:
|
||||
age_days = NormalCase.to_days(age, NormalCase.AGE_UNIT_YEARS)
|
||||
else:
|
||||
age_days = None
|
||||
|
||||
NormalCase.objects.create(case=case, age_days=age_days, added_by=request.user)
|
||||
|
||||
# Render the updated fragment
|
||||
# Recompute flags for the fragment render
|
||||
@@ -633,8 +639,28 @@ def case_normal_form(request, pk):
|
||||
# Build form with initial values
|
||||
from .forms import NormalCaseForm
|
||||
|
||||
# Map inferred age (years) into age_value/unit defaults. If we inferred
|
||||
# a fractional year (from birthdate), prefer months for ages < 2 years.
|
||||
from .models import NormalCase
|
||||
inferred_age_value = None
|
||||
inferred_age_unit = None
|
||||
try:
|
||||
if age is not None:
|
||||
# age currently holds integer years; for small ages prefer months
|
||||
if age < 2:
|
||||
inferred_age_value = int(age * 12)
|
||||
inferred_age_unit = NormalCase.AGE_UNIT_MONTHS
|
||||
else:
|
||||
inferred_age_value = int(age)
|
||||
inferred_age_unit = NormalCase.AGE_UNIT_YEARS
|
||||
except Exception:
|
||||
inferred_age_value = None
|
||||
inferred_age_unit = None
|
||||
|
||||
|
||||
form = NormalCaseForm(initial={
|
||||
"age_years": age,
|
||||
"age_value": inferred_age_value,
|
||||
"age_unit": inferred_age_unit,
|
||||
"examination": inferred_examination,
|
||||
"modality": inferred_modality,
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user