From 87690b06cad314dc3964a4f2d4f9c04a16619931 Mon Sep 17 00:00:00 2001 From: Donkie Date: Wed, 10 May 2023 22:32:58 +0200 Subject: [PATCH] Fixed find spools not working if no vendor --- spoolman/database/filament.py | 6 +++++- spoolman/database/spool.py | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/spoolman/database/filament.py b/spoolman/database/filament.py index 1017203..fb9068e 100644 --- a/spoolman/database/filament.py +++ b/spoolman/database/filament.py @@ -69,7 +69,11 @@ async def find( article_number: Optional[str] = None, ) -> list[models.Filament]: """Find a list of filament objects by search criteria.""" - stmt = select(models.Filament).options(contains_eager(models.Filament.vendor)).join(models.Filament.vendor) + stmt = ( + select(models.Filament) + .options(contains_eager(models.Filament.vendor)) + .join(models.Filament.vendor, isouter=True) + ) if vendor_name is not None: stmt = stmt.where(models.Vendor.name.ilike(f"%{vendor_name}%")) if vendor_id is not None: diff --git a/spoolman/database/spool.py b/spoolman/database/spool.py index 9ba2cae..37e4792 100644 --- a/spoolman/database/spool.py +++ b/spoolman/database/spool.py @@ -74,8 +74,8 @@ async def find( """Find a list of spool objects by search criteria.""" stmt = ( sqlalchemy.select(models.Spool) - .join(models.Spool.filament) - .join(models.Filament.vendor) + .join(models.Spool.filament, isouter=True) + .join(models.Filament.vendor, isouter=True) .options(contains_eager(models.Spool.filament).contains_eager(models.Filament.vendor)) ) if filament_name is not None: