Difference between revisions of "DescendantsLines"
(→Needs) |
(→Needs) |
||
Line 20: | Line 20: | ||
=== Needs === | === Needs === | ||
+ | |||
+ | ==== Pass 1 ==== | ||
# Enable Person selection (Gramps ID) - ''done'' | # Enable Person selection (Gramps ID) - ''done'' | ||
# Generate a temp Gramps XML database matching 'IsDescendantFamilyOf' filter rule - ''done'' | # Generate a temp Gramps XML database matching 'IsDescendantFamilyOf' filter rule - ''done'' | ||
# Input path - ''done'' | # Input path - ''done'' | ||
+ | |||
+ | * simple Gramps XML template with events, persons, families objects (only export primary event role reference). | ||
+ | * 'localized' dates (does not follow last DTD, which uses english and ISO format) | ||
+ | * a basic descendant families textual print for draw reports: this avoids empty returns when generating reports. | ||
+ | ''TODO'': need to fix duplicated families on generated XML file. - ''done'' - next revision | ||
+ | fams = self.database.get_family_handles() | ||
+ | for child in ind_list: | ||
+ | person = self.database.get_person_from_handle(child) | ||
+ | # only family where person is the children | ||
+ | for handle in person.get_parent_family_handle_list(): | ||
+ | fam = self.database.get_family_from_handle(handle) | ||
+ | if handle in fams: | ||
+ | self.write_xml_family(fam) | ||
+ | fams.remove(handle) | ||
+ | |||
+ | '''FINISHED''' - it works fine! | ||
+ | |||
+ | ==== Pass 2 ==== | ||
+ | |||
# Move Gtk code to draw report (if possible) | # Move Gtk code to draw report (if possible) | ||
# Move cairo code to draw report (if possible) | # Move cairo code to draw report (if possible) | ||
Line 28: | Line 49: | ||
# Clean-up, pylint, etc ... | # Clean-up, pylint, etc ... | ||
− | |||
− | |||
− | |||
− | |||
Feel free to contribute or improve it. | Feel free to contribute or improve it. |
Revision as of 08:15, 10 December 2010
DescendantsLines is an in-development plugin for Gramps which generates a graphical descendants tree using orthogonal edges.
History
2007: Adam Sampson has written a standalone python script for parsing data.gramps (GRAMPS XML). [1]
2010: this script needs some updates for avoiding minor issues.
A modified script is available on the addons repository. [2]
Limitations
The code ignores role on event (was added in 2007).
Descendants Lines
There is an experimental try for migrating this Gtk/cairo code to a draw plugin working into Gramps (font, style, path, canvas, output formats).
Draft version is available on Addons repository as very unstable (alpha). [3]
The idea will be to keep the Gramps XML parsing, but with a copy of the active database and use of current report environment (output formats, style, path).
Needs
Pass 1
- Enable Person selection (Gramps ID) - done
- Generate a temp Gramps XML database matching 'IsDescendantFamilyOf' filter rule - done
- Input path - done
- simple Gramps XML template with events, persons, families objects (only export primary event role reference).
- 'localized' dates (does not follow last DTD, which uses english and ISO format)
- a basic descendant families textual print for draw reports: this avoids empty returns when generating reports.
TODO: need to fix duplicated families on generated XML file. - done - next revision
fams = self.database.get_family_handles() for child in ind_list: person = self.database.get_person_from_handle(child) # only family where person is the children for handle in person.get_parent_family_handle_list(): fam = self.database.get_family_from_handle(handle) if handle in fams: self.write_xml_family(fam) fams.remove(handle)
FINISHED - it works fine!
Pass 2
- Move Gtk code to draw report (if possible)
- Move cairo code to draw report (if possible)
- Output path
- Clean-up, pylint, etc ...
Feel free to contribute or improve it.