def get_qr_svg_code(totp_uri): '''Get SVG code to display Qrcode for OTP.''' url = qrcreate(totp_uri) svg = '' stream = BytesIO() try: url.svg(stream, scale=4, background="#eee", module_color="#222") svg = stream.getvalue().decode().replace('\n', '') svg = b64encode(svg.encode()) finally: stream.close() return svg
def qrcode_as_png(user, totp_uri): '''Save temporary Qrcode to server.''' from frappe.utils.file_manager import save_file folder = create_barcode_folder() png_file_name = '{}.png'.format(frappe.generate_hash(length=20)) file_obj = save_file(png_file_name, png_file_name, 'User', user, folder=folder) frappe.db.commit() file_url = get_url(file_obj.file_url) file_path = os.path.join(frappe.get_site_path('public', 'files'), file_obj.file_name) url = qrcreate(totp_uri) with open(file_path, 'w') as png_file: url.png(png_file, scale=8, module_color=[0, 0, 0, 180], background=[0xff, 0xff, 0xcc]) return file_url
def attach_qrcode(doctype,docname,qrcode): filename = 'QRCode_{}.png'.format(docname).replace(os.path.sep, "__") qr_image = io.BytesIO() url = qrcreate(qrcode, error='L') url.png(qr_image, scale=2, quiet_zone=1) _file = frappe.get_doc({ "doctype": "File", "file_name": filename, "attached_to_doctype": doctype, "attached_to_name": docname, "attached_to_field": "qrcode_image", "is_private": 1, "content": qr_image.getvalue()}) _file.save() frappe.db.commit() frappe.db.set_value(doctype,docname,"qrcode_image",_file.file_url)
def qrcode_as_png(user, totp_uri): '''Save temporary Qrcode to server.''' folder = create_barcode_folder() png_file_name = '{}.png'.format(frappe.generate_hash(length=20)) _file = frappe.get_doc({ "doctype": "File", "file_name": png_file_name, "attached_to_doctype": 'User', "attached_to_name": user, "folder": folder, "content": png_file_name}) _file.save() frappe.db.commit() file_url = get_url(_file.file_url) file_path = os.path.join(frappe.get_site_path('public', 'files'), _file.file_name) url = qrcreate(totp_uri) with open(file_path, 'w') as png_file: url.png(png_file, scale=8, module_color=[0, 0, 0, 180], background=[0xff, 0xff, 0xcc]) return file_url
def attach_qrcode_image(self): qrcode = self.invoice.signed_qr_code doctype = self.invoice.doctype docname = self.invoice.name _file = frappe.new_doc('File') _file.update({ 'file_name': f'QRCode_{docname}.png', 'attached_to_doctype': doctype, 'attached_to_name': docname, 'content': 'qrcode', 'is_private': 1 }) _file.insert() frappe.db.commit() url = qrcreate(qrcode, error='L') abs_file_path = os.path.abspath(_file.get_full_path()) url.png(abs_file_path, scale=2, quiet_zone=1) self.invoice.qrcode_image = _file.file_url
def qrcode_as_png(member, verification_hash): site_name = frappe.db.get_single_value("Pranali Settings", "site_name") qr_data = site_name + '/verify?id=' + verification_hash folder = create_barcode_folder() png_file_name = '{}.png'.format(verification_hash) _file = frappe.get_doc({ "doctype": "File", "file_name": png_file_name, "attached_to_doctype": 'Member', "attached_to_name": member, "folder": folder, "content": png_file_name }) _file.save() frappe.db.commit() file_url = get_url(_file.file_url) file_path = os.path.join(frappe.get_site_path('public', 'files'), _file.file_name) url = qrcreate(qr_data) with open(file_path, 'wb') as png_file: url.png(png_file, scale=3, module_color=[0, 0, 0, 180]) return file_url
def qrcode_as_png(user, totp_uri): """Save temporary Qrcode to server.""" folder = create_barcode_folder() png_file_name = "{}.png".format(frappe.generate_hash(length=20)) _file = frappe.get_doc({ "doctype": "File", "file_name": png_file_name, "attached_to_doctype": "User", "attached_to_name": user, "folder": folder, "content": png_file_name, }) _file.save() frappe.db.commit() file_url = get_url(_file.file_url) file_path = os.path.join(frappe.get_site_path("public", "files"), _file.file_name) url = qrcreate(totp_uri) with open(file_path, "w") as png_file: url.png(png_file, scale=8, module_color=[0, 0, 0, 180], background=[0xFF, 0xFF, 0xCC]) return file_url