Create prefilled PersonRef when drop of a Person on Association EmbeddedTab (same as ChildTab)

This commit is contained in:
Bastien Jacquet 2014-10-26 10:56:38 +01:00 committed by Nick Hall
parent 077be0c07e
commit ea3afbb35c

View File

@ -48,6 +48,7 @@ class PersonRefEmbedList(EmbeddedList):
_HANDLE_COL = 4 _HANDLE_COL = 4
_DND_TYPE = DdTargets.PERSONREF _DND_TYPE = DdTargets.PERSONREF
_DND_EXTRA = DdTargets.PERSON_LINK
_MSG = { _MSG = {
'add' : _('Create and add a new association'), 'add' : _('Create and add a new association'),
@ -127,3 +128,23 @@ class PersonRefEmbedList(EmbeddedList):
ref, self.add_callback) ref, self.add_callback)
except WindowActiveError: except WindowActiveError:
pass pass
def handle_extra_type(self, objtype, obj):
"""
Called when a person is dropped onto the list. objtype will be
'person-link' and obj will contain a person handle.
"""
person = self.dbstate.db.get_person_from_handle(obj)
from .. import EditPersonRef
try:
ref = PersonRef()
ref.rel = _('Unknown')
if person:
ref.ref = person.get_handle()
EditPersonRef(
self.dbstate, self.uistate, self.track,
ref, self.add_callback)
except WindowActiveError:
pass