Bug#3814: Added Attributes style elements to stylesheets. Added family attributes back into IndividualPages.

svn: r15076
This commit is contained in:
Rob G. Healey 2010-04-11 04:07:08 +00:00
parent 1ea98777ca
commit 9655233957
10 changed files with 420 additions and 173 deletions

View File

@ -976,6 +976,47 @@ div#addresses table.infolist tbody tr td.ColumnValue {
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes {
margin: 0;
padding: 0;
}
table.attrlist {
width: 100%;
}
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
background-color: #EEE;
border-bottom: dashed 1px #000;
}
table.attrlist tbody tr td.ColumnType {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* Subsections : Gallery
----------------------------------------------------- */
@ -1165,12 +1206,14 @@ table.weblinks tr td.ColumnDescription {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -1003,6 +1003,47 @@ div#addresses table.infolist tbody tr td.ColumnValue {
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes {
margin: 0;
padding: 0;
}
table.attrlist {
width: 100%;
}
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
background-color: #E6E6E0;
border-bottom: dashed 1px #000;
}
table.attrlist tbody tr td.ColumnType {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* Subsections : Gallery
----------------------------------------------------- */
@ -1192,12 +1233,14 @@ table.weblinks tr td.ColumnDescription {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -953,6 +953,47 @@ div#addresses table.infolist tbody tr td.ColumnValue {
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes {
margin: 0;
padding: 0;
}
table.attrlist {
width: 100%;
}
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
background-color: #E0E0E9;
border-bottom: dashed 1px #000;
}
table.attrlist tbody tr td.ColumnType {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* Subsections : Gallery
----------------------------------------------------- */
@ -1142,12 +1183,14 @@ table.weblinks tr td.ColumnDescription {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -956,6 +956,47 @@ div#addresses table.infolist tbody tr td.ColumnValue {
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes {
margin: 0;
padding: 0;
}
table.attrlist {
width: 100%;
}
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
background-color: #FFE09F;
border-bottom: dashed 1px #000;
}
table.attrlist tbody tr td.ColumnType {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* Subsections : Gallery
----------------------------------------------------- */
@ -1145,12 +1186,14 @@ table.weblinks tr td.ColumnDescription {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -954,6 +954,47 @@ div#addresses table.infolist tbody tr td.ColumnValue {
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes {
margin: 0;
padding: 0;
}
table.attrlist {
width: 100%;
}
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
background-color: #EARRF4;
border-bottom: dashed 1px #000;
}
table.attrlist tbody tr td.ColumnType {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* Subsections : Gallery
----------------------------------------------------- */
@ -1143,12 +1184,14 @@ table.weblinks tr td.ColumnDescription {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -955,8 +955,48 @@ div#addresses table.infolist tbody tr td.ColumnValue {
border-bottom:dashed 1px #D8C19F;
}
/* SubSection : Attributes
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes {
margin: 0;
padding: 0;
}
table.attrlist {
width: 100%;
}
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
border-bottom: dashed 1px #000;
table.attrlist tbody tr td.ColumnType {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* SubSection : Gallery
----------------------------------------------------- */
@ -1146,12 +1186,14 @@ table.weblinks tr td.ColumnDescription {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -219,7 +219,7 @@ div#navigation ul li, div#subnavigation ul li {
float: left;
}
div#navigation ul li:first-child, div#subnavigation ul li:first-child {
margin-left: 4px;
margin-left: 10px;
}
div#navigation ul li:after, div#subnavigation ul li:after {
content: "| ";
@ -227,7 +227,7 @@ div#navigation ul li:after, div#subnavigation ul li:after {
div#navigation ul li a, div#subnavigation ul li a {
bakground-color: #A97;
display: block;
padding: 4px 3px 4px 3px;
padding: 4px 8px 4px 8px;
float: left;
font: .8em bold italic small-caps verdana, serif;
color: #000;
@ -936,6 +936,47 @@ table.infolist tbody tr td.ColumnValue p {
/* Subsections : Attributes
----------------------------------------------------- */
div#attributes {
margin: 0;
padding: 0;
}
table.attrlist {
width: 100%;
}
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
background-color: #F6F2EE;
border-bottom: dashed 1px #000;
}
table.attrlist tbody tr td.ColumnType {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* Subsections : Parents
----------------------------------------------------- */
@ -1202,12 +1243,14 @@ div#pedigree {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -1236,12 +1236,14 @@ div#pedigree {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.AncCol3 span.thumbnail, #treeContainer div.AncCol4 span.thumbnail {

View File

@ -48,86 +48,16 @@ Females Web_Gender_Female.png
# $Id$
NarrativeWeb Styles
--------------------------------------------------------------------------------------------
Alphabet Navigation
----------------------------------------------------- */
div#alphabet {
width: 100%;
margin: 0;
}
div#alphabet ul {
list-style:none;
min-width:770px;
height:24px;
margin:0;
padding: 0px 0px 0px 16px;
border-width: 2px 0px 4px 0px;
border-style: solid;
background-color: #6AF364;
}
div#alphabet ul li:after {
content:" |";
}
-------------------------------------------------------------------------------------------- */
div#alphabet ul li {
margin:0;
float:left;
}
div#alphabet ul li a {
display:block;
padding: 4px 8px 4px 8px;
float:left;
font:bold 16px/100% sans;
margin:0;
text-decoration:none;
}
/* Navigation
----------------------------------------------------- */
div#navigation, div#subnavigation {
width: 100%;
margin: 0;
padding: 0;
border: solid 2px #000;
}
div#navigation ul, div#subnavigation ul {
list-style:none;
min-width: 900px;
height: 24px;
margin:0;
padding: 0px 0px 0px 9px;
border-bottom: solid 2px #000;
background-color: #6AF364;
}
div#navigation ul li, div#subnavigation ul li {
float: left;
}
div#navigation ul li:first-child, div#subnavigation ul li:first-child {
margin-left: 3px;
}
div#navigation ul li:after, div#subnavigation ul li:after {
content: "| ";
}
div#navigation ul li a, div#subnavigation ul li a {
display: block;
padding: 4px 6px 4px 6px;
float: left;
font: .8em bold italic small-caps verdana, serif;
color: #000;
text-decoration:none;
margin:0;
}
div#navigation ul li a:hover, div#subnavigation ul li a:hover {
}
div#navigation ul li.CurrentSection a,
div#subnavigation ul li.CurrentSection a {
div#navigation ul li.CurrentSection a {
background-color: #000;
color: #FFF;
}
div#navigation ul li.CurrentSection a:hover,
div#subnavigation ul li.CurrentSection a:hover {
background-color: #000;
div#navigation ul li.CurrentSection a:hover {
background-color: 696969;
}
/* General Elements
@ -297,7 +227,7 @@ div#footer {
overflow: auto;
clear: both;
font-size: 12px;
margin-top: 10px;
margin: 0;
color: #FFF;
background-color: #542;
border-top: solid 8px #5D835F;
@ -317,7 +247,7 @@ div#footer img {
}
div#footer p#createdate {
float:left;
width: 60%;
width:60%;
text-align:left;
margin-left:10px;
}
@ -886,17 +816,13 @@ div#Download table.download td.Modified {
/* Sources
----------------------------------------------------- */
#Sources {
margin: 0;
padding: 0;
}
#Sources { }
div#Sources table.infolist tbody tr td {
background-color: #D8F3D6;
border-bottom: dashed 1px #000;
}
div#Sources table.infolist tbody tr td.ColumnRowLabel {
padding-bottom:0;
width: 5%;
}
div#Sources table.infolist tbody tr td.ColumnName {
padding:0;
@ -917,29 +843,23 @@ div#SourceDetail div#references ol li {
------------------------------------------------------ */
div#RepositoryList {
margin: 0;
padding: 0 14px 0 14px;
width: 965px;
}
div#RepositoryList table.repolist {
width: 100%;
padding: 0;
}
div#RepositoryList table.repolist tbody tr td {
background-color: #D8F3D6;
border-bottom: dashed 1px #000;
}
div#RepositoryList table.repolist tbody tr td a {
display: block;
padding: .3em 10px;
}
div#RepositoryList table.repolist tbody tr td.ColumnRowLabel {
width: 5%;
width: 9%;
}
div#RepositoryList table.repolist tbody tr td.ColumnType {
width: 15%;
}
div#RepositoryList table.repolist tbody tr td.ColumnName {
background-color: #FFF;
width: 80%;
}
/* Address Book
@ -1071,32 +991,40 @@ div#attributes {
table.attrlist {
width: 100%;
}
table.attrlist tbody tr {
border: solid 1px #5D835F;
table.attrlist thead tr th.ColumnType {
border: none;
background: none;
}
table.attrlist thead tr th.ColumnAttribute {
border: none;
background: none;
}
table.attrlist tbody tr td {
background-color: #D8F3D6;
border-bottom: dashed 1px #5D835F;
}
table.attrlist tbody tr td.ColumnType {
width: 200px;
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnAttribute {
width: 10%;
border: none;
background: none;
}
table.attrlist tbody tr td.ColumnValue {
width: 250px;
table.attrlist tbody tr td.ColumnAttrType {
width: 15%;
}
table.attrlist tbody tr td.ColumnSources {
background-color: #FFF;
width: 100px;
table.attrlist tbody tr td.ColumnAttrValue {
width: 15%;
}
table.attrlist tbody tr td.ColumnNotes {
width: 400px;
}
div#attributes table.attrlist tbody tr td.ColumnNotes {
width: 400px;
table.attrlist tbody tr td.ColumnAttrNotes {
width: 45%;
background-color: #D8F3D6;
}
table.attrlist tbody tr td.ColumnAttrSources {
background-color: #FFF;
width: 15%;
}
/* Subsections : Parents
----------------------------------------------------- */
@ -1432,12 +1360,14 @@ div#pedigree {
}
#treeContainer div.boxbg span.thumbnail {
display:block;
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
padding:4px 0;
}
#treeContainer div.boxbg span.thumbnail img {
height:65px;
max-width:80px auto;
max-height:65px;
margin:0 auto;
}
#treeContainer div.boxbg a:hover span.thumbnail, #treeContainer div.boxbg a:hover span.thumbnail img {

View File

@ -306,24 +306,27 @@ class BasePage(object):
trow = Html("tr")
attr_data_row = [
("Type", str(attr.get_type() ) ),
("Value", attr.get_value() ) ]
("Type", " "),
("Attribute", " "),
("AttrType", str(attr.get_type() ) ),
("AttrValue", attr.get_value() ) ]
# get attribute note list
notelist = self.dump_notes(attr.get_note_list() ) or " "
attr_data_row.append(("AttrNotes", notelist))
if showsrc:
srcrefs = self.get_citation_links(attr.get_source_references()) or " "
attr_data_row.append(("Sources", srcrefs))
# get attribute note list
notelist = self.dump_notes(attr.get_note_list() ) or " "
attr_data_row.append(("Notes", notelist))
else:
srcrefs = " "
attr_data_row.append(("AttrSources", srcrefs))
# display attribute list
trow.extend(
Html("td", data, class_ = "Column" + colclass,
inline = (colclass == "Type" or colclass == "Sources"))
Html("td", data, class_ = "Column" + colclass, inline = True)
for (colclass, data) in attr_data_row)
# return table row to its caller
# return table row to its callers
return trow
def get_citation_links(self, source_ref_list):
@ -826,15 +829,16 @@ class BasePage(object):
trow = Html("tr")
thead += trow
header_row = [
(THEAD, "Type"),
(VHEAD, "Value"),
(SHEAD, "Sources"),
(NHEAD, "Notes") ]
trow.extend(
Html("th", label, class_ = "Column" + colclass, inline = True)
for (label, colclass) in header_row)
for (label, colclass) in [
(" ", "Type"),
(" ", "Attribute"),
(_("Attribute/ Type"), "AttrType"),
(VHEAD, "AttrValue"),
(NHEAD, "AttrNotes"),
(SHEAD, "AttrSources") ]
)
# begin table body
tbody = Html("tbody")
@ -2555,16 +2559,13 @@ class EventPage(BasePage):
first_person = False
# Narrative subsection
# evt_ref = event.get_reference()
notelist = event.get_note_list()
# notelist.extend(evt_ref.get_note_list() )
notelist = self.display_note_list(notelist)
if notelist is not None:
eventdetail += notelist
# get attribute list
# Attribute subsection
attrlist = event.get_attribute_list()
# attrlist.extend(evt_ref.get_attribute_list() )
attrlist = self.display_attr_list(attrlist, True)
if attrlist is not None:
eventdetail += attrlist
@ -3515,7 +3516,7 @@ class IndividualPage(BasePage):
Person.UNKNOWN : _('unknown'),
}
def __init__(self, report, title, person, ind_list, place_list, src_list, attribute_list):
def __init__(self, report, title, person, ind_list, place_list, src_list):
BasePage.__init__(self, report, title, person.gramps_id)
self.person = person
self.ind_list = ind_list
@ -3593,8 +3594,8 @@ class IndividualPage(BasePage):
if sect8 is not None:
individualdetail += sect8
# display attributes
sect9 = self.display_attr_list(attribute_list, True)
# display personal attributes and source references if any
sect9 = self.display_attr_list(person.get_attribute_list(), True)
if sect9 is not None:
individualdetail += sect9
@ -4419,12 +4420,45 @@ class IndividualPage(BasePage):
)
table += trow
# family attributes
attrlist = family.get_attribute_list()
if attrlist:
with Html("table", class_ = "infolist attrlist") as attrTable:
table += attrTable
thead = Html("thead")
attrTable += thead
trow = Html("tr")
thead += trow
trow.extend(
Html("th", label, class_ = "Column" + colclass, inline = True)
for (label, colclass) in [
(" ", "Type"),
(" ", "Attribute"),
(_("Attribute/ Type"), "AttrType"),
(_("Value"), "AttrValue"),
(NHEAD, "AttrNotes"),
(SHEAD, "AttrSources") ]
)
tbody = Html("tbody")
attrTable += tbody
tbody.extend(
self.dump_attribute(attr, True)
for attr in attrlist)
# return section to its caller
return section
def display_partner(self, family, table):
"""
display an individual's partner
@param: family = an individual family object
@param: table = an HTML table
"""
gender = self.person.gender
@ -4473,11 +4507,11 @@ class IndividualPage(BasePage):
trow = Html("tr") + (
Html("td", " ", class_ = "ColumnType", inline = True),
Html("td", " ", class_ = "ColumnAttribute", inline = True),
Html("td", self.format_event(family_events), class_ = "ColumnValue")
Html("td", self.format_events(family_events) )
)
table += trow
# return table to its caller
# return table to its caller
return table
def pedigree_person(self, person):
@ -4528,7 +4562,7 @@ class IndividualPage(BasePage):
def display_event_header(self):
"""
will print the event header row for display_event_row() and
format_event()
format_events()
"""
trow = Html("tr")
@ -4545,7 +4579,7 @@ class IndividualPage(BasePage):
# return header row to its callers
return trow
def format_event(self, eventlist):
def format_events(self, eventlist):
"""
displays the event row for events such as marriage and divorce
"""
@ -5166,22 +5200,6 @@ class NavWebReport(Report):
from_path = os.path.join(const.IMAGE_DIR, fname)
self.copy_file(from_path, fname, "images")
def build_attributes(self, person):
""" build a list of attributes for each person """
db = self.database
# get personal attributes
attribute_list = person.get_attribute_list()
for family_handle in person.get_family_handle_list():
family = db.get_family_from_handle(family_handle)
# get family attributes
attribute_list.extend(family.get_attribute_list() )
# return attributes to its caller
return attribute_list
def person_pages(self, ind_list, place_list, source_list):
self.progress.set_pass(_('Creating individual pages'), len(ind_list) + 1)
@ -5195,10 +5213,7 @@ class NavWebReport(Report):
self.progress.step()
person = self.database.get_person_from_handle(person_handle)
# get attributes for each person
attribute_list = self.build_attributes(person)
IndividualPage(self, self.title, person, ind_list, place_list, source_list, attribute_list)
IndividualPage(self, self.title, person, ind_list, place_list, source_list)
if self.inc_gendex:
self.progress.set_pass(_('Creating GENDEX file'), len(ind_list))