parent
7cd0f0b49a
commit
fb772fc7aa
39
ietf/nomcom/managers.py
Normal file
39
ietf/nomcom/managers.py
Normal file
|
@ -0,0 +1,39 @@
|
|||
from django.db import models
|
||||
from django.db.models.query import QuerySet
|
||||
|
||||
|
||||
class NomineePositionQuerySet(QuerySet):
|
||||
|
||||
def get_by_nomcom(self, nomcom):
|
||||
return self.filter(position__nomcom=nomcom)
|
||||
|
||||
def by_state(self, state):
|
||||
return self.filter(state=state)
|
||||
|
||||
def accepted(self):
|
||||
""" only accepted objects """
|
||||
return self.by_state('accepted')
|
||||
|
||||
def pending(self):
|
||||
""" only pending objects """
|
||||
return self.by_state('pending')
|
||||
|
||||
def declined(self):
|
||||
""" only draft objects """
|
||||
return self.by_state('declined')
|
||||
|
||||
|
||||
class NomineePositionManager(models.Manager):
|
||||
def get_query_set(self):
|
||||
return NomineePositionQuerySet(self.model)
|
||||
|
||||
def __getattr__(self, attr, *args):
|
||||
try:
|
||||
return getattr(self.__class__, attr, *args)
|
||||
except AttributeError:
|
||||
return getattr(self.get_query_set(), attr, *args)
|
||||
|
||||
|
||||
class NomineeManager(models.Manager):
|
||||
def get_by_nomcom(self, nomcom):
|
||||
return self.filter(nominee_position__nomcom=nomcom)
|
|
@ -12,6 +12,7 @@ from ietf.group.models import Group
|
|||
from ietf.name.models import NomineePositionState, FeedbackType
|
||||
from ietf.dbtemplate.models import DBTemplate
|
||||
|
||||
from ietf.nomcom.managers import NomineePositionManager, NomineeManager
|
||||
from ietf.nomcom.utils import (initialize_templates_for_group,
|
||||
initialize_questionnaire_for_position,
|
||||
initialize_requirements_for_position)
|
||||
|
@ -59,11 +60,6 @@ class Nomination(models.Model):
|
|||
return u"%s (%s)" % (self.candidate_name, self.candidate_email)
|
||||
|
||||
|
||||
class NomineeManager(models.Manager):
|
||||
def get_by_nomcom(self, nomcom):
|
||||
return self.filter(nominee_position__nomcom=nomcom)
|
||||
|
||||
|
||||
class Nominee(models.Model):
|
||||
|
||||
email = models.ForeignKey(Email)
|
||||
|
@ -79,11 +75,6 @@ class Nominee(models.Model):
|
|||
return u'%s' % self.email
|
||||
|
||||
|
||||
class NomineePositionManager(models.Manager):
|
||||
def get_by_nomcom(self, nomcom):
|
||||
return self.filter(position__nomcom=nomcom)
|
||||
|
||||
|
||||
class NomineePosition(models.Model):
|
||||
|
||||
position = models.ForeignKey('Position')
|
||||
|
|
|
@ -140,8 +140,7 @@ def send_reminder_mail(request, year):
|
|||
from_email = settings.NOMCOM_FROM_EMAIL
|
||||
for nominee in nominees:
|
||||
to_email = nominee.email.address
|
||||
positions = ', '.join([nominee_position.position.name for nominee_position in nominee.nomineeposition_set.all()
|
||||
if nominee_position.state.slug == "pending"])
|
||||
positions = ', '.join([nominee_position.position.name for nominee_position in nominee.nomineeposition_set.pending()])
|
||||
context = {'positions': positions}
|
||||
send_mail(None, to_email, from_email, subject, mail_path, context)
|
||||
message = ('success', 'An query has been sent to each person, asking them to accept (or decline) the nominations')
|
||||
|
|
Loading…
Reference in a new issue