{ "info": { "author": "Souheil Chelfouh", "author_email": "trollfot@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Zope Public License", "Programming Language :: Python", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "===================\nmegrok.z3cform.base\n===================\n\n`megrok.z3cform.base` is a not-so-thick layer above `z3c.form`. It\nprovides a `Grok` way to register your forms and your widgets. In\naddition, the package has a collection of base forms, useable\nout-of-the box with grokcore.layout (or the old `megrok.layout`).\n\nThe customization of the forms is also eased by the use of\n`megrok.pagetemplate`, allowing you to override a template easily.\n\n\nForm registration\n=================\n\nModels\n------\n\nWe set up some models to serve as a form context::\n\n >>> import grokcore.component as grok\n >>> from zope import interface, schema\n\n >>> class IMammoth(interface.Interface):\n ... name = schema.TextLine(title=u\"Name\")\n ... age = schema.Int(title=u\"Age\")\n\n >>> class Mammoth(grok.Context):\n ... grok.implements(IMammoth)\n ... name = schema.fieldproperty.FieldProperty(IMammoth['name'])\n ... age = schema.fieldproperty.FieldProperty(IMammoth['age'])\n\nWe declare the Form. It's very similar to a grok.View::\n\n >>> import megrok.z3cform.base as z3cform\n\n >>> class TestForm(z3cform.Form):\n ... grok.context(Mammoth)\n\n\nGrokking and querying\n---------------------\n\nWe let Grok register the component::\n\n >>> grok.testing.grok_component('form', TestForm)\n True\n\nNow, we can query it normally::\n\n >>> from zope.publisher.browser import TestRequest\n >>> request = TestRequest()\n >>> manfred = Mammoth()\n\n >>> from zope.component import getMultiAdapter\n >>> myform = getMultiAdapter((manfred, request), name=\"testform\")\n\n >>> myform\n \n >>> print myform()\n
\n ...\n\n\nLayout integration\n------------------\n\n`megrok.z3cform.base` is integrated, out-of-the-box with\n`grokcore.layout`, providing base classes to ease the layout integration\nin your project.\n\nLet's have a quick overview. We create a layout::\n\n >>> import grokcore.layout\n\n >>> class MyLayout(grokcore.layout.Layout):\n ... grok.context(IMammoth)\n ... def render(self):\n ... return 'The layout content is: %s' % self.view.content()\n\nWe declare a Page Form. A Page Form is a form that will show up inside\na layout::\n\n >>> class PageForm(z3cform.PageForm):\n ... grok.context(Mammoth)\n\nWe register the components with Grok::\n\n >>> grok.testing.grok_component('page', PageForm)\n True\n >>> grok.testing.grok_component('layout', MyLayout)\n True\n\nNow, while rendering the form, we have it embedded in the Layout::\n\n >>> pageform = getMultiAdapter((manfred, request), name=\"pageform\")\n >>> print pageform()\n The layout content is: \n ...\n\n\n.. attention:\n\n This is only a tiny presentation of the package features. Please,\n read the tests for a global overview.\n\n\nChangelog\n=========\n\n0.5 (2012-07-21)\n----------------\n\n* Added support for the new grokcore.layout. No longer depends on\n megrok.layout directly. [danilobotelho]\n\n\n0.4 (2012-06-22)\n----------------\n\n* Added decorators for validator, invariant and default_value.\n The idea of these decorators is from plone.directives.form.\n\n* Added support for Groups (z3c.form.group) [danilobotelho]\n\n* Fixed WidgetTemplateGrokker [danilobotelho]\n\n* Added HIDDEN_MODE to __init__.py [danilobotelho]\n\n\n0.3 (2010-02-11)\n----------------\n\n* Fixed OS-dependent path handling in the widget template grokker.\n\n\n0.2 (2009-11-18)\n----------------\n\n* Corrected a bug where the ObjectModifiedEvent was trigged more than\n once during edition. [trollfot]\n\n* Upgrading to be compatible with grok 1.1. [trollfot]\n\n\n0.1 (2009-10-20)\n----------------\n\n* Initial release", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "UNKNOWN", "keywords": "Grok Form", "license": "ZPL 2.1", "maintainer": null, "maintainer_email": null, "name": "megrok.z3cform.base", "package_url": "https://pypi.org/project/megrok.z3cform.base/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/megrok.z3cform.base/", "project_urls": { "Download": "UNKNOWN", "Homepage": "UNKNOWN" }, "release_url": "https://pypi.org/project/megrok.z3cform.base/0.5/", "requires_dist": null, "requires_python": null, "summary": "megrok extension for z3cform", "version": "0.5" }, "last_serial": 744798, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "82573b822cdcaf4e033571b552ac5057", "sha256": "70908462d0eaa716b69aa9c297bfb3ec53cace8aeec13bf418261917ea80d91e" }, "downloads": -1, "filename": "megrok.z3cform.base-0.1.tar.gz", "has_sig": false, "md5_digest": "82573b822cdcaf4e033571b552ac5057", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14566, "upload_time": "2009-10-20T23:25:42", "url": "https://files.pythonhosted.org/packages/c4/a0/ad0ed500c7169b5274e3c702e11b335b17cc6179f1f22c6710d587df8196/megrok.z3cform.base-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "9ef96de8074e5fa0a3b48ccd4062dec5", "sha256": "89c06c9ca7f1acdfd325d792028ed7fa24a6fc3ea7c3e468a09a80a5aff42118" }, "downloads": -1, "filename": "megrok.z3cform.base-0.2.tar.gz", "has_sig": false, "md5_digest": "9ef96de8074e5fa0a3b48ccd4062dec5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12149, "upload_time": "2009-11-18T16:35:08", "url": "https://files.pythonhosted.org/packages/0d/76/7d52e34c2dacb4ee87b3b4c3bc3173eb100ec78e6dcb58aa01ca30dbc7f3/megrok.z3cform.base-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "8309d8d498e230b9b45b487503d012d5", "sha256": "9d453a1e95833f093c6219fcf4a43696c3d66083a16063fb1a3de569c55ae74b" }, "downloads": -1, "filename": "megrok.z3cform.base-0.3.tar.gz", "has_sig": false, "md5_digest": "8309d8d498e230b9b45b487503d012d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14981, "upload_time": "2010-02-12T00:24:12", "url": "https://files.pythonhosted.org/packages/04/b3/ff8c000655b279245b6640eaa9dd74ed27b0c42f8382b50625084a4163ff/megrok.z3cform.base-0.3.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "e61760b3146961c14eb7722cbe46fc58", "sha256": "267679d0f12539d370a6db976402838d0f843d859d5bbfdcc378f949e2b23426" }, "downloads": -1, "filename": "megrok.z3cform.base-0.4.tar.gz", "has_sig": false, "md5_digest": "e61760b3146961c14eb7722cbe46fc58", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19297, "upload_time": "2012-06-22T20:58:28", "url": "https://files.pythonhosted.org/packages/73/da/d05f8757a8eeceb511988825a74bff775b1a5bd2e603f1e79f1a65a29ea5/megrok.z3cform.base-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "8c6d4997e3d19c0d90e126c2d9f397c5", "sha256": "07ce4ae77465fa2175a0023b990b1cfe66e48095958893ac5577e468b86e64d5" }, "downloads": -1, "filename": "megrok.z3cform.base-0.5.tar.gz", "has_sig": false, "md5_digest": "8c6d4997e3d19c0d90e126c2d9f397c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19512, "upload_time": "2012-07-21T20:06:52", "url": "https://files.pythonhosted.org/packages/36/a4/64e7dc118933ceecbf32fa30b511ef1422759519530427e117f8a5b07995/megrok.z3cform.base-0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8c6d4997e3d19c0d90e126c2d9f397c5", "sha256": "07ce4ae77465fa2175a0023b990b1cfe66e48095958893ac5577e468b86e64d5" }, "downloads": -1, "filename": "megrok.z3cform.base-0.5.tar.gz", "has_sig": false, "md5_digest": "8c6d4997e3d19c0d90e126c2d9f397c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19512, "upload_time": "2012-07-21T20:06:52", "url": "https://files.pythonhosted.org/packages/36/a4/64e7dc118933ceecbf32fa30b511ef1422759519530427e117f8a5b07995/megrok.z3cform.base-0.5.tar.gz" } ] }