Gramps-Connect

From Gramps
Revision as of 00:36, 29 May 2012 by Dsblank (talk | contribs) (Bugs)
Jump to: navigation, search

Getting Started

Without installing Gramps-Connect, you can test it on-line at http://gramps-connect.org/ I'll try to keep that up to date with the current code. It is current as of May 27 2012. You can view the site in three modes:

  • not logged in - should see data of people dead and public. If either a person is dead, or any data is marked private, you should not be able to see it. Living people are marked with "[Living]" (as determined in Preferences -> Text).
  • logged in as regular user, ID: admin1, password: gramps. You can see all data, run reports, export data, but cannot change the database.
  • logged in as super user, ID: admin, password: gramps. You can edit, delete, add, import, etc.

Functionality

The search will query the database using some knowledge of the data. Generally, the search above a browse screen will search all of the visible data.

The person search has been enhanced some:

  • Generally it will look for whatever you type, in surname, given, and ID
  • If you use a comma, it assumes "Surname, Given" or "field=value, field=value, ..."
    • It will match at the start of field
    • S,G will give all people who have a surname that starts with "S" and a given name that starts with "G"
    • S, will give all people who have a surname that starts with "S"
    • ,G will give all people who have a given name that starts with "G"
  • There are some fields that you can also separate with commas:
    • private=1, surname=Smith, given=Joe, death=1850, birth=2000

Family search will search spouse names.

There is a lot of search refinement that can be added here!

One can also use the Admin functionality if logged in as a superuser. The superuser can:

  • add new users
  • change the name of the site
  • view/add/edit/delete all objects
  • edit the CSS for each user

Run your own Gramps-Connect in 30 seconds

Get the latest version of Gramps (currently "trunk" from SVN; see Brief introduction to SVN). This will become an easy-to-install package once Gramps 3.5 is released. Below, it is assumed that you have the following installed:

  • Latest Gramps, installed in a folder called "trunk"
  • Django version 1.4 or 1.3
  • Sqlite3

Once you have built Gramps trunk:

  • cd trunk
  • ./autogen.sh

you are then ready to make and run Gramps-Connect. These are the basic steps for running in a test development:

  1. cd trunk/src/webapp
  2. make
    1. this will build all tables, and populate with default information
    2. you should also define a superuser ID/Password here when prompted (this will be the account which can edit data, and can create new accounts).
  3. make run
    1. this will start-up a testing webserver
  4. Point your browser to http://localhost:8000/ and begin using Gramps-Connect

Options

You have three options for populating your on-line database:

First, you can enter data on the web.

Second, you can import data on the web. While running Gramps-Connect:

  1. Login with superuser ID/Password you created above
  2. Go to Reports
  3. Select an Import row
  4. Enter the Input File Format (iff) and Input URL (i), like so:
    1. iff=ged i=http://arborvita.free.fr/Kennedy/Kennedy.ged
    2. iff=gramps i=http://gramps.svn.sourceforge.net/viewvc/gramps/trunk/example/gramps/example.gramps?revision=18333
    3. iff=gramps i=file://home/id/gramps/trunk/example/gramps/example.gramps
  5. Press the "Run" button
  6. The data will begin to be imported. (Because, as a default, the data is going into a sqlite3 database backend that has little concurrency, you won't be able to do much until the import is done. Warning: this is a little slower than Gramps import.)
  7. Once the import is done, you can browse most of the data (it is all there (except tags), which you can verify with an export)

Finally, you can also export data to Django while running the Gramps desktop version. Just select the Django export option.

Working

  • It should be the case that you can edit the main parts of all primary data. In fact, for the primary data, you can edit, add, delete, and link references to each (like add notes to a person).
  • You can run reports, exports, and imports from the web. All of these are listed in "Reports" for now, and you have to supply command-line options.
  • You can change the CSS theme in Admin -> Profile -> User. Give the name of the CSS file per user.
  • You can change the name of the site in Admin -> Config -> sitename.

Bugs

Please list any item that is not listed yet:

  1. Not all places are private and living data protected. Need a security audit.
  2. No on-line viewing of media yet
  3. Many of the secondary level of information (LDS, Location, etc) are accessible for viewing or edit
  4. Tags are not imported nor exported
  5. References are showing up yet
  6. Tags not showing on view
  7. Edited note not saved (although it looks like it is)

Feature Requests

There are a gazillion things that haven't been added yet. But this section lists some conceptual issues that will need to be thought out.

  1. Privacy: "[Living]" is used, but names still appear in alphabetical order
    Related to patronymic privacy bug 4538? No, this is a different, gramps-connect specific issue. But the issue from #4538 is also a problem in Gramps-Connect, and will have to be solved a different way.
  2. Make it internationalized and localized (feature request 3417)
  3. Make it look nice
    1. Some items need better CSS (tables)
    2. Some items need better HTML (buttons)
  4. Create interfaces for:
    1. Reports
      1. Options
    2. Imports
    3. Exports
    4. User settings
      1. CSS
      2. Password, email, etc
      3. Gramps preferences
  5. Make 100% of data editable
    1. Edit
    2. Delete
  6. Add additional functionality
    1. Bookmarks
    2. Maps
    3. Advanced search

ToDo

  1. Import/Export 100% of all data
    1. Tags missing
    2. Media missing (need a place to put them)
  2. Make 100% of data viewable
    1. Person
      1. Events
      2. Names
      3. Citations
      4. Attributes
      5. Addresses
      6. Notes
      7. Gallery
      8. Internet
      9. Associations
      10. LDS
      11. References
    2. Family
      1. Children
      2. Events
      3. Citations
      4. Attributes
      5. Notes
      6. Gallery
      7. LDS
    3. Event
      1. EventRef
        1. General
        2. Notes
        3. Attributes
      2. Shared
        1. General
        2. Citations
        3. Attributes
        4. Notes
        5. Gallery
        6. References
    4. Notes
    5. Media
      1. Citations
      2. Attributes
      3. Notes
      4. References
    6. Citation
      1. General
      2. Notes
      3. Gallery
      4. Data
      5. References
    7. Source
      1. General
      2. Notes
      3. Gallery
      4. Data
      5. Repository
      6. Reference
    8. Place
      1. General
      2. Location
      3. Alternate Locations
      4. Citations
      5. Notes
      6. Gallery
      7. Internet
      8. References
    9. Repository
      1. General
      2. Addresses
      3. Internet
      4. Notes
      5. References
    10. Tag

Running on a real system

Gramps-connect is written using the Django web development framework. You can deploy a Django application using many methods. You can also use many different database backends, such as MySQL and Postgresql. In this example, we will deploy using the simplest options: wsgi and sqlite3, respectively.

Dependencies: Apache we server, mod_wsgi for Apache, Django, and sqlite3.

  1. Install and start Apache
  2. Install mod_wsgi, django, and sqlite3
  3. Edit /etc/httpd/conf/httpd.conf
  4. Place the Gramps source in a proper location
  5. Create the wsgi script
  6. Set the file permissions
  7. Restart httpd

In this example, I have installed the files in /usr/local/wsgi

The contents are of that directory are:

  • /usr/local/wsgi
    • scripts - location of the myapp.wsgi script (below)
    • static - contents of Django materials for admin views
    • trunk - Gramps SVN trunk

Contents of /usr/local/wsgi/scripts/myapp.wsgi:

import os
import sys

os.environ['DJANGO_SETTINGS_MODULE'] = 'webapp.settings'
os.environ['HOME'] = '/usr/local/wsgi'
sys.path.append('/usr/local/wsgi/trunk/src')

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

Create the Gramps-Connect database, as above.

Permissions:

  • chmod a+rw trunk/src/webapp/sqlite.db
  • chmod a+xw trunk/src/webapp/

Additions to /etc/httpd/conf/httpd.conf, for example:

 <Directory /usr/local/wsgi/scripts>
    Order allow,deny
    Allow from all
 </Directory>

<VirtualHost XXX.XXX.XX.XXX:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/
    ServerName somename.org
    ErrorLog logs/gramps-connect-error_log
    CustomLog logs/gramps-connect-access_log common
    WSGIScriptAlias / /usr/local/wsgi/scripts/myapp.wsgi
    Alias /gramps-media/ /usr/local/wsgi/static/media/
</VirtualHost>

The Gramps-Connect source is defined to match sqlite3 and the above settings. If you would like to change any of this, you'll probably also have to change trunk/src/webapp/settings.py.

One everything is setup, restart the webserver:

service httpd restart