<br />
<b>Warning</b>:  Undefined variable $auth in <b>/home/pevo0181/public_html/pia-soft.com/cleania/routes/index.php</b> on line <b>542</b><br />
<br />
<b>Warning</b>:  Trying to access array offset on value of type null in <b>/home/pevo0181/public_html/pia-soft.com/cleania/routes/index.php</b> on line <b>542</b><br />
import os
from django.conf import settings
from django.urls import reverse
from django.contrib import messages
from django.utils.safestring import mark_safe

def asset(path):
    """Similaire à asset() de Laravel - Génère le chemin vers les assets"""
    return f"{settings.STATIC_URL}{path}"

def url(route_name, *args, **kwargs):
    """Similaire à url() de Laravel - Génères les URLs"""
    try:
        return reverse(route_name, args=args, kwargs=kwargs)
    except:
        return "#"

def app_name():
    """Retourne le nom de l'application"""
    return "DocuVoice"

def app_description():
    """Retourne la description de l'application"""
    return "Application de conversion PDF en Audio"

def current_year():
    """Retourne l'année en cours"""
    from datetime import datetime
    return datetime.now().year

def auth_user(request):
    """Récupère l'utilisateur connecté"""
    return request.user if request.user.is_authenticated else None

def flash_success(request, message):
    """Helper pour les messages de succès"""
    messages.success(request, message)

def flash_error(request, message):
    """Helper pour les messages d'erreur"""
    messages.error(request, message)

def flash_warning(request, message):
    """Helper pour les messages d'avertissement"""
    messages.warning(request, message)

def flash_info(request, message):
    """Helper pour les messages informatifs"""
    messages.info(request, message)

# Helpers pour les documents
def get_document_status_badge(status):
    """Génère le badge Bootstrap selon le statut"""
    status_map = {
        'pending': ('warning', 'En attente'),
        'processed': ('success', 'Traité'),
        'notified': ('info', 'Notifié')
    }
    color, text = status_map.get(status, ('secondary', status))
    return mark_safe(f'<span class="badge bg-{color}">{text}</span>')

def get_category_badge(category_name):
    """Génère le badge Bootstrap selon la catégorie"""
    color_map = {
        'SIMPLE': 'success',
        'URGENT': 'warning', 
        'TRES URGENT': 'danger'
    }
    color = color_map.get(category_name, 'secondary')
    return mark_safe(f'<span class="badge bg-{color}">{category_name}</span>')

def format_file_size(size_bytes):
    """Formate la taille du fichier en format lisible"""
    if size_bytes == 0:
        return "0 B"
    size_names = ["B", "KB", "MB", "GB"]
    i = 0
    while size_bytes >= 1024 and i < len(size_names) - 1:
        size_bytes /= 1024.0
        i += 