From 336cf4cb84bbcd501eb0263f8914488ea252a090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20A=2E=20S=C3=A1nchez=20L=C3=B3pez?= Date: Tue, 1 Feb 2011 16:34:10 +0000 Subject: [PATCH] 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 --- ietf/liaisons/accounts.py | 10 +++++----- ietf/liaisons/forms.py | 15 ++++++++++----- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/ietf/liaisons/accounts.py b/ietf/liaisons/accounts.py index 1c985a92c..28b61e8a0 100644 --- a/ietf/liaisons/accounts.py +++ b/ietf/liaisons/accounts.py @@ -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 diff --git a/ietf/liaisons/forms.py b/ietf/liaisons/forms.py index 6d3151d80..b7792819d 100644 --- a/ietf/liaisons/forms.py +++ b/ietf/liaisons/forms.py @@ -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):