import - organizations in rancher serializer / temporary tags model

This commit is contained in:
2025-12-27 13:59:32 +03:30
parent 9d8c04ffb7
commit 1ea840fbc7
4 changed files with 69 additions and 15 deletions

View File

@@ -62,6 +62,11 @@ class RancherSerializer(serializers.ModelSerializer):
'name': instance.city.name
}
representation['organizations'] = [
{'id': item.organization.id, 'name': item.organization.name}
for item in instance.organization_links.all()
]
return representation

View File

@@ -40,7 +40,7 @@ class LiveStockViewSet(viewsets.ModelViewSet, SoftDeleteMixin): # noqa
"""
list of live stocks
"""
queryset = self.filter_queryset(self.get_queryset().order_by('-modify_date'))
queryset = self.filter_queryset(self.get_queryset().order_by('-birthdate'))
# paginate queryset
page = self.paginate_queryset(queryset)

View File

@@ -0,0 +1,37 @@
# Generated by Django 5.0 on 2025-12-27 08:01
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('tag', '0022_alter_tagassignment_status'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.CreateModel(
name='TemporaryTags',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('create_date', models.DateTimeField(auto_now_add=True)),
('modify_date', models.DateTimeField(auto_now=True)),
('creator_info', models.CharField(max_length=100, null=True)),
('modifier_info', models.CharField(max_length=100, null=True)),
('trash', models.BooleanField(default=False)),
('tag', models.CharField(max_length=20, null=True)),
('herd_code', models.CharField(max_length=20, null=True)),
('gender', models.CharField(max_length=20, null=True)),
('birthdate', models.CharField(max_length=20, null=True)),
('type', models.CharField(max_length=20, null=True)),
('created_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_createddby', to=settings.AUTH_USER_MODEL)),
('modified_by', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='%(class)s_modifiedby', to=settings.AUTH_USER_MODEL)),
],
options={
'abstract': False,
},
),
]

View File

@@ -1,12 +1,13 @@
from apps.livestock import models as livestock_models
from apps.authentication import models as auth_models
from apps.authorization import models as authoriz_models
from apps.tag.tools import tag_code_serial_scanning
from apps.core.models import BaseModel
import random
from crum import get_current_user
from django.db import models
from jdatetime import datetime
import random
from apps.authentication import models as auth_models
from apps.authorization import models as authoriz_models
from apps.core.models import BaseModel
from apps.tag.tools import tag_code_serial_scanning
class Tag(BaseModel):
@@ -38,10 +39,10 @@ class Tag(BaseModel):
if not self.tag_code:
# set total tag code
self.tag_code = f"{self.country_code}" \
f"{self.static_code}" \
f"{self.ownership_code}" \
f"{self.species_code}" \
f"{self.serial}"
f"{self.static_code}" \
f"{self.ownership_code}" \
f"{self.species_code}" \
f"{self.serial}"
if not self.organization:
# set user organization for tag
user = get_current_user()
@@ -89,10 +90,10 @@ class TagAssignment(BaseModel):
self.serial_random_part = random.randint(1000, 9999)
if not self.serial:
self.serial = f"" \
f"{self.serial_sender_part}" \
f"{self.serial_recipient_part}" \
f"{self.serial_date_part}" \
f"{self.serial_random_part}"
f"{self.serial_sender_part}" \
f"{self.serial_recipient_part}" \
f"{self.serial_date_part}" \
f"{self.serial_random_part}"
super(TagAssignment, self).save(*args, **kwargs)
@@ -122,3 +123,14 @@ class AllocatedTags(BaseModel):
def save(self, *args, **kwargs):
super(AllocatedTags, self).save(*args, **kwargs)
class TemporaryTags(BaseModel):
tag = models.CharField(max_length=20, null=True)
herd_code = models.CharField(max_length=20, null=True)
gender = models.CharField(max_length=20, null=True)
birthdate = models.CharField(max_length=20, null=True)
type = models.CharField(max_length=20, null=True)
def save(self, *args, **kwargs):
super(TemporaryTags, self).save(*args, **kwargs)