Compare commits
	
		
			No commits in common. "d22473e14a637ee707b5d4f8f6d7ce4214f4dbb4" and "c76de99e8419a3ff29ffbc660d041615ecadbd2d" have entirely different histories.
		
	
	
		
			d22473e14a
			...
			c76de99e84
		
	
		
					 8 changed files with 35 additions and 159 deletions
				
			
		| 
						 | 
					@ -64,25 +64,21 @@ class CustomerForm(forms.ModelForm):
 | 
				
			||||||
            'address': forms.Textarea(attrs={
 | 
					            'address': forms.Textarea(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'آدرس کامل',
 | 
					                'placeholder': 'آدرس کامل',
 | 
				
			||||||
                'rows': '3',
 | 
					                'rows': '3'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'card_number': forms.TextInput(attrs={
 | 
					            'card_number': forms.TextInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'شماره کارت بانکی',
 | 
					                'placeholder': 'شماره کارت بانکی',
 | 
				
			||||||
                'maxlength': '16',
 | 
					                'maxlength': '16'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'account_number': forms.TextInput(attrs={
 | 
					            'account_number': forms.TextInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'شماره حساب بانکی',
 | 
					                'placeholder': 'شماره حساب بانکی',
 | 
				
			||||||
                'maxlength': '20',
 | 
					                'maxlength': '20'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'bank_name': forms.Select(attrs={
 | 
					            'bank_name': forms.Select(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'نام بانک',
 | 
					                'placeholder': 'نام بانک',
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        labels = {
 | 
					        labels = {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,74 +0,0 @@
 | 
				
			||||||
# Generated by Django 5.2.4 on 2025-10-04 10:36
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import django.core.validators
 | 
					 | 
				
			||||||
from django.db import migrations, models
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Migration(migrations.Migration):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    dependencies = [
 | 
					 | 
				
			||||||
        ('accounts', '0008_alter_historicalprofile_phone_number_1_and_more'),
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    operations = [
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='historicalprofile',
 | 
					 | 
				
			||||||
            name='account_number',
 | 
					 | 
				
			||||||
            field=models.CharField(default=1, max_length=20, validators=[django.core.validators.RegexValidator(code='invalid_account_number', message='شماره حساب باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره حساب'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='historicalprofile',
 | 
					 | 
				
			||||||
            name='address',
 | 
					 | 
				
			||||||
            field=models.TextField(default=1, verbose_name='آدرس'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='historicalprofile',
 | 
					 | 
				
			||||||
            name='bank_name',
 | 
					 | 
				
			||||||
            field=models.CharField(choices=[('mellat', 'بانک ملت'), ('saman', 'بانک سامان'), ('parsian', 'بانک پارسیان'), ('sina', 'بانک سینا'), ('tejarat', 'بانک تجارت'), ('tosee', 'بانک توسعه'), ('iran_zamin', 'بانک ایران زمین'), ('meli', 'بانک ملی'), ('saderat', 'بانک توسعه صادرات'), ('iran_zamin', 'بانک ایران زمین'), ('refah', 'بانک رفاه'), ('eghtesad_novin', 'بانک اقتصاد نوین'), ('pasargad', 'بانک پاسارگاد'), ('other', 'سایر')], default=1, max_length=255, verbose_name='نام بانک'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='historicalprofile',
 | 
					 | 
				
			||||||
            name='card_number',
 | 
					 | 
				
			||||||
            field=models.CharField(default=1, max_length=16, validators=[django.core.validators.RegexValidator(code='invalid_card_number', message='شماره کارت باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره کارت'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='historicalprofile',
 | 
					 | 
				
			||||||
            name='national_code',
 | 
					 | 
				
			||||||
            field=models.CharField(default=1, max_length=10, validators=[django.core.validators.RegexValidator(code='invalid_national_code', message='کد ملی باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='کد ملی'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='profile',
 | 
					 | 
				
			||||||
            name='account_number',
 | 
					 | 
				
			||||||
            field=models.CharField(default=1, max_length=20, validators=[django.core.validators.RegexValidator(code='invalid_account_number', message='شماره حساب باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره حساب'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='profile',
 | 
					 | 
				
			||||||
            name='address',
 | 
					 | 
				
			||||||
            field=models.TextField(default=1, verbose_name='آدرس'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='profile',
 | 
					 | 
				
			||||||
            name='bank_name',
 | 
					 | 
				
			||||||
            field=models.CharField(choices=[('mellat', 'بانک ملت'), ('saman', 'بانک سامان'), ('parsian', 'بانک پارسیان'), ('sina', 'بانک سینا'), ('tejarat', 'بانک تجارت'), ('tosee', 'بانک توسعه'), ('iran_zamin', 'بانک ایران زمین'), ('meli', 'بانک ملی'), ('saderat', 'بانک توسعه صادرات'), ('iran_zamin', 'بانک ایران زمین'), ('refah', 'بانک رفاه'), ('eghtesad_novin', 'بانک اقتصاد نوین'), ('pasargad', 'بانک پاسارگاد'), ('other', 'سایر')], default=1, max_length=255, verbose_name='نام بانک'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='profile',
 | 
					 | 
				
			||||||
            name='card_number',
 | 
					 | 
				
			||||||
            field=models.CharField(default=1, max_length=16, validators=[django.core.validators.RegexValidator(code='invalid_card_number', message='شماره کارت باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='شماره کارت'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='profile',
 | 
					 | 
				
			||||||
            name='national_code',
 | 
					 | 
				
			||||||
            field=models.CharField(default=1, max_length=10, validators=[django.core.validators.RegexValidator(code='invalid_national_code', message='کد ملی باید فقط شامل اعداد باشد.', regex='^\\d+$')], verbose_name='کد ملی'),
 | 
					 | 
				
			||||||
            preserve_default=False,
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,9 @@ class Profile(BaseModel):
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    national_code = models.CharField(
 | 
					    national_code = models.CharField(
 | 
				
			||||||
        max_length=10,
 | 
					        max_length=10,
 | 
				
			||||||
 | 
					        null=True,
 | 
				
			||||||
        verbose_name="کد ملی",
 | 
					        verbose_name="کد ملی",
 | 
				
			||||||
 | 
					        blank=True,
 | 
				
			||||||
        validators=[
 | 
					        validators=[
 | 
				
			||||||
            RegexValidator(
 | 
					            RegexValidator(
 | 
				
			||||||
                regex=r'^\d+$',
 | 
					                regex=r'^\d+$',
 | 
				
			||||||
| 
						 | 
					@ -37,11 +39,15 @@ class Profile(BaseModel):
 | 
				
			||||||
        ]
 | 
					        ]
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    address = models.TextField(
 | 
					    address = models.TextField(
 | 
				
			||||||
 | 
					        null=True,
 | 
				
			||||||
        verbose_name="آدرس",
 | 
					        verbose_name="آدرس",
 | 
				
			||||||
 | 
					        blank=True
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    card_number = models.CharField(
 | 
					    card_number = models.CharField(
 | 
				
			||||||
        max_length=16,
 | 
					        max_length=16,
 | 
				
			||||||
 | 
					        null=True,
 | 
				
			||||||
        verbose_name="شماره کارت",
 | 
					        verbose_name="شماره کارت",
 | 
				
			||||||
 | 
					        blank=True,
 | 
				
			||||||
        validators=[
 | 
					        validators=[
 | 
				
			||||||
            RegexValidator(
 | 
					            RegexValidator(
 | 
				
			||||||
                regex=r'^\d+$',
 | 
					                regex=r'^\d+$',
 | 
				
			||||||
| 
						 | 
					@ -52,7 +58,9 @@ class Profile(BaseModel):
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    account_number = models.CharField(
 | 
					    account_number = models.CharField(
 | 
				
			||||||
        max_length=20,
 | 
					        max_length=20,
 | 
				
			||||||
 | 
					        null=True,
 | 
				
			||||||
        verbose_name="شماره حساب",
 | 
					        verbose_name="شماره حساب",
 | 
				
			||||||
 | 
					        blank=True,
 | 
				
			||||||
        validators=[
 | 
					        validators=[
 | 
				
			||||||
            RegexValidator(
 | 
					            RegexValidator(
 | 
				
			||||||
                regex=r'^\d+$',
 | 
					                regex=r'^\d+$',
 | 
				
			||||||
| 
						 | 
					@ -64,7 +72,9 @@ class Profile(BaseModel):
 | 
				
			||||||
    bank_name = models.CharField(
 | 
					    bank_name = models.CharField(
 | 
				
			||||||
        max_length=255,
 | 
					        max_length=255,
 | 
				
			||||||
        choices=BANK_CHOICES,
 | 
					        choices=BANK_CHOICES,
 | 
				
			||||||
 | 
					        null=True,
 | 
				
			||||||
        verbose_name="نام بانک",
 | 
					        verbose_name="نام بانک",
 | 
				
			||||||
 | 
					        blank=True
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
    phone_number_1 = models.CharField(
 | 
					    phone_number_1 = models.CharField(
 | 
				
			||||||
        max_length=11,
 | 
					        max_length=11,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								db.sqlite3
									
										
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								db.sqlite3
									
										
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -34,29 +34,24 @@ class InstallationReportForm(forms.ModelForm):
 | 
				
			||||||
                'required': True
 | 
					                'required': True
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'new_water_meter_serial': forms.TextInput(attrs={
 | 
					            'new_water_meter_serial': forms.TextInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'seal_number': forms.TextInput(attrs={
 | 
					            'seal_number': forms.TextInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'utm_x': forms.NumberInput(attrs={
 | 
					            'utm_x': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'step': '1',
 | 
					                'step': '1'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'utm_y': forms.NumberInput(attrs={
 | 
					            'utm_y': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'step': '1',
 | 
					                'step': '1'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'meter_type': forms.Select(attrs={
 | 
					            'meter_type': forms.Select(attrs={
 | 
				
			||||||
                'class': 'form-select',
 | 
					                'class': 'form-select'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }, choices=[
 | 
					            }, choices=[
 | 
				
			||||||
                ('', 'انتخاب کنید'),
 | 
					                ('', 'انتخاب کنید'),
 | 
				
			||||||
                ('smart', 'هوشمند (آب و برق)'),
 | 
					                ('smart', 'هوشمند (آبی/برق)'),
 | 
				
			||||||
                ('volumetric', 'حجمی')
 | 
					                ('volumetric', 'حجمی')
 | 
				
			||||||
            ]),
 | 
					            ]),
 | 
				
			||||||
            'meter_size': forms.TextInput(attrs={
 | 
					            'meter_size': forms.TextInput(attrs={
 | 
				
			||||||
| 
						 | 
					@ -65,12 +60,10 @@ class InstallationReportForm(forms.ModelForm):
 | 
				
			||||||
            'discharge_pipe_diameter': forms.NumberInput(attrs={
 | 
					            'discharge_pipe_diameter': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'min': '0',
 | 
					                'min': '0',
 | 
				
			||||||
                'step': '1',
 | 
					                'step': '1'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'usage_type': forms.Select(attrs={
 | 
					            'usage_type': forms.Select(attrs={
 | 
				
			||||||
                'class': 'form-select',
 | 
					                'class': 'form-select'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }, choices=[
 | 
					            }, choices=[
 | 
				
			||||||
                ('', 'انتخاب کنید'),
 | 
					                ('', 'انتخاب کنید'),
 | 
				
			||||||
                ('domestic', 'شرب و خدمات'),
 | 
					                ('domestic', 'شرب و خدمات'),
 | 
				
			||||||
| 
						 | 
					@ -84,37 +77,31 @@ class InstallationReportForm(forms.ModelForm):
 | 
				
			||||||
            'motor_power': forms.NumberInput(attrs={
 | 
					            'motor_power': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'min': '0',
 | 
					                'min': '0',
 | 
				
			||||||
                'step': '1',
 | 
					                'step': '1'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'pre_calibration_flow_rate': forms.NumberInput(attrs={
 | 
					            'pre_calibration_flow_rate': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'min': '0',
 | 
					                'min': '0',
 | 
				
			||||||
                'step': '0.01',
 | 
					                'step': '0.01'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'post_calibration_flow_rate': forms.NumberInput(attrs={
 | 
					            'post_calibration_flow_rate': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'min': '0',
 | 
					                'min': '0',
 | 
				
			||||||
                'step': '0.01',
 | 
					                'step': '0.01'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'water_meter_manufacturer': forms.Select(attrs={
 | 
					            'water_meter_manufacturer': forms.Select(attrs={
 | 
				
			||||||
                'class': 'form-select',
 | 
					                'class': 'form-select',
 | 
				
			||||||
                'id': 'id_water_meter_manufacturer',
 | 
					                'id': 'id_water_meter_manufacturer'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'sim_number': forms.TextInput(attrs={
 | 
					            'sim_number': forms.TextInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'driving_force': forms.TextInput(attrs={
 | 
					            'driving_force': forms.TextInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'is_meter_suspicious': forms.CheckboxInput(attrs={
 | 
					            'is_meter_suspicious': forms.CheckboxInput(attrs={
 | 
				
			||||||
                'class': 'form-check-input',
 | 
					                'class': 'form-check-input',
 | 
				
			||||||
                'id': 'id_is_meter_suspicious',
 | 
					                'id': 'id_is_meter_suspicious'
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'description': forms.Textarea(attrs={
 | 
					            'description': forms.Textarea(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -83,10 +83,12 @@ class WellForm(forms.ModelForm):
 | 
				
			||||||
            'utm_x': forms.NumberInput(attrs={
 | 
					            'utm_x': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'X UTM',
 | 
					                'placeholder': 'X UTM',
 | 
				
			||||||
 | 
					                'required': 'required',
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'utm_y': forms.NumberInput(attrs={
 | 
					            'utm_y': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'Y UTM',
 | 
					                'placeholder': 'Y UTM',
 | 
				
			||||||
 | 
					                'required': 'required',
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'utm_zone': forms.NumberInput(attrs={
 | 
					            'utm_zone': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
| 
						 | 
					@ -95,17 +97,17 @@ class WellForm(forms.ModelForm):
 | 
				
			||||||
                'max': '60'
 | 
					                'max': '60'
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'utm_hemisphere': forms.Select(attrs={
 | 
					            'utm_hemisphere': forms.Select(attrs={
 | 
				
			||||||
                'class': 'form-select',
 | 
					                'class': 'form-select'
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'well_power': forms.NumberInput(attrs={
 | 
					            'well_power': forms.NumberInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'قدرت چاه',
 | 
					                'placeholder': 'قدرت چاه',
 | 
				
			||||||
                'min': '0',
 | 
					                'min': '0'
 | 
				
			||||||
                'required': True
 | 
					 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'reference_letter_number': forms.TextInput(attrs={
 | 
					            'reference_letter_number': forms.TextInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
                'placeholder': 'شماره معرفی نامه',
 | 
					                'placeholder': 'شماره معرفی نامه',
 | 
				
			||||||
 | 
					                'required': True
 | 
				
			||||||
            }),
 | 
					            }),
 | 
				
			||||||
            'reference_letter_date': forms.DateInput(attrs={
 | 
					            'reference_letter_date': forms.DateInput(attrs={
 | 
				
			||||||
                'class': 'form-control',
 | 
					                'class': 'form-control',
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,43 +0,0 @@
 | 
				
			||||||
# Generated by Django 5.2.4 on 2025-10-04 10:43
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
from django.db import migrations, models
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class Migration(migrations.Migration):
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    dependencies = [
 | 
					 | 
				
			||||||
        ('wells', '0005_alter_historicalwell_utm_x_and_more'),
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    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='historicalwell',
 | 
					 | 
				
			||||||
            name='well_power',
 | 
					 | 
				
			||||||
            field=models.PositiveIntegerField(verbose_name='قدرت چاه'),
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        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'),
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
        migrations.AlterField(
 | 
					 | 
				
			||||||
            model_name='well',
 | 
					 | 
				
			||||||
            name='well_power',
 | 
					 | 
				
			||||||
            field=models.PositiveIntegerField(verbose_name='قدرت چاه'),
 | 
					 | 
				
			||||||
        ),
 | 
					 | 
				
			||||||
    ]
 | 
					 | 
				
			||||||
| 
						 | 
					@ -80,15 +80,11 @@ class Well(SluggedModel):
 | 
				
			||||||
        max_digits=10,
 | 
					        max_digits=10,
 | 
				
			||||||
        decimal_places=0,
 | 
					        decimal_places=0,
 | 
				
			||||||
        verbose_name="X UTM",
 | 
					        verbose_name="X UTM",
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
        blank=True
 | 
					 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
    utm_y = models.DecimalField(
 | 
					    utm_y = models.DecimalField(
 | 
				
			||||||
        max_digits=10,
 | 
					        max_digits=10,
 | 
				
			||||||
        decimal_places=0,
 | 
					        decimal_places=0,
 | 
				
			||||||
        verbose_name="Y UTM",
 | 
					        verbose_name="Y UTM",
 | 
				
			||||||
        null=True,
 | 
					 | 
				
			||||||
        blank=True
 | 
					 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
    utm_zone = models.PositiveIntegerField(
 | 
					    utm_zone = models.PositiveIntegerField(
 | 
				
			||||||
        verbose_name="زون UTM",
 | 
					        verbose_name="زون UTM",
 | 
				
			||||||
| 
						 | 
					@ -107,6 +103,8 @@ class Well(SluggedModel):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    well_power = models.PositiveIntegerField(
 | 
					    well_power = models.PositiveIntegerField(
 | 
				
			||||||
        verbose_name="قدرت چاه",
 | 
					        verbose_name="قدرت چاه",
 | 
				
			||||||
 | 
					        null=True,
 | 
				
			||||||
 | 
					        blank=True
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    reference_letter_number = models.CharField(
 | 
					    reference_letter_number = models.CharField(
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue