diff --git a/lib/invoice/db/base.py b/lib/invoice/db/base.py index 62838a4..94d8cdd 100644 --- a/lib/invoice/db/base.py +++ b/lib/invoice/db/base.py @@ -72,7 +72,7 @@ class List: if isinstance(selector, str): selector = {"name": selector} if isinstance(selector, int): - selector = {"number": number} + selector = {"number": selector} log.debug("Selecting: {}".format(selector)) assert isinstance(selector, dict) return [item for item in self if all(getattr(item, key) == selector[key] for key in selector)] diff --git a/lib/invoice/db/invoices.py b/lib/invoice/db/invoices.py index 3b8abe3..5c55f92 100644 --- a/lib/invoice/db/invoices.py +++ b/lib/invoice/db/invoices.py @@ -30,10 +30,14 @@ Item: 0000: Item summary def _select(self, selector): if isinstance(selector, str): match = self._regex.match(selector) - if not match: - raise ItemNotFoundError("Item not found: {}".format(selector)) - selector = match.groupdict() - selector["number"] = int(selector["number"]) + if match: + selector = match.groupdict() + selector["number"] = int(selector["number"]) + else: + try: + selector = int(selector) + except TypeError: + raise ItemNotFoundError("Item not found: {}".format(selector)) return super(Invoices, self)._select(selector) def new(self, company_name):