Admin preview view now includes javascript tags provided by media, There are dependencies added for backbone and underscore in that specific admin page.
50 lines
1.5 KiB
Python
50 lines
1.5 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/underscore.js", "lib/backbone.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')
|
|
)
|
|
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
|
|
)
|
|
|
|
|
|
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)
|
|
|
|
|