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/15 14:48:43 UTC
[1/3] allura git commit: [#7984] remove unused columns
Repository: allura
Updated Branches:
refs/heads/master 00110b12e -> e97c5ffe5
[#7984] remove unused columns
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/68786d38
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/68786d38
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/68786d38
Branch: refs/heads/master
Commit: 68786d38cdf01b5138fbf30ee5ae65932733c88a
Parents: 151c63b
Author: Dave Brondsema <da...@brondsema.net>
Authored: Tue Oct 13 16:14:54 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Oct 13 16:19:05 2015 -0400
----------------------------------------------------------------------
Allura/allura/lib/widgets/subscriptions.py | 8 +-------
1 file changed, 1 insertion(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/68786d38/Allura/allura/lib/widgets/subscriptions.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/subscriptions.py b/Allura/allura/lib/widgets/subscriptions.py
index 5d1ebea..db6c51d 100644
--- a/Allura/allura/lib/widgets/subscriptions.py
+++ b/Allura/allura/lib/widgets/subscriptions.py
@@ -42,13 +42,7 @@ class _SubscriptionTable(ew.TableField):
project_name = ffw.DisplayOnlyField(
label='Project', show_label=True, with_hidden_input=False)
mount_point = ffw.DisplayOnlyField(
- label='App', show_label=True, with_hidden_input=False)
- topic = ffw.DisplayOnlyField(
- label='Topic', show_label=True, with_hidden_input=False)
- type = ffw.DisplayOnlyField(
- label='Type', show_label=True, with_hidden_input=False)
- frequency = ffw.DisplayOnlyField(
- label='Frequency', show_label=True, with_hidden_input=False)
+ label='Tool', show_label=True, with_hidden_input=False)
artifact_title = ew.LinkField(
label='Artifact', show_label=True, plaintext_if_no_href=True)
# unsubscribe = SubmitButton()
[3/3] allura git commit: [#7984] skip tools that never have
notications; better text within the table
Posted by je...@apache.org.
[#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/master
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 = []
[2/3] allura git commit: [#7984] force location of user subscriptions
form elements
Posted by je...@apache.org.
[#7984] force location of user subscriptions form elements
Project: http://git-wip-us.apache.org/repos/asf/allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/allura/commit/151c63b6
Tree: http://git-wip-us.apache.org/repos/asf/allura/tree/151c63b6
Diff: http://git-wip-us.apache.org/repos/asf/allura/diff/151c63b6
Branch: refs/heads/master
Commit: 151c63b630a7373669cbd20ea8f8b37d7fed0439
Parents: 00110b1
Author: Dave Brondsema <da...@brondsema.net>
Authored: Mon Oct 12 10:27:55 2015 -0400
Committer: Dave Brondsema <da...@brondsema.net>
Committed: Tue Oct 13 16:19:05 2015 -0400
----------------------------------------------------------------------
Allura/allura/lib/widgets/subscriptions.py | 24 +++++---
.../templates/widgets/user_subs_form.html | 61 ++++++++++++++++++++
2 files changed, 76 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/allura/blob/151c63b6/Allura/allura/lib/widgets/subscriptions.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/subscriptions.py b/Allura/allura/lib/widgets/subscriptions.py
index 4e3324a..5d1ebea 100644
--- a/Allura/allura/lib/widgets/subscriptions.py
+++ b/Allura/allura/lib/widgets/subscriptions.py
@@ -58,17 +58,23 @@ class _SubscriptionTable(ew.TableField):
class SubscriptionForm(CsrfForm):
defaults = dict(
ew.SimpleForm.defaults,
+ id='user-subs-form',
submit_text='Save')
- class fields(ew_core.NameList):
- subscriptions = _SubscriptionTable()
- email_format = ew.SingleSelectField(
- name='email_format',
- label='Email Format',
- options=[
- ew.Option(py_value='plain', label='Plain Text'),
- ew.Option(py_value='html', label='HTML'),
- ew.Option(py_value='both', label='Combined')])
+ template = 'jinja:allura:templates/widgets/user_subs_form.html'
+
+ @property
+ def fields(self):
+ return [
+ _SubscriptionTable(name='subscriptions'),
+ ew.SingleSelectField(
+ name='email_format',
+ show_label=False,
+ options=[
+ ew.Option(py_value='plain', label='Plain Text'),
+ ew.Option(py_value='html', label='HTML'),
+ ew.Option(py_value='both', label='Combined')]),
+ ]
class SubscribeForm(ew.SimpleForm):
http://git-wip-us.apache.org/repos/asf/allura/blob/151c63b6/Allura/allura/templates/widgets/user_subs_form.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/widgets/user_subs_form.html b/Allura/allura/templates/widgets/user_subs_form.html
new file mode 100644
index 0000000..39aecbc
--- /dev/null
+++ b/Allura/allura/templates/widgets/user_subs_form.html
@@ -0,0 +1,61 @@
+{#-
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-#}
+
+<form {{widget.j2_attrs(dict(
+ name=rendered_name,
+ id=id,
+ method=method,
+ action=action,
+ enctype=enctype), attrs)}}>
+
+ {% set subs_table = widget.fields[0] %}
+ {{ subs_table.display(**widget.context_for(subs_table)) }}
+
+ {# use a table so it matches width and placement of big table above #}
+ <table class="user_subs_opts">
+ <tr><td>
+ <div class="user_sub_email_format">
+ Email Format:
+ {% set email_format = widget.fields[1] %}
+ {{ email_format.display(**widget.context_for(email_format)) }}
+ </div>
+ {% for hf in widget.hidden_fields %}
+ {{ hf.display(**widget.context_for(hf)) }}
+ {% endfor %}
+ {% for b in buttons %}
+ {{ b.display() }}
+ {% endfor %}
+ </td></tr>
+ </table>
+</form>
+
+<style type="text/css">
+ #user-subs-form table:first-child {
+ margin-bottom: 10px;
+ }
+ #user-subs-form table.user_subs_opts td {
+ border-bottom: none;
+ }
+ .user_sub_email_format {
+ float: left;
+ }
+ .user_subs_opts input[type=submit] {
+ float: right;
+ }
+</style>
\ No newline at end of file