1) индикатор прогресса высокого уровня:
На вкладке «Дорожная карта» отображается индикатор высокого уровня прогресса. В нем перечислены все этапы, и для каждого этапа он показывает:
- заголовок этапа
- краткое описание
- дата наступления вехи
- сколько времени осталось до этого времени (или как долго вы отстаете от графика)
- сколько билетов назначено этому этапу и сколько из них закрыто, визуализируется как красивый зеленый индикатор выполнения. Эта полоса основана на предположении, что каждый билет имеет одинаковый вес, что может вводить в заблуждение
Вы можете ограничить свои разрешения таким образом, чтобы ваш клиент мог получить доступ только к этому представлению.
В зависимости от взаимоотношений между вами и вашим клиентом вы можете предоставить ему возможность создавать новые билеты (разрешение TICKET_CREATE), что должно быть возможно без предоставления ему доступа для чтения к другим билетам (TICKET_VIEW и TICKET_MODIFY). Извините, но в настоящее время я не могу проверить, действительно ли это работает, возможно, кто-то может прокомментировать это.
2) ежедневные сводные отчеты
trac предлагает вам RSS-каналы для всего, что только можно придумать. На этом основании должна быть возможность создавать ежедневные отчеты, или вы просто указываете своему RSS-клиенту проверять канал один раз в день.
Trac также может уведомить владельца билета по почте, если тот билет изменился, но это произойдет мгновенно, а не в виде ежедневной сводки. Вы можете комментировать билеты, и иногда мы используем их как доску обсуждений или список рассылки, и в этом случае полезно получать мгновенные уведомления.
Другая конфигурация
В каждом проекте, который я делаю с trac, я создаю собственный запрос, чтобы вывести список всех заявок, которые никому не принадлежат:
SELECT p.value AS __color__,
owner AS __group__,
status,
id AS ticket, summary, component, milestone, t.type AS type, time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
WHERE status = 'new' AND (owner = '' OR owner = 'somebody' OR owner = 'None' )
ORDER BY owner, p.value, t.type, time
Каждый билет может иметь владельца и нескольких человек в поле cc, но в отчете для my tickets перечислены только те, владельцем которых вы являетесь. Чтобы преодолеть это, я добавляю запрос, подобный этому:
SELECT p.value AS __color__,
(CASE owner WHEN '$USER' THEN
(CASE status
WHEN 'assigned'
THEN 'Tickets that you accepted'
ELSE 'Tickets that were assigned to you, please accept or reassign'
END)
ELSE 'Tickets, that have your name in the cc' END)
AS __group__,
id AS ticket, summary, component, version, milestone,
t.type AS type, priority, time AS created,
changetime AS _changetime, description AS _description,
reporter AS _reporter
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
WHERE t.status 'closed' AND (owner = '$USER' OR cc like '%$USER%')
ORDER BY owner, (status = 'assigned') DESC, p.value, milestone, t.type, time
(этот код работает в trac 0.11b)
Это мой любимый отчет о билетах. Он объединяет билеты по трем классам:
- Билеты у вас есть и принимаются
- Билеты, которые были назначены вам, но вы еще не приняли
- Билеты, которые есть у вас в чеке (что вы не получите без этого запроса)
Запросы могут выглядеть пугающими, но они представляют собой простые модификации запросов, которые уже есть. Вам не нужно взламывать исходный код trac, веб-интерфейс позволяет редактировать запросы.
Плагины
Я рекомендую XML RPC плагин , если вы работаете с Eclipse. Это обеспечивает тесную интеграцию с Mylin . (Я думаю, что базовая интеграция работает даже без плагина), поэтому ваши разработчики могут выполнять множество задач из затмения, не переключаясь на веб-интерфейс trac.
(Если вы используете eclipse, но не знаете mylin, вам следует взглянуть на него. Вы можете протестировать его без какой-либо конфигурации, потому что он поставляется с большинством распределений eclipse и может работать автономно без trac.)