django-pdfformfiller/admin.py
Mark Riedesel a9eb2b4e2c Page preview works! Very exciting.
Now we just need the ability to edit things.
2013-11-13 21:33:26 -06:00

60 lines
1.9 KiB
Python

from django.contrib import admin
from django.conf.urls import patterns, url
from django.template.response import TemplateResponse
import models
class DocumentAdmin(admin.ModelAdmin):
list_display = ['name', 'pdf', 'number_of_pages']
def number_of_pages(self, instance):
return instance.page_set.count()
class PageAdmin(admin.ModelAdmin):
list_display = ['document', 'name', 'image', 'page_num']
order_by = ['document', 'page_num']
class Media:
js = ( "lib/jquery.js",
"lib/underscore.js",
"lib/backbone.js",
"lib/backbone.marionette.js",
"js/pdfformfiller/pdfformfiller.js")
def get_urls(self):
urls = super(PageAdmin, self).get_urls()
my_urls = patterns('',
url(r'^(?P<pk>.*)/preview/$', self.admin_site.admin_view(self.preview), name='preview'),
url(r'^(?P<pk>.*)/json/$', self.admin_site.admin_view(self.json), name='json'),
)
return my_urls + urls
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',
context
)
def json(self, request, pk):
page = models.Page.get(pk=pk)
attribs = ['pos_x', 'pos_y', 'name', 'height', 'width', 'fieldtype', 'page']
class FormFieldAdmin(admin.ModelAdmin):
list_display = ['name', 'page', 'fieldtype', 'page_number', 'pos_y']
ordering = ('page', 'page__page_num', '-pos_y')
def page_number(self, instance):
return instance.page.page_num
admin.site.register(models.Document, DocumentAdmin)
admin.site.register(models.Page, PageAdmin)
admin.site.register(models.FormField, FormFieldAdmin)