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"