User.get_or_create: propagate obj into existing user

pull/968/head
Ryan Barrett 2024-04-19 12:49:06 -07:00
rodzic 20e061f476
commit 1981c8eba8
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
1 zmienionych plików z 10 dodań i 7 usunięć

Wyświetl plik

@ -229,13 +229,16 @@ class User(StringIdModel, metaclass=ProtocolUserMeta):
if user.status == 'opt-out':
return None
user.existing = True
# override direct from False => True if set
# TODO: propagate more props into user?
direct = kwargs.get('direct')
if direct and not user.direct:
logger.info(f'Setting {user.key} direct={direct}')
user.direct = direct
user.put()
# TODO: propagate more fields?
for field in ['direct', 'obj', 'obj_key']:
old_val = getattr(user, field, None)
new_val = kwargs.get(field)
if ((old_val is None and new_val is not None)
or (field == 'direct' and not old_val and new_val)):
setattr(user, field, new_val)
user.put()
if not propagate:
return user
else: