This commit is contained in:
behruz-dev
2025-08-23 17:56:07 +05:00
parent c60b3fd5af
commit 261c811ce6
6 changed files with 35 additions and 12 deletions

View File

@@ -11,7 +11,7 @@ class PartyAmountInline(admin.StackedInline):
@admin.register(Party) @admin.register(Party)
class PartyAdmin(admin.ModelAdmin): class PartyAdmin(admin.ModelAdmin):
list_display = ['mediator', 'delivery_date', 'payment_date', 'is_deleted'] list_display = ['number','mediator', 'delivery_date', 'payment_date', 'is_deleted']
inlines = [PartyAmountInline] inlines = [PartyAmountInline]

View File

@@ -7,3 +7,4 @@ class OrdersConfig(AppConfig):
def ready(self): def ready(self):
from . import admin from . import admin
from . import signals

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.2.4 on 2025-08-23 17:55
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('orders', '0021_party_currency'),
]
operations = [
migrations.AlterField(
model_name='party',
name='number',
field=models.PositiveIntegerField(default=0),
),
]

View File

@@ -27,7 +27,7 @@ class Party(BaseModel):
('REJECTED', 'rad etilgan'), ('REJECTED', 'rad etilgan'),
) )
number = models.PositiveIntegerField(default=1) number = models.PositiveIntegerField(default=0)
orders = models.ManyToManyField(Order, related_name='parties', null=True, blank=True) orders = models.ManyToManyField(Order, related_name='parties', null=True, blank=True)
mediator = models.ForeignKey(User, on_delete=models.CASCADE, related_name='parties') mediator = models.ForeignKey(User, on_delete=models.CASCADE, related_name='parties')
# dates # dates
@@ -59,15 +59,6 @@ class Party(BaseModel):
def __str__(self): def __str__(self):
return f'P - {self.number}' return f'P - {self.number}'
def save(self, *args, **kwargs):
if not self.pk:
last_party = Party.objects.order_by('number').last()
if last_party:
self.number = last_party.number + 1
else:
self.number = 1
return super().save(*args, **kwargs)
class Meta: class Meta:
verbose_name = 'Partiya' verbose_name = 'Partiya'
verbose_name_plural = 'Partiyalar' verbose_name_plural = 'Partiyalar'

View File

@@ -0,0 +1 @@
from .party import *

View File

@@ -0,0 +1,12 @@
from django.db.models.signals import post_save
from django.dispatch import receiver
from core.apps.orders.models import Party
@receiver(post_save, sender=Party)
def set_party_number(sender, instance, created, **kwargs):
if created:
last_party = Party.objects.order_by('number').last()
instance.number = (last_party.number + 1) if last_party else 1
instance.save(update_fields=["number"])