Enhance Photo and WorkLog models with relationships to improve data integrity and associations
This commit is contained in:
parent
2a8e1710b3
commit
19d1c31984
2 changed files with 7 additions and 2 deletions
|
@ -1,7 +1,8 @@
|
||||||
from typing import Optional, TYPE_CHECKING
|
from typing import Optional, List, TYPE_CHECKING
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .inventory import Inventory
|
from .inventory import Inventory
|
||||||
from .users import User
|
from .users import User
|
||||||
|
from .work_log import WorkLog
|
||||||
|
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
|
@ -20,6 +21,7 @@ class Photo(db.Model):
|
||||||
|
|
||||||
inventory: Mapped[Optional['Inventory']] = relationship('Inventory', back_populates='photo')
|
inventory: Mapped[Optional['Inventory']] = relationship('Inventory', back_populates='photo')
|
||||||
user: Mapped[Optional['User']] = relationship('User', back_populates='photo')
|
user: Mapped[Optional['User']] = relationship('User', back_populates='photo')
|
||||||
|
worklogs: Mapped[List['WorkLog']] = relationship('WorkLog', back_populates='photos')
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return f"<Photo(id={self.id}, filename={self.filename})>"
|
return f"<Photo(id={self.id}, filename={self.filename})>"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
from typing import Optional, Any, List, TYPE_CHECKING
|
from typing import Optional, Any, List, TYPE_CHECKING
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from .inventory import Inventory
|
from .inventory import Inventory
|
||||||
|
from .photo import Photo
|
||||||
from .users import User
|
from .users import User
|
||||||
from .work_note import WorkNote
|
from .work_note import WorkNote
|
||||||
|
|
||||||
|
@ -9,6 +10,7 @@ from sqlalchemy.orm import Mapped, mapped_column, relationship
|
||||||
import datetime
|
import datetime
|
||||||
|
|
||||||
from . import db
|
from . import db
|
||||||
|
from .photo_links import worklog_photos
|
||||||
from .work_note import WorkNote
|
from .work_note import WorkNote
|
||||||
|
|
||||||
class WorkLog(db.Model):
|
class WorkLog(db.Model):
|
||||||
|
@ -26,12 +28,13 @@ class WorkLog(db.Model):
|
||||||
|
|
||||||
work_item: Mapped[Optional['Inventory']] = relationship('Inventory', back_populates='work_logs')
|
work_item: Mapped[Optional['Inventory']] = relationship('Inventory', back_populates='work_logs')
|
||||||
contact: Mapped[Optional['User']] = relationship('User', back_populates='work_logs')
|
contact: Mapped[Optional['User']] = relationship('User', back_populates='work_logs')
|
||||||
updates: Mapped[list['WorkNote']] = relationship(
|
updates: Mapped[List['WorkNote']] = relationship(
|
||||||
'WorkNote',
|
'WorkNote',
|
||||||
back_populates='work_log',
|
back_populates='work_log',
|
||||||
cascade='all, delete-orphan',
|
cascade='all, delete-orphan',
|
||||||
order_by='WorkNote.timestamp'
|
order_by='WorkNote.timestamp'
|
||||||
)
|
)
|
||||||
|
photos: Mapped[List['Photo']] = relationship('Photo', secondary=worklog_photos, back_populates='worklogs')
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self,
|
self,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue