1
0
mirror of https://github.com/django/django.git synced 2025-07-04 09:49:12 +00:00

Fixed 858. Got rid of confusing query_string tag.

git-svn-id: http://code.djangoproject.com/svn/django/branches/new-admin@1308 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Robert Wittams 2005-11-20 19:12:23 +00:00
parent a89ade7133
commit 47ad6ae1fe
3 changed files with 6 additions and 45 deletions

View File

@ -2,7 +2,7 @@
<thead>
<tr>
{% for header in result_headers %}<th{{header.class_attrib}}>
{%if header.sortable%}<a href="{% query_string cl override ORDER_VAR:i ORDER_TYPE_VAR:header.order %}" %>{%endif%}
{%if header.sortable%}<a href="{{header.url}}" %>{%endif%}
{{header.text|capfirst}}
{%if header.sortable %}</a>{% endif %}</th>{% endfor %}
</tr>

View File

@ -6,7 +6,7 @@
{%endfor%}
{%endif%}
{{cl.result_count}} {% ifequal cl.result_count 1 %}{{cl.opts.verbose_name}}{%else%}{{cl.opts.verbose_name_plural}}{%endifequal%}
{% if need_show_all_link %}&nbsp;&nbsp;<a href="{% query_string cl override ALL_VAR:'' %}" class="showall">Show all</a>{%endif%}
{% if show_all_url %}&nbsp;&nbsp;<a href="{{show_all_url}}" class="showall">Show all</a>{%endif%}
</p>

View File

@ -15,47 +15,6 @@ from django.core import template
from django.utils import dateformat
DOT = '.'
class QueryStringNode(template.Node):
def __init__(self, cl_var, override_vars, remove_vars):
self.cl_var, self.override_vars, self.remove_vars = cl_var, override_vars, remove_vars
def render(self, context):
def res(var):
return template.resolve_variable(var, context)
cl = res(self.cl_var)
overrides = dict([ (res(k), res(v)) for k,v in self.override_vars ])
remove = [res(v) for v in self.remove_vars]
return cl.get_query_string(overrides, remove)
def do_query_string(parser, token):
bits = token.contents.split()[1:]
in_override = False
in_remove = False
override_vars = []
remove_vars = []
cl_var = bits.pop(0)
for word in bits:
if in_override:
if word == 'remove':
in_remove = True
in_override = False
else:
override_vars.append(word.split(':'))
elif in_remove:
remove_vars.append(word)
else:
if word == 'override':
in_override = True
elif word == 'remove':
remove = True
return QueryStringNode(cl_var, override_vars, remove_vars)
template.register_tag('query_string', do_query_string)
#@simple_tag
def paginator_number(cl,i):
if i == DOT:
@ -99,9 +58,11 @@ def pagination(cl):
else:
page_range.extend(range(page_num + 1, paginator.pages))
need_show_all_link = cl.can_show_all and not cl.show_all and cl.multi_page
return {'cl': cl,
'pagination_required': pagination_required,
'need_show_all_link': cl.can_show_all and not cl.show_all and cl.multi_page,
'show_all_url': need_show_all_link and cl.get_query_string({ALL_VAR:''}),
'page_range': page_range,
'ALL_VAR': ALL_VAR,
'1': 1
@ -141,7 +102,7 @@ def result_headers(cl):
yield {"text" : f.verbose_name,
"sortable": True,
"order" : new_order_type,
"url" : cl.get_query_string({ORDER_VAR: i, ORDER_TYPE_VAR: new_order_type}),
"class_attrib" : (th_classes and ' class="%s"' % ' '.join(th_classes) or '') }
def items_for_result(cl, result):