Closes #951: Provide a side-by-side view of rack elevations

This commit is contained in:
Jeremy Stretch
2017-04-20 13:07:22 -04:00
parent 864fa17b75
commit 13cc29cd8c
11 changed files with 156 additions and 54 deletions

View File

@@ -65,30 +65,17 @@ def bettertitle(value):
#
@register.simple_tag()
def querystring_toggle(request, multi=True, page_key='page', **kwargs):
def querystring(request, **kwargs):
"""
Add or remove a parameter in the HTTP GET query string
Append or update the page number in a querystring.
"""
new_querydict = request.GET.copy()
# Remove page number from querystring
try:
new_querydict.pop(page_key)
except KeyError:
pass
# Add/toggle parameters
querydict = request.GET.copy()
for k, v in kwargs.items():
values = new_querydict.getlist(k)
if k in new_querydict and v in values:
values.remove(v)
new_querydict.setlist(k, values)
elif not multi:
new_querydict[k] = v
else:
new_querydict.update({k: v})
querystring = new_querydict.urlencode()
if v is not None:
querydict[k] = v
elif k in querydict:
querydict.pop(k)
querystring = querydict.urlencode()
if querystring:
return '?' + querystring
else: