From a93091ccef6c0e4bf4b5427e019e1c4df997cc04 Mon Sep 17 00:00:00 2001 From: Ryan Lerch Date: Nov 06 2017 13:17:58 +0000 Subject: Fix functionality of the Memberships widget This commit fixes a number of small issues with the membership widget. First (Fixes #418) was kind of the source of a lot of the other issues. This widget behaved differently when on a user hub vs a group hub. On the group hub it showed who was a member of that hub. On a User hub it showed what hubs the hub was a member of. In this commit, the widget just focuses on showing who is a member of the hub. Of course, on a user hub there will be only one member, the user. Fix #417 -- Previously, the label that changed from member to owner if a member was an owner did not work. All users were listed as members only. This commit fixes this Fix #416 -- Previously the links to users listed in the widget were not showing or working. This was because the widget was using member.name rather than member.username. This is now fixed. Fix #415 -- Previously the title of the widget was "hubs". This has now been changed to "Members" Fix #414 -- Previously when trying to add the Membership widget to a hub, it was listed in the list of widgets as "Hubs" it is now listed as "Memberships" Fix #357 -- Previously the links in the Memberships widget used hard links rather than url_for. this is now fixed. Additionally, the avatars on the view more modal in this widget were extremly stretched vertically. This commit fixes that issue too. Signed-off-by: Ryan Lerch --- diff --git a/hubs/widgets/memberships/__init__.py b/hubs/widgets/memberships/__init__.py index 78433b8..b83a7fa 100644 --- a/hubs/widgets/memberships/__init__.py +++ b/hubs/widgets/memberships/__init__.py @@ -1,18 +1,20 @@ from __future__ import unicode_literals -import hubs.models - from hubs.widgets.base import Widget from hubs.widgets.view import RootWidgetView ELLIPSIS_LIMIT = 3 +""" +This widget displays who is a member of the Hub it is placed on. +""" + class Memberships(Widget): name = "memberships" - label = "Hubs" + label = "Members" position = "both" @@ -21,21 +23,21 @@ class BaseView(RootWidgetView): def get_context(self, instance, *args, **kwargs): hub = instance.hub members = [] - if hub.user_hub: - user = hubs.models.User.by_username(hub.name) - members = [m.__json__() for m in user.memberships - if m.name != user.username] - else: - members_name = [] - for member in hub.members: - if member.username in members_name: - continue - members_name.append(member.username) - members.append(member.__json__()) + owners = [] + + members_name = [] + for member in hub.members: + if member.username in members_name: + continue + members_name.append(member.username) + members.append(member.__json__()) + if member in hub.owners: + owners.append(member.username) oldest_members = sorted( members, key=lambda m: m.get('created_on'))[:ELLIPSIS_LIMIT] return dict( memberships=list(members), oldest_members=list(oldest_members), + owners=list(owners), ) diff --git a/hubs/widgets/memberships/templates/root.html b/hubs/widgets/memberships/templates/root.html index d195b0c..fa519a5 100644 --- a/hubs/widgets/memberships/templates/root.html +++ b/hubs/widgets/memberships/templates/root.html @@ -2,9 +2,9 @@ {% if memberships|length > oldest_members|length %} {% for member in oldest_members %}
- Hub avatar for {{ member.name }} - {{ member.name }} - {% if g.auth.username in member.owners %} + Hub avatar for {{ member.name }} + {{ member.username }} + {% if member.username in owners %}

Owner

{% else %}

Member

@@ -15,9 +15,9 @@ {% else %} {% for member in memberships %}
- Hub avatar for {{ member.name }} - {{ member.name }} - {% if g.auth.username in member.owners %} + Hub avatar for {{ member.name }} + {{ member }} + {% if member.username in owners %}

Owner

{% else %}

Member

@@ -39,10 +39,10 @@
{% for member in memberships %}
- Hub avatar for {{ member.name }} - {{ member.name }} - {% if g.auth.username in member.owners %} + Hub avatar for {{ member.username }} + {{ member.username }} + {% if member.username in owners %}

Owner

{% else %}

Member

@@ -64,7 +64,7 @@