Adding filtering to tables
This commit is contained in:
1 parent
d67b4ceb65
commit
a50fccd56d
10 files changed
+329
-81
No files matched your search
@@ -1,4 +1,4 @@
|
||||
from sqlalchemy import insert, select, update
|
||||
from sqlalchemy import distinct, insert, select, update
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from app.models.imported_part import ImportedPart
|
||||
@@ -23,6 +23,28 @@ async def list_all(
|
||||
return list(result.scalars().all())
|
||||
|
||||
|
||||
async def list_filtered(
|
||||
db: AsyncSession,
|
||||
description: str = "",
|
||||
skip: int = 0,
|
||||
limit: int = 500,
|
||||
) -> list[ImportedPart]:
|
||||
q = select(ImportedPart)
|
||||
if description.strip():
|
||||
q = q.where(ImportedPart.Description.ilike(f"%{description.strip()}%"))
|
||||
result = await db.execute(q.order_by(ImportedPart.InventoryID).offset(skip).limit(limit))
|
||||
return list(result.scalars().all())
|
||||
|
||||
|
||||
async def distinct_colours(db: AsyncSession) -> list[str]:
|
||||
result = await db.execute(
|
||||
select(distinct(ImportedPart.TBXColour))
|
||||
.where(ImportedPart.TBXColour.isnot(None))
|
||||
.order_by(ImportedPart.TBXColour)
|
||||
)
|
||||
return [row[0] for row in result.all()]
|
||||
|
||||
|
||||
async def count(db: AsyncSession) -> int:
|
||||
from sqlalchemy import func
|
||||
result = await db.execute(select(func.count()).select_from(ImportedPart))
|
||||
|
||||
Reference in new issue
Block a user