Difference between revisions of "DescendantsLines"

From Gramps
Jump to: navigation, search
m (Alternate Pass 2: use of user-defined (mega)-widgets)
m (Alternate Pass 2: use of user-defined (mega)-widgets)
Line 47: Line 47:
 
# Clean-up, pylint, etc ...
 
# Clean-up, pylint, etc ...
  
==== Alternate Pass 2: use of user-defined (mega)-widgets ====
+
==== 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=2393]
 
# Have a look at mega-widget request and implementation [http://www.gramps-project.org/bugs/view.php?id=2393]
 
# Output path through mega-widget
 
# Output path through mega-widget
 +
# Clean-up, pylint, etc ...
  
  

Revision as of 14:48, 10 December 2010

Lines of descendants chart

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

  1. Script ignores role on event (was added in 2007).
  2. Script ignores localized date handlers (use ISO date format, date quality in english)
  3. Memory limiation with a large database (DOM parsing)

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 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

  1. Enable Person selection (Gramps ID) - done
  2. Generate a temp Gramps XML database matching 'IsDescendantFamilyOf' filter rule - done
  3. Input path - done
  4. 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)
  • 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: $HOME/DescendantsLines.png


FINISHED - it works fine!

Pass 2: use draw report environment

  1. Generate a plugins/docgen/PNGDrawDoc.py file [4]
  2. Move Gtk code to draw report (if possible)
  3. Move cairo code to draw report (if possible)
  4. Output path
  5. Clean-up, pylint, etc ...

Pass 2 (Alternate): use of user-defined (mega)-widgets

  1. Have a look at mega-widget request and implementation [5]
  2. Output path through mega-widget
  3. Clean-up, pylint, etc ...


Feel free to contribute or improve it.