Do not create CommunityLists when rendering the side bar, only render
the links - Legacy-Id: 10668
This commit is contained in:
parent
e807115e81
commit
1e75ee3d11
|
@ -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:
|
||||
|
|
|
@ -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 = []
|
||||
|
|
26
ietf/doc/templatetags/managed_groups.py
Normal file
26
ietf/doc/templatetags/managed_groups.py
Normal file
|
@ -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
|
||||
|
|
@ -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 @@
|
|||
<li><a href="{% url "submit_approvals" %}">Approve a draft</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% get_user_managed_lists user as community_lists %}
|
||||
{% if community_lists %}
|
||||
<li><a href="{{ community_lists.personal.get_manage_url }}">My tracked docs</a></li>
|
||||
{% for cl in community_lists.group %}
|
||||
<li><a href="{{ cl.get_manage_url }}">{{ cl.short_name }} {{cl.group.type.slug}} docs</a></li>
|
||||
{% if user and user.is_authenticated %}
|
||||
<li><a href="{% url "manage_personal_list" %}">My tracked docs</a></li>
|
||||
|
||||
{% for g in user|managed_groups %}
|
||||
<li><a href="{% url "manage_group_list" g.acronym %}">{{ g.acronym }} {{ g.type.slug }} docs</a></li>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<li><a rel="nofollow" href="/accounts/login/?next={{request.get_full_path|urlencode}}">Sign in to track docs</a></li>
|
||||
<li><a rel="nofollow" href="/accounts/login/?next={{ request.get_full_path|urlencode }}">Sign in to track docs</a></li>
|
||||
{% endif %}
|
||||
|
||||
{% if user|has_role:"Area Director,Secretariat" %}
|
||||
|
|
Loading…
Reference in a new issue