>Форум Mozilla Россия http://forum.mozilla-russia.org/index.php >Bugzilla http://forum.mozilla-russia.org/viewforum.php?id=35 >как добавить свои поля в рассылку оповещений по почте http://forum.mozilla-russia.org/viewtopic.php?id=43212 |
_SlaSh_ > 11-02-2010 12:00:35 |
Всем доброго времени суток. Прошу помощи у сообщества, т.к. нужны глубокие познания в Perl-е и в исходном коде Багзиллы. Выделить код Код:<table width="100%"> <tr> <th align="left">Номер</th> <th align="left">Серьезность</th> <th align="left">Приоритет</th> <th align="left">Продукт</th> #--------------------------- ДОБАВЛЕНО <th align="left">Состояние</th> <th align="left">Аннотация</th> <th align="left">Исполнитель</th> </tr> [% FOREACH bug=query.bugs %] <tr> <td align="left"><a href="[%+ urlbase FILTER html %]show_bug.cgi?id= [%- bug.bug_id %]">[% bug.bug_id %]</a></td> <td align="left">[% get_severity(bug.bug_severity) FILTER html %]</td> <td align="left">[% bug.priority FILTER html %]</td> <td align="left">[% get_product_name(bug.product_id) FILTER html %]</td> #-------------------- ДОБАВЛЕНО <td align="left">[% get_status(bug.bug_status) FILTER html %]</td> <td align="left">[% bug.short_desc FILTER html %]</td> <td align="left">[% bug.$assignee_login_string FILTER html %]</td> </tr> [% END %] Попутно выяснилось, что в таблице bugs есть только поле product_id, поэтому пришлось дописать макрос get_product_name в подключаемый шаблон bugzilla/template/ru/default/global/field-descs.none.tmpl (благо, что продуктов не так много, и этот обходной путь показался гораздо проще, чем внедрять полноценные sql-запросы: Выделить код Код:[% product_descs = { "1" => "Product-1", "2" => "GoodProduct-1", "3" => "BadProduct-1", "4" => "GoodProduct-2" } %] [% MACRO get_product_name(id) GET product_descs.$id || id %] Затем оказалось, что шаблон bugzilla/template/ru/default/whine/mail.html.tmpl теперь оперирует полем product_id, которое ему вообще не передаётся. Пришлось править сам скрипт bugzilla/whine.pl: Выделить код Код:# Execute the saved query my @searchfields = ( 'bugs.bug_id', 'bugs.bug_severity', 'bugs.priority', 'bugs.rep_platform', 'bugs.assigned_to', 'bugs.bug_status', 'bugs.resolution', 'bugs.short_desc', 'map_assigned_to.login_name', 'bugs.product_id', #---------------------- ДОБАВЛЕНО ); Вуаля, всё работает! Но только в версии 3.2.4 (ru: 3.2.3-20090405). Выделить код Код:> use Bugzilla::Group; 253c254 < @{Bugzilla::User->flatten_group_membership( --- > @{Bugzilla::Group->flatten_group_membership( 427,436c428,437 < my @searchfields = ( < 'bugs.bug_id', < 'bugs.bug_severity', < 'bugs.priority', < 'bugs.rep_platform', < 'bugs.assigned_to', < 'bugs.bug_status', < 'bugs.resolution', < 'bugs.short_desc', < 'map_assigned_to.login_name', --- > my @searchfields = qw( > bug_id > bug_severity > priority > rep_platform > assigned_to > bug_status > resolution > short_desc > assigned_to И теперь после вставки строки product_id в объявление массива @searchfields при попытке выполниться скрипт вываливается с ошибкой:
Подозреваю, что нужно править еще и подключаемые Bugzilla::Search, Bugzilla::User, Bugzilla::Group и т.д. Но не понимаю, что именно. Спасибо. |
SnowyOwl > 12-02-2010 05:11:48 |
_SlaSh_ пишет
У Bugzilla/Search.pm можно просить 'product'. Это автоматически приведет к добавлению подзапроса для выборки названия продукта и т.п. Увидеть это можно здесь: http://mxr.mozilla.org/mozilla/source/w … rch.pm#146 А прочесть об этом... м-дя... только здесь: https://bugzilla.mozilla.org/show_bug.cgi?id=545795 |
_SlaSh_ > 12-02-2010 09:40:55 |
SnowyOwl Спасибо! |
SnowyOwl > 21-02-2010 19:43:26 |
_SlaSh_ пишет
(с) А.Добротворский пишет
|