Add very basic Vue.js grid/index experiment for Users table

This commit is contained in:
Lance Edgar 2018-11-26 22:07:30 -06:00
parent 25e61cc8d5
commit 993d8c3b4e
4 changed files with 137 additions and 0 deletions

View file

@ -42,6 +42,7 @@ from tailbone import forms
from tailbone.db import Session
from tailbone.views import MasterView
from tailbone.views.principal import PrincipalMasterView, PermissionsRenderer
from tailbone.config import expose_vuejs_experiments
class UsersView(PrincipalMasterView):
@ -124,6 +125,16 @@ class UsersView(PrincipalMasterView):
g.set_link('last_name')
g.set_link('display_name')
def template_kwargs_index(self, **kwargs):
kwargs['expose_vuejs_experiments'] = expose_vuejs_experiments(self.rattail_config)
return kwargs
def vue_index(self):
if not expose_vuejs_experiments(self.rattail_config):
raise self.notfound()
return self.render_to_response('vue_index', {})
def unique_username(self, node, value):
query = self.Session.query(model.User)\
.filter(model.User.username == value)
@ -308,6 +319,21 @@ class UsersView(PrincipalMasterView):
assert not removing._roles
self.Session.delete(removing)
@classmethod
def defaults(cls, config):
rattail_config = config.registry.settings.get('rattail_config')
route_prefix = cls.get_route_prefix()
url_prefix = cls.get_url_prefix()
permission_prefix = cls.get_permission_prefix()
# vue-index
config.add_route('{}.vue_index'.format(route_prefix), '{}/vue-index/'.format(url_prefix))
config.add_view(cls, attr='vue_index', route_name='{}.vue_index'.format(route_prefix),
permission='{}.list'.format(permission_prefix))
cls._principal_defaults(config)
cls._defaults(config)
class UserEventsView(MasterView):
"""