{ "info": { "author": "Vasil Vangelovski", "author_email": "vvangelovski@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Plugins", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "============================\ndjango-audit-log\n============================\n\nTracking changes to django models.\n\n\n* Model fields for keeping track of the user and session that created and modified a model instance.\n* Abstract model class with fields ``created_by`` and ``modified_by`` fields.\n* A model manager class that can automatically track changes made to a model in the database.\n* Support for Django 1.6 and 1.7, South migrations, Django 1.7 migrations and custom User classes.\n* Python 3 and 2.x support\n\n`The documentation can be found here `_\n\n**Tracking full model history on M2M relations is not supported yet.**\n**Version 0.3.0 onwards is tested with Django 1.6. It should work with older versions of Django, but may break things unexpectedly!**\n\n\nQuickstart Guide\n===============================\n\nInstall it with pip from PyPi::\n\n pip install django-audit-log\n\nAdd ``audit_log.middleware.UserLoggingMiddleware`` to your ``MIDDLEWARE_CLASSES``::\n\n\n MIDDLEWARE_CLASSES = (\n 'django.contrib.sessions.middleware.SessionMiddleware',\n 'django.middleware.common.CommonMiddleware',\n 'django.middleware.csrf.CsrfViewMiddleware',\n 'django.contrib.auth.middleware.AuthenticationMiddleware',\n 'django.contrib.messages.middleware.MessageMiddleware',\n 'django.middleware.clickjacking.XFrameOptionsMiddleware',\n 'audit_log.middleware.UserLoggingMiddleware',\n )\n\n\nTo just track who created or edited a model instance just make it inherit from ``AuthStampedModel``::\n\n\n from audit_log.models import AuthStampedModel\n\n class WarehouseEntry(AuthStampedModel):\n product = models.ForeignKey(Product)\n quantity = models.DecimalField(max_digits = 10, decimal_places = 2)\n\n\nThis will add 4 fields to the ``WarehouseEntry`` model:\n\n* ``created_by`` - A foreign key to the user that created the model instance.\n* ``created_with_session_key`` - Stores the session key with which the model instance was first created.\n* ``modified_by`` - A foreign key to the user that last saved a model instance.\n* ``modified_with_session_key`` - Stores the session key with which the model instance was last saved.\n\nIf you want to track full model change history you need to attach an ``AuditLog`` manager to the model::\n\n from django.db import models\n from audit_log.models.fields import LastUserField\n from audit_log.models.managers import AuditLog\n\n\n class ProductCategory(models.Model):\n name = models.CharField(max_length=150, primary_key = True)\n description = models.TextField()\n\n audit_log = AuditLog()\n\n class Product(models.Model):\n name = models.CharField(max_length = 150)\n description = models.TextField()\n price = models.DecimalField(max_digits = 10, decimal_places = 2)\n category = models.ForeignKey(ProductCategory)\n\n audit_log = AuditLog()\n\nYou can then query the audit log::\n\n In [2]: Product.audit_log.all()\n Out[2]: [,\n ,\n ,\n ,\n ,\n ]\n\n`The documentation can be found here `_\n\n\n*Note: This project was not maintained actively for a while. One of the reasons was that I wasn't receiving email notifications from GitHub. The other reason: We were using it just on a couple of projects that were frozen to old versions of Django. If you need any help with the project you can contact me by email directly if I don't respond to your GitHub issues. Feel free to nudge me over email if you have a patch for something. You can find my email in the AUTHORS file.*", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/Atomidata/django-audit-log/downloads", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Atomidata/django-audit-log", "keywords": null, "license": "New BSD License (http://www.opensource.org/licenses/bsd-license.php)", "maintainer": null, "maintainer_email": null, "name": "django-audit-log", "package_url": "https://pypi.org/project/django-audit-log/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-audit-log/", "project_urls": { "Download": "https://github.com/Atomidata/django-audit-log/downloads", "Homepage": "https://github.com/Atomidata/django-audit-log" }, "release_url": "https://pypi.org/project/django-audit-log/0.7.0/", "requires_dist": null, "requires_python": null, "summary": "Audit trail for django models", "version": "0.7.0" }, "last_serial": 1400784, "releases": { "0.1": [], "0.2": [], "0.2.1": [], "0.2.2": [ { "comment_text": "", "digests": { "md5": "023dec2fd2ee4e51b15c740e8bc09f23", "sha256": "3f13ae8a426a0f4d1ba062312df4e53ba7ca52816d6e53cefb491eb4d07e659b" }, "downloads": -1, "filename": "django-audit-log-0.2.2.tar.gz", "has_sig": false, "md5_digest": "023dec2fd2ee4e51b15c740e8bc09f23", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5323, "upload_time": "2011-04-06T14:06:40", "url": "https://files.pythonhosted.org/packages/2f/72/845525aa435c3d5df79e442fab1b93c9ea038b7e15d3f4b9bfe0e3e19715/django-audit-log-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "ee1b33228d43dc8fcf1fc124820bd2e9", "sha256": "ceb08abffc75a0be4f4e119e25db11284388b4ae000bc89f6220ec3f817b5748" }, "downloads": -1, "filename": "django-audit-log-0.2.3.tar.gz", "has_sig": false, "md5_digest": "ee1b33228d43dc8fcf1fc124820bd2e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6078, "upload_time": "2012-07-03T11:19:14", "url": "https://files.pythonhosted.org/packages/52/55/431f65f0e86a0e11e7f624f54a59029f6c5129b32fe86235926be5650b72/django-audit-log-0.2.3.tar.gz" } ], "0.3.0.beta": [ { "comment_text": "", "digests": { "md5": "6709cc8024384901a0708c41c3e12468", "sha256": "5bf916130d870ebb0e92ba7a59c480f859db30576da3de557603a8706c5b7cad" }, "downloads": -1, "filename": "django-audit-log-0.3.0.beta.tar.gz", "has_sig": false, "md5_digest": "6709cc8024384901a0708c41c3e12468", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9298, "upload_time": "2014-04-17T12:33:40", "url": "https://files.pythonhosted.org/packages/1a/37/8ec2afe835b4c26211d17edeeaf6c99d9d49452a111b0df97bf9bdfdca54/django-audit-log-0.3.0.beta.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "a8603cee5217d7b3c968ecbbc87e6210", "sha256": "339f0b4514c196625f7535f8a2d39a5b125b167ad74007990e17d0600cff703e" }, "downloads": -1, "filename": "django-audit-log-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a8603cee5217d7b3c968ecbbc87e6210", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8366, "upload_time": "2014-04-18T21:05:43", "url": "https://files.pythonhosted.org/packages/f4/a3/a69b2aaff8c3026e0deebde2f28d616f129f9eca204de9e8895cf917cb64/django-audit-log-0.4.0.tar.gz" } ], "0.5.0": [ { "comment_text": "", "digests": { "md5": "103307d79c7806db3f214785738f6407", "sha256": "cc2c2e0151120af8dab379e6fecdcf68704ce5eec45dbbd750e0ebe908221afd" }, "downloads": -1, "filename": "django-audit-log-0.5.0.tar.gz", "has_sig": false, "md5_digest": "103307d79c7806db3f214785738f6407", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9557, "upload_time": "2014-10-14T20:10:55", "url": "https://files.pythonhosted.org/packages/fb/41/76ed02c59eb0286b8d665c510a41cde052b3d38ca9ba36a5e7776165148b/django-audit-log-0.5.0.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "566b9b9655a6c68c01a973cc7920642c", "sha256": "c33bdcbaa7fb5d011c8a67bb1abbf6cb30ad28884e9bf3151528f27dfa13ffab" }, "downloads": -1, "filename": "django-audit-log-0.5.1.tar.gz", "has_sig": false, "md5_digest": "566b9b9655a6c68c01a973cc7920642c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9660, "upload_time": "2014-12-04T22:53:22", "url": "https://files.pythonhosted.org/packages/4f/60/ea5171431c8876476a13ace52b36e5b5e3b493ebd7ff59c8938c4264ebed/django-audit-log-0.5.1.tar.gz" } ], "0.6.0": [ { "comment_text": "", "digests": { "md5": "1913c3bf93185acfd6cd3d2e5d162587", "sha256": "5f15767cf05ee2f984b0e26349b323cccdef3895324e4a0548c63e36383c8b37" }, "downloads": -1, "filename": "django_audit_log-0.6.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "1913c3bf93185acfd6cd3d2e5d162587", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 17679, "upload_time": "2015-01-23T00:56:26", "url": "https://files.pythonhosted.org/packages/9c/8c/4928e2c339de0abeb83e2e4122a8b74e1e664dbe430dc3de02e424ae2870/django_audit_log-0.6.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4731dd5ac828f9888750e954687d282", "sha256": "63ad8b72c769bb8de9c3571d7d3a638a4bd6d2fccb30c3278e938684bca7c12f" }, "downloads": -1, "filename": "django-audit-log-0.6.0.tar.gz", "has_sig": false, "md5_digest": "d4731dd5ac828f9888750e954687d282", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10635, "upload_time": "2015-01-23T00:56:23", "url": "https://files.pythonhosted.org/packages/00/80/ce461331515539e68ba47c3b6784d9a4c308250ecfa3d6e95628714e1f54/django-audit-log-0.6.0.tar.gz" } ], "0.7.0": [ { "comment_text": "", "digests": { "md5": "191527c8649b700c9df945b6dc5687b4", "sha256": "1da06fa4fb82cc583eb5213a46bb68ec3fe9fafe3d83a3641810b81b37a3f755" }, "downloads": -1, "filename": "django_audit_log-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "191527c8649b700c9df945b6dc5687b4", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 19000, "upload_time": "2015-01-28T22:34:34", "url": "https://files.pythonhosted.org/packages/9e/85/80725145188391ceb3fd17db760b8554f58690589f553cf0e61be5b62b60/django_audit_log-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "940f8fdbf9200009f7cf344f62aeaf6b", "sha256": "ef04777c6c112727b9a61a59c897a90530bc93234621c6af1c375aba51948a88" }, "downloads": -1, "filename": "django-audit-log-0.7.0.tar.gz", "has_sig": false, "md5_digest": "940f8fdbf9200009f7cf344f62aeaf6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11458, "upload_time": "2015-01-28T22:34:22", "url": "https://files.pythonhosted.org/packages/56/e6/d5f5b4135f85ca58158e2d609c53e1d3e4b1556c808c94d945f0423edca7/django-audit-log-0.7.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "191527c8649b700c9df945b6dc5687b4", "sha256": "1da06fa4fb82cc583eb5213a46bb68ec3fe9fafe3d83a3641810b81b37a3f755" }, "downloads": -1, "filename": "django_audit_log-0.7.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "191527c8649b700c9df945b6dc5687b4", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 19000, "upload_time": "2015-01-28T22:34:34", "url": "https://files.pythonhosted.org/packages/9e/85/80725145188391ceb3fd17db760b8554f58690589f553cf0e61be5b62b60/django_audit_log-0.7.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "940f8fdbf9200009f7cf344f62aeaf6b", "sha256": "ef04777c6c112727b9a61a59c897a90530bc93234621c6af1c375aba51948a88" }, "downloads": -1, "filename": "django-audit-log-0.7.0.tar.gz", "has_sig": false, "md5_digest": "940f8fdbf9200009f7cf344f62aeaf6b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11458, "upload_time": "2015-01-28T22:34:22", "url": "https://files.pythonhosted.org/packages/56/e6/d5f5b4135f85ca58158e2d609c53e1d3e4b1556c808c94d945f0423edca7/django-audit-log-0.7.0.tar.gz" } ] }