Removed 'Liaison Manager' group dependencies.

Allow an SDO Liason Manager to send outgoing liaison from any IETF Entity to his SDO. See #577
 - Legacy-Id: 2783
This commit is contained in:
Emilio A. Sánchez López 2011-02-01 16:34:10 +00:00
parent f0772cf415
commit 336cf4cb84
2 changed files with 15 additions and 10 deletions

View file

@ -1,7 +1,7 @@
from ietf.idtracker.models import Role, PersonOrOrgInfo
LIAISON_EDIT_GROUPS = ['Liaison_Manager', 'Secretariat']
LIAISON_EDIT_GROUPS = ['Secretariat']
def get_ietf_chair():
person = PersonOrOrgInfo.objects.filter(role=Role.IETF_CHAIR)
@ -65,7 +65,7 @@ def can_add_outgoing_liaison(user):
if (is_areadirector(person) or is_wgchair(person) or
is_wgsecretary(person) or is_ietfchair(person) or
is_iabchair(person) or is_iab_executive_director(person) or
is_ietf_liaison_manager(user)):
is_sdo_liaison_manager(person) or is_secretariat(user)):
return True
return False
@ -78,8 +78,8 @@ def is_sdo_authorized_individual(person):
return bool(person.sdoauthorizedindividual_set.all())
def is_ietf_liaison_manager(user):
return bool(user.groups.filter(name='Liaison_Manager'))
def is_secretariat(user):
return bool(user.groups.filter(name='Secretariat'))
def can_add_incoming_liaison(user):
@ -89,7 +89,7 @@ def can_add_incoming_liaison(user):
if (is_sdo_liaison_manager(person) or
is_sdo_authorized_individual(person) or
is_ietf_liaison_manager(user)):
is_secretariat(user)):
return True
return False

View file

@ -9,7 +9,7 @@ from django.forms.fields import email_re
from django.template.loader import render_to_string
from ietf.liaisons.accounts import (can_add_outgoing_liaison, can_add_incoming_liaison,
get_person_for_user, is_ietf_liaison_manager)
get_person_for_user, is_secretariat, is_sdo_liaison_manager)
from ietf.liaisons.models import LiaisonDetail, Uploads, OutgoingLiaisonApproval, SDOs
from ietf.liaisons.utils import IETFHM
from ietf.liaisons.widgets import (FromWidget, ReadOnlyWidget, ButtonWidget,
@ -228,7 +228,7 @@ class LiaisonForm(forms.ModelForm):
class IncomingLiaisonForm(LiaisonForm):
def set_from_field(self):
if is_ietf_liaison_manager(self.user):
if is_secretariat(self.user):
sdos = SDOs.objects.all()
else:
sdo_managed = [i.sdo for i in self.person.liaisonmanagers_set.all()]
@ -241,7 +241,8 @@ class IncomingLiaisonForm(LiaisonForm):
self.fields['organization'].choices = self.hm.get_all_incoming_entities()
def get_post_only(self):
if self.user.groups.filter(name='Liaison_Manager'):
from_entity = self.get_from_entity()
if self.person.liaisonmanagers_set.filter(sdo=from_entity.obj):
return True
return False
@ -265,7 +266,7 @@ class OutgoingLiaisonForm(LiaisonForm):
return organization
def set_from_field(self):
if is_ietf_liaison_manager(self.user):
if is_secretariat(self.user) or is_sdo_liaison_manager(self.person):
self.fields['from_field'].choices = self.hm.get_all_incoming_entities()
else:
self.fields['from_field'].choices = self.hm.get_entities_for_person(self.person)
@ -273,7 +274,11 @@ class OutgoingLiaisonForm(LiaisonForm):
self.fieldsets[0] = ('From', ('from_field', 'replyto', 'approved'))
def set_organization_field(self):
self.fields['organization'].choices = self.hm.get_all_outgoing_entities()
if is_sdo_liaison_manager(self.person):
sdos = [i.sdo for i in self.person.liaisonmanagers_set.all().distinct()]
self.fields['organization'].choices = [('sdo_%s' % i.pk, i.sdo_name) for i in sdos]
else:
self.fields['organization'].choices = self.hm.get_all_outgoing_entities()
self.fieldsets[1] = ('To', ('organization', 'other_organization', 'to_poc'))
def set_required_fields(self):