You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@allura.apache.org by br...@apache.org on 2013/05/15 17:20:50 UTC
[2/2] git commit: [#5563] ticket:340 refactored subscriptions page
[#5563] ticket:340 refactored subscriptions page
Project: http://git-wip-us.apache.org/repos/asf/incubator-allura/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-allura/commit/e20e8785
Tree: http://git-wip-us.apache.org/repos/asf/incubator-allura/tree/e20e8785
Diff: http://git-wip-us.apache.org/repos/asf/incubator-allura/diff/e20e8785
Branch: refs/heads/master
Commit: e20e8785008fdf5345d6d34718e52f9ba9b8833c
Parents: 97ddc15
Author: Yuriy Arhipov <yu...@yandex.ru>
Authored: Thu May 9 00:27:11 2013 +0400
Committer: Yuriy Arhipov <yu...@yandex.ru>
Committed: Wed May 15 09:39:27 2013 +0400
----------------------------------------------------------------------
Allura/allura/controllers/auth.py | 5 ++++-
Allura/allura/lib/widgets/subscriptions.py | 8 ++++++++
Allura/allura/templates/user_subs.html | 19 +++----------------
Allura/allura/tests/functional/test_auth.py | 11 +++++++++++
4 files changed, 26 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/e20e8785/Allura/allura/controllers/auth.py
----------------------------------------------------------------------
diff --git a/Allura/allura/controllers/auth.py b/Allura/allura/controllers/auth.py
index 4dc83e7..1c5891f 100644
--- a/Allura/allura/controllers/auth.py
+++ b/Allura/allura/controllers/auth.py
@@ -744,7 +744,7 @@ class SubscriptionsController(BaseController):
@expose()
@require_post()
@validate(F.subscription_form, error_handler=index)
- def update_subscriptions(self, subscriptions=None, **kw):
+ def update_subscriptions(self, subscriptions=None, email_format=None, **kw):
for s in subscriptions:
if s['subscribed']:
if s['tool_id'] and s['project_id']:
@@ -754,6 +754,9 @@ class SubscriptionsController(BaseController):
else:
if s['subscription_id'] is not None:
s['subscription_id'].delete()
+ if email_format:
+ c.user.set_pref('email_format', email_format)
+
redirect(request.referer)
class OAuthController(BaseController):
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/e20e8785/Allura/allura/lib/widgets/subscriptions.py
----------------------------------------------------------------------
diff --git a/Allura/allura/lib/widgets/subscriptions.py b/Allura/allura/lib/widgets/subscriptions.py
index 4439de7..a0a1bc3 100644
--- a/Allura/allura/lib/widgets/subscriptions.py
+++ b/Allura/allura/lib/widgets/subscriptions.py
@@ -50,6 +50,14 @@ class SubscriptionForm(ew.SimpleForm):
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')])
+
class SubscribeForm(ew.SimpleForm):
template='jinja:allura:templates/widgets/subscribe.html'
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/e20e8785/Allura/allura/templates/user_subs.html
----------------------------------------------------------------------
diff --git a/Allura/allura/templates/user_subs.html b/Allura/allura/templates/user_subs.html
index e94bbd7..19b9a6a 100644
--- a/Allura/allura/templates/user_subs.html
+++ b/Allura/allura/templates/user_subs.html
@@ -49,24 +49,11 @@
<h2>Subscriptions</h2>
{% if subscriptions %}
<p><em>Mark tools that you want to subscribe to. Unmark tools that you want to unsubscribe from. Press 'Save' button.</em></p>
- {{c.form.display(action='update_subscriptions', value=dict(subscriptions=subscriptions))}}
+ <div class="grid-24">
+ {{c.form.display(action='update_subscriptions', value=dict(subscriptions=subscriptions, email_format=c.user.preferences.email_format))}}
+ </div>
{% else%}
<p>No subscriptions.</p>
{% endif %}
- <hr/>
- <div style="clear:both"> </div>
- <form action="update" method="post">
- <label class="grid-4">Email Format</label>
- <div class="grid-18">
- <select name="preferences.email_format">
- <option value="plain" {{'selected' if c.user.preferences.email_format == 'plain' else ''}}>Plain Text</option>
- <option value="html" {{'selected' if c.user.preferences.email_format == 'html' else ''}}>HTML</option>
- <option value="both" {{'selected' if c.user.preferences.email_format == 'both' else ''}}>Combined</option>
- </select>
- </div>
- <div class="grid-18">
- {{lib.submit_button('Save Changes')}}
- </div>
- </form>
{% endblock %}
http://git-wip-us.apache.org/repos/asf/incubator-allura/blob/e20e8785/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 ccdf2e2..247e8b8 100644
--- a/Allura/allura/tests/functional/test_auth.py
+++ b/Allura/allura/tests/functional/test_auth.py
@@ -163,6 +163,17 @@ class TestAuth(TestController):
s = M.Mailbox.query.get(_id=s_id)
assert not s, "User still has subscription with Mailbox._id %s" % s_id
+ def test_format_email(self):
+ self.app.post('/auth/subscriptions/update_subscriptions', params={'email_format': 'html', 'subscriptions': ''})
+ r = self.app.get('/auth/subscriptions/')
+ assert '<option selected value="html">HTML</option>' in r
+ self.app.post('/auth/subscriptions/update_subscriptions', params={'email_format': 'plain', 'subscriptions': ''})
+ r = self.app.get('/auth/subscriptions/')
+ assert '<option selected value="plain">Plain Text</option>' in r
+ self.app.post('/auth/subscriptions/update_subscriptions', params={'email_format': 'both', 'subscriptions': ''})
+ r = self.app.get('/auth/subscriptions/')
+ assert '<option selected value="both">Combined</option>' in r
+
def test_api_key(self):
r = self.app.get('/auth/preferences/')
assert 'No API token generated' in r