Author: rjollos
Date: Tue Aug 27 02:03:36 2013
New Revision: 1517739
URL: http://svn.apache.org/r1517739
Log:
0.8dev: URLs in product widget were incorrect in product URL with subdomains.
Refs #552.
The query links from the product widget now exclude closed tickets and provide
a more useful set of default columns. Patch by Olemis.
Modified:
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/product.py
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_product.html
Modified: bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/product.py
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/product.py?rev=1517739&r1=1517738&r2=1517739&view=diff
==============================================================================
--- bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/product.py
(original)
+++ bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/product.py Tue
Aug 27 02:03:36 2013
@@ -36,7 +36,6 @@ from trac.ticket.query import Query
from bhdashboard.util import WidgetBase, check_widget_name, pretty_wrapper
from multiproduct.env import Product, ProductEnvironment
-from multiproduct.hooks import ProductizedHref
__metaclass__ = type
@@ -59,9 +58,11 @@ class ProductWidget(WidgetBase):
get_widget_params = pretty_wrapper(get_widget_params, check_widget_name)
- def _get_product_info(self, product, resource, max_):
+ COMMON_QUERY = 'order=priority&status=!closed&col=id&col=summary' \
+ '&col=owner&col=type&col=status&col=priority&col=product'
+
+ def _get_product_info(self, product, href, resource, max_):
penv = ProductEnvironment(self.env, product.prefix)
- href = ProductizedHref(self.env, penv.href.base)
results = []
# some queries return a list/tuple, some a generator,
@@ -76,9 +77,10 @@ class ProductWidget(WidgetBase):
for q in itertools.islice(query, max_):
q.url = href(resource['name'], q.name) \
if resource.get('hrefurl') \
- else Query.from_string(
- penv, 'order=priority&%s=%s' %
- (resource['name'], q.name)).get_href(href)
+ else Query.from_string(penv,
+ '%s=%s&%s&col=%s' % (resource['name'], q.name,
+ self.COMMON_QUERY, resource['name'])
+ ).get_href(href)
q.ticket_count = penv.db_query("""
SELECT COUNT(*) FROM ticket WHERE ticket.%s='%s'
AND ticket.status <> 'closed'
@@ -125,21 +127,24 @@ class ProductWidget(WidgetBase):
params = ('max', 'cols')
max_, cols = self.bind_params(name, options, *params)
- if not isinstance(req.perm.env, ProductEnvironment):
+ if not isinstance(self.env, ProductEnvironment):
for p in Product.select(self.env):
if 'PRODUCT_VIEW' in req.perm(Neighborhood('product',
p.prefix)):
+ penv = ProductEnvironment(self.env, p.prefix)
+ phref = ProductEnvironment.resolve_href(penv, self.env)
for resource in (
{'type': Milestone, 'name': 'milestone', 'hrefurl':
True},
{'type': Component, 'name': 'component'},
{'type': Version, 'name': 'version'},
):
setattr(p, resource['name'] + 's',
- self._get_product_info(p, resource, max_))
+ self._get_product_info(p, phref, resource,
max_))
p.owner_link = Query.from_string(self.env,
'status!=closed&col=id&col=summary&col=owner'
'&col=status&col=priority&order=priority'
'&group=product&owner=%s' % (p._data['owner'] or '', )
- ).get_href(req.href)
+ ).get_href(phref)
+ p.href = phref()
data.setdefault('product_list', []).append(p)
title = _('Products')
Modified:
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_product.html
URL:
http://svn.apache.org/viewvc/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_product.html?rev=1517739&r1=1517738&r2=1517739&view=diff
==============================================================================
---
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_product.html
(original)
+++
bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/templates/widget_product.html
Tue Aug 27 02:03:36 2013
@@ -26,7 +26,7 @@
<div class="span4">
<div class="well product-well">
<h4>
- ☆ <a href="${req.href.products(p.prefix)}">$p.name
($p.prefix)</a>
+ ☆ <a href="${p.href}">$p.name ($p.prefix)</a>
<py:if test="p.owner_link">
<br />
<small>owned by