diff --git a/ietf/community/models.py b/ietf/community/models.py index a644a18fc..38de908cb 100644 --- a/ietf/community/models.py +++ b/ietf/community/models.py @@ -39,12 +39,6 @@ class CommunityList(models.Model): return bool(Role.objects.filter(name__slug='chair', email__in=person.email_set.all(), group=self.group).count()) return False - def short_name(self): - if self.user: - return 'mine' - else: - return '%s' % self.group.acronym - def long_name(self): if self.user: return 'Personal ID list of %s' % self.user.username @@ -124,13 +118,11 @@ class Rule(models.Model): cached_ids = models.ManyToManyField(Document) rule_type = models.CharField(max_length=30, choices=TYPES_OF_RULES) value = models.CharField(max_length=255) + last_updated = models.DateTimeField(auto_now=True) class Meta: unique_together= ("community_list", "rule_type", "value") - last_updated = models.DateTimeField( - auto_now=True) - def get_callable_rule(self): for i in RuleManager.__subclasses__(): if i.codename == self.rule_type: diff --git a/ietf/community/templatetags/community_tags.py b/ietf/community/templatetags/community_tags.py index c88e6b289..ee1ab0099 100644 --- a/ietf/community/templatetags/community_tags.py +++ b/ietf/community/templatetags/community_tags.py @@ -9,10 +9,10 @@ from ietf.group.models import Role register = template.Library() @register.assignment_tag -def get_user_managed_lists(user): +def community_lists_for_user(user): if not (user and hasattr(user, "is_authenticated") and user.is_authenticated()): - return '' - lists = {'personal': CommunityList.objects.get_or_create(user=user)[0]} + return {} + try: person = user.person groups = [] diff --git a/ietf/doc/templatetags/managed_groups.py b/ietf/doc/templatetags/managed_groups.py new file mode 100644 index 000000000..ecc673c4c --- /dev/null +++ b/ietf/doc/templatetags/managed_groups.py @@ -0,0 +1,26 @@ +from django import template + +from ietf.group.models import Group + +register = template.Library() + +@register.filter +def managed_groups(user): + if not (user and hasattr(user, "is_authenticated") and user.is_authenticated()): + return [] + + groups = [] + groups.extend(Group.objects.filter( + role__name__slug='ad', + role__person__user=user, + type__slug='area', + state__slug='active').select_related("type")) + + groups.extend(Group.objects.filter( + role__name__slug='chair', + role__person__user=user, + type__slug__in=('rg', 'wg'), + state__slug__in=('active', 'bof')).select_related("type")) + + return groups + diff --git a/ietf/templates/base/menu.html b/ietf/templates/base/menu.html index d79f92a26..856114b25 100644 --- a/ietf/templates/base/menu.html +++ b/ietf/templates/base/menu.html @@ -1,5 +1,5 @@ {# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %} -{% load ietf_filters community_tags wg_menu streams_menu active_groups_menu %} +{% load ietf_filters managed_groups wg_menu streams_menu active_groups_menu %} {% if flavor != "top" %} {% include "base/menu_user.html" %} @@ -51,14 +51,14 @@