## -*- coding: utf-8; -*- ## ############################################################################## ## ## Default master 'index' template. Features a prominent data table and ## exposes a way to filter and sort the data, etc. Some index pages also ## include a "tools" section, just above the grid on the right. ## ## ############################################################################## <%inherit file="/base.mako" /> <%def name="title()">${index_title} <%def name="content_title()"> <%def name="extra_javascript()"> ${parent.extra_javascript()} % if use_buefy: ${h.javascript_link(request.static_url('tailbone:static/js/tailbone.buefy.grid.js') + '?ver={}'.format(tailbone.__version__))} % endif <%def name="context_menu_items()"> % if master.results_downloadable_csv and request.has_perm('{}.results_csv'.format(permission_prefix)):
  • ${h.link_to("Download results as CSV", url('{}.results_csv'.format(route_prefix)))}
  • % endif % if master.results_downloadable_xlsx and request.has_perm('{}.results_xlsx'.format(permission_prefix)):
  • ${h.link_to("Download results as XLSX", url('{}.results_xlsx'.format(route_prefix)))}
  • % endif % if master.creatable and master.show_create_link and request.has_perm('{}.create'.format(permission_prefix)): % if master.creates_multiple:
  • ${h.link_to("Create new {}".format(model_title_plural), url('{}.create'.format(route_prefix)))}
  • % else:
  • ${h.link_to("Create a new {}".format(model_title), url('{}.create'.format(route_prefix)))}
  • % endif % endif <%def name="grid_tools()"> ## merge 2 objects % if master.mergeable and request.has_perm('{}.merge'.format(permission_prefix)): ${h.form(url('{}.merge'.format(route_prefix)), name='merge-things', class_='control')} ${h.csrf_token(request)} % if use_buefy: Merge 2 ${model_title_plural} % else: ${h.hidden('uuids')} % endif ${h.end_form()} % endif ## enable / disable selected objects % if master.supports_set_enabled_toggle and request.has_perm('{}.enable_disable_set'.format(permission_prefix)): ${h.form(url('{}.enable_set'.format(route_prefix)), name='enable-set', class_='control')} ${h.csrf_token(request)} ${h.hidden('uuids')} ${h.end_form()} ${h.form(url('{}.disable_set'.format(route_prefix)), name='disable-set', class_='control')} ${h.csrf_token(request)} ${h.hidden('uuids')} ${h.end_form()} % endif ## delete selected objects % if master.set_deletable and request.has_perm('{}.delete_set'.format(permission_prefix)): ${h.form(url('{}.delete_set'.format(route_prefix)), name='delete-set', class_='control')} ${h.csrf_token(request)} ${h.hidden('uuids')} ${h.end_form()} % endif ## delete search results % if master.bulk_deletable and request.has_perm('{}.bulk_delete'.format(permission_prefix)): ${h.form(url('{}.bulk_delete'.format(route_prefix)), name='bulk-delete', class_='control')} ${h.csrf_token(request)} % if use_buefy: Delete Results % else: % endif ${h.end_form()} % endif <%def name="modify_tailbone_grid()"> ## NOTE: if you override this, must use % if use_buefy: ## TODO: stop using |n filter ${grid.render_buefy(tools=capture(self.grid_tools).strip(), context_menu=capture(self.context_menu_items).strip())|n} ${self.make_tailbone_grid_app()} % else: ## no buefy, so do the traditional thing ${grid.render_complete(tools=capture(self.grid_tools).strip(), context_menu=capture(self.context_menu_items).strip())|n} % endif