{ "info": { "author": "Slawek Ehlert", "author_email": "slafs@op.pl", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Utilities" ], "description": "django-selectable-select2\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n.. _issue in select2: https://github.com/ivaynberg/select2/issues/466\n\n.. warning::\n This is still a work in progress. Some backwards incompatible changes may happen between releases.\n\nThis project is a kind of a plugin for `django-selectable`_.\n\nIt provides widgets for use with a great JS library called `select2`_ rather than jQuery UI.\n\nFor now there's only a basic single-valued autocomplete widget for usage on ForeignKey (or simply ModelChoiceField) fields.\n\nInstallation\n=============\n\n\n* install `django-selectable`_ (you can ommit the part regarding jquery-ui)\n\n* install `django-selectable-select2` like so::\n\n pip install django-selectable-select2\n\n* add `selectable_select2` to `INSTALLED_APPS`. So it look like this::\n\n INSTALLED_APPS = (\n ...\n 'selectable',\n 'selectable_select2',\n ...\n )\n\n* add/change a setting ``SELECTABLE_ESCAPED_KEYS`` like this::\n\n SELECTABLE_ESCAPED_KEYS = ('label', 'value')\n\n\nYou can also get all the static files dependencies like this::\n\n pip install django-staticfiles-jquery\n pip install django-staticfiles-select2\n\nand add them to ``INSTALLED_APPS``::\n\n INSTALLED_APPS = (\n ...\n 'jquery',\n 'staticfiles_select2',\n ...\n )\n\n\n\nUsage\n============\n\n* define your `lookup class`_\n\n* in your forms you can use ``selectable_select2.widgets.AutoCompleteSelect2Widget`` like so::\n\n from selectable_select2.widgets import AutoCompleteSelect2Widget\n from django import forms\n\n from myapp.models import MyModel # example model with a ForeignKey called ``myfk``\n from myapp.lookups import MyModelLookup # the lookup defined in previous step\n\n class MyModelForm(forms.ModelForm):\n\n class Meta:\n model = MyModel\n widgets = {\n 'myfk' : AutoCompleteSelect2Widget(MyModelLookup, placeholder='select related item')\n }\n\nHow to include static assets?\n----------------------------------\n\n.. warning::\n\n As of version 0.4.0 `django-selectable-select2` doesn't include any static files dependencies for select2 itself.\n Use `django-staticfiles-select2` and/or `django-staticfiles-jquery` if you don't have them already in your project.\n\nYou can mannually include those assets (assuming you're using django-staticfiles). Like so::\n\n \n \n \n \n\n \n
\n {{ form.as_p }}\n

\n
\n\n \n \n \n \n \n\nChained selects\n----------------\n\nThere is a way to do chained selects in `django-selectable`.\nCheck out the `docs about chained selects`_ to correctly prepare your lookup classes\nfor this use case (you can skip the javascript part).\nDjango-selectable-select2 provides a helper class to declare dependencies of your chained selects\non your form.\n\nSo given the lookup, from the above link and assuming that MyModel has ForeignKeys\nfor city and state, your form class can inherit from ``Select2DependencyModelForm``\nand define ``select2_deps`` attribute like this::\n\n from selectable_select2.forms import Select2DependencyModelForm\n from django import forms\n from selectable_select2.widgets import AutoCompleteSelect2Widget\n\n class ChainedForm(Select2DependencyModelForm):\n\n select2_deps = (\n ('city', { 'parents' : ['state'] }),\n )\n\n class Meta:\n model = MyModel\n widgets = {\n 'city' : AutoCompleteSelect2Widget(CityLookup, placeholder='select city')\n }\n\nThere is also ``Select2DependencyForm`` which is suitable for non-model based forms.\n\n.. note::\n Both ``Select2DependencyModelForm`` and ``Select2DependencyForm``\n in ``selectable_select2.forms`` module inherit from a general class called\n ``Select2DependencyFormMixin`` which defines one method called ``apply_select2_deps``.\n Don't hesitate to browse the source of those classes.\n\n\n``select2_deps`` is a tuple of two-tuples in form `('' : { })`\nwhere the `options dict` is a Python dictionary that configurates the dependencies for that field.\n\nReference for the `options dict`:\n\nparents\n List of field names that are superior for the given field.\n Like in the above example you can choose a `city` depending on what `state` you've chosen.\n The field can be dependant from more than one parent. Defaults to: **[]**.\n\nclearonparentchange\n Boolean (True/False) that indicates whether a field should be cleared when a user\n changes the selection/value of one of it's parents. Defaults to: **True**.\n\nparents_namemap\n A convenient option (python dictionary) for indicating which key name is sent via ajax for which parent.\n E.g. Assume that field ``child`` depends on ``parent1`` and ``parent2`` in our\n chained selects. You can specify::\n\n select2_deps = (\n ('child', {\n parents : ['parent1', 'parent2' ]\n parents_namemap : { 'parent1' : 'parent', 'parent2' : 'parent' }\n }),\n )\n\n Then your lookup can be cleaner and you can search only for ``parent`` key\n instead of juggling with ``parent1`` and ``parent2`` in your ``get_query``\n method. Defaults to: **{}**.\n\nCheck the `example` project for more details.\n\n\nTODO\n======\n\ncheck out `TODO.rst`\n\nA note about version of django-selectable\n===========================================\n\nThe minimal version of django-selectable that is required for this app is 0.7\n\nCredits\n==========\n\nA BIG THANK YOU goes to `Igor Vaynberg`_ (`select2`_) and `Mark Lavin`_ (`django-selectable`_)\nfor their projects, their support and quick response time in resolving my issues.\n\n.. _Igor Vaynberg: https://github.com/ivaynberg\n.. _Mark Lavin: https://bitbucket.org/mlavin\n\n.. _docs about chained selects: http://django-selectable.readthedocs.org/en/latest/advanced.html#chained-selection\n.. _7baa3b9e9: https://github.com/ivaynberg/select2/commit/7baa3b9e93690b7dacad8fbb22f71b8a3940e04d\n.. _django-selectable: https://bitbucket.org/mlavin/django-selectable\n.. _select2: http://ivaynberg.github.com/select2/index.html\n.. _lookup class: http://django-selectable.readthedocs.org/en/latest/lookups.html\n.. _issue #64: https://bitbucket.org/mlavin/django-selectable/issue/64/decouple-building-results-from", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/slafs/django-selectable-select2/", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-selectable-select2", "package_url": "https://pypi.org/project/django-selectable-select2/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-selectable-select2/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/slafs/django-selectable-select2/" }, "release_url": "https://pypi.org/project/django-selectable-select2/0.4.0/", "requires_dist": null, "requires_python": null, "summary": "plugin for django-selectable (to use with select2 UI)", "version": "0.4.0" }, "last_serial": 1249256, "releases": { "0.1.2": [ { "comment_text": "", "digests": { "md5": "f1a54aae265eb264917cc8b48647ab1c", "sha256": "5c8bdd026d0e76fa96f14609c3b57af8fb9a378332eb8daa87028c27fe8262f0" }, "downloads": -1, "filename": "django-selectable-select2-0.1.2.tar.gz", "has_sig": false, "md5_digest": "f1a54aae265eb264917cc8b48647ab1c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21142, "upload_time": "2012-08-27T08:57:16", "url": "https://files.pythonhosted.org/packages/d2/4c/b6860b3f9ae364780850edbaac9ae04c8994ba8fe1bac57c16c3846640c5/django-selectable-select2-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "7c01630538a0a6ba0a8a8193a2f973b8", "sha256": "91d08cee7329879ec5d33f90f0f6eed96f18ed55282ac3d03693260828f1cc6d" }, "downloads": -1, "filename": "django-selectable-select2-0.1.3.tar.gz", "has_sig": false, "md5_digest": "7c01630538a0a6ba0a8a8193a2f973b8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21138, "upload_time": "2012-08-27T09:02:47", "url": "https://files.pythonhosted.org/packages/b2/c6/433b0b747c11b1b71b3a9f44eb1a367b15d276305abfe52398aba69ca862/django-selectable-select2-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "564f5aaae706eb668d5f8abe9a699269", "sha256": "c4b22b386f1ff4acccdf574d13f4f8f6438c88138210fc30f661dd6fc8e9ead5" }, "downloads": -1, "filename": "django-selectable-select2-0.1.4.tar.gz", "has_sig": false, "md5_digest": "564f5aaae706eb668d5f8abe9a699269", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21148, "upload_time": "2012-08-27T09:10:02", "url": "https://files.pythonhosted.org/packages/25/65/b5c876fde264477d06a76b625069df7b4f651575eb925fba07db6caffbd4/django-selectable-select2-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "ae48f8c4cb7650b12d541aad701b1d8e", "sha256": "1359a3c4328f0d480cfaec9c74fd7a29165ffc79b4ee25fbec785e399088c23f" }, "downloads": -1, "filename": "django-selectable-select2-0.1.5.tar.gz", "has_sig": false, "md5_digest": "ae48f8c4cb7650b12d541aad701b1d8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21376, "upload_time": "2012-08-27T21:35:22", "url": "https://files.pythonhosted.org/packages/70/54/cc7462801905a8a999ecd9fcd6ffc3c9812939dc597dd73af67d424079ab/django-selectable-select2-0.1.5.tar.gz" } ], "0.1.6": [ { "comment_text": "", "digests": { "md5": "26c8242b46f02a153074446ac3b436a7", "sha256": "faf6d91e8766d92a8df3bd233035770c037f11aef6439026ee837e839a82abdb" }, "downloads": -1, "filename": "django-selectable-select2-0.1.6.tar.gz", "has_sig": false, "md5_digest": "26c8242b46f02a153074446ac3b436a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21377, "upload_time": "2012-08-27T21:59:01", "url": "https://files.pythonhosted.org/packages/e5/c3/982aedfe36fde6618a02f020c6dcf2a2e24f8d0287827d6b514a56a72f16/django-selectable-select2-0.1.6.tar.gz" } ], "0.1.7": [ { "comment_text": "", "digests": { "md5": "f0b50ad45b206005a117b95f153a869b", "sha256": "f977ed30295904e9412650c060b36f7752557d1eb35eca34283d7f658b1b0421" }, "downloads": -1, "filename": "django-selectable-select2-0.1.7.tar.gz", "has_sig": false, "md5_digest": "f0b50ad45b206005a117b95f153a869b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21384, "upload_time": "2012-08-28T13:19:24", "url": "https://files.pythonhosted.org/packages/00/b7/d916a1761bae97273ca301769f3c12f19b5b2808118fde64e03e58a2817e/django-selectable-select2-0.1.7.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2049a9dd7d74957aa6fcd93631d64a73", "sha256": "c397427102ae5038b5806ba5ac1818f45484c39766e88a2a185a1814eca607ed" }, "downloads": -1, "filename": "django-selectable-select2-0.2.0.tar.gz", "has_sig": false, "md5_digest": "2049a9dd7d74957aa6fcd93631d64a73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22455, "upload_time": "2012-08-31T14:46:59", "url": "https://files.pythonhosted.org/packages/69/35/c3119fddf5a903b74892e026d441d4642ba47921bd4d2cf3c158150d6af4/django-selectable-select2-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "53a7d15eb39554c129d31d75519d8883", "sha256": "f64a36ab0882adf5783848296c46a7b5d974e6c74f365f8015d77756d4602ce7" }, "downloads": -1, "filename": "django-selectable-select2-0.2.1.tar.gz", "has_sig": false, "md5_digest": "53a7d15eb39554c129d31d75519d8883", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24043, "upload_time": "2012-09-04T13:56:17", "url": "https://files.pythonhosted.org/packages/1a/ca/773dbf58a3f41146ca3c69e32bf4e15f27e9f67e561e23ac688d90cc735f/django-selectable-select2-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "ba3bae76220878ad29f4c848ec582edd", "sha256": "0e58207dd12e73b3bcb68aaa91c817b80a133803ceca7e3e50ea803d4583b9df" }, "downloads": -1, "filename": "django-selectable-select2-0.2.2.tar.gz", "has_sig": false, "md5_digest": "ba3bae76220878ad29f4c848ec582edd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24096, "upload_time": "2012-09-20T22:07:04", "url": "https://files.pythonhosted.org/packages/04/41/8a9b5ee0712e421e6ef79ac576c811c54a0374038ed996f8c9a74114fc10/django-selectable-select2-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "0cc635d13a3abae83c8d119ca56aa6e8", "sha256": "332370115e8f30f4b22d2735e326b56fa2230e54f69d9786ff834fe207422726" }, "downloads": -1, "filename": "django-selectable-select2-0.2.3.tar.gz", "has_sig": false, "md5_digest": "0cc635d13a3abae83c8d119ca56aa6e8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24968, "upload_time": "2012-09-24T21:11:36", "url": "https://files.pythonhosted.org/packages/04/30/45021578741cc5b0606ddc8c92eb6ed26c5baed9adb02174b3cf4d6fe0e4/django-selectable-select2-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "dcf7e7cab2a18cadf67c4155d5a08082", "sha256": "78a3141eed109b6170c228902b64bed4e8a34c78574d3c2aa2c0be7c8622ab24" }, "downloads": -1, "filename": "django-selectable-select2-0.3.0.tar.gz", "has_sig": false, "md5_digest": "dcf7e7cab2a18cadf67c4155d5a08082", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24212, "upload_time": "2013-10-31T08:44:14", "url": "https://files.pythonhosted.org/packages/02/9c/a5d6d3ab64c1b5fec126b930070568f0edd0000039aca963e9561dedb79d/django-selectable-select2-0.3.0.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "ad617795a48efa8e3dbff44e9804220d", "sha256": "40e4926f554e9d6a31ff5d51c333f541b77d957f790128aaab42245b680014ee" }, "downloads": -1, "filename": "django-selectable-select2-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ad617795a48efa8e3dbff44e9804220d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8883, "upload_time": "2014-10-06T10:54:56", "url": "https://files.pythonhosted.org/packages/5e/00/217ba5ccf3168374cdb90ba6a258bcdf2f7a63dd7067e4c8c6680a9bf248/django-selectable-select2-0.4.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ad617795a48efa8e3dbff44e9804220d", "sha256": "40e4926f554e9d6a31ff5d51c333f541b77d957f790128aaab42245b680014ee" }, "downloads": -1, "filename": "django-selectable-select2-0.4.0.tar.gz", "has_sig": false, "md5_digest": "ad617795a48efa8e3dbff44e9804220d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8883, "upload_time": "2014-10-06T10:54:56", "url": "https://files.pythonhosted.org/packages/5e/00/217ba5ccf3168374cdb90ba6a258bcdf2f7a63dd7067e4c8c6680a9bf248/django-selectable-select2-0.4.0.tar.gz" } ] }