From da60b971f8726847e65d7ce6b588458284626097 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Mon, 28 Jul 2025 13:13:37 -0500 Subject: [PATCH] Refactor inventory model relationships to replace 'item' with 'type' for improved clarity and consistency --- inventory/models/inventory.py | 6 +++--- inventory/models/items.py | 5 ++--- inventory/routes/helpers.py | 2 +- inventory/routes/inventory.py | 2 +- inventory/utils/load.py | 2 +- 5 files changed, 8 insertions(+), 9 deletions(-) diff --git a/inventory/models/inventory.py b/inventory/models/inventory.py index 5a92a4d..6695dba 100644 --- a/inventory/models/inventory.py +++ b/inventory/models/inventory.py @@ -39,7 +39,7 @@ class Inventory(db.Model, ImageAttachable): location: Mapped[Optional['Room']] = relationship('Room', back_populates='inventory') owner = relationship('User', back_populates='inventory') brand: Mapped[Optional['Brand']] = relationship('Brand', back_populates='inventory') - item: Mapped['Item'] = relationship('Item', back_populates='inventory') + # item: Mapped['Item'] = relationship('Item', back_populates='inventory') work_logs: Mapped[List['WorkLog']] = relationship('WorkLog', back_populates='work_item') image: Mapped[Optional['Image']] = relationship('Image', back_populates='inventory', passive_deletes=True) type: Mapped[Optional['Item']] = relationship('Item', back_populates='inventory') @@ -68,8 +68,8 @@ class Inventory(db.Model, ImageAttachable): if self.name: parts.append(f"name={repr(self.name)}") - if self.item: - parts.append(f"item={repr(self.item.description)}") + if self.type: + parts.append(f"item={repr(self.type.description)}") if self.notes: parts.append(f"notes={repr(self.notes)}") diff --git a/inventory/models/items.py b/inventory/models/items.py index 5380f5a..e910216 100644 --- a/inventory/models/items.py +++ b/inventory/models/items.py @@ -18,7 +18,7 @@ class Item(ValidatableMixin, db.Model): inventory: Mapped[List['Inventory']] = relationship('Inventory', back_populates='item') - def __init__(self, description: Optional[str] = None, category: Optional[str] = None): + def __init__(self, description: Optional[str] = None): self.description = description def __repr__(self): @@ -27,8 +27,7 @@ class Item(ValidatableMixin, db.Model): def serialize(self): return { 'id': self.id, - 'name': self.description, - 'category': self.category + 'name': self.description } @property diff --git a/inventory/routes/helpers.py b/inventory/routes/helpers.py index c954a19..9bb6c20 100644 --- a/inventory/routes/helpers.py +++ b/inventory/routes/helpers.py @@ -18,7 +18,7 @@ inventory_headers = { "Bar Code": lambda i: {"text": i.barcode}, "Brand": lambda i: {"text": i.brand.name} if i.brand else {"text": None}, "Model": lambda i: {"text": i.model}, - "Item Type": lambda i: {"text": i.item.description} if i.item else {"text": None}, + "Item Type": lambda i: {"text": i.type.description} if i.type else {"text": None}, "Shared?": lambda i: {"text": i.shared, "type": "bool", "html": checked_box if i.shared else unchecked_box}, "Owner": lambda i: {"text": i.owner.identifier, "url": url_for("main.user", id=i.owner.id)} if i.owner else {"text": None}, "Location": lambda i: {"text": i.location.identifier} if i.location else {"Text": None}, diff --git a/inventory/routes/inventory.py b/inventory/routes/inventory.py index b6552b2..797b9b3 100644 --- a/inventory/routes/inventory.py +++ b/inventory/routes/inventory.py @@ -224,7 +224,7 @@ def get_inventory_csv(): case "owner": return item.owner.identifier case "type": - return item.item.description + return item.type.description case _: return getattr(item, col, "") except Exception: diff --git a/inventory/utils/load.py b/inventory/utils/load.py index 447e1ba..21c0ef3 100644 --- a/inventory/utils/load.py +++ b/inventory/utils/load.py @@ -12,7 +12,7 @@ def eager_load_inventory_relationships(query): return query.options( joinedload(Inventory.owner), joinedload(Inventory.brand), - joinedload(Inventory.item), + joinedload(Inventory.type), selectinload(Inventory.location).selectinload(Room.room_function) )