possibility to search by group of tagged medias.
--- a/src/ldt/ldt/ldt_utils/forms.py Tue Mar 06 13:20:22 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/forms.py Wed Mar 07 12:43:58 2012 +0100
@@ -33,6 +33,7 @@
field = forms.ChoiceField([(u"all", _("all")), (u"title", _("title")), (u"abstract", _("resume")), (u"tags", _("tags"))], label=_("Fields"))
ldt_pres = forms.BooleanField(required=False, initial=True, label=_("Display the results in Lignes De Temps"))
page = forms.IntegerField(required=False, widget=forms.HiddenInput())
+ content_tag = forms.CharField(label=_("Content Tag"), required=False, widget=forms.HiddenInput())
class AddProjectForm (ShareForm):
title = forms.CharField(widget=forms.TextInput(attrs={'class':'inputbox required'}))
--- a/src/ldt/ldt/ldt_utils/templates/front/front_base.html Tue Mar 06 13:20:22 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/front/front_base.html Wed Mar 07 12:43:58 2012 +0100
@@ -48,6 +48,7 @@
<!--input id="search_text" name="q" value="" /-->
<input id="id_search" type="text" name="search">
<input type="hidden" value="all" name="field">
+ {% if tag_label %}<input type="hidden" value="{{tag_label}}" name="content_tag">{% endif %}
<input id="search_submit" class="search_invalid" type="submit" value="{% trans 'Search' %}" disabled="true"/>
</form>
--- a/src/ldt/ldt/ldt_utils/templates/front/front_search_results.html Tue Mar 06 13:20:22 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/front/front_search_results.html Wed Mar 07 12:43:58 2012 +0100
@@ -50,7 +50,12 @@
{{ msg }}
{% else %}
{% ifequal nb_results 0 %}
- {% blocktrans %} No results for <b>{{ search }}</b>.{% endblocktrans %}
+ {% if tag_label %}
+ {% blocktrans %} No results for <b>{{ search }}</b> with the medias tagged <span class="pink">{{tag_label}}</span>{% endblocktrans %}
+ <br/><a href="{% url ldt.ldt_utils.views.front.search_index %}?search={{search}}&field={{field}}">{% trans "See for all medias" %}</a>
+ {% else %}
+ {% blocktrans %} No results for <b>{{ search }}</b>.{% endblocktrans %}
+ {% endif %}
{% else %}
<!-- TABLE POUR ALIGNER À LA VERTICALE -->
<table id="tbl_rech">
@@ -62,7 +67,13 @@
<li id="li_haut_resultats">
<ul class="floatlist" id="ul_haut_resultats">
<li id="title_resultats">
- <h2>{% trans "Search results for " %} <b> {{ search }}</b></h2>
+ <h2>
+ {% if tag_label %}
+ <a href="{% url ldt.ldt_utils.views.front.search_index %}?search={{search}}&field={{field}}">{% trans "Search results for " %} <b> {{ search }}</b></a><span class="pink"> > {{tag_label}}</span>
+ {% else %}
+ {% trans "Search results for " %} <b> {{ search }}</b>
+ {% endif %}
+ </h2>
</li>
<li id="li_nb_resultats">
<p id="p_nb_resultats">{{ nb_results }} {% trans "Result" %}{{ nb_results|pluralize }}</p>
@@ -122,7 +133,7 @@
<li id="result_pagination">
<p>
{% if results.has_previous %}
- <a class="blue under" href="{% url ldt.ldt_utils.views.front.search_index %}?page={{ results.previous_page_number }}&search={{search}}&field={{field}}" title="{% trans 'previous' %}">{% trans "previous" %}</a>
+ <a class="blue under" href="{% url ldt.ldt_utils.views.front.search_index %}?page={{ results.previous_page_number }}&search={{search}}&field={{field}}{% if tag_label %}&content_tag={{tag_label}}{% endif %}" title="{% trans 'previous' %}">{% trans "previous" %}</a>
.
{% endif %}
{% if results.paginator.num_pages > 1 %}
@@ -132,7 +143,7 @@
{% if i|add:'1' == results.number %}
<span class="pink">{{i|add:'1'}}</span>
{% else %}
- <a class="blue under" href="{% url ldt.ldt_utils.views.front.search_index %}?page={{i|add:'1'}}&search={{search}}&field={{field}}">{{i|add:'1'}}</a>
+ <a class="blue under" href="{% url ldt.ldt_utils.views.front.search_index %}?page={{i|add:'1'}}&search={{search}}&field={{field}}{% if tag_label %}&content_tag={{tag_label}}{% endif %}">{{i|add:'1'}}</a>
{% endif %}
{% if i|add:'1' < results.paginator.num_pages and 1 < results.paginator.num_pages %}
{% endif %}
@@ -142,7 +153,7 @@
{% endif %}
{% if results.has_next %}
- <a class="blue under" href="{% url ldt.ldt_utils.views.front.search_index %}?page={{ results.next_page_number }}&search={{search}}&field={{field}}" title="{% trans 'next' %}">{% trans "next" %}</a>
+ <a class="blue under" href="{% url ldt.ldt_utils.views.front.search_index %}?page={{ results.next_page_number }}&search={{search}}&field={{field}}{% if tag_label %}&content_tag={{tag_label}}{% endif %}" title="{% trans 'next' %}">{% trans "next" %}</a>
{% endif %}
</p>
</li>
--- a/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html Tue Mar 06 13:20:22 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/templates/ldt/ldt_utils/published_projects.html Wed Mar 07 12:43:58 2012 +0100
@@ -53,10 +53,9 @@
<div class="span-8 projectscontentstitle" >{% trans "Search" %}</div>
</div>
<div class="span-12 last projectscontentsdiv" id="autre">
- <form method="post" id="my_form"
+ <form method="get" id="my_form"
action="{% url ldt.ldt_utils.views.workspace.search_index %}"
accept-charset="utf-8">
- {% csrf_token %}
<table>
{{ form.as_table }}
</table>
--- a/src/ldt/ldt/ldt_utils/views/front.py Tue Mar 06 13:20:22 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/front.py Wed Mar 07 12:43:58 2012 +0100
@@ -127,15 +127,21 @@
results = []
search = ''
field = 'all'
+ content_tag = 'all'
sform = SearchForm(request.GET)
if sform.is_valid():
search = sform.cleaned_data["search"]
field = sform.cleaned_data["field"]
page = sform.cleaned_data["page"] or 1
- results, nb = get_search_results(request, search, field, page)
+ # If asked, we filter the request with only the contents tagged with content_tag
+ content_tag = sform.cleaned_data["content_tag"]
+ content_list = None
+ if content_tag is not None and content_tag != "" :
+ content_list = TaggedItem.objects.get_by_model(Content.objects.all(), '"'+content_tag+'"')
+ results, nb = get_search_results(request, search, field, page, content_list)
- return render_to_response('front/front_search_results.html', {'results': results, 'nb_results' : nb, 'search' : search, 'field': field, 'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/'}, context_instance=RequestContext(request))
+ return render_to_response('front/front_search_results.html', {'results': results, 'nb_results' : nb, 'search' : search, 'field': field, 'tag_label':content_tag, 'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/'}, context_instance=RequestContext(request))
def get_content_tags(limit=None, steps=10):
--- a/src/ldt/ldt/ldt_utils/views/workspace.py Tue Mar 06 13:20:22 2012 +0100
+++ b/src/ldt/ldt/ldt_utils/views/workspace.py Wed Mar 07 12:43:58 2012 +0100
@@ -175,8 +175,8 @@
return render_to_response('ldt/ldt_utils/search_results.html', {'results': results, 'nb_results' : nb, 'search' : search, 'field': field, 'LDT_MEDIA_PREFIX': settings.LDT_MEDIA_PREFIX, 'colorurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/color.xml', 'i18nurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/pkg/i18n', 'language': language_code, 'baseurl': settings.LDT_MEDIA_PREFIX + 'swf/ldt/'}, context_instance=RequestContext(request))
-def get_search_results(request, search, field, page):
- results = get_results_with_context(field, search)
+def get_search_results(request, search, field, page, content_list=None):
+ results = get_results_with_context(field, search, content_list)
all_segments = Segment.objects.filter(element_id__in=[e['element_id'] for e in results])
all_projects = Project.objects.filter(ldt_id__in=[e['project_id'] for e in results], state=2)