diff --git a/core/__pycache__/views.cpython-311.pyc b/core/__pycache__/views.cpython-311.pyc index dcd3c6c..70ae46a 100644 Binary files a/core/__pycache__/views.cpython-311.pyc and b/core/__pycache__/views.cpython-311.pyc differ diff --git a/core/models.py b/core/models.py index 2c3fedf..75d588b 100644 --- a/core/models.py +++ b/core/models.py @@ -168,7 +168,8 @@ class PayrollAdjustment(models.Model): worker = models.ForeignKey(Worker, on_delete=models.CASCADE, related_name='adjustments') payroll_record = models.ForeignKey(PayrollRecord, on_delete=models.SET_NULL, null=True, blank=True, related_name='adjustments') loan = models.ForeignKey(Loan, on_delete=models.SET_NULL, null=True, blank=True, related_name='repayments') - work_log = models.ForeignKey(WorkLog, on_delete=models.SET_NULL, null=True, blank=True, related_name='adjustments') + work_log = models.ForeignKey(WorkLog, on_delete=models.SET_NULL, null=True, blank=True, related_name='adjustments' + project = models.ForeignKey(Project, on_delete=models.SET_NULL, null=True, blank=True, related_name='adjustments' amount = models.DecimalField(max_digits=10, decimal_places=2, help_text="Positive adds to pay, negative subtracts (except for Loan Repayment which is auto-handled)") date = models.DateField(default=timezone.now, db_index=True) diff --git a/core/views.py b/core/views.py index 3510020..10e0779 100644 --- a/core/views.py +++ b/core/views.py @@ -394,7 +394,7 @@ def work_log_list(request): logs = logs.filter(paid_in__isnull=True) # --- 2. Fetch Adjustments --- - adjustments = PayrollAdjustment.objects.all().select_related('worker', 'payroll_record', 'work_log') + adjustments = PayrollAdjustment.objects.all().select_related('worker', 'payroll_record', 'work_log', 'work_log__project') if worker_id: adjustments = adjustments.filter(worker_id=worker_id) @@ -497,7 +497,7 @@ def work_log_list(request): 'type': 'ADJ', 'date': adj.date, 'obj': adj, - 'project_name': f"{adj.get_type_display()}", # Use project column for Type + 'project_name': f"{adj.get_type_display()} ({adj.work_log.project.name})" if adj.work_log and getattr(adj.work_log, 'project', None) else f"{adj.get_type_display()}", # Use project column for Type 'team_name': None, 'workers': [adj.worker], 'supervisor': "System", @@ -637,7 +637,7 @@ def export_work_log_csv(request): logs = logs.filter(paid_in__isnull=True) # --- 2. Fetch Adjustments --- - adjustments = PayrollAdjustment.objects.all().select_related('worker', 'payroll_record', 'work_log') + adjustments = PayrollAdjustment.objects.all().select_related('worker', 'payroll_record', 'work_log', 'work_log__project') if worker_id: adjustments = adjustments.filter(worker_id=worker_id)