Skip to content

Commit d7d7259

Browse files
committed
Simplify tag urls
1 parent 3f2c961 commit d7d7259

File tree

6 files changed

+13
-43
lines changed

6 files changed

+13
-43
lines changed

mapsapp/api.py

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -206,18 +206,11 @@ def maps2json(maps):
206206
return objects
207207

208208

209-
def tags(request, url_fragment):
210-
if url_fragment == '':
209+
def tags(request, tag):
210+
if tag == '':
211211
return JsonResponse({"maps": []})
212212

213-
items = url_fragment.split('/')
214-
taglist = []
215-
for item in items:
216-
if item.isnumeric():
217-
taglist.append(get_object_or_404(Tag, pk=int(item)))
218-
resultset = Rms.objects.filter(newer_version=None, archived=False)
219-
for tag in taglist:
220-
resultset = resultset.filter(tags=tag)
213+
resultset = Rms.objects.filter(newer_version=None, archived=False).filter(tags=tag)
221214
objects = maps2json(resultset)
222215

223216
return JsonResponse({"maps": objects})

mapsapp/api_urls.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
path('collection/<uuid:collection_id>', api.collection, name='collection'),
2222
path('modifycollection/', api.modifycollection, name='modifycollection'),
2323
path('version/<version_name>', api.versiontag, name='version'),
24-
re_path(r'^tags/(?P<url_fragment>(\d+/)*)$', api.tags, name='tags'),
24+
path('tags/<tag>', api.tags, name='tags'),
2525
path('vote/<uuid:rms_id>/add', api.add_vote, name='add_vote'),
2626
path('vote/<uuid:rms_id>/remove', api.remove_vote, name='remove_vote'),
2727
]

mapsapp/templates/mapsapp/map.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ <h5 class="card-subtitle mb-2 text-muted">by {{ rms.authors }}</h5>
209209
<div class="col-12 align-self-end">
210210
<div class="tags">Tags:
211211
{% for tag in rms.tags.all %}
212-
<a href="{% url 'tags' url_fragment=tag.id|stringformat:"s/" %}"
212+
<a href="{% url 'tags' tag=tag.id %}"
213213
class="badge badge-secondary">{{ tag.name }}</a>
214214
{% endfor %}
215215
</div>

mapsapp/templates/mapsapp/tags.html

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,14 @@
33
{% block pagetitle %}Tags – {% endblock %}
44

55
{% block subtitle %}
6-
<h4 class="text-center">Maps tagged with ›{% for tag in tagset %}{{ tag }}{% if not forloop.last %},
7-
{% endif %}{% endfor %}‹</h4>
6+
<h4 class="text-center">Maps tagged with ›{{ tag }}‹</h4>
87
{% endblock %}
98

109
{% block content %}
1110
<div class="row alltags">
1211
<div class="col-md-8 offset-md-2">
13-
{% for tag in alltags %}
14-
{% if tag in tagset %}
15-
<a href="./remove/{{ tag.id }}/" class="badge badge-primary">{{ tag }}</a>
16-
{% else %}
17-
<a href="./{{ tag.id }}/" class="badge badge-secondary">{{ tag }}</a>
18-
{% endif %}
12+
{% for single_tag in alltags %}
13+
<a href="./{{ single_tag.id }}" class="badge badge-secondary">{{ single_tag }}</a>
1914
{% endfor %}
2015
</div>
2116
</div>

mapsapp/urls.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,8 +44,7 @@ def to_url(self, value):
4444
path('newcollection', views.editcollection, name='newcollection'),
4545
path('newcollection/<uuid:rms_id>', views.editcollection, name='newcollection'),
4646
path('version/<version_name>', views.version, name='version'),
47-
re_path(r'^tags/(?P<url_fragment>(\d+/)*)$', views.tags, name='tags'),
48-
re_path(r'^tags/(?P<url_fragment>(\d+/)+)remove/(?P<id_to_remove>\d+)/$', views.tags_remove, name='tags_remove'),
47+
path('tags/<tag>', views.tags, name='tags'),
4948
path('email_verification_sent', views.email_verification_sent, name='email_verification_sent'),
5049
path('verify/<uidb64>/<token>', views.verify_email, name='verify_email'),
5150
path('password_reset', PasswordResetViewWithCustomDomain.as_view(), name='password_reset'),

mapsapp/views.py

Lines changed: 4 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -478,16 +478,12 @@ def email_verification_sent(request):
478478
return render(request, 'mapsapp/email_verification_sent.html', context=context)
479479

480480

481-
def tags(request, url_fragment):
482-
items = url_fragment.split('/')
483-
tagset = set()
484-
for item in items:
485-
if item.isnumeric():
486-
tagset.add(get_object_or_404(Tag, pk=int(item)))
481+
def tags(request, tag):
482+
tag_object = Tag.objects.filter(id=tag).first()
487483
context = {
488-
"tagset": tagset,
484+
"tag": tag_object.name if tag_object else '?',
489485
"alltags": Tag.objects.all(),
490-
API_URL: reverse('api:tags', kwargs={'url_fragment': url_fragment})
486+
API_URL: reverse('api:tags', kwargs={'tag': tag})
491487
}
492488
return render(request, 'mapsapp/tags.html', context)
493489

@@ -501,19 +497,6 @@ def version(request, version_name):
501497
return render(request, 'mapsapp/version.html', context)
502498

503499

504-
def tags_remove(request, url_fragment, id_to_remove):
505-
items = url_fragment.split('/')
506-
tag_id_set = set()
507-
for item in items:
508-
if item != "":
509-
tag_id_set.add(item)
510-
tag_id_set.remove(id_to_remove)
511-
new_url_fragment = '/'.join(tag_id_set)
512-
if new_url_fragment != '':
513-
new_url_fragment += '/'
514-
return redirect('tags', url_fragment=new_url_fragment)
515-
516-
517500
def info(request):
518501
context = {'contact': SiteSettings.load().contact}
519502
return render(request, 'mapsapp/info.html', context)

0 commit comments

Comments
 (0)