Quellcode durchsuchen

Fix integer selectors for invoices on commandline.

master
Pavel Šimerda vor 9 Jahren
Ursprung
Commit
3f8728b831
2 geänderte Dateien mit 9 neuen und 5 gelöschten Zeilen
  1. +1
    -1
      lib/invoice/db/base.py
  2. +8
    -4
      lib/invoice/db/invoices.py

+ 1
- 1
lib/invoice/db/base.py Datei anzeigen

@@ -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)]


+ 8
- 4
lib/invoice/db/invoices.py Datei anzeigen

@@ -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):


Laden…
Abbrechen
Speichern