794 lines
29 KiB
Plaintext
794 lines
29 KiB
Plaintext
|
<!DOCTYPE article PUBLIC "-//GNOME//DTD DocBook PNG Variant V1.1//EN"[
|
||
|
<!ENTITY version "0.2.0"> <!-- replace with application version -->
|
||
|
]>
|
||
|
|
||
|
|
||
|
<!--
|
||
|
This is a GNOME documentation template, designed by the GNOME
|
||
|
Documentation Project Team. Please use it for writing GNOME
|
||
|
documentation, making obvious changes. In particular, all the words
|
||
|
written in UPPERCASE (with the exception of GNOME) should be
|
||
|
replaced. As for "legalnotice", please leave the reference
|
||
|
unchanged.
|
||
|
|
||
|
Remember that this is a guide, rather than a perfect model to follow
|
||
|
slavishly. Make your manual logical and readable. And don't forget
|
||
|
to remove these comments in your final documentation! ;-)
|
||
|
-->
|
||
|
|
||
|
<!--
|
||
|
(Do not remove this comment block.)
|
||
|
Maintained by the GNOME Documentation Project
|
||
|
http://developer.gnome.org/projects/gdp
|
||
|
Template version: 1.0.3
|
||
|
Template last modified: Nov 16, 2000
|
||
|
-->
|
||
|
|
||
|
|
||
|
<!-- =============Document Header ============================= -->
|
||
|
|
||
|
<article id="index"> <!-- please do not change the id -->
|
||
|
|
||
|
<artheader>
|
||
|
<title>gramps User Manual</title>
|
||
|
<copyright>
|
||
|
<year>2001</year>
|
||
|
<holder>Donald N. Allingham</holder>
|
||
|
</copyright>
|
||
|
|
||
|
<!-- translators: uncomment this:
|
||
|
|
||
|
<copyright>
|
||
|
<year>2001</year>
|
||
|
<holder>ME-THE-TRANSLATOR (Latin translation)</holder>
|
||
|
</copyright>
|
||
|
|
||
|
-->
|
||
|
|
||
|
<!-- do not put authorname in the header except in copyright - use
|
||
|
section "authors" below -->
|
||
|
|
||
|
<!-- Use this legal notice for online documents which depend on -->
|
||
|
<!-- core GNOME packages. -->
|
||
|
<legalnotice id="legalnotice">
|
||
|
<para>
|
||
|
Permission is granted to copy, distribute and/or modify this document
|
||
|
under the terms of the <ulink type="help"
|
||
|
url="gnome-help:fdl"><citetitle>GNU Free Documentation
|
||
|
License</citetitle></ulink>, Version 1.1 or any later version
|
||
|
published by the Free Software Foundation with no Invariant Sections,
|
||
|
no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
|
||
|
can be found <ulink type="help" url="gnome-help:fdl">here</ulink>.
|
||
|
</para>
|
||
|
<para>
|
||
|
Many of the names used by companies to distinguish their products and
|
||
|
services are claimed as trademarks. Where those names appear in any
|
||
|
GNOME documentation, and those trademarks are made aware to the members
|
||
|
of the GNOME Documentation Project, the names have been printed in caps
|
||
|
or initial caps.
|
||
|
</para>
|
||
|
</legalnotice>
|
||
|
|
||
|
<!-- Use this legal notice for documents which are placed on -->
|
||
|
<!-- the web, shipped in any way other than online documents -->
|
||
|
<!-- (eg. PS, PDF, or RTF), or which do not depend on the -->
|
||
|
<!-- core GNOME distribution. -->
|
||
|
<!-- -->
|
||
|
<!-- If you use this version, you must place the following -->
|
||
|
<!-- line in the document declaration at the top of your -->
|
||
|
<!-- document: -->
|
||
|
<!-- <!ENTITY FDL SYSTEM "fdl.sgml"> -->
|
||
|
<!-- and the following line at the bottom of your document -->
|
||
|
<!-- after the last </sect1>. -->
|
||
|
<!-- &FDL; -->
|
||
|
<!--
|
||
|
<legalnotice id="legalnotice">
|
||
|
<para>
|
||
|
Permission is granted to copy, distribute and/or modify this document
|
||
|
under the terms of the <link linkend="fdl"><citetitle>GNU
|
||
|
Free Documentation License</citetitle></link>, Version 1.1 or any later
|
||
|
version published by the Free Software Foundation with no Invariant
|
||
|
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the
|
||
|
license can be found in <xref linkend="fdl">.
|
||
|
</para>
|
||
|
<para>
|
||
|
Many of the names used by companies to distinguish their products and
|
||
|
services are claimed as trademarks. Where those names appear in any
|
||
|
GNOME documentation, and those trademarks are made aware to the members
|
||
|
of the GNOME Documentation Project, the names have been printed in caps
|
||
|
or initial caps.
|
||
|
</para>
|
||
|
</legalnotice>
|
||
|
-->
|
||
|
|
||
|
<!-- This is the manual version, not application version. -->
|
||
|
<releaseinfo>
|
||
|
This is version 1.0 of the gramps manual.
|
||
|
</releaseinfo>
|
||
|
|
||
|
</artheader>
|
||
|
|
||
|
<!-- ============= Document Body ============================= -->
|
||
|
|
||
|
<!-- ============= Introduction ============================== -->
|
||
|
<sect1 id="intro">
|
||
|
<title>Introduction</title>
|
||
|
|
||
|
<para>
|
||
|
gramps is an acronym for the Genealogical Research and Analysis
|
||
|
Management Programming System. It was conceived under the concept
|
||
|
that most genealogy programs were designed to provide the
|
||
|
researcher the capability to input information related to a
|
||
|
particular family tree. Most of these programs have allowed for
|
||
|
the arranging and storing of information consistent with the
|
||
|
GEDCOM standards. They usually provide a means for displaying
|
||
|
descendant or ancestral relationships by means of graphical
|
||
|
displays, charts, or reports. These may be augmented with
|
||
|
pictures or other media to enhance the data. Most provide for
|
||
|
inputting data on unconnected individuals/families that may or may
|
||
|
not have a relationship to the primary surname being researched.
|
||
|
Various other enhancements may also be provided in the
|
||
|
genealogical program that allows for different degrees of
|
||
|
importing and exporting data from other programs and printing of
|
||
|
the data contained in the various reports. gramps, on the other
|
||
|
hand, attempts to provide all of the common capabilities of these
|
||
|
programs, but, more importantly, to provide a capability not
|
||
|
common to these programs. This is the ability to input any bits
|
||
|
and pieces of information directly into gramps and
|
||
|
rearrange/manipulate any/all data events in the entire data base
|
||
|
(in any order or sequence) to assist the user in doing research,
|
||
|
analysis and correlation with the potential of filling
|
||
|
relationship gaps. In short, a tool that provides a way to input
|
||
|
all your research into one place and do your analysis and
|
||
|
correlation using the speed, power, and accuracy of your computer
|
||
|
instead of pencils and unmanageable reams of paper.
|
||
|
</para>
|
||
|
<para>
|
||
|
To run <application>gramps</application>, select
|
||
|
<menuchoice>
|
||
|
<guisubmenu>Programs</guisubmenu>
|
||
|
<guisubmenu>Applications</guisubmenu>
|
||
|
<guimenuitem>gramps</guimenuitem>
|
||
|
</menuchoice>
|
||
|
from the <guimenu>Main Menu</guimenu>, or type
|
||
|
<command>gramps</command> on the command line.
|
||
|
</para>
|
||
|
<para>
|
||
|
<application>gramps</application> is included in the
|
||
|
<filename>gramps</filename> package, which is part of the
|
||
|
GNOME desktop environment. This document describes version
|
||
|
&version; of <application>gramps</application>.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ================ Usage ================================ -->
|
||
|
<!-- This section should describe basic usage of the application. -->
|
||
|
|
||
|
<sect1 id="usage">
|
||
|
<title>Using gramps</title>
|
||
|
<para>
|
||
|
<application>gramps</application> is a genealogy program.
|
||
|
This section describes basic usage of
|
||
|
<application>gramps</application>.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="firsttime">
|
||
|
<title>Running gramps for the first time.</title>
|
||
|
<para>
|
||
|
This section should discuss the start up druid.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="mainwindow">
|
||
|
<title>Main Window</title>
|
||
|
<para>
|
||
|
Starting <application>gramps</application> opens the
|
||
|
<interface>Main window</interface>, shown in <xref
|
||
|
linkend="mainwindow-fig">. The window is at first empty.
|
||
|
|
||
|
<!-- ==== Figure ==== -->
|
||
|
<figure id="mainwindow-fig">
|
||
|
<title>gramps Main Window</title>
|
||
|
<screenshot>
|
||
|
<screeninfo>gramps Main Window</screeninfo>
|
||
|
<graphic fileref="mainwin" format="PNG" srccredit="Don Allingham">
|
||
|
</graphic>
|
||
|
</screenshot>
|
||
|
</figure>
|
||
|
<!-- ==== End of Figure ==== -->
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ========= Basic Usage =========================== -->
|
||
|
<sect1 id="personlist">
|
||
|
<title>Person List</title>
|
||
|
<para>
|
||
|
The Person List window is the initial view seen on the main
|
||
|
window. It displays the name, gender, birth date, and death
|
||
|
date of all individuals in the database. At any time, you can
|
||
|
return to the this view either by pressing the People button at
|
||
|
the top of the screen, or by choosing the
|
||
|
<menuchoice>
|
||
|
<guisubmenu>View</guisubmenu>
|
||
|
<guimenuitem>Person List</guimenuitem>
|
||
|
</menuchoice>
|
||
|
entry from the menus.
|
||
|
</para>
|
||
|
<sect2>
|
||
|
<title>Selecting and Editing Individuals</title>
|
||
|
<para>
|
||
|
The Person List view lists the individuals in the database. A
|
||
|
individual can be selected as the active person by clicking on
|
||
|
an entry in the list. Once a person has been selected as the active
|
||
|
person, the person's name appears in the status bar in the lower
|
||
|
left hand corner of the window.
|
||
|
</para>
|
||
|
<para>
|
||
|
Once the active person has been selected, pressing the Edit
|
||
|
Person button will display the Edit Person dialog allowing you
|
||
|
to edit the individual's personal information. If the Edit
|
||
|
Person button is pressed without an active person being set, a
|
||
|
blank Edit Person dialog is presented, allowing you to enter a
|
||
|
new person. Double-clicking on a entry will set the active
|
||
|
person and bring up the individual in the Edit Person dialog.
|
||
|
</para>
|
||
|
<para>
|
||
|
Pressing the Add Person button will display a blank Edit Person
|
||
|
dialog, allowing you to add a new person to the database.
|
||
|
</para>
|
||
|
<para>
|
||
|
If the Delete Person button is pressed, the active person and
|
||
|
all of the personal information related to the active person are
|
||
|
removed from the database.
|
||
|
</para>
|
||
|
</sect2>
|
||
|
<sect2>
|
||
|
<title>Applying Filters</title>
|
||
|
<para>
|
||
|
<application>gramps</application> allows you to apply filters to
|
||
|
the Person List. When a filter is applied, the Person List will
|
||
|
only display the entries matching the filter. All of the entries
|
||
|
remain in the database, but are temporarily hidden.
|
||
|
</para>
|
||
|
<para>
|
||
|
There are three parts to a filter. The first part is the
|
||
|
selection of the filter to be applied. A filter is selected from
|
||
|
the option menu directly above the Person List. The second part
|
||
|
is an option qualifier. This qualifier provides more specific
|
||
|
information for the filter. Many filters do not require the
|
||
|
qualifier, and it will be grayed out if not needed. The third
|
||
|
part of the filter is the invert selection. When this option is
|
||
|
selected, <application>gramps</application> will display the
|
||
|
entries that do not match the filter.
|
||
|
</para>
|
||
|
<para>
|
||
|
A filter is not applied until the Apply button is pressed. The
|
||
|
filter will remain in effect until the next time the Apply
|
||
|
button is pressed.
|
||
|
</para>
|
||
|
</sect2>
|
||
|
<sect2>
|
||
|
<title>Sorting</title>
|
||
|
<para>
|
||
|
Four columns are shown in the Person List display. The entries in
|
||
|
the list can be sorted by three of the field: Name, Birth Date, or
|
||
|
Death Date. Clicking on the column label will cause the list to
|
||
|
be resorted by that column. Arrows on the label indicate whether
|
||
|
the list is sort by ascending or descending order.
|
||
|
</para>
|
||
|
<para>
|
||
|
If the list is already sorted by a particular column, clicking on
|
||
|
the same column label will switch sorting order. For example, if
|
||
|
the list is currently sorted in ascending order by Name, clicking
|
||
|
on the Name column header will resort the list in descending order.
|
||
|
</para>
|
||
|
</sect2>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="familyview">
|
||
|
<title>Family View</title>
|
||
|
<para>
|
||
|
The Family View window displays the spouses, parents, and children
|
||
|
of the active person. At any time, you can return to the this view
|
||
|
either by pressing the Family button at the top of the screen, or
|
||
|
by choosing the
|
||
|
<menuchoice>
|
||
|
<guisubmenu>View</guisubmenu>
|
||
|
<guimenuitem>Family View</guimenuitem>
|
||
|
</menuchoice>
|
||
|
entry from the menus.
|
||
|
</para>
|
||
|
<para>
|
||
|
This section should describe the family view.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="pedegreeview">
|
||
|
<title>Pedegree View</title>
|
||
|
<para>
|
||
|
The Pedegree View window displays the active person, the active
|
||
|
person's parents, and the active parent's grandparents in a somewhat
|
||
|
graphical manner. At any time, you can return to the this view
|
||
|
either by pressing the Pedegree button at the top of the screen, or
|
||
|
by choosing the
|
||
|
<menuchoice>
|
||
|
<guisubmenu>View</guisubmenu>
|
||
|
<guimenuitem>Pedgree</guimenuitem>
|
||
|
</menuchoice>
|
||
|
entry from the menus.
|
||
|
</para>
|
||
|
<para>
|
||
|
This section should describe the pedegree view.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
<sect1 id="sourcelist">
|
||
|
<title>Source List</title>
|
||
|
<para>
|
||
|
The Source List window displays the different sources which have been
|
||
|
entered into the database. At any time, you can return to the this view
|
||
|
either by pressing the Sources button at the top of the screen, or
|
||
|
by choosing the
|
||
|
<menuchoice>
|
||
|
<guisubmenu>View</guisubmenu>
|
||
|
<guimenuitem>Sources</guimenuitem>
|
||
|
</menuchoice>
|
||
|
entry from the menus.
|
||
|
</para>
|
||
|
<para>
|
||
|
This section should describe the source list.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ============= Customization ============================= -->
|
||
|
|
||
|
<sect1 id="prefs">
|
||
|
<title>Customization</title>
|
||
|
<para>
|
||
|
To change the application settings, select
|
||
|
<menuchoice>
|
||
|
<guimenu>Settings</guimenu>
|
||
|
<guimenuitem>Preferences...</guimenuitem>
|
||
|
</menuchoice>. This opens the
|
||
|
<interface>Preferences</interface> dialog, shown in <xref
|
||
|
linkend="preferences-fig">.
|
||
|
</para>
|
||
|
|
||
|
<figure id="preferences-fig">
|
||
|
<title>Preferences Dialog</title>
|
||
|
<screenshot>
|
||
|
<screeninfo>Preferences Dialog</screeninfo>
|
||
|
<graphic fileref="preferences" format="png" srccredit="Don Allingham">
|
||
|
</graphic>
|
||
|
</screenshot>
|
||
|
</figure>
|
||
|
|
||
|
<para>
|
||
|
</para>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ============= Generating Reports ============================= -->
|
||
|
|
||
|
<sect1 id="genreports">
|
||
|
<title>Generating Reports</title>
|
||
|
<para>
|
||
|
<application>gramps</application> can produce a wide variety of
|
||
|
reports. New report generators can be written by the user without
|
||
|
modifying the main program. For this reason, there may be more
|
||
|
reports available than are documented by this manual
|
||
|
</para>
|
||
|
<para>
|
||
|
Unlike many genealogy programs, <application>gramps</application>
|
||
|
does not directly print reports. Instead,
|
||
|
<application>gramps</application> produces reports in formats that
|
||
|
are understood by other programs. These formats include OpenOffice,
|
||
|
AbiWord, PDF, and HTML, among others. This allows the generated
|
||
|
reports to be modified after they are generated, stored for use
|
||
|
later, or emailed to another person.
|
||
|
</para>
|
||
|
<sect2 id="htmltemplates">
|
||
|
<title>Using HTML templates</title>
|
||
|
<para>
|
||
|
Many programs exist to convert GEDCOM files into HTML files that
|
||
|
can be viewed in a web browser. Most of these programs generate
|
||
|
HTML files according to their own predefined style. Since most
|
||
|
people have a style that they prefer, they are left with the option
|
||
|
of modifying hundreds of files by hand.
|
||
|
</para>
|
||
|
<para>
|
||
|
To solve this problem, <application>gramps</application> allows the
|
||
|
user to specify a template to be used for generating HTML files. At
|
||
|
the time the report is generated, if HTML is selected as the target
|
||
|
format, the user can select an HTML template to be used. Since the
|
||
|
template is chosen at report generation time, a different template
|
||
|
may be chosen each time, allowing the user to change the appearence
|
||
|
of the generated files at any time. Nearly any existing HTML file
|
||
|
can be used as an HTML template for
|
||
|
<application>gramps</application>.
|
||
|
</para>
|
||
|
<para>
|
||
|
When a file has been established as the HTML template file,
|
||
|
<application>gramps</application> uses the template for each file
|
||
|
that it generates. <application>gramps</application> starts each
|
||
|
file by copying data from the template until it reaches an HTML
|
||
|
comment uses as a marker. At that point,
|
||
|
<application>gramps</application> inserts its data into the output
|
||
|
file. <application>gramps</application> the continues reading the
|
||
|
until it reaches a second comment that tells it to resume copying
|
||
|
from the template.
|
||
|
</para>
|
||
|
<para>
|
||
|
<application>gramps</application> uses the string <function><!--
|
||
|
START --></function> to indicate where it should start inserting
|
||
|
its information, and the string <function><!-- STOP
|
||
|
--></function> to indicate where it should resume copying data
|
||
|
from the template. The effect is that
|
||
|
<application>gramps</application> will create a new document,
|
||
|
replacing everything between the <function><!-- START
|
||
|
--></function> and <function><!-- STOP --></function> comments
|
||
|
with the report information.
|
||
|
</para>
|
||
|
<para>
|
||
|
The comment markers should be at the beginning of a line in the HTML
|
||
|
template file. Adding the comments to an existing HTML document will
|
||
|
not affect the original HTML document in any way.
|
||
|
</para>
|
||
|
<para>
|
||
|
If no HTML template is specified, or if the specified template
|
||
|
cannot be read, <application>gramps</application> will use a
|
||
|
default, predefined template.
|
||
|
</para>
|
||
|
<para>
|
||
|
<figure id="templateexample">
|
||
|
<title>Sample HTML Template Example</title>
|
||
|
<programlisting>
|
||
|
<HTML>
|
||
|
<HEAD>
|
||
|
<TITLE>
|
||
|
This is my Title
|
||
|
</TITLE>
|
||
|
</HEAD>
|
||
|
<BODY BGCOLOR="#FFFFFF">
|
||
|
<P>
|
||
|
This is a simple template. This text will appear in the html output.
|
||
|
</P>
|
||
|
<!-- START -->
|
||
|
<P>
|
||
|
This is where gramps will place its report information. Any
|
||
|
information between the two comments, including this paragraph,
|
||
|
will not appear in the gramps generated output.
|
||
|
</P>
|
||
|
<!-- STOP -->
|
||
|
<P>
|
||
|
This text, since it appears after the stop comment, will also
|
||
|
appear in every gramps generated file.
|
||
|
</P>
|
||
|
</BODY>
|
||
|
</HTML>
|
||
|
</programlisting>
|
||
|
</figure>
|
||
|
</para>
|
||
|
</sect2>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ============= Writing Filters ============================= -->
|
||
|
|
||
|
<sect1 id="writingfilters">
|
||
|
<title>Writing Filters</title>
|
||
|
<para>
|
||
|
Users can create their own filters and add them to
|
||
|
<application>gramps</application>. By adding the filter to the
|
||
|
user's private filter directory
|
||
|
(<filename class="directory">~/.gramps/filters</filename>),
|
||
|
the filter will be automatically
|
||
|
recognized the next time that the program is started.
|
||
|
</para>
|
||
|
<sect2 id="createfilter">
|
||
|
<title>Creating a filter</title>
|
||
|
<para>
|
||
|
Filters are written in the <application>python</application>
|
||
|
language. Each filter is initialized with the qualifier string.
|
||
|
The qualifier string passes an additional text string to the
|
||
|
filter. This string can be used to further qualify the filter.
|
||
|
For example, if the filter is used to match names, the qualifier
|
||
|
would be used to provide the name that is being compared against.
|
||
|
</para>
|
||
|
<para>
|
||
|
Each filter is a python class, and should be in its own separate
|
||
|
module (file). The module should consist of the filter class
|
||
|
definition, and three functions —
|
||
|
<function>create</function>, <function>need_qualifier</function>,
|
||
|
and <function>get_name</function>.
|
||
|
</para>
|
||
|
<para>
|
||
|
The <function>create</function> function takes a string as its
|
||
|
only argument, returns a instance of the filter class. The string
|
||
|
argument is the qualifier string used to provide more specific
|
||
|
information.
|
||
|
</para>
|
||
|
<para>
|
||
|
The <function>need_qualifier</function> function takes no
|
||
|
arguments, and returns either a 0 or 1 to indicate if a qualifier
|
||
|
string is needed by the filter. Regardless of what
|
||
|
<function>need_qualifier</function> indicates, a text string is
|
||
|
always passed to the filter and the <function>create</function>
|
||
|
function. The value returned by
|
||
|
<function>need_qualifier</function> indicates to the program
|
||
|
whether or not the qualifier field in the display should be
|
||
|
enabled or disabled.
|
||
|
</para>
|
||
|
<para>
|
||
|
The <function>get_name</function> function is used to provide a
|
||
|
description for the filter. This description is entered into
|
||
|
filter selection menus. If the filter is intended to be used by
|
||
|
others, it should be prepared for internationalization. This is
|
||
|
accomplished by importing the <function>intl</function> module,
|
||
|
add defining <function>_</function> to be
|
||
|
<function>intl.gettext</function>. The string returned by
|
||
|
<function>get_name</function> should be passed through the
|
||
|
<function>_</function> function to allow for conversion to the
|
||
|
target langauge.
|
||
|
</para>
|
||
|
<para>
|
||
|
All filters must be derived from the
|
||
|
<function>Filter.Filter</function> class. The
|
||
|
<function>__init__</function> task may be overridden, but if so,
|
||
|
should call the <function>__init__</function> function on the
|
||
|
<function>Filter.Filter</function> class. The parent class
|
||
|
provides the variable <function>self.text</function>, which
|
||
|
contains the text string passed as the qualifier.
|
||
|
</para>
|
||
|
<para>
|
||
|
All filter classes must define a <function>match</function>
|
||
|
function. The function takes one argument (other than
|
||
|
<function>self</function>), which is an object of type
|
||
|
<function>Person</function> to compare against. The function
|
||
|
should return a 1 if the person matches the filter, or a zero if
|
||
|
the person does not.
|
||
|
</para>
|
||
|
<figure id="filtersrc">
|
||
|
<title>Sample filter implementation</title>
|
||
|
<programlisting>
|
||
|
import Filter
|
||
|
import string
|
||
|
import intl
|
||
|
_ = intl.gettext
|
||
|
|
||
|
# class definition
|
||
|
|
||
|
class SubString(Filter.Filter):
|
||
|
|
||
|
def match(self,person):
|
||
|
name = person.getPrimaryName().getName()
|
||
|
return string.find(name,self.text) >= 0
|
||
|
|
||
|
# module functions
|
||
|
|
||
|
def get_name(s):
|
||
|
return _("Names that contain a substring")
|
||
|
|
||
|
def create(text):
|
||
|
return SubString(text)
|
||
|
|
||
|
def need_qualifier():
|
||
|
return 1
|
||
|
</programlisting>
|
||
|
</figure>
|
||
|
</sect2>
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ============= Writing Reports ============================= -->
|
||
|
|
||
|
<sect1 id="writingreports">
|
||
|
<title>Writing Reports</title>
|
||
|
<para>
|
||
|
Users can create their own report generators and add them to
|
||
|
<application>gramps</application>. By adding the report generator
|
||
|
to the user's private filter directory (<filename
|
||
|
class="directory">~/.gramps/plugins</filename>), the report
|
||
|
generator filter will be automatically recognized the next time
|
||
|
that the program is started.
|
||
|
</para>
|
||
|
<sect2 id="createreport">
|
||
|
<title>Creating a report generator</title>
|
||
|
<para>
|
||
|
Like filters, report generators are written in the
|
||
|
<application>python</application> language. Fewer restrictions
|
||
|
are made on report generators than on filters. The report
|
||
|
generator is passed the current <application>gramps</application>
|
||
|
database and the active person. The generator needs to take
|
||
|
special care to make sure that it does not alter the database in
|
||
|
anyway.
|
||
|
</para>
|
||
|
<para>
|
||
|
The function <function>get_name</function> is used to provide the
|
||
|
name of the the report generator. As with a filter definition,
|
||
|
this string should support internationalization via the
|
||
|
<function>intl</function> module. The returned string consists of
|
||
|
two parts, separated by a forward slash. The first part of the
|
||
|
string is the category of the report generator.
|
||
|
<application>gramps</application> uses this part to group similar
|
||
|
reports together in the interface. The second part of the string
|
||
|
is the actual name of the reprot generator, and will be displayed
|
||
|
in the report menu.
|
||
|
</para>
|
||
|
<para>
|
||
|
A report generator module must supply the
|
||
|
<function>report</function> function, and can optionally define
|
||
|
the <function>get_description</function> and
|
||
|
<function>get_xpm_data</function> functions. The
|
||
|
<function>report</function> takes two arguments — a database
|
||
|
(of type <function>RelDataBase</function>) and the currently
|
||
|
selected person (of type <function>Person</function>). The
|
||
|
<function>report</function> is reponsible for generating the
|
||
|
actual report.
|
||
|
</para>
|
||
|
<para>
|
||
|
If the <function>get_description</function> is defined, it is used
|
||
|
to provide a more detailed description of the report. The
|
||
|
description is used to provide the user with more information in
|
||
|
the report selection window. The function takes no arguments, and
|
||
|
should return a text string.
|
||
|
</para>
|
||
|
<para>
|
||
|
If the <function>get_xpm_data</function> is defined, it is used to
|
||
|
provide an graphic logo for the report in the report selection
|
||
|
window. The function takes no arguments, and should return a list
|
||
|
of strings containing the XPM file data. The XPM image should be
|
||
|
48x48 pixels in size.
|
||
|
</para>
|
||
|
<figure id="reportsrc">
|
||
|
<title>Sample report implementation</title>
|
||
|
<programlisting>
|
||
|
import intl
|
||
|
_ = intl.gettext
|
||
|
|
||
|
def report(database,person):
|
||
|
... actual code ...
|
||
|
|
||
|
def get_description():
|
||
|
return "A detailed text description of what the report generator does"
|
||
|
|
||
|
def get_name():
|
||
|
return _("Category/report name")
|
||
|
|
||
|
def get_xpm_image():
|
||
|
return [
|
||
|
"... XPM image data"
|
||
|
]
|
||
|
</programlisting>
|
||
|
</figure>
|
||
|
</sect2>
|
||
|
<sect2 id="alittlehelp">
|
||
|
<title>A little help - Format Interfaces</title>
|
||
|
<para>
|
||
|
<application>gramps</application> provides some help with writing
|
||
|
reports. Several generic python classes exist that aid in the
|
||
|
writing of report generators. These classes provide an abstract
|
||
|
interface for a type of document, such as a drawing, word
|
||
|
processor document, or a spreadsheet. From these core classes,
|
||
|
<application>gramps</application> derives interfaces to various
|
||
|
document formats. This means that by coding to the generic word
|
||
|
processing class (<function>TextDoc</function>), a report
|
||
|
generator can instant access to multiple file formats (such as
|
||
|
HTML, OpenOffice, and AbiWord).
|
||
|
</para>
|
||
|
<para>
|
||
|
This scheme of deriving a output format from a generic base class
|
||
|
also makes it easier to add new formats. Creating a new
|
||
|
derivied class targeting a different format (such as
|
||
|
<application>KWord</application> or
|
||
|
<application>LaTeX</application>) makes it easy for existing
|
||
|
report generators to use the new formats.
|
||
|
</para>
|
||
|
</sect2>
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ============= Writing Tools ============================= -->
|
||
|
|
||
|
<sect1 id="writingtools">
|
||
|
<title>Writing Tools</title>
|
||
|
<para>
|
||
|
</para>
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
<!-- ============= Various Sections ============================= -->
|
||
|
|
||
|
<!-- Here you should add, if necessary, several more sect1's,
|
||
|
describing other windows (besides the main one), file formats,
|
||
|
preferences dialogs, etc. as appropriate. Try not to make any of
|
||
|
these sections too long. -->
|
||
|
|
||
|
|
||
|
<!-- ============= Bugs ================================== -->
|
||
|
<!-- This section should describe known bugs and limitations of
|
||
|
the program if there are any - please be frank and list all
|
||
|
problems you know of. -->
|
||
|
<sect1 id="bugs">
|
||
|
<title>Known Bugs and Limitations</title>
|
||
|
<para>
|
||
|
This application has no known bugs.
|
||
|
</para>
|
||
|
</sect1>
|
||
|
|
||
|
|
||
|
<!-- ============= Authors ================================ -->
|
||
|
|
||
|
<sect1 id="authors">
|
||
|
<title>Authors</title>
|
||
|
<para>
|
||
|
<application>gramps</application> was written by Donald N. Allingham
|
||
|
(<email>donaldallingham@home.com</email>). To find more information about
|
||
|
<application>gramps</application>, please visit the <ulink
|
||
|
url="http://gramps.sourceforge.net" type="http">gramps Web
|
||
|
page</ulink>.
|
||
|
</para>
|
||
|
|
||
|
<para>
|
||
|
This manual was written by Donald N. Allingham
|
||
|
(<email>donaldallingham@home.com</email>) and Lawrence L. Allingham
|
||
|
(<email>llkla@erinet.com</email>).
|
||
|
</para>
|
||
|
|
||
|
<!-- For translations: uncomment this:
|
||
|
|
||
|
<para>
|
||
|
Latin translation was done by ME
|
||
|
(<email>MYNAME@MYADDRESS</email>). Please send all comments and
|
||
|
suggestions regarding this translation to SOMEWHERE.
|
||
|
</para>
|
||
|
|
||
|
-->
|
||
|
|
||
|
</sect1>
|
||
|
|
||
|
|
||
|
<!-- ============= Application License ============================= -->
|
||
|
|
||
|
<sect1 id="license">
|
||
|
<title>License</title>
|
||
|
<para>
|
||
|
This program is free software; you can redistribute it and/or
|
||
|
modify it under the terms of the <ulink type="help" url="gnome-help:gpl">
|
||
|
<citetitle>GNU General Public License</citetitle></ulink> as
|
||
|
published by the Free Software Foundation;
|
||
|
either version 2 of the License, or (at your option) any later
|
||
|
version.
|
||
|
</para>
|
||
|
<para>
|
||
|
This program is distributed in the hope that it will be useful, but
|
||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
<citetitle>GNU General Public License</citetitle> for more details.
|
||
|
</para>
|
||
|
<para>
|
||
|
A copy of the <citetitle>GNU General Public License</citetitle> is
|
||
|
included as an appendix to the <citetitle>GNOME Users
|
||
|
Guide</citetitle>. You may also obtain a copy of the
|
||
|
<citetitle>GNU General Public License</citetitle> from the Free
|
||
|
Software Foundation by visiting <ulink type="http"
|
||
|
url="http://www.fsf.org">their Web site</ulink> or by writing to
|
||
|
<address>
|
||
|
Free Software Foundation, Inc.
|
||
|
<street>59 Temple Place</street> - Suite 330
|
||
|
<city>Boston</city>, <state>MA</state> <postcode>02111-1307</postcode>
|
||
|
<country>USA</country>
|
||
|
</address>
|
||
|
</para>
|
||
|
</sect1>
|
||
|
</article>
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
|