- 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
84 lines
4.3 KiB
HTML
Executable File
84 lines
4.3 KiB
HTML
Executable File
{% extends "base.html" %}
|
|
|
|
{% block title %}General Settings{% 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-sliders-h"></i> General Settings
|
|
</h1>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<div class="col-md-3">
|
|
<div class="list-group">
|
|
<a href="{{ url_for('settings.general_settings') }}" class="list-group-item list-group-item-action active">
|
|
<i class="fas fa-sliders-h"></i> General Settings
|
|
</a>
|
|
<a href="{{ url_for('settings.user_management') }}" class="list-group-item list-group-item-action">
|
|
<i class="fas fa-users"></i> User Management
|
|
</a>
|
|
<a href="{{ url_for('settings.app_keys') }}" class="list-group-item list-group-item-action">
|
|
<i class="fas fa-key"></i> App Keys
|
|
</a>
|
|
<a href="{{ url_for('settings.database_management') }}" class="list-group-item list-group-item-action">
|
|
<i class="fas fa-cogs"></i> Database Management
|
|
</a>
|
|
<a href="{{ url_for('settings.database_settings') }}" class="list-group-item list-group-item-action">
|
|
<i class="fas fa-database"></i> Database Info
|
|
</a>
|
|
<a href="{{ url_for('settings.logs_explorer') }}" class="list-group-item list-group-item-action">
|
|
<i class="fas fa-file-alt"></i> Logs Explorer
|
|
</a>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-9">
|
|
<div class="card shadow-sm">
|
|
<div class="card-header bg-light">
|
|
<h5 class="mb-0">General Application Settings</h5>
|
|
</div>
|
|
<div class="card-body">
|
|
{% if error %}
|
|
<div class="alert alert-danger alert-dismissible fade show" role="alert">
|
|
<i class="fas fa-exclamation-circle"></i> {{ error }}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
{% endif %}
|
|
|
|
{% if success %}
|
|
<div class="alert alert-success alert-dismissible fade show" role="alert">
|
|
<i class="fas fa-check-circle"></i> {{ success }}
|
|
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
|
</div>
|
|
{% endif %}
|
|
|
|
<form method="POST" action="{{ url_for('settings.general_settings') }}">
|
|
<div class="mb-3">
|
|
<label for="app_name" class="form-label">Application Name <span class="text-danger">*</span></label>
|
|
<input type="text" class="form-control" id="app_name" name="app_name" value="{{ app_name }}" required>
|
|
<small class="form-text text-muted">This name appears in the header and browser title</small>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="app_version" class="form-label">Version</label>
|
|
<input type="text" class="form-control" id="app_version" name="app_version" value="{{ app_version }}" disabled>
|
|
<small class="form-text text-muted">Version cannot be changed</small>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label for="session_timeout" class="form-label">Session Timeout (minutes)</label>
|
|
<input type="number" class="form-control" id="session_timeout" name="session_timeout" value="{{ session_timeout }}" min="1" required>
|
|
<small class="form-text text-muted">Time before user session expires</small>
|
|
</div>
|
|
<button type="submit" class="btn btn-primary">
|
|
<i class="fas fa-save"></i> Save Settings
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|