it_manager: настраиваемое содержимое QR в шаблоне этикетки.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -473,6 +473,34 @@ class ItManagerEquipmentTests(TestCase):
|
||||
eq = Equipment.objects.get(serial_number='SN-AUTO-INV-1')
|
||||
self.assertEqual(eq.inventory_number, suggested_inventory_number(eq.pk))
|
||||
|
||||
def test_qr_custom_pattern(self):
|
||||
from apps.it_manager.equipment_labels import equipment_qr_payload, label_payload_for_unit
|
||||
from apps.it_manager.models import EquipmentLabelTemplate
|
||||
|
||||
eq = make_equipment(serial_number='QR-SN-9', inventory_number='INV-QR-9')
|
||||
self.assertEqual(equipment_qr_payload(eq), 'INV-QR-9')
|
||||
self.assertEqual(
|
||||
equipment_qr_payload(eq, 'ACORE|{serial}|{inventory}'),
|
||||
'ACORE|QR-SN-9|INV-QR-9',
|
||||
)
|
||||
self.assertEqual(equipment_qr_payload(eq, 'id={id}'), f'id={eq.pk}')
|
||||
|
||||
tmpl = EquipmentLabelTemplate.get_default()
|
||||
tmpl.layout = [
|
||||
{
|
||||
'id': 'qr1', 'type': 'qr',
|
||||
'x_mm': 2, 'y_mm': 2, 'w_mm': 22, 'h_mm': 22,
|
||||
'font_pt': 9, 'bold': False, 'align': 'left',
|
||||
'text': 'S:{serial}',
|
||||
},
|
||||
]
|
||||
tmpl.width_mm = 40
|
||||
tmpl.height_mm = 30
|
||||
tmpl.save()
|
||||
payload = label_payload_for_unit(eq, template=tmpl)
|
||||
qr_blocks = [b for b in payload['blocks'] if b['type'] == 'qr']
|
||||
self.assertEqual(qr_blocks[0]['text'], 'S:QR-SN-9')
|
||||
|
||||
def test_labels_inject_text_when_template_codes_only(self):
|
||||
from apps.it_manager.equipment_labels import label_payload_for_unit
|
||||
from apps.it_manager.models import EquipmentLabelTemplate
|
||||
|
||||
Reference in New Issue
Block a user