Skip to content

Commit dc20598

Browse files
committed
Show whether a person is nomcom eligible on their edit_profile page. Related to ietf-tools#2257 and ietf-tools#2323. Commit ready for merge.
- Legacy-Id: 14086
1 parent e5f10bf commit dc20598

5 files changed

Lines changed: 42 additions & 1 deletion

File tree

ietf/ietfauth/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,7 @@ def profile(request):
278278
'roles': roles,
279279
'emails': emails,
280280
'new_email_forms': new_email_forms,
281+
'settings':settings,
281282
})
282283

283284
def confirm_new_email(request, auth):

ietf/person/templatetags/__init__.py

Whitespace-only changes.
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Copyright The IETF Trust 2007, All Rights Reserved
2+
3+
import datetime
4+
5+
from django import template
6+
7+
import debug # pyflakes:ignore
8+
9+
from ietf.person.utils import is_nomcom_eligible as util_is_nomcom_eligible
10+
11+
register = template.Library()
12+
13+
@register.filter
14+
def is_nomcom_eligible(person, date=datetime.date.today()):
15+
return util_is_nomcom_eligible(person,date)
16+

ietf/person/utils.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,9 @@
1111
import debug # pyflakes:ignore
1212

1313
from ietf.nomcom.models import Nominee
14-
from ietf.person.models import Person
14+
from ietf.person.models import Person, Email
1515
from ietf.utils.mail import send_mail
16+
from ietf.meeting.models import Meeting
1617

1718
def merge_persons(source, target, file=sys.stdout, verbose=False):
1819
changes = []
@@ -181,3 +182,18 @@ def determine_merge_order(source,target):
181182
if source.user and target.user:
182183
source,target = sorted([source,target],key=lambda a: a.user.last_login if a.user.last_login else datetime.datetime.min)
183184
return source,target
185+
186+
def attended_ietf_meetings(person):
187+
return Meeting.objects.filter(type='ietf',meetingregistration__email__in=Email.objects.filter(person=person).values_list('address',flat=True))
188+
189+
def attended_in_last_five_ietf_meetings(person, date=datetime.datetime.today()):
190+
previous_five = Meeting.objects.filter(type='ietf',date__lte=date).order_by('-date')[:5]
191+
attended = attended_ietf_meetings(person)
192+
return set(previous_five).intersection(attended)
193+
194+
def is_nomcom_eligible(person, date=datetime.date.today()):
195+
attended = attended_in_last_five_ietf_meetings(person, date)
196+
is_iesg = person.role_set.filter(group__type_id='area',group__state='active',name_id='ad').exists()
197+
is_iab = person.role_set.filter(group__acronym='iab',name_id__in=['member','chair']).exists()
198+
is_iaoc = person.role_set.filter(group__acronym='iaoc',name_id__in=['member','chair']).exists()
199+
return len(attended)>=3 and not (is_iesg or is_iab or is_iaoc)

ietf/templates/registration/edit_profile.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
{% load widget_tweaks bootstrap3 %}
66

7+
{% load person_filters %}
8+
79
{% block title %}Profile for {{ user }}{% endblock %}
810

911
{% block content %}
@@ -29,6 +31,12 @@ <h1>Profile for {{ user.username }}</h1>
2931
</div>
3032
</div>
3133

34+
<div class="form-group">
35+
<label class="col-sm-2 control-label">Nomcom Eligible</label>
36+
<div class="col-sm-1 form-control-static">{{person|is_nomcom_eligible|yesno:'Yes,No,No'}}</div>
37+
<div class="col-sm-9 alert alert-info form-control-static">This calculation is EXPERIMENTAL.<br/>If you believe it is incorrect, make sure you've added all the email addresses you've registered for IETF meetings with to the list below.<br/>If you've done so and the calculation is still incorrect, please send a note to <a href="{{settings.SECRETARIAT_TICKET_EMAIL}}">{{settings.SECRETARIAT_TICKET_EMAIL}}</a>.<br/>See <a href="{% url 'ietf.doc.views_doc.document_main' name='rfc3777' %}">RFC 3777</a> for eligibility requirements.</div>
38+
</div>
39+
3240
<div class="form-group">
3341
<label class="col-sm-2 control-label">Email addresses</label>
3442
<div class="col-sm-10">

0 commit comments

Comments
 (0)