Django debug support; added table support; add missing DjangoDb funcs; minor css tweaks
svn: r13594
This commit is contained in:
194
src/web/utils.py
194
src/web/utils.py
@ -61,7 +61,7 @@ class Table(object):
|
||||
|
||||
_ = lambda text: text
|
||||
|
||||
def events_table(djperson):
|
||||
def person_event_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Description"),
|
||||
_("Type"),
|
||||
@ -75,7 +75,6 @@ def events_table(djperson):
|
||||
object_type=obj_type).order_by("order")
|
||||
event_list = [(obj.ref_object, obj) for obj in event_ref_list]
|
||||
for (djevent, event_ref) in event_list:
|
||||
print djevent.description
|
||||
table.row(
|
||||
djevent.description,
|
||||
table.db.get_event_from_handle(djevent.handle),
|
||||
@ -85,6 +84,195 @@ def events_table(djperson):
|
||||
str(event_ref.role_type))
|
||||
return table.get_html()
|
||||
|
||||
def person_name_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Name"),
|
||||
_("Type"),
|
||||
_("Group As"),
|
||||
_("Source"),
|
||||
_("Note Preview"))
|
||||
for name in djperson.name_set.all():
|
||||
obj_type = ContentType.objects.get_for_model(name)
|
||||
sourceq = dji.SourceRef.filter(object_type=obj_type,
|
||||
object_id=name.id).count() > 0
|
||||
note_refs = dji.NoteRef.filter(object_type=obj_type,
|
||||
object_id=name.id)
|
||||
note = ""
|
||||
if note_refs.count() > 0:
|
||||
note = dji.Note.get(id=note_refs[0].object_id).text[:50]
|
||||
table.row(make_name(name, user),
|
||||
str(name.name_type),
|
||||
name.group_as,
|
||||
["No", "Yes"][sourceq],
|
||||
note)
|
||||
return table.get_html()
|
||||
|
||||
def person_source_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("ID"),
|
||||
_("Title"),
|
||||
_("Author"),
|
||||
_("Page"))
|
||||
obj_type = ContentType.objects.get_for_model(djperson)
|
||||
source_refs = dji.SourceRef.filter(object_type=obj_type,
|
||||
object_id=djperson.id)
|
||||
for source_ref in source_refs:
|
||||
source = table.db.get_source_from_handle(source_ref.ref_object.handle)
|
||||
table.row(source,
|
||||
source_ref.ref_object.title,
|
||||
source_ref.ref_object.author,
|
||||
source_ref.page,
|
||||
)
|
||||
return table.get_html()
|
||||
|
||||
def person_attribute_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Type"),
|
||||
_("Value"),
|
||||
)
|
||||
obj_type = ContentType.objects.get_for_model(djperson)
|
||||
attributes = dji.Attribute.filter(object_type=obj_type,
|
||||
object_id=djperson.id)
|
||||
for attribute in attributes:
|
||||
table.row(attribute.attribute_type.name,
|
||||
attribute.value)
|
||||
return table.get_html()
|
||||
|
||||
def person_address_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Date"),
|
||||
_("Address"),
|
||||
_("City"),
|
||||
_("State"),
|
||||
_("Country"))
|
||||
for address in djperson.address_set.all().order_by("order"):
|
||||
locations = address.location_set.all().order_by("order")
|
||||
for location in locations:
|
||||
table.row(display_date(address),
|
||||
location.street,
|
||||
location.city,
|
||||
location.state,
|
||||
location.country)
|
||||
return table.get_html()
|
||||
|
||||
def person_note_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(
|
||||
_("ID"),
|
||||
_("Type"),
|
||||
_("Note"))
|
||||
obj_type = ContentType.objects.get_for_model(djperson)
|
||||
note_refs = dji.NoteRef.filter(object_type=obj_type,
|
||||
object_id=djperson.id)
|
||||
for note_ref in note_refs:
|
||||
note = table.db.get_note_from_handle(
|
||||
note_ref.ref_object.handle)
|
||||
table.row(table.db.get_note_from_handle(note.handle),
|
||||
str(note_ref.ref_object.note_type),
|
||||
note_ref.ref_object.text[:50])
|
||||
return table.get_html()
|
||||
|
||||
def person_gallery_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Name"),
|
||||
_("Type"),
|
||||
)
|
||||
return table.get_html()
|
||||
|
||||
def person_internet_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Type"),
|
||||
_("Path"),
|
||||
_("Description"))
|
||||
urls = dji.Url.filter(person=djperson)
|
||||
for url in urls:
|
||||
table.row(str(url.url_type),
|
||||
url.path,
|
||||
url.desc)
|
||||
return table.get_html()
|
||||
|
||||
def person_association_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Name"),
|
||||
_("ID"),
|
||||
_("Association"))
|
||||
gperson = table.db.get_person_from_handle(djperson.handle)
|
||||
associations = gperson.get_person_ref_list()
|
||||
for association in associations:
|
||||
table.row()
|
||||
return table.get_html()
|
||||
|
||||
def person_lds_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Type"),
|
||||
_("Date"),
|
||||
_("Status"),
|
||||
_("Temple"),
|
||||
_("Place"))
|
||||
obj_type = ContentType.objects.get_for_model(djperson)
|
||||
ldss = djperson.lds_set.all().order_by("order")
|
||||
for lds in ldss:
|
||||
table.row(str(lds.lds_type),
|
||||
display_date(lds),
|
||||
str(lds.status),
|
||||
lds.temple,
|
||||
get_title(lds.place))
|
||||
return table.get_html()
|
||||
|
||||
def person_reference_table(djperson, user):
|
||||
table = Table()
|
||||
table.columns(_("Type"),
|
||||
_("ID"),
|
||||
_("Name"))
|
||||
references = dji.PersonRef.filter(ref_object=djperson)
|
||||
for reference in references:
|
||||
table.row(str(reference.reference_type),
|
||||
reference.ref_object.gramps_id,
|
||||
make_name(reference.ref_object))
|
||||
return table.get_html()
|
||||
|
||||
def family_children_table(djfamily, user):
|
||||
table = Table()
|
||||
table.columns(_("Column"))
|
||||
table.row("test")
|
||||
return table.get_html()
|
||||
|
||||
def family_event_table(djfamily, user):
|
||||
table = Table()
|
||||
table.columns(_("Column"))
|
||||
table.row("test")
|
||||
return table.get_html()
|
||||
|
||||
def family_source_table(djfamily, user):
|
||||
table = Table()
|
||||
table.columns(_("Column"))
|
||||
table.row("test")
|
||||
return table.get_html()
|
||||
|
||||
def family_attribute_table(djfamily, user):
|
||||
table = Table()
|
||||
table.columns(_("Column"))
|
||||
table.row("test")
|
||||
return table.get_html()
|
||||
|
||||
def family_note_table(djfamily, user):
|
||||
table = Table()
|
||||
table.columns(_("Column"))
|
||||
table.row("test")
|
||||
return table.get_html()
|
||||
|
||||
def family_gallery_table(djfamily, user):
|
||||
table = Table()
|
||||
table.columns(_("Column"))
|
||||
table.row("test")
|
||||
return table.get_html()
|
||||
|
||||
def family_lds_table(djfamily, user):
|
||||
table = Table()
|
||||
table.columns(_("Column"))
|
||||
table.row("test")
|
||||
return table.get_html()
|
||||
|
||||
## FIXME: these dji function wrappers just use the functions
|
||||
## written for the import/export. Can be done much more directly.
|
||||
|
||||
@ -142,7 +330,7 @@ def make_name(name, user):
|
||||
return escape("%s, %s" % (surname, "[Living]"))
|
||||
else:
|
||||
return escape("%s, %s" % (surname, name.first_name))
|
||||
elif name:
|
||||
elif name: # name_set
|
||||
name = name.get(preferred=True)
|
||||
if name:
|
||||
return make_name(name, user)
|
||||
|
Reference in New Issue
Block a user