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()