On Jan 27, 9:49 am, 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

Sorry, I'm obviously not awake. The link to the original plugin.
[1] https://gist.github.com/37173002bed7959252ad

>
> 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)

-- 
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.

Reply via email to