Difference between revisions of "Gramps-Connect"
m (I like)
|Line 350:||Line 350:|
service httpd restart
service httpd restart
Revision as of 16:10, 26 December 2012
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 July 24 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.
Here, we'll update to let you know when you should remake your database, and keep you apprised of other changes.
July 27, 2012
New database format. The Database was changed to allow ordered families, parent_families, and tags.
Verified Import/Output. All genealogical data successfully imported and exported. Items missing from XML:
- name formats
- home person
- name maps
Cached Items. All items should get a cache when imported.
Updated SQL Samples. both empty.sql and example.sql where updated.
Speed Improvements. Added batch transactions and removed rebuild cache on import.
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"
- You can use ^ and $ to signify beginning and end respectively:
- id=56 (match all records that have a gramps_id that conatins 56)
- id=^M00 (match all records that have a gramps_id that starts with M00)
- id=00$ (match all records that have a gramps_id that ends with 00)
- id=^M00056$ (match all records that have a gramps_id that is exactly M00056)
- You can add a period in any search term to search a subpart
- father.name.suffix=Jr (matches all Jrs on Family Browse view)
- 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
Can edit notes with a WYSIWYG editor. Limitations: removes background color tags on editing. You can add font face and font size, but only through manual HTML editing.
Run your own Gramps-Connect in 30 seconds
1) Get Gramps from Trunk or Gramps 3.5
Trunk now uses Gtk3, so use trunk if you can. Gramps 3.5 uses Gtk2.
I use Tortoise SVN. I put gramps on the Desktop, but anywhere will work.
2) Install pysqlite:
Run installer, and make sure you select the version of Python that you have.
3) Install Django:
svn checkout http://code.djangoproject.com/svn/django/branches/releases/1.3.X/django to your Python site-packages directory:
Django 1.3 or greater is required. Well tested on Django 1.3.
4) Change to trunk\src\webapp
And run the following at the command line (cmd):
5) c:\Python27\python.exe init.py > grampsdb\fixtures\initial_data.json
6) c:\Python27\python.exe manage.py syncdb
7) c:\Python27\python.exe manage.py runserver
8) Point your webbrowser to http://127.0.0.1:8000
Linux and Mac
Get the latest version of Gramps (currently "trunk" or "branches/gramps35" from SVN; see Brief introduction to SVN). This will become an easy-to-install package once Gramps 3.5/4.0 are released. Trunk uses Gtk3; Gramps 3.5 uses Gtk2.
Below, it is assumed that you have the following installed:
- Gramps 3.5 or 4.0 (in examples below, installed in a folder called "trunk")
- Django version 1.3 or greater
Once you have built Gramps trunk:
- cd trunk
you are then ready to make and run Gramps-Connect. These are the basic steps for running in a test development:
- cd trunk/src/webapp
- this will build all tables, and populate with default information
- 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).
- make run
- this will start-up a testing webserver
- Point your browser to http://localhost:8000/ and begin using Gramps-Connect
Since I'm using Django 1.4 I had to do the following tweaks:
- in settings.py, change TEMPLATE_CONTEXT_PROCESSORS from "django.core.context_processors.auth" to "django.contrib.auth.context_processors.auth".
- In settings.py, changed TEMPLATE_LOADERS to say "django.template.loaders.filesystem.Loader" instead of ...loaders.filesystem.Load_template_source.
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:
- Login with superuser ID/Password you created above
- Go to Reports
- Select an Import row
- Enter the Input File Format (iff) and Input URL (i), like so:
- iff=ged i=http://arborvita.free.fr/Kennedy/Kennedy.ged
- iff=gramps i=http://gramps.svn.sourceforge.net/viewvc/gramps/trunk/example/gramps/example.gramps?revision=18333
- iff=gramps i=file://home/id/gramps/trunk/example/gramps/example.gramps
- Press the "Run" button
- 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.)
- 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.
- 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.
Now that Gramps trunk has moved to Gtk GObject, Gramps depends on it. For older installs which don't have it, you might not be able to produce certain graphics, or output.
For the moment, I am using the branches/gramps35 repository (which I will mirror the non-gtk changes with trunk).
Please list any item that is not listed yet:
- Not all items are private and living data protected. Need a security audit.
- Many of the secondary level of information (LDS, Location, etc) are accessible for viewing or edit
- Tags are not imported nor exported
- 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.
- Need to be able to delete and move up/move down lists
- Import/Export 100% of all data
- Import/Export Tags
- Import Media (need a place to put them)
- Missing edit/delete functionality:
- Alternate Locations
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.
- Make it internationalized and localized (feature request 3417)
- Make it look nice
- Some items need better CSS (tables)
- Some items need better HTML (buttons)
- Create interfaces for:
- User settings
- Password, email, etc
- Gramps preferences
- Add additional functionality
- Advanced search
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.
- Install and start Apache
- Install mod_wsgi, django, and sqlite3
- Edit /etc/httpd/conf/httpd.conf
- Place the Gramps source in a proper location
- Create the wsgi script
- Set the file permissions
- Restart httpd
In this example, I have installed the files in /usr/local/wsgi
The contents are of that directory are:
- 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.
- 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 firstname.lastname@example.org 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.
Once everything is setup, restart the webserver:
service httpd restart