Fix SMTP defaults and upload validation

This commit is contained in:
A R R R Associates
2026-06-28 09:10:49 +05:30
parent f5174575c5
commit df4fd17211
7 changed files with 220 additions and 26 deletions
+36 -4
View File
@@ -36,6 +36,8 @@ from app.modules.notice_cases.service import (
list_clients_for_case,
list_engagements_for_client,
save_case_document,
notice_case_upload_policy,
UploadValidationError,
update_case,
user_can_access_case,
)
@@ -72,8 +74,8 @@ def _base_ctx(request: Request, user, db, **ctx):
return base
def _render(request: Request, template_name: str, db, user, **ctx):
return templates.TemplateResponse(template_name, _base_ctx(request, user, db, **ctx))
def _render(request: Request, template_name: str, db, user, status_code: int = 200, **ctx):
return templates.TemplateResponse(template_name, _base_ctx(request, user, db, **ctx), status_code=status_code)
def _redirect_denied():
@@ -298,7 +300,19 @@ def case_detail(request: Request, case_id: int):
case = get_case(db, case_id)
if not case or not _case_access_allowed(request, db, user, case):
return _redirect_denied()
return _render(request, "modules/notice_cases/templates/notice_cases/detail.html", db, user, title=case.case_code, case=case, can_manage=can_manage_notice_cases(db, user), can_upload=can_upload_notice_case_documents(db, user), can_delete_documents=can_delete_notice_case_documents(db, user))
upload_policy = notice_case_upload_policy(db, branch_id=case.branch_id)
return _render(
request,
"modules/notice_cases/templates/notice_cases/detail.html",
db,
user,
title=case.case_code,
case=case,
can_manage=can_manage_notice_cases(db, user),
can_upload=can_upload_notice_case_documents(db, user),
can_delete_documents=can_delete_notice_case_documents(db, user),
upload_policy=upload_policy,
)
finally:
db.close()
@@ -445,7 +459,25 @@ def case_document_upload(request: Request, case_id: int, title: str = Form(""),
return RedirectResponse(url=f"/notice-cases/{case.id}?year_locked=1", status_code=303)
if not file or not file.filename:
return RedirectResponse(url=f"/notice-cases/{case_id}?error=missing_file", status_code=303)
save_case_document(db, case=case, upload_file=file, user=user, title=title, document_type=document_type, description=description, event_id=int(event_id) if event_id else None)
try:
save_case_document(db, case=case, upload_file=file, user=user, title=title, document_type=document_type, description=description, event_id=int(event_id) if event_id else None)
except UploadValidationError as exc:
db.rollback()
upload_policy = notice_case_upload_policy(db, branch_id=case.branch_id)
return _render(
request,
"modules/notice_cases/templates/notice_cases/detail.html",
db,
user,
status_code=400,
title=case.case_code,
case=case,
can_manage=can_manage_notice_cases(db, user),
can_upload=can_upload_notice_case_documents(db, user),
can_delete_documents=can_delete_notice_case_documents(db, user),
upload_policy=upload_policy,
upload_error=str(exc),
)
db.commit()
return RedirectResponse(url=f"/notice-cases/{case_id}?uploaded=1", status_code=303)
finally: