You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by je...@apache.org on 2015/10/19 13:38:01 UTC
[36/50] [abbrv] allura git commit: [#7984] skip tools that never have
notications; better text within the table
[#7984] skip tools that never have notications; better text within the table
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/e97c5ffe
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/e97c5ffe
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/e97c5ffe
Branch: refs/heads/ib/7924
Commit: e97c5ffe587b5e49a63fbee3800265df1db96a94
Parents: 68786d3
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Oct 13 16:52:08 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Wed Oct 14 10:01:15 2015 -0400
----------------------------------------------------------------------
Allura/allura/app.py | 3 +++
Allura/allura/controllers/auth.py | 17 ++++++++++++-----
Allura/allura/ext/admin/admin_main.py | 1 +
Allura/allura/ext/search/search_main.py | 1 +
Allura/allura/ext/user_profile/user_main.py | 1 +
Allura/allura/lib/widgets/subscriptions.py | 4 ++--
Allura/allura/tests/functional/test_auth.py | 12 ++++++------
ForgeActivity/forgeactivity/main.py | 1 +
ForgeChat/forgechat/main.py | 1 +
ForgeLink/forgelink/link_main.py | 1 +
ForgeUserStats/forgeuserstats/main.py | 1 +
11 files changed, 30 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/Allura/allura/app.py
----------------------------------------------------------------------
diff --git a/Allura/allura/app.py b/Allura/allura/app.py
index bd6f36b..4cc47b1 100644
--- a/Allura/allura/app.py
+++ b/Allura/allura/app.py
@@ -216,6 +216,8 @@ class Application(object):
can not be added to the project by the user. Default value is float("inf").
:cvar bool hidden: Default is False, Application is not hidden from the
list of a project's installed tools.
+ :cvar bool has_notifications: Default is True, if set to False then application will not
+ be listed on user subscriptions table.
:cvar str tool_description: Text description of this Application.
:cvar bool relaxed_mount_points: Set to True to relax the default mount point
naming restrictions for this Application. Default is False. See
@@ -272,6 +274,7 @@ class Application(object):
relaxed_mount_points = False
ordinal = 0
hidden = False
+ has_notifications = True
icons = {
24: 'images/admin_24.png',
32: 'images/admin_32.png',
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/Allura/allura/controllers/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index e3c4d38..f2043af 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -868,15 +868,19 @@ class SubscriptionsController(BaseController):
continue
if app_config is None:
continue
+ app = app_config.load()
+ if not app.has_notifications:
+ continue
subscriptions.append(dict(
subscription_id=mb._id,
project_id=project._id,
app_config_id=mb.app_config_id,
project_name=project.name,
- mount_point=app_config.options['mount_point'],
+ tool=app_config.options['mount_label'],
artifact_title=dict(
- text=mb.artifact_title, href=mb.artifact_url),
+ text='Everything' if mb.artifact_title == 'All artifacts' else mb.artifact_title,
+ href=mb.artifact_url),
topic=mb.topic,
type=mb.type,
frequency=mb.frequency.unit,
@@ -902,20 +906,23 @@ class SubscriptionsController(BaseController):
for tool in my_tools:
if tool['_id'] in my_tools_subscriptions:
continue # We have already subscribed to this tool.
+ app = tool.load()
+ if not app.has_notifications:
+ continue
subscriptions.append(
dict(tool_id=tool._id,
user_id=c.user._id,
project_id=tool.project_id,
project_name=my_projects[tool.project_id].name,
- mount_point=tool.options['mount_point'],
- artifact_title='No subscription',
+ tool=tool.options['mount_label'],
+ artifact_title='Everything',
topic=None,
type=None,
frequency=None,
artifact=None))
- subscriptions.sort(key=lambda d: (d['project_name'], d['mount_point']))
+ subscriptions.sort(key=lambda d: (d['project_name'], d['tool']))
provider = plugin.AuthenticationProvider.get(request)
menu = provider.account_navigation()
return dict(
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/Allura/allura/ext/admin/admin_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/admin/admin_main.py b/Allura/allura/ext/admin/admin_main.py
index dcda9be..7affa3c 100644
--- a/Allura/allura/ext/admin/admin_main.py
+++ b/Allura/allura/ext/admin/admin_main.py
@@ -86,6 +86,7 @@ class AdminApp(Application):
48: 'images/admin_48.png'
}
exportable = True
+ has_notifications = False
def __init__(self, project, config):
Application.__init__(self, project, config)
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/Allura/allura/ext/search/search_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/search/search_main.py b/Allura/allura/ext/search/search_main.py
index 99c5dfc..9f8a92b 100644
--- a/Allura/allura/ext/search/search_main.py
+++ b/Allura/allura/ext/search/search_main.py
@@ -40,6 +40,7 @@ class SearchApp(Application):
__version__ = version.__version__
max_instances = 0
hidden = True
+ has_notifications = False
sitemap = []
def __init__(self, project, config):
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/Allura/allura/ext/user_profile/user_main.py
----------------------------------------------------------------------
diff --git a/Allura/allura/ext/user_profile/user_main.py b/Allura/allura/ext/user_profile/user_main.py
index f676bed..9be9276 100644
--- a/Allura/allura/ext/user_profile/user_main.py
+++ b/Allura/allura/ext/user_profile/user_main.py
@@ -59,6 +59,7 @@ class UserProfileApp(Application):
__version__ = version.__version__
tool_label = 'Profile'
max_instances = 0
+ has_notifications = False
icons = {
24: 'images/home_24.png',
32: 'images/home_32.png',
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/Allura/allura/lib/widgets/subscriptions.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/subscriptions.py b/Allura/allura/lib/widgets/subscriptions.py
index db6c51d..909a506 100644
--- a/Allura/allura/lib/widgets/subscriptions.py
+++ b/Allura/allura/lib/widgets/subscriptions.py
@@ -41,10 +41,10 @@ class _SubscriptionTable(ew.TableField):
class fields(ew_core.NameList):
project_name = ffw.DisplayOnlyField(
label='Project', show_label=True, with_hidden_input=False)
- mount_point = ffw.DisplayOnlyField(
+ tool = ffw.DisplayOnlyField(
label='Tool', show_label=True, with_hidden_input=False)
artifact_title = ew.LinkField(
- label='Artifact', show_label=True, plaintext_if_no_href=True)
+ label='Item(s)', show_label=True, plaintext_if_no_href=True)
# unsubscribe = SubmitButton()
subscribed = ew.Checkbox(suppress_label=True)
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/Allura/allura/tests/functional/test_auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/tests/functional/test_auth.py b/Allura/allura/tests/functional/test_auth.py
index 5ad86ea..d74ebf0 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -582,20 +582,20 @@ class TestAuth(TestController):
subscriptions = M.Mailbox.query.find(dict(
user_id=c.user._id, is_flash=False)).all()
# make sure page actually lists all the user's subscriptions
- assert len(
- subscriptions) > 0, 'Test user has no subscriptions, cannot verify that they are shown'
+ assert len(subscriptions) > 0, 'Test user has no subscriptions, cannot verify that they are shown'
for m in subscriptions:
assert m._id in r, "Page doesn't list subscription for Mailbox._id = %s" % m._id
# make sure page lists all tools which user can subscribe
user = M.User.query.get(username='test-admin')
- tools = []
for p in user.my_projects():
for ac in p.app_configs:
if not M.Mailbox.subscribed(project_id=p._id, app_config_id=ac._id):
- tools.append(ac._id)
- for tool_id in tools:
- assert tool_id in r, "Page doesn't list tool with app_config_id = %s" % tool_id
+ if ac.tool_name in ('activity', 'admin', 'search', 'userstats', 'profile'):
+ # these have has_notifications=False
+ assert ac._id not in r, "Page lists tool %s but it should not" % ac.tool_name
+ else:
+ assert ac._id in r, "Page doesn't list tool %s" % ac.tool_name
def _find_subscriptions_form(self, r):
form = None
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/ForgeActivity/forgeactivity/main.py
----------------------------------------------------------------------
diff --git a/ForgeActivity/forgeactivity/main.py b/ForgeActivity/forgeactivity/main.py
index 9bb6029..845eb9e 100644
--- a/ForgeActivity/forgeactivity/main.py
+++ b/ForgeActivity/forgeactivity/main.py
@@ -52,6 +52,7 @@ class ForgeActivityApp(Application):
default_mount_point = 'activity'
max_instances = 0
searchable = False
+ has_notifications = False
def __init__(self, project, config):
Application.__init__(self, project, config)
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/ForgeChat/forgechat/main.py
----------------------------------------------------------------------
diff --git a/ForgeChat/forgechat/main.py b/ForgeChat/forgechat/main.py
index 39a6807..bdd373a 100644
--- a/ForgeChat/forgechat/main.py
+++ b/ForgeChat/forgechat/main.py
@@ -59,6 +59,7 @@ class ForgeChatApp(Application):
config_options = Application.config_options + [
ConfigOption('channel', str, ''),
]
+ has_notifications = False
icons = {
24: 'images/chat_24.png',
32: 'images/chat_32.png',
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/ForgeLink/forgelink/link_main.py
----------------------------------------------------------------------
diff --git a/ForgeLink/forgelink/link_main.py b/ForgeLink/forgelink/link_main.py
index 735816d..dde7a02 100644
--- a/ForgeLink/forgelink/link_main.py
+++ b/ForgeLink/forgelink/link_main.py
@@ -59,6 +59,7 @@ class ForgeLinkApp(Application):
config_on_install = ['url']
searchable = True
exportable = True
+ has_notifications = False
tool_label = 'External Link'
default_mount_label = 'Link name'
default_mount_point = 'link'
http://git-wip-us.apache.org/repos/asf/allura/blob/e97c5ffe/ForgeUserStats/forgeuserstats/main.py
----------------------------------------------------------------------
diff --git a/ForgeUserStats/forgeuserstats/main.py b/ForgeUserStats/forgeuserstats/main.py
index eb25140..daa19ef 100644
--- a/ForgeUserStats/forgeuserstats/main.py
+++ b/ForgeUserStats/forgeuserstats/main.py
@@ -97,6 +97,7 @@ class ForgeUserStatsApp(Application):
'admin': 'Toggle stats visibility.',
}
max_instances = 0
+ has_notifications = False
ordinal = 15
config_options = Application.config_options
default_external_feeds = []