ajax.py 1.05 KB
# -*- coding: utf-8 -*-

from common.decorators import ajax, render, render_template
from paginer import types, PaginationList

@render_template('ajax_paginer.html')
@ajax(method='post', template='ajax_paginer.html')
def get_page_content(request, paginer_id, paginer_type, params, action, page_nr,
                     group_actions=None):
  paginer = PaginationList()
  paginer.add(
    paginer_id, paginer_type, params, action=action,
    group_actions=group_actions)
  return {
    'paginer': paginer,
    'id': paginer_id,
    'page_nr': page_nr,
  }

@render()
@ajax(method='get', encode_result=False)
def new_filter_row(request, list_type):
  filter_field_form_class = types[list_type].filter_field_form
  form = filter_field_form_class(prefix='field_NUM')
  return {'form': form}

@render()
@ajax(method='get', encode_result=False)
def field_form(request, list_type, field_name):
  filter_data = types[list_type].filters[field_name]
  lookup_choices = filter_data[1]
  form = filter_data[2](prefix='value_NUM')
  return {'lookup_choices': lookup_choices, 'form': form}