Metadata-Version: 2.1
Name: django-admin-blame
Version: 0.0.4
Summary: Tools for logging changes made from Django admin
Home-page: https://github.com/just-work/django-admin-blame
Author: Sergey Tikhonov
Author-email: zimbler@gmail.com
License: MIT
Classifier: Development Status :: 1 - Planning
Classifier: Environment :: Console
Classifier: Framework :: Django :: 2.2
Classifier: Framework :: Django :: 3.0
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content :: Content Management System
Description-Content-Type: text/markdown
Requires-Dist: Django
Requires-Dist: django-model-utils

django-admin-blame
==================

django-admin-blame is a Django app providing mixins for tracking date and author
of model changes from django admin.

[![Build Status](https://travis-ci.org/just-work/django-admin-blame.svg?branch=master)](https://travis-ci.org/just-work/django-admin-blame)
[![codecov](https://codecov.io/gh/just-work/django-admin-blame/branch/master/graph/badge.svg)](https://codecov.io/gh/just-work/django-admin-blame)
[![PyPI version](https://badge.fury.io/py/django-admin-blame.svg)](https://badge.fury.io/py/django-admin-blame)

Description
-----------

Often it is useful to know date and author of object creation or modification.
django-admin-blame provides a django model mixin with fields:
* created (datetime) - timestamp of object creation
* created_by (FK to User) - reference to an admin user who created this object
    through admin site
* modified (datetime) - timestamp of last object modification
* modified_by (FK to User) - reference to an admin user who made last changes to
    this object through admin site. If changes has been made somewhere else, 
    field value is reset to `None`.

Installation
------------

```shell script
pip install django-admin-blame
```

Working example is in `testproject.testapp`.

1. Enable middleware in django settings:
    ```python
    MIDDLEWARE.append('admin_log.middleware.AdminLogMiddleware')
    ```
2. Add model mixin to your models:
    ```python
    from django.contrib.auth.models import AbstractUser
    
    from admin_log.models import AdminLogMixin
    
    
    class User(AdminLogMixin, AbstractUser):
        pass
    ```
3. Add admin mixin to corresponding model admin:
    ```python
    from django.contrib import admin
    
    from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
    
    from admin_log.admin import AdminLogMixin
    from testproject.testapp import models
    
    
    @admin.register(models.User)
    class UserAdmin(AdminLogMixin, BaseUserAdmin):
        pass
    ```

Now you have readonly fields with date and author of last revision in admin
"edit" page.
