← DokArh Portal
dokument

(bez naziva)

Kreator: genesis Datum: Status:
WeisE3™ ID: (nema)
_header{ "type": "TASK", "id": "c0888", "naziv": "ARHIVA-1.5 — Token Generator UI za QR kampanju", "status": "TODO", "priority": "P1", "autor": "CC Agent", "kreiran": "2026-05-16T22:45:00Z", "sesija": "2026-05-16_fenix_v3_campaign", "procjena_sati": 4, "bloker_za": "QR kampanja launch" }
problem{ "opis": "Dispo i vozači trebaju jednostavan UI da kreiraju QR kodove za upload. Sada je backend spreman (ScanToken model postoji), trebam samo UI.", "uzrok": "Završena je backend struktura ali nedostaje frontend", "impact": "Bez ovoga, vozači ne mogu skenirati QR i uploadati dokumente — kampanja je blokirana" }
specifikacija{ "feature_id": "ARHIVA-1.5", "ruta": "/hr/documents/arhiva/tokens/", "view_klasa": "ScanTokenGeneratorView", "model": "ScanToken (already exists)", "template": "arhiva/token_generator.html" }
sjecisni_dijelovi[ { "dio": 1, "naziv": "View — ScanTokenGeneratorView", "lokacija": "/var/www/fenix-v3/arhiva/views.py", "akcije": [ "- Kreiraj CBV (LoginRequired)", "- GET: prikaži formu + listu aktivnih tokena", "- POST: kreiraj novi ScanToken sa parametrima", " - komitent (FK ili choice)", " - upload_limit (int, default 50)", " - expires_days (int, default 7)", "- Vrni JSON: {token, qr_url, whatsapp_link, expires_at}" ] }, { "dio": 2,
testiranje{ "test_sljedovi": [ "1. Login kao dispo (test korisnik sa kompanijom)", "2. Idi na /hr/documents/arhiva/tokens/", "3. Odaberi komitenta 'Forma Ideale'", "4. Unesi 'upload_limit' = 50", "5. Klikni 'Generiraj QR'", "6. Modal pokazuje QR kod", "7. Klikni 'Copy link' → provjerI je li link u clipboardu", "8. Klikni 'Send WhatsApp' → provjeri je li WhatsApp otvoren", "9. Tablica 'Active tokens' pokazuje novi token sa statusom" ], "provjere": [ "- ScanToke
dependencije[ "- ScanToken model mora biti migriran (trebam provjeriti)", "- qrcode library trebam pip install", "- ScanToken.objects.create() mora raditi" ]
blockers[ "DNS fix — dok se ne fixa limit-connect.com na EU, /beta/ ne radi javno", "Folija middleware instalacija — nije kritično za ovo, ali trebalo bi" ]
acceptance_criteria[ "✓ Form je dostupan na /hr/documents/arhiva/tokens/", "✓ Vozač može kliknuti 'Generiraj QR'", "✓ QR kod se prikazuje i skenira se", "✓ Link 'Copy' kopira URL u clipboard", "✓ WhatsApp button otvara aplikaciju sa predloženum tekstom", "✓ Tablica pokazuje sve aktivne tokene", "✓ Token se ističe nakon 7 dana (ili custom expiry)" ]
napomene{ "arhitektura": "ScanToken je already u modelu, trebam samo UI wrapper", "slicne_komponente": [ "- /hr/companies/ — seznam kompanije (similar pattern)", "- /hr/documents/arhiva/ — list view (copy styling)", "- /beta/manifest.json — već ima QR generator (inspect sources)" ], "performance": "QR je statički, cache 24h. Bez performansnfih briga.", "security": "LoginRequired mixin, CsrfViewMixin (Django default), token je random UUID" }