2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-29 12:06:44 +00:00

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 { .qr-container {
width: 100%; width: 100%;
align-content: center; align-content: center;
object-fit: fill;
} }
.navbar-brand { .navbar-brand {

View File

@ -20,7 +20,7 @@ from stock.urls import stock_urls
from build.urls import build_urls from build.urls import build_urls
from order.urls import order_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 common.api import common_api_urls
from part.api import part_api_urls, bom_api_urls from part.api import part_api_urls, bom_api_urls
from company.api import company_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.models import StockItem
from stock.serializers import StockItemSerializer 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): class BarcodeScan(APIView):

View File

@ -5,7 +5,7 @@ import hashlib
import logging import logging
from InvenTree import plugins as InvenTreePlugins 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.models import StockItem
from stock.serializers import StockItemSerializer, LocationSerializer from stock.serializers import StockItemSerializer, LocationSerializer

View File

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

View File

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

View File

@ -10,8 +10,8 @@ from io import BytesIO
from django import template from django import template
import qrcode import qrcode as python_qrcode
import barcode import barcode as python_barcode
register = template.Library() register = template.Library()
@ -32,7 +32,7 @@ def image_data(img, fmt='PNG'):
@register.simple_tag() @register.simple_tag()
def qr_code(data, **kwargs): def qrcode(data, **kwargs):
""" """
Return a byte-encoded QR code image Return a byte-encoded QR code image
@ -54,7 +54,7 @@ def qr_code(data, **kwargs):
params.update(**kwargs) params.update(**kwargs)
qr = qrcode.QRCode(**params) qr = python_qrcode.QRCode(**params)
qr.add_data(data, optimize=20) qr.add_data(data, optimize=20)
qr.make(fit=True) qr.make(fit=True)
@ -62,3 +62,23 @@ def qr_code(data, **kwargs):
qri = qr.make_image(fill_color=fill_color, back_color=back_color) 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%;'> <div class='container' style='width: 80%;'>
{% if qr_data %} {% if qr_data %}
<div class='qr-container'> <div class='qr-container'>
<img src="{% qr_code qr_data %}"> <img src="{% qrcode qr_data %}">
</div> </div>
{% else %} {% else %}
<div class='alert alert-block alert-warning'> <div class='alert alert-block alert-warning'>