Add basic "new model view" wizard

This commit is contained in:
Lance Edgar 2023-01-16 13:50:27 -06:00
parent f4bc280da7
commit 00548a259b
10 changed files with 681 additions and 5 deletions

View file

@ -2841,9 +2841,12 @@ class MasterView(View):
def make_grid_action_view(self):
use_buefy = self.get_use_buefy()
url = self.get_view_index_url if self.use_index_links else None
icon = 'eye' if use_buefy else 'zoomin'
return self.make_action('view', icon=icon, url=url)
return self.make_action('view', icon=icon, url=self.default_view_url())
def default_view_url(self):
if self.use_index_links:
return self.get_view_index_url
def get_view_index_url(self, row, i):
route = '{}.view_index'.format(self.get_route_prefix())
@ -4978,6 +4981,22 @@ class MasterView(View):
# list/search
if cls.listable:
# master views which represent a typical model class, and
# allow for an index view, are registered specially so the
# admin may browse the full list of such views
modclass = cls.get_model_class(error=False)
if modclass:
config.add_tailbone_model_view(modclass.__name__,
model_title_plural,
route_prefix,
permission_prefix)
# but regardless we register the index view, for similar reasons
config.add_tailbone_index_page(route_prefix, model_title_plural,
'{}.list'.format(permission_prefix))
# index view
config.add_tailbone_permission(permission_prefix, '{}.list'.format(permission_prefix),
"List / search {}".format(model_title_plural))
config.add_route(route_prefix, '{}/'.format(url_prefix))
@ -4985,8 +5004,6 @@ class MasterView(View):
config.add_view(cls, attr='index', route_name=route_prefix,
permission='{}.list'.format(permission_prefix),
**kwargs)
config.add_tailbone_index_page(route_prefix, model_title_plural,
'{}.list'.format(permission_prefix))
# download results
# this is the "new" more flexible approach, but we only want to