AURORA-1096-back: поправил фильтры в журнале аудита
This commit is contained in:
parent
70bf9fa5b5
commit
b9d109bd23
@ -1,3 +1,5 @@
|
|||||||
|
from datetime import datetime
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, status
|
from fastapi import APIRouter, Depends, status
|
||||||
from sqlalchemy.ext.asyncio import AsyncSession
|
from sqlalchemy.ext.asyncio import AsyncSession
|
||||||
|
|
||||||
@ -35,8 +37,10 @@ async def get_audit_logs(
|
|||||||
task_id=params.task_id,
|
task_id=params.task_id,
|
||||||
form_id=params.form_id,
|
form_id=params.form_id,
|
||||||
event_type=params.event_type,
|
event_type=params.event_type,
|
||||||
date_from=params.date_from,
|
event=params.event,
|
||||||
date_to=params.date_to,
|
date_from=datetime.combine(params.date_from, datetime.min.time()) if params.date_from else None,
|
||||||
|
date_to=datetime.combine(params.date_to, datetime.max.time()) if params.date_to else None,
|
||||||
)
|
)
|
||||||
|
|
||||||
result = [audit_service.orm_log_to_response(log) for log in logs]
|
result = [audit_service.orm_log_to_response(log) for log in logs]
|
||||||
return BaseListResponse(result=result, count=count)
|
return BaseListResponse(result=result, count=count)
|
||||||
|
|||||||
@ -455,8 +455,9 @@ class AuditLogQueryParams(BaseModel):
|
|||||||
task_id: Optional[int] = Field(None, description="ID задачи")
|
task_id: Optional[int] = Field(None, description="ID задачи")
|
||||||
form_id: Optional[int] = Field(None, description="ID формы")
|
form_id: Optional[int] = Field(None, description="ID формы")
|
||||||
event_type: Optional[str] = Field(None, description="Тип события")
|
event_type: Optional[str] = Field(None, description="Тип события")
|
||||||
date_from: Optional[datetime] = Field(None, description="Дата начала (ISO 8601)")
|
event: Optional[str] = Field(None, description="Cобытиу")
|
||||||
date_to: Optional[datetime] = Field(None, description="Дата окончания (ISO 8601)")
|
date_from: Optional[date] = Field(None, description="Дата начала (ISO 8601)")
|
||||||
|
date_to: Optional[date] = Field(None, description="Дата окончания (ISO 8601)")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -39,6 +39,7 @@ class AuditLogRepository:
|
|||||||
task_id: int | None = None,
|
task_id: int | None = None,
|
||||||
form_id: int | None = None,
|
form_id: int | None = None,
|
||||||
event_type: str | None = None,
|
event_type: str | None = None,
|
||||||
|
event: str | None = None,
|
||||||
date_from: datetime | None = None,
|
date_from: datetime | None = None,
|
||||||
date_to: datetime | None = None,
|
date_to: datetime | None = None,
|
||||||
) -> tuple[Iterable[AuditLog], int]:
|
) -> tuple[Iterable[AuditLog], int]:
|
||||||
@ -61,6 +62,9 @@ class AuditLogRepository:
|
|||||||
if event_type is not None:
|
if event_type is not None:
|
||||||
query = query.where(AuditLog.event_type == event_type)
|
query = query.where(AuditLog.event_type == event_type)
|
||||||
query_count = query_count.where(AuditLog.event_type == event_type)
|
query_count = query_count.where(AuditLog.event_type == event_type)
|
||||||
|
if event is not None:
|
||||||
|
query = query.where(AuditLog.event == event)
|
||||||
|
query_count = query_count.where(AuditLog.event == event)
|
||||||
if date_from is not None:
|
if date_from is not None:
|
||||||
query = query.where(AuditLog.event_dt >= date_from)
|
query = query.where(AuditLog.event_dt >= date_from)
|
||||||
query_count = query_count.where(AuditLog.event_dt >= date_from)
|
query_count = query_count.where(AuditLog.event_dt >= date_from)
|
||||||
|
|||||||
@ -41,6 +41,7 @@ class AuditLogService:
|
|||||||
task_id: int | None = None,
|
task_id: int | None = None,
|
||||||
form_id: int | None = None,
|
form_id: int | None = None,
|
||||||
event_type: str | None = None,
|
event_type: str | None = None,
|
||||||
|
event: str | None = None,
|
||||||
date_from: datetime | None = None,
|
date_from: datetime | None = None,
|
||||||
date_to: datetime | None = None,
|
date_to: datetime | None = None,
|
||||||
) -> tuple[Iterable[AuditLog], int]:
|
) -> tuple[Iterable[AuditLog], int]:
|
||||||
@ -60,6 +61,7 @@ class AuditLogService:
|
|||||||
event_type=event_type,
|
event_type=event_type,
|
||||||
date_from=date_from,
|
date_from=date_from,
|
||||||
date_to=date_to,
|
date_to=date_to,
|
||||||
|
event=event,
|
||||||
)
|
)
|
||||||
|
|
||||||
def _can_view_audit_logs(self, user: AppUser) -> bool:
|
def _can_view_audit_logs(self, user: AppUser) -> bool:
|
||||||
|
|||||||
@ -65,6 +65,7 @@ def test_projects_write_smoke(client, admin_tokens, auth_headers):
|
|||||||
json={"line_id": line_id, "column": "q1.m1", "value": 100},
|
json={"line_id": line_id, "column": "q1.m1", "value": 100},
|
||||||
headers=auth_headers(admin_tokens),
|
headers=auth_headers(admin_tokens),
|
||||||
)
|
)
|
||||||
|
|
||||||
assert upd_cell_response.status_code == 200
|
assert upd_cell_response.status_code == 200
|
||||||
assert isinstance(upd_cell_response.json(), list)
|
assert isinstance(upd_cell_response.json(), list)
|
||||||
|
|
||||||
|
|||||||
@ -58,6 +58,7 @@ async def test_get_all_allowed_for_admin(service_with_mock_repo, admin_user):
|
|||||||
event_type="form",
|
event_type="form",
|
||||||
date_from=None,
|
date_from=None,
|
||||||
date_to=None,
|
date_to=None,
|
||||||
|
event=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user