Working on running all reports/import/export from the web
svn: r18322
This commit is contained in:
parent
8fd1b37d86
commit
e3f5f4e9c9
@ -18,7 +18,8 @@
|
|||||||
</tr>
|
</tr>
|
||||||
<td class="ColumnAttribute">Options:</td>
|
<td class="ColumnAttribute">Options:</td>
|
||||||
<td class="ColumnValue" id="data">
|
<td class="ColumnValue" id="data">
|
||||||
<input autocomplete="off" name="options" id="get_focus" type="text" size="50" value="{{search}}"></input>
|
<input autocomplete="off" name="options" id="get_focus" type="text" size="50" value="{{report.options}}"></input><br>
|
||||||
|
<i>Hint</i>: use Gramps CLI options such as output file format <b>off=pdf</b>, <b>off=ged</b>, or <b>off=gramps</b>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<td class="ColumnValue" id="data">
|
<td class="ColumnValue" id="data">
|
||||||
|
@ -21,14 +21,6 @@
|
|||||||
|
|
||||||
""" Implements a Db interface """
|
""" Implements a Db interface """
|
||||||
|
|
||||||
## Major issues to fix:
|
|
||||||
|
|
||||||
## 1) import from GEDCOM is not associating proper gramps handles between objects
|
|
||||||
## suspect that something not working correct in adding with transactions
|
|
||||||
## BUG: People event_ref are no longer pointing to correct event, even
|
|
||||||
## previously-working export to django from gramps gtk
|
|
||||||
## 2) did export from gramps gtk break with the changes for importing gedcom?
|
|
||||||
|
|
||||||
#------------------------------------------------------------------------
|
#------------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# Gramps Modules
|
# Gramps Modules
|
||||||
@ -736,6 +728,12 @@ class DbDjango(DbWriteBase, DbReadBase):
|
|||||||
def get_number_of_people(self):
|
def get_number_of_people(self):
|
||||||
return self.dji.Person.count()
|
return self.dji.Person.count()
|
||||||
|
|
||||||
|
def get_number_of_events(self):
|
||||||
|
return self.dji.Event.count()
|
||||||
|
|
||||||
|
def get_number_of_places(self):
|
||||||
|
return self.dji.Place.count()
|
||||||
|
|
||||||
def get_number_of_tags(self):
|
def get_number_of_tags(self):
|
||||||
return 0 # self.dji.Tag.count()
|
return 0 # self.dji.Tag.count()
|
||||||
|
|
||||||
|
@ -256,20 +256,27 @@ def process_action(request, view, handle, action):
|
|||||||
profile = request.user.get_profile()
|
profile = request.user.get_profile()
|
||||||
report = Report.objects.get(handle=handle)
|
report = Report.objects.get(handle=handle)
|
||||||
if action == "run":
|
if action == "run":
|
||||||
args = {}
|
args = {"off": "pdf"} # basic defaults
|
||||||
|
# override from given defaults in table:
|
||||||
|
if report.options:
|
||||||
|
for pair in str(report.options).split(" "):
|
||||||
|
if "=" in pair:
|
||||||
|
key, value = pair.split("=", 1)
|
||||||
|
args[key] = value
|
||||||
|
# override from options on webpage:
|
||||||
if request.GET.has_key("options"):
|
if request.GET.has_key("options"):
|
||||||
options = request.GET.get("options")
|
options = str(request.GET.get("options"))
|
||||||
if options:
|
if options:
|
||||||
for pair in options.split("%3D"):
|
for pair in options.split("%3D"): # from webpage
|
||||||
if "=" in pair:
|
if "=" in pair:
|
||||||
key, value = pair.split("=", 1)
|
key, value = pair.split("=", 1)
|
||||||
args[str(key)] = str(value)
|
args[key] = value
|
||||||
if report.report_type == "textreport":
|
if report.report_type == "textreport":
|
||||||
filename = "/tmp/%s-%s.pdf" % (str(profile.user.username), str(handle))
|
filename = "/tmp/%s-%s.%s" % (str(profile.user.username), str(handle), args["off"])
|
||||||
run_report(db, handle, off="pdf", of=filename, **args)
|
run_report(db, handle, of=filename, **args)
|
||||||
mimetype = 'application/pdf'
|
mimetype = 'application/%s' % args["off"]
|
||||||
elif report.report_type == "export":
|
elif report.report_type == "export":
|
||||||
filename = "/tmp/%s-%s.ged" % (str(profile.user.username), str(handle))
|
filename = "/tmp/%s-%s.%s" % (str(profile.user.username), str(handle), args["off"])
|
||||||
export_file(db, filename, lambda n: n) # callback
|
export_file(db, filename, lambda n: n) # callback
|
||||||
mimetype = 'text/plain'
|
mimetype = 'text/plain'
|
||||||
else:
|
else:
|
||||||
|
@ -111,6 +111,11 @@ for table, entries in [("grampsdb.config",
|
|||||||
("report_type", '"textreport"')),
|
("report_type", '"textreport"')),
|
||||||
(("name", '"GEDCOM Export"'),
|
(("name", '"GEDCOM Export"'),
|
||||||
("handle", '"gedcom_export"'),
|
("handle", '"gedcom_export"'),
|
||||||
|
("options", '"off=ged"'),
|
||||||
|
("report_type", '"export"')),
|
||||||
|
(("name", '"Gramps XML Export"'),
|
||||||
|
("handle", '"ex_gpkg"'),
|
||||||
|
("options", '"off=gramps"'),
|
||||||
("report_type", '"export"')),
|
("report_type", '"export"')),
|
||||||
])]:
|
])]:
|
||||||
entry_count = 0
|
entry_count = 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user