{ "info": { "author": "Mikko Ohtamaa", "author_email": "info@redinnovation.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Plone", "Framework :: Plone :: 4.0", "Framework :: Plone :: 4.1", "Framework :: Plone :: 4.2", "Framework :: Plone :: 4.3", "Framework :: Zope2", "Programming Language :: Python", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "DataGridField\n=============\n\n.. contents:: **Table of contents**\n\nReleased under the GNU General Public License\n\nA table input component for the Plone Archetypes framework. Uses JavaScript to make entering tabular data more\nuser friendly process - there are no round trip HTTP requests to the server when inserting or deleting rows.\n\n\nFeatures\n--------\n\n* Any number of columns set by a developer\n* Any number of rows filled by a user\n* Insert and deleting rows without submitting a form\n* Many different column types\n\n\nRequirements\n------------\n\n* Plone 4 (for Plone 3, use the latest release in the 1.7 branch or 1.6 branch, for Plone 2.5,\n use the latest release in the 1.6 branch)\n* A browser with JavaScript support. There isn't yet graceful degradation for\n browsers without JavaScript.\n\n\nInstallation\n------------\n\nThis version of DataGridField is distributed as an\negg at the Python Package index. Information about configuring either for a zope instance\nhouse a Plone site can be found by reading the `Installing an Add-on Product`_\ntutorial.\n\n.. _Installing an Add-on Product: http://plone.org/documentation/kb/add-ons\n\nOnce you've succesfully done this, you can use the Add/Remove Products screen to install the DataGridField into your\nsite. See below for information about experimenting with the demo types.\n\nHow to use\n----------\n\nWhen developing an `Archetypes`__ content type you will be able to add a new kind of field: the ``DataGridField``.\nLow level data stored inside this field will be a Python tuple of dicts.\n\n__ http://developer.plone.org/content/archetypes/\n\nThe widget used for this new type of field is the ``DataGridWidget``.\n\nField definition\n~~~~~~~~~~~~~~~~\n\nFollow a list of all ``DataGridField`` configurations:\n\n``columns``\n A tuple of all columns ids.\n Default is a single column named \"*default*\".\n``fixed_rows``\n A sequence of ``FixedRow`` instances that are row values that must exists.\n If those rows are deleted, they will be re-added when saving the content.\n\n See examples in the code for implementation details.\n``allow_insert``\n User can append new rows. Currently is only an UI feature, this is not yet checked\n at application level.\n Default is True.\n``allow_delete``\n User can delete rows. This is currently UI feature, this is not yet checked at\n application level.\n Default is True.\n``allow_reorder``\n User can reorder rows. This is currently UI feature, this is not yet checked at\n application level.\n Default is True.\n``searchable``\n If true all the contents of the DataGridField is concatenated to searchable text\n and given to text indexer.\n Default is False.\n``allow_empty_rows``\n Set to false to allow empty rows in the data.\n Default is True.\n``allow_oddeven``\n Set to true to hifhligh odd/even rows in edit/view form.\n Default is False\n\nWidget definition\n~~~~~~~~~~~~~~~~~\n\nWhen defining a new ``DataGridWidget`` you can manage following options:\n\n``show_header``\n Choose to display or not table headers in view or edit.\n``auto_insert``\n Automatically add new rows when the last row is being edited.\n``columns``\n A dict containing columns definition.\n\n This option is not required, but you must provide it for advanced datagrid configuration (see below).\n\nColumns definition\n~~~~~~~~~~~~~~~~~~\n\nWhen defining columns (using the ``columns`` option in the *widget* definition above) you must provide a dict\ncomposed by:\n\n* a key that must be found in the ``columns`` definition of *field*.\n* a ``Column`` class (or subclass) instance\n\nEvery ``Column`` instance have following options:\n\n``label`` (required)\n The pretty label for the column.\n``col_description``\n Additional description for the column scope\n``default``\n Default value for every new value of the column\n``default_method``\n Like ``default`` above, but instead of a static value it must be an attribute for a method\n that can be called on the context (similar to the *default_method* of Archetypes fields)\n``visible``\n Define if the column will be visible.\n Default is True.\n``required``\n If true, for every provided row, values in this columns must be filled.\n Default is False.\n\nApart the simple ``Column`` implementation, this product will provide additional kind of columns classes like:\n\n* SelectColumn\n* LinesColumn\n* LinkColumn\n* RadioColumn\n* ...\n\nPlease refer to the `source code`__ for a complete list of columns and details of additional options.\n\n__ https://github.com/collective/Products.DataGridField/tree/master/Products/DataGridField\n\nUsage examples\n~~~~~~~~~~~~~~\n\nSimple example with three free text columns:\n\n.. code-block:: python\n\n schema = BaseSchema + Schema((\n\n DataGridField('DemoField',\n widget = DataGridWidget(),\n columns=('column1','column2','The third')\n ),\n ))\n\nComplex example with different column types and user friendly labels:\n\n.. code-block:: python\n\n # Plone imports\n from Products.Archetypes.public import DisplayList\n from Products.Archetypes.public import *\n\n # Local imports\n from Products.DataGridField import DataGridField, DataGridWidget\n from Products.DataGridField.Column import Column\n from Products.DataGridField.SelectColumn import SelectColumn\n\n class DataGridDemoType(BaseContent):\n \"\"\"A simple archetype\n\n \"\"\"\n\n schema = BaseSchema + Schema((\n DataGridField('DemoField',\n searchable = True,\n columns=(\"column1\", \"column2\", \"select_sample\"),\n widget = DataGridWidget(\n columns={\n 'column1' : Column(\"Toholampi city rox\",\n col_description=\"Go Toholampi or go home.\",\n required=True),\n 'column2' : Column(\"My friendly name\"),\n 'select_sample' : SelectColumn(\"Friendly name\", vocabulary=\"getSampleVocabulary\")\n },\n ),\n ),\n\n ))\n\n def getSampleVocabulary(self):\n \"\"\"\n \"\"\"\n \"\"\" Get list of possible taggable features from ATVocabularyManager \"\"\"\n return DisplayList(\n\n ((\"sample\", \"Sample value 1\",),\n (\"sample2\", \"Sample value 2\",),))\n\nFor more examples, see unit test code.\n\n\nNotes\n-----\n\nSince DataGridField 1.5, if you wish to retain old way of automatic row inserting.\nHere is a bit logic behind all this - otherwise there will be an extra row added when\nyou edit DGF and press save.\n\n* You must set property ``auto_insert`` = True to DataGridWidget\n* You must set property ``allow_empty_rows`` = False to DataGridField\n\n\nKnown bugs\n----------\n\n* Sometimes on Firefox column sizes start changing after the user enters some\n data. Not sure if this is a Firefox bug, though.\n* Prefilled default values work only for text and select columns\n* Radio button and link column postback is not handled properly. This needs\n fixes very deep into Zope (ZPublisher). If the form validation fails,\n link column and radio button columns lost their values.\n* Not all types of columns are supported by all browsers because of\n HTML incompatibilities. See\n http://www.w3schools.com/tags/tag_input.asp for details.\n\n\nDemo\n----\n\nA demo type is included. It is disabled by default. This type is neither pretty nor very functional,\nbut demonstrates how a data grid should be used. You can install this type into your site by\nrunning the \"DataGridField (Example DGF content types)\" from the Generic Setup tool within the ZMI.\n\n\nReferences\n----------\n\n* `Custom Search product`__ uses DataGridField for editing search form query fields.\n* `London School of Marketing`__ uses DataGridField extensively\n\n__ http://plone.org/products/custom-search/\n__ http://www.londonschoolofmarketing.com site\n\nContributors\n------------\n\nPeople who have been making this true:\n\n* Mikko Ohtamaa, `Red Innovation`__\n* Danny Bloemendaal\n* Radim Novotny\n* Justin Ryan\n* Alexander Limi\n* PloneSolutions \n* Martin Aspeli \n* Paul Everitt, Zope Europe Association \n* Development was helped by Vincent Bonamy\n* Maurits van Rees\n* Andreas Jung\n* T Kim Nguyen \n\n__ http://www.redinnovation.com\n\nOriginal concept and prototype:\n\n* Geir Baekholt, Plone Solutions \n* Paul Everitt, Zope Europe Association \n\nSponsorship\n-----------\n\nOrganizations paying up for the development:\n\n* `London School of Marketing`__\n* `United Nations Environment Programme`__\n\n__ http://www.londonschoolofmarketing.com\n__ http://www.unep.org\n\nChangelog\n=========\n\n1.9.6 (2017-02-21)\n------------------\n\n- Fixed error when used as widget in PloneFormGen 1.7.19 or higher.\n The widget has no ``REQUEST`` attribute there, because it is not\n acquisition wrapped. [maurits]\n\n\n1.9.5 (2016-03-22)\n------------------\n\n- While hiding a column it is hidden in both view/edit mode without\n distinction. In \"view\" mode, while generating the used class\n 'dgw-hidden-column', append the column id so it is possible, like\n in \"edit\" mode to use a CSS selector to show a hidden column.\n [gbastien]\n\n\n1.9.4 (2015-09-07)\n------------------\n\n- Take default value of CheckboxColumn into account while adding\n a new row in the edit form.\n [gbastien]\n\n\n1.9.3 (2015-09-07)\n------------------\n\n- Make sure validate_required validates stored data correctly,\n indeed the `orderindex_` key is missing when data is stored.\n [gbastien]\n\n\n1.9.2 (2015-08-31)\n------------------\n\n- Fixed demotypes registration on modern Plone (Default alias was not working)\n [keul]\n- Added a real support for Archetypes ``required`` attribute. This will probably deprecate\n the need of the ``isDataGridFilled`` validator\n [keul]\n\n1.9.1 (2014-10-14)\n------------------\n\n- added new demo data fields in examples profile [tkimnguyen]\n\n- removed old nested_scopes imports [tkimnguyen]\n\n- Added support for many more types of fields (DateColumn,\n DatetimeColumn, DatetimeLocalColumn, FileColumn, EmailColumn,\n ColorColumn, PasswordColumn, RangeColumn, MonthColumn, SearchColumn,\n TimeColumn, UrlColumn, WeekColumn) to match tag types\n according to http://www.w3schools.com/tags/tag_input.asp Beware not\n all browsers support these! See that page for browser specific\n limitations. [tkimnguyen]\n\n- Portuguese pt-br translation. [lccruz + jtmolon]\n\n- Replace uses of .gif images from Plone with .png.\n [maurits]\n\n- Fixed bug in adding new row. Now new rows inputs has an unique id [cekk]\n\n- Accessibility fix: wrap command icons inside links so can be reached using keyboard\n [keul]\n\n- Prevent a JavaScript error if user try to change row order a single-row table\n [keul]\n\n- Accessibility fix: every form field inside columns now has a ``title`` attribute that repeat\n the column's label\n [keul]\n\n- SelectColumn. Removed the value attribute on ``select`` HTML tag\n [keul]\n\n1.9.0 (2013-09-19)\n------------------\n\n- Support argument ``label`` plus the standard keyword arguments in\n all Columns: ``col_description``, ``default``, ``default_method``,\n ``visible``, ``required``. Child classes may support more arguments\n or keywords arguments.\n [maurits]\n\n- No longer support ``label_msgid`` in Columns. This was unused for\n years.\n [maurits]\n\n- Change ``Column.getLabel`` to support translation again. You should\n pass a request as the context.\n [maurits]\n\n- New column option ``col_description``: display help text for column purpose\n [keul]\n\n- New column option ``required``: mark data inside column as required\n [keul]\n\n- Added alpha channel to grid icons\n [keul]\n\n- Added a ``visualClear`` div after the \"add new row\" button.\n This fix visual issues when field validation error take place.\n [keul]\n\n- Give focus to first column of new added row [keul]\n\n\n1.8.4 (2013-01-04)\n------------------\n\n- added Italian locale [cekk]\n\n\n1.8.3 (2012-08-23)\n------------------\n\n- support for brower view names as 'vocabulary' parameter\n for SelectColumn class\n\n1.8.2 (2012-08-23)\n------------------\n\n- added new CSS classes to the manipulator table cells in order\n to be able to attach custom JS handlers\n [ajung]\n\n\n1.8.1 (2012-06-28)\n------------------\n\n- Added English locale. Minor internal packaging improvements.\n [maurits]\n\n\n1.8.0 (2012-05-29)\n------------------\n\n- Strip empty spaces in a list of values.\n [WouterVH]\n\n- final 1.8.0 release\n [ajung]\n\n\n1.8b2 (2011-05-08)\n------------------\n\n- French translation.\n [thomasdesvenain]\n\n- Added titles on row manipulators images.\n [thomasdesvenain]\n\n- Fixed setting a field value using a base string, using json decoder.\n Added tests.\n [thomasdesvenain]\n\n- fixed check for 'empty' for LineColumns\n [ajung]\n\n\n1.8b1 (2010-08-16)\n------------------\n\n- Register locales directory in zcml.\n [buchi]\n\n- Added German translations.\n [buchi]\n\n\n1.8a2 (2010-06-02)\n------------------\n\n- Fixed Unauthorized error in queryDataGrid when the aq_parent of an\n object is private, even when we do not actually need any info from\n that parent. (Change ported from 1.6.2.)\n [maurits]\n\n- Added support for Spanish localization\n [macagua]\n\n- Added support for i18n\n [macagua]\n\n- the TD cells of a rendered DGF field now contain an additional\n CSS class 'col-$colnumber'\n [ajung]\n\n- removed pointless Plone==4 pinning in setup.py causing more\n problems than it actually solves\n\n\n1.8a1 (2009-11-07)\n------------------\n\n- Fixed possible TypeError when submitting the base_metadata form.\n [maurits]\n\n- In the view macro use the supplied accessor instead of thinking we\n know how to get the accessor ourselves as that gives wrong results\n with LinguaPlone.\n Fixes http://plone.org/products/datagridfield/issues/14\n [maurits]\n\n- Fixed tests for Plone 4, including a good cleanup.\n [maurits]\n\n- Adaptation to work on Plone 4/Zope 2.12.\n For Plone 3, please use the 1.7 or 1.6 branches.\n [vincentfretin]\n\n\n1.7 (unreleased)\n----------------\n\n- When there is an empty row with the template_row_marker and\n validation fails (for any field), make sure we do not end up with\n *two* empty rows.\n [maurits+vpretre]\n\n- added LinesColumn (used as custom vocabulary source in PFGDataGrid field)\n [naro]\n\n- added unique column classnames for thead and tbody table section to identify\n columns and modify it's properties through css (specially width for each\n column seperatly). Now we can remove the style attributes and do some\n template code cleanup. [saily]\n\n- allow Products.Archetypes.interfaces.IVocabulary providing objects as\n Vocabularies. This makes SelectColumn usable in archetypes.schemaextender\n w/o having to patch the extended class.\n [jensens]\n\n- Move installation back to GenericSetup, end of Plone 2.5.x support\n [andrewb, but real thanks goes to wichert]\n\n\n1.6 (2009-01-28)\n----------------\n\n- Merging of colliding datagridwidget.css and datagridwidget.css.dtml files.\n Fixes issue #30: http://plone.org/products/datagridfield/issues/30. Which\n file was ultimately selected appears to be inconsistent. If you're\n depending upon an overridden version of either and notice bugs with regards\n to hidden columns and/or rows appearing or the promise of adding additional\n DGF rows when using the FixedColumn, you'd be well suited to reconcile your\n customizations with the merged files from r10445 at:\n http://dev.plone.org/archetypes/changeset/10445\n [andrewb]\n\n\n1.6rc1\n------\n\n- Adding Plone 2.5.x DataGridField profile \"default_25x\" to overcome difference in\n GS namespace for the registration of our skin directory. Without this, one needed\n to manually add the correct FSDV within the portal_skins tool for .pt, .dtml,\n images, etc. to exist with the DataGridWidget's skins directory. [andrewb]\n\n- Adding back Extensions and Install.py with install() function for consistent\n Add/Remove Products experience back to Plone 2.5.x, which did not handle\n GenericSetup profile-based installation. The install code delegates to Generic\n Setup for maximal code reuse. The justification is that to completely remove\n a Add/Remove Product support in Plone 2.5.x between a beta 2 and beta 3 release\n is overly extreme. This will workaround will be rectified in a future release. [andrewb]\n\n Note: This was added manually without history because the the eggified version\n of DataGridField was moved, rather than copied, thus no history at:\n http://dev.plone.org/archetypes/log/Products.DataGridField?action=follow_copy&rev=&stop_rev=&mode=follow_copy\n\n- Updated installation instructions, info about example types, and added note about ceasing\n Plone 2.5.x support [andrewb]\n\n- Removed check of \"@@plone_lock_info\" within example types' GS declarations,\n so actions render in pre-Plone locking era [andrewb]\n\n- Made all tests pass in Plone 2.5.x, 3.0.x, and 3.1.x [andrewb]\n\n- Made explicit names for the different GS profiles that one might choose\n to install within portal_setup [andrewb]\n\n\n1.6 beta 3\n----------\n\n- Eggified in Products.AddRemoveWidget\n [SteveM]\n\n- Register skin layer correctly.\n [maurits]\n\n- Move installation to GenericSetup.\n [wichert]\n\n- Removed lots and lots of unneeded import. Pyflakes found that Plone 2.1\n support has been broken for a while, so stop claiming it's still supported.\n [wichert]\n\n- Added validator isDataGridFilled (copied from Poi, where it can\n later be removed). Use this as validator on a DataGridField if you\n want it to have at least one entry: currently a bogus/hidden entry\n always remains even when you remove all real entries, so making a\n DataGridField required has no real effect.\n See http://plone.org/products/poi/issues/139 and 160.\n [maurits]\n\n\n1.6 beta 2\n----------\n\n- Disabled INSTALL_DEMO_TYPES from config.py.\n [andrewburkhalter]\n\n\n1.5\n---\n\n- Pop-up help column by Juan Grigera\n\n- Added CheckboxColumn by Radim Novotny\n\n- Plone 3.0 compatible (fixed CMFCorePermissions import)\n\n- Fixed http://plone.org/products/datagridfield/issues/16 (applied the patch)\n\n- DataGridField has new property allow_oddeven. Setting this to True will highlight\n odd end even rows in the view/edit tables. Default: False\n\n- FixedColumn has optional parameter \"visible\" (default True). Setting this to False\n will hide (using css) column from both - view and edit forms.\n\n\n1.5rc3\n------\n\n- Added CheckboxColumn. Implementation based on RadioColumn, so there are same bugs.\n CheckboxColumn lose values if any field on the form raises validation error.\n Be aware of that, better does not use CheckboxColumn in forms with required fields\n or fields with validators.\n [Contributor: naro, radim novotny]\n\n\n1.5rc2\n------\n\n- Fixed row adding in IE. This was one of the most horrible debugging session\n I have had. There was some obscure IE bug which prevented making a DOM\n node orignally hidden to visible. I created \"hacky\" workaround for this.\n Tested in IE 6.0 and FF 1.5.\n\n- Wolfram Fenske's I18N patch is disabled, since it doesn't work in Plone 2.5.\n The code is almost there. If someone wants to make it complete, it shouldn't\n take too much time.\n\n\n1.5rc1\n------\n\n- Added workaround for bad DGF initializing which caused empty rows when DGF was created\n programmatically\n\n\n1.0 to 1.5\n----------\n\n- Plone 2.5 compatibility guaranteed\n\n- DGF row manipulators rewritten. Automatically adding new rows feature is\n now optional, thus making it possible for columns to have prefilled\n default values without creating a mess. Disabling auto insert is necessary\n for columns like SelectWidget which don't have empty default values.\n\n- Refactored page template code to be more easily extendable. Now CSS file\n is used for styling DataGridWidgets.\n\n- New column type: Link column\n\n- (Wolfram Fenske) I18N patch\n\n Archetypes widgets have an attribute i18n_domain, which is used to\n determine which message catalog to use for translation. In\n DataGridField, this attribute is ignored.\n\n I have attached a small patch (in fact, smaller than this bug report)\n which fixes these problems. I didn't want to introduce a lot of new\n code, so I did the translation of the labels in the Column class, not\n in the page template, which might also have been a good way to do it.\n Since the functions \"getLabel()\" and \"getColumnLabels()\" are only\n called by the page template anyway, I believe this is not an issue.\n But if you'd rather translate the labels in the page template, please\n let me know and I'll write a different patch.\n\n- (Juan Grigera) Marshaller patch\n\n I enjoyed your DataGriedField/Widget product for Plone, and would like\n to contributea small patch/bugfix. In the field mutator (set) the\n passed value is not always a record, but sometimes a string.\n In fact the RFC822Marshaller passes a string.", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://plone.org/products/datagridfield", "keywords": "Plone DataGridField Archetypes", "license": "GPL", "maintainer": "", "maintainer_email": "", "name": "Products.DataGridField", "package_url": "https://pypi.org/project/Products.DataGridField/", "platform": "", "project_url": "https://pypi.org/project/Products.DataGridField/", "project_urls": { "Homepage": "http://plone.org/products/datagridfield" }, "release_url": "https://pypi.org/project/Products.DataGridField/1.9.6/", "requires_dist": null, "requires_python": "", "summary": "A table input component for Plone.", "version": "1.9.6" }, "last_serial": 2658313, "releases": { "1.6": [ { "comment_text": "", "digests": { "md5": "2c90fd9ffb4f5c8303dbf2be403d413b", "sha256": "2e9a672d96869500fb4ecd90d7bf2906a356e765ac3137ca65b3e6c1caea3b55" }, "downloads": -1, "filename": "Products.DataGridField-1.6-py2.4.egg", "has_sig": false, "md5_digest": "2c90fd9ffb4f5c8303dbf2be403d413b", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 114437, "upload_time": "2009-01-28T20:25:21", "url": "https://files.pythonhosted.org/packages/f2/16/8d54c0ed9ef9ee87df7b5d5ee9dbf99b1271329a69f696564ef7d9d23910/Products.DataGridField-1.6-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "55dfbe52a8462d5f9821cd89a64cdf3e", "sha256": "6eba177b771ab289ff663927f22ee5bf24967da2afaffab4813d54e711807e2a" }, "downloads": -1, "filename": "Products.DataGridField-1.6.tar.gz", "has_sig": false, "md5_digest": "55dfbe52a8462d5f9821cd89a64cdf3e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 57736, "upload_time": "2009-01-28T20:25:19", "url": "https://files.pythonhosted.org/packages/3b/91/9c27498a1b8a50c2546177ecd9101b04ab3502d6268c80d76d38b6651067/Products.DataGridField-1.6.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "b863500e0202957136026bfeef9b8647", "sha256": "059fa8fc12bdafce47e000eddacf1d7bef2f75f5b3fbe67612fbf6f7131742ab" }, "downloads": -1, "filename": "Products.DataGridField-1.6.1.tar.gz", "has_sig": false, "md5_digest": "b863500e0202957136026bfeef9b8647", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 52727, "upload_time": "2009-10-23T16:50:11", "url": "https://files.pythonhosted.org/packages/c5/71/242b5977a16a6ec01e0445445dd537385fd3d3c48b116bb24f769359ce1c/Products.DataGridField-1.6.1.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "50a32fa00966de5222e958be84c77030", "sha256": "7680cc83ab847eea78782b738cac6d771cd1cd859f477d9307f326a4bc5fd6e5" }, "downloads": -1, "filename": "Products.DataGridField-1.6.2.zip", "has_sig": false, "md5_digest": "50a32fa00966de5222e958be84c77030", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 86753, "upload_time": "2010-06-02T00:13:49", "url": "https://files.pythonhosted.org/packages/dc/9e/ca7825c37aff5662eab2ff92d4aaa2f421da83dc728667f7dd4ac1a7cc0b/Products.DataGridField-1.6.2.zip" } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "4b4134b721e05f93a44dd685b380ff1b", "sha256": "5f3d82d0de8282e12bcaa7984fbbcf34cd55645dba2373eb51d87e5cfefe2a8d" }, "downloads": -1, "filename": "Products.DataGridField-1.6.3.zip", "has_sig": false, "md5_digest": "4b4134b721e05f93a44dd685b380ff1b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 88801, "upload_time": "2011-11-30T14:18:57", "url": "https://files.pythonhosted.org/packages/a9/c5/c08904aafcaea740d8278fb381ef24c01ace304c2a62059c686306532e20/Products.DataGridField-1.6.3.zip" } ], "1.6b3": [ { "comment_text": "", "digests": { "md5": "a4210246dce5b943367e991359ed4c87", "sha256": "160e9a3a5357ce6d11361e8f15545e4008aaa95a48ec19e1978dbf3a954d7b99" }, "downloads": -1, "filename": "Products.DataGridField-1.6b3-py2.4.egg", "has_sig": false, "md5_digest": "a4210246dce5b943367e991359ed4c87", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 107147, "upload_time": "2008-04-27T23:09:10", "url": "https://files.pythonhosted.org/packages/65/c1/033fb598d885228f0d846e0aa1bf61680a7f53bbb82d80fad240f396db0a/Products.DataGridField-1.6b3-py2.4.egg" } ], "1.6rc1": [ { "comment_text": "", "digests": { "md5": "1a4682709d65b23a9edac5bc500ed6d1", "sha256": "12213fe97eefb8be12a1ff4b41c8c229afce75f48fc6fd55ef8787af934eb0c7" }, "downloads": -1, "filename": "Products.DataGridField-1.6rc1-py2.4.egg", "has_sig": false, "md5_digest": "1a4682709d65b23a9edac5bc500ed6d1", "packagetype": "bdist_egg", "python_version": "2.4", "requires_python": null, "size": 111955, "upload_time": "2008-05-30T00:15:03", "url": "https://files.pythonhosted.org/packages/29/6c/098e042d9912b840c054d628e75da26bbd37effd4f3dd3addb6b152ee4c8/Products.DataGridField-1.6rc1-py2.4.egg" }, { "comment_text": "", "digests": { "md5": "871d2d3e8725701897fe3629a0b98be1", "sha256": "a905780f356cd10c622c6b8de190bf071a0ac7d2a8d9f016a84c000c9fb1a1c8" }, "downloads": -1, "filename": "Products.DataGridField-1.6rc1.tar.gz", "has_sig": false, "md5_digest": "871d2d3e8725701897fe3629a0b98be1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 56551, "upload_time": "2008-05-30T00:14:57", "url": "https://files.pythonhosted.org/packages/d9/68/39fe4123bb4541588e5b9586bcd69409fef9a8a3513ca14db379d23ba82d/Products.DataGridField-1.6rc1.tar.gz" } ], "1.8.0": [ { "comment_text": "", "digests": { "md5": "3a855fca90499a8fd4698e444e344c42", "sha256": "35df0c2faad253293f223c292fb39840e54b5cebcc47af9c53d0c9f507fa31a4" }, "downloads": -1, "filename": "Products.DataGridField-1.8.0.zip", "has_sig": false, "md5_digest": "3a855fca90499a8fd4698e444e344c42", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 95612, "upload_time": "2012-05-29T12:14:05", "url": "https://files.pythonhosted.org/packages/3a/25/5949e979a70940a2a173fae49f094c542197334327223dd834351b292b30/Products.DataGridField-1.8.0.zip" } ], "1.8.1": [ { "comment_text": "", "digests": { "md5": "14ed47d3de4ec0f663da1615a0656d36", "sha256": "deda109ab7e23e86b329b114c4671e01ea9ca54eef7b4315e4829fda090ea4a4" }, "downloads": -1, "filename": "Products.DataGridField-1.8.1.zip", "has_sig": false, "md5_digest": "14ed47d3de4ec0f663da1615a0656d36", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 102166, "upload_time": "2012-06-28T12:03:22", "url": "https://files.pythonhosted.org/packages/d4/2b/5186ea078c526bff240fde1ab18cc169593694cef83e60c0a68446d99c53/Products.DataGridField-1.8.1.zip" } ], "1.8.2": [ { "comment_text": "", "digests": { "md5": "ebe215f7719fc67e7b434b6a3b979fd0", "sha256": "5f9d093f19a659f3026f00d2fdb70675bce3cebc0487750b0532aef418df3d6b" }, "downloads": -1, "filename": "Products.DataGridField-1.8.2.zip", "has_sig": false, "md5_digest": "ebe215f7719fc67e7b434b6a3b979fd0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 97279, "upload_time": "2012-08-23T13:15:11", "url": "https://files.pythonhosted.org/packages/28/ce/6ad090c14c6c5e6549a85e4c3cca7acc6dc6623f4e2125779955950a24fc/Products.DataGridField-1.8.2.zip" } ], "1.8.3": [ { "comment_text": "", "digests": { "md5": "ddcb04a401c68de9421cea8f40e4062f", "sha256": "8995cf76d54f9be8ee7bcacabb4a5eea0c6441c74f18cb9a11f5fd0078945be0" }, "downloads": -1, "filename": "Products.DataGridField-1.8.3.zip", "has_sig": false, "md5_digest": "ddcb04a401c68de9421cea8f40e4062f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 97153, "upload_time": "2012-08-23T13:52:21", "url": "https://files.pythonhosted.org/packages/ab/42/ff86b950abe44d665920a0d3bca735d63564a97f456481893bd616c548b7/Products.DataGridField-1.8.3.zip" } ], "1.8.4": [ { "comment_text": "", "digests": { "md5": "578aacae0017c1ee5ee06b8f4e8f1ff7", "sha256": "1246aaaaafd7172d95ecb8e964f19051d36d2d3d65300ff1f05d32590bfd68a2" }, "downloads": -1, "filename": "Products.DataGridField-1.8.4.zip", "has_sig": false, "md5_digest": "578aacae0017c1ee5ee06b8f4e8f1ff7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 105862, "upload_time": "2013-01-04T10:47:22", "url": "https://files.pythonhosted.org/packages/86/0e/c4351eafde208f4a326db1a8f72d712660fa58497bc94461ed1222cba66e/Products.DataGridField-1.8.4.zip" } ], "1.8a1": [ { "comment_text": "", "digests": { "md5": "4b34fb04ef624640fa63f0ee5d76a619", "sha256": "8b1d317e23aac8932a9b1054aeba08624f55a8f29fe28f97f8216bdd0315f0ad" }, "downloads": -1, "filename": "Products.DataGridField-1.8a1.tar.gz", "has_sig": false, "md5_digest": "4b34fb04ef624640fa63f0ee5d76a619", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 49130, "upload_time": "2009-11-07T02:44:38", "url": "https://files.pythonhosted.org/packages/f9/c9/c2d0671df93abea49d7a699a74107182c70ceaf2a8365de31ed3b44942ff/Products.DataGridField-1.8a1.tar.gz" } ], "1.8a2": [ { "comment_text": "", "digests": { "md5": "22fd8cb94273648639eef62b0ff015a8", "sha256": "217d3ab22a39f6c97f84d6d9df0bfeadac5c03b1d5c9872122563316bff1406a" }, "downloads": -1, "filename": "Products.DataGridField-1.8a2.zip", "has_sig": false, "md5_digest": "22fd8cb94273648639eef62b0ff015a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 91879, "upload_time": "2010-06-02T00:21:57", "url": "https://files.pythonhosted.org/packages/da/49/d7a75256d11dca9f0f7450da253b34bf24b5c994c09abe0a11ea1019ce38/Products.DataGridField-1.8a2.zip" } ], "1.8b1": [ { "comment_text": "", "digests": { "md5": "68e09605abfec71a85e390eee6361366", "sha256": "dd491f9958895c1d272df6bca0c944e1e4af5f6d9f13faa7031f3cefff4caaf0" }, "downloads": -1, "filename": "Products.DataGridField-1.8b1.zip", "has_sig": false, "md5_digest": "68e09605abfec71a85e390eee6361366", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 93560, "upload_time": "2010-08-16T10:07:56", "url": "https://files.pythonhosted.org/packages/9f/d9/d6f0885331f95421f8063bddc3faed767ddc0284f5beeec85ec10604012e/Products.DataGridField-1.8b1.zip" } ], "1.8b2": [ { "comment_text": "", "digests": { "md5": "5efe71670248b0c929dccaab6a95ee19", "sha256": "8ad3ed4bbdc895cb5d19aa68647ff325e3c913db439be0da55d1f901c5991325" }, "downloads": -1, "filename": "Products.DataGridField-1.8b2.tar.gz", "has_sig": false, "md5_digest": "5efe71670248b0c929dccaab6a95ee19", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 55534, "upload_time": "2011-05-08T10:32:35", "url": "https://files.pythonhosted.org/packages/cc/65/369268ab7287b276eb9bf7617b41ce6191ad6b3ebf5389f6f496b3ebbe65/Products.DataGridField-1.8b2.tar.gz" } ], "1.9.0": [ { "comment_text": "", "digests": { "md5": "00e31e2643a757c6216c79587f4e1eba", "sha256": "98fb29c665fb0b5b6c5507b174a457d241cac3f305888765b4f3c17f12ffd1b9" }, "downloads": -1, "filename": "Products.DataGridField-1.9.0.zip", "has_sig": false, "md5_digest": "00e31e2643a757c6216c79587f4e1eba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 108618, "upload_time": "2013-09-19T13:31:53", "url": "https://files.pythonhosted.org/packages/b7/b7/4382796fba57808a51a63ace362b554fab7a40fa49110f450cc69283c455/Products.DataGridField-1.9.0.zip" } ], "1.9.1": [ { "comment_text": "", "digests": { "md5": "aa3796595887aaa6243e85c20f0afc8e", "sha256": "9c3ca52d570ead49b4a5a57ee331fd517863acbedc76999ffc48e27dc39ca10e" }, "downloads": -1, "filename": "Products.DataGridField-1.9.1.tar.gz", "has_sig": false, "md5_digest": "aa3796595887aaa6243e85c20f0afc8e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 70105, "upload_time": "2014-10-14T21:32:49", "url": "https://files.pythonhosted.org/packages/da/e3/fa83a127c084415dad7c5e58db8425a230c8a7bc19b962703b2ef7bfa850/Products.DataGridField-1.9.1.tar.gz" } ], "1.9.2": [ { "comment_text": "", "digests": { "md5": "896affd894b886883c37b91cce862db0", "sha256": "9fb584c4223f164274e1c8d477dc802bab4b2d59dd82ad256f01f6ef6707d6f4" }, "downloads": -1, "filename": "Products.DataGridField-1.9.2.tar.gz", "has_sig": false, "md5_digest": "896affd894b886883c37b91cce862db0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74232, "upload_time": "2015-08-31T21:29:22", "url": "https://files.pythonhosted.org/packages/8d/8f/6a173bef4214e3608394c155d69bcbcce779fa45823faff3cb407f3f23cd/Products.DataGridField-1.9.2.tar.gz" } ], "1.9.3": [ { "comment_text": "", "digests": { "md5": "50d2ad514c9a3a484fedc4440a5c21af", "sha256": "fff65f77b9e1ff3e48fc6712d60a768cd0e5ce316a1a3228351c484700fe692d" }, "downloads": -1, "filename": "Products.DataGridField-1.9.3.tar.gz", "has_sig": false, "md5_digest": "50d2ad514c9a3a484fedc4440a5c21af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74455, "upload_time": "2015-09-07T12:04:27", "url": "https://files.pythonhosted.org/packages/c2/dc/09827e702ecdf6508299b468a5002c89760d69ffbb55d11e6bca486ed933/Products.DataGridField-1.9.3.tar.gz" } ], "1.9.4": [ { "comment_text": "", "digests": { "md5": "4cccb8dd933ad9c33a6561428a26c7f8", "sha256": "00f9331f502d7b1d4b5d1f48268d71e39fba961f033720ccba571db8b0d34d9a" }, "downloads": -1, "filename": "Products.DataGridField-1.9.4.tar.gz", "has_sig": false, "md5_digest": "4cccb8dd933ad9c33a6561428a26c7f8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74549, "upload_time": "2015-09-07T14:00:08", "url": "https://files.pythonhosted.org/packages/3e/db/032f9296d5630b7412d66840bed6ea93e3c0e1667178d256978f6e398839/Products.DataGridField-1.9.4.tar.gz" } ], "1.9.5": [ { "comment_text": "", "digests": { "md5": "cf57f68ed0d57288807ab614c76a18e4", "sha256": "07b2b04e6a9db770d5765fa4f01a2d8c3bb3ff6cd0a54703864cbdc7a7fb62c8" }, "downloads": -1, "filename": "Products.DataGridField-1.9.5.tar.gz", "has_sig": false, "md5_digest": "cf57f68ed0d57288807ab614c76a18e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 74871, "upload_time": "2016-03-22T18:19:49", "url": "https://files.pythonhosted.org/packages/87/ba/9f5ed4e04b37f2c0668f05e7b6f62cc602d928e129efc1f6bc5e499377ee/Products.DataGridField-1.9.5.tar.gz" } ], "1.9.6": [ { "comment_text": "", "digests": { "md5": "c48fd5c0fc2f7f2adb0af231f96f934a", "sha256": "b3d9325549767b85687c6f86b6229af71c8c74e403fb32bb6d3dc5fb4ba6a7aa" }, "downloads": -1, "filename": "Products.DataGridField-1.9.6.tar.gz", "has_sig": false, "md5_digest": "c48fd5c0fc2f7f2adb0af231f96f934a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75064, "upload_time": "2017-02-21T17:05:12", "url": "https://files.pythonhosted.org/packages/7c/b7/d37b5f47421c245bbd3ec54d1e3a18ae124d0f77a4fb33c664013e898f06/Products.DataGridField-1.9.6.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c48fd5c0fc2f7f2adb0af231f96f934a", "sha256": "b3d9325549767b85687c6f86b6229af71c8c74e403fb32bb6d3dc5fb4ba6a7aa" }, "downloads": -1, "filename": "Products.DataGridField-1.9.6.tar.gz", "has_sig": false, "md5_digest": "c48fd5c0fc2f7f2adb0af231f96f934a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 75064, "upload_time": "2017-02-21T17:05:12", "url": "https://files.pythonhosted.org/packages/7c/b7/d37b5f47421c245bbd3ec54d1e3a18ae124d0f77a4fb33c664013e898f06/Products.DataGridField-1.9.6.tar.gz" } ] }