Improve support for "receive from scratch" workflow, esp. for mobile
also try harder to make certain aspects easier to enable/disable via handler, e.g. whether cases should be allowed as quantity input, or expired credits should be a thing etc.
This commit is contained in:
parent
a34a42d2b2
commit
d8b45db331
13 changed files with 330 additions and 149 deletions
|
@ -139,6 +139,7 @@ class MasterView(View):
|
|||
mobile_rows_filterable = False
|
||||
mobile_rows_viewable = False
|
||||
mobile_rows_editable = False
|
||||
mobile_rows_deletable = False
|
||||
|
||||
row_labels = {}
|
||||
|
||||
|
@ -2670,11 +2671,12 @@ class MasterView(View):
|
|||
|
||||
parent = self.get_parent(row)
|
||||
return self.render_to_response('edit_row', {
|
||||
'row': row,
|
||||
'instance': row,
|
||||
'parent_instance': parent,
|
||||
'instance_title': self.get_row_instance_title(row),
|
||||
'instance_url': instance_url,
|
||||
'instance_deletable': self.row_deletable(row),
|
||||
'parent_instance': parent,
|
||||
'parent_title': self.get_instance_title(parent),
|
||||
'parent_url': self.get_action_url('view', parent, mobile=True),
|
||||
'form': form},
|
||||
|
@ -2705,16 +2707,38 @@ class MasterView(View):
|
|||
"""
|
||||
return True
|
||||
|
||||
def delete_row_object(self, row):
|
||||
"""
|
||||
Perform the actual deletion of given row object.
|
||||
"""
|
||||
self.Session.delete(row)
|
||||
|
||||
def delete_row(self):
|
||||
"""
|
||||
"Delete" a sub-row from the parent.
|
||||
Desktop view which can "delete" a sub-row from the parent.
|
||||
"""
|
||||
row = self.Session.query(self.model_row_class).get(self.request.matchdict['row_uuid'])
|
||||
if not row:
|
||||
raise httpexceptions.HTTPNotFound()
|
||||
self.Session.delete(row)
|
||||
raise self.notfound()
|
||||
self.delete_row_object(row)
|
||||
return self.redirect(self.get_action_url('edit', self.get_parent(row)))
|
||||
|
||||
def mobile_delete_row(self):
|
||||
"""
|
||||
Mobile view which can "delete" a sub-row from the parent.
|
||||
"""
|
||||
if self.request.method == 'POST':
|
||||
parent = self.get_instance()
|
||||
row = self.get_row_instance()
|
||||
if self.get_parent(row) is not parent:
|
||||
raise RuntimeError("Can only delete rows which belong to current object")
|
||||
|
||||
self.delete_row_object(row)
|
||||
return self.redirect(self.get_action_url('view', parent, mobile=True))
|
||||
|
||||
self.session.flash("Must POST to delete a row", 'error')
|
||||
return self.redirect(self.request.get_referrer(mobile=True))
|
||||
|
||||
def get_parent(self, row):
|
||||
raise NotImplementedError
|
||||
|
||||
|
@ -3050,9 +3074,15 @@ class MasterView(View):
|
|||
permission='{}.edit_row'.format(permission_prefix))
|
||||
|
||||
# delete row
|
||||
if cls.has_rows and cls.rows_deletable:
|
||||
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))
|
||||
config.add_tailbone_permission(permission_prefix, '{}.delete_row'.format(permission_prefix),
|
||||
"Delete individual {} rows".format(model_title))
|
||||
if cls.has_rows:
|
||||
if cls.rows_deletable or cls.mobile_rows_deletable:
|
||||
config.add_tailbone_permission(permission_prefix, '{}.delete_row'.format(permission_prefix),
|
||||
"Delete individual {} rows".format(model_title))
|
||||
if cls.rows_deletable:
|
||||
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))
|
||||
if cls.mobile_rows_deletable:
|
||||
config.add_route('mobile.{}.delete_row'.format(route_prefix), '/mobile{}/{{uuid}}/rows/{{row_uuid}}/delete'.format(url_prefix))
|
||||
config.add_view(cls, attr='mobile_delete_row', route_name='mobile.{}.delete_row'.format(route_prefix),
|
||||
permission='{}.delete_row'.format(permission_prefix))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue