fix(tickets): beantwortete Rückfragen stehen wieder unter „Offen"

Bisher landeten beantwortete Tickets (Answered) in „Rückfragen". Sobald die
Züchterin geantwortet hat, ist sie fertig → das Ticket gehört in „Offen"
(von der KI zu erledigen). „Rückfragen" zeigt jetzt nur noch NeedsInfo
(wartet auf ihre Antwort).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-22 22:42:04 +02:00
parent 4e30dc7fe3
commit 23f028123d
2 changed files with 17 additions and 5 deletions

View File

@@ -148,10 +148,14 @@ test.describe('Meine Tickets', () => {
await card.locator('.ticket-card__answer-form textarea').fill('Korrekt ist der 2. Juni.')
await card.getByRole('button', { name: tt.answerButton }).click()
// Antwort wird angezeigt + Badge wechselt auf „Beantwortet" (bleibt in der Dialog-Ansicht).
// Antwort wird angezeigt + Badge wechselt auf „Beantwortet". Das Ticket verlässt die
// Rückfragen-Liste und steht jetzt unter „Offen" (Ansicht wechselt automatisch dorthin,
// da die Rückfragen-Gruppe nun leer ist).
await expect(card.getByText('Korrekt ist der 2. Juni.')).toBeVisible()
await expect(card.locator('.ticket-badge--answered')).toBeVisible()
await expect(card.getByText(tt.statusAnswered, { exact: true })).toBeVisible()
const openFilter = page.locator('.tickets-filter').filter({ hasText: tt.filters.open })
await expect(openFilter).toHaveClass(/tickets-filter--active/)
})
test('Ticket löschen', async ({ page }) => {

View File

@@ -6,8 +6,9 @@
* Pro Ticket: als gelöst markieren / wieder öffnen, Beschreibung bearbeiten (inline),
* löschen (mit Bestätigung). Erfolg/Fehler über das bestehende Toast-System.
*
* Drei gefilterte Verlinkungen (Filter-Chips, kein Pflicht-Tab): „Rückfragen" (im Dialog
* = NeedsInfo/Answered), „Offen" (Open), „Geschlossen" (Resolved, zeigt den Changelog/fixNote).
* Drei gefilterte Verlinkungen (Filter-Chips, kein Pflicht-Tab): „Rückfragen" (NeedsInfo —
* wartet auf die Züchterin), „Offen" (Open + Answered — von der KI zu erledigen, beantwortete
* Rückfragen kommen hierher zurück), „Geschlossen" (Resolved, zeigt den Changelog/fixNote).
* Der Frage/Antwort-Verlauf (thread) wird angezeigt; das interne `agentContext` NIEMALS.
*/
import { createContext, Fragment, useContext, useEffect, useMemo, useState } from 'react'
@@ -154,10 +155,17 @@ function formatDate(iso: string | null): string {
/** Gefilterte Ansichten (Filter-Chips). */
type TicketView = 'dialog' | 'open' | 'closed'
/** Zuordnung Ticket-Status → gefilterte Ansicht. */
/**
* Zuordnung Ticket-Status → gefilterte Ansicht.
* - „Rückfragen" (dialog): NUR NeedsInfo — wartet auf die Antwort der Züchterin.
* - „Offen" (open): Open + Answered — von der KI zu erledigen. Sobald die Züchterin
* geantwortet hat (Answered), ist SIE fertig → das Ticket wandert zurück nach „Offen"
* (mit „Beantwortet"-Badge), statt in ihrer Rückfragen-Liste zu verbleiben.
* - „Geschlossen" (closed): Resolved.
*/
function viewOf(status: FeedbackTicket['status']): TicketView {
if (status === 'Resolved') return 'closed'
if (status === 'NeedsInfo' || status === 'Answered') return 'dialog'
if (status === 'NeedsInfo') return 'dialog'
return 'open'
}