Commit 0f0119ad authored by Sean Lynch's avatar Sean Lynch

Expose to allow overriding in subclass ModelView

parent 56fc52b5
...@@ -451,6 +451,12 @@ class ModelView(BaseModelView): ...@@ -451,6 +451,12 @@ class ModelView(BaseModelView):
return joined return joined
# Database-related API # Database-related API
def get_query(self):
"""
Return a query for the model type
"""
return self.session.query(self.model)
def get_list(self, page, sort_column, sort_desc, search, filters, execute=True): def get_list(self, page, sort_column, sort_desc, search, filters, execute=True):
""" """
Return models from the database. Return models from the database.
...@@ -472,7 +478,7 @@ class ModelView(BaseModelView): ...@@ -472,7 +478,7 @@ class ModelView(BaseModelView):
# Will contain names of joined tables to avoid duplicate joins # Will contain names of joined tables to avoid duplicate joins
joins = set() joins = set()
query = self.session.query(self.model) query = self.get_query()
# Apply search criteria # Apply search criteria
if self._search_supported and search: if self._search_supported and search:
...@@ -564,7 +570,7 @@ class ModelView(BaseModelView): ...@@ -564,7 +570,7 @@ class ModelView(BaseModelView):
:param id: :param id:
Model id Model id
""" """
return self.session.query(self.model).get(id) return self.get_query().get(id)
# Model handlers # Model handlers
def create_model(self, form): def create_model(self, form):
...@@ -637,7 +643,7 @@ class ModelView(BaseModelView): ...@@ -637,7 +643,7 @@ class ModelView(BaseModelView):
try: try:
model_pk = getattr(self.model, self._primary_key) model_pk = getattr(self.model, self._primary_key)
query = self.session.query(self.model).filter(model_pk.in_(ids)) query = self.get_query().filter(model_pk.in_(ids))
if self.fast_mass_delete: if self.fast_mass_delete:
count = query.delete(synchronize_session=False) count = query.delete(synchronize_session=False)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment