huge fix
This commit is contained in:
parent
810c87e2e0
commit
b5bf3a5dbe
51 changed files with 2397 additions and 326 deletions
|
|
@ -104,7 +104,8 @@ class WellForm(forms.ModelForm):
|
|||
}),
|
||||
'reference_letter_number': forms.TextInput(attrs={
|
||||
'class': 'form-control',
|
||||
'placeholder': 'شماره معرفی نامه'
|
||||
'placeholder': 'شماره معرفی نامه',
|
||||
'required': True
|
||||
}),
|
||||
'reference_letter_date': forms.DateInput(attrs={
|
||||
'class': 'form-control',
|
||||
|
|
|
|||
33
wells/migrations/0002_alter_historicalwell_utm_x_and_more.py
Normal file
33
wells/migrations/0002_alter_historicalwell_utm_x_and_more.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
# Generated by Django 5.2.4 on 2025-09-21 07:37
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wells', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='historicalwell',
|
||||
name='utm_x',
|
||||
field=models.DecimalField(blank=True, decimal_places=0, max_digits=10, null=True, verbose_name='X UTM'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='historicalwell',
|
||||
name='utm_y',
|
||||
field=models.DecimalField(blank=True, decimal_places=0, max_digits=10, null=True, verbose_name='Y UTM'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='well',
|
||||
name='utm_x',
|
||||
field=models.DecimalField(blank=True, decimal_places=0, max_digits=10, null=True, verbose_name='X UTM'),
|
||||
),
|
||||
migrations.AlterField(
|
||||
model_name='well',
|
||||
name='utm_y',
|
||||
field=models.DecimalField(blank=True, decimal_places=0, max_digits=10, null=True, verbose_name='Y UTM'),
|
||||
),
|
||||
]
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
# Generated by Django 5.2.4 on 2025-09-24 11:07
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wells', '0002_alter_historicalwell_utm_x_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='discharge_pipe_diameter',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='قطر لوله آبده (اینچ)'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='driving_force',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='نیرو محرکه چاه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='exploitation_license_number',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='شماره پروانه بهره\u200cبرداری چاه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='meter_size',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='سایز کنتور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='meter_type',
|
||||
field=models.CharField(blank=True, choices=[('smart', 'هوشمند (آبی/برق)'), ('volumetric', 'حجمی')], max_length=20, null=True, verbose_name='نوع کنتور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='motor_power',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='(کیلووات ساعت)قدرت موتور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='post_calibration_flow_rate',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='(لیتر بر ثانیه)دبی بعد از کالیبراسیون'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='pre_calibration_flow_rate',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='(لیتر بر ثانیه)دبی قبل از کالیبراسیون'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='sim_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='شماره سیمکارت'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='historicalwell',
|
||||
name='usage_type',
|
||||
field=models.CharField(blank=True, choices=[('domestic', 'شرب و خدمات'), ('agriculture', 'کشاورزی'), ('industrial', 'صنعتی')], max_length=20, null=True, verbose_name='نوع مصرف'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='discharge_pipe_diameter',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='قطر لوله آبده (اینچ)'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='driving_force',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='نیرو محرکه چاه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='exploitation_license_number',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='شماره پروانه بهره\u200cبرداری چاه'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='meter_size',
|
||||
field=models.CharField(blank=True, max_length=50, null=True, verbose_name='سایز کنتور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='meter_type',
|
||||
field=models.CharField(blank=True, choices=[('smart', 'هوشمند (آبی/برق)'), ('volumetric', 'حجمی')], max_length=20, null=True, verbose_name='نوع کنتور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='motor_power',
|
||||
field=models.PositiveIntegerField(blank=True, null=True, verbose_name='(کیلووات ساعت)قدرت موتور'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='post_calibration_flow_rate',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='(لیتر بر ثانیه)دبی بعد از کالیبراسیون'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='pre_calibration_flow_rate',
|
||||
field=models.DecimalField(blank=True, decimal_places=2, max_digits=10, null=True, verbose_name='(لیتر بر ثانیه)دبی قبل از کالیبراسیون'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='sim_number',
|
||||
field=models.CharField(blank=True, max_length=20, null=True, verbose_name='شماره سیمکارت'),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='well',
|
||||
name='usage_type',
|
||||
field=models.CharField(blank=True, choices=[('domestic', 'شرب و خدمات'), ('agriculture', 'کشاورزی'), ('industrial', 'صنعتی')], max_length=20, null=True, verbose_name='نوع مصرف'),
|
||||
),
|
||||
]
|
||||
|
|
@ -0,0 +1,93 @@
|
|||
# Generated by Django 5.2.4 on 2025-09-24 11:15
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('wells', '0003_historicalwell_discharge_pipe_diameter_and_more'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='discharge_pipe_diameter',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='driving_force',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='exploitation_license_number',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='meter_size',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='meter_type',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='motor_power',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='post_calibration_flow_rate',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='pre_calibration_flow_rate',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='sim_number',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='historicalwell',
|
||||
name='usage_type',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='discharge_pipe_diameter',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='driving_force',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='exploitation_license_number',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='meter_size',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='meter_type',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='motor_power',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='post_calibration_flow_rate',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='pre_calibration_flow_rate',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='sim_number',
|
||||
),
|
||||
migrations.RemoveField(
|
||||
model_name='well',
|
||||
name='usage_type',
|
||||
),
|
||||
]
|
||||
|
|
@ -15,7 +15,7 @@ from processes.utils import scope_wells_queryset
|
|||
from processes.models import ProcessInstance
|
||||
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
|
||||
def well_list(request):
|
||||
"""نمایش لیست چاهها"""
|
||||
base = Well.objects.select_related(
|
||||
|
|
@ -40,7 +40,7 @@ def well_list(request):
|
|||
|
||||
@require_POST
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
|
||||
def add_well_ajax(request):
|
||||
"""AJAX endpoint for adding wells"""
|
||||
try:
|
||||
|
|
@ -98,7 +98,7 @@ def add_well_ajax(request):
|
|||
|
||||
@require_POST
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
|
||||
def edit_well_ajax(request, well_id):
|
||||
"""AJAX endpoint for editing wells"""
|
||||
well = get_object_or_404(Well, id=well_id)
|
||||
|
|
@ -154,7 +154,7 @@ def edit_well_ajax(request, well_id):
|
|||
|
||||
@require_POST
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
|
||||
def delete_well(request, well_id):
|
||||
"""حذف چاه"""
|
||||
well = get_object_or_404(Well, id=well_id)
|
||||
|
|
@ -199,7 +199,7 @@ def get_well_data(request, well_id):
|
|||
|
||||
@require_GET
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
|
||||
def get_well_details(request, well_id):
|
||||
"""جزئیات کامل چاه برای نمایش در مدال"""
|
||||
well = get_object_or_404(
|
||||
|
|
@ -260,7 +260,7 @@ def get_well_details(request, well_id):
|
|||
|
||||
@require_GET
|
||||
@login_required
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT])
|
||||
@allowed_roles([UserRoles.ADMIN, UserRoles.BROKER, UserRoles.MANAGER, UserRoles.ACCOUNTANT, UserRoles.WATER_RESOURCE_MANAGER])
|
||||
def get_well_requests(request, well_id):
|
||||
"""سوابق درخواستهای مرتبط با یک چاه"""
|
||||
# Scoped access: reuse base scoping by filtering on ProcessInstance via broker/affairs of current user if needed
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue