diff --git a/certificates/templates/certificates/print.html b/certificates/templates/certificates/print.html index c37382a..3e75dc5 100644 --- a/certificates/templates/certificates/print.html +++ b/certificates/templates/certificates/print.html @@ -54,21 +54,30 @@
موقعیت مکانی (UTM): X: {{ latest_report.utm_x|default:'-' }} , Y: {{ latest_report.utm_y|default:'-' }}
-
نوع پمپ: {{ latest_report.get_pump_type_display|default:'-' }}
-
نوع کنتور: {{ latest_report.get_meter_type_display|default:'-' }}
-
نام شرکت کنتورساز: {{ latest_report.water_meter_manufacturer.name|default:'-' }}
-
قطر لوله آبده (اینچ): {{ latest_report.discharge_pipe_diameter|default:'-' }}
+
نیرو محرکه چاه: {{ latest_report.driving_force|default:'-' }}
+
نوع کنتور: {{ latest_report.get_meter_type_display|default:'-' }}
+ {% if latest_report.meter_type == 'smart' %} +
مدل کنتور: {{ latest_report.get_meter_model_display|default:'-' }}
+ {% else %} +
سایز کنتور: {{ latest_report.meter_size|default:'-' }}
+ {% endif %}
نوع مصرف: {{ latest_report.get_usage_type_display|default:'-' }}
-
توان مصرفی (کیلووات): {{ latest_report.motor_power|default:'-' }}
+
شماره سیم‌کارت: {{ latest_report.sim_number|default:'-' }}
+
شارژ کنتور (متر مکعب): {{ latest_report.meter_charge|default:'-' }}
+
پایان اعتبار شارژ: {{ latest_report.meter_charge_expiration_date|to_jalali|default:'-' }}
+
شماره سریال کنتور: {{ instance.well.water_meter_serial_number|default:'-' }}
+
-
دبی بعد از کالیبراسیون (لیتر بر ثانیه): {{ latest_report.flow_rate|default:'-' }}
-
ساعت کارکرد پروانه: {{ latest_report.licence_working_hour|default:'-' }}
-
شماره پلمپ: {{ latest_report.seal_number|default:'-' }}
+
قطر لوله آبده (اینچ): {{ latest_report.discharge_pipe_diameter|default:'-' }}
شماره پروانه بهره‌برداری چاه: {{ latest_report.exploitation_license_number|default:'-' }}
-
پایان اعتبار شارژ: {{ latest_report.meter_charge_expiration_date|to_jalali|default:'-' }}
-
سریال کنتور: {{ instance.well.water_meter_serial_number|default:'-' }}
+
قدرت موتور (کیلووات ساعت): {{ latest_report.motor_power|default:'-' }}
+
دبی (لیتر بر ثانیه): {{ latest_report.flow_rate|default:'-' }}
+
عدد کنتور (متر مکعب): {{ latest_report.meter_reading|default:'-' }}
+
پلمپ تابلو: {{ latest_report.is_panel_sealed|yesno:'دارد,ندارد' }}
تابلو قطع: {{ latest_report.is_panel_cut|yesno:'دارد,ندارد' }}
+
انجام عملیات قطع: {{ latest_report.is_disconnection_done|yesno:'دارد,ندارد' }}
+
نام شرکت کنتورساز: {{ latest_report.water_meter_manufacturer.name|default:'-' }}
diff --git a/certificates/templates/certificates/step.html b/certificates/templates/certificates/step.html index 917183a..8696e6c 100644 --- a/certificates/templates/certificates/step.html +++ b/certificates/templates/certificates/step.html @@ -75,23 +75,29 @@
موقعیت مکانی (UTM):X: {{ latest_report.utm_x|default:'-' }} , Y: {{ latest_report.utm_y|default:'-' }}
-
نوع پمپ:{{ latest_report.get_pump_type_display|default:'-' }}
+
نیرو محرکه چاه:{{ latest_report.driving_force|default:'-' }}
نوع کنتور:{{ latest_report.get_meter_type_display|default:'-' }}
-
نام شرکت کنتورساز:{{ latest_report.water_meter_manufacturer.name|default:'-' }}
-
قطر لوله آبده (اینچ):{{ latest_report.discharge_pipe_diameter|default:'-' }}
+ {% if latest_report.meter_type == 'smart' %} +
مدل کنتور:{{ latest_report.get_meter_model_display|default:'-' }}
+ {% else %} +
سایز کنتور:{{ latest_report.meter_size|default:'-' }}
+ {% endif %}
نوع مصرف:{{ latest_report.get_usage_type_display|default:'-' }}
-
توان مصرفی (کیلووات):{{ latest_report.motor_power|default:'-' }}
- +
شماره سیم‌کارت:{{ latest_report.sim_number|default:'-' }}
+
شارژ کنتور (متر مکعب):{{ latest_report.meter_charge|default:'-' }}
+
پایان اعتبار شارژ:{{ latest_report.meter_charge_expiration_date|to_jalali|default:'-' }}
+
شماره سریال کنتور:{{ instance.well.water_meter_serial_number|default:'-' }}
-
دبی بعد از کالیبراسیون (لیتر بر ثانیه):{{ latest_report.flow_rate|default:'-' }}
-
ساعت کارکرد پروانه:{{ latest_report.licence_working_hour|default:'-' }}
-
شماره پلمپ:{{ latest_report.seal_number|default:'-' }}
+
قطر لوله آبده (اینچ):{{ latest_report.discharge_pipe_diameter|default:'-' }}
شماره پروانه بهره‌برداری چاه:{{ latest_report.exploitation_license_number|default:'-' }}
-
پایان اعتبار شارژ:{{ latest_report.meter_charge_expiration_date|to_jalali|default:'-' }}
-
سریال کنتور:{{ instance.well.water_meter_serial_number|default:'-' }}
+
قدرت موتور (کیلووات ساعت):{{ latest_report.motor_power|default:'-' }}
+
دبی (لیتر بر ثانیه):{{ latest_report.flow_rate|default:'-' }}
+
عدد کنتور (متر مکعب):{{ latest_report.meter_reading|default:'-' }}
+
پلمپ تابلو:{{ latest_report.is_panel_sealed|yesno:'دارد,ندارد' }}
تابلو قطع:{{ latest_report.is_panel_cut|yesno:'دارد,ندارد' }}
- +
انجام عملیات قطع:{{ latest_report.is_disconnection_done|yesno:'دارد,ندارد' }}
+
نام شرکت کنتورساز:{{ latest_report.water_meter_manufacturer.name|default:'-' }}
diff --git a/certificates/views.py b/certificates/views.py index 68ca5b0..26a5d6f 100644 --- a/certificates/views.py +++ b/certificates/views.py @@ -83,7 +83,7 @@ def certificate_step(request, instance_id, step_id): messages.error(request, 'مانده فاکتور باید صفر باشد') return redirect('processes:request_list') - template = CertificateTemplate.objects.filter(is_active=True, company=instance.broker.company).order_by('-created').first() + template = CertificateTemplate.objects.filter(is_active=True).order_by('-created').first() if not template: return render(request, 'certificates/missing.html', {}) diff --git a/db.sqlite3 b/db.sqlite3 deleted file mode 100644 index 4bedcf3..0000000 Binary files a/db.sqlite3 and /dev/null differ diff --git a/installations/admin.py b/installations/admin.py index b32240b..2a2f779 100644 --- a/installations/admin.py +++ b/installations/admin.py @@ -25,12 +25,11 @@ class InstallationReportAdmin(admin.ModelAdmin): 'assignment', 'visited_date', 'meter_type', 'meter_size', 'water_meter_manufacturer', 'discharge_pipe_diameter', 'usage_type', 'exploitation_license_number', 'motor_power', 'flow_rate', 'meter_reading', 'meter_charge', 'meter_charge_expiration_date', - 'pump_type', 'licence_working_hour', 'new_water_meter_serial', 'seal_number', 'sim_number', 'is_panel_sealed', 'is_panel_cut', 'is_disconnection_done', 'is_meter_suspicious', 'approved', 'created' ) - list_filter = ('is_meter_suspicious', 'is_panel_sealed', 'is_panel_cut', 'is_disconnection_done', 'approved', 'visited_date', 'meter_type', 'pump_type', 'usage_type', 'water_meter_manufacturer') + list_filter = ('is_meter_suspicious', 'is_panel_sealed', 'is_panel_cut', 'is_disconnection_done', 'approved', 'visited_date', 'meter_type', 'usage_type', 'water_meter_manufacturer') search_fields = ( 'assignment__process_instance__code', 'new_water_meter_serial', 'seal_number', 'exploitation_license_number', 'sim_number' ) @@ -51,7 +50,7 @@ class InstallationReportAdmin(admin.ModelAdmin): 'fields': ('usage_type', 'exploitation_license_number') }), ('توان و محرکه', { - 'fields': ('driving_force', 'motor_power', 'pump_type', 'licence_working_hour') + 'fields': ('driving_force', 'motor_power') }), ('وضعیت تابلو/قطع', { 'fields': ('is_panel_sealed', 'is_panel_cut', 'is_disconnection_done') diff --git a/installations/forms.py b/installations/forms.py index d2483e7..4c30a5f 100644 --- a/installations/forms.py +++ b/installations/forms.py @@ -20,12 +20,11 @@ class InstallationReportForm(forms.ModelForm): model = InstallationReport fields = [ 'visited_date', 'new_water_meter_serial', 'seal_number', - 'utm_x', 'utm_y', 'meter_type', + 'utm_x', 'utm_y', 'meter_type', 'meter_size', 'meter_model', 'discharge_pipe_diameter', 'usage_type', 'exploitation_license_number', - 'motor_power', 'flow_rate', 'meter_charge_expiration_date', - 'pump_type', 'licence_working_hour', - 'is_panel_cut', - 'water_meter_manufacturer', + 'motor_power', 'flow_rate', 'meter_reading', 'meter_charge', 'meter_charge_expiration_date', + 'is_panel_sealed', 'is_panel_cut', 'is_disconnection_done', + 'water_meter_manufacturer', 'sim_number', 'driving_force', 'is_meter_suspicious', 'description' ] @@ -61,7 +60,16 @@ class InstallationReportForm(forms.ModelForm): ('smart', 'هوشمند (آب و برق)'), ('volumetric', 'حجمی') ]), - # meter_size and meter_model removed from form UI + 'meter_size': forms.TextInput(attrs={ + 'class': 'form-control' + }), + 'meter_model': forms.Select(attrs={ + 'class': 'form-select' + }, choices=[ + ('', 'انتخاب کنید'), + ('direct', 'مستقیم'), + ('indirect', 'غیرمستقیم') + ]), 'discharge_pipe_diameter': forms.NumberInput(attrs={ 'class': 'form-control', 'required': True @@ -88,7 +96,16 @@ class InstallationReportForm(forms.ModelForm): 'min': '0', 'step': '0.0001', }), - # meter_reading and meter_charge removed from form UI + 'meter_reading': forms.NumberInput(attrs={ + 'class': 'form-control', + 'min': '0', + 'step': '0.0001', + }), + 'meter_charge': forms.NumberInput(attrs={ + 'class': 'form-control', + 'min': '0', + 'step': '0.0001', + }), 'meter_charge_expiration_date': forms.DateInput(attrs={ 'type': 'date', 'class': 'form-control', @@ -98,26 +115,27 @@ class InstallationReportForm(forms.ModelForm): 'id': 'id_water_meter_manufacturer', 'required': True }), - # sim_number and driving_force removed from form UI - 'pump_type': forms.Select(attrs={ - 'class': 'form-select', + 'sim_number': forms.TextInput(attrs={ + 'class': 'form-control', 'required': True }), - 'licence_working_hour': forms.NumberInput(attrs={ + 'driving_force': forms.TextInput(attrs={ 'class': 'form-control', - 'min': '0', - 'step': '1', 'required': True }), 'is_meter_suspicious': forms.CheckboxInput(attrs={ 'class': 'form-check-input', 'id': 'id_is_meter_suspicious', }), - # is_panel_sealed removed from form UI + 'is_panel_sealed': forms.CheckboxInput(attrs={ + 'class': 'form-check-input', + }), 'is_panel_cut': forms.CheckboxInput(attrs={ 'class': 'form-check-input', }), - # is_disconnection_done removed from form UI + 'is_disconnection_done': forms.CheckboxInput(attrs={ + 'class': 'form-check-input', + }), 'description': forms.Textarea(attrs={ 'class': 'form-control', 'rows': 3 @@ -126,22 +144,27 @@ class InstallationReportForm(forms.ModelForm): labels = { 'visited_date': 'تاریخ مراجعه', - 'new_water_meter_serial': 'سریال کنتور', + 'new_water_meter_serial': 'سریال کنتور جدید', 'seal_number': 'شماره پلمپ', 'utm_x': 'UTM X', 'utm_y': 'UTM Y', 'meter_type': 'نوع کنتور', + 'meter_size': 'سایز کنتور', 'discharge_pipe_diameter': 'قطر لوله آبده (اینچ)', 'usage_type': 'نوع مصرف', 'exploitation_license_number': 'شماره پروانه بهره‌برداری', - 'motor_power': 'توان مصرفی (کیلووات)', - 'flow_rate': 'دبی بعد از کالیبراسیون (لیتر بر ثانیه)', + 'motor_power': 'قدرت موتور (کیلووات ساعت)', + 'flow_rate': 'دبی (لیتر بر ثانیه)', + 'meter_reading': 'عدد کنتور (متر مکعب)', + 'meter_charge': 'شارژ کنتور (متر مکعب)', 'meter_charge_expiration_date': 'تاریخ پایان اعتبار شارژ', - 'pump_type': 'نوع پمپ', - 'licence_working_hour': 'ساعت کارکرد پروانه', 'water_meter_manufacturer': 'شرکت سازنده کنتور', + 'sim_number': 'شماره سیمکارت', + 'driving_force': 'نیرو محرکه چاه', 'is_meter_suspicious': 'کنتور مشکوک است', + 'is_panel_sealed': 'پلمپ تابلو', 'is_panel_cut': 'تابلو قطع', + 'is_disconnection_done': 'انجام عملیات قطع', 'description': 'توضیحات' } diff --git a/installations/migrations/0014_installationreport_licence_working_hour_and_more.py b/installations/migrations/0014_installationreport_licence_working_hour_and_more.py deleted file mode 100644 index f77fb6a..0000000 --- a/installations/migrations/0014_installationreport_licence_working_hour_and_more.py +++ /dev/null @@ -1,38 +0,0 @@ -# Generated by Django 5.2.4 on 2025-11-23 08:57 - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('installations', '0013_remove_installationreport_post_calibration_flow_rate_and_more'), - ] - - operations = [ - migrations.AddField( - model_name='installationreport', - name='licence_working_hour', - field=models.PositiveIntegerField(blank=True, null=True, verbose_name='ساعت کارکرد پروانه'), - ), - migrations.AddField( - model_name='installationreport', - name='pump_type', - field=models.CharField(blank=True, choices=[('shaft_sleeve', 'شفت و غلاف'), ('submersible', 'شناور')], max_length=20, null=True, verbose_name='نوع پمپ'), - ), - migrations.AlterField( - model_name='installationreport', - name='flow_rate', - field=models.DecimalField(blank=True, decimal_places=4, max_digits=10, null=True, verbose_name='(لیتر بر ثانیه)دبی بعد از کالیبراسیون'), - ), - migrations.AlterField( - model_name='installationreport', - name='motor_power', - field=models.DecimalField(blank=True, decimal_places=4, max_digits=10, null=True, verbose_name='(کیلووات)توان مصرفی'), - ), - migrations.AlterField( - model_name='installationreport', - name='new_water_meter_serial', - field=models.CharField(blank=True, max_length=50, null=True, verbose_name='سریال کنتور'), - ), - ] diff --git a/installations/models.py b/installations/models.py index 9761ae3..ae86340 100644 --- a/installations/models.py +++ b/installations/models.py @@ -41,7 +41,7 @@ class InstallationReport(BaseModel): related_name='reports', verbose_name='اختصاص' ) visited_date = models.DateField(null=True, blank=True, verbose_name='تاریخ مراجعه') - new_water_meter_serial = models.CharField(max_length=50, null=True, blank=True, verbose_name='سریال کنتور') + new_water_meter_serial = models.CharField(max_length=50, null=True, blank=True, verbose_name='سریال کنتور جدید') seal_number = models.CharField(max_length=50, null=True, blank=True, verbose_name='شماره پلمپ') is_meter_suspicious = models.BooleanField(default=False, verbose_name='کنتور مشکوک است؟') METER_TYPE_CHOICES = [ @@ -61,12 +61,6 @@ class InstallationReport(BaseModel): is_panel_sealed = models.BooleanField(default=False, verbose_name='پلمپ تابلو') is_panel_cut = models.BooleanField(default=False, verbose_name='تابلو قطع') is_disconnection_done = models.BooleanField(default=False, verbose_name='انجام عملیات قطع') - PUMP_TYPE_CHOICES = [ - ('shaft_sleeve', 'شفت و غلاف'), - ('submersible', 'شناور'), - ] - pump_type = models.CharField(max_length=20, choices=PUMP_TYPE_CHOICES, null=True, blank=True, verbose_name='نوع پمپ') - licence_working_hour = models.PositiveIntegerField(null=True, blank=True, verbose_name='ساعت کارکرد پروانه') discharge_pipe_diameter = models.DecimalField(max_digits=10, decimal_places=4, null=True, blank=True, verbose_name='قطر لوله آبده (اینچ)') USAGE_TYPE_CHOICES = [ ('domestic', 'شرب و خدمات'), @@ -75,8 +69,8 @@ class InstallationReport(BaseModel): ] usage_type = models.CharField(max_length=20, choices=USAGE_TYPE_CHOICES, null=True, verbose_name='نوع مصرف') exploitation_license_number = models.CharField(max_length=50, verbose_name='شماره پروانه بهره‌برداری چاه') - motor_power = models.DecimalField(max_digits=10, decimal_places=4, null=True, blank=True, verbose_name='(کیلووات)توان مصرفی') - flow_rate = models.DecimalField(max_digits=10, decimal_places=4, null=True, blank=True, verbose_name='(لیتر بر ثانیه)دبی بعد از کالیبراسیون') + motor_power = models.DecimalField(max_digits=10, decimal_places=4, null=True, blank=True, verbose_name='(کیلووات ساعت) قدرت موتور') + flow_rate = models.DecimalField(max_digits=10, decimal_places=4, null=True, blank=True, verbose_name='(لیتر بر ثانیه)دبی') water_meter_manufacturer = models.ForeignKey('wells.WaterMeterManufacturer', on_delete=models.SET_NULL, null=True, blank=True, verbose_name='شرکت سازنده کنتور آب') sim_number = models.CharField(max_length=20, null=True, blank=True, verbose_name='شماره سیمکارت') driving_force = models.CharField(max_length=50, null=True, blank=True, verbose_name='نیرو محرکه چاه') diff --git a/installations/templates/installations/installation_report_step.html b/installations/templates/installations/installation_report_step.html index 9aa11c3..fbd0405 100644 --- a/installations/templates/installations/installation_report_step.html +++ b/installations/templates/installations/installation_report_step.html @@ -146,23 +146,33 @@

تاریخ مراجعه: {{ report.visited_date|to_jalali|default:'-' }}

-

سریال کنتور: {{ report.new_water_meter_serial|default:'-' }}

+

سریال جدید: {{ report.new_water_meter_serial|default:'-' }}

شماره پلمپ: {{ report.seal_number|default:'-' }}

نوع کنتور: {{ report.get_meter_type_display|default:'-' }}

+ {% if report.meter_type == 'smart' %} +

مدل کنتور: {{ report.get_meter_model_display|default:'-' }}

+ {% else %} +

سایز کنتور: {{ report.meter_size|default:'-' }}

+ {% endif %}

قطر لوله آبده (اینچ): {{ report.discharge_pipe_diameter|default:'-' }}

-

شرکت سازنده کنتور: {{ report.water_meter_manufacturer.name|default:'-' }}

+

سازنده کنتور: {{ report.water_meter_manufacturer|default:'-' }}

+

شماره سیمکارت: {{ report.sim_number|default:'-' }}

+

نیرو محرکه چاه: {{ report.driving_force|default:'-' }}

+

شارژ کنتور (متر مکعب): {{ report.meter_charge|default:'-' }}

پایان اعتبار شارژ: {{ report.meter_charge_expiration_date|to_jalali|default:'-' }}

-

کنتور مشکوک: {{ report.is_meter_suspicious|yesno:'بله,خیر' }}

-

UTM X: {{ report.utm_x|default:'-' }} Y: {{ report.utm_y|default:'-' }}

+

کنتور مشکوک: {{ report.is_meter_suspicious|yesno:'بله,خیر' }}

+

UTM X: {{ report.utm_x|default:'-' }}

+

UTM Y: {{ report.utm_y|default:'-' }}

نوع مصرف: {{ report.get_usage_type_display|default:'-' }}

شماره پروانه بهره‌برداری: {{ report.exploitation_license_number|default:'-' }}

-

توان مصرفی (کیلووات): {{ report.motor_power|default:'-' }}

-

دبی بعد از کالیبراسیون (لیتر بر ثانیه): {{ report.flow_rate|default:'-' }}

-

نوع پمپ: {{ report.get_pump_type_display|default:'-' }}

-

ساعت کارکرد پروانه: {{ report.licence_working_hour|default:'-' }}

+

قدرت موتور (کیلووات ساعت): {{ report.motor_power|default:'-' }}

+

دبی (لیتر/ثانیه): {{ report.flow_rate|default:'-' }}

+

عدد کنتور (متر مکعب): {{ report.meter_reading|default:'-' }}

+

پلمپ تابلو: {{ report.is_panel_sealed|yesno:'بله,خیر' }}

تابلو قطع: {{ report.is_panel_cut|yesno:'بله,خیر' }}

+

انجام عملیات قطع: {{ report.is_disconnection_done|yesno:'بله,خیر' }}

@@ -341,7 +351,20 @@
{{ form.meter_type.errors.0 }}
{% endif %}
- +
+ {{ form.meter_size.label_tag }} + {{ form.meter_size }} + {% if form.meter_size.errors %} +
{{ form.meter_size.errors.0 }}
+ {% endif %} +
+
+ {{ form.meter_model.label_tag }} + {{ form.meter_model }} + {% if form.meter_model.errors %} +
{{ form.meter_size.errors.0 }}
+ {% endif %} +
{{ form.discharge_pipe_diameter.label_tag }} {{ form.discharge_pipe_diameter }} @@ -377,7 +400,20 @@
{{ form.flow_rate.errors.0 }}
{% endif %}
- +
+ {{ form.meter_reading.label_tag }} + {{ form.meter_reading }} + {% if form.meter_reading.errors %} +
{{ form.meter_reading.errors.0 }}
+ {% endif %} +
+
+ {{ form.meter_charge.label_tag }} + {{ form.meter_charge }} + {% if form.meter_charge.errors %} +
{{ form.meter_charge.errors.0 }}
+ {% endif %} +
{{ form.meter_charge_expiration_date.label_tag }} @@ -387,7 +423,7 @@ {% endif %}
- {{ form.water_meter_manufacturer.label_tag }} + {{ form.water_meter_manufacturer.label_tag }}حجمی
{{ form.water_meter_manufacturer }} {{ form.new_manufacturer }} @@ -402,32 +438,39 @@
{{ form.new_manufacturer.errors.0 }}
{% endif %}
-
- {{ form.pump_type.label_tag }} - {{ form.pump_type }} - {% if form.pump_type.errors %} -
{{ form.pump_type.errors.0 }}
+ {{ form.sim_number.label_tag }} + {{ form.sim_number }} + {% if form.sim_number.errors %} +
{{ form.sim_number.errors.0 }}
{% endif %}
- {{ form.licence_working_hour.label_tag }} - {{ form.licence_working_hour }} - {% if form.licence_working_hour.errors %} -
{{ form.licence_working_hour.errors.0 }}
+ {{ form.driving_force.label_tag }} + {{ form.driving_force }} + {% if form.driving_force.errors %} +
{{ form.driving_force.errors.0 }}
{% endif %}
-
-
- {{ form.is_meter_suspicious }} - {{ form.is_meter_suspicious.label_tag }} +
+
+ {{ form.is_meter_suspicious }} + {{ form.is_meter_suspicious.label_tag }} +
+ {% if form.is_meter_suspicious.errors %} +
{{ form.is_meter_suspicious.errors.0 }}
+ {% endif %}
- {% if form.is_meter_suspicious.errors %} -
{{ form.is_meter_suspicious.errors.0 }}
- {% endif %} +
+
+ {{ form.is_panel_sealed }} + {{ form.is_panel_sealed.label_tag }} +
+ {% if form.is_panel_sealed.errors %} +
{{ form.is_panel_sealed.errors.0 }}
+ {% endif %}
-
{{ form.is_panel_cut }} @@ -437,7 +480,15 @@
{{ form.is_panel_cut.errors.0 }}
{% endif %}
- +
+
+ {{ form.is_disconnection_done }} + {{ form.is_disconnection_done.label_tag }} +
+ {% if form.is_disconnection_done.errors %} +
{{ form.is_disconnection_done.errors.0 }}
+ {% endif %} +
@@ -817,14 +868,23 @@ if (!$select.length || !$btn.length) return; $btn.on('click', function(){ if ($select.is(':visible')) { - // Switch to input mode: disable select required, enable input required - $select.prop('disabled', true).prop('required', false).hide(); - $input.prop('required', true).show().focus(); + $select.hide(); + $input.show().focus(); $btn.html(''); } else { - // Back to select mode: remove input required, enable select required - $input.prop('required', false).hide(); - $select.prop('disabled', false).prop('required', true).show(); + // When switching back, if input has value, append it as selected option + const val = ($input.val() || '').trim(); + if (val) { + // Add a temporary option with value prefixed 'new:' to be handled server-side + const exists = $select.find('option').filter(function(){ return $(this).text().trim() === val; }).length > 0; + if (!exists) { + const opt = $('').val('').text(val); + $select.append(opt); + } + $select.val(''); + } + $input.hide(); + $select.show(); $btn.html(''); } }); @@ -853,7 +913,46 @@ } } - // meter_size/meter_model dynamic handling removed + // 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); + } + })(); {% endblock %} diff --git a/processes/templates/processes/instance_summary.html b/processes/templates/processes/instance_summary.html index 82335c3..986229a 100644 --- a/processes/templates/processes/instance_summary.html +++ b/processes/templates/processes/instance_summary.html @@ -122,11 +122,11 @@
{% if installation_assignment.scheduled_date %}
-

تاریخ تعیین شده: {{ installation_assignment.scheduled_date|to_jalali }}

+

تاریخ برنامه‌ریزی: {{ installation_assignment.scheduled_date|to_jalali }}

{% endif %}
-

سریال کنتور: {{ latest_report.new_water_meter_serial|default:'-' }}

+

سریال کنتور جدید: {{ latest_report.new_water_meter_serial|default:'-' }}

شماره پلمپ: {{ latest_report.seal_number|default:'-' }}

@@ -134,16 +134,28 @@

کنتور مشکوک: {{ latest_report.is_meter_suspicious|yesno:'بله,خیر' }}

- {# sim_number removed from summary UI #} + {% if latest_report.sim_number %} +
+

شماره سیمکارت: {{ latest_report.sim_number }}

+
+ {% endif %} {% if latest_report.meter_type %}

نوع کنتور: {{ latest_report.get_meter_type_display }}

- {# meter model/size removed from summary UI #} + {% if latest_report.meter_type == 'smart' %} +
+

مدل کنتور: {{ latest_report.get_meter_model_display|default:'-' }}

+
+ {% else %} +
+

سایز کنتور: {{ latest_report.meter_size }}

+
+ {% endif %} {% endif %} {% if latest_report.water_meter_manufacturer %}
-

شرکت سازنده کنتور: {{ latest_report.water_meter_manufacturer.name }}

+

سازنده: {{ latest_report.water_meter_manufacturer.name }}

{% endif %} {% if latest_report.discharge_pipe_diameter %} @@ -156,10 +168,14 @@

نوع مصرف: {{ latest_report.get_usage_type_display }}

{% endif %} - {# driving_force removed from summary UI #} + {% if latest_report.driving_force %} +
+

نیرو محرکه: {{ latest_report.driving_force }}

+
+ {% endif %} {% if latest_report.motor_power %}
-

توان مصرفی (کیلووات): {{ latest_report.motor_power }}

+

قدرت موتور: {{ latest_report.motor_power }} کیلووات ساعت

{% endif %} {% if latest_report.exploitation_license_number %} @@ -169,30 +185,33 @@ {% endif %} {% if latest_report.flow_rate %}
-

دبی بعد از کالیبراسیون (لیتر بر ثانیه): {{ latest_report.flow_rate }}

+

دبی: {{ latest_report.flow_rate }} لیتر/ثانیه

+
+ {% endif %} + {% if latest_report.meter_reading %} +
+

عدد کنتور: {{ latest_report.meter_reading }} متر مکعب

+
+ {% endif %} + {% if latest_report.meter_charge %} +
+

شارژ کنتور: {{ latest_report.meter_charge }} متر مکعب

{% endif %} - {# meter_reading and meter_charge removed from summary UI #} {% if latest_report.meter_charge_expiration_date %}

پایان اعتبار شارژ: {{ latest_report.meter_charge_expiration_date|to_jalali }}

{% endif %} - {# is_panel_sealed removed from summary UI #} +
+

پلمپ تابلو: {{ latest_report.is_panel_sealed|yesno:'دارد,ندارد' }}

+

تابلو قطع: {{ latest_report.is_panel_cut|yesno:'دارد,ندارد' }}

- {# is_disconnection_done removed from summary UI #} - {% if latest_report.pump_type %}
-

نوع پمپ: {{ latest_report.get_pump_type_display }}

+

انجام عملیات قطع: {{ latest_report.is_disconnection_done|yesno:'دارد,ندارد' }}

- {% endif %} - {% if latest_report.licence_working_hour %} -
-

ساعت کارکرد پروانه: {{ latest_report.licence_working_hour }}

-
- {% endif %}

UTM X: {{ latest_report.utm_x|default:'-' }}