diff --git a/.idea/Rasaddam_Backend.iml b/.idea/Rasaddam_Backend.iml index c5d6090..168bde0 100644 --- a/.idea/Rasaddam_Backend.iml +++ b/.idea/Rasaddam_Backend.iml @@ -14,7 +14,7 @@ - + diff --git a/.idea/misc.xml b/.idea/misc.xml index 29f5506..296aa57 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/apps/authorization/signals.py b/apps/authorization/signals.py index c0ed576..a6b4754 100644 --- a/apps/authorization/signals.py +++ b/apps/authorization/signals.py @@ -16,7 +16,6 @@ def sync_role_permissions(sender, instance, **kwargs): permissions = instance.role.permissions.all() if not instance.permissions.exists(): instance.permissions.add(*permissions) # noqa - print(instance.permissions) instance._from_signal = True instance.save() diff --git a/apps/herd/migrations/0011_rancher_herd_code.py b/apps/herd/migrations/0011_rancher_herd_code.py new file mode 100644 index 0000000..73fe720 --- /dev/null +++ b/apps/herd/migrations/0011_rancher_herd_code.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0 on 2025-08-06 07:25 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('herd', '0010_rancher_without_herd'), + ] + + operations = [ + migrations.AddField( + model_name='rancher', + name='herd_code', + field=models.CharField(max_length=100, null=True), + ), + ] diff --git a/apps/herd/migrations/0012_alter_rancher_national_code_and_more.py b/apps/herd/migrations/0012_alter_rancher_national_code_and_more.py new file mode 100644 index 0000000..cd4e21f --- /dev/null +++ b/apps/herd/migrations/0012_alter_rancher_national_code_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0 on 2025-08-06 07:35 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('herd', '0011_rancher_herd_code'), + ] + + operations = [ + migrations.AlterField( + model_name='rancher', + name='national_code', + field=models.CharField(max_length=50, null=True), + ), + migrations.AlterField( + model_name='rancher', + name='nationality', + field=models.CharField(max_length=50, null=True), + ), + ] diff --git a/apps/herd/migrations/0013_alter_herd_latitude_alter_herd_longitude.py b/apps/herd/migrations/0013_alter_herd_latitude_alter_herd_longitude.py new file mode 100644 index 0000000..91c4d8a --- /dev/null +++ b/apps/herd/migrations/0013_alter_herd_latitude_alter_herd_longitude.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0 on 2025-08-06 07:49 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('herd', '0012_alter_rancher_national_code_and_more'), + ] + + operations = [ + migrations.AlterField( + model_name='herd', + name='latitude', + field=models.DecimalField(decimal_places=6, max_digits=10, null=True), + ), + migrations.AlterField( + model_name='herd', + name='longitude', + field=models.DecimalField(decimal_places=6, max_digits=10, null=True), + ), + ] diff --git a/apps/herd/migrations/0014_alter_herd_latitude_alter_herd_longitude.py b/apps/herd/migrations/0014_alter_herd_latitude_alter_herd_longitude.py new file mode 100644 index 0000000..5e33ac8 --- /dev/null +++ b/apps/herd/migrations/0014_alter_herd_latitude_alter_herd_longitude.py @@ -0,0 +1,23 @@ +# Generated by Django 5.0 on 2025-08-06 07:51 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('herd', '0013_alter_herd_latitude_alter_herd_longitude'), + ] + + operations = [ + migrations.AlterField( + model_name='herd', + name='latitude', + field=models.FloatField(default=0), + ), + migrations.AlterField( + model_name='herd', + name='longitude', + field=models.FloatField(default=0), + ), + ] diff --git a/apps/herd/migrations/0015_alter_herd_postal.py b/apps/herd/migrations/0015_alter_herd_postal.py new file mode 100644 index 0000000..b953d75 --- /dev/null +++ b/apps/herd/migrations/0015_alter_herd_postal.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0 on 2025-08-06 07:55 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('herd', '0014_alter_herd_latitude_alter_herd_longitude'), + ] + + operations = [ + migrations.AlterField( + model_name='herd', + name='postal', + field=models.CharField(help_text='herd postal code', max_length=20, null=True), + ), + ] diff --git a/apps/herd/models.py b/apps/herd/models.py index fe9f735..9f0e575 100644 --- a/apps/herd/models.py +++ b/apps/herd/models.py @@ -42,7 +42,7 @@ class Herd(BaseModel): null=True ) postal = models.CharField( - max_length=10, + max_length=20, help_text="herd postal code", null=True ) institution = models.CharField( @@ -56,8 +56,8 @@ class Herd(BaseModel): related_name="herd_contractor", null=True ) - latitude = models.DecimalField(max_digits=22, decimal_places=16, null=True) - longitude = models.DecimalField(max_digits=22, decimal_places=16, null=True) + latitude = models.FloatField(default=0) + longitude = models.FloatField(default=0) unit_unique_id = models.CharField(max_length=20, null=True) activity_types = ( ("I", "Industrial"), @@ -82,12 +82,13 @@ class Herd(BaseModel): class Rancher(BaseModel): ranching_farm = models.CharField(max_length=150, null=True) + herd_code = models.CharField(max_length=100, null=True) first_name = models.CharField(max_length=150, null=True) last_name = models.CharField(max_length=150, null=True) mobile = models.CharField(max_length=25, null=True) - national_code = models.CharField(max_length=20, null=True) + national_code = models.CharField(max_length=50, null=True) birthdate = models.DateTimeField(null=True) - nationality = models.CharField(max_length=20, null=True) + nationality = models.CharField(max_length=50, null=True) address = models.TextField(blank=True) province = models.ForeignKey( auth_models.Province, diff --git a/apps/livestock/migrations/0013_livestock_archive.py b/apps/livestock/migrations/0013_livestock_archive.py new file mode 100644 index 0000000..f683dec --- /dev/null +++ b/apps/livestock/migrations/0013_livestock_archive.py @@ -0,0 +1,18 @@ +# Generated by Django 5.0 on 2025-08-06 08:31 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('livestock', '0012_livestocktype_weight_type'), + ] + + operations = [ + migrations.AddField( + model_name='livestock', + name='archive', + field=models.BooleanField(default=False), + ), + ] diff --git a/apps/livestock/models.py b/apps/livestock/models.py index d501e3a..b649009 100644 --- a/apps/livestock/models.py +++ b/apps/livestock/models.py @@ -88,6 +88,7 @@ class LiveStock(BaseModel): (2, 'female') ) gender = models.IntegerField(choices=gender_type, default=1) + archive = models.BooleanField(default=False) def __str__(self): return f'{self.type.name}-{self.species.name}' diff --git a/apps/pos_device/migrations/0035_alter_deviceactivationcode_expires_at.py b/apps/pos_device/migrations/0035_alter_deviceactivationcode_expires_at.py new file mode 100644 index 0000000..be52cda --- /dev/null +++ b/apps/pos_device/migrations/0035_alter_deviceactivationcode_expires_at.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0 on 2025-08-06 07:25 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pos_device', '0034_alter_deviceactivationcode_expires_at'), + ] + + operations = [ + migrations.AlterField( + model_name='deviceactivationcode', + name='expires_at', + field=models.DateTimeField(default=datetime.datetime(2025, 8, 6, 10, 55, 42, 749910)), + ), + ] diff --git a/apps/pos_device/migrations/0036_alter_deviceactivationcode_expires_at.py b/apps/pos_device/migrations/0036_alter_deviceactivationcode_expires_at.py new file mode 100644 index 0000000..89d12c1 --- /dev/null +++ b/apps/pos_device/migrations/0036_alter_deviceactivationcode_expires_at.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0 on 2025-08-06 07:35 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pos_device', '0035_alter_deviceactivationcode_expires_at'), + ] + + operations = [ + migrations.AlterField( + model_name='deviceactivationcode', + name='expires_at', + field=models.DateTimeField(default=datetime.datetime(2025, 8, 6, 11, 5, 16, 207384)), + ), + ] diff --git a/apps/pos_device/migrations/0037_alter_deviceactivationcode_expires_at.py b/apps/pos_device/migrations/0037_alter_deviceactivationcode_expires_at.py new file mode 100644 index 0000000..106ca1d --- /dev/null +++ b/apps/pos_device/migrations/0037_alter_deviceactivationcode_expires_at.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0 on 2025-08-06 07:49 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pos_device', '0036_alter_deviceactivationcode_expires_at'), + ] + + operations = [ + migrations.AlterField( + model_name='deviceactivationcode', + name='expires_at', + field=models.DateTimeField(default=datetime.datetime(2025, 8, 6, 11, 19, 3, 548332)), + ), + ] diff --git a/apps/pos_device/migrations/0038_alter_deviceactivationcode_expires_at.py b/apps/pos_device/migrations/0038_alter_deviceactivationcode_expires_at.py new file mode 100644 index 0000000..c8c27c9 --- /dev/null +++ b/apps/pos_device/migrations/0038_alter_deviceactivationcode_expires_at.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0 on 2025-08-06 07:51 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pos_device', '0037_alter_deviceactivationcode_expires_at'), + ] + + operations = [ + migrations.AlterField( + model_name='deviceactivationcode', + name='expires_at', + field=models.DateTimeField(default=datetime.datetime(2025, 8, 6, 11, 21, 14, 982190)), + ), + ] diff --git a/apps/pos_device/migrations/0039_alter_deviceactivationcode_expires_at.py b/apps/pos_device/migrations/0039_alter_deviceactivationcode_expires_at.py new file mode 100644 index 0000000..0f6438b --- /dev/null +++ b/apps/pos_device/migrations/0039_alter_deviceactivationcode_expires_at.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0 on 2025-08-06 07:55 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pos_device', '0038_alter_deviceactivationcode_expires_at'), + ] + + operations = [ + migrations.AlterField( + model_name='deviceactivationcode', + name='expires_at', + field=models.DateTimeField(default=datetime.datetime(2025, 8, 6, 11, 25, 53, 734145)), + ), + ] diff --git a/apps/pos_device/migrations/0040_alter_deviceactivationcode_expires_at.py b/apps/pos_device/migrations/0040_alter_deviceactivationcode_expires_at.py new file mode 100644 index 0000000..2edadc9 --- /dev/null +++ b/apps/pos_device/migrations/0040_alter_deviceactivationcode_expires_at.py @@ -0,0 +1,19 @@ +# Generated by Django 5.0 on 2025-08-06 08:31 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('pos_device', '0039_alter_deviceactivationcode_expires_at'), + ] + + operations = [ + migrations.AlterField( + model_name='deviceactivationcode', + name='expires_at', + field=models.DateTimeField(default=datetime.datetime(2025, 8, 6, 12, 1, 26, 211551)), + ), + ] diff --git a/apps/pos_device/web/api/v1/viewsets/device.py b/apps/pos_device/web/api/v1/viewsets/device.py index 62a8cd9..04b84da 100644 --- a/apps/pos_device/web/api/v1/viewsets/device.py +++ b/apps/pos_device/web/api/v1/viewsets/device.py @@ -52,12 +52,13 @@ class DeviceViewSet(viewsets.ModelViewSet): def create(self, request, *args, **kwargs): """ Custom create of pos devices """ - company = pos_models.ProviderCompany.objects.get( - user_relation__user=request.user - ) + if 'company' not in request.data.keys(): + company = pos_models.ProviderCompany.objects.get( + user_relation__user=request.user + ) + request.data.update({'company': company.id}) # create device - request.data.update({'company': company.id}) serializer = self.serializer_class(data=request.data) if serializer.is_valid(): serializer.save()