add meter model for smart meter
This commit is contained in:
parent
02415f4dee
commit
68cf7761d7
3 changed files with 67 additions and 3 deletions
|
|
@ -20,7 +20,7 @@ class InstallationReportForm(forms.ModelForm):
|
|||
model = InstallationReport
|
||||
fields = [
|
||||
'visited_date', 'new_water_meter_serial', 'seal_number',
|
||||
'utm_x', 'utm_y', 'meter_type', 'meter_size',
|
||||
'utm_x', 'utm_y', 'meter_type', 'meter_size', 'meter_model',
|
||||
'discharge_pipe_diameter', 'usage_type', 'exploitation_license_number',
|
||||
'motor_power', 'pre_calibration_flow_rate', 'post_calibration_flow_rate',
|
||||
'water_meter_manufacturer', 'sim_number', 'driving_force',
|
||||
|
|
@ -62,6 +62,13 @@ class InstallationReportForm(forms.ModelForm):
|
|||
'meter_size': forms.TextInput(attrs={
|
||||
'class': 'form-control'
|
||||
}),
|
||||
'meter_model': forms.Select(attrs={
|
||||
'class': 'form-select'
|
||||
}, choices=[
|
||||
('', 'انتخاب کنید'),
|
||||
('A', 'A'),
|
||||
('B', 'B')
|
||||
]),
|
||||
'discharge_pipe_diameter': forms.NumberInput(attrs={
|
||||
'class': 'form-control',
|
||||
'min': '0',
|
||||
|
|
|
|||
|
|
@ -47,6 +47,11 @@ class InstallationReport(BaseModel):
|
|||
('volumetric', 'حجمی'),
|
||||
]
|
||||
meter_type = models.CharField(max_length=20, choices=METER_TYPE_CHOICES, null=True, blank=True, verbose_name='نوع کنتور')
|
||||
METER_MODEL_CHOICES = [
|
||||
('A', 'A'),
|
||||
('B', 'B'),
|
||||
]
|
||||
meter_model = models.CharField(max_length=20, choices=METER_MODEL_CHOICES, null=True, blank=True, verbose_name='مدل کنتور')
|
||||
meter_size = models.CharField(max_length=50, null=True, blank=True, verbose_name='سایز کنتور')
|
||||
discharge_pipe_diameter = models.PositiveIntegerField(null=True, blank=True, verbose_name='قطر لوله آبده (اینچ)')
|
||||
USAGE_TYPE_CHOICES = [
|
||||
|
|
|
|||
|
|
@ -86,7 +86,11 @@
|
|||
<p class="text-nowrap mb-2"><i class="bx bx-purchase-tag bx-sm me-2"></i>سریال جدید: {{ report.new_water_meter_serial|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-lock-alt bx-sm me-2"></i>شماره پلمپ: {{ report.seal_number|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-chip bx-sm me-2"></i>نوع کنتور: {{ report.get_meter_type_display|default:'-' }}</p>
|
||||
{% if report.meter_type == 'smart' %}
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-chip bx-sm me-2"></i>مدل کنتور: {{ report.get_meter_model_display|default:'-' }}</p>
|
||||
{% else %}
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-ruler bx-sm me-2"></i>سایز کنتور: {{ report.meter_size|default:'-' }}</p>
|
||||
{% endif %}
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-tachometer bx-sm me-2"></i>قطر لوله آبده (اینچ): {{ report.discharge_pipe_diameter|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-building bx-sm me-2"></i>سازنده کنتور: {{ report.water_meter_manufacturer|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-sim-card bx-sm me-2"></i>شماره سیمکارت: {{ report.sim_number|default:'-' }}</p>
|
||||
|
|
@ -279,13 +283,20 @@
|
|||
<div class="invalid-feedback">{{ form.meter_type.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="col-md-3" id="meter_size_wrapper">
|
||||
{{ form.meter_size.label_tag }}
|
||||
{{ form.meter_size }}
|
||||
{% if form.meter_size.errors %}
|
||||
<div class="invalid-feedback">{{ form.meter_size.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3" id="meter_model_wrapper">
|
||||
{{ form.meter_model.label_tag }}
|
||||
{{ form.meter_model }}
|
||||
{% if form.meter_model.errors %}
|
||||
<div class="invalid-feedback">{{ form.meter_size.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{{ form.discharge_pipe_diameter.label_tag }}
|
||||
{{ form.discharge_pipe_diameter }}
|
||||
|
|
@ -329,7 +340,7 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{{ form.water_meter_manufacturer.label_tag }}
|
||||
{{ form.water_meter_manufacturer.label_tag }}حجمی
|
||||
<div class="input-group">
|
||||
{{ form.water_meter_manufacturer }}
|
||||
{{ form.new_manufacturer }}
|
||||
|
|
@ -759,6 +770,47 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dynamic meter field visibility based on meter type
|
||||
(function() {
|
||||
const meterTypeSelect = document.getElementById('{{ form.meter_type.id_for_label }}');
|
||||
const meterSizeWrapper = document.getElementById('meter_size_wrapper');
|
||||
const meterModelWrapper = document.getElementById('meter_model_wrapper');
|
||||
|
||||
function updateMeterFields() {
|
||||
if (!meterTypeSelect) return;
|
||||
|
||||
const selectedType = meterTypeSelect.value;
|
||||
|
||||
if (selectedType === 'smart') {
|
||||
// Show meter_model, hide meter_size
|
||||
meterModelWrapper.style.display = '';
|
||||
meterSizeWrapper.style.display = 'none';
|
||||
// Clear meter_size value when hidden
|
||||
const meterSizeInput = meterSizeWrapper.querySelector('input, select');
|
||||
if (meterSizeInput) meterSizeInput.value = '';
|
||||
} else if (selectedType === 'volumetric') {
|
||||
// Show meter_size, hide meter_model
|
||||
meterSizeWrapper.style.display = '';
|
||||
meterModelWrapper.style.display = 'none';
|
||||
// Clear meter_model value when hidden
|
||||
const meterModelSelect = meterModelWrapper.querySelector('select');
|
||||
if (meterModelSelect) meterModelSelect.value = '';
|
||||
} else {
|
||||
// No selection: hide both
|
||||
meterSizeWrapper.style.display = 'none';
|
||||
meterModelWrapper.style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
// Initial update on page load
|
||||
updateMeterFields();
|
||||
|
||||
// Update on change
|
||||
if (meterTypeSelect) {
|
||||
meterTypeSelect.addEventListener('change', updateMeterFields);
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue