Do not create CommunityLists when rendering the side bar, only render

the links
 - Legacy-Id: 10668
This commit is contained in:
Ole Laursen 2016-01-13 10:47:36 +00:00
parent e807115e81
commit 1e75ee3d11
4 changed files with 37 additions and 19 deletions

View file

@ -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:

View file

@ -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 = []

View 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

View file

@ -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" %}