Exemplo n.º 1
0
def search(request): #default should be 'all'
  #book_name='chujiten'
  #todo:book_name validation, search_method validation etc
  #TODO only get headings
  #TODO use bookname IDs
  EpwingDictionary.uri_base = '/dict/'
  
  #TODO json view of fields available for search (for REST!)
  if request.GET:
    EpwingDictionary.initialize()
    
    search_dict = EpwingDictionary(request.GET['book'])
    results = []
    search_results = search_dict.search(request.GET['query'], search_method=request.GET['search_method'])
    for heading, content, subbook_id, entry_id, uri in search_results:
      results.append({ 'uri': uri,
                       'heading': heading })
    
    EpwingDictionary.finalize()
    
    ret = { 'results': results }
            
    if request.is_ajax():
      return HttpResponse(simplejson.dumps(ret))
    else:
      return render_to_response('restful_dictionary/search_results.html', ret)
  else:
    books = EpwingDictionary.books()
    form = SearchForm(books)
    return render_to_response('restful_dictionary/search_form.html', { 'form': form })
Exemplo n.º 2
0
def books(request):
  EpwingDictionary.uri_base = '/dict/'
  EpwingDictionary.initialize()
  
  books = { 'books': EpwingDictionary.books() }

  EpwingDictionary.finalize()

  if request.is_ajax():
    return HttpResponse(simplejson.dumps(ret))
  else:
    return render_to_response('restful_dictionary/book_list.html', books)