diff --git a/src/plugins/export/ExportGeneWeb.py b/src/plugins/export/ExportGeneWeb.py index 6a0a2de5c..c65495ff7 100644 --- a/src/plugins/export/ExportGeneWeb.py +++ b/src/plugins/export/ExportGeneWeb.py @@ -19,7 +19,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA # -# $Id:WriteGeneWeb.py 9912 2008-01-22 09:17:46Z acraphae $ +# $Id$ "Export to GeneWeb." @@ -624,4 +624,4 @@ plugin = ExportPlugin(name = _('_GeneWeb'), export_function = exportData, extension = "gw", config = _config ) -pmgr.register_plugin(plugin) \ No newline at end of file +pmgr.register_plugin(plugin) diff --git a/src/plugins/webreport/NarrativeWeb.py b/src/plugins/webreport/NarrativeWeb.py index af10a2479..9bcfdd0e7 100644 --- a/src/plugins/webreport/NarrativeWeb.py +++ b/src/plugins/webreport/NarrativeWeb.py @@ -2374,6 +2374,23 @@ class IndividualPage(BasePage): of.write('   (%s)' % str(rel)) of.write('\n') + def get_sorted_half_step_siblings(self, db, child_handle): + """ + will return the sort information for half and step siblings if birthorder + """ + + sort_other_child = [] + temp_sibling = db.get_person_from_handle(child_handle) + birth_ref = temp_sibling.get_birth_ref() + birth_date = None + if birth_ref: + birth_event = db.get_event_from_handle(birth_ref.ref) + birth_date = birth_event.get_date_object() + + if birth_date is not None and birth_date.is_valid(): + ssort_other_child.append((birth_date, child_handle)) + return sort_other_child + def display_ind_parents(self, of): parent_list = self.person.get_parent_family_handle_list() @@ -2437,7 +2454,7 @@ class IndividualPage(BasePage): # Also try to identify half-siblings half_siblings = set() - sort_half_sibs = [] + self.sort_half_sibs = [] birthorder = self.report.options['birthorder'] # if we have a known father... @@ -2457,17 +2474,10 @@ class IndividualPage(BasePage): # we have a new step/half sibling half_siblings.add(half_child_handle) - # if sort siblings or not? + # if sort siblings? if birthorder: - half_sib = db.get_person_from_handle(half_child_handle) - birth_ref = half_sib.get_birth_ref() - birth_date = None - if birth_ref: - birth_event = db.get_event_from_handle(birth_ref.ref) - birth_date = birth_event.get_date_object() - - if birth_date != None and birth_date.is_valid(): - sort_half_sibs.append((birth_date, half_child_handle)) + sort_half_sibs = \ + self.get_sort_half_step_sibs(db, half_child_handle) # do the same thing with the mother (see "father" just above): if mother_handle and showallsiblings: @@ -2483,25 +2493,17 @@ class IndividualPage(BasePage): # sort siblings or not? if birthorder: - half_sib = db.get_person_from_handle(half_child_handle) - birth_ref = half_sib.get_birth_ref() - birth_date = None - if birth_ref: - birth_event = db.get_event_from_handle(birth_ref.ref) - birth_date = birth_event.get_date_object() - - if birth_date != None and birth_date.is_valid(): - sort_half_sibs.append((birth_date, half_child_handle)) + sort_half_sibs = \ + self.get_sort_half_step_sibs(db, half_child_handle) # now that we have all of the half-siblings, print them out - if len(half_siblings) > 0 or len(sort_half_sibs) > 0: + if len(half_siblings) or len(sort_half_sibs): of.write('\t\t\t\n') of.write('\t\t\t\t%s\n' % _("Half Siblings")) of.write('\t\t\t\t\n') of.write('\t\t\t\t\t
    \n') if birthorder: sort_half_sibs.sort() - for date, handle in sort_half_sibs: self.display_child_link(of, handle) else: @@ -2513,7 +2515,7 @@ class IndividualPage(BasePage): # get step-siblings step_siblings = set() - step_kids = [] + sort_step_sibs = [] if showallsiblings: # to find the step-siblings, we need to identify @@ -2579,27 +2581,21 @@ class IndividualPage(BasePage): # we have a new step sibling step_siblings.add(step_child_handle) - # sort siblings or not? + # if sort siblings? if birthorder: - step_sib = db.get_person_from_handle(step_child_handle) - birth_ref = step_sib.get_birth_ref() - birth_date = None - if birth_ref: - birth_event = db.get_event_from_handle(birth_ref.ref) - birth_date = birth_event.get_date_object() - - if birth_date != None and birth_date.is_valid(): - step_kids.append((birth_date, step_child_handle)) + sort_step_sibs = \ + self.get_sort_half_step_sibs(db, step_child_handle) # now that we have all of the step-siblings, print them out - if len(step_siblings) > 0 or len(step_kids) > 0: + if len(step_siblings) or len(sort_step_sibs): of.write('\t\t\t\n') of.write('\t\t\t\t%s\n' % _("Step Siblings")) of.write('\t\t\t\t\n') of.write('\t\t\t\t\t
      \n') if birthorder: - for date, handle in step_kids: + sort_step_sibs.sort() + for date, handle in sort_step_sibs: self.display_child_link(of, handle) else: for child_handle in step_siblings: diff --git a/src/plugins/webreport/WebCal.py b/src/plugins/webreport/WebCal.py index a762255c6..caecd5c8a 100644 --- a/src/plugins/webreport/WebCal.py +++ b/src/plugins/webreport/WebCal.py @@ -27,11 +27,6 @@ Web Calendar generator. Refactoring. This is an ongoing job until this plugin is in a better shape. -TODO list: - - progress bar, rethink its usage - - in year navigation, use month in link, or 'fullyear' - - daylight saving not just for USA and Europe - - move the close_file() from one_day() to caller """ #------------------------------------------------------------------------ @@ -39,12 +34,8 @@ TODO list: # python modules # #------------------------------------------------------------------------ -import os -import time -import datetime -import calendar -import codecs -import shutil +import os, codecs, shutil +import time, datetime, calendar from gettext import gettext as _ from gettext import ngettext @@ -91,7 +82,7 @@ _WEBMID = "Web_Mainz_Mid.png" _WEBMIDLIGHT = "Web_Mainz_MidLight.png" # This information defines the list of styles in the Web calendar -# options dialog as well as the location of the corresponding SCREEN +# options dialog as well as the location of the corresponding # stylesheets. _CSS_FILES = [ # First is used as default selection. @@ -185,48 +176,49 @@ class WebCalReport(Report): def __init__(self, database, options): Report.__init__(self, database, options) menu = options.menu + mgobn = menu.get_option_by_name self.database = database self.options = options - self.html_dir = menu.get_option_by_name('target').get_value() - self.title_text = menu.get_option_by_name('title').get_value() - filter_option = menu.get_option_by_name('filter') + self.html_dir = mgobn('target').get_value() + self.title_text = mgobn('title').get_value() + filter_option = mgobn('filter') self.filter = filter_option.get_filter() - self.ext = menu.get_option_by_name('ext').get_value() - self.copy = menu.get_option_by_name('cright').get_value() - self.encoding = menu.get_option_by_name('encoding').get_value() - self.css = menu.get_option_by_name('css').get_value() + self.ext = mgobn('ext').get_value() + self.copy = mgobn('cright').get_value() + self.encoding = mgobn('encoding').get_value() + self.css = mgobn('css').get_value() - self.country = menu.get_option_by_name('country').get_value() - self.start_dow = menu.get_option_by_name('start_dow').get_value() + self.country = mgobn('country').get_value() + self.start_dow = mgobn('start_dow').get_value() - self.multiyear = menu.get_option_by_name('multiyear').get_value() + self.multiyear = mgobn('multiyear').get_value() - self.start_year = menu.get_option_by_name('start_year').get_value() - self.end_year = menu.get_option_by_name('end_year').get_value() + self.start_year = mgobn('start_year').get_value() + self.end_year = mgobn('end_year').get_value() - self.fullyear = menu.get_option_by_name('fullyear').get_value() + self.fullyear = mgobn('fullyear').get_value() - self.maiden_name = menu.get_option_by_name('maiden_name').get_value() + self.maiden_name = mgobn('maiden_name').get_value() - self.alive = menu.get_option_by_name('alive').get_value() - self.birthday = menu.get_option_by_name('birthdays').get_value() - self.anniv = menu.get_option_by_name('anniversaries').get_value() - self.home_link = menu.get_option_by_name('home_link').get_value().strip() + self.alive = mgobn('alive').get_value() + self.birthday = mgobn('birthdays').get_value() + self.anniv = mgobn('anniversaries').get_value() + self.home_link = mgobn('home_link').get_value().strip() - self.month_notes = [menu.get_option_by_name('note_jan').get_value(), - menu.get_option_by_name('note_feb').get_value(), - menu.get_option_by_name('note_mar').get_value(), - menu.get_option_by_name('note_apr').get_value(), - menu.get_option_by_name('note_may').get_value(), - menu.get_option_by_name('note_jun').get_value(), - menu.get_option_by_name('note_jul').get_value(), - menu.get_option_by_name('note_aug').get_value(), - menu.get_option_by_name('note_sep').get_value(), - menu.get_option_by_name('note_oct').get_value(), - menu.get_option_by_name('note_nov').get_value(), - menu.get_option_by_name('note_dec').get_value()] + self.month_notes = [mgobn('note_jan').get_value(), + mgobn('note_feb').get_value(), + mgobn('note_mar').get_value(), + mgobn('note_apr').get_value(), + mgobn('note_may').get_value(), + mgobn('note_jun').get_value(), + mgobn('note_jul').get_value(), + mgobn('note_aug').get_value(), + mgobn('note_sep').get_value(), + mgobn('note_oct').get_value(), + mgobn('note_nov').get_value(), + mgobn('note_dec').get_value()] # identify researcher name and e-mail address # as Narrated WebSite already does @@ -1044,7 +1036,7 @@ class WebCalReport(Report): if mother_handle == person_handle: if father_handle: father = self.database.get_person_from_handle(father_handle) - if father != None: + if father is not None: father_name = father.primary_name father_surname = _get_regular_surname(sex, father_name) short_name = _get_short_name(person, father_surname) @@ -1069,26 +1061,24 @@ class WebCalReport(Report): spouse_name = _get_short_name(spouse) short_name = _get_short_name(person) - are_married = get_marital_status(self.database, fam) + are_married = get_marriage_event(self.database, fam) if are_married is not None: - for event_ref in fam.get_event_ref_list(): - event = self.database.get_event_from_handle(event_ref.ref) - event_obj = event.get_date_object() - year = event_obj.get_year() - month = event_obj.get_month() - day = event_obj.get_day() + event_obj = are_married.get_date_object() + year = event_obj.get_year() + month = event_obj.get_month() + day = event_obj.get_day() - prob_alive_date = gen.lib.Date(this_year, month, day) + prob_alive_date = gen.lib.Date(this_year, month, day) - if event_obj.is_valid(): - text = _('%(spouse)s and %(person)s') % { - 'spouse' : spouse_name, - 'person' : short_name} + if event_obj.is_valid(): + text = _('%(spouse)s and %(person)s') % { + 'spouse' : spouse_name, + 'person' : short_name} - alive1 = probably_alive(person, self.database, prob_alive_date) - alive2 = probably_alive(spouse, self.database, prob_alive_date) - if ((self.alive and alive1 and alive2) or not self.alive): - self.add_day_item(text, year, month, day, 'Anniversary') + alive1 = probably_alive(person, self.database, prob_alive_date) + alive2 = probably_alive(spouse, self.database, prob_alive_date) + if ((self.alive and alive1 and alive2) or not self.alive): + self.add_day_item(text, year, month, day, 'Anniversary') #------------------------------------------------------------------------ # @@ -1469,7 +1459,7 @@ def get_day_list(event_date, holiday_list, bday_anniv_list): if event == 'Birthday': txt_str = _(text + ', ' - + ('birth' if nyears == 0 else '%s old' % str(age_str)) + + ('%s old' % str(age_str) if nyears else 'birth') + '') # an anniversary @@ -1495,25 +1485,21 @@ def get_day_list(event_date, holiday_list, bday_anniv_list): return day_list -def get_marital_status(db, family): +def get_marriage_event(db, family): """ - Returns the marital status of two people, a couple - - are_married will either be the marriage event - or None if not married anymore + are_married will either be the marriage event or None """ - are_married = None for event_ref in family.get_event_ref_list(): event = db.get_event_from_handle(event_ref.ref) if event.type in [gen.lib.EventType.MARRIAGE, gen.lib.EventType.MARR_ALT]: - are_married = event + return event elif event.type in [gen.lib.EventType.DIVORCE, gen.lib.EventType.ANNULMENT, gen.lib.EventType.DIV_FILING]: - are_married = None - return are_married + return None + return None def get_first_day_of_month(year, month): """