- Add boxes_crates database table with BIGINT IDs and 8-digit auto-numbered box_numbers - Implement boxes CRUD operations (add, edit, update, delete, delete_multiple) - Create boxes route handlers with POST actions for all operations - Add boxes.html template with 3-panel layout matching warehouse locations module - Implement barcode generation and printing with JsBarcode and QZ Tray integration - Add browser print fallback for when QZ Tray is not available - Simplify create box form to single button with auto-generation - Fix JavaScript null reference errors with proper element validation - Convert tuple data to dictionaries for Jinja2 template compatibility - Register boxes blueprint in Flask app initialization
67 lines
2.2 KiB
HTML
67 lines
2.2 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Dashboard - Quality App v2{% endblock %}
|
|
|
|
{% block content %}
|
|
<div class="container-fluid py-5">
|
|
<!-- Welcome Section -->
|
|
<div class="row mb-5">
|
|
<div class="col-12">
|
|
<div class="welcome-card bg-gradient p-5 rounded">
|
|
<h1 class="mb-2">Welcome, {{ user.full_name }}!</h1>
|
|
<p class="text-muted mb-0">
|
|
<i class="fas fa-calendar-alt"></i>
|
|
Today is {{ now().strftime('%A, %B %d, %Y') }}
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Modules Section -->
|
|
<div class="row">
|
|
<div class="col-12 mb-4">
|
|
<h2 class="mb-4">
|
|
<i class="fas fa-th"></i> Available Modules
|
|
</h2>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
{% for module in modules %}
|
|
<div class="col-md-6 col-lg-4 mb-4">
|
|
<div class="module-card card h-100 shadow-sm hover-shadow">
|
|
<div class="card-body text-center">
|
|
<div class="module-icon mb-3">
|
|
<i class="fas {{ module.icon }} text-{{ module.color }}"></i>
|
|
</div>
|
|
<h5 class="card-title">{{ module.name }}</h5>
|
|
<p class="card-text text-muted">{{ module.description }}</p>
|
|
<a href="{{ module.url }}" class="btn btn-{{ module.color }} btn-sm">
|
|
<i class="fas fa-arrow-right"></i> Open Module
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
|
|
<!-- Recent Activity Section -->
|
|
<div class="row mt-5">
|
|
<div class="col-12">
|
|
<div class="card shadow-sm">
|
|
<div class="card-header bg-light border-bottom">
|
|
<h5 class="card-title mb-0">
|
|
<i class="fas fa-history"></i> Recent Activity
|
|
</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
<p class="text-muted text-center py-4">
|
|
<i class="fas fa-inbox"></i> No recent activity
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|