Rename "barcode" module to "barcodes" to prevent import shadowing

- Add 'barcode' support
This commit is contained in:
Oliver Walters 2021-02-22 15:15:25 +11:00
parent 23da591c22
commit caf4c293d9
10 changed files with 32 additions and 11 deletions

View File

@ -125,6 +125,7 @@
.qr-container {
width: 100%;
align-content: center;
object-fit: fill;
}
.navbar-brand {

View File

@ -20,7 +20,7 @@ from stock.urls import stock_urls
from build.urls import build_urls
from order.urls import order_urls
from barcode.api import barcode_api_urls
from barcodes.api import barcode_api_urls
from common.api import common_api_urls
from part.api import part_api_urls, bom_api_urls
from company.api import company_api_urls

View File

@ -12,7 +12,7 @@ from rest_framework.views import APIView
from stock.models import StockItem
from stock.serializers import StockItemSerializer
from barcode.barcode import load_barcode_plugins, hash_barcode
from barcodes.barcode import load_barcode_plugins, hash_barcode
class BarcodeScan(APIView):

View File

@ -5,7 +5,7 @@ import hashlib
import logging
from InvenTree import plugins as InvenTreePlugins
from barcode import plugins as BarcodePlugins
from barcodes import plugins as BarcodePlugins
from stock.models import StockItem
from stock.serializers import StockItemSerializer, LocationSerializer

View File

@ -4,7 +4,7 @@
DigiKey barcode decoding
"""
from barcode.barcode import BarcodePlugin
from barcodes.barcode import BarcodePlugin
class DigikeyBarcodePlugin(BarcodePlugin):

View File

@ -13,7 +13,7 @@ references model objects actually exist in the database.
import json
from barcode.barcode import BarcodePlugin
from barcodes.barcode import BarcodePlugin
from stock.models import StockItem, StockLocation
from part.models import Part

View File

@ -10,8 +10,8 @@ from io import BytesIO
from django import template
import qrcode
import barcode
import qrcode as python_qrcode
import barcode as python_barcode
register = template.Library()
@ -32,7 +32,7 @@ def image_data(img, fmt='PNG'):
@register.simple_tag()
def qr_code(data, **kwargs):
def qrcode(data, **kwargs):
"""
Return a byte-encoded QR code image
@ -54,11 +54,31 @@ def qr_code(data, **kwargs):
params.update(**kwargs)
qr = qrcode.QRCode(**params)
qr = python_qrcode.QRCode(**params)
qr.add_data(data, optimize=20)
qr.make(fit=True)
qri = qr.make_image(fill_color=fill_color, back_color=back_color)
return image_data(qri)
return image_data(qri)
@register.simple_tag()
def barcode(data, barcode_class='code128', **kwargs):
"""
Render a barcode
"""
constructor = python_barcode.get_barcode_class(barcode_class)
data = str(data).zfill(constructor.digits)
writer = python_barcode.writer.ImageWriter
barcode_image = constructor(data, writer=writer())
image = barcode_image.render(writer_options=kwargs)
# Render to byte-encoded PNG
return image_data(image)

View File

@ -4,7 +4,7 @@
<div class='container' style='width: 80%;'>
{% if qr_data %}
<div class='qr-container'>
<img src="{% qr_code qr_data %}">
<img src="{% qrcode qr_data %}">
</div>
{% else %}
<div class='alert alert-block alert-warning'>