Updates
svn: r1023
This commit is contained in:
		| @@ -88,7 +88,6 @@ class AddSpouse: | ||||
|         self.spouse_list.set_column_visibility(2,0) | ||||
|         self.spouse_list.set_column_visibility(3,0) | ||||
|         self.sorter = Sorter.Sorter(self.spouse_list,arrow_map,'spouse',self.top) | ||||
|         self.name_list = self.db.getPersonKeys() | ||||
|         self.rel_combo.set_popdown_strings(const.familyRelations) | ||||
|         title = _("Choose Spouse/Partner of %s") % GrampsCfg.nameof(person) | ||||
|         self.glade.get_widget("spouseTitle").set_text(title) | ||||
| @@ -132,7 +131,6 @@ class AddSpouse: | ||||
|         QuickAdd.QuickAdd(self.db,gen,self.update_list) | ||||
|  | ||||
|     def update_list(self,person): | ||||
|         self.name_list.append(person.getId()) | ||||
|         self.addperson(person) | ||||
|         self.relation_type_changed(self.relation_type) | ||||
|         row = self.spouse_list.find_row_from_data(person) | ||||
| @@ -186,18 +184,23 @@ class AddSpouse: | ||||
|         gender = self.person.getGender() | ||||
|         if text == _("Partners"): | ||||
|             if gender == RelLib.Person.male: | ||||
|                 gender = RelLib.Person.female | ||||
|                 sgender = const.female | ||||
|             else: | ||||
|                 gender = RelLib.Person.male | ||||
|                 sgender = const.male | ||||
|         else: | ||||
|             if gender == RelLib.Person.male: | ||||
|                 sgender = const.male | ||||
|             else: | ||||
|                 sgender = const.female | ||||
|              | ||||
|         index = 0 | ||||
|         self.spouse_list.clear() | ||||
|         self.spouse_list.freeze() | ||||
|         for key in self.name_list: | ||||
|             person = self.db.getPerson(key) | ||||
|             if person.getGender() == gender: | ||||
|         for key in self.db.getPersonKeys(): | ||||
|             data = self.db.getPersonDisplay(key) | ||||
|             if data[2] == sgender: | ||||
|                 continue | ||||
|             data = person.getDisplayInfo() | ||||
|  | ||||
|             self.spouse_list.append([data[0],data[3],data[5],data[6]]) | ||||
|             self.spouse_list.set_row_data(index,key) | ||||
|             index = index + 1 | ||||
| @@ -238,8 +241,6 @@ class SetSpouse: | ||||
|         self.relation_def = self.glade.get_widget("reldef") | ||||
|         self.top = self.glade.get_widget("spouseDialog") | ||||
|  | ||||
|         self.name_list = self.db.getPersonMap().values() | ||||
|         self.name_list.sort(sort.by_last_name) | ||||
|         self.rel_combo.set_popdown_strings(const.familyRelations) | ||||
|         title = _("Choose Spouse/Partner of %s") % GrampsCfg.nameof(person) | ||||
|         self.glade.get_widget("spouseTitle").set_text(title) | ||||
| @@ -274,8 +275,6 @@ class SetSpouse: | ||||
|         QuickAdd.QuickAdd(self.db,gen,self.update_list) | ||||
|  | ||||
|     def update_list(self,person): | ||||
|         self.name_list.append(person) | ||||
|         self.name_list.sort(sort.by_last_name) | ||||
|         self.addperson(person) | ||||
|         self.relation_type_changed(self.relation_type) | ||||
|  | ||||
| @@ -322,18 +321,24 @@ class SetSpouse: | ||||
|         gender = self.person.getGender() | ||||
|         if text == _("Partners"): | ||||
|             if gender == RelLib.Person.male: | ||||
|                 gender = RelLib.Person.female | ||||
|                 sgender = const.female | ||||
|             else: | ||||
|                 gender = RelLib.Person.male | ||||
|                 sgender = const.male | ||||
| 	else: | ||||
|             if gender == RelLib.Person.male: | ||||
|                 sgender = const.male | ||||
|             else: | ||||
|                 sgender = const.female | ||||
|              | ||||
|         index = 0 | ||||
|         self.spouse_list.clear() | ||||
|         self.spouse_list.freeze() | ||||
|         for person in self.name_list: | ||||
|             if person.getGender() == gender: | ||||
|         for key in self.db.getPersonKeys(): | ||||
|             data = self.db.getPersonDisplay(key) | ||||
|             if data[2] == sgender: | ||||
|                 continue | ||||
|             name = person.getPrimaryName().getName() | ||||
|             self.spouse_list.append([name,Utils.birthday(person)]) | ||||
|             self.spouse_list.set_row_data(index,person) | ||||
|  | ||||
|             self.spouse_list.append([data[0],data[3],data[5],data[6]]) | ||||
|             self.spouse_list.set_row_data(index,key) | ||||
|             index = index + 1 | ||||
|         self.spouse_list.thaw() | ||||
|   | ||||
| @@ -217,15 +217,15 @@ class FindSource(FindBase): | ||||
| class FindMedia(FindBase): | ||||
|     """Opens a Find Media Object dialog for GRAMPS""" | ||||
|      | ||||
|     def __init__(self,clist,task,plist): | ||||
|     def __init__(self,clist,task,db): | ||||
|         """Opens a dialog box instance that allows users to | ||||
|         search for a place. | ||||
|  | ||||
|         clist - GtkCList containing the people information | ||||
|         task - function to call to change the active person""" | ||||
|          | ||||
|         FindBase.__init__(self,clist,task,_("Find Media Object")) | ||||
|         for n in plist: | ||||
|         FindBase.__init__(self,clist,task,_("Find Media Object"),db) | ||||
|         for n in self.db.getObjectMap().values(): | ||||
|             self.nlist.append(n.getDescription()) | ||||
|         self.enable_autocomp() | ||||
|          | ||||
|   | ||||
| @@ -208,7 +208,7 @@ class Marriage: | ||||
|         ord = self.family.getLdsSeal() | ||||
|         if ord == None: | ||||
|             ord = LdsOrd() | ||||
|             self.person.setLdsSeal(ord) | ||||
|             self.family.setLdsSeal(ord) | ||||
|         Sources.SourceSelector(ord.getSourceRefList(),self,src_changed) | ||||
|  | ||||
|     def lds_note_clicked(self,obj): | ||||
| @@ -216,7 +216,7 @@ class Marriage: | ||||
|         ord = self.family.getLdsSeal() | ||||
|         if ord == None: | ||||
|             ord = LdsOrd() | ||||
|             self.person.setLdsSeal(ord) | ||||
|             self.family.setLdsSeal(ord) | ||||
|         NoteEdit.NoteEditor(ord) | ||||
|  | ||||
|     def on_up_clicked(self,obj): | ||||
|   | ||||
| @@ -254,8 +254,6 @@ class PluginStatus: | ||||
|         window.show_string(info.read()) | ||||
|         self.top.run_and_close() | ||||
|          | ||||
|  | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # load_plugins | ||||
|   | ||||
| @@ -21,7 +21,6 @@ | ||||
| from TextDoc import * | ||||
| from latin_utf8 import latin_to_utf8 | ||||
|  | ||||
| import Utils | ||||
| import time | ||||
| import StringIO | ||||
| import os | ||||
|   | ||||
| @@ -19,7 +19,6 @@ | ||||
| # | ||||
|  | ||||
| import os | ||||
| import tempfile | ||||
| import string | ||||
| import Plugins | ||||
| import intl | ||||
|   | ||||
| @@ -22,7 +22,6 @@ | ||||
|  | ||||
| import Filter | ||||
| import Date | ||||
| import RelLib | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
|   | ||||
| @@ -22,7 +22,6 @@ | ||||
|  | ||||
| import Filter | ||||
| import Date | ||||
| import RelLib | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
|   | ||||
| @@ -21,7 +21,6 @@ | ||||
| "Disconnected individuals" | ||||
|  | ||||
| import Filter | ||||
| import RelLib | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
|   | ||||
| @@ -22,7 +22,6 @@ | ||||
|  | ||||
| import Filter | ||||
| import re | ||||
| import RelLib | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
| @@ -38,7 +37,6 @@ class EventPlace(Filter.Filter): | ||||
|         Filter.Filter.__init__(self,text) | ||||
|  | ||||
|     def match(self,person): | ||||
|         val = 0 | ||||
|         list = person.getEventList()[:] | ||||
|         list.append(person.getBirth()) | ||||
|         list.append(person.getDeath()) | ||||
|   | ||||
| @@ -22,7 +22,6 @@ | ||||
|  | ||||
| import Filter | ||||
| import soundex | ||||
| import RelLib | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
|   | ||||
| @@ -22,7 +22,6 @@ | ||||
|  | ||||
| import Filter | ||||
| import soundex | ||||
| import RelLib | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
|   | ||||
| @@ -23,7 +23,6 @@ locale.setlocale(locale.LC_NUMERIC,"C") | ||||
| # Standard python modules | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| import traceback | ||||
| import sys | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| @@ -56,12 +55,8 @@ try: | ||||
|     else: | ||||
|         gramps_main.Gramps(arg) | ||||
| except: | ||||
|     traceback.print_exc() | ||||
|          | ||||
|     fname = os.path.expanduser("~/gramps.err") | ||||
|     errfile = open(fname,"w") | ||||
|     traceback.print_exc(file=errfile) | ||||
|     errfile.close() | ||||
|     import DisplayTrace | ||||
|     DisplayTrace.DisplayTrace() | ||||
|          | ||||
| gtk.mainloop() | ||||
|  | ||||
|   | ||||
| @@ -67,7 +67,6 @@ import sort | ||||
| import Utils | ||||
| import Bookmarks | ||||
| import Sorter | ||||
| import ListColors | ||||
| import GrampsCfg | ||||
| import EditPerson | ||||
| import Marriage | ||||
| @@ -334,8 +333,7 @@ class Gramps: | ||||
|         elif self.notebook.get_current_page() == 3: | ||||
|             Find.FindSource(self.source_view.source_list,self.find_goto_source,self.db) | ||||
|         elif self.notebook.get_current_page() == 5: | ||||
|             Find.FindMedia(self.media_view.media_list,self.find_goto_media, | ||||
|                            self.db.getObjectMap().values()) | ||||
|             Find.FindMedia(self.media_view.media_list,self.find_goto_media,self.db) | ||||
|         else: | ||||
|             Find.FindPerson(self.person_list,self.find_goto_to,self.db) | ||||
|  | ||||
| @@ -593,7 +591,7 @@ class Gramps: | ||||
|                         | ||||
|     def new_database_response(self): | ||||
|         import DbPrompter | ||||
|         self.clear_database() | ||||
|         self.clear_database(2) | ||||
|         DbPrompter.DbPrompter(self,1) | ||||
|      | ||||
|     def clear_database(self,zodb=1): | ||||
| @@ -604,8 +602,10 @@ class Gramps: | ||||
|         const.familyAttributes = const.init_family_attribute_list() | ||||
|         const.familyRelations = const.init_family_relation_list() | ||||
|      | ||||
|         if zodb: | ||||
|         if zodb == 1: | ||||
|             self.db = GrampsZODB() | ||||
|         elif zodb == 2: | ||||
|             self.db = GrampsDB() | ||||
|         else: | ||||
|             self.db = GrampsXML() | ||||
|         self.db.set_iprefix(GrampsCfg.iprefix) | ||||
| @@ -696,7 +696,7 @@ class Gramps: | ||||
|         if filename == "" or filename == None: | ||||
|             return | ||||
|          | ||||
|         self.clear_database() | ||||
|         self.clear_database(0) | ||||
|      | ||||
|         if getoldrev.get_active(): | ||||
|             vc = VersionControl.RcsVersionControl(filename) | ||||
| @@ -1269,8 +1269,7 @@ class Gramps: | ||||
|         self.update_display(0) | ||||
|  | ||||
|     def update_after_merge(self,person,old_id): | ||||
|         if epo: | ||||
|             print person,old_id | ||||
|         if person: | ||||
|             self.remove_from_person_list(person,old_id) | ||||
|             self.redisplay_person_list(person) | ||||
|         self.update_display(0) | ||||
| @@ -1710,7 +1709,7 @@ class Gramps: | ||||
|             self.statusbar.set_status(_("%s has been bookmarked") % name) | ||||
|             gtk.timeout_add(5000,self.modify_statusbar) | ||||
|         else: | ||||
|             GnomeWarningDialog(_("Bookmark could not be set because no one was selected")) | ||||
|             gramps.ui.GnomeWarningDialog(_("Bookmark could not be set because no one was selected")) | ||||
|  | ||||
|     def on_edit_bookmarks_activate(self,obj): | ||||
|         self.bookmarks.edit() | ||||
|   | ||||
| @@ -301,11 +301,14 @@ class AncestorChartDialog(DrawReportDialog): | ||||
|         """Create the object that will produce the Ancestor Chart. | ||||
|         All user dialog has already been handled and the output file | ||||
|         opened.""" | ||||
|  | ||||
|         try: | ||||
|             MyReport = AncestorChart(self.db, self.person, self.target_path, | ||||
|                                      self.max_gen, self.doc, self.report_text) | ||||
|             MyReport.write_report() | ||||
|  | ||||
|  | ||||
|         except: | ||||
|             import DisplayTrace | ||||
|             DisplayTrace.DisplayTrace() | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
|   | ||||
| @@ -35,16 +35,11 @@ import libglade | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| #  | ||||
| # AncestorReport | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| class AncestorReport(Report): | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def __init__(self,database,person,output,max,doc,pgbrk): | ||||
|         self.map = {} | ||||
|         self.database = database | ||||
| @@ -58,11 +53,6 @@ class AncestorReport(Report): | ||||
|         except IOError,msg: | ||||
|             gnome.ui.GnomeErrorDialog(_("Could not open %s") % output + "\n" + msg) | ||||
|          | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def filter(self,person,index): | ||||
|         if person == None or index >= (1 << 31): | ||||
|             return | ||||
| @@ -73,11 +63,6 @@ class AncestorReport(Report): | ||||
|             self.filter(family.getFather(),index*2) | ||||
|             self.filter(family.getMother(),(index*2)+1) | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def write_report(self): | ||||
|  | ||||
|         self.filter(self.start,1) | ||||
| @@ -215,7 +200,6 @@ class AncestorReport(Report): | ||||
|                         self.doc.write_text(".") | ||||
|                          | ||||
|             self.doc.end_paragraph() | ||||
|  | ||||
|         self.doc.close() | ||||
|   | ||||
|  | ||||
| @@ -250,11 +234,6 @@ class AncestorReportDialog(TextReportDialog): | ||||
|         """Where to save styles for this report.""" | ||||
|         return "ancestor_report.xml" | ||||
|      | ||||
|     #------------------------------------------------------------------------ | ||||
|     # | ||||
|     # Create output styles appropriate to this report. | ||||
|     # | ||||
|     #------------------------------------------------------------------------ | ||||
|     def make_default_style(self): | ||||
|         """Make the default output style for the Ahnentafel report.""" | ||||
|         font = FontStyle() | ||||
| @@ -277,18 +256,17 @@ class AncestorReportDialog(TextReportDialog): | ||||
|         para.set(first_indent=-1.0,lmargin=1.0,pad=0.25) | ||||
|         self.default_style.add_style("Entry",para) | ||||
|  | ||||
|     #------------------------------------------------------------------------ | ||||
|     # | ||||
|     # Create the contents of the report. | ||||
|     # | ||||
|     #------------------------------------------------------------------------ | ||||
|     def make_report(self): | ||||
|         """Create the object that will produce the Ahnentafel Report. | ||||
|         All user dialog has already been handled and the output file | ||||
|         opened.""" | ||||
|         try: | ||||
|             MyReport = AncestorReport(self.db, self.person, self.target_path, | ||||
|                                       self.max_gen, self.doc, self.pg_brk) | ||||
|             MyReport.write_report() | ||||
|         except: | ||||
|             import DisplayTrace | ||||
|             DisplayTrace.DisplayTrace() | ||||
|  | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|   | ||||
| @@ -37,7 +37,11 @@ _ = intl.gettext | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| def runTool(database,person,callback): | ||||
|     try: | ||||
|         ChangeTypes(database,person) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| class ChangeTypes: | ||||
|     def __init__(self,db,person): | ||||
|   | ||||
| @@ -37,12 +37,16 @@ import libglade | ||||
| #------------------------------------------------------------------------- | ||||
| def runTool(database,active_person,callback): | ||||
|  | ||||
|     try: | ||||
|         checker = CheckIntegrity(database) | ||||
|         checker.check_for_broken_family_links() | ||||
|         checker.cleanup_missing_photos() | ||||
|         checker.check_parent_relationships() | ||||
|         checker.cleanup_empty_families(0) | ||||
|         checker.report() | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
|   | ||||
| @@ -20,17 +20,32 @@ | ||||
|  | ||||
| "Generate files/Descendant Report" | ||||
|  | ||||
| import GraphLayout | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # standard python modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import string | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GTK/GNOME modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import libglade | ||||
| import gtk | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GRAMPS modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import GraphLayout | ||||
| from FontScale import string_width | ||||
| from DrawDoc import * | ||||
| from Report import * | ||||
| from TextDoc import * | ||||
|  | ||||
| import libglade | ||||
| import gtk | ||||
| import string | ||||
|  | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
| @@ -44,13 +59,13 @@ _sep = 0.5 | ||||
| def pt2cm(pt): | ||||
|     return (float(pt)/72.0)*2.54 | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # DescendantReport | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| class DescendantReport: | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def __init__(self,database,display,person,output,doc): | ||||
|         self.doc = doc | ||||
|         self.doc.creator(database.getResearcher().getName()) | ||||
| @@ -98,7 +113,6 @@ class DescendantReport: | ||||
|  | ||||
|             self.lines = max(self.lines,len(self.text[p]))     | ||||
|  | ||||
|  | ||||
|     def write_report(self): | ||||
|  | ||||
|         self.calc() | ||||
| @@ -214,14 +228,10 @@ class DescendantReport: | ||||
|         except: | ||||
|             print "Document close failure" | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     # calc - calculate the maximum width that a box needs to be. From | ||||
|     # that and the page dimensions, calculate the proper place to put | ||||
|     # the elements on a page. | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def calc(self): | ||||
|         """calc - calculate the maximum width that a box needs to be. From | ||||
|         that and the page dimensions, calculate the proper place to put | ||||
|         the elements on a page.""" | ||||
| 	self.height = self.lines*pt2cm(1.25*self.font.get_size()) | ||||
| 	self.box_width = pt2cm(self.box_width+20) | ||||
|  | ||||
| @@ -238,11 +248,6 @@ class DescendantReport: | ||||
|         g = GraphicsStyle() | ||||
|         self.doc.add_draw_style("line",g) | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     # | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def print_page(self, plist,elist,r,c): | ||||
|         self.doc.start_page() | ||||
|  | ||||
| @@ -299,6 +304,11 @@ class DescendantReport: | ||||
|         self.doc.end_page() | ||||
|  | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # DescendantReportDialog | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| class DescendantReportDialog(DrawReportDialog): | ||||
|     def __init__(self,database,person): | ||||
|         DrawReportDialog.__init__(self,database,person) | ||||
| @@ -337,9 +347,13 @@ class DescendantReportDialog(DrawReportDialog): | ||||
|         """Create the object that will produce the Descendant Graph. | ||||
|         All user dialog has already been handled and the output file | ||||
|         opened.""" | ||||
|         try: | ||||
|             MyReport = DescendantReport(self.db,self.report_text, | ||||
|                                         self.person, self.target_path, self.doc) | ||||
|             MyReport.write_report() | ||||
|         except: | ||||
|             import DisplayTrace | ||||
|             DisplayTrace.DisplayTrace() | ||||
|              | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
|   | ||||
| @@ -20,14 +20,30 @@ | ||||
|  | ||||
| "Analysis and Exploration/Interactive descendant browser" | ||||
|  | ||||
| from RelLib import * | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # standard python modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import os | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GRAMPS modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| from RelLib import * | ||||
| import Utils | ||||
| import intl | ||||
| import GrampsCfg | ||||
|  | ||||
| _ = intl.gettext | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GTK/GNOME modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import GDK | ||||
| import gtk | ||||
| import libglade | ||||
| @@ -38,7 +54,11 @@ import libglade | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| def runTool(database,person,callback): | ||||
|     try: | ||||
|         DesBrowse(database,person,callback) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| class DesBrowse: | ||||
|     def __init__(self,database,person,callback): | ||||
|   | ||||
| @@ -20,30 +20,40 @@ | ||||
|  | ||||
| "Generate files/Descendant Report" | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # standard python modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import os | ||||
| import sort | ||||
| import string | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GRAMPS modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| from Report import * | ||||
| import intl | ||||
|  | ||||
| _ = intl.gettext | ||||
|  | ||||
| from Report import * | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GTK/GNOME modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import gtk | ||||
| import libglade | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| #  | ||||
| # DescendantReport | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| class DescendantReport: | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def __init__(self,db,person,name,max,doc): | ||||
|         self.creator = db.getResearcher().getName() | ||||
|         self.name = name | ||||
| @@ -51,27 +61,12 @@ class DescendantReport: | ||||
|         self.max_generations = max | ||||
|         self.doc = doc | ||||
|          | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def setup(self): | ||||
|         self.doc.open(self.name) | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def end(self): | ||||
|         self.doc.close() | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def dump_dates(self, person): | ||||
|         birth = person.getBirth().getDateObj().get_start_date() | ||||
|         death = person.getDeath().getDateObj().get_start_date() | ||||
| @@ -85,11 +80,6 @@ class DescendantReport: | ||||
|                 self.doc.write_text('d. ' + str(death.getYear())) | ||||
|             self.doc.write_text(')') | ||||
|          | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def report(self): | ||||
|         self.doc.start_paragraph("Title") | ||||
|         name = self.person.getPrimaryName().getRegularName() | ||||
| @@ -98,11 +88,6 @@ class DescendantReport: | ||||
|         self.doc.end_paragraph() | ||||
|         self.dump(0,self.person) | ||||
|  | ||||
|     #-------------------------------------------------------------------- | ||||
|     # | ||||
|     #  | ||||
|     # | ||||
|     #-------------------------------------------------------------------- | ||||
|     def dump(self,level,person): | ||||
|  | ||||
|         if level != 0: | ||||
| @@ -155,11 +140,6 @@ class DescendantReportDialog(TextReportDialog): | ||||
|         """Where to save styles for this report.""" | ||||
|         return "descend_report.xml" | ||||
|      | ||||
|     #------------------------------------------------------------------------ | ||||
|     # | ||||
|     # Create output styles appropriate to this report. | ||||
|     # | ||||
|     #------------------------------------------------------------------------ | ||||
|     def make_default_style(self): | ||||
|         """Make the default output style for the Descendant Report.""" | ||||
|         f = FontStyle() | ||||
| @@ -178,20 +158,19 @@ class DescendantReportDialog(TextReportDialog): | ||||
|             p.set_left_margin(max(10.0,float(i-1))) | ||||
|             self.default_style.add_style("Level%d" % i,p) | ||||
|  | ||||
|     #------------------------------------------------------------------------ | ||||
|     # | ||||
|     # Create the contents of the report. | ||||
|     # | ||||
|     #------------------------------------------------------------------------ | ||||
|     def make_report(self): | ||||
|         """Create the object that will produce the Descendant Report. | ||||
|         All user dialog has already been handled and the output file | ||||
|         opened.""" | ||||
|         try: | ||||
|             MyReport = DescendantReport(self.db, self.person, self.target_path, | ||||
|                                         self.max_gen, self.doc) | ||||
|             MyReport.setup() | ||||
|             MyReport.report() | ||||
|             MyReport.end() | ||||
|         except: | ||||
|             import DisplayTrace | ||||
|             DisplayTrace.DisplayTrace() | ||||
|          | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
|   | ||||
| @@ -27,9 +27,6 @@ _ = intl.gettext | ||||
|  | ||||
| from Report import * | ||||
|  | ||||
| import gtk | ||||
| import libglade | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| #  | ||||
| @@ -365,9 +362,9 @@ class FamilyGroupDialog(TextReportDialog): | ||||
|         will return a placebo label and disable the OK button.""" | ||||
|         mapping = {} | ||||
|         family_list = self.person.getFamilyList() | ||||
|         if not family_list: | ||||
|             mapping[_("No known marriages")] = None | ||||
|             self.topDialog.get_widget("OK").set_sensitive(0) | ||||
| #        if not family_list: | ||||
| #            mapping[_("No known marriages")] = None | ||||
| #            self.topDialog.get_widget("OK").set_sensitive(0) | ||||
|         for family in family_list: | ||||
|             if self.person == family.getFather(): | ||||
|                 spouse = family.getMother() | ||||
|   | ||||
| @@ -501,7 +501,11 @@ def get_name_obj(person): | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| def runTool(database,active_person,callback): | ||||
|     try: | ||||
|         Merge(database,callback) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
|   | ||||
| @@ -43,7 +43,11 @@ _nick_re = re.compile(r"(.+)[(\"](.*)[)\"]") | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| def runTool(database,active_person,callback): | ||||
|     try: | ||||
|         PatchNames(database,callback) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| class PatchNames: | ||||
|  | ||||
|   | ||||
| @@ -1705,7 +1705,11 @@ def on_ok_clicked(obj): | ||||
|     if name == "": | ||||
|         return | ||||
|     Utils.destroy_passed_object(obj) | ||||
|     try: | ||||
|         importData(db,name) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
|   | ||||
| @@ -20,7 +20,6 @@ | ||||
|  | ||||
| "Import from Gramps" | ||||
|  | ||||
| import libglade | ||||
| from ReadXML import * | ||||
| import Utils | ||||
| import intl | ||||
| @@ -69,7 +68,11 @@ class ReadNative: | ||||
|  | ||||
|         name = "%s/%s" % (name,const.xmlFile) | ||||
|         Utils.destroy_passed_object(self.top) | ||||
|         try: | ||||
|             importData(self.db,name,progress) | ||||
|         except: | ||||
|             import DisplayTrace | ||||
|             DisplayTrace.DisplayTrace() | ||||
|         self.callback(1) | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
|   | ||||
| @@ -33,7 +33,11 @@ _findint = re.compile('^[^\d]*(\d+)[^\d]*') | ||||
|  | ||||
| def runTool(db,active_person,callback): | ||||
|     """Changed person, family, object, source, and place ids""" | ||||
|     try: | ||||
|         ReorderIds(db,callback) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| class ReorderIds: | ||||
|  | ||||
|   | ||||
| @@ -20,15 +20,29 @@ | ||||
|  | ||||
| "View/Summary of the database" | ||||
|  | ||||
| from RelLib import * | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # standard python modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import os | ||||
| import posixpath | ||||
| import re | ||||
| import string | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GRAMPS modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| from RelLib import * | ||||
| import Utils | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GNOME/GTK modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| from gtk import * | ||||
| from gnome.ui import * | ||||
| from libglade import * | ||||
|   | ||||
| @@ -20,19 +20,33 @@ | ||||
|  | ||||
| "View/Verify" | ||||
|  | ||||
| from RelLib import * | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # standard python modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| import os | ||||
| import posixpath | ||||
| import re | ||||
| import sort | ||||
| import string | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GNOME/GTK modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| from gtk import * | ||||
| from gnome.ui import * | ||||
| from libglade import * | ||||
|  | ||||
| #------------------------------------------------------------------------ | ||||
| # | ||||
| # GRAMPS modules | ||||
| # | ||||
| #------------------------------------------------------------------------ | ||||
| from RelLib import * | ||||
|  | ||||
| import Utils | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
| from gtk import * | ||||
| from gnome.ui import * | ||||
| from libglade import * | ||||
|  | ||||
| db = None | ||||
| glade_file = None | ||||
|   | ||||
| @@ -283,7 +283,11 @@ def ged_subdate(date): | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| def writeData(database,person): | ||||
|     try: | ||||
|         GedcomWriter(database,person) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
|   | ||||
| @@ -20,68 +20,88 @@ | ||||
|  | ||||
| "Export to GRAMPS package" | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # standard python modules | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| import time | ||||
| import os | ||||
| from cStringIO import StringIO | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # GNOME/GTK modules | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| import libglade | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # GRAMPS modules | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| from RelLib import * | ||||
|  | ||||
| import WriteXML | ||||
| import time | ||||
| import os | ||||
| import TarFile | ||||
| import Utils | ||||
| import libglade | ||||
|  | ||||
| from cStringIO import StringIO | ||||
| import intl | ||||
| _ = intl.gettext | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # writeData | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| def writeData(database,person): | ||||
|     global db | ||||
|     global topDialog | ||||
|     global active_person | ||||
|     try: | ||||
|         PackageWriter(database) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|      | ||||
|     db = database | ||||
|     active_person = person | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # PackageWriter | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| class PackageWriter: | ||||
|  | ||||
|     def __init__(self,database): | ||||
|         self.db = database | ||||
|          | ||||
|         base = os.path.dirname(__file__) | ||||
|     glade_file = base + os.sep + "pkgexport.glade" | ||||
|         glade_file = "%s/%s" % (base,"pkgexport.glade") | ||||
|          | ||||
|          | ||||
|         dic = { | ||||
|             "destroy_passed_object" : Utils.destroy_passed_object, | ||||
|         "on_ok_clicked" : on_ok_clicked | ||||
|             "on_ok_clicked" : self.on_ok_clicked | ||||
|             } | ||||
|          | ||||
|     topDialog = libglade.GladeXML(glade_file,"packageExport") | ||||
|     topDialog.signal_autoconnect(dic) | ||||
|         self.top = libglade.GladeXML(glade_file,"packageExport") | ||||
|         self.top.signal_autoconnect(dic) | ||||
|         self.top.get_widget("packageExport").show() | ||||
|  | ||||
|     topDialog.get_widget("packageExport").show() | ||||
|  | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| def on_ok_clicked(obj): | ||||
|     global db | ||||
|     global topDialog | ||||
|      | ||||
|     name = topDialog.get_widget("filename").get_text() | ||||
|     def on_ok_clicked(self,obj): | ||||
|         name = self.top.get_widget("filename").get_text() | ||||
|         Utils.destroy_passed_object(obj) | ||||
|     exportData(db,name) | ||||
|         self.export(name) | ||||
|  | ||||
| def callback(a): | ||||
|     pass | ||||
|  | ||||
| def exportData(database, filename): | ||||
|     def export(self, filename): | ||||
|  | ||||
|         t = TarFile.TarFile(filename) | ||||
|         g = StringIO() | ||||
|          | ||||
|     gfile = WriteXML.XmlWriter(database,None,1) | ||||
|         gfile = WriteXML.XmlWriter(self.db,None,1) | ||||
|         gfile.write_handle(g) | ||||
|         mtime = time.time() | ||||
|         t.add_file("data.gramps",mtime,g) | ||||
|         g.close() | ||||
|  | ||||
|     for f in database.getPersonMap().values(): | ||||
|         for f in self.db.getPersonMap().values(): | ||||
|             for p in f.getPhotoList(): | ||||
|                 object = p.getReference() | ||||
|                 base = os.path.basename(object.getPath()) | ||||
| @@ -91,7 +111,7 @@ def exportData(database, filename): | ||||
|                     g.close() | ||||
|                 except: | ||||
|                     pass | ||||
|     for f in database.getFamilyMap().values(): | ||||
|         for f in self.db.getFamilyMap().values(): | ||||
|             for p in f.getPhotoList(): | ||||
|                 object = p.getReference() | ||||
|                 base = os.path.basename(object.getPath()) | ||||
| @@ -101,7 +121,7 @@ def exportData(database, filename): | ||||
|                     g.close() | ||||
|                 except: | ||||
|                     pass | ||||
|     for f in database.getSourceMap().values(): | ||||
|         for f in self.db.getSourceMap().values(): | ||||
|             for p in f.getPhotoList(): | ||||
|                 object = p.getReference() | ||||
|                 base = os.path.basename(object.getPath()) | ||||
| @@ -111,7 +131,7 @@ def exportData(database, filename): | ||||
|                     g.close() | ||||
|                 except: | ||||
|                     pass | ||||
|     for f in database.getPlaceMap().values(): | ||||
|         for f in self.db.getPlaceMap().values(): | ||||
|             for p in f.getPhotoList(): | ||||
|                 object = p.getReference() | ||||
|                 base = os.path.basename(object.getPath()) | ||||
| @@ -121,12 +141,11 @@ def exportData(database, filename): | ||||
|                     g.close() | ||||
|                 except: | ||||
|                     pass | ||||
|              | ||||
|         t.close() | ||||
|      | ||||
| #------------------------------------------------------------------------- | ||||
| # | ||||
| # | ||||
| # Register the plugin | ||||
| # | ||||
| #------------------------------------------------------------------------- | ||||
| from Plugins import register_export | ||||
|   | ||||
| @@ -31,6 +31,16 @@ from gnome.ui import * | ||||
| from libglade import * | ||||
|  | ||||
| def report(database,person): | ||||
|     try: | ||||
|         CountAncestors(database,person) | ||||
|     except: | ||||
|         import DisplayTrace | ||||
|         DisplayTrace.DisplayTrace() | ||||
|  | ||||
| class CountAncestors: | ||||
|      | ||||
|     def __init__(self,database,person): | ||||
|          | ||||
|         text = "" | ||||
|         base = os.path.dirname(__file__) | ||||
|         glade_file = base + os.sep + "summary.glade" | ||||
|   | ||||
		Reference in New Issue
	
	Block a user