{ "info": { "author": "Sylvain Viollon", "author_email": "thefunny@gmail.com", "bugtrack_url": null, "classifiers": [ "Framework :: Zope3", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Zope", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "=============\nzeam.form.ztk\n=============\n\n``zeam.form.ztk`` help you to integrate `zeam.form.base`_ with the\nZope Tool Kit. It provides:\n\n- Form fields generation out of zope.schema fields, and zope.schema\n fields listed in a Zope interface,\n\n- Widgets for those fields,\n\n- Default action to Add, Edit a content, Cancel a current action by\n returning on the default view of a content.\n\nLike `zeam.form.base`_ the focus is to have an API usable by the\ndeveloper, not a support of theorical use-cases that you don't need.\n\n.. contents::\n\nExample\n=======\n\nLet's create a form to edit a content. Here we have an interface for\nour content::\n\n from zope import schema, interface\n\n class IClan(interface.Interface):\n pass\n\n class IPerson(interface.Interface):\n\n first_name = schema.TextLine(title=u\"First Name\")\n last_name = schema.TextLine(title=u\"Last Name\")\n age = schema.Int(title=u\"Age\", required=False)\n single = schema.Bool(title=u\"Is single ?\", default=True)\n\nWe assume that a Person is in a Clan. We can implement a Person::\n\n from persistence import Persistent\n\n class Person(Persistent):\n interface.implements(IPerson)\n\n first_name = None\n last_name = None\n age = None\n single = True\n\nAdd form\n--------\n\nYou can add a new Person in a clan like this::\n\n import zeam.form.ztk as form\n\n class Add(form.Form):\n\n form.context(IClan)\n\n label = u\"New person\"\n fields = form.Fields(IPerson)\n actions = form.Actions(\n form.AddAction(\"Add\", factory=Person),\n form.CancelAction(\"Cancel\"))\n actions['add'].fieldName = 'last_name'\n\n\nEdit form\n---------\n\nYou can edit a Person like this::\n\n class Edit(form.Form):\n\n form.context(IPerson)\n\n label = u\"Change person details\"\n fields = form.Fields(IPerson)\n actions = form.Actions(\n form.EditAction(\"Update\"),\n form.CancelAction(\"Cancel\"))\n\n ignoreContent = False\n\n\nAPI\n===\n\nAll the API of ``zeam.form.base`` is exported as well.\n\nActions\n-------\n\n``AddAction``\n Action which take an extra parameter, factory, to create an object\n stored on the content object. The created object is added with the\n help of ``INameChooser`` to get its identifier. The option\n ``fieldName`` will be used to lookup a value in the form data to\n give as potential identifier to ``INameChooser``. Afterwards the\n created object is edited (like EditAction does) with the form data.\n\n``EditAction``\n Action which use the form data to change values on the content\n object, designated by the form fields, after validation of the form\n submission.\n\n``CancelAction``\n Simple action which return on default view of the content without\n validating the form submission.\n\n\nFields\n------\n\nCurrently supported fields:\n\n- Date, Datetime: generate a text line input and parse/display the\n date using the locale,\n\n- TextLine, Text, Boolean, URI, Email, and numbers (Int, Float ...),\n\n- Password,\n\n- Choice: generate a select or a radio boxes (widget mode ``radio``),\n\n- Object,\n\n- Collections: List, Set, Tuple in input and display mode:\n\n - Collection of choices: generate a widget with a list of checkboxes,\n\n - Collection of objects: generate a table to edit multiple objects,\n\n - Other collection: generate a widget with generic add an remove actions.\n\n\nFor more documentation, please report to the doctests included in the code.\n\n\n.. _zeam.form.base: http://pypi.python.org/pypi/zeam.form.base\n\nChangelog\n=========\n\n1.3.6 (2018/01/15)\n------------------\n\n* Fixed the use of defaultFactory\n\n* Updated to newer versions of GTK packages\n\n\n1.3.5 (2016/03/08)\n------------------\n\n* Extended the Mock Library class to make it compatible with the newest\n fanstatic api.\n\n\n1.3.4 (2014/04/15)\n------------------\n\n* Introducing the \"defaultFactory\" attributes from `zope.schema`.\n It was necessary to hijack the default value computing from zope.schema\n DefaultProperty.\n\n\n1.3.3 (2013/12/20)\n------------------\n\n* Update collection javascript not to bind events on the document\n anymore, but on the field. This prevent breakage if the events get\n intercepted. The reordering buttons no longer submit the form, even\n if the javascript isn't included.\n\n* Allow people to customize the ``disabled`` attributes on fields.\n\n* Update collection javascript to work with jQuery 1.9. It now\n requires at least jQuery 1.7.\n\n\n1.3.2 (2013/04/23)\n------------------\n\n* Add a native email widget.\n\n\n1.3.1 (2012/11/19)\n------------------\n\n* Update fields to properly pass along ``zope.schema`` the\n ``contrainValue`` validator.\n\n* Fix all fields to properly handle required (it got broken in the\n previous release for some fields).\n\n\n1.3 (2012/10/12)\n----------------\n\n* Update fields and widgets to no longer proxy\n ``zope.schema``. Instead they do their own validation and are\n standalone (they can be created and used without ``zope.schema``).\n\n* Support more HTML 5 features, like for number fields, and extra\n attributes that can be inserted with the help of ``htmlAttributes``,\n like ``placeholder``...\n\n* Add a ``CurrencyField``, that can be used to display nicely\n currencies.\n\n\n1.2.3 (2012/09/24)\n------------------\n\n* Update API to use ``zeam.form.base`` 1.2.3.\n\n\n1.2.2 (2012/07/25)\n------------------\n\n* Adjust CheckboxWidgetExtractor to convert ``False`` input to bool\n ``False``.\n\n\n1.2.1 (2012/04/27)\n------------------\n\n* Improve choice widgets, to make possible to customize the source of\n it. Add support for a ``IFormSourceBinder``, that works like a\n ``IContextSourceBinder`` except it takes the form as parameter\n instead of the context (thus giving access to request as well for\n instance).\n\n* Add a method ``delete`` to the data manager.\n\n* Now use ``grokcore.chameleon`` instead of ``megrok.chameleon``.\n\n\n1.2 (2011/11/08)\n----------------\n\n* Improve error reporting in collection widgets. Thanks to Novareto\n for the sponsorship.\n\n* Add an validation option in collection widgets while adding and\n removing values from it. Thanks to Novareto for the sponsorship.\n\n* Improve Javascript for collection widgets. Add an extra with\n fanstatic to automatically require required files.\n\n* If a collection widget is required, it will by default display one\n empty item in the collection when it is empty. That prevent an extra\n click to add it.\n\n* Various fixes in ``InvariantsValidator``.\n\n* ``SchemaWidgetExtractor`` and ``SchemaField`` now catch Invalid\n exceptions.\n\n* Add support for the HTML 5 attribute required in every template. Use\n the attribute novalidate on the form tag to disable it.\n\n* Add a display widget for object and uri fields.\n\n* Add an option ``valueLength`` to the date widgets. Any Zope\n formatter size can be use (``short``, ``medium`` ...).\n\n\n1.0 (2010/10/19)\n----------------\n\n* Add a ``multiselect`` widget for multiple choices.\n\n* Add a ``readonly`` widget.\n\n* Add a ``display`` widget for booleans and collections.\n\n* Add HTML5 widgets for URIs.\n\n* Schema field can be adapted now, even if they don't have a interface\n (if they provide an attribute __name__).\n\n* Add more tests, fix issues in collection widgets, and invariant\n validator.\n\n* Translations are all located in ``zeam.form.base``.\n\n* Update to use the last version of ``zeam.form.base``.\n\n1.0rc2 (2010/07/16)\n-------------------\n\n* Add ``radio`` widget for choices.\n\n* Add a display widgets for multiple choices.\n\n* All fields have the ``field`` CSS class.\n\n* Multiple choices widgets now properly respect the value of a vocabulary term.\n\n\n1.0rc1 (2010/07/05)\n-------------------\n\n* Updated entry points registrations to be compatible with latest\n ``zeam.form.base``.\n\n\n1.0b3 (2010/06/22)\n------------------\n\n* Field wrapper registration is now made thanks to an entry point.\n* Added invariants validation.\n* Added A generic adaptive datamanager that can adapt the form content to\n one or several interfaces.\n\n\n1.0b2 (2010/05/13)\n------------------\n\n* Improve widget initialization, and testing layer support.\n* Fix choice widgets when they are used with vocabulary factories.\n\n\n1.0b1 (2010/05/03)\n------------------\n\n* Initial release, with not all the widgets.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://pypi.python.org/pypi/zeam.form.ztk", "keywords": "zeam form zope schema edit content", "license": "BSD", "maintainer": "", "maintainer_email": "", "name": "zeam.form.ztk", "package_url": "https://pypi.org/project/zeam.form.ztk/", "platform": "", "project_url": "https://pypi.org/project/zeam.form.ztk/", "project_urls": { "Homepage": "http://pypi.python.org/pypi/zeam.form.ztk" }, "release_url": "https://pypi.org/project/zeam.form.ztk/1.3.6/", "requires_dist": null, "requires_python": "", "summary": "Zope Toolkit support for zeam.form", "version": "1.3.6" }, "last_serial": 4699133, "releases": { "1.0": [ { "comment_text": "", "digests": { "md5": "2f65b104ba0e153251fe8db8d235e492", "sha256": "ff48d9b95567917918280d7388453b849e279c8f3ee4b84cf60155a853b9a5eb" }, "downloads": -1, "filename": "zeam.form.ztk-1.0.tar.gz", "has_sig": false, "md5_digest": "2f65b104ba0e153251fe8db8d235e492", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 31553, "upload_time": "2010-10-19T09:21:04", "url": "https://files.pythonhosted.org/packages/4d/7b/47f4db59bb3eb23cc8d135a1c4606a93d2ca7b4e66b78d8c0a74b0dde955/zeam.form.ztk-1.0.tar.gz" } ], "1.0b1": [ { "comment_text": "", "digests": { "md5": "e7e1326d5d18cab51f701b5ebeb6b806", "sha256": "2eb797d713f90b3d0159efdb8f2baae5d40169bfd73059db0d6b33905ee3f773" }, "downloads": -1, "filename": "zeam.form.ztk-1.0b1.tar.gz", "has_sig": false, "md5_digest": "e7e1326d5d18cab51f701b5ebeb6b806", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21423, "upload_time": "2010-05-03T12:13:22", "url": "https://files.pythonhosted.org/packages/39/50/61a87acdaa51a6ef51b4f4599abce8c139e4721b48d42f3c83de4887f2c6/zeam.form.ztk-1.0b1.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "67c7e2cd6d677f4c4ab73dbf859eae6c", "sha256": "5efdfa9e0f79770a3cd0cdf243c75a5091db60129048489428dc4c823cc78ec6" }, "downloads": -1, "filename": "zeam.form.ztk-1.0b2.tar.gz", "has_sig": false, "md5_digest": "67c7e2cd6d677f4c4ab73dbf859eae6c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24529, "upload_time": "2010-05-13T08:30:42", "url": "https://files.pythonhosted.org/packages/71/2a/fcc41a90601ab8b567e49a402a3acdfb62de023e7a8cc03267e57b8e4355/zeam.form.ztk-1.0b2.tar.gz" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "c90715601c4a9bf981bc4086d127de4c", "sha256": "e3c2487ddfcd3eb0cd3436cab19ceb25721690c67beac3b4ab4dae5f7a71a202" }, "downloads": -1, "filename": "zeam.form.ztk-1.0b3.tar.gz", "has_sig": false, "md5_digest": "c90715601c4a9bf981bc4086d127de4c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26288, "upload_time": "2010-06-22T23:08:39", "url": "https://files.pythonhosted.org/packages/fe/b7/8f2e1766c1c46c71ec488e7e2efc9cd0b4a981cf958cb7a3e4759741d235/zeam.form.ztk-1.0b3.tar.gz" } ], "1.0rc1": [ { "comment_text": "", "digests": { "md5": "c5354b6f8f905382437d2ca9fa2d0c0a", "sha256": "3a2e566edb60493adb4b7d47cec4e7adb9938d7358ce77530cf4fefdead13137" }, "downloads": -1, "filename": "zeam.form.ztk-1.0rc1.tar.gz", "has_sig": false, "md5_digest": "c5354b6f8f905382437d2ca9fa2d0c0a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25904, "upload_time": "2010-07-05T22:33:19", "url": "https://files.pythonhosted.org/packages/c7/7b/86dd9d6a5e3554f91b732f0bc7d178a54e909cebf164dc99bbd99345ce07/zeam.form.ztk-1.0rc1.tar.gz" } ], "1.0rc2": [ { "comment_text": "", "digests": { "md5": "1ddb74216c1c82dad505a6acac3bbc19", "sha256": "e6b325515ce7bde427dd8f5aee9717ac96af2ec131db2ee010c7bbc54b714d78" }, "downloads": -1, "filename": "zeam.form.ztk-1.0rc2.tar.gz", "has_sig": false, "md5_digest": "1ddb74216c1c82dad505a6acac3bbc19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26305, "upload_time": "2010-07-16T14:43:34", "url": "https://files.pythonhosted.org/packages/f0/25/f3abf23cbd3a0898f21693b908f9d21e2ef1ed5a40aa14b5c2fd01f85b18/zeam.form.ztk-1.0rc2.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "3b0ac67a97006ccb4e84ffc478cf6902", "sha256": "2e4abad4adc6c20a1f405d0af4dbf9163d0e28fa5c52866377e1cc29674a0704" }, "downloads": -1, "filename": "zeam.form.ztk-1.1.tar.gz", "has_sig": false, "md5_digest": "3b0ac67a97006ccb4e84ffc478cf6902", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 32884, "upload_time": "2011-07-27T13:45:56", "url": "https://files.pythonhosted.org/packages/99/15/dca00c28795dcce1f1060a49ea8691a67b61955775acde7544446993ca0b/zeam.form.ztk-1.1.tar.gz" } ], "1.1.1": [ { "comment_text": "", "digests": { "md5": "906e2ffac7d2dc82cf75cac144bb5073", "sha256": "ba5777bd445b2e35bf61f8546f8f4fc90e2a79f6a2211eb5683801e857a37ab8" }, "downloads": -1, "filename": "zeam.form.ztk-1.1.1.tar.gz", "has_sig": false, "md5_digest": "906e2ffac7d2dc82cf75cac144bb5073", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 35672, "upload_time": "2012-02-23T15:38:02", "url": "https://files.pythonhosted.org/packages/84/a4/97e4962496c47ddb128360bf07360df809facca1eedf716ac4f4c4d2552b/zeam.form.ztk-1.1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "8b6e4f882e23fa6dadbe47ecba2d2335", "sha256": "f2a30984015c54398a10fb29b021634e185c3419e722873049c45b0c8313c370" }, "downloads": -1, "filename": "zeam.form.ztk-1.2.tar.gz", "has_sig": false, "md5_digest": "8b6e4f882e23fa6dadbe47ecba2d2335", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 38679, "upload_time": "2011-11-08T15:28:49", "url": "https://files.pythonhosted.org/packages/fa/96/cab840dc96b88c85a1916038fc722bacf04561abd6740ce32d32bdefc1c8/zeam.form.ztk-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "d54e8f31fbc900b314792b5c36d9b0f8", "sha256": "636263fb55c7ed092a4333c781732fca121c2ce4fac066e864a8c6e482c004b5" }, "downloads": -1, "filename": "zeam.form.ztk-1.2.1.tar.gz", "has_sig": false, "md5_digest": "d54e8f31fbc900b314792b5c36d9b0f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39509, "upload_time": "2012-04-27T11:20:02", "url": "https://files.pythonhosted.org/packages/96/2d/1e9c7ba41c9f873f58389688158f9c7b7fb2b8df27bf757daf61cae1d444/zeam.form.ztk-1.2.1.tar.gz" } ], "1.2.3": [ { "comment_text": "", "digests": { "md5": "236f5f538049a1da55886f38e2b0ae98", "sha256": "50c019a8bbc57b59ec3455deab79596f9c1d6e922c9754e5ed4a655df73f3884" }, "downloads": -1, "filename": "zeam.form.ztk-1.2.3.tar.gz", "has_sig": false, "md5_digest": "236f5f538049a1da55886f38e2b0ae98", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 39788, "upload_time": "2012-09-24T07:09:51", "url": "https://files.pythonhosted.org/packages/85/42/dc5e3e78449f3a2f8892c7fd7e698283ac0ba51365e4cd1b1a3425074246/zeam.form.ztk-1.2.3.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "2f55e724cf630807fb0daf37be4133f5", "sha256": "33f83a46f7f51c243c6d0df7adffe3fb543434931f2e38ce2329f30d3af89bfa" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.tar.gz", "has_sig": false, "md5_digest": "2f55e724cf630807fb0daf37be4133f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45200, "upload_time": "2012-10-12T09:58:29", "url": "https://files.pythonhosted.org/packages/7e/df/679a81ecc1a7c9130ed8615d281be12b40e803ac0df3b6a1243b4b54d63c/zeam.form.ztk-1.3.tar.gz" } ], "1.3.1": [ { "comment_text": "", "digests": { "md5": "162aeee5761612a183478c9f5bcd2260", "sha256": "eeb4e71a9b4a70e13ebdca539b5e71885c339ec539c76e85d243b317b75a815c" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.1.tar.gz", "has_sig": false, "md5_digest": "162aeee5761612a183478c9f5bcd2260", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 46135, "upload_time": "2012-11-19T14:11:08", "url": "https://files.pythonhosted.org/packages/07/3b/365b26e486cad192edaea51b48c5fe83472f11192876dcd34f97068476b5/zeam.form.ztk-1.3.1.tar.gz" } ], "1.3.2": [ { "comment_text": "", "digests": { "md5": "1f210a2fd12d84491cf3082502a0d29a", "sha256": "f05613c11bc09c22972c60dc5b3d948884272c170587a9bdbccd237a474fd475" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.2.tar.gz", "has_sig": false, "md5_digest": "1f210a2fd12d84491cf3082502a0d29a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 47085, "upload_time": "2013-04-23T11:21:04", "url": "https://files.pythonhosted.org/packages/0f/31/0b3146196f9228e381067aa6c933756a55c5e8bd2e3fc95691173a9042b0/zeam.form.ztk-1.3.2.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "ff223bf3f918ee583dad2c36e7b01d7e", "sha256": "f3d149ecd4b7c90d009717982c85945b91f2a1a09d49fdc4db3a03f4811455f2" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.3.tar.gz", "has_sig": false, "md5_digest": "ff223bf3f918ee583dad2c36e7b01d7e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51090, "upload_time": "2013-12-20T11:12:16", "url": "https://files.pythonhosted.org/packages/26/7b/9369803a1f9a9c0f176c857448a8d5d82b461553bc67cbaa54ae1527bce6/zeam.form.ztk-1.3.3.tar.gz" } ], "1.3.4": [ { "comment_text": "", "digests": { "md5": "6bcdc53527876bb4474bcafc383e318a", "sha256": "a15ade7abe22ca12a2e005c00462b6414177d52b022cbb0f825c793bfcd6cb2c" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.4.tar.gz", "has_sig": false, "md5_digest": "6bcdc53527876bb4474bcafc383e318a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51679, "upload_time": "2014-04-15T09:30:34", "url": "https://files.pythonhosted.org/packages/ca/1a/e9661b846d95f993dea8fdd364ef3849d1fd663303cc6886c136792aab7e/zeam.form.ztk-1.3.4.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "8bb1a70849335ac707646a69917c82e5", "sha256": "8822ab740d3671a0eca06232b41181a8319d9975893ac94992266667ca3f7a0b" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.5.tar.gz", "has_sig": false, "md5_digest": "8bb1a70849335ac707646a69917c82e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51730, "upload_time": "2016-03-08T10:10:30", "url": "https://files.pythonhosted.org/packages/ae/dd/f21d6447995711bf5d161d48129f021c8486c37e468f14790b4961a447f7/zeam.form.ztk-1.3.5.tar.gz" } ], "1.3.6": [ { "comment_text": "", "digests": { "md5": "1b448f186a0909fa7a847f9cdb6cd327", "sha256": "c32fed47a467054c28d2a68d07365a6bdfda1fd0cbba17bb4ac6c3345bef6735" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.6.tar.gz", "has_sig": false, "md5_digest": "1b448f186a0909fa7a847f9cdb6cd327", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51398, "upload_time": "2019-01-15T14:31:20", "url": "https://files.pythonhosted.org/packages/ca/c3/46622e38476530ebe04e79e644f67ab3ba40918e8b1cbc8772518afbd359/zeam.form.ztk-1.3.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1b448f186a0909fa7a847f9cdb6cd327", "sha256": "c32fed47a467054c28d2a68d07365a6bdfda1fd0cbba17bb4ac6c3345bef6735" }, "downloads": -1, "filename": "zeam.form.ztk-1.3.6.tar.gz", "has_sig": false, "md5_digest": "1b448f186a0909fa7a847f9cdb6cd327", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 51398, "upload_time": "2019-01-15T14:31:20", "url": "https://files.pythonhosted.org/packages/ca/c3/46622e38476530ebe04e79e644f67ab3ba40918e8b1cbc8772518afbd359/zeam.form.ztk-1.3.6.tar.gz" } ] }