add: fix bug and add user field for income contract list api
This commit is contained in:
@@ -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'),
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -9,7 +9,7 @@ from core.apps.counterparty.models import Counterparty
|
|||||||
class ExpenceContract(BaseModel):
|
class ExpenceContract(BaseModel):
|
||||||
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='expence_contracts')
|
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='expence_contracts')
|
||||||
project_folder = models.ForeignKey(
|
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(
|
project = models.ForeignKey(
|
||||||
'projects.Project', on_delete=models.SET_NULL, related_name='expence_contracts', null=True, blank=True
|
'projects.Project', on_delete=models.SET_NULL, related_name='expence_contracts', null=True, blank=True
|
||||||
|
|||||||
@@ -15,10 +15,16 @@ class IncomeContractSerializer(serializers.ModelSerializer):
|
|||||||
model = IncomeContract
|
model = IncomeContract
|
||||||
fields = [
|
fields = [
|
||||||
'id', 'project_folder', 'project', 'income_type', 'counterparty', 'price', 'currency',
|
'id', 'project_folder', 'project', 'income_type', 'counterparty', 'price', 'currency',
|
||||||
'date', 'comment'
|
'date', 'comment' , 'user'
|
||||||
]
|
]
|
||||||
extra_kwargs = {'id': {'read_only': True}}
|
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):
|
def get_counterparty(self, obj):
|
||||||
return {
|
return {
|
||||||
'id': obj.counterparty.id,
|
'id': obj.counterparty.id,
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ class IncomeContractCreateApiView(generics.GenericAPIView):
|
|||||||
class IncomeContractListApiView(generics.GenericAPIView):
|
class IncomeContractListApiView(generics.GenericAPIView):
|
||||||
serializer_class = IncomeContractSerializer
|
serializer_class = IncomeContractSerializer
|
||||||
queryset = IncomeContract.objects.select_related(
|
queryset = IncomeContract.objects.select_related(
|
||||||
'project_folder', 'project', 'income_type', 'counterparty',
|
'project_folder', 'project', 'income_type', 'counterparty', 'user'
|
||||||
)
|
)
|
||||||
permission_classes = [HasRolePermission]
|
permission_classes = [HasRolePermission]
|
||||||
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
|
filter_backends = [DjangoFilterBackend, filters.SearchFilter]
|
||||||
|
|||||||
Reference in New Issue
Block a user