Skip to content

Commit ae2b0e2

Browse files
committed
Remove use of group proxies from liaisons app, move proxy_personify_role into liaisons for the time being
- Legacy-Id: 6825
1 parent 54464e6 commit ae2b0e2

2 files changed

Lines changed: 17 additions & 13 deletions

File tree

ietf/liaisons/accounts.py

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,12 @@
11
from ietf.person.models import Person
22
from ietf.group.models import Role
3-
from ietf.utils.proxy import proxy_personify_role
3+
4+
def proxy_personify_role(role):
5+
"""Return person from role with an old-school email() method using
6+
email from role."""
7+
p = role.person
8+
p.email = lambda: (p.plain_name(), role.email.address)
9+
return p
410

511
LIAISON_EDIT_GROUPS = ['Secretariat'] # this is not working anymore, refers to old auth model
612

ietf/liaisons/utils.py

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,11 +4,10 @@
44
from ietf.person.models import Person
55
from ietf.liaisons.models import LiaisonStatement
66
from ietf.ietfauth.utils import has_role, passes_test_decorator
7-
from ietf.utils.proxy import proxy_personify_role
87

98
from ietf.liaisons.accounts import (is_ietfchair, is_iabchair, is_iab_executive_director,
109
get_ietf_chair, get_iab_chair, get_iab_executive_director,
11-
is_secretariat, can_add_liaison, get_person_for_user)
10+
is_secretariat, can_add_liaison, get_person_for_user, proxy_personify_role)
1211

1312
can_submit_liaison_required = passes_test_decorator(
1413
lambda u, *args, **kwargs: can_add_liaison(u),
@@ -246,14 +245,15 @@ def get_cc(self, person=None):
246245

247246
def get_from_cc(self, person):
248247
result = [p for p in role_persons_with_fixed_email(self.obj, "chair") if p != person]
249-
result += role_persons_with_fixed_email(self.obj.parent, "ad") if self.obj.parent else []
248+
if self.obj.parent:
249+
result += role_persons_with_fixed_email(self.obj.parent, "ad")
250250
if self.obj.list_subscribe:
251251
result.append(FakePerson(name ='%s Discussion List' % self.obj.name,
252252
address = self.obj.list_subscribe))
253253
return result
254254

255255
def needs_approval(self, person=None):
256-
# Check if person is director of this wg area
256+
# Check if person is AD of area
257257
if self.obj.parent and self.obj.parent.role_set.filter(person=person, name="ad"):
258258
return False
259259
return True
@@ -399,14 +399,13 @@ class AreaEntityManager(EntityManager):
399399

400400
def __init__(self, pk=None, name=None, queryset=None):
401401
super(AreaEntityManager, self).__init__(pk, name, queryset)
402-
from ietf.group.proxy import Area
403402
if self.queryset == None:
404-
self.queryset = Area.active_areas()
403+
self.queryset = Group.objects.filter(type="area", state="active")
405404

406405
def get_managed_list(self, query_filter=None):
407406
if not query_filter:
408407
query_filter = {}
409-
return [(u'%s_%s' % (self.pk, i.pk), i.area_acronym.name) for i in self.queryset.filter(**query_filter).order_by('area_acronym__name')]
408+
return [(u'%s_%s' % (self.pk, i.pk), i.name) for i in self.queryset.filter(**query_filter).order_by('name')]
410409

411410
def get_entity(self, pk=None):
412411
if not pk:
@@ -415,7 +414,7 @@ def get_entity(self, pk=None):
415414
obj = self.queryset.get(pk=pk)
416415
except self.queryset.model.DoesNotExist:
417416
return None
418-
return AreaEntity(name=obj.area_acronym.name, obj=obj)
417+
return AreaEntity(name=obj.name, obj=obj)
419418

420419
def can_send_on_behalf(self, person):
421420
query_filter = dict(role__person=person, role__name="ad")
@@ -431,13 +430,12 @@ class WGEntityManager(EntityManager):
431430
def __init__(self, pk=None, name=None, queryset=None):
432431
super(WGEntityManager, self).__init__(pk, name, queryset)
433432
if self.queryset == None:
434-
from ietf.group.proxy import IETFWG, Area
435-
self.queryset = IETFWG.objects.filter(group_type=1, status=IETFWG.ACTIVE, areagroup__area__status=Area.ACTIVE)
433+
self.queryset = Group.objects.filter(type="wg", state="active", parent__state="active").select_related("parent")
436434

437435
def get_managed_list(self, query_filter=None):
438436
if not query_filter:
439437
query_filter = {}
440-
return [(u'%s_%s' % (self.pk, i.pk), '%s - %s' % (i.group_acronym.acronym, i.group_acronym.name)) for i in self.queryset.filter(**query_filter).order_by('group_acronym__acronym')]
438+
return [(u'%s_%s' % (self.pk, i.pk), '%s - %s' % (i.acronym, i.name)) for i in self.queryset.filter(**query_filter).order_by('acronym')]
441439

442440
def get_entity(self, pk=None):
443441
if not pk:
@@ -446,7 +444,7 @@ def get_entity(self, pk=None):
446444
obj = self.queryset.get(pk=pk)
447445
except self.queryset.model.DoesNotExist:
448446
return None
449-
return WGEntity(name=obj.group_acronym.name, obj=obj)
447+
return WGEntity(name=obj.name, obj=obj)
450448

451449
def can_send_on_behalf(self, person):
452450
wgs = Group.objects.filter(role__person=person, role__name__in=("chair", "secretary")).values_list('pk', flat=True)

0 commit comments

Comments
 (0)