Change the presentation when searching for a specific string (ie. in tags and in cards separately).

This commit is contained in:
Fred Pauchet 2012-11-16 23:20:35 +01:00
parent 7686176ddd
commit b0b85bbd8a
4 changed files with 76 additions and 57 deletions

View File

@ -52,7 +52,7 @@ def query(request):
if request.method == "POST":
terms = request.POST['q']
request.POST.urlencode()
#request.POST.urlencode()
else:
terms = request.GET['q']
@ -60,15 +60,21 @@ def query(request):
from django.db.models import Q
q = Q()
t = Q()
for term in terms.split(' '):
q.add((Q(label__icontains=term) | Q(country__label__icontains=term) ), q.AND)
t.add((Q(label__icontains=term)), t.AND)
tags_list = Tag.objects.filter(t)
print tags_list
cards_list = Card.objects.filter(q)
cards = pagination(cards_list, request)
context = { 'cards' : cards, 'title' : 'Recherche sur les termes : ' + terms }
context = { 'tags_list': tags_list, 'cards' : cards, 'title' : 'Recherche sur les termes : ' + terms }
return render_to_response('cards/list.html', RequestContext(request, context))

View File

@ -11,41 +11,40 @@
<title>{% block page_title %}Collec' de cart'{% endblock %}</title>
</head>
<body>
<header>
<div>
<!--<a href="/"><img src="{{STATIC_URL}}img/header.png" alt="Ma collection de télécartes" /></a>-->
</div>
<div>
<ul class="nav nav-pills pull-right">
<li class="active">
<a href="#">Télécartes</a>
</li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Pays<b class="caret"></b></a>
<ul class="dropdown-menu">
{% nav_menu %}
</ul>
</li>
<li><a href="#">Tags</a>
<li><a href="#">A propos</a></li>
<li><a href="#">Admin</a></li>
<li>
<form action="/query/" method="POST">
{% csrf_token %}
<input id="q" name="q" type="text" class="search-query" placeholder="Recherche">
</form>
</li>
</ul>
</div>
</header>
</div class="clearfix"></div>
{% block main_container %}{% endblock %}
<div class="container">
<header>
<div>
<!--<a href="/"><img src="{{STATIC_URL}}img/header.png" alt="Ma collection de télécartes" /></a>-->
</div>
<div>
<ul class="nav nav-pills">
<li class="active">
<a href="#">Télécartes</a>
</li>
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Pays<b class="caret"></b></a>
<ul class="dropdown-menu">
{% nav_menu %}
</ul>
</li>
<li><a href="#">Tags</a>
<li><a href="#">A propos</a></li>
<li><a href="/admin">Admin</a></li>
<li class="pull-right">
<form action="/query/" method="POST">
{% csrf_token %}
<input id="q" name="q" type="text" class="search-query" placeholder="Recherche">
</form>
</li>
</ul>
</div>
</header>
<footer>
<p>(pied de page)</p>
<footer>
<div class="row">
{% block main_container %}{% endblock %}
</div>
</div>
</footer>
</body>
</html>

View File

@ -2,7 +2,7 @@
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
<h3>{{ card.label }}</h3>
<h3>{{ card.label }} (<a href="{% url list-by-country card.country.id %}">{{card.country}}</a>)</h3>
</div>
<div class="modal-body">
{% if card.image %}
@ -12,10 +12,6 @@
{% endif %}
<table class="table table-bordered">
<tr>
<td>Pays</td>
<td><a href="{% url list-by-country card.country.id %}">{{card.country}}</a></td>
</tr>
<tr>
<td>Nombre d'unités</td>
<td>{{card.units}}</td>
@ -49,5 +45,7 @@
</table>
</div>
<div class="modal-footer">
<p class="pull-left"></p>
<p class="pull-right"></p>
<p class="pull-left">Dernière mise-à-jour: {{card.updated_at}}</p><a href="/admin/cards/card/{{card.id}}/" target="_blank" class="btn btn-primary" >Modification</a>
</div>

View File

@ -11,7 +11,7 @@
$("a.thumbnail").click(function(e) {
e.preventDefault();
$('#myModal').modal();
$('#modalDisplay').modal();
var request = $.ajax({
url: $(this).attr('href'),
@ -20,34 +20,50 @@
});
request.done(function(result) {
$('#myModal').html(result);
$('#modalDisplay').html(result);
});
request.fail(function(jqxhr, textStatus) {
$('#myModal').html('La requête a foiré: ' + textStatus);
$('#modalDisplay').html('La requête a foiré: ' + textStatus);
});
});
$('legend').click(function(){
$(this).parent().find('.content').slideToggle("slow");
});
});
</script>
<div id="myModal" class="modal large hide fade">
<div id="modalDisplay" class="modal large hide fade">
</div>
<h2>{{title}}</h2>
<h2>{{ title }}</h2>
<ul class="thumbnails">
{% for card in cards.object_list %}
<li class="span2">
<a href="{% url card-details card.id %}" class="thumbnail">
{% if card.image %}
<img src="{{card|crop}}" title="{{card.label}}" />
{% endif %}
</a>
</li>
{% endfor %}
</ul>
<fieldset>
<legend>Tags</legend>
<ul class="tags content">
{% for tag in tags_list %}
<li><a href="{% url list-by-tag tag.id %}">{{ tag.label }}</a></li>
{% endfor %}
</ul>
</fieldset>
<fieldset>
<legend>Cartes</legend>
<ul class="thumbnails content">
{% for card in cards.object_list %}
<li class="span2">
<a href="{% url card-details card.id %}" class="thumbnail">
{% if card.image %}
<img src="{{card|crop}}" title="{{card.label}}" />
{% endif %}
</a>
</li>
{% endfor %}
</ul>
</fieldset>
<div class="pagination" style="margin: 0 auto; display: inline-block; text-align: center;">
<span class="step-links">