Metadata-Version: 1.1
Name: django-search-views
Version: 0.3.4
Summary: Search List class-based views for Django
Home-page: https://github.com/inmagik/django-search-views
Author: Mauro Bianchi
Author-email: bianchimro@gmail.com
License: MIT
Description: django-search-views
        ===================
        
        |Build Status|
        
        This package provides a Django class-based view used for showing a list
        of objects with a search form. Full documentation at
        (http://inmagik.github.io/django-search-views/).
        
        Features:
        
        -  allows searching multiple fields
        -  supports pagination
        -  set filtering operators for each field
        -  set fixed filters
        -  use lists of values for filters
        
        Installation
        ------------
        
        From pypi:
        
        ::
        
            pip install django-search-views
        
        From source:
        
        ::
        
            python setup.py install
        
        Usage
        -----
        
        **Important**: until v.1.0 API might be subject to changes. Please take
        a look at the `changelog <#changelog>`__ and don't hesitate to mail us
        or open an issue if you have troubles migration from an older version.
        Sorry about this!.
        
        SearchListView
        ~~~~~~~~~~~~~~
        
        tbw
        
         Example
        --------
        
        The following code sets up model, form and view for displaying an
        "Actors List".
        
        models.py:
        
        ::
        
            class Actor(models.Model):
                name = models.CharField(max_length=32)
                surname = models.CharField(max_length=32)
                age = models.IntegerField()
        
        forms.py
        
        ::
        
            from .models import Actor
            from django import forms
            class ActorSearchForm(forms.Form):
                search_text =  forms.CharField(
                                required = False,
                                label='Search name or surname!',
                                widget=forms.TextInput(attrs={'placeholder': 'search here!'})
                              )
        
                search_age_exact = forms.IntegerField(
                                required = False,
                                label='Search age (exact match)!'
                              )
        
                search_age_min = forms.IntegerField(
                                required = False,
                                label='Min age'
                              )
        
        
                search_age_max = forms.IntegerField(
                                required = False,
                                label='Max age'
                              )
        
        views.py
        
        ::
        
            from .model import Actor
            from .forms import ActorSearchForm
            from search_views.search import SearchListView
            from search_views.filters import BaseFilter
        
            class ActorsFilter(BaseFilter):
                search_fields = {
                    'search_text' : ['name', 'surname'],
                    'search_age_exact' : { 'operator' : '__exact', 'fields' : ['age'] },
                    'search_age_min' : { 'operator' : '__gte', 'fields' : ['age'] },
                    'search_age_max' : { 'operator' : '__lte', 'fields' : ['age'] },            
        
                }
        
            class ActorsSearchList(SearchListView):
                model = Actor
                paginate_by = 30
                template_name = "actors/actors_list.html"
                form_class = ActorSearchForm
                filter_class = ActorsFilter
        
        view template "actors/actors\_list.html":
        
        ::
        
            {% extends "base.html" %}
        
        
            {% block content%}
        
            <div class="container">
        
                <h2>Actors list</h2>
        
                <form class="form-inline" action="" method="GET">
                    {{ form }}
                    <button class="btn" type="submit">Search</button>
                    </fieldset>
                </form>
        
                <table class="table table-bordered table-condensed">
                    <tr>
                        <th>Name</th>
                        <th>Surname</th>
                        <th>Age</th>        
                    </tr>
                    {% for object in object_list %}
                    <tr>
                        <td>{{object.name}}</td>
                        <td>{{object.surname}}</td>
                        <td>{{object.age}}</td>  
                    </tr>
                    {% endfor %}
                </table>
        
                {% if is_paginated %}
                    {% include "paginator.html" %}
                {% endif %}
        
            </div>
        
            {% endblock %}
        
        Changelog
        ---------
        
        0.2.0
        ~~~~~
        
        -  filters are now configured in their own class derived from
           ``searchlist_views.filters.BaseFilter``.
        
        0.3.0
        ~~~~~
        
        -  Renamed main package from ``searchlist_views`` to ``search_views``.
        
        0.3.1
        ~~~~~
        
        -  Python 3 compatibility
        
        License and development
        =======================
        
        This project is MIT licensed and maintained by
        `Inmagik <https://www.inmagik.com>`__, suggestions and pull requests are
        welcome via the `Github project
        page <https://github.com/inmagik/django-search-views/issues>`__
        
        .. |Build Status| image:: https://travis-ci.org/inmagik/django-search-views.svg?branch=master
           :target: https://travis-ci.org/inmagik/django-search-views
        
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python
