From b7ebac116ee7cce59492d90570039177fbf0ce80 Mon Sep 17 00:00:00 2001 From: Devyani Kota Date: Mar 14 2016 18:21:47 +0000 Subject: [PATCH 1/5] Removed conflict in models file --- diff --git a/hubs/models.py b/hubs/models.py index ed003e3..2b94422 100644 --- a/hubs/models.py +++ b/hubs/models.py @@ -137,7 +137,7 @@ class Hub(BASE): last_refreshed = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) last_edited = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) - #fas_group = sa.Column(sa.String(32), nullable=False) + # fas_group = sa.Column(sa.String(32), nullable=False) @property def days_idle(self): @@ -168,7 +168,7 @@ class Hub(BASE): @property def members(self): return [assoc.user for assoc in self.associations - if assoc.role == 'member' or assoc.role =='owner'] + if assoc.role == 'member' or assoc.role == 'owner'] @property def subscribers(self): @@ -250,6 +250,7 @@ class Hub(BASE): 'subscribers': [u.username for u in self.subscribers], } + def _config_default(context): plugin_name = context.current_parameters['plugin'] plugin = hubs.widgets.registry[plugin_name] @@ -306,7 +307,6 @@ class User(BASE): fullname = sa.Column(sa.Text) created_on = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) - def __json__(self, session): return { 'username': self.username, @@ -315,17 +315,18 @@ class User(BASE): 'fullname': self.fullname, 'created_on': self.created_on, # We'll need hubs subscribed to, owned, etc.. - #'hubs': [hub.idx for hub in self.hubx], + # 'hubs': [hub.idx for hub in self.hubx], } @property def ownerships(self): return [assoc.hub for assoc in self.associations if assoc.role == 'owner'] + @property def memberships(self): return [assoc.hub for assoc in self.associations - if assoc.role == 'member' or assoc.role =='owner'] + if assoc.role == 'member' or assoc.role == 'owner'] @property def subscriptions(self): From bcb0015c78dbf18d5d5efab2d328e941704eec3e Mon Sep 17 00:00:00 2001 From: Devyani Kota Date: Mar 14 2016 18:22:07 +0000 Subject: [PATCH 2/5] Fixed issue #10: Added Subscribed_to stats and Subscribe/Unsubscribe button --- diff --git a/hubs/models.py b/hubs/models.py index 2b94422..0696266 100644 --- a/hubs/models.py +++ b/hubs/models.py @@ -125,6 +125,7 @@ class Hub(BASE): summary = sa.Column(sa.String(128)) created_on = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) widgets = relation('Widget', backref=backref('hub')) + users = relation('Association', backref=backref('hubs')) left_width = sa.Column(sa.Integer, nullable=False, default=8) archived = sa.Column(sa.Boolean, default=False) user_hub = sa.Column(sa.Boolean, default=False) @@ -306,6 +307,7 @@ class User(BASE): openid = sa.Column(sa.Text, primary_key=True) fullname = sa.Column(sa.Text) created_on = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) + hubs = relation('Association', backref=backref('users')) def __json__(self, session): return { diff --git a/hubs/widgets/fedmsgstats.py b/hubs/widgets/fedmsgstats.py index b81a2cd..5ff412f 100644 --- a/hubs/widgets/fedmsgstats.py +++ b/hubs/widgets/fedmsgstats.py @@ -3,6 +3,7 @@ from hubs.widgets.chrome import panel from hubs.utils import commas +import flask import jinja2 import requests @@ -16,13 +17,21 @@ template = jinja2.Template("""
- - + +
FedMsgsSubscribers
{{fedmsgs_text}}{{subscribers_text}}
subscribersSubscribed_to
{{subscribers_text}}{{subscribed_text}}
{% if session['nickname'] != username %} -
+ {% if session['nickname'] in subscribers %} +
  • + +
  • + {% else %} +
  • + +
  • + {% endif %} {% endif %}
    @@ -34,12 +43,19 @@ def data(session, widget, username): url = url.format(username=username) response = requests.get(url) fedmsgs = response.json()['total'] + for assoc in widget.hub.users: + sub_list = [u.name for u in assoc.user.subscriptions] + subscribers = [u.username for u in widget.hub.subscribers] return dict( username=username, fedmsgs=fedmsgs, - subscribers=len(widget.hub.subscribers), + subscribers=subscribers, + subscribed_to=sub_list, fedmsgs_text=commas(fedmsgs), - subscribers_text=commas(len(widget.hub.subscribers)), + subscribers_text=commas(len(subscribers)), + subscribed_text=commas(len(sub_list)), + hub_subscribe_url=flask.url_for('hub_subscribe', hub=widget.hub.name), + hub_unsubscribe_url=flask.url_for('hub_unsubscribe', hub=widget.hub.name), ) From 2df2ecdf37fe0654d7edf8507b8c139bd7c05d54 Mon Sep 17 00:00:00 2001 From: Devyani Kota Date: Mar 14 2016 18:48:08 +0000 Subject: [PATCH 3/5] Removed redundant users association relation with hubs --- diff --git a/hubs/models.py b/hubs/models.py index 0696266..b94a31f 100644 --- a/hubs/models.py +++ b/hubs/models.py @@ -125,7 +125,7 @@ class Hub(BASE): summary = sa.Column(sa.String(128)) created_on = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) widgets = relation('Widget', backref=backref('hub')) - users = relation('Association', backref=backref('hubs')) + # users = relation('Association', backref=backref('hubs')) left_width = sa.Column(sa.Integer, nullable=False, default=8) archived = sa.Column(sa.Boolean, default=False) user_hub = sa.Column(sa.Boolean, default=False) @@ -307,7 +307,7 @@ class User(BASE): openid = sa.Column(sa.Text, primary_key=True) fullname = sa.Column(sa.Text) created_on = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) - hubs = relation('Association', backref=backref('users')) + # hubs = relation('Association', backref=backref('users')) def __json__(self, session): return { From 1b1e94abc21b42ad0a7877ca033acdd949747283 Mon Sep 17 00:00:00 2001 From: Devyani Kota Date: Mar 14 2016 21:05:06 +0000 Subject: [PATCH 4/5] Removed redundant associations in models and fedmsgstats files --- diff --git a/hubs/models.py b/hubs/models.py index b94a31f..2b94422 100644 --- a/hubs/models.py +++ b/hubs/models.py @@ -125,7 +125,6 @@ class Hub(BASE): summary = sa.Column(sa.String(128)) created_on = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) widgets = relation('Widget', backref=backref('hub')) - # users = relation('Association', backref=backref('hubs')) left_width = sa.Column(sa.Integer, nullable=False, default=8) archived = sa.Column(sa.Boolean, default=False) user_hub = sa.Column(sa.Boolean, default=False) @@ -307,7 +306,6 @@ class User(BASE): openid = sa.Column(sa.Text, primary_key=True) fullname = sa.Column(sa.Text) created_on = sa.Column(sa.DateTime, default=datetime.datetime.utcnow) - # hubs = relation('Association', backref=backref('users')) def __json__(self, session): return { diff --git a/hubs/widgets/fedmsgstats.py b/hubs/widgets/fedmsgstats.py index 5ff412f..2a3c643 100644 --- a/hubs/widgets/fedmsgstats.py +++ b/hubs/widgets/fedmsgstats.py @@ -43,7 +43,8 @@ def data(session, widget, username): url = url.format(username=username) response = requests.get(url) fedmsgs = response.json()['total'] - for assoc in widget.hub.users: + print dir(widget.hub.name) + for assoc in widget.hub.associations: sub_list = [u.name for u in assoc.user.subscriptions] subscribers = [u.username for u in widget.hub.subscribers] return dict( From d8875a0937d9a624f27c7efdd529fda5167b4831 Mon Sep 17 00:00:00 2001 From: Devyani Kota Date: Mar 14 2016 22:01:43 +0000 Subject: [PATCH 5/5] Modified the fedmsgstats tests according to code changes --- diff --git a/hubs/tests/test_widgets/test_fedmsgstats.py b/hubs/tests/test_widgets/test_fedmsgstats.py index ad8c0c3..39bd99e 100644 --- a/hubs/tests/test_widgets/test_fedmsgstats.py +++ b/hubs/tests/test_widgets/test_fedmsgstats.py @@ -16,7 +16,11 @@ class TestFedmsgStats(hubs.tests.test_widgets.WidgetTest): u'fedmsgs': 83854, u'fedmsgs_text': u'83,854', u'source_url': u'/source/fedmsgstats/', - u'subscribers': 0, + u'subscribers': [], + u'subscribed_to': [], u'subscribers_text': u'0', + u'subscribed_text': u'0', u'username': u'ralph', + u'hub_subscribe_url': u'/api/hub/ralph/subscribe', + u'hub_unsubscribe_url': u'/api/hub/ralph/unsubscribe', }) diff --git a/hubs/widgets/fedmsgstats.py b/hubs/widgets/fedmsgstats.py index 2a3c643..a71f1b0 100644 --- a/hubs/widgets/fedmsgstats.py +++ b/hubs/widgets/fedmsgstats.py @@ -43,7 +43,6 @@ def data(session, widget, username): url = url.format(username=username) response = requests.get(url) fedmsgs = response.json()['total'] - print dir(widget.hub.name) for assoc in widget.hub.associations: sub_list = [u.name for u in assoc.user.subscriptions] subscribers = [u.username for u in widget.hub.subscribers]