allow a cell in table to not have a link; put buttons in cell for children

svn: r20052
This commit is contained in:
Doug Blank 2012-07-22 17:07:47 +00:00
parent 3da425b6c8
commit 95a604f2c6
2 changed files with 24 additions and 7 deletions

View File

@ -169,7 +169,7 @@ class SimpleTable(object):
retval.append(item[0])
link = (item[1], item[2:])
else:
retval.append(str(item))
retval.append(item)
if (self._link_col == col or link is None):
if hasattr(item, "get_url"):
link = ("url", item.get_url())
@ -219,7 +219,9 @@ class SimpleTable(object):
for col in row:
doc.start_cell('TableDataCell', span=1)
obj_type, handle = None, None
if isinstance(self._link_col, tuple):
if hasattr(col, "get_url"):
obj_type, handle = "URL", col.get_url()
elif isinstance(self._link_col, tuple):
obj_type, handle = self._link_col
elif isinstance(self._link_col, list):
obj_type, handle = self._link_col[index]
@ -228,12 +230,13 @@ class SimpleTable(object):
######
if obj_type:
if obj_type.lower() == "url":
if handle:
doc.start_link(handle)
else:
doc.start_link("/%s/%s" %
(obj_type.lower(), handle))
doc.write_text(col, 'Normal')
if obj_type:
doc.write_text(str(col), 'Normal')
if obj_type and handle:
doc.stop_link()
doc.end_cell()
doc.end_row()

View File

@ -826,10 +826,20 @@ def tag_reference_table(obj, user, act):
retval += nbsp("") # to keep tabs same height
return retval
class Link(object):
def __init__(self, string, url=None):
self.string = string
self.url = url
def get_url(self):
return self.url
def __str__(self):
return self.string
def children_table(obj, user, act, url=None, *args):
retval = ""
table = Table("children_table")
table.columns(
"",
_("#"),
_("ID"),
_("Name"),
@ -838,7 +848,7 @@ def children_table(obj, user, act, url=None, *args):
_("Maternal"),
_("Birth Date"),
)
table.column_widths = [3] + [98/6] * 6
#table.column_widths = [3] + [98/6] * 6
family = obj
obj_type = ContentType.objects.get_for_model(family)
@ -849,7 +859,8 @@ def children_table(obj, user, act, url=None, *args):
for childref in childrefs:
child = childref.ref_object
if user.is_authenticated():
table.row(str(count),
table.row(Link("[[x]][[^]][[v]]"),
str(count),
"[%s]" % child.gramps_id,
render_name(child, user),
child.gender_type,
@ -875,6 +886,9 @@ def children_table(obj, user, act, url=None, *args):
count += 1
table.links(links)
retval += table.get_html()
retval = retval.replace("[[x]]", make_button("x", "/person/remove/family/%s" % family.handle))
retval = retval.replace("[[^]]", make_button("^", "/person/up/family/%s" % family.handle))
retval = retval.replace("[[v]]", make_button("v", "/person/down/family/%s" % family.handle))
if user.is_superuser and url and act == "view":
retval += make_button(_("Add New Person as Child"), (url.replace("$act", "add") % args))
retval += make_button(_("Add Existing Person as Child"), (url.replace("$act", "share") % args))