fix: Return NomComs, not Groups, from active_nomcoms filter (#5726)
* fix: Return NomComs, not Groups, from active_nomcoms filter * fix: deduplicate and order nomcoms in active_nomcoms filter
This commit is contained in:
parent
c12f810dd4
commit
3391166aaf
|
@ -2,7 +2,7 @@ from django import template
|
||||||
|
|
||||||
import debug # pyflakes:ignore
|
import debug # pyflakes:ignore
|
||||||
|
|
||||||
from ietf.group.models import Group
|
from ietf.nomcom.models import NomCom
|
||||||
|
|
||||||
register = template.Library()
|
register = template.Library()
|
||||||
|
|
||||||
|
@ -19,14 +19,15 @@ def active_nomcoms(user):
|
||||||
if not (user and hasattr(user, "is_authenticated") and user.is_authenticated):
|
if not (user and hasattr(user, "is_authenticated") and user.is_authenticated):
|
||||||
return []
|
return []
|
||||||
|
|
||||||
groups = []
|
return list(
|
||||||
|
NomCom.objects.filter(
|
||||||
groups.extend(Group.objects.filter(
|
group__role__person__user=user,
|
||||||
role__person__user=user,
|
group__type_id='nomcom', # just in case...
|
||||||
type_id='nomcom',
|
group__state__slug='active',
|
||||||
state__slug='active').distinct().select_related("type"))
|
)
|
||||||
|
.distinct()
|
||||||
return groups
|
.order_by("group__acronym")
|
||||||
|
)
|
||||||
|
|
||||||
@register.inclusion_tag('person/person_link.html')
|
@register.inclusion_tag('person/person_link.html')
|
||||||
def role_person_link(role, **kwargs):
|
def role_person_link(role, **kwargs):
|
||||||
|
|
|
@ -171,7 +171,7 @@
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if user|active_nomcoms %}
|
{% with user|active_nomcoms as nomcoms %}{% if nomcoms %}
|
||||||
{% if flavor == 'top' %}
|
{% if flavor == 'top' %}
|
||||||
<li><hr class="dropdown-divider">
|
<li><hr class="dropdown-divider">
|
||||||
</li>
|
</li>
|
||||||
|
@ -179,15 +179,15 @@
|
||||||
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
<li {% if flavor == 'top' %}class="dropdown-header"{% else %}class="nav-item fw-bolder"{% endif %}>
|
||||||
NomComs
|
NomComs
|
||||||
</li>
|
</li>
|
||||||
{% for g in user|active_nomcoms %}
|
{% for nomcom in nomcoms %}
|
||||||
<li>
|
<li>
|
||||||
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
<a class="dropdown-item {% if flavor != 'top' %}text-wrap link-primary{% endif %}"
|
||||||
href="{% url "ietf.nomcom.views.private_index" g.nomcom_set.first.year %}">
|
href="{% url "ietf.nomcom.views.private_index" nomcom.year %}">
|
||||||
{{ g.acronym|capfirst }}
|
{{ nomcom|capfirst }}
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}{% endwith %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if flavor == 'top' %}
|
{% if flavor == 'top' %}
|
||||||
<li><hr class="dropdown-divider">
|
<li><hr class="dropdown-divider">
|
||||||
|
|
Loading…
Reference in a new issue