add: fix bug and add user field for income contract list api

This commit is contained in:
behruz-dev
2025-09-15 14:45:18 +05:00
parent 64dc74294a
commit b264bf632b
4 changed files with 29 additions and 3 deletions

View File

@@ -0,0 +1,20 @@
# Generated by Django 5.2.4 on 2025-09-15 14:43
import django.db.models.deletion
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('finance', '0022_expencecontract_paid_price'),
('projects', '0016_estimatework_employee_estimatework_end_date_and_more'),
]
operations = [
migrations.AlterField(
model_name='expencecontract',
name='project_folder',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='expence_contracts', to='projects.projectfolder'),
),
]

View File

@@ -9,7 +9,7 @@ from core.apps.counterparty.models import Counterparty
class ExpenceContract(BaseModel):
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='expence_contracts')
project_folder = models.ForeignKey(
'projects.ProjectFolder', on_delete=models.CASCADE, related_name='expence_contracts'
'projects.ProjectFolder', on_delete=models.CASCADE, related_name='expence_contracts', null=True, blank=True
)
project = models.ForeignKey(
'projects.Project', on_delete=models.SET_NULL, related_name='expence_contracts', null=True, blank=True

View File

@@ -15,9 +15,15 @@ class IncomeContractSerializer(serializers.ModelSerializer):
model = IncomeContract
fields = [
'id', 'project_folder', 'project', 'income_type', 'counterparty', 'price', 'currency',
'date', 'comment'
'date', 'comment' , 'user'
]
extra_kwargs = {'id': {'read_only': True}}
def get_user(self, obj):
return {
'id': obj.user.id,
'full_name': obj.user.full_name,
}
def get_counterparty(self, obj):
return {

View File

@@ -41,7 +41,7 @@ class IncomeContractCreateApiView(generics.GenericAPIView):
class IncomeContractListApiView(generics.GenericAPIView):
serializer_class = IncomeContractSerializer
queryset = IncomeContract.objects.select_related(
'project_folder', 'project', 'income_type', 'counterparty',
'project_folder', 'project', 'income_type', 'counterparty', 'user'
)
permission_classes = [HasRolePermission]
filter_backends = [DjangoFilterBackend, filters.SearchFilter]