Metadata-Version: 2.1
Name: django-activity-tracker
Version: 1.0.1
Summary: A reusable Django application to track user actions through the database..
Home-page: https://github.com/William-Fernandes252/django-activity-tracker
License: MIT
Author: William Fernandes Dias
Author-email: william.winchester1967@gmail.com
Requires-Python: >=3.8.18,<4.0
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.8
Provides-Extra: dev
Provides-Extra: doc
Provides-Extra: test
Requires-Dist: black (==22.3.0) ; extra == "test"
Requires-Dist: bump2version (>=1.0.1,<2.0.0) ; extra == "dev"
Requires-Dist: django (>=4.2.7,<5.0.0)
Requires-Dist: django-mkdocs (>=0.1.2,<0.2.0) ; extra == "doc"
Requires-Dist: djangorestframework (>=3.14.0,<4.0.0)
Requires-Dist: flake8 (>=3.9.2,<4.0.0) ; extra == "test"
Requires-Dist: flake8-docstrings (>=1.6.0,<2.0.0) ; extra == "test"
Requires-Dist: isort (>=5.8.0,<6.0.0) ; extra == "test"
Requires-Dist: jinja2 (==2.11.1) ; extra == "doc"
Requires-Dist: markupsafe (==2.0.1) ; extra == "doc"
Requires-Dist: mkdocs (>=1.1.2,<2.0.0) ; extra == "doc"
Requires-Dist: mkdocs-autorefs (>=0.2.1,<0.3.0) ; extra == "doc"
Requires-Dist: mkdocs-include-markdown-plugin (>=1.0.0,<2.0.0) ; extra == "doc"
Requires-Dist: mkdocs-macros-plugin (>=1.0.5,<2.0.0) ; extra == "doc"
Requires-Dist: mkdocs-material (>=6.1.7,<7.0.0) ; extra == "doc"
Requires-Dist: mkdocs-material-extensions (>=1.0.1,<2.0.0)
Requires-Dist: mkdocstrings (>=0.15.2,<0.16.0) ; extra == "doc"
Requires-Dist: mypy (>=0.900,<0.901) ; extra == "test"
Requires-Dist: pip (>=20.3.1,<21.0.0) ; extra == "dev"
Requires-Dist: pre-commit (>=2.12.0,<3.0.0) ; extra == "dev"
Requires-Dist: pygments (>=2.16.1,<3.0.0) ; extra == "doc"
Requires-Dist: pymdown-extensions (==8.1.1) ; extra == "doc"
Requires-Dist: pytest (>=7.0.0,<8.0.0) ; extra == "test"
Requires-Dist: pytest-cov (>=2.12.0,<3.0.0) ; extra == "test"
Requires-Dist: pytest-django (>=4.6.0,<5.0.0) ; extra == "test"
Requires-Dist: pytest-drf (>=1.1.3,<2.0.0) ; extra == "test"
Requires-Dist: pytest-mock (>=3.12.0,<4.0.0) ; extra == "test"
Requires-Dist: pytest-testmon (>=2.1.0,<3.0.0) ; extra == "test"
Requires-Dist: pytest-watch (>=4.2.0,<5.0.0) ; extra == "test"
Requires-Dist: pytest-xdist (>=3.3.1,<4.0.0) ; extra == "test"
Requires-Dist: toml (>=0.10.2,<0.11.0) ; extra == "dev"
Requires-Dist: tox (>=3.20.1,<4.0.0) ; extra == "dev"
Requires-Dist: twine (>=3.3.0,<4.0.0) ; extra == "dev"
Requires-Dist: virtualenv (>=20.2.2,<21.0.0) ; extra == "dev"
Description-Content-Type: text/markdown

# Django Activity Tracker

[![pypi](https://img.shields.io/pypi/v/django-activity-tracker.svg)](https://pypi.org/project/django-activity-tracker/)
[![python](https://img.shields.io/pypi/pyversions/django-activity-tracker.svg)](https://pypi.org/project/django-activity-tracker/)
[![Build Status](https://github.com/William-Fernandes252/django-activity-tracker/actions/workflows/dev.yml/badge.svg)](https://github.com/William-Fernandes252/django-activity-tracker/actions/workflows/dev.yml)
[![codecov](https://codecov.io/gh/William-Fernandes252/django-activity-tracker/branch/main/graphs/badge.svg)](https://codecov.io/github/William-Fernandes252/django-activity-tracker)

A reusable Django application to track user actions through the database.

-   Documentation: <https://William-Fernandes252.github.io/django-activity-tracker>
-   GitHub: <https://github.com/William-Fernandes252/django-activity-tracker>
-   PyPI: <https://pypi.org/project/django-activity-tracker/>
-   Free software: MIT

## Introduction

I once worked on a project where user interactions about business entities needed to be recorded, in a detailed and consistent manner, in the database for auditing reasons. When a user changed the state of an object, the change, along with its author and time, should be saved. Furthermore, the object in question should be easily located. As I came up with a conveniently generic solution, I decided to turn this into a reusable application for Django projects.

Currently it works only in [Django REST Framework](https://www.django-rest-framework.org/) projects, and with [`ModelViewSet`s](https://www.django-rest-framework.org/api-guide/viewsets/), but in the future I plan to support Django CBVs and view functions as well.

## Features

-   Track users interations with any model of your project in a _generic_ way;
-   Retrive and protect this information;
-   Use the full capabilities of the Django ORM to gather information about what a specific user did to an object, what users interacted with it, and more!

## Credits

This package was created with [Cookiecutter](https://github.com/audreyr/cookiecutter) and the [waynerv/cookiecutter-pypackage](https://github.com/waynerv/cookiecutter-pypackage) project template.

