docs: add full documentation for all functions in tienda/views.py

Agent-Logs-Url: https://github.com/dsaub/proyecto-final/sessions/49df17c8-213a-4e23-adfe-465a0104f6a3

Co-authored-by: dsaub <54474838+dsaub@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-04-09 10:35:28 +00:00
committed by GitHub
parent 47ea00c822
commit ed92991872
66 changed files with 2580 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# `add_to_cart`
**Archivo:** `tienda/views.py`
**URL:** `/tienda/carrito/agregar/<product_id>/`
**Tipo:** Vista pública
## Descripción
Agrega un producto al carrito del usuario (autenticado o anónimo). Antes de añadir, cancela cualquier reserva de stock activa para que el inventario se recalcule limpiamente.
- Si el producto ya existe en el carrito, incrementa la cantidad.
- Valida que la cantidad resultante no supere el stock disponible.
- Si la petición incluye la cabecera `X-Requested-With: XMLHttpRequest`, devuelve una respuesta JSON en lugar de redirigir.
## Firma
```python
def add_to_cart(request: HttpRequest, product_id: int):
```
## Parámetros
| Nombre | Tipo | Descripción |
|--------------|---------------|----------------------------------|
| `request` | `HttpRequest` | Petición HTTP de Django. |
| `product_id` | `int` | ID del producto a agregar. |
## Parámetros POST
| Campo | Tipo | Por defecto | Descripción |
|------------|-------|-------------|--------------------------|
| `quantity` | `int` | `1` | Cantidad a agregar. |
## Redirecciones
| Caso | Destino |
|---------------------------------|--------------------------|
| Éxito (no AJAX) | `view_cart` |
| Stock insuficiente / cantidad inválida | `producto` (detalle del producto) |
| Producto no encontrado | `index` |
## Respuesta AJAX
```json
{
"success": true,
"cart_count": 3,
"message": "..."
}
```