2015-11-23 2 views
0

Как я могу получить список полей билета (например, веху, версию и все пользовательские поля) в Trac через Python?Как получить поля билета в Trac

В документации по Trac я нашел класс TicketSystem, но это компонент, и я не могу его создать. Итак, как мне получить доступ к его методам, если мне нужен экземпляр для него?

Редактировать: Я узнал, как получить доступ к полям по умолчанию. Например. для вех, это model.Milestone.select(self.env). Теперь проблема в том, как я могу получить доступ к полям пользовательских билетов? Должен быть способ сделать это без необходимости обращаться к базе данных вручную, так как существует метод get_custom_fields() в классе TicketSystem.

Редактировать 2: Я только что узнал, что get_custom_fields() возвращает только доступные поля, но не их значения. То, что я хочу сделать, это получить все доступные значения определенного настраиваемого поля.

+0

Вы пробовали этот http://stackoverflow.com/a/9508120/524743? – Samuel

+0

Это дает мне значение поля из ОДНОГО билета. Тем не менее, я хочу, чтобы все значения были из всех билетов. Пользовательское поле имеет предопределенные значения, доступные через раскрывающееся меню при создании билета. Теперь мне нужно получить доступ к этим значениям, которые обычно бывают в выпадающем меню, через Python. –

ответ

2

В документации по Trac я нашел класс TicketSystem, но это компонент, и я не могу его создать.

Вы можете получить ссылку на компонент, который является одноэлементным, с оператором ts = TicketSystem(self.env).

Я только что узнал, что get_custom_fields() возвращает только доступные поля, но не их значения. То, что я хочу сделать, это получить все доступные значения определенного настраиваемого поля.

Это неверно. Вы можете получить возможные значения пользовательского поля билета с заявлениями:

fields = TicketSystem(self.env).get_custom_fields() 
options = fields[idx].get('options', []) 

где idx является индексом поля в списке, для которого вы хотите восстановить параметры. Список будет непустым, если field['type'] - select или radio. См. trac.ticket.api.TicketSystem.customfields.

Я узнал, как получить доступ к полям по умолчанию. Например. для вех, это model.Milestone.select(self.env).

Вы должны получить доступ ко всем полям, используя TicketSystem(self.env).get_ticket_fields(). Этот оператор вернет все поля, включая настраиваемые поля.

Смежные вопросы