Scott,
On Thu, Jan 26, 2012 at 3:49 PM, sbamford <[email protected]>wrote:
> Hi
>
> I have previously posted about this but I thought I would start a new
> thread as the other is two months old now.
> I am trying to make a plugin that takes the values in a custom ticket
> field and turns them into links to our review board server. I have
> started work on that, borrowing heavily from [1], that was pointed out
> to me by Torbjörn Svensson.
> However, I can't find the documentation for what exactly filter_stream
> is dealing with. So far I have deleted the code that doesn't deal with
> tickets, and I have changed the secondary method. However, I'm working
> on the assumption that what is being returned by
> "data['ticket'][self.field_name]"
> is the comma separated list of numbers that is stored in the database.
> In which case, is that were I should be saving my results back to,
> since it is currently being stored in field['rendered']?
> So where can I find useful documentation about the data-structure of
> data? Am I anywhere near the fields that I want to be using? And also,
> is my plugin at the moment going to be doing what I want it to be
> doing (assuming I have wiki formatting turned on for the field)?
>
> Thanks
> Scott
>
>
> class InterLinksPlugin(Component):
> implements(ITemplateStreamFilter)
>
> field_name = 'reviewno'
>
> # ITemplateStreamFilter methods
> def filter_stream(self, req, method, filename, stream, data):
> # this is shamelessly stollen from MasterTickets and modified
> for one field only
>
> # We try all at the same time to maybe catch also changed or
> processed templates
> if data and filename in ["report_view.html",
> "query_results.html", "ticket.html", "query.html"]:
> # For ticket.html
> if 'fields' in data and isinstance(data['fields'], list):
> for field in data['fields']:
> if field['name'] == self.field_name and
> data['ticket'][self.field_name]:
> field['rendered'] =
> self._make_link(data['ticket'][self.field_name])
> return stream
>
> def _make_link(self, val):
> list = []
> list.extend(re.findall(r'\d+', val))
> return string = "".join("[http://reviews.sw/r"+x+" "+x+"] "
> for str(x) in list)
>
>
Would an InterWiki link work for what you are trying to do? See here for
an explanation:
http://trac.edgewall.org/wiki/InterWiki
chris
--
You received this message because you are subscribed to the Google Groups "Trac
Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/trac-users?hl=en.