46 lines
1.4 KiB
Python
46 lines
1.4 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']
|
|
|
|
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')
|
|
)
|
|
return my_urls + urls
|
|
|
|
def preview(self, request, pk):
|
|
context = {}
|
|
context['page'] = models.Page.objects.get(pk=pk)
|
|
|
|
return TemplateResponse(request,
|
|
'admin/pdfformfiller/page/preview.html',
|
|
context
|
|
)
|
|
|
|
|
|
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)
|
|
|
|
|