{ "info": { "author": "Danilo G. Botelho", "author_email": "danilogbotelho@yahoo.com", "bugtrack_url": null, "classifiers": [ "Framework :: Zope3", "Programming Language :: Python" ], "description": "Crud\r\n====\r\n\r\nThis module gives you an abstract base class to make CRUD forms with.\r\nThese forms give you by default a tabular view of the objects, where\r\nattributes of the object can be edited in-place. Please refer to the\r\n``ICrudForm`` interface for more details.\r\n\r\n >>> from megrok.z3cform.crud import crud\r\n\r\nForm registration\r\n=================\r\n\r\nModels\r\n------\r\n\r\nWe set up some models to serve as a form context::\r\n\r\n >>> import grokcore.component as grok\r\n >>> from zope import interface, schema\r\n\r\n >>> class IPerson(interface.Interface):\r\n ... name = schema.TextLine(title=u\"Name\")\r\n ... age = schema.Int(title=u\"Age\")\r\n\r\n >>> class Person(grok.Context):\r\n ... grok.implements(IPerson)\r\n ... name = schema.fieldproperty.FieldProperty(IPerson['name'])\r\n ... age = schema.fieldproperty.FieldProperty(IPerson['age'])\r\n ...\r\n ... def __init__(self, name, age):\r\n ... self.name = name\r\n ... self.age = age\r\n \r\n >>> class IPersonContainer(interface.Interface):\r\n ... pass\r\n \r\n >>> class PersonContainer(dict):\r\n ... grok.implements(IPersonContainer)\r\n\r\nFor this test, we take the the name of our persons as keys in our\r\nstorage:\r\n\r\n >>> storage = PersonContainer()\r\n >>> storage['Peter'] = Person(u'Peter', 16)\r\n >>> storage['Martha'] = Person(u'Martha', 32)\r\n\r\nWe declare the Form with the help of megrok.z3cform.base. It's very similar to a grok.View::\r\n\r\n >>> import megrok.z3cform.base as z3cform\r\n\r\n >>> class TestForm(crud.CrudForm):\r\n ... grok.context(IPersonContainer)\r\n ...\r\n ... update_schema = IPerson\r\n ... \r\n ... def get_items(self):\r\n ... return sorted(storage.items(), key=lambda x: x[1].name)\r\n ... \r\n ... def add(self, data):\r\n ... person = Person(**data)\r\n ... storage[str(person.name)] = person\r\n ... return person\r\n ... \r\n ... def remove(self, (id, item)):\r\n ... del storage[id]\r\n\r\nGrokking and querying\r\n---------------------\r\n\r\nWe let Grok register the component::\r\n\r\n >>> grok.testing.grok_component('form', TestForm)\r\n True\r\n\r\nNow, we can query it normally::\r\n\r\n >>> from zope.publisher.browser import TestRequest\r\n >>> request = TestRequest()\r\n\r\n >>> from zope.component import getMultiAdapter\r\n >>> myform = getMultiAdapter((storage, request), name=\"testform\")\r\n\r\n >>> myform\r\n \r\n >>> print myform()\r\n
\r\n ...\r\n\r\nChangelog\r\n=========\r\n\r\n0.1\r\n---\r\n\r\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": "http://pypi.python.org/pypi/megrok.z3cform.crud", "keywords": "Grok CRUD z3c.form", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "megrok.z3cform.crud", "package_url": "https://pypi.org/project/megrok.z3cform.crud/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/megrok.z3cform.crud/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://pypi.python.org/pypi/megrok.z3cform.crud" }, "release_url": "https://pypi.org/project/megrok.z3cform.crud/0.1/", "requires_dist": null, "requires_python": null, "summary": "Crud forms for Grok, using z3c.form", "version": "0.1" }, "last_serial": 794661, "releases": { "0.1": [ { "comment_text": "repackaged to fix permission issues [kudos to kagesenshi]", "digests": { "md5": "f5d603f9aa8f9f10b8bbf0af6a07f061", "sha256": "b0b0a1a91af3611b609e605c87cb7cbc02c74a6c30383e31f1b60c3322e2c4b2" }, "downloads": -1, "filename": "megrok.z3cform.crud-0.1.tar.gz", "has_sig": false, "md5_digest": "f5d603f9aa8f9f10b8bbf0af6a07f061", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8284, "upload_time": "2012-07-09T02:38:30", "url": "https://files.pythonhosted.org/packages/03/85/60113819a451d8051dae35932fb79f8d74c060a9320c427eeecff2748ce5/megrok.z3cform.crud-0.1.tar.gz" } ] }, "urls": [ { "comment_text": "repackaged to fix permission issues [kudos to kagesenshi]", "digests": { "md5": "f5d603f9aa8f9f10b8bbf0af6a07f061", "sha256": "b0b0a1a91af3611b609e605c87cb7cbc02c74a6c30383e31f1b60c3322e2c4b2" }, "downloads": -1, "filename": "megrok.z3cform.crud-0.1.tar.gz", "has_sig": false, "md5_digest": "f5d603f9aa8f9f10b8bbf0af6a07f061", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8284, "upload_time": "2012-07-09T02:38:30", "url": "https://files.pythonhosted.org/packages/03/85/60113819a451d8051dae35932fb79f8d74c060a9320c427eeecff2748ce5/megrok.z3cform.crud-0.1.tar.gz" } ] }