Working on PrivateProxy ideas; minor tweaks otherwise
svn: r13853
This commit is contained in:
parent
4392fa3120
commit
108ff236f7
@ -29,9 +29,9 @@
|
|||||||
<div id="navigation">
|
<div id="navigation">
|
||||||
{% block navigation %}
|
{% block navigation %}
|
||||||
<ul>
|
<ul>
|
||||||
<li class="{{ cview|currentSection:"home" }}"><a href="/">Home</a></li>
|
<li class="{{ tview|currentSection:"home" }}"><a href="/">Home</a></li>
|
||||||
{% for view in views %}
|
{% for view in views %}
|
||||||
<li class="{{ cview|currentSection:view.1 }}"><a href="/{{view.1}}/">{{view.0}}</a></li>
|
<li class="{{tview|currentSection:view.1 }}"><a href="/{{view.1}}/">{{view.0}}</a></li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
<li><a href="/logout">Logout</a></li>
|
<li><a href="/logout">Logout</a></li>
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
{% extends "gramps-base.html" %}
|
{% extends "gramps-base.html" %}
|
||||||
{% block title %}Gramps-Connect: {{cview}} detail {% endblock %}
|
{% block title %}Gramps-Connect: {{tview}} detail {% endblock %}
|
||||||
{% block heading %}Gramps-Connect: {{cview}} detail {% endblock %}
|
{% block heading %}Gramps-Connect: {{tview}} detail {% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{{cview}} Detail page.
|
{{tview}} Detail page.
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="content" id="IndividualDetail">
|
<div class="content" id="IndividualDetail">
|
||||||
<h3>{{form|make_name:user}}</h3>
|
<h3>Name for Person [{{person.gramps_id}}]</h3>
|
||||||
<div id="summaryarea">
|
<div id="summaryarea">
|
||||||
<table class="infolist"> {% comment %} 4 cols {% endcomment %}
|
<table class="infolist"> {% comment %} 4 cols {% endcomment %}
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -103,7 +103,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
[<a href="/person/{{person.handle}}/">Back to Person Details</a>]
|
[<a href="/person/{{person.handle}}/">Back to Person</a>]
|
||||||
{% if user.is_authenticated %}
|
{% if user.is_authenticated %}
|
||||||
{% ifequal action "edit" %}
|
{% ifequal action "edit" %}
|
||||||
<input type="hidden" name="action" value="save"/>
|
<input type="hidden" name="action" value="save"/>
|
||||||
@ -112,7 +112,6 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
[<a href="/person/{{person.handle}}/name/{{order}}/edit">Edit Name</a>]
|
[<a href="/person/{{person.handle}}/name/{{order}}/edit">Edit Name</a>]
|
||||||
[<a href="/person/{{person.handle}}/name/{{order}}/delete">Delete Name</a>]
|
[<a href="/person/{{person.handle}}/name/{{order}}/delete">Delete Name</a>]
|
||||||
[<a href="/person/{{person.handle}}/name/add">Add Name</a>]
|
|
||||||
{% endifequal %}
|
{% endifequal %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
{% load my_tags %}
|
|
||||||
<table cellspacing="0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
{% table_header %}
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for view in view_list %}<tr class="{% cycle odd,even %}">
|
|
||||||
<td><a href="/{{view.name|lower}}/">{{ view.name|escape }}</a></td>
|
|
||||||
</tr>{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
@ -1,8 +1,8 @@
|
|||||||
{% extends "gramps-base.html" %}
|
{% extends "gramps-base.html" %}
|
||||||
{% load my_tags %}
|
{% load my_tags %}
|
||||||
|
|
||||||
{% block title %}Gramps-Connect: {{cview}} view {% endblock %}
|
{% block title %}Gramps-Connect: {{tview}} view {% endblock %}
|
||||||
{% block heading %}Gramps Connect: {{cview}} view {% endblock %}
|
{% block heading %}Gramps-Connect: {{tview}} view {% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
{% extends "gramps-base.html" %}
|
{% extends "gramps-base.html" %}
|
||||||
{% load my_tags %}
|
{% load my_tags %}
|
||||||
|
|
||||||
{% block title %}Gramps-Connect: {{cview}} detail {% endblock %}
|
{% block title %}Gramps-Connect: {{tview}} detail {% endblock %}
|
||||||
{% block heading %}Gramps-Connect: {{cview}} detail {% endblock %}
|
{% block heading %}Gramps-Connect: {{tview}} detail {% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
|
@ -11,91 +11,54 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="content" id="IndividualDetail">
|
<div class="content" id="IndividualDetail">
|
||||||
<h3>{{person.name_set|make_name:user}}</h3>
|
<h3></h3>
|
||||||
<div id="summaryarea">
|
<div id="summaryarea">
|
||||||
<table class="infolist"> {% comment %} 5 cols {% endcomment %}
|
<table class="infolist"> {% comment %} 5 cols {% endcomment %}
|
||||||
<tbody>
|
<tbody>
|
||||||
|
|
||||||
{% if user.is_authenticated %}
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Family:</td>
|
<td class="ColumnAttribute">Family:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"surname"}}</td>
|
<td class="ColumnValue" id="data">{{name.surname}}</td>
|
||||||
<td class="ColumnAttribute">Prefix:</td>
|
<td class="ColumnAttribute">Prefix:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"prefix"}}</td>
|
<td class="ColumnValue" id="data">{{name.prefix}}</td>
|
||||||
<td rowspan="5" colspan="2" style="border:solid 2px #7D5925;">Image:</td>
|
<td rowspan="6" colspan="2" style="border:solid 2px #7D5925;">Image:</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="ColumnAttribute" colspan="2"></td>
|
<td class="ColumnAttribute" colspan="2"></td>
|
||||||
<td class="ColumnAttribute">Suffix:</td>
|
<td class="ColumnAttribute">Suffix:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"suffix"}}</td>
|
<td class="ColumnValue" id="data">{{name.suffix}}</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Given:</td>
|
<td class="ColumnAttribute">Given:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"first_name"}}</td>
|
<td class="ColumnValue" id="data">{{name.first_name}}</td>
|
||||||
<td class="ColumnAttribute">Call Name:</td>
|
<td class="ColumnAttribute">Call Name:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"call"}}</td>
|
<td class="ColumnValue" id="data">{{name.call}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Type:</td>
|
<td class="ColumnAttribute">Type:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"name_type"}}</td>
|
<td class="ColumnValue" id="data">{{name.name_type}}</td>
|
||||||
<td class="ColumnAttribute">Patronymic:</td>
|
<td class="ColumnAttribute">Patronymic:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"patronymic"}}</td>
|
<td class="ColumnValue" id="data">{{name.patronymic}}</td>
|
||||||
</tr>
|
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="ColumnAttribute" colspan="2"></td>
|
<td class="ColumnAttribute" colspan="2"></td>
|
||||||
<td class="ColumnAttribute">Title:</td>
|
<td class="ColumnAttribute">Title:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"title"}}</td>
|
<td class="ColumnValue" id="data">{{name.title}}</td>
|
||||||
<tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Gender:</td>
|
<td class="ColumnAttribute">Gender:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.gender_type|escape}}</td>
|
<td class="ColumnValue" id="data">{{person.gender_type}}</td>
|
||||||
<td class="ColumnAttribute">ID:</td>
|
<td class="ColumnAttribute">ID:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.gramps_id|escape}}</td>
|
<td class="ColumnValue" id="data">{{person.gramps_id}}</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td class="ColumnAttribute">Marker:</td>
|
<td class="ColumnAttribute">Marker:</td>
|
||||||
<td class="ColumnValue" id="data">{{person.marker_type|escape}}</td>
|
<td class="ColumnValue" id="data">{{person.marker_type}}</td>
|
||||||
|
<td class="ColumnAttribute" colspan="3"></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
{% else %}
|
|
||||||
|
|
||||||
<tr>
|
|
||||||
<td class="ColumnAttribute">Family:</td>
|
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"surname"}}</td>
|
|
||||||
<td class="ColumnAttribute">Prefix:</td>
|
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
|
||||||
<td rowspan="5" colspan="2" style="border:solid 2px #7D5925;">Image:</td>
|
|
||||||
</tr>
|
|
||||||
<td class="ColumnAttribute" colspan="2"></td>
|
|
||||||
<td class="ColumnAttribute">Suffix:</td>
|
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
|
||||||
<tr>
|
|
||||||
<td class="ColumnAttribute">Given:</td>
|
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
|
||||||
<td class="ColumnAttribute">Call Name:</td>
|
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ColumnAttribute">Type:</td>
|
|
||||||
<td class="ColumnValue" id="data">{{person.name_set|preferred:"name_type"}}</td>
|
|
||||||
<td class="ColumnAttribute">Patronymic:</td>
|
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
|
||||||
</tr>
|
|
||||||
</tr>
|
|
||||||
<td class="ColumnAttribute" colspan="2"></td>
|
|
||||||
<td class="ColumnAttribute">Title:</td>
|
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
|
||||||
<tr>
|
|
||||||
<tr>
|
|
||||||
<td class="ColumnAttribute">Gender:</td>
|
|
||||||
<td class="ColumnValue" id="data">{{person.gender_type|escape}}</td>
|
|
||||||
<td class="ColumnAttribute">ID:</td>
|
|
||||||
<td class="ColumnValue" id="data">{{person.gramps_id|escape}}</td>
|
|
||||||
<td class="ColumnAttribute">Marker:</td>
|
|
||||||
<td class="ColumnValue" id="data"></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- Tabs -->
|
<!-- Tabs -->
|
||||||
|
@ -344,6 +344,17 @@ class Person(PrimaryObject):
|
|||||||
# .lds_set
|
# .lds_set
|
||||||
# .url_set
|
# .url_set
|
||||||
|
|
||||||
|
def get_primary_name(self):
|
||||||
|
"""
|
||||||
|
Return the preferred name of a person.
|
||||||
|
"""
|
||||||
|
names = self.name_set.all().order_by("order")
|
||||||
|
if names.count() > 0:
|
||||||
|
name = names[0]
|
||||||
|
else:
|
||||||
|
name = None
|
||||||
|
return name
|
||||||
|
|
||||||
class Family(PrimaryObject):
|
class Family(PrimaryObject):
|
||||||
father = models.ForeignKey('Person', related_name="father_ref",
|
father = models.ForeignKey('Person', related_name="father_ref",
|
||||||
null=True, blank=True)
|
null=True, blank=True)
|
||||||
@ -456,6 +467,18 @@ class Name(DateObject, SecondaryObject):
|
|||||||
["", " "][bool(self.prefix)],
|
["", " "][bool(self.prefix)],
|
||||||
self.surname,
|
self.surname,
|
||||||
self.first_name)
|
self.first_name)
|
||||||
|
@staticmethod
|
||||||
|
def get_dummy():
|
||||||
|
name = Name()
|
||||||
|
#name.
|
||||||
|
|
||||||
|
def sanitize(self):
|
||||||
|
self.first_name = "[Private]"
|
||||||
|
self.prefix = ""
|
||||||
|
self.suffix = ""
|
||||||
|
self.prefix = ""
|
||||||
|
self.prefix = ""
|
||||||
|
self.prefix = ""
|
||||||
|
|
||||||
class Lds(DateObject, SecondaryObject):
|
class Lds(DateObject, SecondaryObject):
|
||||||
"""
|
"""
|
||||||
|
@ -48,15 +48,12 @@ register.filter('preview', preview)
|
|||||||
make_name.is_safe = True
|
make_name.is_safe = True
|
||||||
register.filter('make_name', make_name)
|
register.filter('make_name', make_name)
|
||||||
|
|
||||||
def preferred(name_set, attr):
|
def preferred(person):
|
||||||
try:
|
try:
|
||||||
name = name_set.get(preferred=True)
|
name = person.name_set.get(preferred=True)
|
||||||
except:
|
except:
|
||||||
return "[No preferred name]"
|
name = None
|
||||||
if name:
|
return name
|
||||||
return escape(getattr(name, attr))
|
|
||||||
else:
|
|
||||||
return "[Missing]"
|
|
||||||
preferred.is_safe = True
|
preferred.is_safe = True
|
||||||
register.filter('preferred', preferred)
|
register.filter('preferred', preferred)
|
||||||
|
|
||||||
@ -88,13 +85,6 @@ def table_header(context, headers = None):
|
|||||||
register.inclusion_tag('table_header.html',
|
register.inclusion_tag('table_header.html',
|
||||||
takes_context=True)(table_header)
|
takes_context=True)(table_header)
|
||||||
|
|
||||||
def view_navigation(context):
|
|
||||||
# add things for the view here
|
|
||||||
return context
|
|
||||||
|
|
||||||
register.inclusion_tag('view_navigation.html',
|
|
||||||
takes_context=True)(view_navigation)
|
|
||||||
|
|
||||||
def paginator(context, adjacent_pages=2):
|
def paginator(context, adjacent_pages=2):
|
||||||
"""
|
"""
|
||||||
To be used in conjunction with the object_list generic view.
|
To be used in conjunction with the object_list generic view.
|
||||||
|
@ -42,6 +42,7 @@ from django.db.models import Q
|
|||||||
import web
|
import web
|
||||||
from web.grampsdb.models import *
|
from web.grampsdb.models import *
|
||||||
from web.grampsdb.forms import NameForm
|
from web.grampsdb.forms import NameForm
|
||||||
|
from web.utils import probably_alive
|
||||||
|
|
||||||
_ = lambda text: text
|
_ = lambda text: text
|
||||||
|
|
||||||
@ -82,13 +83,13 @@ def context_processor(request):
|
|||||||
def main_page(request):
|
def main_page(request):
|
||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
context["view"] = 'home'
|
context["view"] = 'home'
|
||||||
context["cview"] = _('Home')
|
context["tview"] = _('Home')
|
||||||
return render_to_response("main_page.html", context)
|
return render_to_response("main_page.html", context)
|
||||||
|
|
||||||
def logout_page(request):
|
def logout_page(request):
|
||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
context["view"] = 'home'
|
context["view"] = 'home'
|
||||||
context["cview"] = _('Home')
|
context["tview"] = _('Home')
|
||||||
logout(request)
|
logout(request)
|
||||||
return HttpResponseRedirect('/')
|
return HttpResponseRedirect('/')
|
||||||
|
|
||||||
@ -100,7 +101,7 @@ def user_page(request, username):
|
|||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
context["username"] = username
|
context["username"] = username
|
||||||
context["view"] = 'user'
|
context["view"] = 'user'
|
||||||
context["cview"] = _('User')
|
context["tview"] = _('User')
|
||||||
return render_to_response('user_page.html', context)
|
return render_to_response('user_page.html', context)
|
||||||
|
|
||||||
def view_name_detail(request, handle, order, action="view"):
|
def view_name_detail(request, handle, order, action="view"):
|
||||||
@ -171,7 +172,7 @@ def view_name_detail(request, handle, order, action="view"):
|
|||||||
action = "edit"
|
action = "edit"
|
||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
context["action"] = action
|
context["action"] = action
|
||||||
context["cview"] = action #_('Name')
|
context["tview"] = _('Name')
|
||||||
context["view"] = 'name'
|
context["view"] = 'name'
|
||||||
context["handle"] = handle
|
context["handle"] = handle
|
||||||
context["id"] = id
|
context["id"] = id
|
||||||
@ -190,67 +191,91 @@ def view_name_detail(request, handle, order, action="view"):
|
|||||||
else:
|
else:
|
||||||
return render_to_response(view_template, context)
|
return render_to_response(view_template, context)
|
||||||
|
|
||||||
|
|
||||||
|
class PrivateProxy(object):
|
||||||
|
def __init__(self, obj):
|
||||||
|
self.obj = obj
|
||||||
|
|
||||||
|
def __getattr__(self, attr):
|
||||||
|
return getattr(self.obj, attr)
|
||||||
|
|
||||||
def view_detail(request, view, handle):
|
def view_detail(request, view, handle):
|
||||||
|
context = RequestContext(request)
|
||||||
|
context["view"] = view
|
||||||
if view == "event":
|
if view == "event":
|
||||||
try:
|
try:
|
||||||
obj = Event.objects.get(handle=handle)
|
obj = Event.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_event_detail.html'
|
view_template = 'view_event_detail.html'
|
||||||
|
context["tview"] = _("Event")
|
||||||
elif view == "family":
|
elif view == "family":
|
||||||
try:
|
try:
|
||||||
obj = Family.objects.get(handle=handle)
|
obj = Family.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_family_detail.html'
|
view_template = 'view_family_detail.html'
|
||||||
|
context["tview"] = _("Family")
|
||||||
elif view == "media":
|
elif view == "media":
|
||||||
try:
|
try:
|
||||||
obj = Media.objects.get(handle=handle)
|
obj = Media.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_media_detail.html'
|
view_template = 'view_media_detail.html'
|
||||||
|
context["tview"] = _("Media")
|
||||||
elif view == "note":
|
elif view == "note":
|
||||||
try:
|
try:
|
||||||
obj = Note.objects.get(handle=handle)
|
obj = Note.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_note_detail.html'
|
view_template = 'view_note_detail.html'
|
||||||
|
context["tview"] = _("Note")
|
||||||
elif view == "person":
|
elif view == "person":
|
||||||
try:
|
try:
|
||||||
obj = Person.objects.get(handle=handle)
|
obj = Person.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_person_detail.html'
|
view_template = 'view_person_detail.html'
|
||||||
|
person = obj
|
||||||
|
name = person.get_primary_name()
|
||||||
|
if request.user.is_authenticated():
|
||||||
|
pass # see everything, no limits
|
||||||
|
elif probably_alive(person.handle):
|
||||||
|
name.first_name = "[Living]"
|
||||||
|
elif person.private:
|
||||||
|
name = Name()
|
||||||
|
name.surname = "[Private]"
|
||||||
|
name.first_name = "[Private]"
|
||||||
|
# FIXME: protect everything else; what if name.private?
|
||||||
|
context["name"] = name
|
||||||
|
context["tview"] = _("Person")
|
||||||
elif view == "place":
|
elif view == "place":
|
||||||
try:
|
try:
|
||||||
obj = Place.objects.get(handle=handle)
|
obj = Place.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_place_detail.html'
|
view_template = 'view_place_detail.html'
|
||||||
|
context["tview"] = _("Place")
|
||||||
elif view == "repository":
|
elif view == "repository":
|
||||||
try:
|
try:
|
||||||
obj = Repository.objects.get(handle=handle)
|
obj = Repository.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_repository_detail.html'
|
view_template = 'view_repository_detail.html'
|
||||||
|
context["tview"] = _("Repository")
|
||||||
elif view == "source":
|
elif view == "source":
|
||||||
try:
|
try:
|
||||||
obj = Source.objects.get(handle=handle)
|
obj = Source.objects.get(handle=handle)
|
||||||
except:
|
except:
|
||||||
raise Http404(_("Requested %s does not exist.") % view)
|
raise Http404(_("Requested %s does not exist.") % view)
|
||||||
view_template = 'view_source_detail.html'
|
view_template = 'view_source_detail.html'
|
||||||
|
context["tview"] = _("Source")
|
||||||
else:
|
else:
|
||||||
raise Http404(_("Requested page type not known"))
|
raise Http404(_("Requested page type not known"))
|
||||||
cview = view.title()
|
|
||||||
context = RequestContext(request)
|
|
||||||
context["cview"] = cview
|
|
||||||
context["view"] = view
|
|
||||||
context["handle"] = handle
|
|
||||||
context[view] = obj
|
context[view] = obj
|
||||||
return render_to_response(view_template, context)
|
return render_to_response(view_template, context)
|
||||||
|
|
||||||
def view(request, view):
|
def view(request, view):
|
||||||
cview = view.title()
|
|
||||||
search = ""
|
search = ""
|
||||||
if view == "event":
|
if view == "event":
|
||||||
if request.user.is_authenticated():
|
if request.user.is_authenticated():
|
||||||
@ -471,7 +496,7 @@ def view(request, view):
|
|||||||
context = RequestContext(request)
|
context = RequestContext(request)
|
||||||
context["page"] = page
|
context["page"] = page
|
||||||
context["view"] = view
|
context["view"] = view
|
||||||
context["cview"] = cview
|
context["tview"] = _(view.title())
|
||||||
context["search"] = search
|
context["search"] = search
|
||||||
context["total"] = total
|
context["total"] = total
|
||||||
if search:
|
if search:
|
||||||
|
@ -131,7 +131,11 @@ def render(formfield, action):
|
|||||||
retval = formfield.as_widget()
|
retval = formfield.as_widget()
|
||||||
return retval
|
return retval
|
||||||
|
|
||||||
|
def make_button(text, url):
|
||||||
|
return """[<a href="%s">%s</a>]""" % (url, text)
|
||||||
|
|
||||||
def person_event_table(djperson, user):
|
def person_event_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Description"),
|
table.columns(_("Description"),
|
||||||
_("Type"),
|
_("Type"),
|
||||||
@ -153,9 +157,14 @@ def person_event_table(djperson, user):
|
|||||||
display_date(djevent),
|
display_date(djevent),
|
||||||
get_title(djevent.place),
|
get_title(djevent.place),
|
||||||
str(event_ref.role_type))
|
str(event_ref.role_type))
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add event"), "/person/%s/event/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_name_table(djperson, user):
|
def person_name_table(djperson, user):
|
||||||
|
print "person_name_table", djperson, user
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Name"),
|
table.columns(_("Name"),
|
||||||
_("Type"),
|
_("Type"),
|
||||||
@ -172,7 +181,10 @@ def person_name_table(djperson, user):
|
|||||||
object_id=name.id)
|
object_id=name.id)
|
||||||
note = ""
|
note = ""
|
||||||
if note_refs.count() > 0:
|
if note_refs.count() > 0:
|
||||||
|
try:
|
||||||
note = dji.Note.get(id=note_refs[0].object_id).text[:50]
|
note = dji.Note.get(id=note_refs[0].object_id).text[:50]
|
||||||
|
except:
|
||||||
|
note = None
|
||||||
table.row(make_name(name, user),
|
table.row(make_name(name, user),
|
||||||
str(name.name_type),
|
str(name.name_type),
|
||||||
name.group_as,
|
name.group_as,
|
||||||
@ -181,9 +193,13 @@ def person_name_table(djperson, user):
|
|||||||
links.append(('URL', "/person/%s/name/%s" %
|
links.append(('URL', "/person/%s/name/%s" %
|
||||||
(name.person.handle, name.order)))
|
(name.person.handle, name.order)))
|
||||||
table.links(links)
|
table.links(links)
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add name"), "/person/%s/name/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_source_table(djperson, user):
|
def person_source_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("ID"),
|
table.columns(_("ID"),
|
||||||
_("Title"),
|
_("Title"),
|
||||||
@ -200,9 +216,13 @@ def person_source_table(djperson, user):
|
|||||||
source_ref.ref_object.author,
|
source_ref.ref_object.author,
|
||||||
source_ref.page,
|
source_ref.page,
|
||||||
)
|
)
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add source"), "/person/%s/source/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_attribute_table(djperson, user):
|
def person_attribute_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Type"),
|
table.columns(_("Type"),
|
||||||
_("Value"),
|
_("Value"),
|
||||||
@ -214,9 +234,13 @@ def person_attribute_table(djperson, user):
|
|||||||
for attribute in attributes:
|
for attribute in attributes:
|
||||||
table.row(attribute.attribute_type.name,
|
table.row(attribute.attribute_type.name,
|
||||||
attribute.value)
|
attribute.value)
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add attribute"), "/person/%s/attribute/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_address_table(djperson, user):
|
def person_address_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Date"),
|
table.columns(_("Date"),
|
||||||
_("Address"),
|
_("Address"),
|
||||||
@ -232,9 +256,13 @@ def person_address_table(djperson, user):
|
|||||||
location.city,
|
location.city,
|
||||||
location.state,
|
location.state,
|
||||||
location.country)
|
location.country)
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add address"), "/person/%s/address/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_note_table(djperson, user):
|
def person_note_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("ID"),
|
_("ID"),
|
||||||
@ -250,16 +278,24 @@ def person_note_table(djperson, user):
|
|||||||
table.row(table.db.get_note_from_handle(note.handle),
|
table.row(table.db.get_note_from_handle(note.handle),
|
||||||
str(note_ref.ref_object.note_type),
|
str(note_ref.ref_object.note_type),
|
||||||
note_ref.ref_object.text[:50])
|
note_ref.ref_object.text[:50])
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add note"), "/person/%s/note/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_gallery_table(djperson, user):
|
def person_gallery_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Name"),
|
table.columns(_("Name"),
|
||||||
_("Type"),
|
_("Type"),
|
||||||
)
|
)
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add gallery"), "/person/%s/gallery/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_internet_table(djperson, user):
|
def person_internet_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Type"),
|
table.columns(_("Type"),
|
||||||
_("Path"),
|
_("Path"),
|
||||||
@ -270,9 +306,13 @@ def person_internet_table(djperson, user):
|
|||||||
table.row(str(url.url_type),
|
table.row(str(url.url_type),
|
||||||
url.path,
|
url.path,
|
||||||
url.desc)
|
url.desc)
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add internet"), "/person/%s/internet/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_association_table(djperson, user):
|
def person_association_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Name"),
|
table.columns(_("Name"),
|
||||||
_("ID"),
|
_("ID"),
|
||||||
@ -282,9 +322,13 @@ def person_association_table(djperson, user):
|
|||||||
associations = gperson.get_person_ref_list()
|
associations = gperson.get_person_ref_list()
|
||||||
for association in associations:
|
for association in associations:
|
||||||
table.row()
|
table.row()
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add association"), "/person/%s/association/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_lds_table(djperson, user):
|
def person_lds_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Type"),
|
table.columns(_("Type"),
|
||||||
_("Date"),
|
_("Date"),
|
||||||
@ -300,9 +344,13 @@ def person_lds_table(djperson, user):
|
|||||||
str(lds.status),
|
str(lds.status),
|
||||||
lds.temple,
|
lds.temple,
|
||||||
get_title(lds.place))
|
get_title(lds.place))
|
||||||
return table.get_html()
|
retval += table.get_html()
|
||||||
|
if user.is_authenticated():
|
||||||
|
retval += make_button(_("Add LDS"), "/person/%s/lds/add" % djperson.handle)
|
||||||
|
return retval
|
||||||
|
|
||||||
def person_reference_table(djperson, user):
|
def person_reference_table(djperson, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(_("Type"),
|
table.columns(_("Type"),
|
||||||
_("ID"),
|
_("ID"),
|
||||||
@ -316,6 +364,7 @@ def person_reference_table(djperson, user):
|
|||||||
return table.get_html()
|
return table.get_html()
|
||||||
|
|
||||||
def family_children_table(djfamily, user):
|
def family_children_table(djfamily, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("#"),
|
_("#"),
|
||||||
@ -332,6 +381,7 @@ def family_children_table(djfamily, user):
|
|||||||
return table.get_html()
|
return table.get_html()
|
||||||
|
|
||||||
def family_event_table(djfamily, user):
|
def family_event_table(djfamily, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("Description"),
|
_("Description"),
|
||||||
@ -345,6 +395,7 @@ def family_event_table(djfamily, user):
|
|||||||
return table.get_html()
|
return table.get_html()
|
||||||
|
|
||||||
def family_source_table(djfamily, user):
|
def family_source_table(djfamily, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("ID"),
|
_("ID"),
|
||||||
@ -356,6 +407,7 @@ def family_source_table(djfamily, user):
|
|||||||
return table.get_html()
|
return table.get_html()
|
||||||
|
|
||||||
def family_attribute_table(djfamily, user):
|
def family_attribute_table(djfamily, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("Type"),
|
_("Type"),
|
||||||
@ -365,6 +417,7 @@ def family_attribute_table(djfamily, user):
|
|||||||
return table.get_html()
|
return table.get_html()
|
||||||
|
|
||||||
def family_note_table(djfamily, user):
|
def family_note_table(djfamily, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("Type"),
|
_("Type"),
|
||||||
@ -374,6 +427,7 @@ def family_note_table(djfamily, user):
|
|||||||
return table.get_html()
|
return table.get_html()
|
||||||
|
|
||||||
def family_gallery_table(djfamily, user):
|
def family_gallery_table(djfamily, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("Column"),
|
_("Column"),
|
||||||
@ -382,6 +436,7 @@ def family_gallery_table(djfamily, user):
|
|||||||
return table.get_html()
|
return table.get_html()
|
||||||
|
|
||||||
def family_lds_table(djfamily, user):
|
def family_lds_table(djfamily, user):
|
||||||
|
retval = ""
|
||||||
table = Table()
|
table = Table()
|
||||||
table.columns(
|
table.columns(
|
||||||
_("Type"),
|
_("Type"),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user