2007-07-10 Alex Roitman <shura@gramps-project.org>

* src/GrampsDb/_ReadXML.py (start_compound_date): Add new method;
	(start_datespan): Add new method.
	* data/grampsxml.dtd: Add datespan.
	* data/grampsxml.rng: Add datespan.
	* src/GrampsDb/_WriteXML.py (XmlWriter.write_date): Write the
	datespan.



svn: r8711
This commit is contained in:
Alex Roitman
2007-07-11 04:13:05 +00:00
parent dc185b12ac
commit 6575eede14
5 changed files with 46 additions and 8 deletions
+8 -1
View File
@@ -407,6 +407,7 @@ class GrampsParser(UpdateCallback):
"place" : (self.start_place, self.stop_place),
"dateval" : (self.start_dateval, None),
"daterange" : (self.start_daterange, None),
"datespan" : (self.start_datespan, None),
"datestr" : (self.start_datestr, None),
"places" : (None, self.stop_places),
"placeobj" : (self.start_placeobj,self.stop_placeobj),
@@ -1274,6 +1275,12 @@ class GrampsParser(UpdateCallback):
self.placeobj.add_media_reference(self.pref)
def start_daterange(self,attrs):
self.start_compound_date(attrs,RelLib.Date.MOD_RANGE)
def start_datespan(self,attrs):
self.start_compound_date(attrs,RelLib.Date.MOD_SPAN)
def start_compound_date(self,attrs,mode):
if self.source_ref:
dv = self.source_ref.get_date_object()
elif self.ord:
@@ -1336,7 +1343,7 @@ class GrampsParser(UpdateCallback):
else:
qual = RelLib.Date.QUAL_NONE
dv.set(qual,RelLib.Date.MOD_RANGE,cal,(d,m,y,False,rd,rm,ry,False))
dv.set(qual,mode,cal,(d,m,y,False,rd,rm,ry,False))
def start_dateval(self,attrs):
if self.source_ref:
+8 -2
View File
@@ -757,11 +757,17 @@ class XmlWriter(UpdateCallback):
mode = date.get_modifier()
if date.is_compound():
if mode == RelLib.Date.MOD_RANGE:
tagname = 'daterange'
else:
tagname = 'datespan'
d1 = self.get_iso_date(date.get_start_date())
d2 = self.get_iso_date(date.get_stop_date())
if d1 != "" or d2 != "":
self.g.write('%s<daterange start="%s" stop="%s"%s%s/>\n'
% (sp,d1,d2,qual_str,calstr))
self.g.write('%s<%s start="%s" stop="%s"%s%s/>\n'
% (sp,tagname,d1,d2,qual_str,calstr))
elif mode != RelLib.Date.MOD_TEXTONLY:
date_str = self.get_iso_date(date.get_start_date())
if date_str == "":