From 4737208e61400c0b0eb48a23ab19fc2d1c74f6c6 Mon Sep 17 00:00:00 2001 From: Eric Barbour Date: Jul 26 2016 15:13:59 +0000 Subject: Configure user membership for user and groups * Add ellipsize of member/membership list --- diff --git a/hubs/widgets/memberships.py b/hubs/widgets/memberships.py index 8389657..48d8fea 100644 --- a/hubs/widgets/memberships.py +++ b/hubs/widgets/memberships.py @@ -5,20 +5,30 @@ from hubs.widgets.base import argument from hubs.widgets.chrome import panel from hubs.widgets import templating +ELLIPSIS_LIMIT = 3 chrome = panel('Hubs') template = templating.environment.get_template('templates/memberships.html') position = 'both' -@argument(name="username", - default=None, - validator=validators.username, - help="A FAS username.") -def data(session, widget, username, **kwargs): - user = hubs.models.User.by_username(session, username) - memberships = [m.__json__(session) for m in user.memberships - if m.name != user.username and not m.user_hub] - return dict(memberships=memberships) +def data(session, widget, **kwargs): + hub = widget.hub + members = [] + if hub.user_hub: + user = hubs.models.User.by_username(session, hub.name) + members = [m.__json__(session) for m in user.memberships + if m.name != user.username] + else: + members_name = [] + for member in widget.hub.members: + if member.username in members_name: + continue + members_name.append(member.username) + members.append(member.__json__(session)) + + oldest_members = sorted(members, + key=lambda m: m.get('created_on'))[:ELLIPSIS_LIMIT] + return dict(memberships=list(members), oldest_members=list(oldest_members)) @hint(topics=[_('hubs.hub.update')]) diff --git a/hubs/widgets/templates/memberships.html b/hubs/widgets/templates/memberships.html index 482d616..b489188 100644 --- a/hubs/widgets/templates/memberships.html +++ b/hubs/widgets/templates/memberships.html @@ -1,18 +1,69 @@ -{% for member in memberships %}
- Hub avatar for {{ member.name }} - {{ member.name }} - {% if g.auth.username in member.owners %} -

Owner

+ {% 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 %} +

Owner

+ {% else %} +

Member

+ {% endif %} +
+ {% endfor %} + View All {% else %} -

Member

- {% endif %} + {% for member in memberships %} +
+ Hub avatar for {{ member.name }} + {{ member.name }} + {% if g.auth.username in member.owners %} +

Owner

+ {% else %} +

Member

+ {% endif %} +
+ {% endfor %} + {%endif%} +
+ + + -{% endfor %}