{ "info": { "author": "Nathan R. Yergler", "author_email": "nathan@yergler.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Framework :: Django", "License :: OSI Approved :: BSD License" ], "description": "=====\ndingo\n=====\n\n*dingo* is a `Django`_ application which extends the `Django Admin`_\nto allow the easy creation of additional views for Model classes and\ninstances. dingo also allows you to customize the Admin of third\nparty applications, without subclassing or modifying the original\nsource tree.\n\nFeatures\n========\n\n* Easily create new views for your Model Admin, either at the Model or\n object level.\n* Inject customizations into the admin declaration of a third\n party application without modifying the original code base.\n\nUsage\n=====\n\nTo use dingo, ensure that it's on the Python path, and add it to your\n``INSTALLED_APPS`` setting in ``settings.py``. Note that dingo *must*\nbe installed *before* ``django.contrib.admin``, as it replaces the\ndefault ``AdminSite`` with one which will instrument the\n``ModelAdmin`` classes registered.\n\ndingo requires Django 1.2 or later.\n\nModels vs. Objects\n------------------\n\ndingo can be used to register views for Models or Objects. Views\nregistered for Models are not specific to any instance of the model;\nthey can be thought of as similar to Django admin actions with an\n[potentially] empty queryset. Instance views operate on single model\ninstances; you can think of them as similar to admin actions that\noperate on a single object instead of a queryset.\n\ndingo views differ from `admin actions`_ in a couple of subtle ways.\nThe most important difference is that they may be injected into third\nparty applications wihthout sub-classing or modifying the application\ncode. dingo views also have a different user interface by default.\ndingo includes replacement admin templates which show dingo views as\nbuttons in the upper right hand area of the change list and change\nform views.\n\nAdding Views\n------------\n\nIf you want to use dingo to add model or object views to your Model's\nadmin, you can define them either as functions or as methods on the\nModelAdmin.\n\nFor example, to define the view as a function::\n\n import dingo\n import dingo_test.models\n\n @dingo.object_view(dingo_test.models.RstDocument)\n @dingo.short_description(\"Render\")\n def render(model_admin, request, object_id):\n\n from django.shortcuts import redirect\n document = dingo_test.mdoels.RstDocument.objects.get(id=object_id)\n\n return Response()\n\nThe same view may also be a method on the ModelAdmin::\n\n class RstDocumentAdmin(ModelAdmin):\n\n @dingo.object_view(dingo_test.models.RstDocument)\n @dingo.short_description(\"Render\")\n def render(self, request, object_id):\n pass\n\nNote that the use of the ``short_description`` decorator defines the\nlabel used in the admin user interface, and is optional in this case.\nIf no description is provided, dingo will format the function or\nmethod name, similar to how Django formats default verbose names for\nmodels.\n\nAdding Views to Third Party Applications\n----------------------------------------\n\nSo long as dingo is listed in ``INSTALLED_APPS`` before\n``django.contrib.admin``, the function-based example above will work\nas desired. Note that the code needs to be imported to ensure that\nregistration occurs properly.\n\nMissing Features / Bugs\n=======================\n\n* Model views are significantly less developed than Instance views.\n* Different actions for Models in different AdminSites are not\n currently supported. To accomodate this, a site-local action\n registry will need to be used.\n\n.. _django: http://djangoproject.com/\n.. _Django Admin: http://docs.djangoproject.com/en/1.1/ref/contrib/admin/\n.. _admin actions: http://docs.djangoproject.com/en/1.1/ref/contrib/admin/actions/#ref-contrib-admin-actions", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://gitorious.org/dingo", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "dingo", "package_url": "https://pypi.org/project/dingo/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/dingo/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://gitorious.org/dingo" }, "release_url": "https://pypi.org/project/dingo/0.2.1/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.2.1" }, "last_serial": 788970, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "071e258c61ec0bc588710d68d8844655", "sha256": "eecb321cbc695d10f8a1b444d80a049050a487daca3d0c3f4c974cd036616e27" }, "downloads": -1, "filename": "dingo-0.1.tar.gz", "has_sig": false, "md5_digest": "071e258c61ec0bc588710d68d8844655", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5034, "upload_time": "2010-04-19T05:32:53", "url": "https://files.pythonhosted.org/packages/9f/f5/5ec1589b0f1c927a2df80dcc90d32f0bb6fe00ef1f407ddae6f637e12b47/dingo-0.1.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "45c5fb227ca63ced7a575f7956b5c01b", "sha256": "e630260c23a508d23ab7a15656ae809f2e0de786446a7ce3efebc823af95d803" }, "downloads": -1, "filename": "dingo-0.1.1.tar.gz", "has_sig": false, "md5_digest": "45c5fb227ca63ced7a575f7956b5c01b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7399, "upload_time": "2010-04-19T06:06:46", "url": "https://files.pythonhosted.org/packages/b3/3c/1bef9e6a6230568c614e2c6209ce08976a3c1dac9b4b85435e371283369b/dingo-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "92d153b29eb0202d601d6f344ccbd23e", "sha256": "2aee20eb53661a48fc665efda28711242e557931626cd553dbd37596a3a2324b" }, "downloads": -1, "filename": "dingo-0.2.tar.gz", "has_sig": false, "md5_digest": "92d153b29eb0202d601d6f344ccbd23e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6973, "upload_time": "2010-05-06T23:12:25", "url": "https://files.pythonhosted.org/packages/14/15/3e0ce61e884c370f461bcc34cfcbad96d849793a14a8b8f9ab64d8448fde/dingo-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "3245e54248ff446103bc376d0d5076a4", "sha256": "cade157deabb3d125e730ab60295b4cc47a8852985cce826893484679de59bc5" }, "downloads": -1, "filename": "dingo-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3245e54248ff446103bc376d0d5076a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7161, "upload_time": "2010-06-13T17:41:26", "url": "https://files.pythonhosted.org/packages/27/b7/9a34889aaf5fdef2638acd03b95a419358205118dd07dd599c68624311a8/dingo-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "3245e54248ff446103bc376d0d5076a4", "sha256": "cade157deabb3d125e730ab60295b4cc47a8852985cce826893484679de59bc5" }, "downloads": -1, "filename": "dingo-0.2.1.tar.gz", "has_sig": false, "md5_digest": "3245e54248ff446103bc376d0d5076a4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7161, "upload_time": "2010-06-13T17:41:26", "url": "https://files.pythonhosted.org/packages/27/b7/9a34889aaf5fdef2638acd03b95a419358205118dd07dd599c68624311a8/dingo-0.2.1.tar.gz" } ] }