diff --git a/src/data/templates/view_person_detail.html b/src/data/templates/view_person_detail.html index 8bfbb3632..b3009bc9b 100644 --- a/src/data/templates/view_person_detail.html +++ b/src/data/templates/view_person_detail.html @@ -48,21 +48,21 @@ {{nameform.first_name.label}}: - {% render nameform.first_name user action %} + {% render nameform.first_name user action None "/person/?search=given%%3D%s" nameform.model.first_name %} {% render nameform.suffix user action %} {{surnameform.surname.label}}: - {% render surnameform.prefix user action %} - {% render surnameform.surname user action %} + {% render surnameform.prefix user action %} + {% render surnameform.surname user action None "/person/?search=surname%%3D%s" surnameform.model.surname %} {{surnameform.name_origin_type.label}}: {% render surnameform.name_origin_type user action %} {{personform.gender_type.label}}: - {% render personform.gender_type user action %} + {% render personform.gender_type user action None "/person/?search=gender%%3D%s" personform.model.gender_type %} {{personform.gramps_id.label}}: {% render personform.gramps_id user action %} {{personform.tags.label}}: diff --git a/src/webapp/grampsdb/models.py b/src/webapp/grampsdb/models.py index 64425724a..8b17aa857 100644 --- a/src/webapp/grampsdb/models.py +++ b/src/webapp/grampsdb/models.py @@ -166,6 +166,13 @@ class EventType(mGrampsType): DEATH = 13 val = models.IntegerField('event type', choices=_DATAMAP, blank=False) + def get_url(self): + return "/event/?search=type%%3D%s" % self.name + + def get_link(self): + return "%s" % (self.get_url(), self.name) + + class FamilyRelType(mGrampsType): from gen.lib.familyreltype import FamilyRelType _DATAMAP = get_datamap(FamilyRelType) diff --git a/src/webapp/grampsdb/views.py b/src/webapp/grampsdb/views.py index 8babc9f13..75d9a9128 100644 --- a/src/webapp/grampsdb/views.py +++ b/src/webapp/grampsdb/views.py @@ -98,6 +98,7 @@ def context_processor(request): context["gramps_version"] = const.VERSION context["views"] = VIEWS context["menu"] = MENU + context["None"] = None context["True"] = True context["False"] = False context["sitename"] = Config.objects.get(setting="sitename").value diff --git a/src/webapp/utils.py b/src/webapp/utils.py index a3719cacc..7f201301d 100644 --- a/src/webapp/utils.py +++ b/src/webapp/utils.py @@ -878,7 +878,7 @@ def display_date(obj): else: return "" -def render(formfield, user, action, id=None): +def render(formfield, user, action, id=None, url=None, *args): if not user.is_authenticated(): action = "view" if action == "view": # show as text @@ -888,7 +888,12 @@ def render(formfield, user, action, id=None): if (item.__class__.__name__ == 'ManyRelatedManager'): retval = ", ".join([i.get_link() for i in item.all()]) else: - retval = str(item) + if url: + retval = """%s""" % (url % args, item) + elif hasattr(item, "get_link"): + retval = item.get_link() + else: + retval = str(item) #### Some cleanup: if retval == "True": retval = "Yes"