Fix error in Msg manager search

This commit is contained in:
Griatch 2021-05-10 22:20:30 +02:00
parent dfb45d3fcc
commit 62fdfe0c16
3 changed files with 15 additions and 10 deletions

View file

@ -248,25 +248,29 @@ class MsgManager(TypedObjectManager):
# refining with multiple filter:s. Django Note: Q objects can be
# combined with & and | (=AND,OR). ~ negates the queryset
# filter by sender
# filter by sender (we need __pk to avoid an error with empty Q() objects)
sender, styp = identify_object(sender)
if sender:
spk = sender.pk
if styp == "account":
sender_restrict = Q(db_sender_accounts=sender) & ~Q(db_hide_from_accounts=sender)
sender_restrict = Q(db_sender_accounts__pk=spk) & ~Q(db_hide_from_accounts__pk=spk)
elif styp == "object":
sender_restrict = Q(db_sender_objects=sender) & ~Q(db_hide_from_objects=sender)
sender_restrict = Q(db_sender_objects__pk=spk) & ~Q(db_hide_from_objects__pk=spk)
elif styp == 'script':
sender_restrict = Q(db_sender_scripts=sender)
sender_restrict = Q(db_sender_scripts__pk=spk)
else:
sender_restrict = Q()
# filter by receiver
receiver, rtyp = identify_object(receiver)
if receiver:
rpk = receiver.pk
if rtyp == "account":
receiver_restrict = (
Q(db_receivers_accounts=receiver) & ~Q(db_hide_from_accounts=receiver ))
Q(db_receivers_accounts__pk=rpk) & ~Q(db_hide_from_accounts__pk=rpk))
elif rtyp == "object":
receiver_restrict = Q(db_receivers_objects=receiver) & ~Q(db_hide_from_objects=receiver)
receiver_restrict = Q(db_receivers_objects__pk=rpk) & ~Q(db_hide_from_objects__pk=rpk)
elif rtyp == 'script':
receiver_restrict = Q(db_receivers_scripts=receiver)
receiver_restrict = Q(db_receivers_scripts__pk=rpk)
elif rtyp == "channel":
raise DeprecationWarning(
"Msg.objects.search don't accept channel recipients since "

View file

@ -6,7 +6,7 @@ from evennia.utils.utils import crop
from evennia.utils import validatorfuncs
class BaseOption(object):
class BaseOption:
"""
Abstract Class to deal with encapsulating individual Options. An Option has
a name/key, a description to display in relevant commands and menus, and a

View file

@ -5,7 +5,7 @@ _GA = object.__getattribute__
_SA = object.__setattr__
class InMemorySaveHandler(object):
class InMemorySaveHandler:
"""
Fallback SaveHandler, implementing a minimum of the required save mechanism
and storing data in memory.
@ -22,7 +22,7 @@ class InMemorySaveHandler(object):
return self.storage.get(key, default)
class OptionHandler(object):
class OptionHandler:
"""
This is a generic Option handler. Retrieve options either as properties on
this handler or by using the .get method.
@ -57,6 +57,7 @@ class OptionHandler(object):
A common one to pass would be AttributeHandler.get.
save_kwargs (any): Optional extra kwargs to pass into `savefunc` above.
load_kwargs (any): Optional extra kwargs to pass into `loadfunc` above.
Notes:
Both loadfunc and savefunc must be specified. If only one is given, the other
will be ignored and in-memory storage will be used.