Fixed display_attr_list(); display_event_header() and display_event_row(). Added style elements for Attributes in stylesheet.

svn: r12931
This commit is contained in:
Rob G. Healey 2009-08-09 07:55:53 +00:00
parent 78530fae2e
commit 18048ccfab
2 changed files with 122 additions and 122 deletions

View File

@ -500,6 +500,7 @@ table.surname thead tr th.ColumnName {
padding-left:20px;
}
table.surname tbody tr td.ColumnName {
background-color:#FFF;
width:20%;
padding:0;
}
@ -897,12 +898,26 @@ table.infolist tbody tr td.ColumnValue p {
color:#696969;
margin:.2em 0 0 2em;
}
table.eventtable tbody tr {
table.eventtable tbody tr td {
border-bottom:solid 1px #000;
}
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes { }
div#attributes table.attrlist tbody tr td {
border-bottom:solid 1px #000;
}
div#attributes table.attrlist tbody tr td.ColumnType {
width:20%;
}
div#attributes table.attrlist tbody tr td.ColumnValue {
width:60%;
}
div#attributes table.attrlist tbody tr td.ColumnSources {
width:20%;
}
/* Subsections : Parents
----------------------------------------------------- */

View File

@ -621,6 +621,83 @@ class BasePage(object):
name.set_display_as(name_format)
return _nd.display_name(name)
def display_attr_list(self, attrobj):
"""
will display an object's attributes
@param: attrobj -- object to display it's attributes
"""
attrlist = attrobj.get_attribute_list()
if not attrlist:
return None
# begin attributes division and section title
with Html('div', class_='subsection', id='attributes') as section:
section += Html('h4', _('Attributes'), inline=True)
# begin section table
with Html('table', class_='infolist attrlist') as table:
section += table
# begin table head
thead = Html('thead')
table += thead
trow = Html('tr')
thead += trow
attr_header_row = ['Type', 'Value', 'Sources']
for data in attr_header_row:
trow += Html('th', _('%s' % data), class_='Column%s' % data, inline=True)
# begin table body
tbody = Html('tbody')
table += tbody
for attr in attrlist:
trow = Html('tr')
tbody += trow
attr_data_row = [
['Type', attr.get_type().xml_str()],
['Value', attr.get_value()],
['Sources', attr.get_source_references()]
]
# get attribute source references
attr_data_row[2][1] = self.get_citation_links(attr_data_row[2][1])
for (colclass, value) in attr_data_row:
trow += Html('td', value, class_='Column%s' % colclass, inline=True)
# get attrivute note list
notelist = attr.get_note_list()
if notelist:
first = True
for notehandle in notelist:
note = db.get_note_from_handle(notehandle)
note_text = self.get_note_format(note)
if first:
trow = Html('tr') + (
Html('td', ' ', class_='ColumnAttribute', inline=True),
Html('td', _('Notes'), class_='ColumnValue', inline=True),
Html('td', note_text, class_='ColumnName', inline=True)
)
table += trow
else:
trow = Html('tr') + (
Html('td', ' ', class_='ColumnAttribute', inline=True),
Html('td', ' ', class_='ColumnValue', inline=True),
Html('td', note_text, class_='ColumnName', inline=True)
)
table += trow
first = False
# return section to its caller
return section
def write_footer(self):
"""
Will create and display the footer section of each page...
@ -2050,7 +2127,7 @@ class MediaPage(BasePage):
mediadetail += notes
# get media attributes
attrib = self.display_attr_list(photo.get_attribute_list())
attrib = self.display_attr_list(photo)
if attrib is not None:
mediadetail += attrib
@ -2091,62 +2168,6 @@ class MediaPage(BasePage):
# return source references to its callers
return sourcerefs
def display_attr_list(self, attrlist=None):
if not attrlist:
return None
# begin attributes division
with Html('div', class_='subsection', id='attributes') as section:
# section title
section += Html('h4', _('Attributes'), inline=True)
# begin attrib table
with Html('table', class_='infolist') as table:
section += table
# begin table head
thead = Html('thead')
table += thead
trow = Html('tr')
thead += trow
for label, colclass in [
[_('Type'), 'Type'],
[_('Value'), 'Value'],
[_('Sources'), 'Sources'] ]:
trow += Html('th', label, class_='Column%s' % colclass, inline=True)
# begin table body
tbody = Html('tbody')
table += tbody
for attr in attrlist:
trow = Html('tr')
tbody += trow
attr_data_list = [
['Type', attr.get_type.xml_str()],
['Value', attr.get_value()],
['Sources', attr.get_source_references()]
]
# get source references
attr_data_list[2][1] = self.display_source_refs(attr_data_list[2][1])
for colclass, value in attr_data_list:
trow += Html('td', value, class_='Column%s' % colclass, inline=True)
# attach notes to section
notelist = self.display_note_list(attr.get_note_list())
if notelist is not None:
section += notelist
# return attributes division to its caller
return section
def copy_source_file(self, handle, photo):
db = self.report.database
@ -2896,7 +2917,7 @@ class IndividualPage(BasePage):
individualdetail += sect2
# display attributes
sect3 = self.display_attr_list(self.person.get_attribute_list())
sect3 = self.display_attr_list(self.person)
if sect3 is not None:
individualdetail += sect3
@ -2975,36 +2996,6 @@ class IndividualPage(BasePage):
# and close the file
self.mywriter(indivdetpage, of)
def display_attr_list(self, attrlist=None):
"""
display a person's attributes
"""
if not attrlist:
return
# begin attributes division
with Html('div', class_='subsection', id='attributes') as section:
section += Html('h4', _('Attributes'), inline=True)
#begin attributes table
with Html('table', class_='infolist') as table:
section += table
for attr in attrlist:
atType = str( attr.get_type() )
trow = Html('tr')
table += trow
tcell = Html('td', atType, class_='ColumnAttribute', inline=True)
trow += tcell
value = attr.get_value()
value += self.get_citation_links( attr.get_source_references() )
tcell = Html('td', value, class_='ColumnValue')
trow += tcell
# return aatributes division to its caller
return section
def draw_box(self, center, col, person):
db = self.report.database
@ -3389,27 +3380,15 @@ class IndividualPage(BasePage):
else:
place = ''
# begin table row for either: display_event_row() or format_event()
trow = Html('tr')
# Event/ Type
evt_name = str(event.get_type())
if event_ref.get_role() == EventRoleType.PRIMARY:
txt = u"%(evt_name)s" % locals()
eventtype = u"%(evt_name)s" % locals()
else:
evt_role = event_ref.get_role()
txt = u"%(evt_name)s (%(evt_role)s)" % locals()
txt = txt or ' '
trow += Html('td', txt, class_='ColumnValue', inline=True)
# Date
event_date = event.get_date_object()
if event_date:
txt = _dd.display(event_date)
else:
txt = ' '
trow += Html('td', txt, class_='ColumnValue', inline=True)
eventtype = u"%(evt_name)s (%(evt_role)s)" % locals()
eventtype = eventtype or ' '
# Place
place_handle = event.get_place_handle()
@ -3426,29 +3405,36 @@ class IndividualPage(BasePage):
ReportUtils.place_name(db, place_handle), up=True)
else:
place = None
txt = place or ' '
trow += Html('td', txt, class_='ColumnValue')
place = place or ' '
# Description
# Get the links in super script to the Source References section in the same page
sref_links = self.get_citation_links(event.get_source_references())
txt = ''.join(wrapper.wrap(event.get_description()))
txt = txt or ' '
trow += Html('td', txt, class_='ColumnValue', inline=True \
if txt == ' ' else False)
# begin event table row
event_data_row = [
['EventType', eventtype],
['Date', event.get_date_object()],
['Place', place],
['Description', event.get_description()],
['Source', event.get_source_references()]
]
# Sources
citation = self.get_citation_links(event.get_source_references())
txt = citation or ' '
trow += Html('td', txt, class_='ColumnValue', inline=True \
if txt == ' ' else False)
# Format date
event_data_row[1][1] = _dd.display(event_data_row[1][1])
# get citation links
event_data_row[4][1] = self.get_citation_links(event_data_row[4][1])
trow = Html('tr')
for (colclass, data) in event_data_row:
data = data or ' '
trow += Html('td', data, class_='Column%s' % colclass,
inline=True if data == ' ' else False)
# Notes
# if the event or event reference has a note attached to it,
# get the text and format it correctly
notelist = event.get_note_list()
notelist.extend(event_ref.get_note_list())
tcell = Html('td', class_='ColumnValue')
tcell = Html('td', class_='ColumnNote')
trow += tcell
if not notelist:
tcell += ' '
@ -3972,14 +3958,13 @@ class IndividualPage(BasePage):
format_event()
"""
header_row = [_('EventType'), _('Date'), _('Place'), _('Description'),
_('Sources'), _('Notes')]
header_row = ['EventType', 'Date', 'Place', 'Description', 'Source', 'Note']
# begin table header row
trow = Html('tr')
for section in header_row:
trow += Html('th', section, class_ = 'ColumnAttribute', inline = True)
trow += Html('th', _('%s' % section), class_ = 'Column%s' % section, inline = True)
# return header row to its caller
return trow