diff --git a/admin.py b/admin.py index b828a42..b8242c7 100644 --- a/admin.py +++ b/admin.py @@ -15,6 +15,9 @@ class PageAdmin(admin.ModelAdmin): list_display = ['document', 'name', 'image', 'page_num'] order_by = ['document', 'page_num'] + class Media: + js = ("lib/underscore.js", "lib/backbone.js",) + def get_urls(self): urls = super(PageAdmin, self).get_urls() my_urls = patterns('', @@ -25,6 +28,7 @@ class PageAdmin(admin.ModelAdmin): def preview(self, request, pk): context = {} context['page'] = models.Page.objects.get(pk=pk) + context['media'] = self.media return TemplateResponse(request, 'admin/pdfformfiller/page/preview.html', diff --git a/controller.py b/controller.py index a985f8d..ab76be9 100644 --- a/controller.py +++ b/controller.py @@ -5,13 +5,24 @@ import pdb class PopplerController(object): def __init__(self, pdf=""): - self.doc = poppler.document_new_from_file('file:///home/mark/Bedraga.pdf', password=None) + doc_path = self._get_pdf_path(pdf) + self.doc = self._load_poppler_doc(doc_path) - def load_poppler_doc(self, filename): + + def _get_pdf_path(self, pdf): + import os from django.conf import settings - pdf_path = os.path.abspath(os.path.join(settings.STATIC_FORMS_ROOT, filename)) - if os.path.isfile(pdf_path): + search = [ + os.path.abspath(pdf), + os.path.abspath(os.path.join(settings.STATIC_FORMS_ROOT, pdf)), + ] + + for path in search: + if os.path.isfile(path): + return path + + def _load_poppler_doc(self, pdf_path): return poppler.document_new_from_file('file://' + pdf_path, password=None) @@ -32,6 +43,10 @@ class PopplerController(object): if clear_page: self.clear_page(page) + context.set_source_rgb(1.0, 1.0, 1.0) + context.rectangle(0.0, 0.0, width*2, height*2) + context.fill() + page.render(context) fd = StringIO.StringIO() surface.write_to_png(fd) @@ -63,7 +78,7 @@ class PopplerController(object): value = data.button_get_state() yield { - 'name': data.get_name(), + 'name': data.get_name() or data.get_mapping_name() or data.get_partial_name(), 'value': value, 'type': field_type.value_nick, 'area': { @@ -74,6 +89,7 @@ class PopplerController(object): } } + class PDFFormFillerPostSave(PopplerController): def __init__(self, document): pass diff --git a/models.py b/models.py index 844a47e..8d254b7 100644 --- a/models.py +++ b/models.py @@ -75,7 +75,7 @@ class Page(models.Model): field = FormField(page=self, name=fdata['name']) - field.fieldtype = fdata['type'] + field.fieldtype = fdata['type'][0] area = fdata['area'] field.pos_x = area['pos_x'] field.pos_y = area['pos_y'] diff --git a/templates/admin/pdfformfiller/page/preview.html b/templates/admin/pdfformfiller/page/preview.html index db8a332..4155db9 100644 --- a/templates/admin/pdfformfiller/page/preview.html +++ b/templates/admin/pdfformfiller/page/preview.html @@ -1,7 +1,14 @@ {% extends "admin/base_site.html" %} +{% load i18n admin_static admin_modify %} +{% load admin_urls %} + +{% block extrahead %}{{ block.super }} +{{ media }} media +{% endblock %} {% block content %} +
- +
{% endblock %}