finance: add user field to expence delete model

This commit is contained in:
behruz-dev
2025-11-11 15:24:39 +05:00
parent 0ffae42547
commit e35ff6bda7
7 changed files with 86 additions and 5 deletions

View File

@@ -6,7 +6,7 @@ from core.apps.finance.models import Expence, DeletedExpence
@admin.register(Expence)
class ExpenceAdmin(admin.ModelAdmin):
list_display = ['id', 'price', 'cash_transaction', 'status']
search_fields = ['party__number']
@admin.register(DeletedExpence)
class DeletedExpenceAdmin(admin.ModelAdmin):

View File

@@ -0,0 +1,21 @@
# Generated by Django 5.2.4 on 2025-11-11 15:21
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('finance', '0032_alter_cashtransaction_expence_balance_usd_and_more'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
]
operations = [
migrations.AddField(
model_name='deletedexpence',
name='user',
field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='deleted_expences', to=settings.AUTH_USER_MODEL),
),
]

View File

@@ -57,6 +57,7 @@ class Expence(BaseModel):
class DeletedExpence(BaseModel):
expence = models.ForeignKey(Expence, on_delete=models.CASCADE, related_name='deleted_expences')
comment = models.CharField(max_length=200)
user = models.ForeignKey(User, on_delete=models.SET_NULL, related_name='deleted_expences', null=True)
def __str__(self):
return f'{self.expence} is deleted'

View File

@@ -7,7 +7,8 @@ from core.apps.finance.serializers.expence import ExpenceListSerializer
class DeletedExpenceListSerializer(serializers.ModelSerializer):
expence = ExpenceListSerializer()
user = serializers.SerializerMethodField(method_name='get_user')
class Meta:
model = DeletedExpence
fields = [
@@ -15,4 +16,12 @@ class DeletedExpenceListSerializer(serializers.ModelSerializer):
'created_at',
'comment',
'expence',
]
'user'
]
def get_user(self, obj):
return {
"id": obj.user.id,
"full_name": obj.user.full_name,
"profile_image": obj.user.profile_image
} if obj.user else None

View File

@@ -8,7 +8,7 @@ from core.apps.accounts.permissions.permissions import HasRolePermission
class DeletedExpenceListApiView(generics.GenericAPIView):
serializer_class = DeletedExpenceListSerializer
queryset = DeletedExpence.objects.select_related('expence').order_by('-created_at')
queryset = DeletedExpence.objects.select_related('expence', 'user').order_by('-created_at')
permission_classes = [HasRolePermission]
def get(self, request):

View File

@@ -127,7 +127,8 @@ class ExpenceDeleteApiView(generics.GenericAPIView):
DeletedExpence.objects.create(
expence=expence,
comment=comment
comment=comment,
user=request.user,
)
cash_transaction = expence.cash_transaction