reporting-engine/report_qr/controllers/qr.py

23 lines
833 B
Python
Raw Permalink Normal View History

2021-11-28 03:13:28 +00:00
import werkzeug
from flectra import http
from flectra.http import request
class Home(http.Controller):
@http.route("/report/qr", type="http", auth="public")
def report_qr(self, value, box_size=3, border=3, factory="png", **kwargs):
try:
barcode = request.env["ir.actions.report"].qr_generate(
value, box_size=box_size, border=border, factory=factory, **kwargs
)
except (ValueError, AttributeError):
raise werkzeug.exceptions.HTTPException(
description="Cannot convert into barcode."
)
if factory != "png":
return request.make_response(
barcode, headers=[("Content-Type", "image/svg+xml")]
)
return request.make_response(barcode, headers=[("Content-Type", "image/png")])