Some basic name editing; moved forms to web/grampsdb
svn: r13833
This commit is contained in:
parent
9f74bdacce
commit
d0318dd1a2
@ -11,7 +11,7 @@
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="content" id="IndividualDetail">
|
<div class="content" id="IndividualDetail">
|
||||||
<h3>NAME{# form|make_name:user #}</h3>
|
<h3>{{form|make_name:user}}</h3>
|
||||||
<div id="summaryarea">
|
<div id="summaryarea">
|
||||||
<table class="infolist"> {% comment %} 4 cols {% endcomment %}
|
<table class="infolist"> {% comment %} 4 cols {% endcomment %}
|
||||||
<tbody>
|
<tbody>
|
||||||
@ -24,27 +24,34 @@
|
|||||||
<form method="post">
|
<form method="post">
|
||||||
{% endifequal %}
|
{% endifequal %}
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Family:</td>
|
<td class="ColumnAttribute">{{form.surname.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.surname|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.surname|render:action}}</td>
|
||||||
<td class="ColumnAttribute">Prefix:</td>
|
<td class="ColumnAttribute">{{form.prefix.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.prefix|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.prefix|render:action}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
<td class="ColumnAttribute">Given:</td>
|
<td class="ColumnAttribute">{{form.first_name.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.first_name|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.first_name|render:action}}</td>
|
||||||
<td class="ColumnAttribute">Call Name:</td>
|
<td class="ColumnAttribute">{{form.call.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.call|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.call|render:action}}</td>
|
||||||
<tr>
|
<tr>
|
||||||
</tr>
|
</tr>
|
||||||
<td class="ColumnAttribute">Title:</td>
|
<td class="ColumnAttribute">{{form.title.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.title|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.title|render:action}}</td>
|
||||||
<td class="ColumnAttribute">Suffix:</td>
|
<td class="ColumnAttribute">{{form.suffix.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.suffix|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.suffix|render:action}}</td>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Patronymic:</td>
|
<td class="ColumnAttribute">{{form.patronymic.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.patronymic|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.patronymic|render:action}}</td>
|
||||||
<td class="ColumnAttribute">Type:</td>
|
<td class="ColumnAttribute">{{form.name_type.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.name_type|render:action}}</td>
|
<td class="ColumnValue" id="data">{{form.name_type|render:action}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td class="ColumnAttribute">{{form.preferred.label}}:</td>
|
||||||
|
{% if form.model.preferred %}
|
||||||
|
<td class="ColumnValue" id="data" colspan="3">True</td>
|
||||||
|
{% else %}
|
||||||
|
<td class="ColumnValue" id="data" colspan="3">{{form.preferred|render:action}}</td>
|
||||||
|
{% endif %}
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
@ -52,25 +59,25 @@
|
|||||||
{% else %}
|
{% else %}
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Family:</td>
|
<td class="ColumnAttribute">{{form.surname.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.surname}}</td>
|
<td class="ColumnValue" id="data">{{form.surname}}</td>
|
||||||
<td class="ColumnAttribute">Prefix:</td>
|
<td class="ColumnAttribute">{{form.prefix.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
<td class="ColumnValue" id="data">[Private]</td>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Given:</td>
|
<td class="ColumnAttribute">{{form.given.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
<td class="ColumnValue" id="data">[Private]</td>
|
||||||
<td class="ColumnAttribute">Call Name:</td>
|
<td class="ColumnAttribute">{{form.call.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
<td class="ColumnValue" id="data">[Private]</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tr>
|
</tr>
|
||||||
<td class="ColumnAttribute">Title:</td>
|
<td class="ColumnAttribute">{{form.title.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
<td class="ColumnValue" id="data">[Private]</td>
|
||||||
<td class="ColumnAttribute">Suffix:</td>
|
<td class="ColumnAttribute">{{form.suffix.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
<td class="ColumnValue" id="data">[Private]</td>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="ColumnAttribute">Patronymic:</td>
|
<td class="ColumnAttribute">{{form.patronymic.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">[Private]</td>
|
<td class="ColumnValue" id="data">[Private]</td>
|
||||||
<td class="ColumnAttribute">Type:</td>
|
<td class="ColumnAttribute">{{form.name_type.label}}:</td>
|
||||||
<td class="ColumnValue" id="data">{{form.name_type}}</td>
|
<td class="ColumnValue" id="data">{{form.name_type}}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
@ -105,7 +112,7 @@
|
|||||||
{% 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/{{order}}/add">Add Name</a>]
|
[<a href="/person/{{person.handle}}/name/add">Add Name</a>]
|
||||||
{% endifequal %}
|
{% endifequal %}
|
||||||
{% else %}
|
{% else %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -21,7 +21,10 @@ class NameForm(forms.ModelForm):
|
|||||||
class Meta:
|
class Meta:
|
||||||
model = Name
|
model = Name
|
||||||
fields = ("suffix", "first_name", "title", "prefix",
|
fields = ("suffix", "first_name", "title", "prefix",
|
||||||
"call", "surname", "patronymic", "name_type")
|
"call", "surname", "patronymic", "name_type",
|
||||||
|
"preferred")
|
||||||
|
# Add these because they are TextFields, which render as
|
||||||
|
# Textareas:
|
||||||
surname = forms.CharField(required=False, widget=TextInput())
|
surname = forms.CharField(required=False, widget=TextInput())
|
||||||
first_name = forms.CharField(required=False, widget=TextInput())
|
first_name = forms.CharField(required=False, widget=TextInput())
|
||||||
title = forms.CharField(required=False, widget=TextInput())
|
title = forms.CharField(required=False, widget=TextInput())
|
@ -49,7 +49,10 @@ make_name.is_safe = True
|
|||||||
register.filter('make_name', make_name)
|
register.filter('make_name', make_name)
|
||||||
|
|
||||||
def preferred(name_set, attr):
|
def preferred(name_set, attr):
|
||||||
|
try:
|
||||||
name = name_set.get(preferred=True)
|
name = name_set.get(preferred=True)
|
||||||
|
except:
|
||||||
|
return "[No preferred name]"
|
||||||
if name:
|
if name:
|
||||||
return escape(getattr(name, attr))
|
return escape(getattr(name, attr))
|
||||||
else:
|
else:
|
||||||
|
@ -41,11 +41,11 @@ from django.db.models import Q
|
|||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
import web
|
import web
|
||||||
from web.grampsdb.models import *
|
from web.grampsdb.models import *
|
||||||
from web.forms import NameForm
|
from web.grampsdb.forms import NameForm
|
||||||
|
|
||||||
_ = lambda text: text
|
_ = lambda text: text
|
||||||
|
|
||||||
# Views: [(Nice name plural, /name/handle, Model), ]
|
# Views: [(<Nice name plural>, /<name>/handle, <Model>), ]
|
||||||
VIEWS = [(_('People'), 'person', Name),
|
VIEWS = [(_('People'), 'person', Name),
|
||||||
(_('Families'), 'family', Family),
|
(_('Families'), 'family', Family),
|
||||||
(_('Events'), 'event', Event),
|
(_('Events'), 'event', Event),
|
||||||
@ -104,6 +104,9 @@ def user_page(request, username):
|
|||||||
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"):
|
||||||
|
if order == "add":
|
||||||
|
order = 0
|
||||||
|
action = "add"
|
||||||
if request.POST.has_key("action"):
|
if request.POST.has_key("action"):
|
||||||
action = request.POST.get("action")
|
action = request.POST.get("action")
|
||||||
if action == "view":
|
if action == "view":
|
||||||
@ -117,15 +120,39 @@ def view_name_detail(request, handle, order, action="view"):
|
|||||||
form = NameForm(instance=name)
|
form = NameForm(instance=name)
|
||||||
form.model = name
|
form.model = name
|
||||||
elif action == "delete":
|
elif action == "delete":
|
||||||
pass
|
person = Person.objects.get(handle=handle)
|
||||||
|
person.name_set.get(order=order).delete()
|
||||||
|
action = "back"
|
||||||
elif action == "add":
|
elif action == "add":
|
||||||
pass
|
person = Person.objects.get(handle=handle)
|
||||||
|
name = Name()
|
||||||
|
form = NameForm()
|
||||||
|
form.model = name
|
||||||
|
action = "edit"
|
||||||
|
elif action == "new":
|
||||||
|
person = Person.objects.get(handle=handle)
|
||||||
|
form = NameForm(request.POST)
|
||||||
|
if form.is_valid():
|
||||||
|
name.save()
|
||||||
|
action = "save"
|
||||||
|
else:
|
||||||
|
action = "edit"
|
||||||
elif action == "save":
|
elif action == "save":
|
||||||
person = Person.objects.get(handle=handle)
|
person = Person.objects.get(handle=handle)
|
||||||
name = person.name_set.get(order=order)
|
name = person.name_set.get(order=order)
|
||||||
form = NameForm(request.POST, instance=name)
|
form = NameForm(request.POST, instance=name)
|
||||||
form.model = name
|
form.model = name
|
||||||
if form.is_valid():
|
if form.is_valid():
|
||||||
|
# now it is preferred:
|
||||||
|
if form.cleaned_data["preferred"]:
|
||||||
|
# but it wasn't:
|
||||||
|
if not name.preferred:
|
||||||
|
# set all of the other names to be
|
||||||
|
# not preferred:
|
||||||
|
person.name_set.filter(~ Q(id=name.id)) \
|
||||||
|
.update(preferred=False)
|
||||||
|
# else it always was
|
||||||
|
# else some other name is preferred
|
||||||
form.save()
|
form.save()
|
||||||
else:
|
else:
|
||||||
action = "edit"
|
action = "edit"
|
||||||
@ -144,6 +171,9 @@ def view_name_detail(request, handle, order, action="view"):
|
|||||||
context["action"] = "view"
|
context["action"] = "view"
|
||||||
return redirect("/person/%s/name/%d" %
|
return redirect("/person/%s/name/%d" %
|
||||||
(person.handle, name.order), context)
|
(person.handle, name.order), context)
|
||||||
|
elif action == "back":
|
||||||
|
return redirect("/person/%s/" %
|
||||||
|
(person.handle), context)
|
||||||
else:
|
else:
|
||||||
return render_to_response(view_template, context)
|
return render_to_response(view_template, context)
|
||||||
|
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
#
|
#
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
import web.grampsdb.models as models
|
import web.grampsdb.models as models
|
||||||
|
import web.grampsdb.forms as forms
|
||||||
from web import libdjango
|
from web import libdjango
|
||||||
from web.djangodb import DjangoDb
|
from web.djangodb import DjangoDb
|
||||||
from Simple import SimpleTable, SimpleAccess, make_basic_stylesheet
|
from Simple import SimpleTable, SimpleAccess, make_basic_stylesheet
|
||||||
@ -123,9 +124,9 @@ _ = lambda text: text
|
|||||||
|
|
||||||
def render(formfield, action):
|
def render(formfield, action):
|
||||||
retval = "error"
|
retval = "error"
|
||||||
name = formfield.name # 'surname'
|
fieldname = formfield.name # 'surname'
|
||||||
if action == "view": # gets the unicode from model
|
if action == "view": # gets the unicode from model
|
||||||
retval = str(getattr(formfield.form.model, name))
|
retval = str(getattr(formfield.form.model, fieldname))
|
||||||
else: # renders as default
|
else: # renders as default
|
||||||
retval = formfield.as_widget()
|
retval = formfield.as_widget()
|
||||||
return retval
|
return retval
|
||||||
@ -449,8 +450,22 @@ def make_name(name, user):
|
|||||||
return "%s, %s" % (surname, "[Living]")
|
return "%s, %s" % (surname, "[Living]")
|
||||||
else:
|
else:
|
||||||
return "%s, %s" % (surname, name.first_name)
|
return "%s, %s" % (surname, name.first_name)
|
||||||
|
elif isinstance(name, forms.NameForm):
|
||||||
|
surname = name.model.surname.strip()
|
||||||
|
if not surname:
|
||||||
|
surname = "[Missing]"
|
||||||
|
if user.is_authenticated():
|
||||||
|
return "%s, %s" % (surname, name.model.first_name)
|
||||||
|
else:
|
||||||
|
if probably_alive(name.model.person.handle):
|
||||||
|
return "%s, %s" % (surname, "[Living]")
|
||||||
|
else:
|
||||||
|
return "%s, %s" % (surname, name.model.first_name)
|
||||||
elif name: # name_set
|
elif name: # name_set
|
||||||
|
try:
|
||||||
name = name.get(preferred=True)
|
name = name.get(preferred=True)
|
||||||
|
except:
|
||||||
|
return "[No preferred name]"
|
||||||
if name:
|
if name:
|
||||||
return make_name(name, user)
|
return make_name(name, user)
|
||||||
else:
|
else:
|
||||||
|
Loading…
Reference in New Issue
Block a user