Auto-commit local changes before build (2026-01-16 13:31:20)
This commit is contained in:
parent
487f923064
commit
25d1962f7b
@ -1 +1 @@
|
|||||||
v20260116-06-runchecks-polling-merge-fix
|
v20260116-07-autotask-ticket-link-all-runs-ticketjobrun-fix
|
||||||
|
|||||||
@ -1145,20 +1145,38 @@ def api_run_checks_create_autotask_ticket():
|
|||||||
# until it is explicitly resolved.
|
# until it is explicitly resolved.
|
||||||
now = datetime.utcnow()
|
now = datetime.utcnow()
|
||||||
|
|
||||||
|
# Collect the open run IDs first (stable list), then apply updates and internal linking.
|
||||||
linked_run_ids: list[int] = []
|
linked_run_ids: list[int] = []
|
||||||
try:
|
try:
|
||||||
open_runs = (
|
rows = (
|
||||||
JobRun.query.filter(JobRun.job_id == run.job_id)
|
JobRun.query.filter(JobRun.job_id == run.job_id)
|
||||||
.filter(JobRun.reviewed_at.is_(None))
|
.filter(JobRun.reviewed_at.is_(None))
|
||||||
|
.with_entities(JobRun.id)
|
||||||
.order_by(JobRun.id.asc())
|
.order_by(JobRun.id.asc())
|
||||||
.all()
|
.all()
|
||||||
)
|
)
|
||||||
|
linked_run_ids = [int(rid) for (rid,) in rows if rid is not None]
|
||||||
except Exception:
|
except Exception:
|
||||||
open_runs = [run]
|
linked_run_ids = []
|
||||||
|
|
||||||
# Safety: always include the explicitly selected run.
|
# Safety: always include the explicitly selected run.
|
||||||
if run not in (open_runs or []):
|
try:
|
||||||
open_runs = (open_runs or []) + [run]
|
if run.id and int(run.id) not in linked_run_ids:
|
||||||
|
linked_run_ids.append(int(run.id))
|
||||||
|
except Exception:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# Load run objects for the IDs we determined.
|
||||||
|
open_runs = []
|
||||||
|
if linked_run_ids:
|
||||||
|
open_runs = JobRun.query.filter(JobRun.id.in_(linked_run_ids)).all()
|
||||||
|
else:
|
||||||
|
open_runs = [run]
|
||||||
|
try:
|
||||||
|
if run.id:
|
||||||
|
linked_run_ids = [int(run.id)]
|
||||||
|
except Exception:
|
||||||
|
linked_run_ids = []
|
||||||
|
|
||||||
for r in open_runs or []:
|
for r in open_runs or []:
|
||||||
# Do not overwrite an existing (different) ticket linkage.
|
# Do not overwrite an existing (different) ticket linkage.
|
||||||
@ -1179,9 +1197,6 @@ def api_run_checks_create_autotask_ticket():
|
|||||||
r.autotask_ticket_created_at = now
|
r.autotask_ticket_created_at = now
|
||||||
r.autotask_ticket_created_by_user_id = current_user.id
|
r.autotask_ticket_created_by_user_id = current_user.id
|
||||||
|
|
||||||
if getattr(r, "id", None):
|
|
||||||
linked_run_ids.append(int(r.id))
|
|
||||||
|
|
||||||
# Also store an internal Ticket record and link it to the run.
|
# Also store an internal Ticket record and link it to the run.
|
||||||
# This keeps Tickets/Remarks, Job Details, and Run Checks indicators consistent with the existing manual workflow.
|
# This keeps Tickets/Remarks, Job Details, and Run Checks indicators consistent with the existing manual workflow.
|
||||||
internal_ticket = None
|
internal_ticket = None
|
||||||
@ -1239,6 +1254,7 @@ def api_run_checks_create_autotask_ticket():
|
|||||||
"ticket_id": int(run.autotask_ticket_id) if run.autotask_ticket_id else None,
|
"ticket_id": int(run.autotask_ticket_id) if run.autotask_ticket_id else None,
|
||||||
"ticket_number": run.autotask_ticket_number or "",
|
"ticket_number": run.autotask_ticket_number or "",
|
||||||
"already_exists": False,
|
"already_exists": False,
|
||||||
|
"linked_run_ids": linked_run_ids or [],
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@ -180,6 +180,15 @@ Changes:
|
|||||||
- Ensured polled PSA ticket status is available again on the Run Checks page
|
- Ensured polled PSA ticket status is available again on the Run Checks page
|
||||||
- No changes made to ticket creation logic, resolution handling, or Backupchecks run state
|
- No changes made to ticket creation logic, resolution handling, or Backupchecks run state
|
||||||
|
|
||||||
|
|
||||||
|
## v20260116-07-autotask-ticket-link-all-runs-ticketjobrun-fix
|
||||||
|
|
||||||
|
### Changes:
|
||||||
|
- Fixed Autotask ticket creation linking so the internal TicketJobRun associations are created for all relevant open runs of the same job
|
||||||
|
- Ensured ticket numbers and ticket presence are consistently visible per run (Run Checks and Job Details), not only for the selected run
|
||||||
|
- Made the list of runs to link deterministic by collecting run IDs first, then applying both run field updates and internal ticket linking across that stable set
|
||||||
|
- No changes made to polling logic or PSA status interpretation
|
||||||
|
|
||||||
***
|
***
|
||||||
|
|
||||||
## v0.1.21
|
## v0.1.21
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user