Add way to update Employee ID from profile view

This commit is contained in:
Lance Edgar 2021-09-22 18:29:30 -05:00
parent af8bd246a9
commit 9365dd7b1a
3 changed files with 141 additions and 2 deletions

View file

@ -186,7 +186,12 @@ class EmployeeView(MasterView):
employee = f.model_instance
f.set_renderer('person', self.render_person)
f.set_renderer('users', self.render_users)
if self.creating or self.editing:
f.remove('users')
else:
f.set_readonly('users')
f.set_renderer('users', self.render_users)
f.set_renderer('stores', self.render_stores)
f.set_label('stores', "Stores") # TODO: should not be necessary

View file

@ -634,6 +634,25 @@ class PersonView(MasterView):
'employee_history_data': self.get_context_employee_history(employee),
}
def profile_update_employee_id(self):
"""
View to update an employee's ID value.
"""
app = self.get_rattail_app()
employment = app.get_employment_handler()
person = self.get_instance()
employee = employment.get_employee(person)
data = self.request.json_body
employee.id = data['employee_id']
self.Session.flush()
return {
'success': True,
'employee': self.get_context_employee(employee),
}
def make_note_form(self, mode, person):
schema = NoteSchema().bind(session=self.Session(),
person_uuid=person.uuid)
@ -784,6 +803,15 @@ class PersonView(MasterView):
config.add_view(cls, attr='profile_edit_employee_history', route_name='{}.profile_edit_employee_history'.format(route_prefix),
permission='people_profile.edit_employee_history', renderer='json')
# profile - update employee ID
config.add_route('{}.profile_update_employee_id'.format(route_prefix),
'{}/profile/update-employee-id'.format(instance_url_prefix),
request_method='POST')
config.add_view(cls, attr='profile_update_employee_id',
route_name='{}.profile_update_employee_id'.format(route_prefix),
renderer='json',
permission='employees.edit')
# manage notes from profile view
if cls.manage_notes_from_profile_view: