Addon:PersonEverything Report

From Gramps
Revision as of 21:11, 22 January 2024 by Bamaustin (talk | contribs) (Known issues)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Please use carefully on data that is backed up, and help make it better by reporting any comments or problems to the author, or issues to the bug tracker
Unless otherwise stated on this page, you can download this addon by following these instructions.
Please note that some Addons have prerequisites that need to be installed before they can be used.
This Addon/Plugin system is controlled by the Plugin Manager.
An Addons Offline Manual is available for review.

PersonEverything Report - Example HTML output

The PersonEverything Report is designed to show absolutely everything about one person, including all events, notes, citations, sources, attributes, media and the family information about the families in which they are involved. (E&OE)

Because of the complicated structure of the data in Gramps, the data is output in a very structured way, so it may not be in an elegant narrative format! It could be regarded as an end-user report that can be used for diagnostic purposes, or as a debug report that can also be used by an end-user!


This report is available under the menu Reports > Text Reports > PersonEverything Report...


See also common options

Report Options

  • Center Person: the center person for the report.
  • Name Format: Select the format to display the names. Choose from Default / Surname, Given Suffix / Given Surname Suffix / Given / Main Surnames, Given Patronymic Suffix / SURNAME, Given (Common)

Relation to other reports

There are a number of reports that output information about individuals, for example:

  • The Summary Report apparently produced a detailed summary on the active person. The report apparently included all the facts known to the database about that person. This was available in Gramps 2.2, but is no longer available.
  • The Complete Individual Report provides individual summaries similar to that of the Individual Summary Report.
  • The Descendant Report presents the descendants of the Active Person with a brief description in intended style.
  • The Detailed Ancestral Report covers in detail the ancestors of the Active Person, including a range of vital data as well as marriages.
  • The Detailed Descendant Report covers in detail the descendants of the Active Person by generation, following the genealogical tradition of textual descendant reports by generation. It aims to provide all important features expected to be found in these classic descendency formats and has received influence from various sources.
  • The Ahnentafel Report lists the Active Person and his or her ancestors along with their vital data. The people are numbered in an establish standard called 'Ahnentafel'.
  • The Family Group Report creates a family group report, showing information on a set of parents and their children.
  • The Narrated Web Site report generates a web site (that is, a set of linked web pages), for a set of selected individuals.

Because the structure of the data stored in Gramps is complex, there is a necessary trade-off between report style and completeness. All the above reports (with the possible exception of the obsolete and unavailable Individual Summary Report) are selective in the information they output from the database, in order to present it in a way that the report designer considers helpful to the user.

Report implementation design

The report is designed around a recursive print_object function. This uses if statements to determine whether the object to be printed is an instance or subclass of the class which the if statement handles. At the end of each if statement, the code just falls through to execute the next if statement. The if statements are in alphabetic order of the class, and this ensures that the different objects are output in alphabetical order.

The report output is started by functions to output persons, events and families.

As an example, consider the Person class. print_person_summary outputs page header information with the person's name and birth and death information (all of which are repeated later). print_person_details then outputs the name information so that this appears at the start of the output. This uses print_object, but we won't describe this further now. print_person_details then calls print_object for the person.

The person class is defined as:

 class Person(CitationBase, NoteBase, AttributeBase, MediaBase,
              AddressBase, UrlBase, LdsOrdBase, TagBase, PrimaryObject):

The alphabetically first class of which Person is a subclass is AddressBase', so this is the first if statement to be true. This recurses, calling print_object for each address. On return, the code falls through to the next if statement. The next if statement to be true is for subclasses of AttributeBase. This loops through each attribute in the attribute list, outputting a header containing the attribute type, value and privacy, before recursively calling print_object for the attribute. This outputs any citations and notes for the object before returning and falling through to the next if statement that is true, for the alphabetically next object of which Person is a sub-type.

The code is not as simple as just having each if statement output the data for that class, because the use of intermediate 'ref' classes would result in the main information about each class being separated from the header for that class.

A new Bibliography class is needed in order to output all the information for Citations and Sources. The number in the text and the notes at the end of the document follow the Humanities style of the Chicago manual of style (see [1], but without the bibliography). Specifically the style of numbering and footnotes is based on [2]. This format has the properties that:

  • the superscript numbers for the citations in the body of the document are all in strict numerical order in the document.
  • when a source is used more than once in the footnotes,
    • ibid. is used when the footnote refers to the same source as the immediately preceding footnote,
    • op. cit. is used to refer a previously cited source, but using a different page number,
    • loc. cit. is used to refer a previously cited source using exactly the same page number.

The style of the notes themselves is based on a structured presentation of the data that is stored for Citations and Sources, rather than one of the specific document types in the Chicago Manual of Style. There is no separate bibliography (i.e. no separate summary of all the documents that are references).

Known issues

  • The Gramps report document infrastructure may not always generate images in some of the document formats. This is not a problem with the addon, but rather a problem with the infrastructure. The HTML output format seems to be the most reliable in outputting images.
  • Images are not displayed.