Misc: admin media, pdf search path
Admin preview view now includes javascript tags provided by media, There are dependencies added for backbone and underscore in that specific admin page.
This commit is contained in:
parent
1a702665fd
commit
440163e504
4 changed files with 34 additions and 7 deletions
4
admin.py
4
admin.py
|
@ -15,6 +15,9 @@ class PageAdmin(admin.ModelAdmin):
|
||||||
list_display = ['document', 'name', 'image', 'page_num']
|
list_display = ['document', 'name', 'image', 'page_num']
|
||||||
order_by = ['document', 'page_num']
|
order_by = ['document', 'page_num']
|
||||||
|
|
||||||
|
class Media:
|
||||||
|
js = ("lib/underscore.js", "lib/backbone.js",)
|
||||||
|
|
||||||
def get_urls(self):
|
def get_urls(self):
|
||||||
urls = super(PageAdmin, self).get_urls()
|
urls = super(PageAdmin, self).get_urls()
|
||||||
my_urls = patterns('',
|
my_urls = patterns('',
|
||||||
|
@ -25,6 +28,7 @@ class PageAdmin(admin.ModelAdmin):
|
||||||
def preview(self, request, pk):
|
def preview(self, request, pk):
|
||||||
context = {}
|
context = {}
|
||||||
context['page'] = models.Page.objects.get(pk=pk)
|
context['page'] = models.Page.objects.get(pk=pk)
|
||||||
|
context['media'] = self.media
|
||||||
|
|
||||||
return TemplateResponse(request,
|
return TemplateResponse(request,
|
||||||
'admin/pdfformfiller/page/preview.html',
|
'admin/pdfformfiller/page/preview.html',
|
||||||
|
|
|
@ -5,13 +5,24 @@ import pdb
|
||||||
|
|
||||||
class PopplerController(object):
|
class PopplerController(object):
|
||||||
def __init__(self, pdf=""):
|
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
|
from django.conf import settings
|
||||||
|
|
||||||
pdf_path = os.path.abspath(os.path.join(settings.STATIC_FORMS_ROOT, filename))
|
search = [
|
||||||
if os.path.isfile(pdf_path):
|
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)
|
return poppler.document_new_from_file('file://' + pdf_path, password=None)
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,6 +43,10 @@ class PopplerController(object):
|
||||||
if clear_page:
|
if clear_page:
|
||||||
self.clear_page(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)
|
page.render(context)
|
||||||
fd = StringIO.StringIO()
|
fd = StringIO.StringIO()
|
||||||
surface.write_to_png(fd)
|
surface.write_to_png(fd)
|
||||||
|
@ -63,7 +78,7 @@ class PopplerController(object):
|
||||||
value = data.button_get_state()
|
value = data.button_get_state()
|
||||||
|
|
||||||
yield {
|
yield {
|
||||||
'name': data.get_name(),
|
'name': data.get_name() or data.get_mapping_name() or data.get_partial_name(),
|
||||||
'value': value,
|
'value': value,
|
||||||
'type': field_type.value_nick,
|
'type': field_type.value_nick,
|
||||||
'area': {
|
'area': {
|
||||||
|
@ -74,6 +89,7 @@ class PopplerController(object):
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class PDFFormFillerPostSave(PopplerController):
|
class PDFFormFillerPostSave(PopplerController):
|
||||||
def __init__(self, document):
|
def __init__(self, document):
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -75,7 +75,7 @@ class Page(models.Model):
|
||||||
field = FormField(page=self,
|
field = FormField(page=self,
|
||||||
name=fdata['name'])
|
name=fdata['name'])
|
||||||
|
|
||||||
field.fieldtype = fdata['type']
|
field.fieldtype = fdata['type'][0]
|
||||||
area = fdata['area']
|
area = fdata['area']
|
||||||
field.pos_x = area['pos_x']
|
field.pos_x = area['pos_x']
|
||||||
field.pos_y = area['pos_y']
|
field.pos_y = area['pos_y']
|
||||||
|
|
|
@ -1,7 +1,14 @@
|
||||||
{% extends "admin/base_site.html" %}
|
{% extends "admin/base_site.html" %}
|
||||||
|
{% load i18n admin_static admin_modify %}
|
||||||
|
{% load admin_urls %}
|
||||||
|
|
||||||
|
{% block extrahead %}{{ block.super }}
|
||||||
|
{{ media }} media
|
||||||
|
{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
<div id="content-main">
|
<div id="content-main">
|
||||||
|
|
||||||
<img src="{{ page.image.url }}"/>
|
<img src="{{ page.image.url }}" style="max-width:100%"/>
|
||||||
</div>
|
</div>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue