Overhaul desktop views for receiving, for efficiency

still could use even more i'm sure, but this takes advantage of buefy
to add dialogs etc. from the "view receiving batch row" page.  this
batch no longer allows direct edit of rows but that's hopefully for
the better.
This commit is contained in:
Lance Edgar 2021-12-13 17:53:14 -06:00
parent 2f676774e9
commit 340a177a29
14 changed files with 1014 additions and 157 deletions

View file

@ -166,6 +166,7 @@ class MasterView(View):
rows_viewable = True
rows_creatable = False
rows_editable = False
rows_editable_but_not_directly = False
rows_deletable = False
rows_deletable_speedbump = True
rows_bulk_deletable = False
@ -3852,6 +3853,7 @@ class MasterView(View):
return self.render_to_response('edit_row', {
'instance': row,
'row_parent': parent,
'parent_model_title': self.get_model_title(),
'parent_title': self.get_instance_title(parent),
'parent_url': self.get_action_url('view', parent),
'parent_instance': parent,
@ -3884,6 +3886,8 @@ class MasterView(View):
considered "deletable". Returns ``True`` by default; override as
necessary.
"""
if not self.rows_deletable:
return False
return True
def delete_row_object(self, row):
@ -4099,6 +4103,7 @@ class MasterView(View):
config_title = cls.get_config_title()
if cls.has_rows:
row_model_title = cls.get_row_model_title()
row_model_title_plural = cls.get_row_model_title_plural()
config.add_tailbone_permission_group(permission_prefix, model_title_plural, overwrite=False)
@ -4386,9 +4391,10 @@ class MasterView(View):
# edit row
if cls.has_rows:
if cls.rows_editable:
if cls.rows_editable or cls.rows_editable_but_not_directly:
config.add_tailbone_permission(permission_prefix, '{}.edit_row'.format(permission_prefix),
"Edit individual {} rows".format(model_title))
"Edit individual {}".format(row_model_title_plural))
if cls.rows_editable:
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_row'.format(route_prefix),
permission='{}.edit_row'.format(permission_prefix))
@ -4397,7 +4403,7 @@ class MasterView(View):
if cls.has_rows:
if cls.rows_deletable:
config.add_tailbone_permission(permission_prefix, '{}.delete_row'.format(permission_prefix),
"Delete individual {} rows".format(model_title))
"Delete individual {}".format(row_model_title_plural))
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_row'.format(route_prefix),
permission='{}.delete_row'.format(permission_prefix))