udpdated vier and checked some documentation

This commit is contained in:
ske087
2025-12-01 23:48:09 +02:00
parent f710c85102
commit 5905c693e6
9 changed files with 653 additions and 78 deletions

View File

@@ -3976,19 +3976,18 @@ def api_daily_mirror_history_data():
# Help/Documentation Routes
@bp.route('/help')
@bp.route('/help/<page>')
def help(page='index'):
def help(page='dashboard'):
"""Display help documentation from Markdown files"""
import markdown
import os
# Map page names to markdown files
doc_files = {
'index': 'index.md',
'dashboard': 'dashboard.md',
'print_module': 'print_module.md',
'upload_data': 'upload_data.md',
'view_orders': 'view_orders.md',
'print_lost_labels': 'print_lost_labels.md'
'print_lost_labels': 'print_lost_labels.md',
'daily_mirror': 'daily_mirror.md',
'etichete': 'etichete.md'
}
# Get the markdown file path
@@ -3996,7 +3995,7 @@ def help(page='index'):
return render_template('docs/help_viewer.html',
error=f"Documentația pentru '{page}' nu a fost găsită.")
doc_path = os.path.join(current_app.static_folder, 'docs', doc_files[page])
doc_path = os.path.join(current_app.root_path, 'static', 'docs', doc_files[page])
try:
# Read and convert markdown to HTML

View File

@@ -0,0 +1,297 @@
# Daily Mirror - Ghid de Utilizare
## Prezentare Generală
Daily Mirror este modulul de raportare și analiză a producției care oferă o vedere de ansamblu completă asupra activităților zilnice, performanței operatorilor și indicatorilor cheie de producție.
## Cum să Accesați Daily Mirror
1. Din dashboard, accesați **Daily Mirror** din meniul lateral
2. Sau folosiți butonul de acces rapid "Daily Mirror Dashboard"
**Notă**: Trebuie să aveți permisiuni pentru modulul Daily Mirror pentru a-l accesa.
---
## Secțiuni Principale
### 1. Dashboard Principal (Daily Mirror Main)
Ecranul principal oferă o vedere de ansamblu zilnică cu:
#### Indicatori Cheie (KPIs)
- **📦 Comenzi Totale**: Numărul total de comenzi procesate în ziua curentă
- **🚀 Producție Lansată**: Cantitatea de produse lansate în producție
- **✅ Producție Finalizată**: Cantitatea de produse finalizate
- **📤 Comenzi Livrate**: Numărul de comenzi livrate către clienți
- **👥 Operatori Activi**: Numărul de operatori care au lucrat în ziua respectivă
#### Grafice Interactive
**Grafic Producție pe Oră**
- Vizualizează volumul de producție pe parcursul zilei
- Identifică orele de vârf de producție
- Monitorizează tendințele de performanță
**Grafic Eficiență Producție**
- Rata de lansare în producție
- Rata de finalizare
- Rata de livrare
- Comparație cu obiectivele stabilite
**Grafic Performanță Operatori**
- Top operatori după cantitate procesată
- Analiza productivității individuale
- Identificarea operatorilor cu performanță ridicată
### 2. Istoric Producție (Daily Mirror History)
Această secțiune permite analiza datelor istorice:
#### Filtrare Date
1. **Selectați Perioada**:
- Utilizați selectorii de dată pentru început și sfârșit
- Opțiuni rapide: Astăzi, Ultima săptămână, Luna curentă
2. **Filtre Avansate**:
- Filtrare după operator
- Filtrare după comandă
- Filtrare după client
- Filtrare după status
#### Vizualizare Tendințe
- **Grafic Trend Producție**: Vezi evoluția producției în timp
- **Comparație Perioade**: Compară performanța între diferite perioade
- **Analiza Sezonieră**: Identifică fluctuații sezoniere
#### Export Date
- **Export Excel**: Descarcă rapoarte complete în format Excel
- **Export PDF**: Generează rapoarte printabile
- **Export CSV**: Exportă date brute pentru analiză
### 3. Construire Bază de Date (Build Database)
Funcție administrativă pentru gestionarea datelor:
#### Când să Utilizați
- Dacă datele nu se afișează corect
- După o resetare de sistem
- Pentru rebuild complet al datelor de raportare
#### Cum să Utilizați
1. Accesați secțiunea "Build Database"
2. Selectați tipul de rebuild:
- **Rebuild Complet**: Reconstruiește toate datele
- **Rebuild Incremental**: Actualizează doar datele noi
3. Confirmați acțiunea
4. Așteptați finalizarea procesului (poate dura câteva minute)
**⚠️ ATENȚIE**: Această operațiune poate dura timp îndelungat pentru volume mari de date.
---
## Interpretarea Datelor
### Indicatori de Performanță
#### Rata de Lansare
```
Rata de Lansare = (Producție Lansată / Comenzi Totale) × 100%
```
- **Verde (>90%)**: Performanță excelentă
- **Galben (70-90%)**: Performanță acceptabilă
- **Roșu (<70%)**: Necesită atenție
#### Rata de Finalizare
```
Rata de Finalizare = (Producție Finalizată / Producție Lansată) × 100%
```
- **Verde (>85%)**: Eficiență ridicată
- **Galben (60-85%)**: Necesită îmbunătățiri
- **Roșu (<60%)**: Probleme semnificative
#### Rata de Livrare
```
Rata de Livrare = (Comenzi Livrate / Producție Finalizată) × 100%
```
- **Verde (>95%)**: Livrări la timp
- **Galben (80-95%)**: Întârzieri minore
- **Roșu (<80%)**: Probleme de livrare
### Cod Culori pentru Grafice
- 🟦 **Albastru**: Comenzi procesate
- 🟩 **Verde**: Producție finalizată
- 🟨 **Galben**: Producție în curs
- 🟥 **Roșu**: Comenzi cu probleme
---
## Funcții Avansate
### 1. Alerte Automate
Sistemul generează alerte automate pentru:
- ⚠️ **Scăderea producției**: Când producția scade sub pragul normal
- ⚠️ **Întârzieri**: Când comenzile depășesc termenul de livrare
- ⚠️ **Calitate**: Când rata de reject crește
- ⚠️ **Operatori**: Când performanța scade semnificativ
### 2. Comparație cu Obiectivele
Setați obiective zilnice/lunare și monitorizați:
- Progresul față de obiectiv în timp real
- Estimări pentru îndeplinirea obiectivelor
- Sugestii pentru îmbunătățire
### 3. Rapoarte Programate
Configurați rapoarte automate:
1. Accesați Settings > Daily Mirror Settings
2. Selectați "Scheduled Reports"
3. Configurați:
- Frecvența (zilnic, săptămânal, lunar)
- Destinatarii email
- Tipul de raport
- Format (PDF/Excel)
---
## Best Practices
### Pentru Operatori
**Actualizați statusul comenzilor prompt**
- Marcați comenzile ca "În producție" imediat ce începeți lucrul
- Actualizați progresul regulat
- Marcați finalizarea imediat după terminare
**Verificați datele introduse**
- Asigurați-vă că cantitățile sunt corecte
- Verificați codurile de produs
- Confirmați datele clientului
### Pentru Manageri
**Monitorizați dashboard-ul zilnic**
- Verificați indicatorii cheie dimineața
- Monitorizați progresul pe parcursul zilei
- Analizați rezultatele la sfârșitul zilei
**Analizați tendințele săptămânal**
- Identificați pattern-uri de performanță
- Ajustați planificarea producției
- Oferiți feedback operatorilor
**Generați rapoarte lunar**
- Raport complet de performanță
- Comparație cu lunile anterioare
- Planificare pentru luna următoare
---
## Rezolvare Probleme
### Problema: Date Lipsă pe Dashboard
**Soluții**:
1. ✓ Verificați conexiunea la internet
2. ✓ Reîncărcați pagina (F5)
3. ✓ Verificați dacă datele au fost introduse corect
4. ✓ Rulați "Build Database" pentru a regenera datele
5. ✓ Contactați administratorul dacă problema persistă
### Problema: Graficele Nu Se Încarcă
**Soluții**:
1. ✓ Curățați cache-ul browserului (CTRL+SHIFT+DEL)
2. ✓ Verificați conexiunea la internet
3. ✓ Încercați un alt browser
4. ✓ Dezactivați extensiile de browser temporar
5. ✓ Verificați firewall-ul companiei
### Problema: Export-ul Nu Funcționează
**Soluții**:
1. ✓ Verificați permisiunile de descărcare în browser
2. ✓ Asigurați-vă că nu blocați pop-up-uri
3. ✓ Verificați spațiul disponibil pe disc
4. ✓ Încercați alt format de export (Excel → PDF)
### Problema: Cifre Incorecte în Rapoarte
**Soluții**:
1. ✓ Verificați perioada selectată
2. ✓ Confirmați filtrele aplicate
3. ✓ Rulați "Build Database" pentru refresh
4. ✓ Verificați datele sursă în modulul de comenzi
5. ✓ Contactați administratorul pentru verificare
---
## Tips & Tricks
💡 **Sfat**: Folosiți filtrele rapide pentru a accesa rapid date specifice (Astăzi, Săptămâna asta, Luna asta).
💡 **Sfat**: Exportați rapoartele zilnice la sfârșitul fiecărei zile pentru evidență.
💡 **Sfat**: Setați alerte personalizate pentru indicatorii care vă interesează cel mai mult.
💡 **Sfat**: Folosiți graficele interactive - click pe elemente pentru detalii suplimentare.
💡 **Sfat**: Adăugați Daily Mirror la favorite în browser pentru acces rapid.
---
## Întrebări Frecvente
**Î: Cât de des se actualizează datele?**
R: Datele se actualizează în timp real. Dashboard-ul se reîmprospătează automat la fiecare 30 de secunde.
**Î: Pot vedea date de acum o lună?**
R: Da, folosiți secțiunea "Daily Mirror History" și selectați perioada dorită.
**Î: Cum export datele pentru mai multe luni?**
R: Selectați perioada dorită în History și folosiți butonul "Export Excel" pentru export complet.
**Î: Pot compara performanța între operatori?**
R: Da, graficul "Performanță Operatori" afișează comparație directă. Pentru analiză detaliată, exportați datele în Excel.
**Î: Ce fac dacă datele nu corespund cu realitatea?**
R: Rulați "Build Database" pentru a regenera datele. Dacă problema persistă, contactați administratorul.
**Î: Pot seta alerte personalizate?**
R: Da, accesați Settings > Daily Mirror > Alerts și configurați alertele dorite.
**Î: Cum printez un raport?**
R: Exportați raportul ca PDF și apoi printați folosind opțiunile standard ale browserului (CTRL+P).
---
## Suport Tehnic
Pentru asistență suplimentară sau raportarea problemelor:
- 📧 Email: support@quality-app.com
- 📞 Telefon: Contact administratorul de sistem
- 💬 Chat: Folosiți funcția de chat din aplicație (dacă este disponibilă)
---
## Actualizări și Noutăți
**Versiunea 2.0 (Decembrie 2025)**
- ✨ Dashboard îmbunătățit cu grafice interactive
- ✨ Export în multiple formate (Excel, PDF, CSV)
- ✨ Alerte automate configurabile
- ✨ Analiză avansată a tendințelor
- ✨ Suport pentru mod întunecat (dark mode)

View File

@@ -0,0 +1,331 @@
# Modul Etichete - Ghid de Utilizare
## Prezentare Generală
Modulul Etichete este centrul de comandă pentru gestionarea completă a etichetelor de producție. Acesta oferă acces rapid la toate funcționalitățile necesare pentru procesarea comenzilor și generarea etichetelor.
## Cum să Accesați Modulul Etichete
1. Din dashboard principal, accesați **Etichete** din meniul lateral
2. Sau folosiți butonul de acces rapid "Labels Module"
**Notă**: Trebuie să aveți permisiuni pentru modulul de etichete pentru a-l accesa.
---
## Secțiuni Principale
Modulul Etichete este organizat în carduri funcționale care oferă acces rapid la diferite operațiuni:
### 1. View Orders (Vizualizare Comenzi)
Această secțiune vă permite să gestionați comenzile și datele pentru etichete.
#### Upload Orders (Încărcare Comenzi)
**Descriere**: Încărcați comenzi noi în sistem din fișiere Excel sau CSV.
**Cum să utilizați**:
1. Click pe butonul **"Upload Orders"**
2. Selectați fișierul cu comenzile (format: `.xlsx`, `.xls`, sau `.csv`)
3. Verificați preview-ul datelor
4. Confirmați încărcarea
**Câmpuri Necesare în Fișier**:
- `comanda_productie` - Număr comandă de producție
- `cod_articol` - Cod articol produs
- `descr_com_prod` - Descriere comandă producție
- `cantitate` - Cantitate comandată
- `data_livrare` - Data livrare
- `customer_name` - Nume client
- `customer_article_number` - Număr articol client
**Formate Acceptate**:
- 📊 **Excel**: `.xlsx`, `.xls`
- 📄 **CSV**: `.csv` (UTF-8)
**Tips**:
- 💡 Verificați întotdeauna preview-ul înainte de confirmare
- 💡 Asigurați-vă că toate coloanele necesare sunt prezente
- 💡 Datele duplicate vor fi ignorate
#### View Orders (Vizualizare Comenzi)
**Descriere**: Vizualizați și gestionați comenzile existente în sistem.
**Funcționalități**:
- 📋 Lista completă a tuturor comenzilor
- 🔍 Căutare și filtrare avansată
- ✏️ Editare comenzi existente
- 🗑️ Ștergere comenzi
- 📊 Vizualizare status producție
**Filtre Disponibile**:
- Filtrare după număr comandă
- Filtrare după client
- Filtrare după data livrare
- Filtrare după status (activ/inactiv)
**Acțiuni Disponibile**:
- ✏️ **Edit**: Modificați detaliile comenzii
- 🖨️ **Print**: Generați etichete pentru comandă
- 🗑️ **Delete**: Ștergeți comanda din sistem
- 👁️ **View**: Vedeți detalii complete
---
### 2. Printing Module (Modul de Printare)
Centrul pentru toate operațiunile de printare a etichetelor.
#### Launch Printing Module
**Descriere**: Deschide modulul principal de printare pentru generarea etichetelor standard.
**Când să utilizați**:
- Pentru printarea etichetelor pentru comenzi noi
- Pentru reprintarea etichetelor existente
- Pentru generarea etichetelor în lot
**Pași de utilizare**:
1. **Click pe "Launch Printing Module"**
2. **Selectați comanda** din lista disponibilă
3. **Configurați opțiunile de printare**:
- Selectați produsele
- Specificați cantitățile
- Alegeți formatul etichetelor
4. **Generați etichetele**
5. **Printați** automat sau descărcați PDF
**Opțiuni de Printare**:
- 🖨️ **Printare Automată**: Trimite direct la imprimantă
- 💾 **Download PDF**: Salvează ca PDF pentru printare ulterioară
- 📄 **Preview**: Vizualizează înainte de printare
#### Launch Lost Labels Printing Module
**Descriere**: Modul special pentru reprintarea etichetelor pierdute sau deteriorate.
**Când să utilizați**:
- Etichete pierdute în producție
- Etichete deteriorate sau ilizibile
- Etichete printate incorect
**Caracteristici Speciale**:
- 🔍 Căutare rapidă după număr comandă
- 🎯 Selectare precisă a etichetelor necesare
- 📝 Tracking pentru etichete reprinate
- ⚠️ Alertă pentru printări multiple
**Pași de utilizare**:
1. **Click pe "Launch lost labels printing module"**
2. **Introduceți numărul comenzii**
3. **Selectați produsele** pentru care aveți nevoie de etichete
4. **Specificați motivul** reprintării (opțional)
5. **Generați și printați** etichetele
---
## Fluxul de Lucru Recomandat
### Pentru Comenzi Noi
```
1. Upload Orders → 2. View Orders (verificare) → 3. Printing Module → 4. Printare
```
**Detaliat**:
1. **Încărcați comenzile** folosind "Upload Orders"
- Pregătiți fișierul cu comenzile noi
- Încărcați și verificați preview-ul
- Confirmați încărcarea
2. **Verificați comenzile** în "View Orders"
- Asigurați-vă că toate datele sunt corecte
- Editați dacă este necesar
- Verificați cantitățile
3. **Generați etichetele** în "Printing Module"
- Selectați comenzile pentru printare
- Configurați opțiunile
- Generați etichetele
4. **Printați etichetele**
- Printare automată sau download PDF
- Verificați calitatea printării
- Atașați etichetele la produse
### Pentru Etichete Pierdute
```
1. Lost Labels Module → 2. Căutare Comandă → 3. Selectare → 4. Reprintare
```
**Detaliat**:
1. **Accesați modulul** de etichete pierdute
2. **Căutați comanda** specifică
3. **Selectați produsele** necesare
4. **Reprintați** etichetele
---
## Funcționalități Avansate
### 1. Procesare în Lot (Batch Processing)
Pentru comenzi multiple:
1. Accesați "View Orders"
2. Selectați multiple comenzi (checkbox-uri)
3. Click pe "Batch Actions"
4. Alegeți acțiunea dorită:
- 🖨️ Print All
- ✏️ Bulk Edit
- 🗑️ Delete Selected
### 2. Export și Raportare
Exportați date pentru analiză:
- **Export Excel**: Date complete comenzi
- **Export CSV**: Pentru procesare externă
- **Print Reports**: Rapoarte printabile
- **Statistics**: Statistici de utilizare
## Integrări și Automatizări
### QZ Tray
QZ Tray este necesar pentru comunicarea cu imprimanta:
1. Descărcați și instalați QZ Tray
2. Verificați că rulează (iconiță în system tray)
3. Extensia Chrome se va conecta automat
---
## Rezolvare Probleme
### Problema: Nu pot încărca fișierul cu comenzi
**Soluții**:
1. ✓ Verificați formatul fișierului (Excel sau CSV)
2. ✓ Asigurați-vă că toate coloanele necesare există
3. ✓ Verificați că fișierul nu este corupt
4. ✓ Încercați să salvați fișierul din nou
5. ✓ Verificați dimensiunea fișierului (max 10MB)
### Problema: Comenzile nu apar în listă
**Soluții**:
1. ✓ Reîmprospătați pagina (F5)
2. ✓ Verificați filtrele aplicate
3. ✓ Asigurați-vă că încărcarea s-a finalizat cu succes
4. ✓ Verificați conexiunea la baza de date
5. ✓ Contactați administratorul
### Problema: Nu pot printa etichete
**Soluții**:
1. ✓ Verificați că imprimanta este pornită
2. ✓ Verificați instalarea extensiei Chrome
3. ✓ Verificați că QZ Tray rulează
4. ✓ Testați cu download PDF mai întâi
5. ✓ Restartați browserul
### Problema: Etichete printate incorect
**Soluții**:
1. ✓ Verificați setările imprimantei
2. ✓ Verificați formatul etichetelor selectat
3. ✓ Testați cu o singură etichetă mai întâi
4. ✓ Verificați template-ul utilizat
5. ✓ Recalibrați imprimanta
---
## Tips & Tricks
💡 **Sfat**: Folosiți preview-ul înainte de fiecare încărcare pentru a evita erorile.
💡 **Sfat**: Folosiți căutarea rapidă (CTRL+F) în lista de comenzi pentru a găsi rapid comenzile.
💡 **Sfat**: Exportați lista de comenzi săptămânal pentru evidență.
💡 **Sfat**: Verificați zilnic comenzile cu status "pending" pentru a evita întârzierile.
💡 **Sfat**: Folosiți modulul de etichete pierdute pentru tracking-ul reprintărilor.
---
## Scurtături de Tastatură
Accelerați lucrul cu aceste scurtături:
- **CTRL + U**: Deschide Upload Orders
- **CTRL + V**: Deschide View Orders
- **CTRL + P**: Deschide Printing Module
- **CTRL + L**: Deschide Lost Labels Module
- **CTRL + F**: Căutare în lista de comenzi
- **ESC**: Închide dialog-uri/ferestre
---
## Întrebări Frecvente
**Î: Ce format trebuie să aibă fișierul cu comenzi?**
R: Acceptăm Excel (.xlsx, .xls) și CSV (.csv). Fișierul trebuie să conțină coloanele standard: comanda_productie, cod_articol, cantitate, etc.
**Î: Pot edita o comandă după încărcare?**
R: Da, accesați "View Orders", găsiți comanda și click pe butonul "Edit".
**Î: Cât timp rămân comenzile în sistem?**
R: Comenzile rămân permanent până sunt șterse manual sau arhivate de administrator.
**Î: Pot printa etichete pentru multiple comenzi simultan?**
R: Da, folosiți funcția "Batch Print" din View Orders.
**Î: Ce fac dacă o etichetă s-a deteriorat?**
R: Folosiți "Lost Labels Printing Module" pentru reprintare rapidă.
**Î: Pot personaliza template-urile de etichete?**
R: Momentan nu, dar funcționalitatea este în dezvoltare. Contactați administratorul pentru cerințe speciale.
**Î: Cum verific câte etichete am printat pentru o comandă?**
R: În "View Orders", click pe comandă pentru a vedea istoricul complet de printare.
---
## Suport și Asistență
Pentru ajutor suplimentar:
- 📚 Consultați documentația detaliată a fiecărui modul
- 💬 Contactați administratorul de sistem
- 📧 Email: support@quality-app.com
- 📞 Telefon: Verificați în Settings pentru numărul de contact
---
## Actualizări Recente
**Decembrie 2025**
- ✨ Interfață îmbunătățită pentru modul etichete
- ✨ Suport pentru formate multiple de fișiere
- ✨ Funcție de reprintare etichete pierdute
- ✨ Integrare îmbunătățită cu QZ Tray
- ✨ Validare automată date la încărcare
**Viitor**
- 🔜 Gestionare template-uri personalizate
- 🔜 Printare QR codes
- 🔜 Integrare cu sistem WMS
- 🔜 Aplicație mobilă pentru scanare

View File

@@ -331,6 +331,13 @@
{% endblock %}
{% block content %}
<!-- Floating Help Button -->
<div class="floating-help-btn">
<a href="{{ url_for('main.help', page='daily_mirror') }}" target="_blank" title="Ajutor - Daily Mirror">
📖
</a>
</div>
<div class="container-fluid">
<!-- Dashboard Header -->
<div class="dashboard-header">

View File

@@ -169,10 +169,10 @@
<div class="help-navigation">
<strong>Documentație disponibilă:</strong>
<a href="{{ url_for('main.help', page='dashboard') }}">Dashboard</a>
<a href="{{ url_for('main.help', page='etichete') }}">Modul Etichete</a>
<a href="{{ url_for('main.help', page='print_module') }}">Print Module</a>
<a href="{{ url_for('main.help', page='upload_data') }}">Upload Data</a>
<a href="{{ url_for('main.help', page='view_orders') }}">View Orders</a>
<a href="{{ url_for('main.help', page='print_lost_labels') }}">Print Lost Labels</a>
<a href="{{ url_for('main.help', page='daily_mirror') }}">Daily Mirror</a>
</div>
<div class="help-content">

View File

@@ -3,6 +3,13 @@
{% block title %}Modul Etichete{% endblock %}
{% block content %}
<!-- Floating Help Button -->
<div class="floating-help-btn">
<a href="{{ url_for('main.help', page='etichete') }}" target="_blank" title="Ajutor - Modul Etichete">
📖
</a>
</div>
<div class="etichete-container">
<h1>Modul Etichete</h1>
<p>Aceasta este pagina pentru gestionarea etichetelor.</p>

View File

@@ -367,7 +367,7 @@
<!-- Full Database Restore Section (Superadmin Only) -->
{% if session.role == 'superadmin' %}
<div style="margin-top: 16px; padding: 16px; background: var(--warning-bg, rgba(255, 87, 34, 0.1)); border: 1px solid #ff5722; border-radius: 8px;">
<div style="grid-column: 1 / -1; margin-top: 16px; padding: 16px; background: var(--warning-bg, rgba(255, 87, 34, 0.1)); border: 1px solid #ff5722; border-radius: 8px;">
<h4 style="margin: 0 0 12px 0; color: var(--text-primary, #333); display: flex; align-items: center; gap: 8px;">
<span>🔄 Full Database Restore</span>
<span style="background: #ff5722; color: white; font-size: 0.65em; padding: 3px 8px; border-radius: 4px; font-weight: 600;">SUPERADMIN</span>
@@ -400,7 +400,7 @@
{% endif %}
<!-- Info -->
<div style="margin-top: 12px; padding: 10px; background: var(--info-bg, rgba(76, 175, 80, 0.1)); border-left: 4px solid #4caf50; border-radius: 4px; font-size: 0.85em;">
<div style="grid-column: 1 / -1; margin-top: 12px; padding: 10px; background: var(--info-bg, rgba(76, 175, 80, 0.1)); border-left: 4px solid #4caf50; border-radius: 4px; font-size: 0.85em;">
<strong>💾 Location:</strong> <code style="background: var(--code-bg, rgba(0,0,0,0.05)); padding: 2px 6px; border-radius: 3px;">/srv/quality_app/backups</code>
</div>
</div>

View File

@@ -8,4 +8,5 @@ reportlab
requests
pandas
openpyxl
APScheduler
APScheduler
Markdown

View File

@@ -1,67 +0,0 @@
/* Theme variables for popup and cards */
:root {
--app-overlay-bg: rgba(30,41,59,0.85);
--app-card-bg: #f8fafc;
--app-card-text: #1e293b;
--app-input-bg: #e2e8f0;
--app-input-text: #1e293b;
--app-label-text: #334155;
}
body.light-mode {
background: #f8fafc;
color: #1e293b;
}
body.dark-mode {
background: #1e293b;
color: #f8fafc;
}
.popup {
background: var(--app-overlay-bg) !important;
}
.popup-content {
background: var(--app-card-bg) !important;
color: var(--app-card-text) !important;
}
.popup-content label,
#user-popup-title {
color: var(--app-label-text) !important;
}
.popup-content input,
.popup-content select {
background: var(--app-input-bg) !important;
color: var(--app-input-text) !important;
border: 1px solid #cbd5e1;
border-radius: 4px;
padding: 8px;
margin-bottom: 12px;
width: 90%;
font-size: 1em;
}
.card {
background: var(--app-card-bg);
color: var(--app-card-text);
box-shadow: 0 2px 8px #333;
border-radius: 8px;
}
.btn {
background: #1e293b;
color: #f8fafc;
border: none;
border-radius: 4px;
padding: 8px 16px;
cursor: pointer;
}
.btn.cancel-btn {
background: #e11d48;
color: #fff;
}
/* Label preview card title theme styles */
.label-view-title {
color: var(--app-card-text) !important;
transition: color 0.2s;
}