diff --git a/inventory-app/main.py b/inventory-app/main.py index fdfb0d8..8170ced 100755 --- a/inventory-app/main.py +++ b/inventory-app/main.py @@ -20,6 +20,7 @@ import markdown import pymongo import requests import safe +import segno from flask import Flask, abort, g, make_response, redirect, render_template, request, session from flask_wtf import FlaskForm, RecaptchaField from jinja2 import Environment, FileSystemLoader @@ -101,6 +102,10 @@ def render_user_link(item): def is_list(value): return isinstance(value, list) +def render_qr_code(slug): + qr = segno.make(str("http://k6.ee/" + slug), micro=False, mode='byte', mask=3, error='L', boost_error=False) + return Markup(qr.svg_inline(light='black', dark='yellow', scale=3, border=1)) + jinja2.filters.FILTERS['format_name'] = format_name jinja2.filters.FILTERS['markdown'] = render_markdown jinja2.filters.FILTERS['timeago'] = render_timeago @@ -111,6 +116,8 @@ jinja2.filters.FILTERS['is_list'] = is_list jinja2.filters.FILTERS['quote_plus'] = lambda u: urllib.parse.quote_plus(u) jinja2.filters.FILTERS['check_foreign_key_format'] = check_foreign_key_format jinja2.filters.FILTERS['display_name'] = render_user_display_name +jinja2.filters.FILTERS['qr_code'] = render_qr_code + env = Environment(loader=FileSystemLoader('templates/')) diff --git a/inventory-app/templates/inventory_view.html b/inventory-app/templates/inventory_view.html index 82e1008..6f36a39 100644 --- a/inventory-app/templates/inventory_view.html +++ b/inventory-app/templates/inventory_view.html @@ -88,6 +88,15 @@ {% endif %} + + + QR Code (WIP) + + {% if item.get("shortener").slug %} + {{ item.get("shortener", {}).get("slug") | qr_code }} + {% endif %} + + Issue tracker diff --git a/requirements.txt b/requirements.txt index bfcb846..24057ed 100644 --- a/requirements.txt +++ b/requirements.txt @@ -10,6 +10,7 @@ markdown pytz requests safe +segno sepa Flask-WTF prometheus-flask-exporter