Add qoute step.
This commit is contained in:
parent
b71ea45681
commit
6ff4740d04
30 changed files with 3362 additions and 376 deletions
|
@ -64,7 +64,8 @@ class WellForm(forms.ModelForm):
|
|||
}),
|
||||
'electricity_subscription_number': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'شماره اشتراک برق'
|
||||
'placeholder': 'شماره اشتراک برق',
|
||||
'required': True
|
||||
}),
|
||||
'water_meter_serial_number': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
# Generated by Django 5.2.4 on 2025-08-07 09:08
|
||||
# Generated by Django 5.2.4 on 2025-08-14 09:02
|
||||
|
||||
import django.db.models.deletion
|
||||
import simple_history.models
|
||||
import wells.models
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
@ -11,10 +12,27 @@ class Migration(migrations.Migration):
|
|||
initial = True
|
||||
|
||||
dependencies = [
|
||||
('locations', '0001_initial'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='WaterMeterManufacturer',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
|
||||
('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='فعال')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('name', models.CharField(blank=True, max_length=20, null=True, verbose_name='نام شرکت سازنده کنتور آب')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'شرکت سازنده کنتور آب',
|
||||
'verbose_name_plural': 'شرکت\u200cهای سازنده کنتور آب',
|
||||
},
|
||||
),
|
||||
migrations.CreateModel(
|
||||
name='HistoricalWell',
|
||||
fields=[
|
||||
|
@ -25,12 +43,28 @@ class Migration(migrations.Migration):
|
|||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('slug', models.SlugField(max_length=100, verbose_name='اسلاگ')),
|
||||
('water_subscription_number', models.CharField(db_index=True, max_length=20, verbose_name='شماره اشتراک آب')),
|
||||
('electricity_subscription_number', models.CharField(db_index=True, max_length=20, null=True, verbose_name='شماره اشتراک برق')),
|
||||
('water_meter_serial_number', models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور آب')),
|
||||
('water_meter_old_serial_number', models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور قدیمی آب')),
|
||||
('utm_x', models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='X UTM')),
|
||||
('utm_y', models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='Y UTM')),
|
||||
('utm_zone', models.PositiveIntegerField(blank=True, default=40, null=True, verbose_name='زون UTM')),
|
||||
('utm_hemisphere', models.CharField(blank=True, choices=[('N', 'شمال'), ('S', 'جنوب')], default='N', max_length=1, null=True, verbose_name='نیمکره UTM')),
|
||||
('well_power', models.PositiveIntegerField(blank=True, null=True, verbose_name='قدرت چاه')),
|
||||
('reference_letter_number', models.CharField(blank=True, max_length=20, null=True, verbose_name='شماره معرفی نامه')),
|
||||
('reference_letter_date', models.DateField(blank=True, null=True, verbose_name='تاریخ معرفی نامه')),
|
||||
('representative_letter_file', models.TextField(blank=True, max_length=100, null=True, verbose_name='نامه نمایندگی')),
|
||||
('history_id', models.AutoField(primary_key=True, serialize=False)),
|
||||
('history_date', models.DateTimeField(db_index=True)),
|
||||
('history_change_reason', models.CharField(max_length=100, null=True)),
|
||||
('history_type', models.CharField(choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')], max_length=1)),
|
||||
('affairs', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.affairs', verbose_name='امور')),
|
||||
('broker', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.broker', verbose_name='کارگزار')),
|
||||
('county', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.county', verbose_name='شهرستان')),
|
||||
('history_user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL)),
|
||||
('representative', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='نماینده')),
|
||||
('water_meter_manufacturer', models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='wells.watermetermanufacturer', verbose_name='شرکت سازنده کنتور آب')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'historical چاه',
|
||||
|
@ -50,7 +84,23 @@ class Migration(migrations.Migration):
|
|||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('slug', models.SlugField(max_length=100, unique=True, verbose_name='اسلاگ')),
|
||||
('representative', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='wells', to=settings.AUTH_USER_MODEL, verbose_name='نماینده')),
|
||||
('water_subscription_number', models.CharField(max_length=20, unique=True, verbose_name='شماره اشتراک آب')),
|
||||
('electricity_subscription_number', models.CharField(max_length=20, null=True, unique=True, verbose_name='شماره اشتراک برق')),
|
||||
('water_meter_serial_number', models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور آب')),
|
||||
('water_meter_old_serial_number', models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور قدیمی آب')),
|
||||
('utm_x', models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='X UTM')),
|
||||
('utm_y', models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='Y UTM')),
|
||||
('utm_zone', models.PositiveIntegerField(blank=True, default=40, null=True, verbose_name='زون UTM')),
|
||||
('utm_hemisphere', models.CharField(blank=True, choices=[('N', 'شمال'), ('S', 'جنوب')], default='N', max_length=1, null=True, verbose_name='نیمکره UTM')),
|
||||
('well_power', models.PositiveIntegerField(blank=True, null=True, verbose_name='قدرت چاه')),
|
||||
('reference_letter_number', models.CharField(blank=True, max_length=20, null=True, verbose_name='شماره معرفی نامه')),
|
||||
('reference_letter_date', models.DateField(blank=True, null=True, verbose_name='تاریخ معرفی نامه')),
|
||||
('representative_letter_file', models.FileField(blank=True, null=True, upload_to=wells.models.Well.path_and_rename, verbose_name='نامه نمایندگی')),
|
||||
('affairs', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.affairs', verbose_name='امور')),
|
||||
('broker', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.broker', verbose_name='کارگزار')),
|
||||
('county', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.county', verbose_name='شهرستان')),
|
||||
('representative', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='wells', to=settings.AUTH_USER_MODEL, verbose_name='نماینده')),
|
||||
('water_meter_manufacturer', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='wells.watermetermanufacturer', verbose_name='شرکت سازنده کنتور آب')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'چاه',
|
||||
|
|
|
@ -1,202 +0,0 @@
|
|||
# Generated by Django 5.2.4 on 2025-08-07 14:29
|
||||
|
||||
import datetime
|
||||
import django.db.models.deletion
|
||||
import django.utils.timezone
|
||||
from django.conf import settings
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('locations', '0001_initial'),
|
||||
('wells', '0001_initial'),
|
||||
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.CreateModel(
|
||||
name='WaterMeterManufacturer',
|
||||
fields=[
|
||||
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('created', models.DateTimeField(auto_now_add=True, verbose_name='تاریخ ایجاد')),
|
||||
('updated', models.DateTimeField(auto_now=True, verbose_name='تاریخ بروزرسانی')),
|
||||
('is_active', models.BooleanField(default=True, verbose_name='فعال')),
|
||||
('is_deleted', models.BooleanField(default=False, verbose_name='حذف شده')),
|
||||
('deleted_at', models.DateTimeField(blank=True, null=True, verbose_name='تاریخ حذف')),
|
||||
('name', models.CharField(blank=True, max_length=20, null=True, verbose_name='نام شرکت سازنده کنتور آب')),
|
||||
],
|
||||
options={
|
||||
'verbose_name': 'شرکت سازنده کنتور آب',
|
||||
'verbose_name_plural': 'شرکت\u200cهای سازنده کنتور آب',
|
||||
},
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='affairs',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.affairs', verbose_name='امور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='broker',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.broker', verbose_name='کارگزار'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='county',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='locations.county', verbose_name='شهرستان'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='electricity_subscription_number',
|
||||
field=models.CharField(blank=True, db_index=True, max_length=20, null=True, verbose_name='شماره اشتراک برق'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='reference_letter_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='تاریخ معرفی نامه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='reference_letter_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='شماره معرفی نامه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='representative_letter_file',
|
||||
field=models.TextField(blank=True, max_length=100, null=True, verbose_name='نامه نمایندگی'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='utm_hemisphere',
|
||||
field=models.CharField(blank=True, choices=[('N', 'شمال'), ('S', 'جنوب')], default='N', max_length=1, null=True, verbose_name='نیمکره UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='utm_x',
|
||||
field=models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='X UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='utm_y',
|
||||
field=models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='Y UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='utm_zone',
|
||||
field=models.PositiveIntegerField(blank=True, default=40, null=True, verbose_name='زون UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='water_meter_old_serial_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور قدیمی آب'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='water_meter_serial_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور آب'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='water_subscription_number',
|
||||
field=models.CharField(db_index=True, default=datetime.datetime(2025, 8, 7, 14, 29, 15, 340093, tzinfo=datetime.timezone.utc), max_length=20, verbose_name='شماره اشتراک آب'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='well_power',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='قدرت چاه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='affairs',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.affairs', verbose_name='امور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='broker',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.broker', verbose_name='کارگزار'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='county',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='locations.county', verbose_name='شهرستان'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='electricity_subscription_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, unique=True, verbose_name='شماره اشتراک برق'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='reference_letter_date',
|
||||
field=models.DateField(blank=True, null=True, verbose_name='تاریخ معرفی نامه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='reference_letter_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='شماره معرفی نامه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='representative_letter_file',
|
||||
field=models.FileField(blank=True, null=True, upload_to='representative_letters/', verbose_name='نامه نمایندگی'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='utm_hemisphere',
|
||||
field=models.CharField(blank=True, choices=[('N', 'شمال'), ('S', 'جنوب')], default='N', max_length=1, null=True, verbose_name='نیمکره UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='utm_x',
|
||||
field=models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='X UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='utm_y',
|
||||
field=models.DecimalField(blank=True, decimal_places=6, max_digits=10, null=True, verbose_name='Y UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='utm_zone',
|
||||
field=models.PositiveIntegerField(blank=True, default=40, null=True, verbose_name='زون UTM'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='water_meter_old_serial_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور قدیمی آب'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='water_meter_serial_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='سریال کنتور آب'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='water_subscription_number',
|
||||
field=models.CharField(default=django.utils.timezone.now, max_length=20, unique=True, verbose_name='شماره اشتراک آب'),
|
||||
preserve_default=False,
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='well_power',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='قدرت چاه'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='well',
|
||||
name='representative',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='wells', to=settings.AUTH_USER_MODEL, verbose_name='نماینده'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='water_meter_manufacturer',
|
||||
field=models.ForeignKey(blank=True, db_constraint=False, null=True, on_delete=django.db.models.deletion.DO_NOTHING, related_name='+', to='wells.watermetermanufacturer', verbose_name='شرکت سازنده کنتور آب'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='water_meter_manufacturer',
|
||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='wells.watermetermanufacturer', verbose_name='شرکت سازنده کنتور آب'),
|
||||
),
|
||||
]
|
|
@ -42,7 +42,6 @@ class Well(SluggedModel):
|
|||
verbose_name="نماینده",
|
||||
related_name="wells",
|
||||
null=True,
|
||||
blank=True
|
||||
)
|
||||
|
||||
water_subscription_number = models.CharField(
|
||||
|
@ -54,7 +53,6 @@ class Well(SluggedModel):
|
|||
max_length=20,
|
||||
verbose_name="شماره اشتراک برق",
|
||||
null=True,
|
||||
blank=True,
|
||||
unique=True
|
||||
)
|
||||
|
||||
|
|
|
@ -97,7 +97,7 @@
|
|||
{% else %}
|
||||
{{ well.representative.username|first|upper }}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -387,7 +387,8 @@
|
|||
observer: true,
|
||||
calendar: {
|
||||
persian: {
|
||||
locale: 'fa'
|
||||
locale: 'fa',
|
||||
leapYearMode: 'astronomical'
|
||||
}
|
||||
},
|
||||
onSelect: function(unix) {
|
||||
|
@ -489,15 +490,15 @@
|
|||
form.reset();
|
||||
|
||||
// Reset form for adding new well
|
||||
currentWellId = null;
|
||||
isEditMode = false;
|
||||
currentWellId = null;
|
||||
isEditMode = false;
|
||||
$('#well-id').val('');
|
||||
$('#exampleModalLabel').text('افزودن چاه جدید');
|
||||
$('.data-submit').text('ذخیره');
|
||||
|
||||
// Hide new manufacturer field
|
||||
document.getElementById('new-manufacturer-field').style.display = 'none';
|
||||
document.getElementById('id_new_manufacturer').style.display = 'none';
|
||||
document.getElementById('new-manufacturer-field').style.display = 'none';
|
||||
document.getElementById('id_new_manufacturer').style.display = 'none';
|
||||
|
||||
// Reset file display
|
||||
document.getElementById('current-file-display').style.display = 'none';
|
||||
|
@ -592,7 +593,7 @@
|
|||
Object.keys(fieldsMap).forEach(function(fieldId) {
|
||||
$('#' + fieldId).val(fieldsMap[fieldId] || '');
|
||||
});
|
||||
|
||||
|
||||
// تبدیل تاریخ میلادی به شمسی برای نمایش
|
||||
if (well.reference_letter_date) {
|
||||
try {
|
||||
|
@ -642,7 +643,7 @@
|
|||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function deleteWell(id, waterSubscriptionNumber) {
|
||||
// Set modal content
|
||||
document.getElementById('deleteConfirmText').textContent = `آیا از حذف چاه ${waterSubscriptionNumber} اطمینان دارید؟`;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue