Added admin preview skeleton

This commit is contained in:
Mark Riedesel 2013-10-16 14:06:41 -05:00
parent 51fe3faf69
commit 0aed8549f7
2 changed files with 20 additions and 1 deletions

View file

@ -1,4 +1,7 @@
from django.contrib import admin from django.contrib import admin
from django.conf.urls import patterns
from django.template.response import TemplateResponse
import models import models
class DocumentAdmin(admin.ModelAdmin): class DocumentAdmin(admin.ModelAdmin):
@ -12,6 +15,16 @@ 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']
def get_urls(self):
urls = super(PageAdmin, self).get_urls()
my_urls = patterns('',
(r'^(?P<pk>.*)/preview/$', self.admin_site.admin_view(self.preview))
)
return my_urls + urls
def preview(self, request, pk):
return TemplateResponse(request, 'admin/pdfformfiller/page/preview.html', {})
class FormFieldAdmin(admin.ModelAdmin): class FormFieldAdmin(admin.ModelAdmin):
list_display = ['name', 'page', 'fieldtype', 'page_number', 'pos_y'] list_display = ['name', 'page', 'fieldtype', 'page_number', 'pos_y']

View file

@ -22,13 +22,17 @@ class Document(models.Model):
def process_pages(self): def process_pages(self):
poppler_con = PopplerController(self.pdf.path) poppler_con = PopplerController(self.pdf.path)
for page_num, image in enumerate(poppler_con.generate_page_images()): for page_num, image in enumerate(poppler_con.generate_page_images()):
page_width, page_height = poppler_con.doc.get_page(page_num).get_size()
try: try:
page = self.page_set.get(page_num=page_num) page = self.page_set.get(page_num=page_num)
except Page.DoesNotExist: except Page.DoesNotExist:
page = Page(document=self, page = Page(document=self,
page_num=page_num, page_num=page_num,
name=self.name + (' page %d' % page_num)) name=self.name + (' page %d' % page_num),
width=page_width,
height=page_height)
page.image.save( page.image.save(
os.path.basename(self.pdf.path) + ('_page%03d.png' % page_num), os.path.basename(self.pdf.path) + ('_page%03d.png' % page_num),
File(image) File(image)
@ -49,6 +53,8 @@ class Page(models.Model):
name = models.CharField(max_length=64, blank=True) name = models.CharField(max_length=64, blank=True)
image = models.ImageField(upload_to='pdfformfiller_page') image = models.ImageField(upload_to='pdfformfiller_page')
page_num = models.SmallIntegerField() page_num = models.SmallIntegerField()
width = models.FloatField()
height = models.FloatField()
def __unicode__(self): def __unicode__(self):
return self.name return self.name