update
This commit is contained in:
parent
4e47959f8c
commit
35f0f2bfed
|
|
@ -51,7 +51,7 @@ def retry_joblog(request: Request, log_id: int):
|
||||||
finished_at=None,
|
finished_at=None,
|
||||||
)
|
)
|
||||||
execute_job.delay(snapshot_params=snapshot, log_id=int(new_log.id))
|
execute_job.delay(snapshot_params=snapshot, log_id=int(new_log.id))
|
||||||
url = request.url_for("admin:details", identity="joblog", pk=str(new_log.id))
|
url = request.url_for("admin:details", identity="job-log", pk=str(new_log.id))
|
||||||
return RedirectResponse(url, status_code=303)
|
return RedirectResponse(url, status_code=303)
|
||||||
finally:
|
finally:
|
||||||
session.close()
|
session.close()
|
||||||
|
|
@ -85,7 +85,7 @@ def run_job(request: Request, job_id: str):
|
||||||
finished_at=None,
|
finished_at=None,
|
||||||
)
|
)
|
||||||
execute_job.delay(job_id=job.id, log_id=int(new_log.id))
|
execute_job.delay(job_id=job.id, log_id=int(new_log.id))
|
||||||
url = request.url_for("admin:details", identity="joblog", pk=str(new_log.id))
|
url = request.url_for("admin:details", identity="job-log", pk=str(new_log.id))
|
||||||
return RedirectResponse(url, status_code=303)
|
return RedirectResponse(url, status_code=303)
|
||||||
finally:
|
finally:
|
||||||
session.close()
|
session.close()
|
||||||
|
|
|
||||||
|
|
@ -156,31 +156,30 @@ class JobAdmin(ModelView, model=Job):
|
||||||
session.close()
|
session.close()
|
||||||
|
|
||||||
if created_log_id is not None:
|
if created_log_id is not None:
|
||||||
url = request.url_for("admin:details", identity="joblog", pk=str(created_log_id))
|
url = request.url_for("admin:details", identity="job-log", pk=str(created_log_id))
|
||||||
return RedirectResponse(url, status_code=303)
|
return RedirectResponse(url, status_code=303)
|
||||||
return RedirectResponse(request.url_for("admin:list", identity=self.identity), status_code=303)
|
return RedirectResponse(request.url_for("admin:list", identity=self.identity), status_code=303)
|
||||||
|
|
||||||
@action(
|
@action(
|
||||||
name="view_logs",
|
name="view_logs",
|
||||||
label="查看日志",
|
label="查看日志",
|
||||||
confirmation_message="查看该任务的日志?",
|
|
||||||
add_in_list=True,
|
add_in_list=True,
|
||||||
add_in_detail=True,
|
add_in_detail=True,
|
||||||
)
|
)
|
||||||
async def view_logs(self, request: Request): # type: ignore[override]
|
async def view_logs(self, request: Request): # type: ignore[override]
|
||||||
pks = request.query_params.get("pks", "").split(",")
|
pks = request.query_params.get("pks", "").split(",")
|
||||||
pk = next((p for p in pks if p), "")
|
pk = next((p for p in pks if p), "")
|
||||||
base = str(request.url_for("admin:list", identity="joblog"))
|
base = str(request.url_for("admin:list", identity="job-log"))
|
||||||
if pk:
|
if pk:
|
||||||
return RedirectResponse(f"{base}?search={quote_plus(pk)}", status_code=303)
|
return RedirectResponse(f"{base}?search={quote_plus(pk)}", status_code=303)
|
||||||
return RedirectResponse(base, status_code=303)
|
return RedirectResponse(base, status_code=303)
|
||||||
|
|
||||||
@action(
|
@action(
|
||||||
name="disable_job",
|
name="disable_job",
|
||||||
label="停用任务(保留日志)",
|
label="停用任务(保留日志)",
|
||||||
confirmation_message="确认停用该任务(保留历史日志)?",
|
confirmation_message="确认停用该任务(保留历史日志)?",
|
||||||
add_in_list=True,
|
add_in_list=True,
|
||||||
add_in_detail=True,
|
add_in_detail=False,
|
||||||
)
|
)
|
||||||
async def disable_job(self, request: Request): # type: ignore[override]
|
async def disable_job(self, request: Request): # type: ignore[override]
|
||||||
pks = request.query_params.get("pks", "").split(",")
|
pks = request.query_params.get("pks", "").split(",")
|
||||||
|
|
@ -201,10 +200,10 @@ class JobAdmin(ModelView, model=Job):
|
||||||
|
|
||||||
@action(
|
@action(
|
||||||
name="clear_job_logs",
|
name="clear_job_logs",
|
||||||
label="清理任务日志(保留任务)",
|
label="清理日志(保留任务)",
|
||||||
confirmation_message="确认清理该任务的所有日志(保留任务本身)?",
|
confirmation_message="确认清理该任务的所有日志(保留任务本身)?",
|
||||||
add_in_list=True,
|
add_in_list=True,
|
||||||
add_in_detail=True,
|
add_in_detail=False,
|
||||||
)
|
)
|
||||||
async def clear_job_logs(self, request: Request): # type: ignore[override]
|
async def clear_job_logs(self, request: Request): # type: ignore[override]
|
||||||
pks = request.query_params.get("pks", "").split(",")
|
pks = request.query_params.get("pks", "").split(",")
|
||||||
|
|
@ -220,10 +219,10 @@ class JobAdmin(ModelView, model=Job):
|
||||||
|
|
||||||
@action(
|
@action(
|
||||||
name="delete_job_with_logs",
|
name="delete_job_with_logs",
|
||||||
label="删除任务及日志(硬删除)",
|
label="删除任务(含日志)",
|
||||||
confirmation_message="确认删除该任务及其所有日志?此操作不可恢复。",
|
confirmation_message="确认删除该任务及其所有日志?此操作不可恢复。",
|
||||||
add_in_list=True,
|
add_in_list=True,
|
||||||
add_in_detail=True,
|
add_in_detail=False,
|
||||||
)
|
)
|
||||||
async def delete_job_with_logs(self, request: Request): # type: ignore[override]
|
async def delete_job_with_logs(self, request: Request): # type: ignore[override]
|
||||||
pks = request.query_params.get("pks", "").split(",")
|
pks = request.query_params.get("pks", "").split(",")
|
||||||
|
|
@ -310,14 +309,14 @@ class JobLogAdmin(ModelView, model=JobLog):
|
||||||
name = "任务日志"
|
name = "任务日志"
|
||||||
name_plural = "任务日志"
|
name_plural = "任务日志"
|
||||||
icon = "fa fa-list"
|
icon = "fa fa-list"
|
||||||
|
identity = "job-log"
|
||||||
|
|
||||||
can_create = False
|
can_create = False
|
||||||
can_edit = False
|
can_edit = False
|
||||||
can_delete = False
|
can_delete = False
|
||||||
|
|
||||||
# 支持按 job_id 搜索与筛选
|
# 支持按 job_id 搜索(不启用筛选栏,避免页面溢出)
|
||||||
column_searchable_list = [JobLog.job_id]
|
column_searchable_list = [JobLog.job_id]
|
||||||
column_filters = [OperationColumnFilter(JobLog.job_id, title="任务ID")]
|
|
||||||
|
|
||||||
# 列表更适合扫读:保留关键字段 + message(截断)
|
# 列表更适合扫读:保留关键字段 + message(截断)
|
||||||
column_list = [JobLog.id, JobLog.job_id, JobLog.status, JobLog.started_at, JobLog.finished_at, JobLog.message]
|
column_list = [JobLog.id, JobLog.job_id, JobLog.status, JobLog.started_at, JobLog.finished_at, JobLog.message]
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue