Metadata-Version: 2.1
Name: django-logmonitor
Version: 1.1.2
Summary: Una aplicación Django para auditar las acciones de los usuarios en tus modelos.
Home-page: https://github.com/JaviPulido/django_logmonitor.git
Author: Javier L. Pulido
Author-email: grupol2st@gmail.com
License: MIT
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 3.2
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.1
Classifier: Framework :: Django :: 4.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: django>=3.2
Requires-Dist: django-admin-list-filter-dropdown>=1.0


# LogMonitor <img src="URL_A_TU_LOGO" width="50" align="right">

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![PyPI version](https://badge.fury.io/py/django-logmonitor.svg)](https://badge.fury.io/py/django-logmonitor)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

**Auditoría completa y sencilla para tus modelos Django.**

LogMonitor es una potente aplicación Django diseñada para simplificar la auditoría de las acciones de los usuarios en tus modelos. Con un enfoque en la facilidad de uso y la flexibilidad, LogMonitor te permite rastrear cada cambio, asegurando la integridad y la transparencia de tus datos.

## ✨ Características Destacadas

*   **Registro Exhaustivo:** Captura cada creación, actualización y eliminación de objetos en tus modelos.
*   **Información Detallada:** Almacena información crucial como el usuario responsable, la fecha y hora exactas, la dirección IP y el navegador utilizado.
*   **Visualización JSON:** Muestra los datos anteriores y nuevos en un formato JSON claro y fácil de interpretar, opción "Copiar JSON" para exportaciones de datos.
*   **Flexibilidad:** Permite excluir modelos y campos específicos de la auditoría para un enfoque personalizado.
*   **Panel de Administración Intuitivo:** Disfruta de una interfaz de administración personalizable que facilita la gestión y el análisis de los registros.
*   **Soporte Multilingüe:** Adapta la aplicación a tus necesidades lingüísticas con soporte para múltiples idiomas.
*   **Filtrado Avanzado:** Utiliza filtros dropdown en el panel de administración para una búsqueda y análisis eficientes de los datos.

## 🚀 Instalación

Instala LogMonitor con un simple comando:

```bash
pip install django-logmonitor
```

## 🛠️ Configuración en solo 2 pasos
1. Añade la aplicación: Agrega 'logmonitor' a tu lista de INSTALLED_APPS en `settings.py`.  

```python
INSTALLED_APPS = [
    ...
    'logmonitor',
]
```

2. Activa el Middleware: Incluye logmonitor.middleware.RequestMiddleware en tu configuración de MIDDLEWARE.
```python
MIDDLEWARE = [
    'logmonitor.middleware.RequestMiddleware',
    ...
]
```

### _(Opcional)_ Personaliza el AdminSite: Si utilizas un AdminSite personalizado (ej. admin_site), registra el modelo LogMonitor.
```python
from logmonitor import register_logmonitor
from tu_proyecto.admin_site import admin_site  # Reemplaza con tu AdminSite

register_logmonitor(admin_site)
```

### _(Opcional)_ Excluye Modelos y Campos: Define qué modelos y campos excluir de la auditoría en `settings.py`.
```python
LOGMONITOR_EXCLUDE_MODELS = ['app.Model', 'otra_app.OtroModel']
LOGMONITOR_EXCLUDE_FIELDS = ['fecha_modificacion', 'campo_interno']
```

 #### **NOTA:** **_Por defecto LogMonitor excluye los modelos: Session, LogEntry, MigrationRecorder.Migration; esto para evitar:_**

* **Registros de auditoría redundantes:** El modelo Session registra información sobre las sesiones de los usuarios, y el modelo LogEntry registra las acciones realizadas en el panel de administración de Django. Auditar estos modelos podría generar una gran cantidad de registros irrelevantes y dificultar la búsqueda de información importante.

* **Problemas de recursión:** Auditar el modelo LogEntry podría generar un bucle infinito, ya que cada vez que se crea un registro en LogEntry, se activaría la señal post_save, lo que generaría otro registro en LogEntry, y así sucesivamente.

* **Información técnica irrelevante para la mayoría de los usuarios:** El modelo MigrationRecorder.Migration registra información sobre las migraciones de la base de datos, que es información técnica que no es relevante para la mayoría de los usuarios.

## ⚙️ Dependencias

Asegúrate de tener instaladas:

*   Django (>=3.2)
---
[django-admin-list-filter-dropdown](https://github.com/mrts/django-admin-list-filter-dropdown) (>=1.0): _Proporcionada por [Mart Sõmermaa](https://github.com/mrts)_.  Esta librería facilita la creación de filtros dropdown en el panel de administración de Django, y LogMonitor la incluye para mejorar la experiencia de usuario al filtrar los registros de auditoría.
**LogMonitor gestiona esta librería internamente, por lo que no es necesario añadirla a tu `INSTALLED_APPS` a menos que la estés utilizando directamente en otras partes de tu proyecto.**

## 🤝 Contribución
¡Tu ayuda es bienvenida! Si encuentras errores, tienes sugerencias o quieres añadir nuevas características, no dudes en abrir un issue o enviar un pull request.

## 📄 Licencia
Este proyecto se distribuye bajo la Licencia MIT. Consulta el archivo LICENSE para obtener más detalles.

Hecho con ❤️ por Javier L. Pulido
