TracReportsの作成例は数多くあります。これはまだトリッキーなものであり、私が知っている既存のレシピではカバーされていません:
... ユーザーが所有者、レポーター、または作成していないがコメントを残したチケットであるすべてのチケットを表示するレポートを設計します。難しいのは最後の部分です。
追加ボーナスとしての有効性を考慮して、何か指針はありますか?
TracReportsの作成例は数多くあります。これはまだトリッキーなものであり、私が知っている既存のレシピではカバーされていません:
... ユーザーが所有者、レポーター、または作成していないがコメントを残したチケットであるすべてのチケットを表示するレポートを設計します。難しいのは最後の部分です。
追加ボーナスとしての有効性を考慮して、何か指針はありますか?
これが私の最初の実用的なソリューションです:
「(現在の) ユーザーは、所有者またはレポーター、または (1 人の) コメント作成者です」
SELECT
p.value AS __color__,
t.milestone AS __group__,
id AS ticket, t.type AS type,
reporter, t.time as created,
owner, changetime AS modified,
author as commenter, tcg.time as date
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
LEFT JOIN ticket_change tcg ON t.id = tcg.ticket
WHERE owner = $USER OR reporter = $USER
GROUP BY id
UNION
SELECT
p.value AS __color__,
t.milestone AS __group__,
id AS ticket, t.type AS type,
reporter, t.time as created,
owner, changetime AS modified,
author as commenter, tcg.time as date
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
LEFT JOIN ticket_change tcg ON t.id = tcg.ticket
WHERE author = $USER
AND id NOT IN (
SELECT id
FROM ticket
WHERE owner = $USER OR reporter = $USER
)
GROUP BY id
ORDER BY t.milestone, p.value, t.type, t.time
私は決して SQL の第一人者ではないので、より効果的な解決策がある可能性がありますが、これは少なくともコメント付きのチケットを表示し、それでも各チケットを 1 回しか表示しない場合に機能します。