src/p4l/search/forms.py
author ymh <ymh.work@gmail.com>
Thu, 26 Sep 2013 15:24:41 +0200
changeset 119 ece69ca3ac24
parent 115 4749704f9b40
child 126 a345f1a67bf1
permissions -rw-r--r--
- correct import pour indexation - improve new record management

# -*- coding: utf-8 -*-
'''
Created on Sep 20, 2013

@author: ymh
'''
from haystack.forms import SearchForm

from p4l.models.data import Record
from p4l.search.query_parser import QueryParser
from p4l.utils import strip_accents


class RecordSearchForm(SearchForm):
    
    def __init__(self, *args, **kwargs):
        SearchForm.__init__(self, *args, **kwargs)
        
    def no_query_found(self):
        return self.searchqueryset.all()
    
    def search(self):
        if not self.is_valid():
            return self.no_query_found()

        if not self.cleaned_data.get('q'):
            return self.no_query_found()

        qp = QueryParser("text")
        sqs = self.searchqueryset.models(Record).filter(qp.parse(strip_accents(self.cleaned_data['q'])))

        if self.load_all:
            sqs = sqs.load_all()

        return sqs