diff --git a/changelog.d/+qr-code-my-stuff.added.md b/changelog.d/+qr-code-my-stuff.added.md new file mode 100644 index 0000000000..12b191305f --- /dev/null +++ b/changelog.d/+qr-code-my-stuff.added.md @@ -0,0 +1 @@ +Add link to My Stuff that leads to a generated QR Code linking to the page it is called from \ No newline at end of file diff --git a/python/nav/web/templates/base.html b/python/nav/web/templates/base.html index bab92e56ec..de4bc07273 100644 --- a/python/nav/web/templates/base.html +++ b/python/nav/web/templates/base.html @@ -100,6 +100,7 @@

  • {{ link.name }}
  • {% endfor %}
  • My account
  • +
  • QR Code
  • {% endif %} diff --git a/python/nav/web/templates/webfront/qr_code.html b/python/nav/web/templates/webfront/qr_code.html new file mode 100644 index 0000000000..0b47139675 --- /dev/null +++ b/python/nav/web/templates/webfront/qr_code.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} + +{% load crispy_forms_tags %} + +{% block base_header_additional_head %} + + +{% endblock %} + +{% block base_content %} + + QR Code linking to previous side + +{% endblock %} diff --git a/python/nav/web/webfront/urls.py b/python/nav/web/webfront/urls.py index fb174e9436..fe4070abaa 100644 --- a/python/nav/web/webfront/urls.py +++ b/python/nav/web/webfront/urls.py @@ -97,4 +97,5 @@ views.set_account_preference, name='set-account-preference', ), + re_path(r'^qr-code/$', views.qr_code, name='webfront-qr-code'), ] diff --git a/python/nav/web/webfront/views.py b/python/nav/web/webfront/views.py index c98f0e7732..2d71458a8a 100644 --- a/python/nav/web/webfront/views.py +++ b/python/nav/web/webfront/views.py @@ -21,6 +21,7 @@ import json import logging from operator import attrgetter +import re from urllib.parse import quote as urlquote from django.http import ( @@ -41,6 +42,7 @@ from nav.web import auth from nav.web.auth import ldap from nav.web.auth.utils import set_account +from nav.web.seeddb.utils.generate_qr_code import generate_qr_code from nav.web.utils import require_param from nav.web.webfront.utils import quick_read, tool_list from nav.web.webfront.forms import ( @@ -325,6 +327,23 @@ def preferences(request): return render(request, 'webfront/preferences.html', context) +def qr_code(request): + """Show qr code linking to previous page""" + url = request.headers["referer"] + stripped_url = re.sub("https?://", "", url) + + context = { + 'navpath': [('Home', '/'), ('QR Code', None)], + 'title': 'QR Code', + 'qr_code': generate_qr_code( + url=url, + name=stripped_url, + ), + } + + return render(request, 'webfront/qr_code.html', context) + + @sensitive_post_parameters('old_password', 'new_password1', 'new_password2') def change_password(request): """Handles POST requests to change a users password"""