Reverts previous commit and introduces better way to filter ships

This commit is contained in:
blitzmann
2014-02-17 23:29:02 -05:00
parent 4095365518
commit 48963167fe
2 changed files with 7 additions and 7 deletions

View File

@@ -181,8 +181,7 @@ def getItemsByCategory(filter, where=None, eager=None):
return gamedata_session.query(Item).options(*processEager(eager)).join(Item.group, Group.category).filter(filter).all()
@cachedQuery(3, "where", "nameLike", "join")
def searchItems(nameLike, shipSearch=False, where=None, join=None, eager=None):
def searchItems(nameLike, where=None, join=None, eager=None):
if not isinstance(nameLike, basestring):
raise TypeError("Need string as argument")
@@ -196,9 +195,7 @@ def searchItems(nameLike, shipSearch=False, where=None, join=None, eager=None):
for token in nameLike.split(' '):
token_safe = u"%{0}%".format(sqlizeString(token))
items = items.filter(processWhere(Item.name.like(token_safe, escape="\\"), where))
if not shipSearch:
items = items.limit(100)
items = items.all()
items = items.limit(100).all()
return items
@cachedQuery(2, "where", "itemids")

View File

@@ -630,10 +630,13 @@ class Market():
def searchShips(self, name):
"""Find ships according to given text pattern"""
results = eos.db.searchItems(name, True)
filter = eos.types.Category.name.in_(["Ship"])
results = eos.db.searchItems(name, where=filter,
join=(eos.types.Item.group, eos.types.Group.category),
eager=("icon", "group.category", "metaGroup", "metaGroup.parent"))
ships = set()
for item in results:
if self.getCategoryByItem(item).name == "Ship" and self.getPublicityByItem(item):
if self.getPublicityByItem(item):
ships.add(item)
return ships