From 77ef42676e484f6a00378d662d41f60898763b0e Mon Sep 17 00:00:00 2001 From: luxick Date: Mon, 31 Jul 2017 18:10:40 +0200 Subject: [PATCH] Fix bug with mana filters. --- cardvault/database.py | 4 ++-- cardvault/search.py | 13 ++++++------- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/cardvault/database.py b/cardvault/database.py index b472226..18590ad 100644 --- a/cardvault/database.py +++ b/cardvault/database.py @@ -234,7 +234,7 @@ class CardVaultDB: filter_rarity = filters["rarity"] filer_type = filters["type"] filter_set = filters["set"] - filter_mana = filters["mana"].split(',') + filter_mana = filters["mana"] filter_mana.sort(key=lambda val: util.color_sort_order[val[0]]) sql = 'SELECT * FROM cards WHERE `name` LIKE ?' @@ -313,7 +313,7 @@ class CardVaultDB: output.append(util.card_colors[color]) else: output.append("C") - # TODO extrafilter_colorsct symbols from card text + # TODO extract symbols from card text return "-".join(output) diff --git a/cardvault/search.py b/cardvault/search.py index bb31790..d908408 100644 --- a/cardvault/search.py +++ b/cardvault/search.py @@ -179,15 +179,13 @@ class SearchHandlers: def get_filters(self) -> dict: """ Read selected filters from UI and return values as dict """ - output = {} - # Mana colors - color_list = [] - # Go through mana color buttons an get the active filters + output = {"mana": []} + for button in self.app.ui.get_object("manaFilterGrid").get_children(): if isinstance(button, Gtk.ToggleButton): if button.get_active(): - color_list.append(button.get_name()) - output["mana"] = ",".join(color_list) + output["mana"].append(button.get_name()) + # Rarity combo = self.app.ui.get_object("rarityCombo") output["rarity"] = self._get_combo_value(combo) @@ -204,6 +202,7 @@ class SearchHandlers: def search_cards(self, term: str, filters: dict) -> dict: """Return a dict of cards based on a search term and filters""" + # Check if a local database can be used for searching if self.app.config["local_db"]: util.log("Starting local search for '" + term + "'", util.LogLevel.Info) @@ -223,7 +222,7 @@ class SearchHandlers: util.log("Fetching card info ...", util.LogLevel.Info) start = time.time() data = Card.where(name=term) \ - .where(colorIdentity=filters["mana"]) \ + .where(colorIdentity=",".join(filters["mana"])) \ .where(types=filters["type"]) \ .where(set=filters["set"]) \ .where(rarity=filters["rarity"]) \