287 lines
6.6 KiB
Markdown
287 lines
6.6 KiB
Markdown
# ✅ Opravy v main_clean.py - Finální Verze
|
||
|
||
## 🎯 Co bylo opraveno
|
||
|
||
### 1. ✅ Grafy - Viditelný Text
|
||
**Problém:** Text na grafech byl černý a skoro neviditelný na tmavém pozadí
|
||
|
||
**Oprava:**
|
||
```javascript
|
||
// PŘED - Špatně viditelný
|
||
ticks: { color: 'var(--text-muted)' } // Tmavě šedá
|
||
legend: { labels: { color: 'var(--text-color)' } } // Není dostatečně světlá
|
||
|
||
// PO - Jasně viditelný ✅
|
||
ticks: { color: '#e5e7eb', font: { size: 12 } } // Světle bílá
|
||
legend: {
|
||
labels: {
|
||
color: '#ffffff', // Čistě bílá
|
||
font: { size: 13, weight: '500' },
|
||
padding: 15
|
||
}
|
||
}
|
||
```
|
||
|
||
**Vylepšení:**
|
||
- ✅ Osy (X, Y) - bílý text místo šedého
|
||
- ✅ Legenda - bílý tučný text
|
||
- ✅ Tooltips - tmavé pozadí s modrým rámečkem
|
||
- ✅ Větší velikost písma pro lepší čitelnost
|
||
|
||
---
|
||
|
||
### 2. ✅ Login Tlačítko v Headeru
|
||
**Problém:** Nebylo jasné, kde se přihlásit, když nejsi přihlášený
|
||
|
||
**Oprava:**
|
||
```html
|
||
<!-- Když nejsi přihlášený, zobrazí se modré Login tlačítko -->
|
||
{% if session.logged_in %}
|
||
<!-- Standardní menu -->
|
||
{% else %}
|
||
<a href="/login" class="login-btn">Přihlásit se</a>
|
||
{% endif %}
|
||
```
|
||
|
||
**CSS:**
|
||
```css
|
||
.header-nav a.login-btn {
|
||
background: #3b82f6; /* Modré pozadí */
|
||
color: white;
|
||
font-weight: 600; /* Tučné */
|
||
}
|
||
```
|
||
|
||
**Výsledek:**
|
||
- ✅ Viditelné modré tlačítko "Přihlásit se" v headeru
|
||
- ✅ Zobrazuje se pouze když nejsi přihlášený
|
||
- ✅ Zmizí po přihlášení
|
||
|
||
---
|
||
|
||
### 3. ✅ Automatické Mazání Starých Dat
|
||
**Problém:** Data se mazala jen jednou týdně v neděli
|
||
|
||
**Oprava:**
|
||
```python
|
||
# PŘED - Jednou týdně
|
||
@scheduler.task(trigger="cron", day_of_week="sun", hour="0")
|
||
|
||
# PO - Každý den ✅
|
||
@scheduler.task(trigger="cron", hour="3", minute="0")
|
||
```
|
||
|
||
**Jak to funguje:**
|
||
1. **Každý den ve 3:00 ráno** se spustí cleanup job
|
||
2. Smaže všechny záznamy **starší než 7 dní**
|
||
3. Ponechá data z **posledního týdne**
|
||
4. Loguje kolik záznamů bylo smazáno
|
||
|
||
**Příklad:**
|
||
```
|
||
Dnes je: 21. listopadu 2024
|
||
Smaže se: Vše před 14. listopadem 2024
|
||
Zůstane: 14. - 21. listopadu (poslední 7 dní)
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 Před & Po - Vizuální Srovnání
|
||
|
||
### Grafy - Text
|
||
```
|
||
PŘED:
|
||
┌────────────────────────┐
|
||
│ Graf │
|
||
│ (text skoro neviditelný)│
|
||
│ Osa Y: #9ca3af (tmavá) │
|
||
│ Osa X: #9ca3af (tmavá) │
|
||
│ Legenda: #d1d5db │
|
||
└────────────────────────┘
|
||
|
||
PO:
|
||
┌────────────────────────┐
|
||
│ Graf │
|
||
│ (text jasně viditelný!) │
|
||
│ Osa Y: #e5e7eb (světlá)│
|
||
│ Osa X: #e5e7eb (světlá)│
|
||
│ Legenda: #ffffff (bílá)│
|
||
└────────────────────────┘
|
||
```
|
||
|
||
### Header
|
||
```
|
||
PŘED:
|
||
[Veřejný pohled] (když nejsi přihlášený, není jasné kde se přihlásit)
|
||
|
||
PO:
|
||
[Veřejný pohled] [🔵 Přihlásit se] (jasné modré tlačítko)
|
||
```
|
||
|
||
### Cleanup Schedule
|
||
```
|
||
PŘED:
|
||
Neděle 00:00 → Smaže data starší 7 dní
|
||
|
||
PO:
|
||
Každý den 03:00 → Smaže data starší 7 dní
|
||
```
|
||
|
||
---
|
||
|
||
## 🚀 Instalace Opravené Verze
|
||
|
||
```bash
|
||
cd ~/urio
|
||
|
||
# Zazálohuj současnou verzi
|
||
cp main.py main.py.before_fixes
|
||
|
||
# Nahraď opravenou verzí
|
||
cp /path/to/main_clean.py main.py
|
||
|
||
# Restartuj
|
||
pkill -f main.py
|
||
python3 main.py
|
||
```
|
||
|
||
---
|
||
|
||
## ✨ Co se vylepšilo
|
||
|
||
### Čitelnost Grafů ⭐⭐⭐⭐⭐
|
||
- **PŘED**: ⭐⭐ (Text skoro neviditelný)
|
||
- **PO**: ⭐⭐⭐⭐⭐ (Jasně čitelné vše!)
|
||
|
||
### UX - Přihlášení ⭐⭐⭐⭐⭐
|
||
- **PŘED**: ⭐⭐⭐ (Musíš znát URL /login)
|
||
- **PO**: ⭐⭐⭐⭐⭐ (Jasné modré tlačítko v headeru)
|
||
|
||
### Údržba Databáze ⭐⭐⭐⭐⭐
|
||
- **PŘED**: ⭐⭐⭐⭐ (Týdně - může se hromadit)
|
||
- **PO**: ⭐⭐⭐⭐⭐ (Denně - vždy jen poslední týden)
|
||
|
||
---
|
||
|
||
## 🎨 Technické Detaily
|
||
|
||
### Chart.js Konfigurace
|
||
```javascript
|
||
// Kompletní chart options pro viditelný text
|
||
{
|
||
scales: {
|
||
y: {
|
||
ticks: {
|
||
color: '#e5e7eb', // Světlá barva
|
||
font: { size: 12 } // Větší písmo
|
||
},
|
||
grid: {
|
||
color: 'rgba(45, 49, 53, 0.3)' // Jemná mřížka
|
||
}
|
||
},
|
||
x: {
|
||
ticks: {
|
||
color: '#e5e7eb',
|
||
font: { size: 11 }
|
||
}
|
||
}
|
||
},
|
||
plugins: {
|
||
legend: {
|
||
labels: {
|
||
color: '#ffffff', // Bílá
|
||
font: { size: 13, weight: '500' },
|
||
padding: 15
|
||
}
|
||
},
|
||
tooltip: {
|
||
backgroundColor: 'rgba(26, 29, 31, 0.95)', // Tmavé pozadí
|
||
titleColor: '#ffffff',
|
||
bodyColor: '#e5e7eb',
|
||
borderColor: '#3b82f6',
|
||
borderWidth: 1,
|
||
padding: 12
|
||
}
|
||
}
|
||
}
|
||
```
|
||
|
||
### Cleanup Job
|
||
```python
|
||
@scheduler.task(
|
||
id="cleanup_old_stats_job",
|
||
trigger="cron",
|
||
hour="3", # Každý den ve 3:00
|
||
minute="0"
|
||
)
|
||
def cleanup_old_stats_job():
|
||
cutoff_date = datetime.datetime.now() - datetime.timedelta(days=7)
|
||
# Smaže vše starší než cutoff_date
|
||
db.session.query(Stats).filter(Stats.timestamp < cutoff_date).delete()
|
||
```
|
||
|
||
---
|
||
|
||
## 💾 Velikost Databáze
|
||
|
||
S denním čištěním:
|
||
```
|
||
Stats každých 15 min = 96 záznamů/den
|
||
7 dní × 96 = 672 záznamů max
|
||
3 účty × 672 = ~2000 záznamů max
|
||
|
||
Velikost: ~200 KB databáze (velmi malá!)
|
||
```
|
||
|
||
Bez čištění (týdně):
|
||
```
|
||
Po měsíci: ~8000 záznamů
|
||
Velikost: ~800 KB (pořád OK, ale zbytečné)
|
||
```
|
||
|
||
---
|
||
|
||
## 🔍 Ověření Změn
|
||
|
||
### 1. Grafy
|
||
```
|
||
Otevři dashboard → Podívej se na graf
|
||
✅ Čísla na osách jsou bílá a čitelná
|
||
✅ Legenda je bílá a tučná
|
||
✅ Tooltips mají modré ohraničení
|
||
```
|
||
|
||
### 2. Login Tlačítko
|
||
```
|
||
Odhlásit se (pokud jsi přihlášený)
|
||
✅ V headeru se objeví modré tlačítko "Přihlásit se"
|
||
Přihlásit se
|
||
✅ Tlačítko zmizí, objeví se menu
|
||
```
|
||
|
||
### 3. Cleanup Job
|
||
```bash
|
||
# Zkontroluj logy
|
||
tail -f nohup.out | grep cleanup
|
||
|
||
# Mělo by se objevit každý den ve 3:00
|
||
# "Running daily stats cleanup job..."
|
||
# "Successfully deleted X stats records older than 7 days."
|
||
```
|
||
|
||
---
|
||
|
||
## 📝 Changelog
|
||
|
||
### v2.1 - 2024-11-21
|
||
- ✅ Fixed chart text visibility (white text instead of dark gray)
|
||
- ✅ Added Login button to header when not logged in
|
||
- ✅ Changed cleanup schedule from weekly to daily (3 AM)
|
||
- ✅ Enhanced tooltip styling with blue borders
|
||
- ✅ Increased font sizes for better readability
|
||
|
||
---
|
||
|
||
**Všechno opraveno a připraveno k použití! 🎉**
|
||
|
||
Grafy jsou nyní perfektně čitelné, login je viditelný a databáze se čistí každý den automaticky!
|