{ "info": { "author": "Erik van Widenfelt", "author_email": "ew2789@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Internet :: WWW/HTTP", "Topic :: Internet :: WWW/HTTP :: Dynamic Content" ], "description": "|pypi| |travis| |codecov| |downloads|\n\ndjango-revision\n---------------\n\nAdd a Django field class to your models to track the git revision with every model instance saved.\n\npython 3.6, Django 2.0+. Uses `GitPython`.\n\nFor example:\n\n.. code-block:: python\n\n from django.db import models\n\n from django_revision import RevisionField\n\n class TestModel(models.Model):\n\n revision = RevisionField()\n\n.. code-block:: python\n\n >>> test_model = TestModel.objects.create()\n >>>test_model.revision\n '0.1dev0'\n\nIf the source is modified after the git tag was applied:\n\n.. code-block:: python\n\n >>> test_model = TestModel.objects.create()\n >>>test_model.revision\n >>> '0.1dev0-35-ge9f632e:develop:e9f632e92143c53411290b576487f48c15156603'\n\nReference git information from anywhere in your app:\n\n.. code-block:: python\n\n >>> from django_revision import site_revision\n >>> site_revision.tag\n '0.1dev0'\n >>>site_revision.revision\n '0.1dev0'\n\n\nFor research trial data, we need to track the source code revision at time of data collection. We deploy our source as a git branch and django-revision picks up the tag:branch:commit and updates\neach saved model instance as data is collected.\n\nInstallation\n------------\n\nAdd to settings:\n\n.. code-block:: python\n\n INSTALLED_APPS = [\n ...\n 'django_revision.apps.AppConfig',\n ...\n ]\n\nIf your `git` working directory is something other than ``settings.BASE_DIR`` add ``GIT_DIR`` to ``settings`` with the path to your `git` working directory. For example:\n\n.. code-block:: python\n\n GIT_DIR = BASE_DIR.ancestor(2)\n\nIf you have a deployment case where the source folder is not a `git` repo, you can set the revision manually in settings:\n\n.. code-block:: python\n\n REVISION = '0.1.3'\n\nUsing in a View and Template\n----------------------------\n\nIn the view's ``get_context_data`` set a context attribute to ``revision.tag`` or just use the ``RevisionMixin``:\n\n.. code-block:: python\n\n from django_revision.views import RevisionMixin\n\n class MyView(RevisionMixin, TemplateView):\n ...\n\nIn your template:\n\n.. code-block:: python\n\n {% block footer %} \n\t\n {% endblock footer %}\n\n.. |pypi| image:: https://img.shields.io/pypi/v/django-revision.svg\n :target: https://pypi.python.org/pypi/django-revision\n\n.. |travis| image:: https://travis-ci.org/erikvw/django-revision.svg?branch=develop\n :target: https://travis-ci.org/erikvw/django-revision\n\n.. |codecov| image:: https://codecov.io/gh/erikvw/django-revision/branch/develop/graph/badge.svg\n :target: https://codecov.io/gh/erikvw/django-revision\n\n.. |downloads| image:: https://pepy.tech/badge/django-revision\n :target: https://pepy.tech/project/django-revision\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github/erikvw/django-revision", "keywords": "django fields git", "license": "GPL license, see LICENSE", "maintainer": "", "maintainer_email": "", "name": "django-revision", "package_url": "https://pypi.org/project/django-revision/", "platform": "", "project_url": "https://pypi.org/project/django-revision/", "project_urls": { "Homepage": "http://github/erikvw/django-revision" }, "release_url": "https://pypi.org/project/django-revision/0.1.19/", "requires_dist": [ "GitPython" ], "requires_python": ">=3.6", "summary": "Track the git revision with every model instance saved.", "version": "0.1.19" }, "last_serial": 4995145, "releases": { "0.1.15": [ { "comment_text": "", "digests": { "md5": "4a93224c1d82e6389f96f44a99480221", "sha256": "243968bc9b7aa4b43fb8e2f1ae3ac387a99557bede9fc8ff62c9d90712c285c4" }, "downloads": -1, "filename": "django-revision-0.1.15.macosx-10.13-x86_64.tar.gz", "has_sig": false, "md5_digest": "4a93224c1d82e6389f96f44a99480221", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12081, "upload_time": "2018-07-20T15:43:27", "url": "https://files.pythonhosted.org/packages/7e/87/c317bf17b508559058f407cba3f06469199d8d756559a0ca471dee258b63/django-revision-0.1.15.macosx-10.13-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "3457bf18bace0e9948164af37471c3a7", "sha256": "4cb6432c60a1a879d6f8fe1fda5921dec056e54282d060053fab5974f7122a23" }, "downloads": -1, "filename": "django_revision-0.1.15-py3-none-any.whl", "has_sig": false, "md5_digest": "3457bf18bace0e9948164af37471c3a7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9579, "upload_time": "2018-07-20T15:43:25", "url": "https://files.pythonhosted.org/packages/e0/01/8f571f38bfe439230de98f9866056a31f9e7ca275dce728954ab5a0d0cf2/django_revision-0.1.15-py3-none-any.whl" } ], "0.1.16": [ { "comment_text": "", "digests": { "md5": "bbfd49195153522617c65bd41fdaa60c", "sha256": "46341c3f26ed43bf6d594391686023915953db3e88b3e9c29beca56ee9b8a110" }, "downloads": -1, "filename": "django-revision-0.1.16.macosx-10.13-x86_64.tar.gz", "has_sig": false, "md5_digest": "bbfd49195153522617c65bd41fdaa60c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12096, "upload_time": "2018-08-01T01:20:07", "url": "https://files.pythonhosted.org/packages/2b/48/88f5ca98de14ec3ea9119731d7da29121606a76614668187ccd45bb7f9a2/django-revision-0.1.16.macosx-10.13-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "178d9c4409f417b800b5a2bce9b6b394", "sha256": "805adc15529ccde2ed7cde889274a80901bbb6ec069034615edeb6a51491d26a" }, "downloads": -1, "filename": "django_revision-0.1.16-py3-none-any.whl", "has_sig": false, "md5_digest": "178d9c4409f417b800b5a2bce9b6b394", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9576, "upload_time": "2018-08-01T01:20:06", "url": "https://files.pythonhosted.org/packages/99/bd/388e8352c73df02836603f87a1f471653f4b163d9e4f20e830a66e89ef9d/django_revision-0.1.16-py3-none-any.whl" } ], "0.1.17": [ { "comment_text": "", "digests": { "md5": "f02856c72f9b67439eced56b0ec111cc", "sha256": "c4d223fbbcfec329d98199b6785f72596e336e2d643a7c1f88f8ddf48a712b22" }, "downloads": -1, "filename": "django-revision-0.1.17.macosx-10.13-x86_64.tar.gz", "has_sig": false, "md5_digest": "f02856c72f9b67439eced56b0ec111cc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12562, "upload_time": "2018-12-27T03:02:49", "url": "https://files.pythonhosted.org/packages/e4/f7/e1a378016fe5fe77e1146e26c30b678f6314d157ea6d3420c8cd438f724c/django-revision-0.1.17.macosx-10.13-x86_64.tar.gz" }, { "comment_text": "", "digests": { "md5": "fafcf26963a26636b5384ed24c348788", "sha256": "31af75611946eb79d4562f11a4f14119de94cd252b9f9280ab423103f019f8ec" }, "downloads": -1, "filename": "django_revision-0.1.17-py3-none-any.whl", "has_sig": false, "md5_digest": "fafcf26963a26636b5384ed24c348788", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9779, "upload_time": "2018-12-27T03:02:48", "url": "https://files.pythonhosted.org/packages/13/bf/3c19905bc1838cdb00abd98455ed1b6216bd229735fec134eb7915b1b052/django_revision-0.1.17-py3-none-any.whl" } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "15e0bb083f5fa3c042d5cad3b0d3e442", "sha256": "056f8389c0d652f70ddd1a6b1f29c1c0e19e0a3e87d59238702dfb94ee783e34" }, "downloads": -1, "filename": "django_revision-0.1.18-py3-none-any.whl", "has_sig": false, "md5_digest": "15e0bb083f5fa3c042d5cad3b0d3e442", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16978, "upload_time": "2019-03-03T23:19:59", "url": "https://files.pythonhosted.org/packages/97/ec/5808c8bb5ef4756ce94caf559ba8f6806f0d315bd70db4f30951489c4d1b/django_revision-0.1.18-py3-none-any.whl" } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "6b14a7e5ac757f5977889aca9c71b8b0", "sha256": "75dc60e7ff8909247ef6501755006ce0928c103ca1ba2538c8a4112dcf5d4f45" }, "downloads": -1, "filename": "django_revision-0.1.19-py3-none-any.whl", "has_sig": false, "md5_digest": "6b14a7e5ac757f5977889aca9c71b8b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16978, "upload_time": "2019-03-27T22:44:49", "url": "https://files.pythonhosted.org/packages/aa/eb/23e59e6131357633b5f6cfe9567a9a6145fe1a679d4a8e2604ccd332b8f8/django_revision-0.1.19-py3-none-any.whl" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "a0fa993b27b31267a771eb81cb97ba82", "sha256": "25113fd5056c41e0feeddaf220d2a00f09bb028606b167a8b998aa57e6b8b55a" }, "downloads": -1, "filename": "django_revision-0.1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "a0fa993b27b31267a771eb81cb97ba82", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5731, "upload_time": "2015-05-19T12:54:53", "url": "https://files.pythonhosted.org/packages/d1/78/9da355a148316ccd2d24fd572ba0022203ace934340a25f47f916d92f1b8/django_revision-0.1.2-py3-none-any.whl" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "a5895d46d166157d3bc21c3e3e24b51b", "sha256": "fb2d4edb5fb817bbd760e92439282e0d82d6424fdee2abd17d29e7be9197ff93" }, "downloads": -1, "filename": "django_revision-0.1.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a5895d46d166157d3bc21c3e3e24b51b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6725, "upload_time": "2015-05-19T13:50:36", "url": "https://files.pythonhosted.org/packages/40/60/ac023c6061abcdd52817f62e1bddae21c1217389339b1c6afa97bdb5d437/django_revision-0.1.3-py3-none-any.whl" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "ed2af27f7e96be741cf8ebbaa4ada326", "sha256": "ce252494019556948cc33f78acab52f2d6fa3b23cce0536a2181b584deef488c" }, "downloads": -1, "filename": "django_revision-0.1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "ed2af27f7e96be741cf8ebbaa4ada326", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7350, "upload_time": "2015-05-19T14:39:04", "url": "https://files.pythonhosted.org/packages/c5/83/492611a8b410394e20714fd3e4a1b94b58dd835e5dc396d30026435738d8/django_revision-0.1.4-py3-none-any.whl" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "2393237dcf6d78c389c54ab5592360a4", "sha256": "c5c88b40c66d2f0407e612cb7ea1b72765fde379db7d214c0bdf4e226737eaee" }, "downloads": -1, "filename": "django_revision-0.1.5-py3-none-any.whl", "has_sig": false, "md5_digest": "2393237dcf6d78c389c54ab5592360a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7773, "upload_time": "2015-05-20T08:19:16", "url": "https://files.pythonhosted.org/packages/f6/cf/fc84c1b09e4b3a2d57eb21889f9fd7043625beb67c2f75bea3f340a94a4e/django_revision-0.1.5-py3-none-any.whl" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "9ec8287b94b559b98b1a19e489986ec5", "sha256": "818d48a4c41b5aa200b2c1d6e192b0643778dad3d226b821cdff836f8e315707" }, "downloads": -1, "filename": "django_revision-0.1.6-py3-none-any.whl", "has_sig": false, "md5_digest": "9ec8287b94b559b98b1a19e489986ec5", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7846, "upload_time": "2015-05-21T13:05:33", "url": "https://files.pythonhosted.org/packages/45/7b/0711c409b2795701347c9a4d31b9d34a9cba72f50369fe7ef75495ad1d57/django_revision-0.1.6-py3-none-any.whl" } ], "0.1.6a0": [ { "comment_text": "", "digests": { "md5": "6604e8bd525523f75ca7b0c0eaeb6f2a", "sha256": "6364bf1fc4d5a5307c8c558d67b916e2f4e0ce933902dbf6ca3178ae544eea43" }, "downloads": -1, "filename": "django_revision-0.1.6a0-py3-none-any.whl", "has_sig": false, "md5_digest": "6604e8bd525523f75ca7b0c0eaeb6f2a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11601, "upload_time": "2015-05-21T09:58:19", "url": "https://files.pythonhosted.org/packages/b8/26/8b605c2e585807eb656548b394410aabef31546a8e5c7f1394779c49b3cc/django_revision-0.1.6a0-py3-none-any.whl" } ], "0.1.6a1": [ { "comment_text": "", "digests": { "md5": "9072371a5d5f5589992bb54989adace2", "sha256": "be3661c4d3344b180855b770cb2306ca775420a87aa883e302c5a32e458c4b4f" }, "downloads": -1, "filename": "django_revision-0.1.6a1-py3-none-any.whl", "has_sig": false, "md5_digest": "9072371a5d5f5589992bb54989adace2", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 7684, "upload_time": "2015-05-21T10:24:15", "url": "https://files.pythonhosted.org/packages/cc/36/bc91ebb439f7b38f3d5c3a43327013c75153ee4e4ba25913185d9d8e5cdf/django_revision-0.1.6a1-py3-none-any.whl" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6b14a7e5ac757f5977889aca9c71b8b0", "sha256": "75dc60e7ff8909247ef6501755006ce0928c103ca1ba2538c8a4112dcf5d4f45" }, "downloads": -1, "filename": "django_revision-0.1.19-py3-none-any.whl", "has_sig": false, "md5_digest": "6b14a7e5ac757f5977889aca9c71b8b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 16978, "upload_time": "2019-03-27T22:44:49", "url": "https://files.pythonhosted.org/packages/aa/eb/23e59e6131357633b5f6cfe9567a9a6145fe1a679d4a8e2604ccd332b8f8/django_revision-0.1.19-py3-none-any.whl" } ] }