Added attributes to photos.
svn: r451
This commit is contained in:
parent
8894a48386
commit
c1968b6ad1
@ -86,6 +86,7 @@ class GrampsParser(handler.ContentHandler):
|
|||||||
self.in_scomments = 0
|
self.in_scomments = 0
|
||||||
self.db = database
|
self.db = database
|
||||||
self.base = base
|
self.base = base
|
||||||
|
self.photo = None
|
||||||
self.person = None
|
self.person = None
|
||||||
self.family = None
|
self.family = None
|
||||||
self.address = None
|
self.address = None
|
||||||
@ -230,7 +231,9 @@ class GrampsParser(handler.ContentHandler):
|
|||||||
self.attribute.setType(u2l(attrs["type"]))
|
self.attribute.setType(u2l(attrs["type"]))
|
||||||
else:
|
else:
|
||||||
self.in_old_attr = 0
|
self.in_old_attr = 0
|
||||||
if self.person:
|
if self.photo:
|
||||||
|
self.photo.addAttribute(self.attribute)
|
||||||
|
elif self.person:
|
||||||
self.person.addAttribute(self.attribute)
|
self.person.addAttribute(self.attribute)
|
||||||
elif self.family:
|
elif self.family:
|
||||||
self.family.addAttribute(self.attribute)
|
self.family.addAttribute(self.attribute)
|
||||||
@ -440,28 +443,31 @@ class GrampsParser(handler.ContentHandler):
|
|||||||
#
|
#
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
def start_photo(self,attrs):
|
def start_photo(self,attrs):
|
||||||
photo = Photo()
|
self.photo = Photo()
|
||||||
for key in attrs.keys():
|
for key in attrs.keys():
|
||||||
if key == "descrip" or key == "description":
|
if key == "descrip" or key == "description":
|
||||||
photo.setDescription(u2l(attrs[key]))
|
self.photo.setDescription(u2l(attrs[key]))
|
||||||
elif key == "src":
|
elif key == "src":
|
||||||
src = u2l(attrs["src"])
|
src = u2l(attrs["src"])
|
||||||
if src[0] != os.sep:
|
if src[0] != os.sep:
|
||||||
photo.setPath("%s%s%s" % (self.base,os.sep,src))
|
self.photo.setPath("%s%s%s" % (self.base,os.sep,src))
|
||||||
photo.setPrivate(1)
|
self.photo.setPrivate(1)
|
||||||
else:
|
else:
|
||||||
photo.setPath(src)
|
self.photo.setPath(src)
|
||||||
photo.setPrivate(0)
|
self.photo.setPrivate(0)
|
||||||
if self.family:
|
if self.family:
|
||||||
self.family.addPhoto(photo)
|
self.family.addPhoto(self.photo)
|
||||||
elif self.source:
|
elif self.source:
|
||||||
self.source.addPhoto(photo)
|
self.source.addPhoto(self.photo)
|
||||||
elif self.person:
|
elif self.person:
|
||||||
self.person.addPhoto(photo)
|
self.person.addPhoto(self.photo)
|
||||||
elif self.placeobj:
|
elif self.placeobj:
|
||||||
self.placeobj.addPhoto(photo)
|
self.placeobj.addPhoto(self.photo)
|
||||||
else:
|
else:
|
||||||
photo.addProperty(key,u2l(attrs[key]))
|
a = Attribute()
|
||||||
|
a.setType(key)
|
||||||
|
a.setValue(u2l(attrs[key]))
|
||||||
|
self.photo.addAttribute(a)
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
@ -514,14 +520,12 @@ class GrampsParser(handler.ContentHandler):
|
|||||||
def stop_address(self,tag):
|
def stop_address(self,tag):
|
||||||
self.address = None
|
self.address = None
|
||||||
|
|
||||||
#---------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#---------------------------------------------------------------------
|
|
||||||
def stop_places(self,tag):
|
def stop_places(self,tag):
|
||||||
self.placeobj = None
|
self.placeobj = None
|
||||||
|
|
||||||
|
def stop_photo(self,tag):
|
||||||
|
self.photo = None
|
||||||
|
|
||||||
def stop_placeobj(self,tag):
|
def stop_placeobj(self,tag):
|
||||||
if self.placeobj.get_title() == "":
|
if self.placeobj.get_title() == "":
|
||||||
loc = self.placeobj.get_main_location()
|
loc = self.placeobj.get_main_location()
|
||||||
@ -951,7 +955,7 @@ class GrampsParser(handler.ContentHandler):
|
|||||||
"parentin" : (start_parentin,None),
|
"parentin" : (start_parentin,None),
|
||||||
"people" : (start_people, stop_people),
|
"people" : (start_people, stop_people),
|
||||||
"person" : (start_person, None),
|
"person" : (start_person, None),
|
||||||
"img" : (start_photo, None),
|
"img" : (start_photo, stop_photo),
|
||||||
"place" : (start_place, stop_place),
|
"place" : (start_place, stop_place),
|
||||||
"places" : (None, stop_places),
|
"places" : (None, stop_places),
|
||||||
"placeobj" : (start_placeobj,stop_placeobj),
|
"placeobj" : (start_placeobj,stop_placeobj),
|
||||||
|
@ -342,21 +342,17 @@ class Photo:
|
|||||||
|
|
||||||
def __init__(self,source=None):
|
def __init__(self,source=None):
|
||||||
"""Create a new Photo object, copying from the source if provided"""
|
"""Create a new Photo object, copying from the source if provided"""
|
||||||
|
self.attrlist = []
|
||||||
if source:
|
if source:
|
||||||
self.path = source.path
|
self.path = source.path
|
||||||
self.desc = source.desc
|
self.desc = source.desc
|
||||||
self.private = source.private
|
self.private = source.private
|
||||||
if self.proplist != None:
|
for attr in source.attrlist:
|
||||||
self.proplist = {}
|
self.attrlist.append(Attribute(attr))
|
||||||
for p in source.proplist.keys():
|
|
||||||
self.proplist[p] = source.proplist[p]
|
|
||||||
else:
|
|
||||||
self.proplist = None
|
|
||||||
else:
|
else:
|
||||||
self.path = ""
|
self.path = ""
|
||||||
self.desc = ""
|
self.desc = ""
|
||||||
self.private = 0
|
self.private = 0
|
||||||
self.proplist = None
|
|
||||||
|
|
||||||
def setPath(self,path):
|
def setPath(self,path):
|
||||||
"""set the file path to the passed path"""
|
"""set the file path to the passed path"""
|
||||||
@ -382,18 +378,15 @@ class Photo:
|
|||||||
"""returns the description of the image"""
|
"""returns the description of the image"""
|
||||||
return self.desc
|
return self.desc
|
||||||
|
|
||||||
def addProperty(self,key,value):
|
def addAttribute(self,attr):
|
||||||
"""Adds a propery to the Photo object. This is not used by gramps,
|
"""Adds a propery to the Photo object. This is not used by gramps,
|
||||||
but provides a means for XML users to attach other properties to
|
but provides a means for XML users to attach other properties to
|
||||||
the image"""
|
the image"""
|
||||||
if self.proplist == None:
|
self.attrlist.append(attr)
|
||||||
self.proplist = { key: value}
|
|
||||||
else:
|
|
||||||
self.proplist[key] = value;
|
|
||||||
|
|
||||||
def getPropertyList(self):
|
def getAttributeList(self):
|
||||||
"""returns the property list associated with the image"""
|
"""returns the property list associated with the image"""
|
||||||
return self.proplist
|
return self.attrlist
|
||||||
|
|
||||||
class Attribute(DataObj):
|
class Attribute(DataObj):
|
||||||
"""Provides a simple key/value pair for describing properties. Used
|
"""Provides a simple key/value pair for describing properties. Used
|
||||||
|
@ -268,18 +268,19 @@ def dump_location(g,loc):
|
|||||||
g.write('/>\n')
|
g.write('/>\n')
|
||||||
|
|
||||||
|
|
||||||
def write_attribute_list(g, list):
|
def write_attribute_list(g, list, indent=3):
|
||||||
|
sp = ' ' * indent
|
||||||
for attr in list:
|
for attr in list:
|
||||||
if len(attr.getSourceRef()) > 0 or attr.getNote():
|
if len(attr.getSourceRefList()) > 0 or attr.getNote():
|
||||||
g.write(' <attribute%s>\n' % conf_priv(attr))
|
g.write('%s<attribute%s>\n' % (sp,conf_priv(attr)))
|
||||||
write_line(g,"attr_type",attr.getType(),4)
|
write_line(g,"attr_type",attr.getType(),4)
|
||||||
write_line(g,"attr_value",attr.getValue(),4)
|
write_line(g,"attr_value",attr.getValue(),4)
|
||||||
for s in attr.getSourceRefList():
|
for s in attr.getSourceRefList():
|
||||||
dump_source_ref(g,s,index+1)
|
dump_source_ref(g,s,index+1)
|
||||||
writeNote(g,"note",attr.getNote(),4)
|
writeNote(g,"note",attr.getNote(),4)
|
||||||
g.write(' </attribute>\n')
|
g.write('%s</attribute>\n' % sp)
|
||||||
else:
|
else:
|
||||||
g.write(' <attribute type="%s">' % attr.getType())
|
g.write('%s<attribute type="%s">' % (sp,attr.getType()))
|
||||||
g.write(fix(attr.getValue()))
|
g.write(fix(attr.getValue()))
|
||||||
g.write('</attribute>\n')
|
g.write('</attribute>\n')
|
||||||
|
|
||||||
@ -296,11 +297,13 @@ def write_photo_list(g,list):
|
|||||||
path = path[l+1:]
|
path = path[l+1:]
|
||||||
g.write(' <img src="%s"' % fix(path) )
|
g.write(' <img src="%s"' % fix(path) )
|
||||||
g.write(' description="%s"' % fix(photo.getDescription()))
|
g.write(' description="%s"' % fix(photo.getDescription()))
|
||||||
proplist = photo.getPropertyList()
|
proplist = photo.getAttributeList()
|
||||||
if proplist:
|
if len(proplist) == 0:
|
||||||
for key in proplist.keys():
|
g.write("/>\n")
|
||||||
g.write(' %s="%s"' % (key,fix(proplist[key])))
|
else:
|
||||||
g.write("/>\n")
|
g.write(">\n")
|
||||||
|
write_attribute_list(g,proplist,4)
|
||||||
|
g.write(' </img>\n')
|
||||||
|
|
||||||
|
|
||||||
def write_url_list(g, list):
|
def write_url_list(g, list):
|
||||||
|
Loading…
Reference in New Issue
Block a user