Added basis of backbone api
This commit is contained in:
parent
377a6bacc4
commit
789c5b47be
6 changed files with 123 additions and 14 deletions
104
views/api.py
Normal file
104
views/api.py
Normal file
|
@ -0,0 +1,104 @@
|
|||
import json
|
||||
|
||||
from django.http import HttpResponse
|
||||
from django.utils.encoding import is_protected_type
|
||||
from django.db.models.fields.files import File
|
||||
|
||||
from pdfformfiller import models
|
||||
|
||||
def json_response(data):
|
||||
response = HttpResponse(json.dumps(data))
|
||||
response['Content-Type'] = 'application/json'
|
||||
return response
|
||||
|
||||
|
||||
def extract_fields(model):
|
||||
result = {}
|
||||
for field in model._meta.fields:
|
||||
value = result[field.name] = field._get_val_from_obj(model)
|
||||
if isinstance(value, File):
|
||||
value = value.url
|
||||
|
||||
result[field.name] = value
|
||||
return result
|
||||
|
||||
|
||||
"""
|
||||
def pages(request, page_id=None):
|
||||
context = {}
|
||||
pages = []
|
||||
|
||||
if doc_id:
|
||||
pages = models.Page.objects.get(pk = page_id)
|
||||
elif request.GET('document', None):
|
||||
doc_id = request.GET('document')
|
||||
pages = models.Page.objects.filter(document__pk = doc_id)
|
||||
else:
|
||||
pages = []
|
||||
|
||||
for page in pages:
|
||||
pages.append(extract_fields(page)) #, ['id', 'document', ))
|
||||
|
||||
context['pages'] = pages
|
||||
|
||||
return json_response(context)
|
||||
|
||||
|
||||
def fields(request, page_id=None):
|
||||
|
||||
page = models.Page.objects.get(document__pk = pdf,
|
||||
page_num = page_num)
|
||||
|
||||
fields = page.formfield_set.all()
|
||||
|
||||
context = {}
|
||||
#context['page'] = extract_fields(page)
|
||||
context['page']['fields'] = map(extract_fields, fields)
|
||||
|
||||
return json_response(context)
|
||||
|
||||
"""
|
||||
|
||||
def document(request):
|
||||
documents = models.Document.objects.all().values('id','name')
|
||||
return json_response(list(documents))
|
||||
|
||||
|
||||
def document_detail(request, id):
|
||||
document = models.Document.objects.get(pk=id)
|
||||
context = extract_fields(document)
|
||||
return json_response(context)
|
||||
|
||||
|
||||
def page(request):
|
||||
pages = models.Page.objects.all()
|
||||
context = [extract_fields(p) for p in pages]
|
||||
return json_response(context)
|
||||
|
||||
|
||||
def page_detail(request, id):
|
||||
page = models.Page.objects.get(pk=id)
|
||||
context = extract_fields(page)
|
||||
return json_response(context)
|
||||
|
||||
|
||||
def document_pages(request, id):
|
||||
pages = models.Page.objects.filter(document__pk=id)
|
||||
context = [extract_fields(page) for page in pages]
|
||||
return json_response(context)
|
||||
|
||||
def field(request):
|
||||
fields = models.FormField.objects.all()
|
||||
context = [extract_fields(f) for f in fields]
|
||||
return json_response(context)
|
||||
|
||||
def field_detail(request, id):
|
||||
field = models.FormField.objects.get(pk=id)
|
||||
context = extract_fields(field)
|
||||
return json_response(context)
|
||||
|
||||
def page_fields(request, id):
|
||||
fields = models.FormField.objects.filter(page__pk=id)
|
||||
context = [extract_fields(f) for f in fields]
|
||||
return json_response(context)
|
||||
|
|
@ -1,8 +0,0 @@
|
|||
from django.http import HttpResponse
|
||||
|
||||
def json_response(context):
|
||||
response = HttpResponse(context)
|
||||
response['Content-Type'] = 'application/pdf'
|
||||
return response
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue