Show whether a person is nomcom eligible on their edit_profile page. Related to #2257 and #2323. Commit ready for merge.
- Legacy-Id: 14086
This commit is contained in:
parent
e5f10bfee9
commit
dc20598999
|
@ -278,6 +278,7 @@ def profile(request):
|
|||
'roles': roles,
|
||||
'emails': emails,
|
||||
'new_email_forms': new_email_forms,
|
||||
'settings':settings,
|
||||
})
|
||||
|
||||
def confirm_new_email(request, auth):
|
||||
|
|
0
ietf/person/templatetags/__init__.py
Normal file
0
ietf/person/templatetags/__init__.py
Normal file
16
ietf/person/templatetags/person_filters.py
Normal file
16
ietf/person/templatetags/person_filters.py
Normal file
|
@ -0,0 +1,16 @@
|
|||
# Copyright The IETF Trust 2007, All Rights Reserved
|
||||
|
||||
import datetime
|
||||
|
||||
from django import template
|
||||
|
||||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.person.utils import is_nomcom_eligible as util_is_nomcom_eligible
|
||||
|
||||
register = template.Library()
|
||||
|
||||
@register.filter
|
||||
def is_nomcom_eligible(person, date=datetime.date.today()):
|
||||
return util_is_nomcom_eligible(person,date)
|
||||
|
|
@ -11,8 +11,9 @@ from django.contrib.auth.models import User
|
|||
import debug # pyflakes:ignore
|
||||
|
||||
from ietf.nomcom.models import Nominee
|
||||
from ietf.person.models import Person
|
||||
from ietf.person.models import Person, Email
|
||||
from ietf.utils.mail import send_mail
|
||||
from ietf.meeting.models import Meeting
|
||||
|
||||
def merge_persons(source, target, file=sys.stdout, verbose=False):
|
||||
changes = []
|
||||
|
@ -181,3 +182,18 @@ def determine_merge_order(source,target):
|
|||
if source.user and target.user:
|
||||
source,target = sorted([source,target],key=lambda a: a.user.last_login if a.user.last_login else datetime.datetime.min)
|
||||
return source,target
|
||||
|
||||
def attended_ietf_meetings(person):
|
||||
return Meeting.objects.filter(type='ietf',meetingregistration__email__in=Email.objects.filter(person=person).values_list('address',flat=True))
|
||||
|
||||
def attended_in_last_five_ietf_meetings(person, date=datetime.datetime.today()):
|
||||
previous_five = Meeting.objects.filter(type='ietf',date__lte=date).order_by('-date')[:5]
|
||||
attended = attended_ietf_meetings(person)
|
||||
return set(previous_five).intersection(attended)
|
||||
|
||||
def is_nomcom_eligible(person, date=datetime.date.today()):
|
||||
attended = attended_in_last_five_ietf_meetings(person, date)
|
||||
is_iesg = person.role_set.filter(group__type_id='area',group__state='active',name_id='ad').exists()
|
||||
is_iab = person.role_set.filter(group__acronym='iab',name_id__in=['member','chair']).exists()
|
||||
is_iaoc = person.role_set.filter(group__acronym='iaoc',name_id__in=['member','chair']).exists()
|
||||
return len(attended)>=3 and not (is_iesg or is_iab or is_iaoc)
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
|
||||
{% load widget_tweaks bootstrap3 %}
|
||||
|
||||
{% load person_filters %}
|
||||
|
||||
{% block title %}Profile for {{ user }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
@ -29,6 +31,12 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Nomcom Eligible</label>
|
||||
<div class="col-sm-1 form-control-static">{{person|is_nomcom_eligible|yesno:'Yes,No,No'}}</div>
|
||||
<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>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Email addresses</label>
|
||||
<div class="col-sm-10">
|
||||
|
|
Loading…
Reference in a new issue