Add export for all system default tasks

This commit is contained in:
A R R R Associates
2026-07-19 11:53:26 +05:30
parent 73cff705c4
commit 05b736b6c9
3 changed files with 281 additions and 1 deletions
+23
View File
@@ -24,6 +24,7 @@ from app.modules.services.bulk_imports import (
import_due_date_extensions,
)
from app.modules.services.catalogue_export import build_service_catalogue_export
from app.modules.services.default_tasks_export import build_default_tasks_export
from app.modules.services.due_dates import (
DUE_PERIOD_TYPES,
DUE_YEAR_BASIS_CHOICES,
@@ -1009,6 +1010,28 @@ def default_templates_catalogue_list(request: Request):
db.close()
@router.get('/defaults/export')
def default_tasks_export(request: Request):
db = CommonSessionLocal()
try:
user = get_current_user(request, db=db)
if not user:
return RedirectResponse(url='/login', status_code=303)
require_permission(db, user, 'service_tasks.view')
if not _is_system_admin(db, user):
return _redirect_denied()
workbook_bytes = build_default_tasks_export(db)
filename = f"system_default_tasks_export_{datetime.now(timezone.utc).strftime('%Y%m%d_%H%M%S')}.xlsx"
return StreamingResponse(
iter([workbook_bytes]),
media_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
headers={'Content-Disposition': f'attachment; filename="{filename}"'},
)
finally:
db.close()
@router.get('/catalogue/{catalogue_id}/defaults')
def default_templates_detail(request: Request, catalogue_id: int):
db = CommonSessionLocal()