no edit summary
Many Gramps users would like to collaborate or share their genealogy data on the web. This GEP describes a webapp, a web-based application that runs in your browser, and requires a server.
is on-line at http://gramps-connect.org/ which is running trunk on a sample database. You can log into the site, as a:
*superuser (id=admin, password=gramps) or a
*regular user (id=admin1, password=gramps)
or just view as an anonymous user.
== Motivation ==
Here is a small list of goals:
# Create a fullscale
GRAMPS web framework
# Allow multiple users via the standard web browser
## Users will log in and have various levels of permissions
# Build on
GRAMPS codebase and wealth of resources
=== Models/Views ===
Here is the model that defines the Person table from [
http://gramps .svn.sourceforge.net/viewvc/gramps/trunk/src/webapp/grampsdb/models.py ?view=markup src/webapp/grampsdb/models.py]:
The first retrieves all of the rows for the Person table; the second retrieves just the one record that has the unique, primary key 1, and the third retrieves the single record that has the unique handle of 'gh71234dhf3746347734'. Note that we never connected onto a database... Django is (currently) define to connect on to one database, and it does it on import. The database is set in
An alternative method of interactively talking to the database is to use ''manage.py'':
trunk/ src/webapp % PYTHONPATH=../../ src python manage.py shell
The double-underscore in the keyword "gender_type__name" of the filter method is a Django convention. It means "replace
wth the correct syntax". If Python allowed it, it would be written as '''Person.objects.filter(gender_type.name="Male")''' but that is not legal syntax.
Here is an overview of all of the models and how they are related:
To see more graphical representations of the data, run "make docs" in the src/webapp/ directory, and then look in src/webapp/docs/.
=== Templates ===
Templates are used to describe ''what'' to display. Here is a template from [
http://gramps.svn.sourceforge.net/viewvc/gramps/trunk/src/data/templates/main_page.html ?view=markup src/data/templates/main_page.html]:
=== Getting Started with Gramps in Django ===
A prototype of a
GRAMPS Django webapp is now in trunk and gramps32. To run it, do the following:
# Download Django
. You'll need version 1. 1
## On yum-based systems, try "yum install Django"
## On apt-based systems, try "sudo apt-get install python-django"
## Other systems: get the sources from http://www.djangoproject.com/download/
get the gramps trunk or branch /gramps32 from SVN# cd trunk/src/web/ (or gramps32)
# Build the database, and load with default data:
## make clean
## python src/gramps.py
# Run the Django Importer
## Select Family Tree -> Import
## Select the "import.django" (from above) as the file to import
There are two subdirectories and two files of interest to the Gramps webapp:
http://gramps.svn.sourceforge.net/viewvc/gramps/trunk/src/data/templates/ - HTML templates# http://gramps.svn.sourceforge.net/viewvc/gramps /trunk/src/webapp/ - Webapp main directory## http://gramps .svn.sourceforge.net/viewvc/gramps/trunk/src/webapp/libdjango.py ?view=markup - library interface## http://gramps.svn.sourceforge.net/viewvc/gramps /trunk/src/webapp/grampsdb - gramps table models
# http://gramps-addons.svn.sourceforge.net/viewvc/gramps-addons/trunk/contrib/Django/ExportDjango.py?view=markup - Exporter
# http://gramps-addons.svn.sourceforge.net/viewvc/gramps-addons/trunk/contrib/Django/ImportDjango.py?view=markup - Importer
=== Concurrent Edits ===
Concurrent access for write and read imply several problems when people by accident change the same objects at the same time.
GRAMPS itself has an elaborate signal handling for cases when dialogs are open with no longer current information. In a web environment, this becomes more difficult however. This is not built into Django.
For discussion on this issue in Django, see:
: Note here: the intro page is a collection of gadgets/controls, which then link into the real data.
* http://webtrees.net/demo/next (webtrees)
* http://genealogies.geneamania.net/servin/ (Généamania)
Collaborative database (user/wizard/password):
* http://roglo.eu/roglo?lang=en (GeneWeb)