Add field to installation report
This commit is contained in:
parent
0f66e897a1
commit
c90e19daaa
10 changed files with 259 additions and 61 deletions
|
|
@ -156,8 +156,10 @@
|
|||
{% 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>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-mobile bx-sm me-2"></i>شماره سیمکارت: {{ report.sim_number|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-cog bx-sm me-2"></i>نیرو محرکه چاه: {{ report.driving_force|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-battery bx-sm me-2"></i>شارژ کنتور (متر مکعب): {{ report.meter_charge|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-calendar-exclamation bx-sm me-2"></i>پایان اعتبار شارژ: {{ report.meter_charge_expiration_date|to_jalali|default:'-' }}</p>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-help-circle bx-sm me-2"></i>کنتور مشکوک: {{ report.is_meter_suspicious|yesno:'بله,خیر' }}</p>
|
||||
|
|
@ -165,9 +167,12 @@
|
|||
<p class="text-nowrap mb-2"><i class="bx bx-map-pin bx-sm me-2"></i>UTM Y: {{ report.utm_y|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-category bx-sm me-2"></i>نوع مصرف: {{ report.get_usage_type_display|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-id-card bx-sm me-2"></i>شماره پروانه بهرهبرداری: {{ report.exploitation_license_number|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-bolt-circle bx-sm me-2"></i>قدرت موتور(کیلووات ساعت): {{ report.motor_power|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-water bx-sm me-2"></i>دبی قبل کالیبراسیون(لیتر/ثانیه): {{ report.pre_calibration_flow_rate|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-water bx-sm me-2"></i>دبی بعد کالیبراسیون(لیتر/ثانیه): {{ report.post_calibration_flow_rate|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-bolt-circle bx-sm me-2"></i>قدرت موتور (کیلووات ساعت): {{ report.motor_power|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-water bx-sm me-2"></i>دبی (لیتر/ثانیه): {{ report.flow_rate|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-pen bx-sm me-2"></i>عدد کنتور (متر مکعب): {{ report.meter_reading|default:'-' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-lock-open-alt bx-sm me-2"></i>پلمپ تابلو: {{ report.is_panel_sealed|yesno:'بله,خیر' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-power-off bx-sm me-2"></i>تابلو قطع: {{ report.is_panel_cut|yesno:'بله,خیر' }}</p>
|
||||
<p class="text-nowrap mb-2"><i class="bx bx-cut bx-sm me-2"></i>انجام عملیات قطع: {{ report.is_disconnection_done|yesno:'بله,خیر' }}</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -389,17 +394,32 @@
|
|||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{{ form.pre_calibration_flow_rate.label_tag }}
|
||||
{{ form.pre_calibration_flow_rate }}
|
||||
{% if form.pre_calibration_flow_rate.errors %}
|
||||
<div class="invalid-feedback">{{ form.pre_calibration_flow_rate.errors.0 }}</div>
|
||||
{{ form.flow_rate.label_tag }}
|
||||
{{ form.flow_rate }}
|
||||
{% if form.flow_rate.errors %}
|
||||
<div class="invalid-feedback">{{ form.flow_rate.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{{ form.post_calibration_flow_rate.label_tag }}
|
||||
{{ form.post_calibration_flow_rate }}
|
||||
{% if form.post_calibration_flow_rate.errors %}
|
||||
<div class="invalid-feedback">{{ form.post_calibration_flow_rate.errors.0 }}</div>
|
||||
{{ form.meter_reading.label_tag }}
|
||||
{{ form.meter_reading }}
|
||||
{% if form.meter_reading.errors %}
|
||||
<div class="invalid-feedback">{{ form.meter_reading.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{{ form.meter_charge.label_tag }}
|
||||
{{ form.meter_charge }}
|
||||
{% if form.meter_charge.errors %}
|
||||
<div class="invalid-feedback">{{ form.meter_charge.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
{{ form.meter_charge_expiration_date.label_tag }}
|
||||
<input type="text" id="id_meter_charge_expiration_date_display" class="form-control{% if form.meter_charge_expiration_date.errors %} is-invalid{% endif %}" placeholder="انتخاب تاریخ" {% if not user_is_installer %}disabled{% endif %} readonly value="{% if report and edit_mode and report.meter_charge_expiration_date %}{{ report.meter_charge_expiration_date|date:'Y/m/d' }}{% elif form.meter_charge_expiration_date.value %}{{ form.meter_charge_expiration_date.value|date:'Y/m/d' }}{% endif %}">
|
||||
<input type="hidden" id="id_meter_charge_expiration_date" name="meter_charge_expiration_date" value="{% if report and edit_mode and report.meter_charge_expiration_date %}{{ report.meter_charge_expiration_date|date:'Y-m-d' }}{% elif form.meter_charge_expiration_date.value %}{{ form.meter_charge_expiration_date.value }}{% endif %}">
|
||||
{% if form.meter_charge_expiration_date.errors %}
|
||||
<div class="invalid-feedback">{{ form.meter_charge_expiration_date.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
|
|
@ -432,14 +452,43 @@
|
|||
<div class="invalid-feedback">{{ form.driving_force.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3 d-flex align-items-end">
|
||||
<div class="form-check">
|
||||
{{ form.is_meter_suspicious }}
|
||||
{{ form.is_meter_suspicious.label_tag }}
|
||||
<div class="row mt-3">
|
||||
<div class="col-md-3 d-flex align-items-end">
|
||||
<div class="form-check">
|
||||
{{ form.is_meter_suspicious }}
|
||||
{{ form.is_meter_suspicious.label_tag }}
|
||||
</div>
|
||||
{% if form.is_meter_suspicious.errors %}
|
||||
<div class="invalid-feedback">{{ form.is_meter_suspicious.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3 d-flex align-items-end">
|
||||
<div class="form-check">
|
||||
{{ form.is_panel_sealed }}
|
||||
{{ form.is_panel_sealed.label_tag }}
|
||||
</div>
|
||||
{% if form.is_panel_sealed.errors %}
|
||||
<div class="invalid-feedback">{{ form.is_panel_sealed.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3 d-flex align-items-end">
|
||||
<div class="form-check">
|
||||
{{ form.is_panel_cut }}
|
||||
{{ form.is_panel_cut.label_tag }}
|
||||
</div>
|
||||
{% if form.is_panel_cut.errors %}
|
||||
<div class="invalid-feedback">{{ form.is_panel_cut.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class="col-md-3 d-flex align-items-end">
|
||||
<div class="form-check">
|
||||
{{ form.is_disconnection_done }}
|
||||
{{ form.is_disconnection_done.label_tag }}
|
||||
</div>
|
||||
{% if form.is_disconnection_done.errors %}
|
||||
<div class="invalid-feedback">{{ form.is_disconnection_done.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if form.is_meter_suspicious.errors %}
|
||||
<div class="invalid-feedback">{{ form.is_meter_suspicious.errors.0 }}</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
<div class="my-3">
|
||||
|
|
@ -653,7 +702,7 @@
|
|||
<script src="https://unpkg.com/persian-date@latest/dist/persian-date.min.js"></script>
|
||||
<script src="https://unpkg.com/persian-datepicker@latest/dist/js/persian-datepicker.min.js"></script>
|
||||
<script>
|
||||
// Persian datepicker for visited_date (exact pattern like sample: display + altField)
|
||||
// Persian datepicker helper for date fields (DRY)
|
||||
(function(){
|
||||
function convertPersianToEnglishNumbers(str) {
|
||||
const persianNumbers = '۰۱۲۳۴۵۶۷۸۹';
|
||||
|
|
@ -664,12 +713,12 @@
|
|||
}).join('');
|
||||
}
|
||||
|
||||
if (window.$ && $.fn.persianDatepicker && $('#id_visited_date_display').length) {
|
||||
function initPersianDateField(displaySelector, hiddenSelector){
|
||||
if (!(window.$ && $.fn.persianDatepicker)) return;
|
||||
var $display = $(displaySelector);
|
||||
var $hidden = $(hiddenSelector);
|
||||
if (!$display.length || !$hidden.length) return;
|
||||
try {
|
||||
var $display = $('#id_visited_date_display');
|
||||
var $hidden = $('#id_visited_date');
|
||||
|
||||
// Prefill from hidden Gregorian to visible Jalali
|
||||
var initialGregorian = $hidden.val();
|
||||
if (initialGregorian) {
|
||||
try {
|
||||
|
|
@ -678,10 +727,9 @@
|
|||
} catch (e) {}
|
||||
}
|
||||
|
||||
// Initialize datepicker with altField exactly like the sample
|
||||
var picker = $display.persianDatepicker({
|
||||
$display.persianDatepicker({
|
||||
calendarType: 'persian',
|
||||
altField: '#id_visited_date',
|
||||
altField: hiddenSelector,
|
||||
format: 'YYYY/MM/DD',
|
||||
altFormat: 'YYYY-MM-DD',
|
||||
observer: true,
|
||||
|
|
@ -694,8 +742,12 @@
|
|||
$hidden.val(g);
|
||||
}
|
||||
});
|
||||
} catch (e) { console.error('Error initializing Persian Date Picker:', e); }
|
||||
} catch (e) { console.error('Error initializing Persian Date Picker:', displaySelector, e); }
|
||||
}
|
||||
|
||||
// Initialize both fields
|
||||
initPersianDateField('#id_visited_date_display', '#id_visited_date');
|
||||
initPersianDateField('#id_meter_charge_expiration_date_display', '#id_meter_charge_expiration_date');
|
||||
})();
|
||||
|
||||
// Require date and show success toast on submit (persist across redirect)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue