I have some comments and queries regarding the “Ancestor tree expanded” graphical report [chart].
This is a very welcome development, with much promise.
Note though the somewhat unhelpful difference between the name of the plugin in the “Reports > Graphical reports” dropdown [as “Ancestor Tree Expanded”] and the name of the ID of the plugin as “ExpandedAncestorTree”. The latter, not the former, is used within the Gramps report_options.xml, where most users probably don’t need to go, but anyone trying to maximise the utility of a workflow from Gramps via SVG will.
Like the standard built-in “Ancestor Tree” report, your implementation includes the option of a substitution list [to enable on-the-fly shortening of text objects for clarity], and renders text objects as standard text in the output SVG, which then enables global &/or selective modification of the font, font-instances, point-sizes, colours, positions etc in the chart production workflow. And with a custom Gramps style sheet for the report type, you can set up various objects with arbitrarily different formatting [e.g. names in different colour from events, to enable a heavier font instance for one than the other], for easy separation within the SVG, into different layers for different treatment [because you can select from the raw generated SVG by various combinations of stroke and/or fill, or by object type]
Unfortunately, none of the Gramps “Graph” report types [ditto the LaTeX ones] allow this, because all text objects are rendered as glyphs, making it completely impractical to undertake post-generation adjustment of formatting, other than to ADD objects.
The ability to manipulate all objects in SVG output is extremely important in a workflow designed to maximise the impact of Gramps graphical reports, optimise colour contrast, line weights, selective fills and text readability, and then distribute them in PDF, with or without internal bookmarks.
As currently implemented, the default chart orientation has the earliest generation at the right, and the latest generation at the left. This is exactly the same as the built-in Ancestor Tree.
But one thing I have learned in distributing charts to family is that they get confused if the orientation of earliest-to-latest generation flow is different between different charts.
All of the Gramps descendant chart types have an earliest-to-latest flow of left-to-right [the opposite to the Ancestor trees].
Likewise, the “Family Tree” graphical report type [uniquely, until arrival of the “Ancestor Tree Expanded”] offers an adjustable combination of both ancestor AND descendant generations, but it is nevertheless oriented with earliest-to-latest generations left-to-right. Unfortunately, it is currently quite constrained in its output options, and does not implement a replacement list, nor allow any of the standard Gramps substitution values, which significantly reduces its potential.
The “Dynamic Web Report” gives the user complete control over the orientation [“shape”] of the SVG chart that is available in that report type, and also allows for various different emphases on ancestors or descendants or a combination.
My big question for you is whether it is feasible to offer the user the option of chart default orientation earliest-to-latest from left-to-right, as well as the current latest-to-earliest from left-to-right [essentially a mirror image of the present, but with the text rendered in right-reading orientation].
It is possible to mirror flip the current output SVG horizontally in an editor, and then flip the text objects back to a readable orientation [by scaling -100% around each object’s individual centroid], but most if not all text objects then need to have their left-alignment adjusted manually with respect to their box, and it is extremely labour-intensive to do so for anything other than a relatively small and uncomplicated chart, i.e. it is theoretically feasible but mostly impractical.
On several occasions, admittedly with a fairly large and complicated family [16 children of the centre person], I got the error message “Tree truncated. The generated tree reached the 400 people safety limit and has been truncated. Please reduce the number of generations or disable some options to see all branches”.
But with settings of scale to fit page width only, at A0 portrait, and only the value 1 for ancestors [zero is not allowed], and only 3 for descendants, and with both “include descendants of the centre person” and “include cousins” selected, you still end up with five generations across the chart [including the centre person & their partner]. Likewise, 1a with 2d gives a total of four generations, and 1a with 1d gives a total of three generations across, even though no ancestors of the centre person are shown. [That 1A with 1D version of the chart, as generated, is a virtual page of about A4 landscape width, and (from the 16 children), the equivalent of 16 sheets of landscape A4 from top to bottom.
It might help if the label on the ancestor value field on the “Tree options” tab said that “Generations” includes the centre person? Or perhaps it might be more intuitive if the value zero was allowed, i.e. to mean that the chart will include the centre person but no ancestors? It might be clearer still if the label on the “Generations” field was “Ancestor Generations”?
I am still mystified as to why one more descendent generation gets shown than the value specified in the “Descendant Generations” field of the “Tree options” tab.
If I switch off the “include descendants of the centre person” and “include cousins” options, and set the chart to 3a and 1d [where, again, zero is not allowed], I get a total of four generations across the chart—the centre person and two generations of their ancestors, plus, somewhat perversely, one generation of descendants [i.e. the sixteen children]. Even if I increase the ancestor value to, say, 6a with 1d [which does not break the 400 limit], what i get still contains a column of descendants, so I remain unclear as to what the “include descendants …” switch is intended to do.
For charts where the “Show index” is selected, there needs to be ~ 5px more space between the baseline of the index number [i.e. y -5px for the index number] and the box, so there is a wider gap.
I will continue to test this …
I should have added that I have been testing v1.0.4