Files
Quality App Developer d5b043c762 Fix Docker build and add labels test data
- Fix Docker build issues:
  * Add missing system dependencies (build-essential, python3-dev, libpq-dev)
  * Fix requirements.txt formatting (separate Flask-Session and openpyxl)
  * Update openpyxl version to 3.1.5 (3.10.0 was invalid)
- Set proper folder permissions for Docker write access (app/ and data/)
- Add comprehensive test data for labels module:
  * 8 sample orders (TEST-ORD-001 through TEST-ORD-008)
  * Mix of printed/unprinted orders for testing
  * Various product types, customers, and delivery dates
  * Ready for QZ Tray printing functionality testing
- Include test data generation scripts for future use
- Application now fully containerized and ready for labels/printing testing
2026-02-15 12:05:20 +02:00

122 lines
4.7 KiB
HTML
Executable File

{% extends "base.html" %}
{% block title %}Labels Module - Quality App v2{% endblock %}
{% block content %}
<div class="container-fluid py-5">
<div class="row mb-4">
<div class="col-12">
<h1 class="mb-2">
<i class="fas fa-print"></i> Labels Module
</h1>
<p class="text-muted">Manage and print labels for thermal printers</p>
</div>
</div>
<div class="row">
<!-- Print Module Card -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card shadow-sm h-100 module-launcher">
<div class="card-body text-center">
<div class="launcher-icon mb-3">
<i class="fas fa-print text-primary"></i>
</div>
<h5 class="card-title">Print Labels</h5>
<p class="card-text text-muted">Print labels directly to thermal printers with live preview.</p>
<a href="{{ url_for('labels.print_module') }}" class="btn btn-primary btn-sm">
<i class="fas fa-arrow-right"></i> Open Printing
</a>
</div>
</div>
</div>
<!-- Import Labels Card -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card shadow-sm h-100 module-launcher">
<div class="card-body text-center">
<div class="launcher-icon mb-3">
<i class="fas fa-file-import text-info"></i>
</div>
<h5 class="card-title">Import Labels Data</h5>
<p class="card-text text-muted">Upload CSV or Excel files with order data for label printing.</p>
<a href="{{ url_for('labels.import_labels') }}" class="btn btn-info btn-sm">
<i class="fas fa-arrow-right"></i> Import Data
</a>
</div>
</div>
</div>
<!-- Print Lost Labels Card -->
<div class="col-md-6 col-lg-4 mb-4">
<div class="card shadow-sm h-100 module-launcher">
<div class="card-body text-center">
<div class="launcher-icon mb-3">
<i class="fas fa-file-pdf text-danger"></i>
</div>
<h5 class="card-title">Print Lost Labels</h5>
<p class="card-text text-muted">Search and reprint labels for orders that need reprinting.</p>
<a href="{{ url_for('labels.print_lost_labels') }}" class="btn btn-danger btn-sm">
<i class="fas fa-arrow-right"></i> Reprint Labels
</a>
</div>
</div>
</div>
</div>
<!-- Module Overview Section -->
<div class="row mt-5">
<div class="col-12">
<div class="card shadow-sm">
<div class="card-header bg-light">
<h5 class="mb-0"><i class="fas fa-info-circle"></i> Module Overview</h5>
</div>
<div class="card-body">
<div class="row">
<div class="col-md-6">
<h6><i class="fas fa-check-circle text-success"></i> Key Features:</h6>
<ul class="text-muted">
<li>Real-time label preview</li>
<li>Direct thermal printer integration</li>
<li>PDF export fallback</li>
<li>Batch label printing</li>
<li>QZ Tray support for Windows/Mac/Linux</li>
</ul>
</div>
<div class="col-md-6">
<h6><i class="fas fa-chart-pie text-primary"></i> Supported Printers:</h6>
<ul class="text-muted">
<li>Zebra thermal printers</li>
<li>Epson TM series</li>
<li>Brother thermal printers</li>
<li>Generic thermal printers via QZ Tray</li>
<li>PDF export for any printer</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<style>
.module-launcher {
transition: transform 0.2s, box-shadow 0.2s;
}
.module-launcher:hover {
transform: translateY(-5px);
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}
.launcher-icon {
font-size: 48px;
line-height: 1;
}
.launcher-icon i {
display: inline-block;
}
</style>
{% endblock %}