diff --git a/src/data/templates/view_report_detail.html b/src/data/templates/view_report_detail.html
index bebfbc390..8c5f3a442 100644
--- a/src/data/templates/view_report_detail.html
+++ b/src/data/templates/view_report_detail.html
@@ -18,7 +18,7 @@
Options: |
-
+
Hint: use Gramps CLI options such as output file format off=pdf, off=ged, or off=gramps
|
diff --git a/src/web/dbdjango.py b/src/web/dbdjango.py
index c05770be4..938f7a9b8 100644
--- a/src/web/dbdjango.py
+++ b/src/web/dbdjango.py
@@ -28,7 +28,6 @@
#------------------------------------------------------------------------
import cPickle
import base64
-import web
import gen
import re
from gen.db import DbReadBase, DbWriteBase, DbTxn
@@ -43,79 +42,6 @@ from gen.db import (PERSON_KEY,
import Utils
from web.libdjango import DjangoInterface
-# Example for running a report:
-# ------------------------------
-# from cli.plug import run_report
-# from django.conf import settings
-# import web.settings as default_settings
-# try:
-# settings.configure(default_settings)
-# except:
-# pass
-# import dbdjango
-# db = dbdjango.DbDjango()
-# run_report(db, "ancestor_report", off="txt", of="ar.txt", pid="I0363")
-
-# Imports for importing a file:
-import DbState
-from cli.grampscli import CLIManager
-from gen.plug import BasePluginManager
-import os
-
-def import_file(db, filename, callback):
- """
- Import a file (such as a GEDCOM file) into the given db.
-
- >>> import_file(DbDjango(), "/home/user/Untitled_1.ged", lambda a: a)
- """
- dbstate = DbState.DbState()
- climanager = CLIManager(dbstate, False) # do not load db_loader
- climanager.do_reg_plugins(dbstate, None)
- pmgr = BasePluginManager.get_instance()
- (name, ext) = os.path.splitext(os.path.basename(filename))
- format = ext[1:].lower()
- import_list = pmgr.get_reg_importers()
- for pdata in import_list:
- if format == pdata.extension:
- mod = pmgr.load_plugin(pdata)
- if not mod:
- for name, error_tuple in pmgr.get_fail_list():
- etype, exception, traceback = error_tuple
- print "ERROR:", name, exception
- return False
- import_function = getattr(mod, pdata.import_function)
- db.prepare_import()
- import_function(db, filename, callback)
- db.commit_import()
- return True
- return False
-
-def export_file(db, filename, callback):
- """
- Export the db to a file (such as a GEDCOM file).
-
- >>> export_file(DbDjango(), "/home/user/Untitled_1.ged", lambda a: a)
- """
- dbstate = DbState.DbState()
- climanager = CLIManager(dbstate, False) # do not load db_loader
- climanager.do_reg_plugins(dbstate, None)
- pmgr = BasePluginManager.get_instance()
- (name, ext) = os.path.splitext(os.path.basename(filename))
- format = ext[1:].lower()
- export_list = pmgr.get_reg_exporters()
- for pdata in export_list:
- if format == pdata.extension:
- mod = pmgr.load_plugin(pdata)
- if not mod:
- for name, error_tuple in pmgr.get_fail_list():
- etype, exception, traceback = error_tuple
- print "ERROR:", name, exception
- return False
- export_function = getattr(mod, pdata.export_function)
- export_function(db, filename, callback)
- return True
- return False
-
class Cursor(object):
def __init__(self, model, func):
self.model = model
@@ -586,7 +512,6 @@ class DbDjango(DbWriteBase, DbReadBase):
if handle in self.import_cache:
return self.import_cache[handle]
try:
- #person = self.dji.Person.select_related().get(handle=handle)
person = self.dji.Person.get(handle=handle)
except:
return None
@@ -596,7 +521,7 @@ class DbDjango(DbWriteBase, DbReadBase):
if self.use_db_cache and repository.cache:
data = cPickle.loads(base64.decodestring(repository.cache))
else:
- data = self.dji.get_family(family)
+ data = self.dji.get_repository(repository)
return gen.lib.Repository.create(data)
def make_source(self, source):
diff --git a/src/web/grampsdb/models.py b/src/web/grampsdb/models.py
index dd70dfac9..ff18ca541 100644
--- a/src/web/grampsdb/models.py
+++ b/src/web/grampsdb/models.py
@@ -884,6 +884,7 @@ def clear_tables(*categories):
Clear the entries of categories of tables. Category is:
"abstract", "type", "ref", "system", "primary" and "secondary".
"""
+ # FIXME: I don't think this works anymore...
from django.db import connection, transaction
cursor = connection.cursor()
flush_tables = []
diff --git a/src/web/grampsdb/views.py b/src/web/grampsdb/views.py
index b41964014..66c556541 100644
--- a/src/web/grampsdb/views.py
+++ b/src/web/grampsdb/views.py
@@ -248,8 +248,9 @@ def send_file(request, filename, mimetype):
return response
def process_action(request, view, handle, action):
+ from web.reports import import_file
+ from web.reports import export_file
from cli.plug import run_report
- from web.dbdjango import export_file
db = DbDjango()
if view == "report":
if request.user.is_authenticated():
diff --git a/src/web/reports.py b/src/web/reports.py
new file mode 100644
index 000000000..6e203f399
--- /dev/null
+++ b/src/web/reports.py
@@ -0,0 +1,74 @@
+# imports for import/export:
+
+import DbState
+from cli.grampscli import CLIManager
+from gen.plug import BasePluginManager
+import os
+
+# Example for running a report:
+# ------------------------------
+# from cli.plug import run_report
+# from django.conf import settings
+# import web.settings as default_settings
+# try:
+# settings.configure(default_settings)
+# except:
+# pass
+# import dbdjango
+# db = dbdjango.DbDjango()
+# run_report(db, "ancestor_report", off="txt", of="ar.txt", pid="I0363")
+
+def import_file(db, filename, callback):
+ """
+ Import a file (such as a GEDCOM file) into the given db.
+
+ >>> import_file(DbDjango(), "/home/user/Untitled_1.ged", lambda a: a)
+ """
+ dbstate = DbState.DbState()
+ climanager = CLIManager(dbstate, False) # do not load db_loader
+ climanager.do_reg_plugins(dbstate, None)
+ pmgr = BasePluginManager.get_instance()
+ (name, ext) = os.path.splitext(os.path.basename(filename))
+ format = ext[1:].lower()
+ import_list = pmgr.get_reg_importers()
+ for pdata in import_list:
+ if format == pdata.extension:
+ mod = pmgr.load_plugin(pdata)
+ if not mod:
+ for name, error_tuple in pmgr.get_fail_list():
+ etype, exception, traceback = error_tuple
+ print "ERROR:", name, exception
+ return False
+ import_function = getattr(mod, pdata.import_function)
+ db.prepare_import()
+ import_function(db, filename, callback)
+ db.commit_import()
+ return True
+ return False
+
+def export_file(db, filename, callback):
+ """
+ Export the db to a file (such as a GEDCOM file).
+
+ >>> export_file(DbDjango(), "/home/user/Untitled_1.ged", lambda a: a)
+ """
+ dbstate = DbState.DbState()
+ climanager = CLIManager(dbstate, False) # do not load db_loader
+ climanager.do_reg_plugins(dbstate, None)
+ pmgr = BasePluginManager.get_instance()
+ (name, ext) = os.path.splitext(os.path.basename(filename))
+ format = ext[1:].lower()
+ export_list = pmgr.get_reg_exporters()
+ for pdata in export_list:
+ if format == pdata.extension:
+ mod = pmgr.load_plugin(pdata)
+ if not mod:
+ for name, error_tuple in pmgr.get_fail_list():
+ etype, exception, traceback = error_tuple
+ print "ERROR:", name, exception
+ return False
+ export_function = getattr(mod, pdata.export_function)
+ export_function(db, filename, callback)
+ return True
+ return False
+
diff --git a/src/web/utils.py b/src/web/utils.py
index f52d8ae4e..914ea4844 100644
--- a/src/web/utils.py
+++ b/src/web/utils.py
@@ -609,3 +609,4 @@ register_plugins()
import HtmlDoc
from libhtmlbackend import HtmlBackend
from libhtml import Html
+