Difference between revisions of "DescendantsLines"
(→Usage) |
(maintenance) |
||
Line 18: | Line 18: | ||
== Usage == | == Usage == | ||
− | # Copy the files DescendantsLines.py and DescendantsLines.gpr.py from svn to | + | # Create the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ . |
− | + | # Copy the files DescendantsLines.py and DescendantsLines.gpr.py from svn to the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ . | |
− | # Open Gramps and generate the report -- Reports -> Graphical Reports -> Descendants Lines. Choose the output path. | + | # Open Gramps and generate the report -- Reports -> Graphical Reports -> Descendants Lines. Choose the output path on "Destination" (default $GRAMPSHOME/DescendantsLines.png). The "Filename" option will contain an empty file after the report is run. |
− | |||
− | |||
# The script currently runs in "debug mode" so it generates copious terminal output such as "Unknown event type: ..." or "Unknown spouse: ...". These warnings are harmless. | # The script currently runs in "debug mode" so it generates copious terminal output such as "Unknown event type: ..." or "Unknown spouse: ...". These warnings are harmless. | ||
+ | |||
+ | === Options === | ||
+ | The options for the addon DescendantsLines are: | ||
+ | * S_DOWN - The length of the vertical edge from descendant to spouse-bar | ||
+ | * S_UP - The length of the vertical edge from spouse-bar to spouse | ||
+ | * S_VPAD | ||
+ | * FL_PAD | ||
+ | * OL_PAD | ||
+ | * O_DOWN - The length of the vertical edge from spouse-bar to child-bar | ||
+ | * C_PAD | ||
+ | * F_PAD | ||
+ | * C_UP - The length of the vertical edge from child to child-bar | ||
+ | * SP_PAD | ||
+ | * MIN_C_WIDTH | ||
+ | * TEXT_PAD | ||
+ | * TEXT_LINE_PAD | ||
=== Example === | === Example === | ||
Line 47: | Line 61: | ||
* key/filter issues remain, currently export all persons to XML file. | * key/filter issues remain, currently export all persons to XML file. | ||
* 'localized' dates (does not follow last DTD, which uses english and ISO format). | * 'localized' dates (does not follow last DTD, which uses english and ISO format). | ||
− | * a basic persons list print for draw report: this avoids empty returns when generating the report and could help to check what is missing (see above). | + | <!--* a basic persons list print for draw report: this avoids empty returns when generating the report and could help to check what is missing (see above). |
− | * output path and format are hardcoded: $GRAMPSHOME/DescendantsLines.png . | + | * output path and format are hardcoded: $GRAMPSHOME/DescendantsLines.png .--> |
Line 67: | Line 81: | ||
# Clean-up, pylint, etc ... | # Clean-up, pylint, etc ... | ||
+ | ==== Pass 2 (Alternate): use a DestinationOption ==== | ||
+ | # Use a DestinationOption | ||
+ | # Ignore standard Filename option | ||
== Command Line Interface == | == Command Line Interface == |
Revision as of 08:35, 14 January 2012
DescendantsLines is an in-development plugin for Gramps which generates a graphical descendants tree using orthogonal edges and routing ("square 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
- No option for name display format
- No quoting of xml-tag-like data. Data which resembles xml syntax may cause error.
- Script ignores role on event (was added in 2007)
- Script ignores localized date handlers (using ISO date format, date quality in english)
- Memory limitation with a large database (DOM parsing)
- The last pixel column of each secondary line of each entry is wrong coloured (red instead black)
Usage
- Create the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ .
- Copy the files DescendantsLines.py and DescendantsLines.gpr.py from svn to the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ .
- Open Gramps and generate the report -- Reports -> Graphical Reports -> Descendants Lines. Choose the output path on "Destination" (default $GRAMPSHOME/DescendantsLines.png). The "Filename" option will contain an empty file after the report is run.
- The script currently runs in "debug mode" so it generates copious terminal output such as "Unknown event type: ..." or "Unknown spouse: ...". These warnings are harmless.
Options
The options for the addon DescendantsLines are:
- S_DOWN - The length of the vertical edge from descendant to spouse-bar
- S_UP - The length of the vertical edge from spouse-bar to spouse
- S_VPAD
- FL_PAD
- OL_PAD
- O_DOWN - The length of the vertical edge from spouse-bar to child-bar
- C_PAD
- F_PAD
- C_UP - The length of the vertical edge from child to child-bar
- SP_PAD
- MIN_C_WIDTH
- TEXT_PAD
- TEXT_LINE_PAD
Example
- Image:Charlemagne-DescendantsLines.png -- A family tree of Charlemagne starting from Chloderic King of Cologne. (No preview, click on "Full resolution")
Development
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 unstable (beta). [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: generate a tmp XML with only data needed for the report, to load it as input
- Enable Person selection (Gramps ID) - done
- Generate a temp Gramps XML database matching 'IsDescendantFamilyOf' filter rule - done
- Input path - done (need to set @prefix@: path_to_SVN/src on const.py)
- Clean-up - done
- simple Gramps XML template with events, persons, families objects (only export primary event role reference).
- key/filter issues remain, currently export all persons to XML file.
- 'localized' dates (does not follow last DTD, which uses english and ISO format).
FINISHED - it works fine!
Pass 2: use draw report environment
- Generate a plugins/docgen/PNGDrawDoc.py file [4]
- Move Gtk code to draw report (if possible)
- Move cairo code to draw report (if possible)
- Output path
- Clean-up, pylint, etc ...
Pass 2 (Alternate): use of user-defined (mega)-widgets
- Have a look at mega-widget request and implementation [5]
- Output path through mega-widget
- Clean-up, pylint, etc ...
Pass 2 (Alternate): use a DestinationOption
- Use a DestinationOption
- Ignore standard Filename option
Command Line Interface
Gramps provides a cli support for running reports and tools [6].
- use stdin and stdout for command line import/export [7]
Feel free to contribute or improve it.