From 31daf5b013e1cfc856ec8dc4f80fbaa75ebdab66 Mon Sep 17 00:00:00 2001 From: Griatch Date: Sun, 14 Oct 2012 13:25:25 +0200 Subject: [PATCH] Added an extra check to make sure the 'candidates' keyword to ev.search_object always contain proper dbobjs and not typeclasses. Resolves Issue 280. --- src/objects/manager.py | 4 ++++ src/scripts/manager.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/objects/manager.py b/src/objects/manager.py index 16dda2d62b..8da54273a0 100644 --- a/src/objects/manager.py +++ b/src/objects/manager.py @@ -273,6 +273,10 @@ class ObjectManager(TypedObjectManager): if dbref_match: return [dbref_match] + # Convenience check to make sure candidates are really dbobjs + if candidates: + candidates = [cand.dbobj for cand in make_iter(candidates) if hasattr(cand, "dbobj")] + # Search through all possibilities. match_number = None diff --git a/src/scripts/manager.py b/src/scripts/manager.py index b7922b6c25..1c4e0ae19c 100644 --- a/src/scripts/manager.py +++ b/src/scripts/manager.py @@ -202,6 +202,10 @@ class ScriptManager(TypedObjectManager): ok = False if ok: return [dbref_match] + if obj: + # convenience check to make sure obj is really a dbobj + obj = hasattr(obj, "dbobj") and obj.dbobj or obj + # not a dbref; normal search scripts = self.filter(db_key__iexact=ostring)