diff --git a/app/routes/labels.py b/app/routes/labels.py index e120120..4804a57 100644 --- a/app/routes/labels.py +++ b/app/routes/labels.py @@ -15,7 +15,7 @@ Routes: /admin/labels/print the printable sheet /admin/labels/print.pdf same sheet as a PDF (ReportLab only) /admin/labels/categories manage the taxonomy - /admin/labels/settings API key and print defaults + /admin/labels/settings API key, print defaults, tape printer Created by: Jess Rogerson (yelling commands at Claude.AI) """ @@ -32,7 +32,7 @@ from app import db from app.models.part_label import PartCategory, PartLabel, slugify from app.models.site_setting import SiteSetting from app.routes.admin import admin_required -from app.services import label_render +from app.services import label_render, tape_printer from app.services.part_catalog import (RebrickableAPI, cache_part_image, ensure_seeded, seed_categories) @@ -418,6 +418,19 @@ def settings(): or label_render.DEFAULT_PRESET) SiteSetting.set('label_offset_x', request.form.get('offset_x') or '0') SiteSetting.set('label_offset_y', request.form.get('offset_y') or '0') + + # Brother VC-500W (or any AirPrint label printer) over IPP + SiteSetting.set('tape_printer_host', + (request.form.get('tape_printer_host') or '').strip()) + SiteSetting.set('tape_printer_port', + (request.form.get('tape_printer_port') or '631').strip()) + SiteSetting.set('tape_printer_path', + (request.form.get('tape_printer_path') + or '/ipp/print').strip()) + SiteSetting.set('tape_printer_format', + (request.form.get('tape_printer_format') or '').strip()) + SiteSetting.set('tape_default', + request.form.get('tape_default') or tape_printer.DEFAULT_TAPE) db.session.commit() flash('Label settings saved.', 'success') return redirect(url_for('labels.settings')) @@ -433,4 +446,10 @@ def settings(): offset_x=SiteSetting.get('label_offset_x', '0'), offset_y=SiteSetting.get('label_offset_y', '0'), pdf_available=label_render.reportlab_available(), + tapes=tape_printer.TAPE_PRESETS, + tape_printer_host=SiteSetting.get('tape_printer_host', '') or '', + tape_printer_port=SiteSetting.get('tape_printer_port', '631') or '631', + tape_printer_path=SiteSetting.get('tape_printer_path', '/ipp/print') or '/ipp/print', + tape_printer_format=SiteSetting.get('tape_printer_format', '') or '', + tape_default=SiteSetting.get('tape_default', tape_printer.DEFAULT_TAPE), )