ajoute un filtre sur la description au browser d'entité

This commit is contained in:
Benjamin Dauvergne 2012-05-18 15:00:07 +02:00
parent 026f1e9adf
commit 8a15230f0b
2 changed files with 16 additions and 2 deletions

View File

@ -2,7 +2,10 @@
{% load sekizai_tags %}
{% block content %}
<input type="text" id="entity-input"/>
<div>
<label for="entity-input">Sélection:</label><input type="text" id="entity-input"/>
<label for="entity-description-filter">Filtre sur la description:</label><input type="text" id="entity-description-filter"/>
</div>
<style>
.miller {
border: 1px solid #ccc;
@ -59,7 +62,13 @@
$('div', top_container).each(function (key, value) {
total_width += $(value).width();
});
$.getJSON('/entity/' + code, function (data) {
var filter_input = $('#entity-description-filter');
if (! /^\s*$/.test(filter_input.attr('value'))) {
suffix = '?filter=' + filter_input.attr('value');
} else {
suffix = '';
}
$.getJSON('/entity/' + code + '/' + suffix, function (data) {
if (data.length) {
var container = $('<div class="miller-column"></div>').appendTo(top_container);
$(container).css({'top': 0, 'left': total_width});

View File

@ -3,15 +3,20 @@
import json
from django.http import HttpResponse
from django.db.models import Q
from django.shortcuts import render
import polynum.base.models as models
def entity(request, parent_code=None):
_filter = request.GET.get('filter')
if parent_code:
qs = models.Entity.objects.filter(parent_relations__parent__code=parent_code, parent_relations__direct=True)
else:
qs = models.Entity.objects.filter(parent_relations__isnull=True)
if _filter:
q = Q(description__icontains=_filter) | Q(children_relations__child__description__icontains=_filter)
qs = qs.filter(q).distinct()
return HttpResponse(json.dumps(list(qs.values('code', 'description'))))
def entity_selector(request):