Merge pull request 'AURORA-1096-back: поправил фильтры в журнале аудита' (#54) from AURORA-1096-back into test
Reviewed-on: #54 Reviewed-by: Raykov-MS <RaykovMS@avt.rshb.ru>
This commit is contained in:
commit
d99908c9b5
@ -1,3 +1,5 @@
|
||||
from datetime import datetime
|
||||
|
||||
from fastapi import APIRouter, Depends, status
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
@ -35,8 +37,10 @@ async def get_audit_logs(
|
||||
task_id=params.task_id,
|
||||
form_id=params.form_id,
|
||||
event_type=params.event_type,
|
||||
date_from=params.date_from,
|
||||
date_to=params.date_to,
|
||||
event=params.event,
|
||||
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]
|
||||
return BaseListResponse(result=result, count=count)
|
||||
|
||||
@ -455,8 +455,9 @@ class AuditLogQueryParams(BaseModel):
|
||||
task_id: Optional[int] = Field(None, description="ID задачи")
|
||||
form_id: Optional[int] = Field(None, description="ID формы")
|
||||
event_type: Optional[str] = Field(None, description="Тип события")
|
||||
date_from: Optional[datetime] = Field(None, description="Дата начала (ISO 8601)")
|
||||
date_to: Optional[datetime] = Field(None, description="Дата окончания (ISO 8601)")
|
||||
event: Optional[str] = Field(None, description="Cобытиу")
|
||||
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,
|
||||
form_id: int | None = None,
|
||||
event_type: str | None = None,
|
||||
event: str | None = None,
|
||||
date_from: datetime | None = None,
|
||||
date_to: datetime | None = None,
|
||||
) -> tuple[Iterable[AuditLog], int]:
|
||||
@ -61,6 +62,9 @@ class AuditLogRepository:
|
||||
if event_type is not None:
|
||||
query = query.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:
|
||||
query = query.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,
|
||||
form_id: int | None = None,
|
||||
event_type: str | None = None,
|
||||
event: str | None = None,
|
||||
date_from: datetime | None = None,
|
||||
date_to: datetime | None = None,
|
||||
) -> tuple[Iterable[AuditLog], int]:
|
||||
@ -60,6 +61,7 @@ class AuditLogService:
|
||||
event_type=event_type,
|
||||
date_from=date_from,
|
||||
date_to=date_to,
|
||||
event=event,
|
||||
)
|
||||
|
||||
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},
|
||||
headers=auth_headers(admin_tokens),
|
||||
)
|
||||
|
||||
assert upd_cell_response.status_code == 200
|
||||
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",
|
||||
date_from=None,
|
||||
date_to=None,
|
||||
event=None,
|
||||
)
|
||||
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user