{ "info": { "author": "Martyn CLEMENT", "author_email": "martyn.clement@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Django ModelForm History\n========================\n\n[![Build Status](https://travis-ci.org/martync/django-modelformhistory.svg?branch=master)](https://travis-ci.org/martync/django-modelformhistory)\n[![Coverage Status](https://coveralls.io/repos/github/martync/django-modelformhistory/badge.svg?branch=master&refresh=cach)](https://coveralls.io/github/martync/django-modelformhistory?branch=master)\n\ndjango-modelformhistory will save your modelform updates and store the human-readable values. The main goal is only to show the users what has been updated on a modelForms. If you search for a more lowlevel history app, consider using django-reversion or django-simple-history\n\n\nWarning\n-------\n\nThis package is under developpement. It has poor features and may be unstable. Don't use it in production yet. \n\n\nRequirements\n------------\n\n - Django 1.10.* / Django 1.11.*\n - Tested under python 2.7 and 3.6\n\n\nInstall\n-------\n\n```\npip install django-modelformhistory\n```\n\n\nThen, add `modelformhistory` to INSTALLED_APPS\n\n\nUsage\n-----\n\nInherit your ModelForm with `HistoryModelFormMixin`\n\n```python\nfrom modelformhistory.forms import HistoryModelFormMixin\n\nclass MyModelForm(HistoryModelFormMixin, forms.ModelForm):\n pass\n```\n\nYou can get the user that has made the change by : \n\n* Either pass the `request` on the form init, then the request.user will be automatically sent to the new history Entry\n* or implement a `get_history_user` method on your ModelForm that will return a `auth.User` object\n\n\nTODO\n----\n\n * Provide generic views to see history by object, user & both\n * Improve doc\n * ~~Querying models history easily~~\n * ~~Add more support and tests for filefield, boolean~~\n * ~~FR translation~~\n\n\n\nChangeLog\n=========\n\n\n1.0.11 2019-06-27\n----------------\n\n- Catch Validation error and log error\n\n\n1.0.9 2019-06-26\n----------------\n\n- Truncate object_repr charfield length to 200 max chars\n\n\n1.0.7 2019-06-25\n----------------\n\n- Added localisation files to package\n\n\n1.0.6 2019-06-19\n----------------\n\n- Remove tests from packaging\n\n\n1.0.5 2019-06-19\n----------------\n\n- Added docstrings\n- Added `models.HistoryBaseModel.log_custom_history`\n- `Entry.content_object` is now mandatory\n\n\n1.0.4 2019-06-17\n----------------\n\n- Added support for BooleanField and FileField\n\n\n1.0.3 2019-06-17\n----------------\n\n- Added more coverage\n- Added FR translation\n- Added HistoryBaseModel\n\n\n1.0 2019-06-14\n--------------\n\n- Initial Release\n\n\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/EngageSports/django-modelformhistory", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "django-modelformhistory", "package_url": "https://pypi.org/project/django-modelformhistory/", "platform": "", "project_url": "https://pypi.org/project/django-modelformhistory/", "project_urls": { "Homepage": "https://github.com/EngageSports/django-modelformhistory" }, "release_url": "https://pypi.org/project/django-modelformhistory/1.0.11/", "requires_dist": null, "requires_python": "", "summary": "", "version": "1.0.11" }, "last_serial": 5752671, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "bca1211f48f56e8f4bad518b247019a1", "sha256": "06d402fce4fabaa95ca1326fde3f07527d43ba8fbf0ae32cfa8b411855a97b4d" }, "downloads": -1, "filename": "django_modelformhistory-1.0-py2-none-any.whl", "has_sig": false, "md5_digest": "bca1211f48f56e8f4bad518b247019a1", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12620, "upload_time": "2019-06-14T10:26:23", "url": "https://files.pythonhosted.org/packages/f0/b8/a6d29c0ec91f87ae19e03c679c530b64833cb44364ac751bf7acbf2c16d4/django_modelformhistory-1.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "9ad493679e687819c733945f121edb8c", "sha256": "fc4840451fe137817ed9dc7bee89395c223e4d8196b095c7083349c1e6c85e76" }, "downloads": -1, "filename": "django-modelformhistory-1.0.tar.gz", "has_sig": false, "md5_digest": "9ad493679e687819c733945f121edb8c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7888, "upload_time": "2019-06-14T10:26:25", "url": "https://files.pythonhosted.org/packages/3a/f6/b2eb39957d36d1e612dd63fac3d4974af7041655e92006bf164a1d307c4a/django-modelformhistory-1.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "fb94ca537b2d784e62ec48d554131685", "sha256": "5b96549374387af3efbe809d5fa7b984cb0983be038f41087c8bce774d4ff52b" }, "downloads": -1, "filename": "django_modelformhistory-1.0.1-py2-none-any.whl", "has_sig": false, "md5_digest": "fb94ca537b2d784e62ec48d554131685", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 12652, "upload_time": "2019-06-14T10:41:47", "url": "https://files.pythonhosted.org/packages/db/a4/471d7aa5ed52a9073de2d70596add2d0ae4c36fdaea0cdcb6efd25f3e237/django_modelformhistory-1.0.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "72b4ab74d704d2890e29930536dbd03c", "sha256": "cc10a0a0e85808069c7e1c65c4e49d61b8823b930634a8c94529971ed775053a" }, "downloads": -1, "filename": "django-modelformhistory-1.0.1.tar.gz", "has_sig": false, "md5_digest": "72b4ab74d704d2890e29930536dbd03c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7894, "upload_time": "2019-06-14T10:41:48", "url": "https://files.pythonhosted.org/packages/af/74/a26346e777221587f3df289a47f29959206916d5883a5ed2421fb3d0e5dc/django-modelformhistory-1.0.1.tar.gz" } ], "1.0.10": [ { "comment_text": "", "digests": { "md5": "da5acb3835559aea28d32bae2b89a856", "sha256": "9a358e6712dfec0425df60e33c15145bb342288ead94b022588202b3e9e96c94" }, "downloads": -1, "filename": "django_modelformhistory-1.0.10-py2-none-any.whl", "has_sig": false, "md5_digest": "da5acb3835559aea28d32bae2b89a856", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11589, "upload_time": "2019-06-27T07:49:31", "url": "https://files.pythonhosted.org/packages/5d/e1/8dc0fc4a8dde1ba720b572f374440915e29fe34862020841ec24f59806c1/django_modelformhistory-1.0.10-py2-none-any.whl" } ], "1.0.11": [ { "comment_text": "", "digests": { "md5": "05f4d1bc4fa7710b35c8516f6e4306f4", "sha256": "d20fdf346892d23987a815f08e1e8465ca8c4e14cfdcc32390b5e3964bd6aea5" }, "downloads": -1, "filename": "django_modelformhistory-1.0.11-py2-none-any.whl", "has_sig": false, "md5_digest": "05f4d1bc4fa7710b35c8516f6e4306f4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11587, "upload_time": "2019-06-27T08:18:11", "url": "https://files.pythonhosted.org/packages/7e/77/07c2774bd5fce9a99da3046d27614a36f343264351b484bf89f6753456b9/django_modelformhistory-1.0.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0becdce727e167b8de89dbcc8ce11f60", "sha256": "6e8291cb569aa831d2b550baade4b121909db2eee6794d90ddabf421b0459105" }, "downloads": -1, "filename": "django_modelformhistory-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "0becdce727e167b8de89dbcc8ce11f60", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11587, "upload_time": "2019-08-29T13:45:20", "url": "https://files.pythonhosted.org/packages/52/1d/266b6442fd491d6b9b7e3ff63993ecb180ca12c93f0c90c4af39ef992a4a/django_modelformhistory-1.0.11-py3-none-any.whl" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "074c49b15412fa0f0d0b6c3f3d6c366f", "sha256": "4e9e27b33df5d80819bd7348ce2d2ca78b849e2eabdeaae2daeff4f66f314d67" }, "downloads": -1, "filename": "django_modelformhistory-1.0.2-py2-none-any.whl", "has_sig": false, "md5_digest": "074c49b15412fa0f0d0b6c3f3d6c366f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13313, "upload_time": "2019-06-17T08:17:25", "url": "https://files.pythonhosted.org/packages/1b/c4/eb5641874ce4baa26f140fd87add3256f972ceb8e759153827f1e87c8db9/django_modelformhistory-1.0.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c3a73c9cba81c68fed4a9db933936905", "sha256": "d27cc51fab3bdca69fe25320c1ce1284a45c977045486b02da2396d25c3e175b" }, "downloads": -1, "filename": "django-modelformhistory-1.0.2.tar.gz", "has_sig": false, "md5_digest": "c3a73c9cba81c68fed4a9db933936905", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8572, "upload_time": "2019-06-17T08:17:27", "url": "https://files.pythonhosted.org/packages/69/16/3ebca65b01bbcaa37d82851c3d6530127d71668d21941e0df2d7d3c79b54/django-modelformhistory-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "1123d837fcae3e19a65b9d20d84b2a60", "sha256": "1a2138d4ad3fbde57e06968712e7e31b3c3c42d944381019e5d150709ceb9216" }, "downloads": -1, "filename": "django_modelformhistory-1.0.3-py2-none-any.whl", "has_sig": false, "md5_digest": "1123d837fcae3e19a65b9d20d84b2a60", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 13433, "upload_time": "2019-06-17T08:27:08", "url": "https://files.pythonhosted.org/packages/f9/9f/527b1c34ea3d1d4419d899d8327a7036636d383c456e2076f003214e0dbe/django_modelformhistory-1.0.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "955f29acfd193afd6396fa77150c162c", "sha256": "bf2cf6ea5fa161e412428f10e4f275b3207b7f57bbd7d245bb803857bb2e84ed" }, "downloads": -1, "filename": "django-modelformhistory-1.0.3.tar.gz", "has_sig": false, "md5_digest": "955f29acfd193afd6396fa77150c162c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8675, "upload_time": "2019-06-17T08:27:09", "url": "https://files.pythonhosted.org/packages/bb/2b/be03fda5b3b45eecbf17c85d1e934686f6983f04f63255ac911b581ea7ee/django-modelformhistory-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "3e6b527df32c9919aa3d17fe517bc135", "sha256": "6c37cfd17314b06ab922e0e5d5c9d0aee3214128a5565135d82bb1a40f7e989a" }, "downloads": -1, "filename": "django_modelformhistory-1.0.4-py2-none-any.whl", "has_sig": false, "md5_digest": "3e6b527df32c9919aa3d17fe517bc135", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 14794, "upload_time": "2019-06-17T13:31:27", "url": "https://files.pythonhosted.org/packages/3f/79/32e792a2ed633aa8b1b70078e4d2f6ffec52cd4843680425fb010dd3aed3/django_modelformhistory-1.0.4-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d0d70fa8fe392503c54cd2c6deeaeb89", "sha256": "66b899f905878477b12b38f3b7bbd4312373d417db2ab0e7171c6c7ea5b348a2" }, "downloads": -1, "filename": "django-modelformhistory-1.0.4.tar.gz", "has_sig": false, "md5_digest": "d0d70fa8fe392503c54cd2c6deeaeb89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9208, "upload_time": "2019-06-17T13:31:29", "url": "https://files.pythonhosted.org/packages/5d/cd/09a8455d6571d8422e65bb29f9ffddb13dd212d6dd71b841bd28e5ce88c9/django-modelformhistory-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "341359f20af1d85f115acd349f93d91d", "sha256": "bbedfcb3e0a96b0312759daf6ca078c223246fd33103efbacf4d05ea3e489533" }, "downloads": -1, "filename": "django_modelformhistory-1.0.5-py2-none-any.whl", "has_sig": false, "md5_digest": "341359f20af1d85f115acd349f93d91d", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11853, "upload_time": "2019-06-19T08:24:53", "url": "https://files.pythonhosted.org/packages/f5/e3/7331d09c92fb8052ba2499f08db67fbd828a6ebe7e4a34eecc4629401d56/django_modelformhistory-1.0.5-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0c106ae09ee792672145000fe08e5cc", "sha256": "35a3511e614b5608852da180cf1880b18deeb59055108aa5f98aad3bb2c1baff" }, "downloads": -1, "filename": "django-modelformhistory-1.0.5.tar.gz", "has_sig": false, "md5_digest": "a0c106ae09ee792672145000fe08e5cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7319, "upload_time": "2019-06-19T08:24:54", "url": "https://files.pythonhosted.org/packages/cc/76/36a5eaa4e660f89cfc4175cfc4a2866ddbbe97711a0afcc74698402fac79/django-modelformhistory-1.0.5.tar.gz" } ], "1.0.5a0": [ { "comment_text": "", "digests": { "md5": "8f9494ed4afbeede253808807b65779f", "sha256": "8f66639973e4257777ac4094efafb92f192e54f38037f862edf0e553c2d82485" }, "downloads": -1, "filename": "django_modelformhistory-1.0.5a0-py2-none-any.whl", "has_sig": false, "md5_digest": "8f9494ed4afbeede253808807b65779f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11877, "upload_time": "2019-06-19T08:27:44", "url": "https://files.pythonhosted.org/packages/49/b3/3a47d60b6afc3c45954d027f5aef4b91a325a35df3f7b388c22df43b8789/django_modelformhistory-1.0.5a0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4dcb5ab0e1fcc0d54b0ee19def067bc9", "sha256": "1e6134d0ca2ec24906ae8fbed3778177c0c9730ee3250f830888e2a6bf9560f1" }, "downloads": -1, "filename": "django-modelformhistory-1.0.5a0.tar.gz", "has_sig": false, "md5_digest": "4dcb5ab0e1fcc0d54b0ee19def067bc9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7320, "upload_time": "2019-06-19T08:27:45", "url": "https://files.pythonhosted.org/packages/3a/64/4d855396e0fa2fa6f5e7c129feeabad660c9c19762790276059626baeca7/django-modelformhistory-1.0.5a0.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "5825390caf7472f91ad0301f47401067", "sha256": "a63064dbc1717bf23de229f8ec0b79a9f54e148bf6702d4a2bf7a1d0ecb849c3" }, "downloads": -1, "filename": "django_modelformhistory-1.0.6-py2-none-any.whl", "has_sig": false, "md5_digest": "5825390caf7472f91ad0301f47401067", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8719, "upload_time": "2019-06-19T08:39:56", "url": "https://files.pythonhosted.org/packages/ff/d8/689e968b40adaf552478a05e29d47a0d5f701a94f48ddc134c4f26b37c59/django_modelformhistory-1.0.6-py2-none-any.whl" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "3deef9cda75cf1d908a1b5018c75c99f", "sha256": "633b5742b92eb66cedf27eef7e2e0e209aeed812d904ee40cadeb620c5352bbf" }, "downloads": -1, "filename": "django_modelformhistory-1.0.7-py2-none-any.whl", "has_sig": false, "md5_digest": "3deef9cda75cf1d908a1b5018c75c99f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10328, "upload_time": "2019-06-25T09:38:02", "url": "https://files.pythonhosted.org/packages/47/11/66f3f4b039e7cfb4a05095d1c6a84fc676857b6d096f99214bfa2d13e347/django_modelformhistory-1.0.7-py2-none-any.whl" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "77587ddd967e550aa8f1323342258439", "sha256": "2544bded79d4d9dc2c5276b4e2a4fe4e33e9cb2c5a54e19baa9c1df416345b34" }, "downloads": -1, "filename": "django_modelformhistory-1.0.8-py2-none-any.whl", "has_sig": false, "md5_digest": "77587ddd967e550aa8f1323342258439", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 10877, "upload_time": "2019-06-26T08:22:27", "url": "https://files.pythonhosted.org/packages/93/fe/76b1282bbe48bc40e74f67040fc6cf9fc2e00c865de31263d3df63d9fcc6/django_modelformhistory-1.0.8-py2-none-any.whl" } ], "1.0.9": [ { "comment_text": "", "digests": { "md5": "1d2bfa45c9f705e54eb175968323310b", "sha256": "8c658a9920c9d43763011b4a230ccb9531ae86f28c04d3a81497e421b58e4415" }, "downloads": -1, "filename": "django_modelformhistory-1.0.9-py2-none-any.whl", "has_sig": false, "md5_digest": "1d2bfa45c9f705e54eb175968323310b", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11428, "upload_time": "2019-06-26T14:41:45", "url": "https://files.pythonhosted.org/packages/4b/cf/68f5c0b33ed7feb2475f05516a2bdb168fed36cc923b8976eef62faedeb8/django_modelformhistory-1.0.9-py2-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "05f4d1bc4fa7710b35c8516f6e4306f4", "sha256": "d20fdf346892d23987a815f08e1e8465ca8c4e14cfdcc32390b5e3964bd6aea5" }, "downloads": -1, "filename": "django_modelformhistory-1.0.11-py2-none-any.whl", "has_sig": false, "md5_digest": "05f4d1bc4fa7710b35c8516f6e4306f4", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 11587, "upload_time": "2019-06-27T08:18:11", "url": "https://files.pythonhosted.org/packages/7e/77/07c2774bd5fce9a99da3046d27614a36f343264351b484bf89f6753456b9/django_modelformhistory-1.0.11-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0becdce727e167b8de89dbcc8ce11f60", "sha256": "6e8291cb569aa831d2b550baade4b121909db2eee6794d90ddabf421b0459105" }, "downloads": -1, "filename": "django_modelformhistory-1.0.11-py3-none-any.whl", "has_sig": false, "md5_digest": "0becdce727e167b8de89dbcc8ce11f60", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11587, "upload_time": "2019-08-29T13:45:20", "url": "https://files.pythonhosted.org/packages/52/1d/266b6442fd491d6b9b7e3ff63993ecb180ca12c93f0c90c4af39ef992a4a/django_modelformhistory-1.0.11-py3-none-any.whl" } ] }