feat: add optional ticket selection to planning report generation

Add a `numbers` form field to the planning report endpoint, allowing
admins to generate a report for a specific subset of open tickets
instead of always planning all open tickets. The selected numbers are
parsed from a comma-separated string, deduplicated, and passed to the
background job. The job's scope is recorded in the audit log and the
Devii tool description is updated to document the new parameter.
This commit is contained in:
2026-06-19 12:25:51 +00:00
parent ff3cbbbfe2
commit 1350e7fc66
16 changed files with 494 additions and 39 deletions
+76
View File
@@ -41,6 +41,82 @@
}
}
.planning-select {
margin: 1.5rem 0;
background: var(--bg-card);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
overflow: hidden;
}
.planning-select-head {
display: flex;
align-items: center;
justify-content: space-between;
gap: 1rem;
padding: 0.85rem 1.25rem;
border-bottom: 1px solid var(--border);
}
.planning-select-all {
display: flex;
align-items: center;
gap: 0.5rem;
font-weight: 600;
cursor: pointer;
}
.planning-select-count {
color: var(--text-secondary);
font-size: 0.85rem;
}
.planning-ticket-list {
list-style: none;
margin: 0;
padding: 0;
max-height: 22rem;
overflow-y: auto;
}
.planning-ticket {
border-bottom: 1px solid var(--border-light);
}
.planning-ticket:last-child {
border-bottom: none;
}
.planning-ticket label {
display: flex;
align-items: center;
gap: 0.6rem;
padding: 0.6rem 1.25rem;
cursor: pointer;
}
.planning-ticket-number {
color: var(--text-secondary);
font-variant-numeric: tabular-nums;
}
.planning-ticket-title {
flex: 1;
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.planning-ticket-label {
padding: 0.1rem 0.5rem;
font-size: 0.75rem;
color: var(--text-secondary);
background: var(--bg-secondary);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
}
.planning-result {
margin: 1.5rem 0;
}