changeset 35:06095c3d1e27 draft

Fixed several bugs related to searching and paging Made the paging AJAX capable
author marga
date Wed, 22 Aug 2007 23:36:07 +0000
parents 828bacf27203
children 5ebd6587f8c0
files bts_webui/amancay/search.py bts_webui/amancay/templates/bug.html bts_webui/amancay/templates/index.html bts_webui/amancay/templates/search.html bts_webui/amancay/templates/search_form.html bts_webui/amancay/templates/table.html bts_webui/amancay/urls.py
diffstat 7 files changed, 21 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/bts_webui/amancay/search.py
+++ b/bts_webui/amancay/search.py
@@ -10,6 +10,7 @@
 # Model clases
 from django.contrib.auth.models import User
 from bts_webui.amancay.models import Package
+from django.contrib.sites.models import Site
 
 # Needed for AJAX
 from django.utils import simplejson 
@@ -27,9 +28,7 @@
 # Bug views
 def search(request):
 	user = request.user
-	bugs = []
-	package = request.GET.get('package_search')
-	amount = 20
+	amount = 20 # TODO: get this amount from user prefs
 
 	# Get the page
 	page = request.GET.get('page')
@@ -40,6 +39,7 @@
 		page=0
 
 	# Perform the query
+	package = request.GET.get('package_search')
 	if (package):
 		search_id = "package:%s" % package
 		bug_list = retrieve_search(request, search_id, amount, page)
@@ -107,12 +107,12 @@
 	start = page - 5
 	if (start < 1): start = 1
 	end = page + 5
-	if (end >= num_pages): end = num_pages - 1
-	pages = range(start, end)
+	if (end > num_pages): end = num_pages
+	pages = range(start, end+1)
 
 	# URL for future searches
-	url = "%s?%s=%s" % (request.path, current_view,
-		request.GET.get(current_view))
+	url = "http://%s/search/?%s=%s" % (Site.objects.get_current().domain, 
+		current_view, request.GET.get(current_view))
 
 	if (request.GET.has_key('xhr')):
 		# We only need to list the data.
--- a/bts_webui/amancay/templates/bug.html
+++ b/bts_webui/amancay/templates/bug.html
@@ -4,7 +4,7 @@
 {% block title %}Amancay BTS interface - Bug View{% endblock %}
 
 {% block main_content %}
-<div class="bug_log" id="bug_list">
+<div class="bug_log" id="main_content">
 <div class="bug_log_title">
 <div class="report_information">
 Bug <span class="bug_number">{{ bug_number }}</span> -
@@ -15,7 +15,7 @@
 href="mailto:{{ bug_originator.1 }}">{{ bug_originator.0 }}</a></span>
 <span class="bug_date">on {{ bug_status.date|tstodate }}</span> -->
 </div>
-<div class="bug_title">{{ bug_status.subject }}</div>
+<div class="bug_title">{{ bug_status.subject|escape }}</div>
 <div class="extra_information">
 <ul>
 <li>Package: <a 
@@ -40,11 +40,11 @@
 	href="mailto:{{ message.from.1 }}">{{ message.from.0 }}</a></span>
 	<span class="bug_log_date">said 
 	{% endif %} on {{ message.date|tstodate }}:<br/></span>
-	<span class="bug_log_subject">{{ message.subject }}</span>
+	<span class="bug_log_subject">{{ message.subject|escape }}</span>
 	</div>
 
 	<div class="bug_log_body">
-	<pre>{{ message.body }}</pre>
+	<pre>{{ message.body|escape }}</pre>
 	</div>
 </div>
 	{% endfor %}
--- a/bts_webui/amancay/templates/index.html
+++ b/bts_webui/amancay/templates/index.html
@@ -8,7 +8,7 @@
 
 
 {% block main_content %}
-<div id="bug_list" class="bug_list">
+<div id="main_content" class="bug_list">
 {% block bug_list %}
 {% include "table.html" %}
 {% endblock %}
--- a/bts_webui/amancay/templates/search.html
+++ b/bts_webui/amancay/templates/search.html
@@ -7,13 +7,17 @@
 
 
 {% block main_content %}
+<div id="main_content">
 {% block search_form %}
 {% include "search_form.html" %}
 {% endblock %}
+<div id="search_results">
 {% if bug_list %}
 	{% block bug_list %}
 	{% include "table.html" %}
 	{% endblock %}
 {% endif %}
+</div>
+</div>
 {% endblock %}
 
--- a/bts_webui/amancay/templates/search_form.html
+++ b/bts_webui/amancay/templates/search_form.html
@@ -1,5 +1,5 @@
 <div class="search_form" id="search_form">
-<form method="GET" action="./" class="search_form">
+<form method="GET" action="/search/" class="search_form">
 <fieldset class="search_form">
 <legend class="search_title">Search Bugs</legend>
 <ol class="search_form">
--- a/bts_webui/amancay/templates/table.html
+++ b/bts_webui/amancay/templates/table.html
@@ -5,7 +5,7 @@
 <div class="pager">
 {% if pages %}
 <span class="page_numbers">Pages:
-<ul class="page_numbers">
+<ul class="page_numbers" id="pager">
 {% for number in pages %}
 	{% ifequal number current_page %}
 		<li class="current">{{ number }}</li>
@@ -34,8 +34,8 @@
 			<a href="/package/{{ bug.package }}">{{ bug.package }}</a>
 		</td>
 		<td class="bug_number">{{ bug.id }}</td>
-		<td class="subject"><a href="/bug/{{ bug.id }}">{{ bug.subject|slice:":60" }}
-		{% if bug.subject|slice:":60"|length_is:60 %}...{% endif %} 
+		<td class="subject"><a href="/bug/{{ bug.id }}">{{ bug.subject|escape|slice:":60" }}
+		{% if bug.subject|escape|slice:":60"|length_is:60 %}...{% endif %} 
 		<span class="hidden">
 		<b>Severity</b>: {{ bug.severity }}<br/>
 		<b>Submitted by</b>: {{ bug.originator }}<br/>
--- a/bts_webui/amancay/urls.py
+++ b/bts_webui/amancay/urls.py
@@ -20,6 +20,7 @@
 	# Inside pages
 	(r'^package/(?P<package_name>\w+)', 'bts_webui.amancay.views.package',),
 	(r'^bug/(?P<bug_number>\d+)', 'bts_webui.amancay.views.bug',),
+	(r'^(?P<bug_number>\d+)/?$', 'bts_webui.amancay.views.bug',),
 
 	# Small pieces
 	(r'^add_package', 'bts_webui.amancay.views.add_package',),