diff --git a/ChangeLog b/ChangeLog index 96565d429..189a635c1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22,6 +22,9 @@ * NEWS: Correct attribution of ini-backend. * configure.in: bump up the version number. + * src/DateDisplay.py: Move common objects back to DateDisplay class. + * src/dates/Date_ru.py: Add formats and quality. + 2005-01-17 Don Allingham * src/ReportUtils.py: Added * src/BaseDoc.py: support for graphs diff --git a/src/DateDisplay.py b/src/DateDisplay.py index fb17e2b56..cee4aa15e 100644 --- a/src/DateDisplay.py +++ b/src/DateDisplay.py @@ -2,7 +2,7 @@ # # Gramps - a GTK+/GNOME based genealogy program # -# Copyright (C) 2004 Donald N. Allingham +# Copyright (C) 2004-2005 Donald N. Allingham # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -113,10 +113,23 @@ class DateDisplay: _qual_str = ("","estimated ","calculated ") def __init__(self,format=None): - pass + self.display_cal = [ + self._display_gregorian, + self._display_julian, + self._display_hebrew, + self._display_french, + self._display_persian, + self._display_islamic, + ] + + self.verify_format(format) + if format == None: + self.format = 0 + else: + self.format = format def set_format(self,format): - pass + self.format = format def verify_format(self,format): pass @@ -189,72 +202,6 @@ class DateDisplay: return date.get_text() -class DateDisplayEn(DateDisplay): - """ - English language date display class. - """ - - formats = ( - "YYYY-MM-DD (ISO)", "Numerical", "Month Day, Year", - "MON DAY, YEAR", "Day Month Year", "DAY MON YEAR" - ) - - def __init__(self,format=None): - """ - Creates a DateDisplay class that converts a Date object to a string - of the desired format. The format value must correspond to the format - list value (DateDisplay.format[]). - """ - - DateDisplay.__init__(self,format) - - self.verify_format(format) - if format == None: - self.format = 0 - else: - self.format = format - - self.display_cal = [ - self._display_gregorian, - self._display_julian, - self._display_hebrew, - self._display_french, - self._display_persian, - self._display_islamic, - ] - - def set_format(self,format): - self.format = format - - def display(self,date): - """ - Returns a text string representing the date. - """ - mod = date.get_modifier() - cal = date.get_calendar() - qual = date.get_quality() - start = date.get_start_date() - - qual_str = self._qual_str[qual] - - if mod == Date.MOD_TEXTONLY: - return date.get_text() - elif start == Date.EMPTY: - return "" - elif mod == Date.MOD_SPAN: - d1 = self.display_cal[cal](start) - d2 = self.display_cal[cal](date.get_stop_date()) - return "%sfrom %s to %s%s" % (qual_str,d1,d2,self.calendar[cal]) - elif mod == Date.MOD_RANGE: - d1 = self.display_cal[cal](start) - d2 = self.display_cal[cal](date.get_stop_date()) - return "%sbetween %s and %s%s" % (qual_str,d1,d2, - self.calendar[cal]) - else: - text = self.display_cal[date.get_calendar()](start) - return "%s%s%s%s" % (qual_str,self._mod_str[mod], - text,self.calendar[cal]) - def _display_gregorian(self,date_val): year = self._slash_year(date_val[2],date_val[3]) if self.format == 0: @@ -332,3 +279,51 @@ class DateDisplayEn(DateDisplay): def _display_islamic(self,date_val): return self._display_calendar(date_val,self._islamic) + +class DateDisplayEn(DateDisplay): + """ + English language date display class. + """ + + formats = ( + "YYYY-MM-DD (ISO)", "Numerical", "Month Day, Year", + "MON DAY, YEAR", "Day Month Year", "DAY MON YEAR" + ) + + def __init__(self,format=None): + """ + Creates a DateDisplay class that converts a Date object to a string + of the desired format. The format value must correspond to the format + list value (DateDisplay.format[]). + """ + + DateDisplay.__init__(self,format) + + def display(self,date): + """ + Returns a text string representing the date. + """ + mod = date.get_modifier() + cal = date.get_calendar() + qual = date.get_quality() + start = date.get_start_date() + + qual_str = self._qual_str[qual] + + if mod == Date.MOD_TEXTONLY: + return date.get_text() + elif start == Date.EMPTY: + return "" + elif mod == Date.MOD_SPAN: + d1 = self.display_cal[cal](start) + d2 = self.display_cal[cal](date.get_stop_date()) + return "%sfrom %s to %s%s" % (qual_str,d1,d2,self.calendar[cal]) + elif mod == Date.MOD_RANGE: + d1 = self.display_cal[cal](start) + d2 = self.display_cal[cal](date.get_stop_date()) + return "%sbetween %s and %s%s" % (qual_str,d1,d2, + self.calendar[cal]) + else: + text = self.display_cal[date.get_calendar()](start) + return "%s%s%s%s" % (qual_str,self._mod_str[mod], + text,self.calendar[cal]) diff --git a/src/dates/Date_ru.py b/src/dates/Date_ru.py index 41ff8cc2d..5fc453ab5 100644 --- a/src/dates/Date_ru.py +++ b/src/dates/Date_ru.py @@ -2,7 +2,7 @@ # # Gramps - a GTK+/GNOME based genealogy program # -# Copyright (C) 2004 Donald N. Allingham +# Copyright (C) 2004-2005 Donald N. Allingham # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -128,6 +128,13 @@ class DateDisplayRU(DateDisplay): u"после ", u"около ","","","") + _qual_str = ("","оцен ","вычисл ") + + formats = ( + "ГГГГ-ММ-ДД (ISO)", "Численный", "Месяц День, Год", + "МЕС ДД, ГГГГГ", "День Месяц, Год", "ДД МЕС, ГГГГГ" + ) + def display(self,date): """ Returns a text string representing the date. @@ -162,4 +169,3 @@ class DateDisplayRU(DateDisplay): #------------------------------------------------------------------------- from DateHandler import register_datehandler register_datehandler(('ru_RU','russian'),DateParserRU, DateDisplayRU) -