Add "view profile" for viewing *all* details of a given person at once

feature preview (easter egg) only for now though, lots of refinement to do yet
This commit is contained in:
Lance Edgar 2019-04-10 16:46:16 -05:00
parent ec70d85638
commit 6ae703dfd9
2 changed files with 180 additions and 0 deletions

View file

@ -225,6 +225,20 @@ class PeopleView(MasterView):
(model.VendorContact, 'person_uuid'),
]
def view_profile(self):
"""
View which exposes the "full profile" for a given person, i.e. all
related customer, employee, user info etc.
"""
self.viewing = True
person = self.get_instance()
context = {
'person': person,
'instance': person,
'instance_title': self.get_instance_title(person),
}
return self.render_to_response('view_profile', context)
def make_user(self):
uuid = self.request.POST['person_uuid']
person = self.Session.query(model.Person).get(uuid)
@ -249,8 +263,19 @@ class PeopleView(MasterView):
@classmethod
def _people_defaults(cls, config):
permission_prefix = cls.get_permission_prefix()
route_prefix = cls.get_route_prefix()
url_prefix = cls.get_url_prefix()
model_key = cls.get_model_key()
model_title = cls.get_model_title()
# view profile
config.add_tailbone_permission(permission_prefix, '{}.view_profile'.format(permission_prefix),
"View full \"profile\" for {}".format(model_title))
config.add_route('{}.view_profile'.format(route_prefix), '{}/{{{}}}/profile'.format(url_prefix, model_key),
request_method='GET')
config.add_view(cls, attr='view_profile', route_name='{}.view_profile'.format(route_prefix),
permission='{}.view_profile'.format(permission_prefix))
# make user for person
config.add_route('{}.make_user'.format(route_prefix), '{}/make-user'.format(url_prefix),