diff --git a/expenses/models.py b/expenses/models.py index 6e0cc8f..58cac8a 100644 --- a/expenses/models.py +++ b/expenses/models.py @@ -83,6 +83,8 @@ class Project(CatalogModel): @property def total_expenses_clp(self): + if hasattr(self, 'total_expenses'): + return self.total_expenses or Decimal('0.00') return self.expenses.aggregate(total=models.Sum('amount_clp'))['total'] or Decimal('0.00') @property diff --git a/expenses/views.py b/expenses/views.py index 321a98c..9a90757 100644 --- a/expenses/views.py +++ b/expenses/views.py @@ -1,5 +1,8 @@ import csv import io +import logging + +logger = logging.getLogger(__name__) from decimal import Decimal from django.views.generic import ListView, CreateView, UpdateView, DeleteView from django.contrib.auth.mixins import LoginRequiredMixin @@ -353,7 +356,7 @@ def export_expenses_csv(request): 'Responsable', 'Detalle', 'Region', 'Comuna', 'Proveedor' ]) - expenses = Expense.objects.all().select_related('project', 'responsible_person') + expenses = Expense.objects.all().select_related('project', 'responsible_person', 'vendor') for exp in expenses: writer.writerow([ exp.id, @@ -870,8 +873,8 @@ def delete_document(request, pk): try: if os.path.exists(doc.file.path): os.remove(doc.file.path) - except Exception: - pass + except Exception as e: + logger.error(f"Error removing file: {e}", exc_info=True) # Delete object doc.delete()