Improve "touch" logic for employees

also use app handler for default touch logic
This commit is contained in:
Lance Edgar 2022-08-03 11:13:43 -05:00
parent 3726a2685a
commit 862198cf82
2 changed files with 13 additions and 6 deletions

View file

@ -304,6 +304,11 @@ class EmployeeView(MasterView):
items.append(HTML.tag('li', c=six.text_type(department)))
return HTML.tag('ul', c=items)
def touch_instance(self, employee):
app = self.get_rattail_app()
employment = app.get_employment_handler()
employment.touch_employee(self.Session(), employee)
def get_version_child_classes(self):
return [
(model.Person, 'uuid', 'person_uuid'),

View file

@ -1159,11 +1159,8 @@ class MasterView(View):
"""
Perform actual "touch" logic for the given object.
"""
change = model.Change()
change.class_name = obj.__class__.__name__
change.instance_uuid = obj.uuid
change = self.Session.merge(change)
change.deleted = False
app = self.get_rattail_app()
app.touch_object(self.Session(), obj)
def versions(self):
"""
@ -4795,7 +4792,12 @@ class MasterView(View):
if cls.touchable:
config.add_tailbone_permission(permission_prefix, '{}.touch'.format(permission_prefix),
"\"Touch\" a {} to trigger datasync for it".format(model_title))
config.add_route('{}.touch'.format(route_prefix), '{}/touch'.format(instance_url_prefix))
config.add_route('{}.touch'.format(route_prefix),
'{}/touch'.format(instance_url_prefix),
# TODO: should add this restriction after the old
# jquery theme is no longer in use
#request_method='POST'
)
config.add_view(cls, attr='touch', route_name='{}.touch'.format(route_prefix),
permission='{}.touch'.format(permission_prefix))