Serverseitige Filterung für Listen-Endpunkte und Einzelabrufe in Listen-Komponenten
Server: Die list-Endpunkte für Kontakt, Projekt, Kontaktadresse und CallLog akzeptieren nun einen optionalen Query-Parameter (kunden_id bzw. projekt_id) und filtern im ORM-Query. Neue Migration V01.05 legt Indizes auf den FK-Spalten an. Client: Die fetch-Funktionen erhalten einen optionalen Parent-ID-Parameter. Die Listen-Komponenten übergeben die Parent-ID aus den Route-Params an den Server und laden nur noch benötigte Daten. Statt kompletter Eltern-Listen wird per fetchXxxById ein einzelner Datensatz für die Namensauflösung geladen. Die CallLog-Bearbeitungsmaske behält ihre ungesfilterten Dropdown-Abrufe. Generated by Mistral Vibe. Co-Authored-By: Mistral Vibe <vibe@mistral.ai>
This commit is contained in:
1 parent
e9a2f48ede
commit
93827dde0f
15 files changed
+189
-141
No files matched your search
@@ -12,7 +12,7 @@ erfolgt ausschließlich über __bind_key__.
|
||||
import datetime
|
||||
import decimal
|
||||
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String
|
||||
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Index, Integer, String
|
||||
from sqlalchemy.orm import relationship
|
||||
|
||||
from db import dbapp
|
||||
@@ -103,6 +103,9 @@ class Kontakt(dbapp.Model):
|
||||
"""
|
||||
__tablename__ = 'kontakte'
|
||||
__bind_key__ = BINDKEY
|
||||
__table_args__ = (
|
||||
Index('ix_kontakte_kunden_id', 'kunden_id'),
|
||||
)
|
||||
id = Column(Integer, primary_key=True)
|
||||
kunden_id = Column(Integer, ForeignKey('kunden.id'), nullable=False)
|
||||
anrede = Column(String(30), nullable=True)
|
||||
@@ -134,6 +137,9 @@ class Projekt(dbapp.Model):
|
||||
"""
|
||||
__tablename__ = 'projekte'
|
||||
__bind_key__ = BINDKEY
|
||||
__table_args__ = (
|
||||
Index('ix_projekte_kunden_id', 'kunden_id'),
|
||||
)
|
||||
id = Column(Integer, primary_key=True)
|
||||
kunden_id = Column(Integer, ForeignKey('kunden.id'), nullable=False)
|
||||
projektname = Column(String(200), nullable=False)
|
||||
@@ -163,6 +169,9 @@ class Kontaktadresse(dbapp.Model):
|
||||
"""
|
||||
__tablename__ = 'kontaktadressen'
|
||||
__bind_key__ = BINDKEY
|
||||
__table_args__ = (
|
||||
Index('ix_kontaktadressen_projekt_id', 'projekt_id'),
|
||||
)
|
||||
id = Column(Integer, primary_key=True)
|
||||
projekt_id = Column(Integer, ForeignKey('projekte.id'), nullable=False)
|
||||
anrede = Column(String(30), nullable=True)
|
||||
@@ -200,6 +209,9 @@ class CallLog(dbapp.Model):
|
||||
"""
|
||||
__tablename__ = 'call_logs'
|
||||
__bind_key__ = BINDKEY
|
||||
__table_args__ = (
|
||||
Index('ix_call_logs_projekt_id', 'projekt_id'),
|
||||
)
|
||||
id = Column(Integer, primary_key=True)
|
||||
projekt_id = Column(Integer, ForeignKey('projekte.id'), nullable=False)
|
||||
datum = Column(String(20), nullable=True)
|
||||
|
||||
Reference in new issue
Block a user