Refactor away the row_route_prefix
concept
This commit is contained in:
parent
22b8643def
commit
85e6e7e08a
|
@ -8,5 +8,5 @@
|
||||||
${parent.body()}
|
${parent.body()}
|
||||||
|
|
||||||
% if master.mobile_rows_editable and instance_editable and request.has_perm('{}.edit_row'.format(permission_prefix)):
|
% if master.mobile_rows_editable and instance_editable and request.has_perm('{}.edit_row'.format(permission_prefix)):
|
||||||
${h.link_to("Edit", url('mobile.{}.edit'.format(row_route_prefix), uuid=instance.uuid), class_='ui-btn')}
|
${h.link_to("Edit", url('mobile.{}.edit_row'.format(route_prefix), uuid=instance.uuid), class_='ui-btn')}
|
||||||
% endif
|
% endif
|
||||||
|
|
|
@ -618,7 +618,7 @@ class MasterView(View):
|
||||||
renderer=self.mobile_row_listitem_renderer())
|
renderer=self.mobile_row_listitem_renderer())
|
||||||
|
|
||||||
def mobile_row_route_url(self, route_name, **kwargs):
|
def mobile_row_route_url(self, route_name, **kwargs):
|
||||||
route_name = 'mobile.{}.{}'.format(self.get_row_route_prefix(), route_name)
|
route_name = 'mobile.{}.{}_row'.format(self.get_route_prefix(), route_name)
|
||||||
return self.request.route_url(route_name, **kwargs)
|
return self.request.route_url(route_name, **kwargs)
|
||||||
|
|
||||||
def mobile_view_row(self):
|
def mobile_view_row(self):
|
||||||
|
@ -679,14 +679,6 @@ class MasterView(View):
|
||||||
grid = self.make_row_grid(session=session, **kwargs)
|
grid = self.make_row_grid(session=session, **kwargs)
|
||||||
return grid.make_visible_data()
|
return grid.make_visible_data()
|
||||||
|
|
||||||
@classmethod
|
|
||||||
def get_row_route_prefix(cls):
|
|
||||||
"""
|
|
||||||
Route prefix specific to the row-level views for a batch, e.g.
|
|
||||||
``'vendorcatalogs.rows'``.
|
|
||||||
"""
|
|
||||||
return "{}.rows".format(cls.get_route_prefix())
|
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def get_row_url_prefix(cls):
|
def get_row_url_prefix(cls):
|
||||||
"""
|
"""
|
||||||
|
@ -1221,7 +1213,6 @@ class MasterView(View):
|
||||||
context['grid_count'] = self.grid_count
|
context['grid_count'] = self.grid_count
|
||||||
|
|
||||||
if self.has_rows:
|
if self.has_rows:
|
||||||
context['row_route_prefix'] = self.get_row_route_prefix()
|
|
||||||
context['row_permission_prefix'] = self.get_row_permission_prefix()
|
context['row_permission_prefix'] = self.get_row_permission_prefix()
|
||||||
context['row_model_title'] = self.get_row_model_title()
|
context['row_model_title'] = self.get_row_model_title()
|
||||||
context['row_model_title_plural'] = self.get_row_model_title_plural()
|
context['row_model_title_plural'] = self.get_row_model_title_plural()
|
||||||
|
@ -1842,7 +1833,7 @@ class MasterView(View):
|
||||||
"""
|
"""
|
||||||
"Delete" a sub-row from the parent.
|
"Delete" a sub-row from the parent.
|
||||||
"""
|
"""
|
||||||
row = self.Session.query(self.model_row_class).get(self.request.matchdict['uuid'])
|
row = self.Session.query(self.model_row_class).get(self.request.matchdict['row_uuid'])
|
||||||
if not row:
|
if not row:
|
||||||
raise httpexceptions.HTTPNotFound()
|
raise httpexceptions.HTTPNotFound()
|
||||||
self.Session.delete(row)
|
self.Session.delete(row)
|
||||||
|
@ -1855,7 +1846,9 @@ class MasterView(View):
|
||||||
return self.get_row_model_title()
|
return self.get_row_model_title()
|
||||||
|
|
||||||
def get_row_instance(self):
|
def get_row_instance(self):
|
||||||
key = self.request.matchdict[self.get_model_key()]
|
# TODO: is this right..?
|
||||||
|
# key = self.request.matchdict[self.get_model_key()]
|
||||||
|
key = self.request.matchdict['row_uuid']
|
||||||
instance = self.Session.query(self.model_row_class).get(key)
|
instance = self.Session.query(self.model_row_class).get(key)
|
||||||
if not instance:
|
if not instance:
|
||||||
raise httpexceptions.HTTPNotFound()
|
raise httpexceptions.HTTPNotFound()
|
||||||
|
@ -1897,7 +1890,7 @@ class MasterView(View):
|
||||||
"""
|
"""
|
||||||
Generate a URL for the given action on the given row.
|
Generate a URL for the given action on the given row.
|
||||||
"""
|
"""
|
||||||
route_name = '{}.{}'.format(self.get_row_route_prefix(), action)
|
route_name = '{}.{}_row'.format(self.get_route_prefix(), action)
|
||||||
if mobile:
|
if mobile:
|
||||||
route_name = 'mobile.{}'.format(route_name)
|
route_name = 'mobile.{}'.format(route_name)
|
||||||
return self.request.route_url(route_name, **self.get_row_action_route_kwargs(row))
|
return self.request.route_url(route_name, **self.get_row_action_route_kwargs(row))
|
||||||
|
@ -1907,7 +1900,11 @@ class MasterView(View):
|
||||||
Hopefully generic kwarg generator for basic action routes.
|
Hopefully generic kwarg generator for basic action routes.
|
||||||
"""
|
"""
|
||||||
# TODO: make this smarter?
|
# TODO: make this smarter?
|
||||||
return {'uuid': row.uuid}
|
parent = self.get_parent(row)
|
||||||
|
return {
|
||||||
|
'uuid': parent.uuid,
|
||||||
|
'row_uuid': row.uuid,
|
||||||
|
}
|
||||||
|
|
||||||
def make_diff(self, old_data, new_data, **kwargs):
|
def make_diff(self, old_data, new_data, **kwargs):
|
||||||
return diffs.Diff(old_data, new_data, **kwargs)
|
return diffs.Diff(old_data, new_data, **kwargs)
|
||||||
|
@ -1936,8 +1933,6 @@ class MasterView(View):
|
||||||
model_title = cls.get_model_title()
|
model_title = cls.get_model_title()
|
||||||
model_title_plural = cls.get_model_title_plural()
|
model_title_plural = cls.get_model_title_plural()
|
||||||
if cls.has_rows:
|
if cls.has_rows:
|
||||||
row_route_prefix = cls.get_row_route_prefix()
|
|
||||||
row_url_prefix = cls.get_row_url_prefix()
|
|
||||||
row_model_title = cls.get_row_model_title()
|
row_model_title = cls.get_row_model_title()
|
||||||
|
|
||||||
config.add_tailbone_permission_group(permission_prefix, model_title_plural, overwrite=False)
|
config.add_tailbone_permission_group(permission_prefix, model_title_plural, overwrite=False)
|
||||||
|
@ -2097,12 +2092,12 @@ class MasterView(View):
|
||||||
# view row
|
# view row
|
||||||
if cls.has_rows:
|
if cls.has_rows:
|
||||||
if cls.rows_viewable:
|
if cls.rows_viewable:
|
||||||
config.add_route('{}.view'.format(row_route_prefix), '{}/{{uuid}}'.format(row_url_prefix))
|
config.add_route('{}.view_row'.format(route_prefix), '{}/{{uuid}}/rows/{{row_uuid}}'.format(url_prefix))
|
||||||
config.add_view(cls, attr='view_row', route_name='{}.view'.format(row_route_prefix),
|
config.add_view(cls, attr='view_row', route_name='{}.view_row'.format(route_prefix),
|
||||||
permission='{}.view'.format(permission_prefix))
|
permission='{}.view'.format(permission_prefix))
|
||||||
if cls.mobile_rows_viewable:
|
if cls.mobile_rows_viewable:
|
||||||
config.add_route('mobile.{}.view'.format(row_route_prefix), '/mobile{}/{{uuid}}'.format(row_url_prefix))
|
config.add_route('mobile.{}.view_row'.format(route_prefix), '/mobile{}/{{uuid}}/rows/{{row_uuid}}'.format(url_prefix))
|
||||||
config.add_view(cls, attr='mobile_view_row', route_name='mobile.{}.view'.format(row_route_prefix),
|
config.add_view(cls, attr='mobile_view_row', route_name='mobile.{}.view_row'.format(route_prefix),
|
||||||
permission='{}.view'.format(permission_prefix))
|
permission='{}.view'.format(permission_prefix))
|
||||||
|
|
||||||
# edit row
|
# edit row
|
||||||
|
@ -2111,18 +2106,18 @@ class MasterView(View):
|
||||||
config.add_tailbone_permission(permission_prefix, '{}.edit_row'.format(permission_prefix),
|
config.add_tailbone_permission(permission_prefix, '{}.edit_row'.format(permission_prefix),
|
||||||
"Edit individual {} rows".format(model_title))
|
"Edit individual {} rows".format(model_title))
|
||||||
if cls.rows_editable:
|
if cls.rows_editable:
|
||||||
config.add_route('{}.edit'.format(row_route_prefix), '{}/{{uuid}}/edit'.format(row_url_prefix))
|
config.add_route('{}.edit_row'.format(route_prefix), '{}/{{uuid}}/rows/{{row_uuid}}/edit'.format(url_prefix))
|
||||||
config.add_view(cls, attr='edit_row', route_name='{}.edit'.format(row_route_prefix),
|
config.add_view(cls, attr='edit_row', route_name='{}.edit_row'.format(route_prefix),
|
||||||
permission='{}.edit_row'.format(permission_prefix))
|
permission='{}.edit_row'.format(permission_prefix))
|
||||||
if cls.mobile_rows_editable:
|
if cls.mobile_rows_editable:
|
||||||
config.add_route('mobile.{}.edit'.format(row_route_prefix), '/mobile{}/{{uuid}}/edit'.format(row_url_prefix))
|
config.add_route('mobile.{}.edit_row'.format(route_prefix), '/mobile{}/{{uuid}}/rows/{{row_uuid}}/edit'.format(url_prefix))
|
||||||
config.add_view(cls, attr='mobile_edit_row', route_name='mobile.{}.edit'.format(row_route_prefix),
|
config.add_view(cls, attr='mobile_edit_row', route_name='mobile.{}.edit_row'.format(route_prefix),
|
||||||
permission='{}.edit_row'.format(permission_prefix))
|
permission='{}.edit_row'.format(permission_prefix))
|
||||||
|
|
||||||
# delete row
|
# delete row
|
||||||
if cls.has_rows and cls.rows_deletable:
|
if cls.has_rows and cls.rows_deletable:
|
||||||
config.add_route('{}.delete'.format(row_route_prefix), '{}/{{uuid}}/delete'.format(row_url_prefix))
|
config.add_route('{}.delete_row'.format(route_prefix), '{}/{{uuid}}/rows/{{row_uuid}}/delete'.format(url_prefix))
|
||||||
config.add_view(cls, attr='delete_row', route_name='{}.delete'.format(row_route_prefix),
|
config.add_view(cls, attr='delete_row', route_name='{}.delete_row'.format(route_prefix),
|
||||||
permission='{}.delete_row'.format(permission_prefix))
|
permission='{}.delete_row'.format(permission_prefix))
|
||||||
config.add_tailbone_permission(permission_prefix, '{}.delete_row'.format(permission_prefix),
|
config.add_tailbone_permission(permission_prefix, '{}.delete_row'.format(permission_prefix),
|
||||||
"Delete individual {} rows".format(model_title))
|
"Delete individual {} rows".format(model_title))
|
||||||
|
|
|
@ -271,7 +271,6 @@ class MasterView2(MasterView):
|
||||||
"""
|
"""
|
||||||
Return a dict of kwargs to be used when constructing a new rows grid.
|
Return a dict of kwargs to be used when constructing a new rows grid.
|
||||||
"""
|
"""
|
||||||
route_prefix = self.get_row_route_prefix()
|
|
||||||
permission_prefix = self.get_permission_prefix()
|
permission_prefix = self.get_permission_prefix()
|
||||||
|
|
||||||
defaults = {
|
defaults = {
|
||||||
|
|
Loading…
Reference in a new issue