Files
erp-efintel-2026-portainer/scripts/patch_views.py
T

18 lines
1.1 KiB
Python

with open('expenses/views.py', 'r', encoding='utf-8') as f:
content = f.read()
# Add transaction and cache imports
if 'from django.db import transaction' not in content:
content = content.replace("from django.db.models import Sum, Count, F", "from django.db.models import Sum, Count, F\nfrom django.db import transaction")
if 'from django.views.decorators.cache import cache_page' not in content:
content = content.replace("from django.contrib.auth.decorators import login_required", "from django.contrib.auth.decorators import login_required\nfrom django.views.decorators.cache import cache_page")
# Decorate dashboard with cache_page
content = content.replace("@login_required\ndef dashboard(request):", "@login_required\n@cache_page(60 * 5) # Cache 5 minutos (Disponibilidad)\ndef dashboard(request):")
# Add @transaction.atomic to expense_create
content = content.replace("@login_required\ndef expense_create(request):", "@login_required\n@transaction.atomic # Integridad de datos\ndef expense_create(request):")
with open('expenses/views.py', 'w', encoding='utf-8') as f:
f.write(content)