Skip to content

Commit b57ad67

Browse files
committed
Updated code and templates to use the new docman and groupman group features.
- Legacy-Id: 15922
1 parent 237d0ed commit b57ad67

11 files changed

Lines changed: 63 additions & 38 deletions

File tree

ietf/doc/templatetags/managed_groups.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
# Copyright The IETF Trust 2016-2019, All Rights Reserved
2+
# -*- coding: utf-8 -*-
3+
from __future__ import unicode_literals
4+
15
from django import template
26

37
import debug # pyflakes:ignore
@@ -8,7 +12,18 @@
812
register = template.Library()
913

1014
@register.filter
11-
def managed_groups(user):
15+
def docman_groups(user):
16+
if not (user and hasattr(user, "is_authenticated") and user.is_authenticated):
17+
return []
18+
19+
groups = Group.objects.filter( role__person=user.person,
20+
type__features__has_documents=True,
21+
state__slug__in=('active', 'bof'))
22+
groups = group_features_group_filter(groups, user.person, 'docman_roles')
23+
return groups
24+
25+
@register.filter
26+
def matman_groups(user):
1227
if not (user and hasattr(user, "is_authenticated") and user.is_authenticated):
1328
return []
1429

ietf/doc/views_doc.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# Copyright The IETF Trust 2016-2018, All Rights Reserved
1+
# Copyright The IETF Trust 2016-2019, All Rights Reserved
22
# -*- coding: utf-8 -*-
33

44
# Parts Copyright (C) 2009-2010 Nokia Corporation and/or its subsidiary(-ies).
@@ -165,9 +165,10 @@ def document_main(request, name, rev=None):
165165
# which causes problems in the filter() below. Work around this:
166166
if request.user.is_authenticated:
167167
roles = Role.objects.filter(group__acronym__in=stream_slugs, person__user=request.user)
168-
roles = group_features_role_filter(roles, request.user.person, 'matman_roles')
168+
roles = group_features_role_filter(roles, request.user.person, 'docman_roles')
169169
else:
170170
roles = []
171+
171172
can_change_stream = bool(can_edit or roles)
172173
can_edit_iana_state = has_role(request.user, ("Secretariat", "IANA"))
173174

ietf/doc/views_draft.py

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Copyright The IETF Trust 2010-2019, All Rights Reserved
2+
# -*- coding: utf-8 -*-
23

34
# changing state and metadata on Internet Drafts
45

@@ -1312,21 +1313,25 @@ def __init__(self, *args, **kwargs):
13121313
if has_role(user, "Secretariat"):
13131314
state_types.update(['draft-stream-ietf','draft-stream-irtf'])
13141315
else:
1315-
if has_role(user, "IRTF Chair") or Group.objects.filter(type="rg", state="active", role__person__user=user, role__name__in=rg_features.matman_roles).exists():
1316+
if (has_role(user, "IRTF Chair")
1317+
or Group.objects.filter(type="rg",
1318+
state="active",
1319+
role__person__user=user,
1320+
role__name__in=rg_features.docman_roles).exists()):
13161321
state_types.add('draft-stream-irtf')
1317-
if Group.objects.filter(type="wg", state="active", role__person__user=user, role__name__in=wg_features.matman_roles).exists():
1322+
if Group.objects.filter( type="wg",
1323+
state="active",
1324+
role__person__user=user,
1325+
role__name__in=wg_features.docman_roles).exists():
13181326
state_types.add('draft-stream-ietf')
13191327

1320-
1321-
1322-
13231328
state_choices = State.objects.filter(type__in=state_types, used=True).exclude(slug__in=settings.GROUP_STATES_WITH_EXTRA_PROCESSING)
13241329

13251330
if not has_role(user, "Secretariat"):
13261331
if has_role(user, "IRTF Chair"):
1327-
group_queryset = self.fields["group"].queryset.filter(Q(role__person__user=user, role__name__in=rg_features.matman_roles)|Q(type="rg", state="active")).distinct()
1332+
group_queryset = self.fields["group"].queryset.filter(Q(role__person__user=user, role__name__in=rg_features.docman_roles)|Q(type="rg", state="active")).distinct()
13281333
else:
1329-
group_queryset = self.fields["group"].queryset.filter(role__person__user=user, role__name__in=wg_features.matman_roles).distinct()
1334+
group_queryset = self.fields["group"].queryset.filter(role__person__user=user, role__name__in=wg_features.docman_roles).distinct()
13301335
self.fields["group"].queryset = group_queryset
13311336

13321337
self.fields['group'].choices = [(g.pk, '%s - %s' % (g.acronym, g.name)) for g in self.fields["group"].queryset]

ietf/group/utils.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ def can_manage_materials(user, group):
131131
def can_provide_status_update(user, group):
132132
if not group.features.acts_like_wg:
133133
return False
134-
return has_role(user, 'Secretariat') or group.has_role(user, group.features.matman_roles)
134+
return has_role(user, 'Secretariat') or group.has_role(user, group.features.groupman_roles)
135135

136136
def get_group_or_404(acronym, group_type):
137137
"""Helper to overcome the schism between group-type prefixed URLs and generic."""

ietf/ietfauth/utils.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import debug # pyflakes:ignore
1515

16-
from ietf.group.models import Group, Role
16+
from ietf.group.models import Role, GroupFeatures
1717
from ietf.person.models import Person
1818

1919
def user_is_person(user, person):
@@ -136,20 +136,23 @@ def is_authorized_in_doc_stream(user, doc):
136136
if doc.stream.slug == "ietf" and doc.group.type_id == "individ":
137137
return False
138138

139-
matman_roles = doc.group.features.matman_roles
139+
docman_roles = doc.group.features.docman_roles
140140
if doc.stream.slug == "ietf":
141141
group_req = Q(group=doc.group)
142142
elif doc.stream.slug == "irtf":
143143
group_req = Q(group__acronym=doc.stream.slug) | Q(group=doc.group)
144-
elif doc.stream.slug in ("iab", "ise"):
144+
elif doc.stream.slug == "iab":
145+
if doc.group.type.slug == 'individ' or doc.group.acronym == 'iab':
146+
docman_roles = GroupFeatures.objects.get(type_id="iab").docman_roles
147+
group_req = Q(group__acronym=doc.stream.slug)
148+
elif doc.stream.slug == "ise":
145149
if doc.group.type.slug == 'individ':
146-
# A lot of special cases here, for stream slugs and group acronyms
147-
matman_roles = Group.objects.get(acronym=doc.stream.slug).features.matman_roles
150+
docman_roles = GroupFeatures.objects.get(type_id="ietf").docman_roles
148151
group_req = Q(group__acronym=doc.stream.slug)
149152
else:
150153
group_req = Q()
151154

152-
return Role.objects.filter(Q(name__in=matman_roles, person__user=user) & group_req).exists()
155+
return Role.objects.filter(Q(name__in=docman_roles, person__user=user) & group_req).exists()
153156

154157
def is_authorized_in_group(user, group):
155158
"""Return whether user is authorized to perform duties on
@@ -169,7 +172,7 @@ def is_authorized_in_group(user, group):
169172
if group.parent.acronym == 'iab' and has_role(user, ['IAB','IAB Executive Director',]):
170173
return True
171174

172-
return Role.objects.filter(name__in=group.features.matman_roles, person__user=user,group=group ).exists()
175+
return Role.objects.filter(name__in=group.features.groupman_roles, person__user=user,group=group ).exists()
173176

174177
def is_individual_draft_author(user, doc):
175178

ietf/submit/utils.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
# Copyright The IETF Trust 2011, All Rights Reserved
1+
# Copyright The IETF Trust 2011-2019, All Rights Reserved
2+
# -*- coding: utf-8 -*-
23

34
import os
45
import datetime
@@ -556,7 +557,7 @@ def preapprovals_for_user(user):
556557
if has_role(user, "Secretariat"):
557558
return res
558559

559-
acronyms = [g.acronym for g in Group.objects.filter(role__person__user=user, type__features__acts_like_wg=True)]
560+
acronyms = [g.acronym for g in Group.objects.filter(role__person__user=user, type__features__req_subm_approval=True)]
560561

561562
res = res.filter(name__regex="draft-[^-]+-(%s)-.*" % "|".join(acronyms))
562563

ietf/submit/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -512,10 +512,10 @@ def approvals(request):
512512

513513
@role_required("Secretariat", "Area Director", "WG Chair", "RG Chair")
514514
def add_preapproval(request):
515-
groups = Group.objects.filter(type__features__acts_like_wg=True).exclude(state__in=["conclude","bof-conc"]).order_by("acronym").distinct()
515+
groups = Group.objects.filter(type__features__req_subm_approval=True).exclude(state__in=["conclude","bof-conc"]).order_by("acronym").distinct()
516516

517517
if not has_role(request.user, "Secretariat"):
518-
groups = group_features_group_filter(groups, request.user.person, 'matman_roles')
518+
groups = group_features_group_filter(groups, request.user.person, 'docman_roles')
519519

520520
if request.method == "POST":
521521
form = PreapprovalForm(request.POST)

ietf/templates/base/menu.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %}
1+
{# Copyright The IETF Trust 2015-2019, All Rights Reserved #}{% load origin %}{% origin %}
22
{% load ietf_filters managed_groups wg_menu streams_menu active_groups_menu group_filters %}
33

44
{% if flavor != "top" %}
@@ -63,10 +63,10 @@
6363
<li {%if flavor == "top" %}class="dropdown-header hidden-xs"{% else %}class="nav-header"{% endif %}>WG chair</li>
6464
<li><a href="{% url "ietf.submit.views.approvals" %}">Approve a draft</a></li>
6565

66-
{% for g in user|managed_groups %}
66+
{% for g in user|docman_groups %}
6767
<li><a href="{% url "ietf.group.views.group_documents" g.acronym %}">{{ g.acronym }} {{ g.type.slug }} docs</a></li>
6868
{% endfor %}
69-
{% for g in user|managed_groups %}
69+
{% for g in user|matman_groups %}
7070
<li><a href="{% url "ietf.group.views.meetings" g.acronym %}">{{ g.acronym }} {{ g.type.slug }} meetings</a></li>
7171
{% endfor %}
7272
{% endif %}

ietf/templates/meeting/group_materials.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
{# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %}
1+
{# Copyright The IETF Trust 2015-2019, All Rights Reserved #}{% load origin %}{% origin %}
22
{% load ietf_filters proceedings_filters managed_groups %}
33
{% load tz %}
44
<tr>
@@ -19,7 +19,7 @@
1919
</td>
2020

2121
{% if session.status_id == 'canceled' %}
22-
{% if user|has_role:"Secretariat" or user|managed_groups %}
22+
{% if user|has_role:"Secretariat" or user|matman_groups %}
2323
<td colspan="6"><span class="label label-danger">Session cancelled</span></td>
2424
{% else %}
2525
<td colspan="5"><span class="label label-danger">Session cancelled</span></td>
@@ -88,7 +88,7 @@
8888
{{ session.last_update|utc|date:"Y-m-d" }}<br><small>{{ session.last_update|utc|date:"H:i:s" }}&nbsp;UTC</small>
8989
{% endif %}
9090
</td>
91-
{% if user|has_role:"Secretariat" or user|managed_groups %}
91+
{% if user|has_role:"Secretariat" or user|matman_groups %}
9292
<td>
9393
<div>{% include "meeting/edit_materials_button.html" %}</div>
9494
</td>

ietf/templates/meeting/materials.html

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{% extends "base.html" %}
2-
{# Copyright The IETF Trust 2015, All Rights Reserved #}
2+
{# Copyright The IETF Trust 2015-2019, All Rights Reserved #}
33
{% load origin %}
44

55
{% load ietf_filters staticfiles managed_groups %}
@@ -43,7 +43,7 @@ <h2 class="anchor-target" id="plenaries">Plenaries</h2>
4343
<table class="table table-condensed table-striped tablesorter">
4444
<thead>
4545
<tr>
46-
{% if user|has_role:"Secretariat" or user|managed_groups %}
46+
{% if user|has_role:"Secretariat" or user|matman_groups %}
4747
<th class="col-md-1">Group</th>
4848
<th class="col-md-1">Agenda</th>
4949
<th class="col-md-1">Minutes</th>
@@ -77,7 +77,7 @@ <h2 class="anchor-target" id="{{sessions.list.0.group.parent.acronym}}">{{sessio
7777
<table class="table table-condensed table-striped tablesorter">
7878
<thead>
7979
<tr>
80-
{% if user|has_role:"Secretariat" or user|managed_groups %}
80+
{% if user|has_role:"Secretariat" or user|matman_groups %}
8181
<th class="col-md-1">Group</th>
8282
<th class="col-md-1">Agenda</th>
8383
<th class="col-md-1">Minutes</th>
@@ -113,7 +113,7 @@ <h2 class="anchor-target" id="training">Training</h2>
113113
<table class="table table-condensed table-striped tablesorter">
114114
<thead>
115115
<tr>
116-
{% if user|has_role:"Secretariat" or user|managed_groups %}
116+
{% if user|has_role:"Secretariat" or user|matman_groups %}
117117
<th class="col-md-1">Group</th>
118118
<th class="col-md-1">Agenda</th>
119119
<th class="col-md-1">Minutes</th>
@@ -149,7 +149,7 @@ <h2 class="anchor-target" id="iab">IAB <small>Internet Architecture Board</small
149149
<table class="table table-condensed table-striped tablesorter">
150150
<thead>
151151
<tr>
152-
{% if user|has_role:"Secretariat" or user|managed_groups %}
152+
{% if user|has_role:"Secretariat" or user|matman_groups %}
153153
<th class="col-md-1">Group</th>
154154
<th class="col-md-1">Agenda</th>
155155
<th class="col-md-1">Minutes</th>
@@ -184,7 +184,7 @@ <h2 class="anchor-target" id="irtf">IRTF <small>Internet Research Task Force</sm
184184
<table class="table table-condensed table-striped tablesorter">
185185
<thead>
186186
<tr>
187-
{% if user|has_role:"Secretariat" or user|managed_groups %}
187+
{% if user|has_role:"Secretariat" or user|matman_groups %}
188188
<th class="col-md-1">Group</th>
189189
<th class="col-md-1">Agenda</th>
190190
<th class="col-md-1">Minutes</th>
@@ -218,7 +218,7 @@ <h2 class="anchor-target" id="other">Other <small>Miscellaneous other sessions</
218218
<table class="table table-condensed table-striped tablesorter">
219219
<thead>
220220
<tr>
221-
{% if user|has_role:"Secretariat" or user|managed_groups %}
221+
{% if user|has_role:"Secretariat" or user|matman_groups %}
222222
<th class="col-md-1">Group</th>
223223
<th class="col-md-1">Agenda</th>
224224
<th class="col-md-1">Minutes</th>

0 commit comments

Comments
 (0)