You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by gj...@apache.org on 2012/05/28 11:52:35 UTC

svn commit: r1343179 - /incubator/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/ticket.py

Author: gjm
Date: Mon May 28 09:52:34 2012
New Revision: 1343179

URL: http://svn.apache.org/viewvc?rev=1343179&view=rev
Log:
dashboard: message for TicketFieldCloud widget when there is no value for the selected field - towards #76

Modified:
    incubator/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/ticket.py

Modified: incubator/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/ticket.py
URL: http://svn.apache.org/viewvc/incubator/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/ticket.py?rev=1343179&r1=1343178&r2=1343179&view=diff
==============================================================================
--- incubator/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/ticket.py (original)
+++ incubator/bloodhound/trunk/bloodhound_dashboard/bhdashboard/widgets/ticket.py Mon May 28 09:52:34 2012
@@ -27,6 +27,7 @@ Widgets displaying ticket data.
 from itertools import imap, islice
 
 from genshi.builder import tag
+from genshi.core import Markup
 from trac.core import implements, TracError
 from trac.ticket.api import TicketSystem
 from trac.ticket.roadmap import apply_ticket_permissions, get_ticket_stats, \
@@ -89,8 +90,53 @@ class TicketFieldCloudWidget(WidgetBase)
             if field['name'] == fieldnm:
                 break
         else:
-            raise InvalidWidgetArgument('field',
-                    'Unknown ticket field %s' % (fieldnm,))
+            field_maps = {'type': {'admin_url': 'type',
+                                   'title': 'Types',
+                                   },
+                          'status': {'admin_url': 'status',
+                                     'title': 'Statuses',
+                                     },
+                          'priority': {'admin_url': 'priority',
+                                       'title': 'Priorities',
+                                       },
+                          'milestone': {'admin_url': 'milestones',
+                                        'title': 'Milestones',
+                                        },
+                          'component': {'admin_url': 'components',
+                                        'title': 'Components',
+                                        },
+                          'version': {'admin_url': 'versions',
+                                      'title': 'Versions',
+                                      },
+                          'severity': {'admin_url': 'severity',
+                                       'title': 'Severities',
+                                       },
+                          'resolution': {'admin_url': 'resolution',
+                                         'title': 'Resolutions',
+                                         },
+                          }
+            if fieldnm in field_maps.keys():
+                if 'TICKET_ADMIN' in req.perm:
+                    hint = _('You can add one or more '
+                             '<a href="%(url)s">here</a>',
+                            url=req.href.admin('ticket', 
+                                        field_maps[fieldnm]['admin_url']))
+                else:
+                    hint = _('Contact your administrator for further details')
+                return 'widget_alert.html', \
+                        {
+                            'title' : Markup(_('%(field)s',
+                                        field=field_maps[fieldnm]['title'])),
+                            'data' : dict(msgtype='info',
+                                msglabel="Note",
+                                msgbody=Markup(_('''There is no value defined
+                                    for ticket field <em>%(field)s</em>. 
+                                    %(hint)s''', field=fieldnm, hint=hint) )
+                                )
+                        }, context
+            else:
+                raise InvalidWidgetArgument('field', 
+                        'Unknown ticket field %s' % (fieldnm,))
         if field.get('custom'):
             sql = "SELECT value, count(value) FROM ticket_custom " \
                     "WHERE name='%(name)s' GROUP BY value"