Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding extra search callbacks for ColumnFilterWidgets #9

Closed
ScottEAdams opened this issue Aug 2, 2013 · 4 comments
Closed

Adding extra search callbacks for ColumnFilterWidgets #9

ScottEAdams opened this issue Aug 2, 2013 · 4 comments

Comments

@ScottEAdams
Copy link

Not sure if this is a feature request or a "can this be done already".

I am wanting to use the https://github.com/cyberhobo/ColumnFilterWidgets plugin which adds nice column filters easily. It does so by adding new sSearch params ( e.g. sSearch_0, sSearch_1, sSearch_2 etc). Any way to map those to specific querysets?

@tiliv
Copy link
Contributor

tiliv commented Aug 4, 2013

After having looked at how to configure ColumnFilterWidgets, I believe it's pretty much just building on existing dataTables.js APIs (i.e., it greatly simplifies the workflow provided by the per-column fnFilter API and adds some fanciness via drop-downs).

I'll need to look at how it interacts with requests made while bServerSide = true, though. Ideally, the DatatableView could extract those column-specific filters and apply them automatically.

@ScottEAdams
Copy link
Author

Have you had a chance to look into this anymore? I will dig a little further into it in the coming weeks hopefully but in the meantime, perhaps you could give me some advice on whats the current simplest way to add column based filters?

@ScottEAdams
Copy link
Author

After starting to create a pull request for this I basically came to the conclusion that this is going to be so different for every case that its just easier to do in the get_queryset and use the complex lookups of django to build the queries specifically for your column needs. Its working well for me. Here is an example that basically gives you the column index (ind) and the query string (real_query):

    getquery = self.request.GET
    sSearches = fnmatch.filter(getquery, 'sSearch_?')
    for sS in sSearches:
        sQuery = getquery.get(sS, '').strip()
        if sQuery:
            ind = int(sS.split('_')[1])
            real_query = re.search('\(^|,\)\((.*)\)\(,|$\)', sQuery)

@ivanlao
Copy link

ivanlao commented May 30, 2014

is was reviewing this yesterday, you have to search for sSearch_[column_id] get parameter and apply and if the column type allow search, then search for it like is done in the table search.

A nice feature could be allow to add specific search for colums in the view, so you run the default search if the view has not defined an special search for that column. django-eztables and django-datatables-view has this feature.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants