2020from ietf .ietfworkflows .constants import CALL_FOR_ADOPTION , IETF_STREAM
2121from redesign .doc .utils import get_tags_for_stream_id
2222from redesign .doc .models import save_document_in_history , DocEvent , Document
23- from redesign .name .models import DocTagName , DocStreamName
24- from redesign .group .models import Group , GroupStateTransitions
23+ from redesign .name .models import DocTagName , DocStreamName , RoleName
24+ from redesign .group .models import Group , GroupStateTransitions , Role
25+ from redesign .person .models import Person , Email
2526
2627class StreamDraftForm (forms .Form ):
2728
@@ -333,7 +334,10 @@ def __init__(self, *args, **kwargs):
333334 super (StreamDelegatesForm , self ).__init__ (* args , ** kwargs )
334335
335336 def get_person (self , email ):
336- persons = PersonOrOrgInfo .objects .filter (emailaddress__address = email ).distinct ()
337+ if settings .USE_DB_REDESIGN_PROXY_CLASSES :
338+ persons = Person .objects .filter (email__address = email ).distinct ()
339+ else :
340+ persons = PersonOrOrgInfo .objects .filter (emailaddress__address = email ).distinct ()
337341 if not persons :
338342 return None
339343 return persons [0 ]
@@ -343,8 +347,17 @@ def clean_email(self):
343347 self .person = self .get_person (email )
344348 if not self .person :
345349 raise forms .ValidationError ('There is no user with this email in the system' )
350+ return email
346351
347352 def save (self ):
353+ if settings .USE_DB_REDESIGN_PROXY_CLASSES :
354+ # FIXME: should save group history here
355+ Role .objects .get_or_create (person = self .person ,
356+ group = Group .objects .get (acronym = self .stream .slug ),
357+ name = RoleName .objects .get (slug = "delegate" ),
358+ email = Email .objects .get (address = self .cleaned_data .get ('email' )))
359+ return
360+
348361 StreamDelegate .objects .get_or_create (
349362 person = self .person ,
350363 stream = self .stream )
0 commit comments