Merge pull request #1571 from chainsol/fix_#1570

Change if statement in comms/models.py to fix #1570
This commit is contained in:
Griatch 2018-02-14 21:06:58 +01:00 committed by GitHub
commit 7531e03064
2 changed files with 10 additions and 4 deletions

View file

@ -584,9 +584,7 @@ class SubscriptionHandler(object):
for obj in self.all(): for obj in self.all():
from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ObjectDoesNotExist
try: try:
if hasattr(obj, 'account'): if hasattr(obj, 'account') and obj.account:
if not obj.account:
continue
obj = obj.account obj = obj.account
if not obj.is_connected: if not obj.is_connected:
continue continue

View file

@ -206,6 +206,14 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)):
def sessions(self): def sessions(self):
return ObjectSessionHandler(self) return ObjectSessionHandler(self)
@property
def is_connected(self):
# we get an error for objects subscribed to channels without this
if self.account: # seems sane to pass on the account
return self.account.is_connected
else:
return False
@property @property
def has_account(self): def has_account(self):
""" """
@ -519,6 +527,7 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)):
obj.at_msg_send(text=text, to_obj=self, **kwargs) obj.at_msg_send(text=text, to_obj=self, **kwargs)
except Exception: except Exception:
logger.log_trace() logger.log_trace()
kwargs["options"] = options
try: try:
if not self.at_msg_receive(text=text, **kwargs): if not self.at_msg_receive(text=text, **kwargs):
# if at_msg_receive returns false, we abort message to this object # if at_msg_receive returns false, we abort message to this object
@ -526,7 +535,6 @@ class DefaultObject(with_metaclass(TypeclassBase, ObjectDB)):
except Exception: except Exception:
logger.log_trace() logger.log_trace()
kwargs["options"] = options
if text and not (isinstance(text, basestring) or isinstance(text, tuple)): if text and not (isinstance(text, basestring) or isinstance(text, tuple)):
# sanitize text before sending across the wire # sanitize text before sending across the wire