{ "info": { "author": "Ezequiel Bertti", "author_email": "ebertti@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Natural Language :: Portuguese (Brazilian)", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "django-admin-easy\n=================\n\nCollection of admin fields, decorators and mixin to help to create computed or custom fields more friendly and easy way\n\n.. image:: https://badges.gitter.im/Join%20Chat.svg\n :alt: Join the chat at https://gitter.im/ebertti/django-admin-easy\n :target: https://gitter.im/ebertti/django-admin-easy?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge\n\n.. image:: https://img.shields.io/badge/django-1.8%201.9%201.10%201.11%202.0%202.1-brightgreen.svg\n :target: http://pypi.python.org/pypi/django-admin-easy\n\n.. image:: https://img.shields.io/pypi/v/django-admin-easy.svg?style=flat\n :target: http://pypi.python.org/pypi/django-admin-easy\n\n.. image:: https://img.shields.io/pypi/pyversions/django-admin-easy.svg?maxAge=2592000\n :target: http://pypi.python.org/pypi/django-admin-easy\n\n.. image:: https://img.shields.io/pypi/format/django-admin-easy.svg?maxAge=2592000\n :target: http://pypi.python.org/pypi/django-admin-easy\n\n.. image:: https://img.shields.io/pypi/status/django-admin-easy.svg?maxAge=2592000\n :target: http://pypi.python.org/pypi/django-admin-easy\n\n.. image:: https://img.shields.io/travis/ebertti/django-admin-easy/master.svg?maxAge=2592000\n :target: https://travis-ci.org/ebertti/django-admin-easy\n\n.. image:: https://img.shields.io/requires/github/ebertti/django-admin-easy.svg?maxAge=2592000\n :target: https://requires.io/github/ebertti/django-admin-easy/requirements/\n\n.. image:: https://img.shields.io/coveralls/ebertti/django-admin-easy/master.svg?maxAge=2592000\n :target: https://coveralls.io/r/ebertti/django-admin-easy?branch=master\n\n.. image:: https://img.shields.io/codeclimate/github/ebertti/django-admin-easy.svg\n :target: https://codeclimate.com/github/ebertti/django-admin-easy\n\n.. image:: https://landscape.io/github/ebertti/django-admin-easy/master/landscape.png?style=flat\n :target: https://landscape.io/github/ebertti/django-admin-easy/master\n\nInstallation\n------------\n\n1. Requirements: **Django > 1.8** and **Python > 3.4**\n\n2. ``pip install django-admin-easy==0.5.1``\n\n\n* For **Django < 1.8** or **Python 2.x**\n\n ``pip install django-admin-easy==0.4.1``\n\n\nHow it Works\n------------\n\nWhen you want to display a field on Django Admin, and this field doesn't exist in your Model\nor you need to compute some information, like a Image or Link, you will need to create a method on your ModelAdminClass like this:\n\n.. code-block:: python\n\n from django.contrib import admin\n\n class YourAdmin(admin.ModelAdmin):\n fields = ('sum_method', 'some_img', 'is_true')\n\n def sum_method(self, obj):\n sum_result = obj.field1 + obj.field2 + obj.field3\n return '%s' % sum_result\n sum_method.short_description = 'Sum'\n sum_method.admin_order_field = 'field1'\n sum_method.allow_tags = True\n\n def some_img(self, obj):\n return '' % obj.image\n some_img.short_description = 'image'\n some_img.admin_order_field = 'id'\n some_img.allow_tags = True\n\n def is_true(self, obj):\n return obj.value > 0\n is_true.short_description = 'Positive'\n is_true.admin_order_field = 'value'\n is_true.boolean = True\n\nIt takes too much lines! =D\n\nWith **django-admin-easy** you can easily create this field with less lines:\n\n.. code-block:: python\n\n from django.contrib import admin\n import easy\n\n class YourAdmin(admin.ModelAdmin):\n fields = ('sum_method', 'some_img', 'is_true')\n\n sum_method = easy.SimpleAdminField(lambda obj: '%s' % (obj.field1 + obj.field2 + obj.field3), 'Sum', 'field1', True)\n some_img = easy.ImageAdminField('image', 'id')\n is_true = easy.BooleanAdminField('Positive', 'value')\n\nIf you still prefer using a custom method, you can use our decorators, like this:\n\n.. code-block:: python\n\n from django.contrib import admin\n import easy\n\n class YourAdmin(admin.ModelAdmin):\n fields = ('sum_method', 'some_img', 'is_true')\n\n @easy.smart(short_description='Sum', admin_order_field='field1', allow_tags=True )\n def sum_method(self, obj):\n sum_result = obj.field1 + obj.field2 + obj.field3\n return '%s' % sum_result\n\n @easy.short(desc='image', order='id', tags=True)\n def some_img(self, obj):\n return '' % obj.image\n\n @easy.short(desc='Positive', order='value', bool=True)\n def is_true(self, obj):\n return obj.value > 0\n\nAnother Decorators\n------------------\n\nIn all of this extra decorators, you can use `short` or `smart` arguments to complement field information.\n\n* **Allow HTML tags**\n\n.. code-block:: python\n\n @easy.with_tags()\n def some_field_with_html(self, obj):\n return '{}'.format(obj.value)\n # output some as: mark_safe(\"something\")\n\n\nif value is `5`, will display:\n\n**5** and not `5` on admin page.\n\n* **Cached field**\n\nIf you, for some reason, need to cache a custom field on admin\n\n.. code-block:: python\n\n @easy.cache(10)# in secondd, default is 60\n def some_field_with_html(self, obj):\n return obj.related.some_hard_word()\n\nIf you change something on your model, or some related object, you can clean this cache using this easy way:\n\n.. code-block:: python\n\n import easy\n # wherever you want\n easy.cache_clear(my_model_instance)\n\n # or\n class MyModel(models.Model):\n # ... fields\n\n def save(*args, **kwargs):\n easy.cache_clear(self)\n super(MyModel, self).save(*args, **kwargs)\n\n\n* **Django template filter**\n\nCan be used with all template filters on your project.\n\n.. code-block:: python\n\n # builtin template filter like {{ value|title }}\n @easy.filter('title')\n def some_field_with_html(self, obj):\n return 'ezequiel bertti'\n # output: \"Ezequiel Bertti\"\n\n # like {% load i10n %} and {{ value|localize }}\n @easy.filter('localize', 'l10n')\n def some_field_with_html(self, obj):\n return 10000\n # output: \"10.000\"\n\n # like {{ value|date:'y-m-d' }}\n @easy.filter('date', 'default', 'y-m-d')\n def some_field_with_html(self, obj):\n return datetime(2016, 06, 28)\n # output: \"16-06-28\"\n\n* **Django utils functions**\n\nTested with:\n\n.. code-block:: python\n\n @easy.utils('html.escape')\n @easy.utils('html.conditional_escape')\n @easy.utils('html.strip_tags')\n @easy.utils('safestring.mark_safe')\n @easy.utils('safestring.mark_for_escaping')\n @easy.utils('text.slugify')\n @easy.utils('translation.gettext')\n @easy.utils('translation.ugettext')\n @easy.utils('translation.gettext_lazy')\n @easy.utils('translation.ugettext_lazy')\n @easy.utils('translation.gettext_noop')\n @easy.utils('translation.ugettext_noop')\n def your_method(self, obj):\n return obj.value\n\nMore Examples\n-------------\n\n.. code-block:: python\n\n from django.contrib import admin\n import easy\n\n class YourAdmin(admin.ModelAdmin):\n list_fields = ('id', 'custom1', 'custom2', 'custom3' ... 'customN')\n\n actions = ('simples_action',)\n\n @easy.action('My Little Simple Magic Action')\n def simple_action(self, request, queryset):\n return queryset.update(magic=True)\n\n # actoin only for user that has change permission on this model\n @easy.action('Another Simple Magic Action', 'change')\n def simple_action(self, request, queryset):\n return queryset.update(magic=True)\n\n\n # render a value of field, method, property or your model or related model\n simple1 = easy.SimpleAdminField('model_field')\n simple2 = easy.SimpleAdminField('method_of_model')\n simple3 = easy.SimpleAdminField('related.attribute_or_method')\n simple4 = easy.SimpleAdminField('related_set.count', 'count')\n simple5 = easy.SimpleAdminField(lambda x: x.method(), 'show', 'order_by')\n\n # render boolean fields\n bool1 = easy.BooleanAdminField(lambda x: x.value > 10, 'high')\n\n # render with string format fields\n format1 = easy.FormatAdminField('{o.model_field} - {o.date_field:Y%-%m}', 'column name')\n\n # render foreignkey with link to change_form in admin\n fk1 = easy.ForeignKeyAdminField('related')\n\n # render foreignkey with link to change_form in admin and related_id content as text\n fk2 = easy.ForeignKeyAdminField('related', 'related_id')\n\n # render template\n template1 = easy.TemplateAdminField('test.html', 'shorty description', 'order_field')\n\n # render to change_list of another model with a filter on query\n link1 = easy.LinkChangeListAdminField('app_label', 'model_name', 'attribute_to_text',\n {'field_name':'dynamic_value_model'})\n\n link2 = easy.LinkChangeListAdminField('app_label', 'model_name', 'attribute_to_text',\n {'field_name':'dynamic_value_model'},\n {'another_field': 'static_value'})\n\n # display image of some model\n image1 = easy.ImageAdminField('image', {'image_attrs':'attr_value'})\n\n # use django template filter on a field\n filter1 = easy.FilterAdminField('model_field', 'upper')\n filter2 = easy.FilterAdminField('date_field', 'date', 'django', 'y-m-d')\n filter3 = easy.FilterAdminField('float_field', 'localize', 'l18n')\n\n @easy.smart(short_description='Field Description 12', admin_order_field='model_field')\n def custom12(self, obj):\n return obj.something_cool()\n\n @easy.short(desc='Field Description 1', order='model_field', tags=True)\n def decorator1(self, obj):\n return '' + obj.model_field + ''\n\n @easy.short(desc='Field Description 2', order='model_field', bool=True)\n def decorator2(self, obj):\n return obj.model_field > 10\n\n\nIf you want to use on admin form to show some information,\ndon't forget to add your custom field on ``readonly_fields`` attribute of your admin class\n\n.. code-block:: python\n\n from django.contrib import admin\n import easy\n\n class YourAdmin(admin.ModelAdmin):\n fields = ('custom1', 'custom2', 'custom3' ... 'customN')\n readonly_fields = ('custom1', 'custom2', 'custom3' ... 'customN')\n\n custom1 = easy.ForeignKeyAdminField('related')\n # ...\n\nAnother way to use is directly on ``list_fields`` declaration:\n\n.. code-block:: python\n\n from django.contrib import admin\n import easy\n\n class YourAdmin(admin.ModelAdmin):\n list_fields = (\n easy.TemplateAdminField('test.html', 'shorty description', 'order_field'),\n easy.ImageAdminField('image', {'image_attrs':'attr_value'}),\n # ...\n )\n\n # ...\n\nMixin\n-----\n\nTo help you to create a custom view on django admin, we create de MixinEasyView for your Admin Classes\n\n.. code-block:: python\n\n from django.contrib import admin\n import easy\n\n class MyModelAdmin(easy.MixinEasyView, admin.ModelAdmin):\n # ...\n\n def easy_view_jump(self, request, pk=None):\n # do something here\n return HttpResponse('something')\n\nTo call this view, you can use this reverse:\n\n.. code-block:: python\n\n from django.core.urlresolvers import reverse\n\n # to do something with one object of a model\n reverse('admin:myapp_mymodel_easy', args=(obj.pk, 'jump'))\n\n # or to do something with a model\n reverse('admin:myapp_mymodel_easy', args=('jump',))\n\nOr one HTML template\n\n.. code-block:: html\n\n #\n {% url 'admin:myapp_mymodel_easy' obj.pk 'jump' %}\n\n #\n {% url 'admin:myapp_mymodel_easy' 'jump' %}\n\nUtilities\n---------\n\n* Response for admin actions\n\n Return for the change list and show some message for the user keeping or not the filters.\n\n.. code-block:: python\n\n from django.contrib import admin\n from django.contrib import messages\n import easy\n\n class YourAdmin(admin.ModelAdmin):\n # ...\n actions = ('simples_action',)\n\n def simples_action(self, request, queryset):\n\n success = queryset.do_something()\n if success:\n return easy.action_response(request, 'Some success message for user', keep_querystring=False)\n else:\n return easy.action_response(request, 'Some error for user', messages.ERROR)\n\n # or just redirect to changelist with filters\n return easy.action_response()\n\nSo easy, no?\n\nScreenshot\n----------\n\nUsing example of poll of django tutorial\n\n.. image:: https://raw.githubusercontent.com/ebertti/django-admin-easy/master/screenshot/more.png\n\n.. image:: https://raw.githubusercontent.com/ebertti/django-admin-easy/master/screenshot/related.png\n\nPlease help us\n--------------\nThis project is still under development. Feedback and suggestions are very welcome and I encourage you to use the `Issues list `_ on Github to provide that feedback.\n\n.. image:: https://img.shields.io/github/issues/ebertti/django-admin-easy.svg\n :target: https://github.com/ebertti/django-admin-easy/issues\n\n.. image:: https://img.shields.io/waffle/label/ebertti/django-admin-easy/in%20progress.svg?maxAge=2592000\n :target: https://waffle.io/ebertti/django-admin-easy\n\n.. image:: https://img.shields.io/github/forks/ebertti/django-admin-easy.svg \n :target: https://github.com/ebertti/django-admin-easy/network\n\n.. image:: https://img.shields.io/github/stars/ebertti/django-admin-easy.svg\n :target: https://github.com/ebertti/django-admin-easy/stargazers\n\nAuthors\n-------\nThe django-admin-easy was originally created by Ezequiel Bertti `@ebertti `_ October 2014.\n\nChangelog\n---------\n* 0.5.1\n\n * Add permission on action decorator\n\n* 0.4.1\n\n * Django 2.0\n\n* 0.4\n\n * Django 1.11\n * Create module utils with action_response\n\n* 0.3.2\n\n * Add params_static to LinkChangeListAdminField\n\n* 0.3.1\n\n * Add FormatAdminField\n\n* 0.3\n\n * Add import from `__future__` on all files\n * Django 1.10\n * More decorators\n * More admin fields\n\n* 0.2.2\n\n * Add MixinEasyView\n\n* 0.2.1\n\n * Fix for Django 1.7 from `@kevgathuku `_\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.com/ebertti/django-admin-easy/", "keywords": "admin field fields django easy simple", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-admin-easy", "package_url": "https://pypi.org/project/django-admin-easy/", "platform": "OS Independent", "project_url": "https://pypi.org/project/django-admin-easy/", "project_urls": { "Homepage": "http://github.com/ebertti/django-admin-easy/" }, "release_url": "https://pypi.org/project/django-admin-easy/0.5.1/", "requires_dist": [ "django" ], "requires_python": "", "summary": "Collection of admin fields and decorators to help to create computed or custom fields more friendly and easy way", "version": "0.5.1" }, "last_serial": 5274155, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "7508ec00ee5cab038486d68bbf754c7b", "sha256": "c4a1ab3b5dbf04a1af9c15b838784aa137690218029387399a94eaa0077eb1b0" }, "downloads": -1, "filename": "django-admin-easy-0.1.zip", "has_sig": false, "md5_digest": "7508ec00ee5cab038486d68bbf754c7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7835, "upload_time": "2014-10-03T09:20:57", "url": "https://files.pythonhosted.org/packages/cf/e5/20c2614c1ef48ae8a177d61e930ba9185091de0ed3913e5eec9509222a45/django-admin-easy-0.1.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ee306cf8a9b368f6dcc13e5c2d1f7d47", "sha256": "637a2d04d288ad48377d5569920e0e386b83c13e0008d16f545c664289732bcb" }, "downloads": -1, "filename": "django-admin-easy-0.1.1.zip", "has_sig": false, "md5_digest": "ee306cf8a9b368f6dcc13e5c2d1f7d47", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8256, "upload_time": "2014-10-10T18:52:56", "url": "https://files.pythonhosted.org/packages/d0/36/a9813ef299a012fe7aff8a22898cf714ace86aa34bb8368606de1278ce29/django-admin-easy-0.1.1.zip" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "f107707a264410823dd81ccf527ac86a", "sha256": "125c29d72f4ff1ad553abb0e31dd7ddd27bcc682d9ebd2aab73bdfb4f8c970a5" }, "downloads": -1, "filename": "django-admin-easy-0.1.5.zip", "has_sig": false, "md5_digest": "f107707a264410823dd81ccf527ac86a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8890, "upload_time": "2014-10-13T04:38:32", "url": "https://files.pythonhosted.org/packages/56/ea/b223f2d009de6e842d21460f356b3591242187db9e8e6849547e6be39cb0/django-admin-easy-0.1.5.zip" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "b90323dd88e8b53cf48e0dc0c2c38bbc", "sha256": "39a85b2997c3a110419689a5d2b4f48ba00a1fe9b9bc8c1158cb9d7eade3bc82" }, "downloads": -1, "filename": "django-admin-easy-0.1.6.zip", "has_sig": false, "md5_digest": "b90323dd88e8b53cf48e0dc0c2c38bbc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10994, "upload_time": "2014-10-31T03:52:08", "url": "https://files.pythonhosted.org/packages/04/e2/259aca11bb92b14146f997b6e82e8d7813250fb0ef4851e15708342f0f76/django-admin-easy-0.1.6.zip" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "0cc3da75e80b201d37bf242adc01c140", "sha256": "66baad7cd6c9ecc9d4d49d9420f0b260b2b6a959343f4d9fb65580a0ab5dafb9" }, "downloads": -1, "filename": "django-admin-easy-0.2.zip", "has_sig": false, "md5_digest": "0cc3da75e80b201d37bf242adc01c140", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13313, "upload_time": "2014-12-01T05:10:15", "url": "https://files.pythonhosted.org/packages/13/9d/2e39ce0fc7a5fa591536db5ccf4de025f17cdc03eb0a691bfc3e08ec2927/django-admin-easy-0.2.zip" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "baf92db1f7106b03c356179308ec3424", "sha256": "68972c95d67adfa9be3d647eef6cd41cb34f6d543c7fd8b5e32129b67ddb5a89" }, "downloads": -1, "filename": "django-admin-easy-0.2.1.zip", "has_sig": false, "md5_digest": "baf92db1f7106b03c356179308ec3424", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13581, "upload_time": "2014-12-30T23:59:10", "url": "https://files.pythonhosted.org/packages/5d/60/f19d19369acee7af979b0b90ddb131ba4ba8e14f1bf25de242054738851d/django-admin-easy-0.2.1.zip" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "6b88d83cfc0a5a86f9ea224d97a4f24d", "sha256": "a947f8e6e9a89357b31de5003a08e8bcd4f76d5a0cdb63ac3cfd4b7f295ec0a3" }, "downloads": -1, "filename": "django-admin-easy-0.2.2.zip", "has_sig": false, "md5_digest": "6b88d83cfc0a5a86f9ea224d97a4f24d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14940, "upload_time": "2015-02-14T02:48:02", "url": "https://files.pythonhosted.org/packages/f5/67/29bfb50589da389352d3472914240391537e915db6796ae706b6b1f77ee7/django-admin-easy-0.2.2.zip" } ], "0.2.2.1": [ { "comment_text": "", "digests": { "md5": "4c502cec0bc3fae15532a5b40e75bea8", "sha256": "9a5b995403a9eff4742cfa9899856ab1aedd43e5e3ff78a3f51a520867bcc111" }, "downloads": -1, "filename": "django-admin-easy-0.2.2.1.zip", "has_sig": false, "md5_digest": "4c502cec0bc3fae15532a5b40e75bea8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15682, "upload_time": "2015-02-14T19:44:20", "url": "https://files.pythonhosted.org/packages/8a/cb/095eb970ccb8f7c77cc65d1a935cec817e316e873b168124d49b8bd51877/django-admin-easy-0.2.2.1.zip" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "059ad2329b04ccf251da7014bff57a2f", "sha256": "0bfd96cbbd75114716bc8b25c0e7d64d4ad17dea9bff99c13bf46e8f83984b70" }, "downloads": -1, "filename": "django-admin-easy-0.3.zip", "has_sig": false, "md5_digest": "059ad2329b04ccf251da7014bff57a2f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21380, "upload_time": "2016-06-27T03:12:45", "url": "https://files.pythonhosted.org/packages/50/dd/35f9ad24744bad309cc51679ee0178f23860d8c9e6bdbf9f4a0de64f8a0a/django-admin-easy-0.3.zip" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "30b51e51a8081580fb022bed15db7879", "sha256": "de674b89806aa5c6320478e2ab3cc575e3832eab7bb8ee2c5eda93dbdcb5236b" }, "downloads": -1, "filename": "django-admin-easy-0.3.1.tar.gz", "has_sig": false, "md5_digest": "30b51e51a8081580fb022bed15db7879", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16767, "upload_time": "2016-11-22T23:25:05", "url": "https://files.pythonhosted.org/packages/54/61/e7108b9185f54b991f47d20e4c86a6028e8f53703568df0265922dbcbb5a/django-admin-easy-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "774cca0ff98467d539a69dfe168da806", "sha256": "0ff5f36c11a894e567ca775ac3aff7764d1e3bac6202e429d62958c605e92a6e" }, "downloads": -1, "filename": "django-admin-easy-0.3.2.tar.gz", "has_sig": false, "md5_digest": "774cca0ff98467d539a69dfe168da806", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16964, "upload_time": "2016-12-26T00:49:27", "url": "https://files.pythonhosted.org/packages/e0/05/8ecc742f2b2c190615acb29c0738d550574e2fae0a698d937b5aa5ec1e85/django-admin-easy-0.3.2.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "a261840198edb6099fce7d141a04218f", "sha256": "cd7a41078f127acb570ee6578710314319b0dc91ab1d1f8e3b3fa7acfb21c7b7" }, "downloads": -1, "filename": "django-admin-easy-0.4.tar.gz", "has_sig": false, "md5_digest": "a261840198edb6099fce7d141a04218f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17910, "upload_time": "2017-08-31T22:03:57", "url": "https://files.pythonhosted.org/packages/91/b9/24f8ebbedf195aac18a48da19b449d25b0a8674bc3319c56be2bee88b1c5/django-admin-easy-0.4.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "4dc42416b1dcea8de8d082fd7b01acfa", "sha256": "1c40045f08add26eddbf8b59a1b463263dec4a2d92ca2f83eee8149d8994a6b5" }, "downloads": -1, "filename": "django_admin_easy-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4dc42416b1dcea8de8d082fd7b01acfa", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18686, "upload_time": "2018-01-24T16:27:39", "url": "https://files.pythonhosted.org/packages/21/96/91281a69170858caf31a12f8b35b81e9153a301bc6a65bc3b4909cfabe4c/django_admin_easy-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3d4a443a050fb0462a6737d8e3140ffd", "sha256": "1c6f5af2fa37d7b85f360a59f0ffa8f43fc2ef8dd3feeeab9d81b492aedabfde" }, "downloads": -1, "filename": "django-admin-easy-0.4.1.tar.gz", "has_sig": false, "md5_digest": "3d4a443a050fb0462a6737d8e3140ffd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16053, "upload_time": "2018-01-24T16:27:40", "url": "https://files.pythonhosted.org/packages/89/28/5f480d9610b75dbf7ddd171c55757535c7d331e911dbc229d21a7a430392/django-admin-easy-0.4.1.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "954c3e6c57f252d9b29f856974fade08", "sha256": "94ff1b3a7df2619d25dd89cf562391e36ce74d997276f6cc63b5a0867baf42f8" }, "downloads": -1, "filename": "django_admin_easy-0.5-py3-none-any.whl", "has_sig": false, "md5_digest": "954c3e6c57f252d9b29f856974fade08", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14269, "upload_time": "2018-09-15T22:31:49", "url": "https://files.pythonhosted.org/packages/e5/d4/894bf753b851b9e7f7e0c5689ce39c776be6c02a3866d60ecce3450666d7/django_admin_easy-0.5-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f7cae63edf4a82af4a3cdd5d60e54a6e", "sha256": "2c16c7379119a2155124436f9bd80581c2b08e5368bccbd65c83aca3e58fe4e3" }, "downloads": -1, "filename": "django-admin-easy-0.5.tar.gz", "has_sig": false, "md5_digest": "f7cae63edf4a82af4a3cdd5d60e54a6e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16547, "upload_time": "2018-09-15T22:31:51", "url": "https://files.pythonhosted.org/packages/1b/db/1b58d68f8b699715d1a7aba70b8ec08083ee6dae4a4ceeb8d1dc130d9f9b/django-admin-easy-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "d0d78493298a6d8a3c7ba07c66589835", "sha256": "e2ec5dd5f6ca1862af2d37e68244defdc471e3844aec69f97664252af3e73201" }, "downloads": -1, "filename": "django_admin_easy-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d0d78493298a6d8a3c7ba07c66589835", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14477, "upload_time": "2019-05-15T19:59:01", "url": "https://files.pythonhosted.org/packages/0d/cc/65ec041934e1596fbd8d9e1b92b2df000959e301ec59eab8d985da80946d/django_admin_easy-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cbb7b9456baa69a73a7fc0b92c0bc78", "sha256": "cf756dc3af67f6ddff751debcc186f4fca25f919a524b48a4562ed59cd3b8cdc" }, "downloads": -1, "filename": "django-admin-easy-0.5.1.tar.gz", "has_sig": false, "md5_digest": "4cbb7b9456baa69a73a7fc0b92c0bc78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16812, "upload_time": "2019-05-15T19:59:05", "url": "https://files.pythonhosted.org/packages/b6/3b/6dc7cfd29f231d4de322613d699f0b6a6d184de428e1b18d51c8834e07cc/django-admin-easy-0.5.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d0d78493298a6d8a3c7ba07c66589835", "sha256": "e2ec5dd5f6ca1862af2d37e68244defdc471e3844aec69f97664252af3e73201" }, "downloads": -1, "filename": "django_admin_easy-0.5.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d0d78493298a6d8a3c7ba07c66589835", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 14477, "upload_time": "2019-05-15T19:59:01", "url": "https://files.pythonhosted.org/packages/0d/cc/65ec041934e1596fbd8d9e1b92b2df000959e301ec59eab8d985da80946d/django_admin_easy-0.5.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4cbb7b9456baa69a73a7fc0b92c0bc78", "sha256": "cf756dc3af67f6ddff751debcc186f4fca25f919a524b48a4562ed59cd3b8cdc" }, "downloads": -1, "filename": "django-admin-easy-0.5.1.tar.gz", "has_sig": false, "md5_digest": "4cbb7b9456baa69a73a7fc0b92c0bc78", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16812, "upload_time": "2019-05-15T19:59:05", "url": "https://files.pythonhosted.org/packages/b6/3b/6dc7cfd29f231d4de322613d699f0b6a6d184de428e1b18d51c8834e07cc/django-admin-easy-0.5.1.tar.gz" } ] }