Changes

Jump to: navigation, search

DescendantsLines

5,086 bytes added, 22:11, 12 January 2018
Usage
[[Image:DescendantsLines.png|thumb|300px|Lines of descendants chart]][[Image:DescendantsLines{{Third-m-ep-.png|thumb|300px|DescendantsLines, example Gramps data, inc_marriages and inc_places.]][[Image:JohnShakespeare-DescendantsLines.png|thumb|300px|Shakespeare family tree, DescendantsLines]][[Image:JohnShakespeare-DescendantsLines-ep.png|thumb|300px|Shakespeare family tree, DescendantsLines, including event places]]'''DescendantsLines''' is an in-development addon for Gramps which generates a graphical descendants tree using orthogonal edges and routing ("square edges").party plugin}}
== History ==[[Image:DescendantsLines.png|thumb|right|450px|Lines of descendants chart]]2007[[Image: Adam Sampson has written a standalone python script for parsing DescendantsLines-m-ep-.png|thumb|right|450px|DescendantsLines, Left-aligned text style, example Gramps data, inc_marriages and inc_places.gramps (]][[GRAMPS XMLImage:JohnShakespeare-DescendantsLines.png|thumb|right|450px|Shakespeare family tree, DescendantsLines, inc_marriages]]). [[httpImage://offogJohnShakespeare-DescendantsLines-ep.org/darcs/misccode/familytreepng|thumb|right|450px|Shakespeare family tree, DescendantsLines, Left-aligned text style, including event places]]
2010: this script needs some updates '''DescendantsLines''' is an addon for avoiding minor issuesGramps which generates a graphical descendants tree using orthogonal edges and routing ("square edges").
A modified script is available on DescendantsLines presents an orthogonal family tree, in vertical mode only. In DescendantsLines, vertical mode, children in a family are ordered from left to right following the Gramps child order; and families are ordered right to left, top to bottom, following the addons repository. [http://gramps-addons.svn.sourceforgeGramps family order.net/viewvc/gramps-addons/trunk/contrib/DescendantsLines/]
== Limitations Usage ==# No option for name display format# Partial quoting of xml-syntax-like data. Data which resembles xml syntax (tags, etc) 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)# The addon DescendantsLines does not use the Gramps document interface. (perhaps the Gramps document interface options should be hidden)# DestinationOption does not have the usual error handling and user checking (e.g. for overwriting files)
== 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 * Select the report -- using the menu option {{man menu|Reports -> Graphical Reports -> Descendants Lines. ..}}* Choose the output path on "for the {{man label|Destination" (default :}} <code>$GRAMPSHOME/DescendantsLinesDescendants Lines.png</code>(default). The "** Note: That ''Document Options'' {{man label|Filename" :}} option will contain an empty file after the report is run.# The * Note: If the script currently runs is run in "debug mode" so it generates copious terminal output such as "Unknown event type: ..." or "Unknown spouse: ...". These warnings are harmless.
=== Options ===
 DescendantsLines has the following option tabs available to change: There are option and tree combinations which may generate overlapping edges and nodes. If using the inc_marriages option the S_DOWN - S_UP difference may need to be increased by 5-15 units depending on the tree. ==== Paper Options ==== ==== Report Options ====* output_fmt - The output format (PNG, SVG, PDF or PS)* output_fn - The options output filename * max_gen - Maximum number of generations to include. (0 for unlimited){{stub}} ==== Display ==== * name_format - The name format* inc_dnum - Whether to use d'Aboville descendant numbering system* use_colors - Whether to use colored names indicating person gender in the output. * text style - The predefined output style{{stub}}* inc_places - Whether to include event places in the output* inc_marriages - Whether to include marriage information in the addon DescendantsLines areoutput ==== Replace ==== * Replace Display Format: 'Replace this'/'with this': ie:United States of America/USA==== S & F Options ==== 
* S_DOWN - The length of the vertical edges from descendant to spouse-bar
* S_UP - The length of the vertical edges from spouse-bar to spouse
* S_VPAD - Length of vertical padding spacing between spouse and spouse-bar (?)
* SP_PAD - Length of padding spacing between spouses
* F_PAD - Length of padding spacing between families (?)
* FL_PAD - Length of padding spacing between S_UP edges (vertical edges from spouse-bar to spouse) and O_DOWN edges (vertical edges from spouse-bar to child-bar)
 ==== O, C & Text Options ==== * OL_PAD- The number of ??? pad
* O_DOWN - The length of the vertical edges from spouse-bar to child-bar
* C_PAD - Length of padding spacing between children
* F_PAD - Length of padding spacing between families (?)
* C_UP - The length of the vertical edges from child to child-bar
* SP_PAD MIN_C_WIDTH - Minimal width of child cells* TEXT_PAD - Length of text padding spacing between spouses* MIN_C_WIDTHTEXT_LINE_PAD - Length of text line padding === Examples ===* TEXT_PAD[[File:DescendantsLines-m-ep.pdf]] -- DescendantsLines, example Gramps data, inc_marriages and inc_places, PDF output.* TEXT_LINE_PAD[[File:DescendantsLines-left.pdf]] -- DescendantsLines, Left-aligned text style, example Gramps data, use_colors, inc_marriages and inc_places, PDF output.* max_gen [[File:Charlemagne-DescendantsLines.pdf]] -- Maximum number DescendantsLines addon, inc_marriages and inc_places, PDF output, presenting a family tree of generations to includeCharlemagne starting from Chloderic King of Cologne. * inc_places [[File:PepinOfHerstal-DescendantsLines-left-dnum.pdf]] --DescendantsLines Gramps addon, Left- Whether to include event places in aligned text style, d'Aboville numbering (inc_dnum), descendants of Pepin of Herstal or Pepin II, PDF output. Data from Charlemagne GEDCOM at http://www.genealogyforum.com/gedcom/gedr1434.htm. === Tree compression and or modification===SVG format trees can be compressed and or modified manually using the outputprogram Inkscape, using the select and path tools; or using other SVG manipulating program. PNG format trees can be compressed manually by manipulating the image. == Installation ===== Gramps 5.x version ===Installed through the Gramps Plugin Manager. === Gramps 4.x version ===Installed through the Gramps Plugin Manager. === Gramps 3.3 version ===* inc_marriages - Whether to include marriage information in The Gramps 3.3 version of DescendantsLines can be installed through the outputGramps Plugin Manager.
=== Example Gramps 3.4 version ===* [[To use the Gramps 3.4 version of DescendantsLines, on Gramps Trunk, now gramps34:Image:Charlemagne-# Create the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ .# Copy the files DescendantsLines.py and DescendantsLines.png]] gpr.py from Gramps-- A family tree of Charlemagne starting from Chloderic King of Cologneaddons trunk svn to the directory $GRAMPSHOME/gramps/gramps34/plugins/DescendantsLines/ . (No preview, click on "Full resolution")
== Development ==
There is an experimental try for migrating in-development migration of this Gtk/cairo code to a draw plugin working into Gramps (font, style, path, canvas, output formats). This migration, DescendantsLines, does not use the Document interface of Gramps. Draft version is available on [[Addons_development|Addons]] repository. [https://github.com/gramps-project/addons-source/tree/master/DescendantsLines addons-source/tree/master/DescendantsLines] The idea is keeping Gramps XML parsing, but with a copy of the active database and use of current report environment (output formats, style, path). === Ideas ===Feel free to contribute or improve DescendantsLines. * Think of optional tree compression algorithms.* Add option to include divorces.* Add option to include spouse parents.* Add option to include spouse ancestries.** Add option to include arbitrary spouse ancestries.* Add option to include arbitrary ancestries.* Add option to include notes.* Add option to include sources.* Add option to include images.* Add horizontal mode.* Add optional text wrap width.* Add optional text width with use of ellipses.* Cairo provides hyperlink support. Names could be hyperlinks to html complete individual reports or to web report pages.* This addon may with time become a general orthogonal family tree drawing resource for Gramps, for a View, etc., and outside Gramps as well. The PyCairo code can be connected to a view.* The hardcoded number option limits can be altered by users, by altering the code. * <s>Add option to include event places.</s>(done in Gramps-addons)* <s>Add option to include marriage information.</s> (done in Gramps-addons)* <s>Using the library get_event_or_fallback() methods from gen.utils.</s> (done in Gramps-addons)* <s>Add optional generation limit.</s> (done in Gramps-addons)* <s>Make the XML export smaller. Use filter.</s> (done in Gramps-addons)* <s>Add option for output format. (PNG, SVG, PDF or PS)</s> (done in Gramps-addons)* <s>Add boolean option use_colors.</s> (done in Gramps-addons)* <s>Use gen.display.name.displayer.</s> (done in Gramps-addons)* <s>Add option for name display format.</s> (done in Gramps-addons trunk)* <s>Add style variables and option, ref. text alignment, etc.</s> (done in Gramps-addons)* <s>Use Gramps family order.</s> (done in Gramps-addons)* <s>Add option to use d'Aboville descendants numbering system.</s> (done in Gramps-addons trunk) ==== Command Line Interface ==== Gramps provides a cli support for running reports and tools [[Gramps 5.0 Wiki Manual - Command Line]].
Draft version is available on [[Addons_development* {{bug|Addons]] repository as '''unstable''' (beta). [http4114}}:Would like to use stdin and stdout for command line import//gramps-addons.svn.sourceforge.net/viewvc/gramps-addons/trunk/contrib/DescendantsLines/ftexport.py]
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).=== Ideas Current limitations === * Using The addon DescendantsLines does not use the library get_event_or_fallbackGramps document interface (''Document Options'') methods from gen.utils (DescendantsLines already uses get_marriage_or_fallbackperhaps the Gramps document interface options should be hidden)* DestinationOption does not have the usual error handling and user checking (e.g. for overwriting files)* Partial quoting of xml-syntax-like data. Data which resembles xml syntax (tags, etc)may cause error. * Script ignores role on event (done was added in Gramps-addons trunk2007)* Script ignores localized date handlers (using ISO date format, date quality in english)* Add Memory limitation with a generation large database (DOM parsing)* The last pixel column of each secondary line of each entry is wrong coloured (red instead black)* Size limit: Cairo surface size limit. (done in Gramps-addons trunk32767 for height and 32767 for width [http://comments.gmane.org/gmane.comp.lib.cairo/21068])* Think of tree compression algorithms.Some PDF output size limit (currently crossing this limit will result in an empty PDF file)
=== Needs ===
* 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).
<!--* 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).
==== Pass 2: use draw report environment ====
# Generate a plugins/docgen/PNGDrawDoc.py file [http://www.gramps-project.org/bugs/view.php?id={{bug|4447]}}
# Move Gtk code to draw report (if possible)
# Move cairo code to draw report (if possible)
==== Pass 2 (Alternate): use of user-defined (mega)-widgets ====
# Have a look at mega-widget request and implementation [http://www.gramps-project.org/bugs/view.php?id={{bug|2393]}}
# 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 [http://www.gramps-project.org/wiki/index.php?title=Gramps_3.2_Wiki_Manual_-_Command_Line]. * use stdin and stdout for command line import/export [http://www.gramps-project.org/bugs/view.php?id=4114]{{bug|5545}}
=== Development History ===
*2007: Adam Sampson has written a standalone python script for parsing data.gramps ([[Gramps XML]]). [http://offog.org/darcs/misccode/familytree]
*2010: this script needs some updates for avoiding minor issues.
A modified script is available on the addons repository. [http://sourceforge.net/p/gramps-addons/code/HEAD/tree/trunk/contrib/DescendantsLines/]
=== Libraries ===
The program DescendantsLines, as the script in which it is based, is written in Python, using PyCairo and the Python XML library. Many Gramps modules are also used.
Feel free to contribute or improve it== Issues ==* See [[DescendantsLines#Current_limitations|Current limitations]]* {{bug|5823}} DescendentsLines does not display a marriage date when one spouse is unknown* {{bug|5965}} report produced with stale name from previous gramps session* Help button does not link here.
== See also ==
* [[Addon:Family Tree]] - generates horizontal orthogonal graphical trees.
* [[Addon:TimelinePedigreeView]] - displays horizontal orthogonal graphical trees.
[[Category:Plugins]]
[[Category:Developers/General]]
[[Category:Reports]]

Navigation menu