{ "info": { "author": "Russell Keith-Magee", "author_email": "russell@keith-magee.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 1 - Planning", "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", "Topic :: Utilities" ], "description": "Ray's Widget Exchange\n=====================\n\nRay's Widget Exchange is a project exploring the client-side of Django\nwebsite development. The intention is to provide tools, widgets, views\nand other services that aren't appropriate for the Django core, but are\nstill essential for website development.\n\nInitial goals:\n\nWe aim to provide a simple set of widgets that can be easily integrated into a\nDjango form:\n\n* A calendar widget\n\n* A numerical range widget\n\n* A time widget\n\n* An AJAX autocomplete widget\n\n* A color palette\n\n - full RGB selection\n\n - selection from subset of colors\n\n\nLonger term goals:\n\n* Handle compression and aggregation of CSS and JavaScript artefacts. (Note by\n Reinout: probably not, as an app should do only one thing:\n compression/aggregation can be done by other apps).\n\n* Client-side input validation (possibly by Ajax callback?)\n\n\nInstallation\n------------\n\nRay's widget exchange depends on `django-staticfiles\n`_ as that's the best way at\nthe moment to handle css and javascript files. It is also, probably, going to\nend up in one form or the other in Django 1.3.\n\n- django-rays' ``setup.py`` has an automatic dependency on django-staticfiles,\n so installing django-rays automatically brings in django-staticfiles.\n\n- Add both ``rays`` and ``staticfiles`` to your settings file's\n ``INSTALLED_APPS``.\n\nDjango-staticfiles needs a bit of boilerplate. Django 1.3 ought to make this\nunnecessary, btw. The `official django-staticfiles documentation\n`_ has more elaborate\ninformation and there's also a `blog post\n`_\nwith a more narrative explanation and example snippets.\n\n- In sites where you use django-rays, you will need to add a little bit of\n django-staticfiles boiler plate code to your settings file ::\n\n # Used for django-staticfiles\n STATIC_URL = '/static_media/'\n TEMPLATE_CONTEXT_PROCESSORS = (\n # Default items.\n \"django.core.context_processors.auth\",\n \"django.core.context_processors.debug\",\n \"django.core.context_processors.i18n\",\n \"django.core.context_processors.media\",\n # Needs to be added for django-staticfiles to allow you to use\n # {{ STATIC_URL }}myapp/my.css in your templates.\n 'staticfiles.context_processors.static_url',\n )\n\n- And in your urlconf, add something like this to the end of your\n ``urls.py``::\n\n if settings.DEBUG:\n # Add this also to the projects that use this application.\n # It allows django-staticfiles to serve up the /media files\n # in DEBUG mode.\n urlpatterns += patterns('',\n (r'', include('staticfiles.urls')),\n )\n\n- In production, use the ``build_static`` management command to prepare all\n static files for apache.\n\n\nThe css/js inclusion is happening by using `Django's form media handling\n`_. So don't forget\nto add your equivalent of::\n\n {{ form.media }}\n\nsomewhere in the head of your templates.\n\n\nDevelopment\n-----------\n\nThe source code is `on bitbucket\n`_. The `bug tracker\n`_\nis also there.\n\nFor developers that want to use buildout, a small ``buildout.cfg`` that sets\nup a development and testing environment is provided. Otherwise use your\nregular virtualenv/pip setup, of course.\n\nRun ``python bootstrap.py`` and ``bin/buildout`` to initialize the buildout\nenvironment and to fetch all dependencies. Now you can check run tests with\n``bin/test``.\nYou can setup a simple example project with ``bin/django syncdb``. Now run\n``bin/django runserver`` to start the development server and point your\nbrowser to ``http://localhost:8000/``.\n\n\nWidget documentation\n====================\n\n\nAutocomplete\n------------\n\nThe ``AutocompleteInput`` widget hooks up a regular text input widget with\n`jquery-ui's autocomplete `_. It\ncurrently hooks up jquery's autocomplete with a url that provides the\nnecessary data (see jquery's `remote datasource demo\n`_.\n\nThe url should accept a ``term`` ``GET`` parameter and return a json list of\ndictionaries. The dictionaries must have the key \"value\" and/or \"label\". If\none of them is missing, the other is used twice. The label is the\nuser-visible string and the value is the value being put into the form data.\n\nYou can pass the widget either a ``url`` (just the url to be called) or a\n``urlname`` (a name that's looked up in the urlconf).\n\n\nExample usage::\n\n from django import forms\n from rays.widgets import AutocompleteInput\n\n\n class AnimalForm(forms.Form):\n name = forms.CharField(\n label=_('Enter animal name'),\n max_length=50,\n widget=AutocompleteInput(urlname='autocomplete-animals'))\n\n\nDatepicker\n----------\n\nThe ``DatepickerInput`` widget hooks up a regular text input widget with\n`jquery's datepicker `_.\n\n\nExample usage::\n\n from django import forms\n from rays.widgets import DatepickerInput\n\n\n class DatepickerForm(forms.Form):\n start_date = forms.DateField(widget=DatepickerInput())\n end_date = forms.DateField(widget=DatepickerInput(format='%Y.%m.%d'))\n\n\n\nContributors\n============\n\nThe PRIMARY AUTHORS of Ray's Widget Exchange are:\n\nRussell Keith-Magee \n\nGregory M\u00fcllegger \n\nReinout van Rees http://reinout.vanrees.org\n\nGlen Somerville \n\nAnd here is an inevitably incomplete list of MUCH-APPRECIATED CONTRIBUTORS --\npeople who have submitted patches, reported bugs, and generally made Ray's\nWidget Exchange that much better:\n\n\n\nChangelog\n=========\n\n0.0.1 (unreleased)\n------------------\n\n- Added autocomplete widget.\n\n- Added dateinput widget.\n\n- Added jquery and jquery ui + css and i18n.\n\n- Added django-staticfiles dependency as that's the best thing nowadays for\n dealing with static js/css files.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.bitbucket.org/freakboy3742/django-rays/wiki/", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "django-extrawidgets", "package_url": "https://pypi.org/project/django-extrawidgets/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-extrawidgets/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.bitbucket.org/freakboy3742/django-rays/wiki/" }, "release_url": "https://pypi.org/project/django-extrawidgets/1/", "requires_dist": null, "requires_python": null, "summary": "A project exploring the client-side of Django website development", "version": "1" }, "last_serial": 789595, "releases": { "1": [ { "comment_text": "", "digests": { "md5": "792e6f55b0a53e545d0831e426791bc0", "sha256": "460d58eda3d1d2d4faec83c4ed608a0e29e44158b90cb1d62fdb5ae6480df2a1" }, "downloads": -1, "filename": "django-extrawidgets-1.tar.gz", "has_sig": false, "md5_digest": "792e6f55b0a53e545d0831e426791bc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13079, "upload_time": "2012-06-25T17:46:47", "url": "https://files.pythonhosted.org/packages/fa/8d/b35c3e3f07f1c90c1e42bad2eba0b04bfb0d2f7ffd059f6d8c270b74d282/django-extrawidgets-1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "792e6f55b0a53e545d0831e426791bc0", "sha256": "460d58eda3d1d2d4faec83c4ed608a0e29e44158b90cb1d62fdb5ae6480df2a1" }, "downloads": -1, "filename": "django-extrawidgets-1.tar.gz", "has_sig": false, "md5_digest": "792e6f55b0a53e545d0831e426791bc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13079, "upload_time": "2012-06-25T17:46:47", "url": "https://files.pythonhosted.org/packages/fa/8d/b35c3e3f07f1c90c1e42bad2eba0b04bfb0d2f7ffd059f6d8c270b74d282/django-extrawidgets-1.tar.gz" } ] }