mirror of
https://github.com/netbox-community/netbox.git
synced 2025-12-18 11:22:25 -06:00
Closes #951: Provide a side-by-side view of rack elevations
This commit is contained in:
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user