{
"info": {
"author": "Sylvain Boureliou",
"author_email": "sylvain.boureliou@makina-corpus.com",
"bugtrack_url": null,
"classifiers": [
"Framework :: Plone",
"Framework :: Plone :: 4.3",
"Framework :: Plone :: 5.0",
"Programming Language :: Python",
"Programming Language :: Python :: 2.7",
"Topic :: Software Development :: Libraries :: Python Modules"
],
"description": "===============================================\ncollective.z3cform.norobots\n===============================================\n\n.. contents:: Table of Contents\n :depth: 2\n\nOverview\n--------\n\n``collective.z3cform.norobots`` provides a \"human\" captcha widget based on a list of\nquestion/answer(s).\n\nThis captcha can be used :\n\n * as a ``plone.app.discussion`` (Plone Discussions) captcha plugin\n\n * as a ``z3c form`` field\n\n * as a macro in a custom form\n\n * as a PloneFormGen field with `collective.pfg.norobots`_\n\nThe widget is based on z3c.form.TextWidget.\n\nSince version 1.4, questions configuration uses a dedicated control panel (using ``plone.app.registry``)\ninstead of a simple properties sheet. An upgrade step provides migration from earlier versions.\n\nInterface is translated in the following languages: Czech [cs], Danish [da], German [de],\nBasque [eu], Spanish [es], Suomeksi [fi], French [fr], Dutch [nl], Simplified Chinese [zh_CN],\nItalian [it] and Russian [ru].\n\nRequirements\n------------\n\nI have tested this release with Plone 4.3.10, Plone 5.0.5.\n\nSee previous releases for old Plone versions.\n\nScreenshot\n------------\n\n.. image:: https://github.com/sylvainb/collective.z3cform.norobots/raw/master/docs/collective-z3cform-norobots-screenshot.png\n :height: 324px\n :width: 499px\n :scale: 100 %\n :alt: Screenshot\n :align: center\n\nInstallation\n------------\n\nGetting the module\n~~~~~~~~~~~~~~~~~~~~\n\nAdd ``collective.z3cform.norobots`` to your ``plone.recipe.zope2instance`` buildout section e.g.::\n\n [instance]\n ...\n eggs =\n Plone\n ...\n collective.z3cform.norobots\n\n ...\n\n zcml =\n ...\n collective.z3cform.norobots\n\nOr, you can add it as a dependency on your own product *setup.py*::\n\n install_requires=[\n ...\n 'collective.z3cform.norobots',\n ],\n\nEnabling the module\n~~~~~~~~~~~~~~~~~~~~\n\nIn the Addons control panel, install \"Norobots captcha field (collective.z3cform.norobots)\".\n\nAdd a new question\n~~~~~~~~~~~~~~~~~~~~\n\nIn the \"Norobots widget settings\" control panel, add a new line in the field \"Norobots question::answer\":\n::\n\n your_question::the_answer\n\n Example : What is 10 + 12 ?::22\n\nAnswer can contain multiple values delimited by semicolon:\n::\n\n your_question::the_answer;another_answer\n\n Example : What is 5 + 5 ?::10;ten\n\nQuickly test ?\n~~~~~~~~~~~~~~~~~~~~\n\nDownload ``collective.z3cform.norobots`` and use ``virtualenv`` and ``buildout`` to test the module::\n\n easy_install virtualenv\n cd collective.z3cform.norobots\n virtualenv .\n source bin/activate\n (collective.z3cform.norobots) easy_install zc.buildout\n !!! check the buildout config file ``test-plone-base.cfg`` before running !!!\n (collective.z3cform.norobots) ln -s test-plone-5.0.x.cfg buildout.cfg\n (collective.z3cform.norobots) python bootstrap.py\n (collective.z3cform.norobots) bin/buildout\n [...] be patient... [...]\n (collective.z3cform.norobots) ./bin/instance fg\n\nGo to http://localhost:8080, add a new Plone Site and install collective.z3cform.norobots (see above).\n\nLaunch tests::\n\n (collective.z3cform.norobots) pip install unittest2\n (collective.z3cform.norobots) ./bin/test -s collective.z3cform.norobots\n\nLaunch code coverage::\n\n (collective.z3cform.norobots) bin/coverage\n (collective.z3cform.norobots) bin/report\n And open with a browser htmlcov/index.html\n\nUsage as a ``plone.app.discussion`` (Plone Discussions) captcha plugin\n----------------------------------------------------------------------\n\nIn the Discussion control panel, activate anonymous comments then select \"Norobots\" for the captcha.\nThis enable the captcha for anonymous users.\n\n\nUsage in a z3c form\n-------------------\n\nYou can use this widget setting the \"widgetFactory\" property of a form field:\n::\n\n from zope import interface, schema\n from z3c.form import interfaces, form, field, button, validator\n from plone.app.z3cform.layout import wrap_form\n\n from collective.z3cform.norobots.i18n import MessageFactory as _\n from collective.z3cform.norobots.widget import NorobotsFieldWidget\n from collective.z3cform.norobots.validator import NorobotsValidator\n\n class INorobotsForm(interface.Interface):\n norobots = schema.TextLine(title=_(u'Are you a human ?'),\n description=_(u'In order to avoid spam, please answer the question below.'),\n required=True)\n\n class NorobotsForm(form.Form):\n fields = field.Fields(INorobotsForm)\n fields['norobots'].widgetFactory = NorobotsFieldWidget\n\n # wrap the form with plone.app.z3cform's Form wrapper\n NorobotsFormView = wrap_form(NorobotsForm)\n\n # Register Norobots validator for the correponding field in the IContactInfo interface\n validator.WidgetValidatorDiscriminators(NorobotsValidator, field=INorobotsForm['norobots'])\n\nFor more information see ``contact_info.py`` in the ``plone_forms`` directory.\n\nTo activate this example, add ```` in the package's\n``configure.zml`` file and open http://localhost:8080/Plone/@@z3cform-contact-info\n\nUsage as a macro in a custom form\n----------------------------------\n\nSee ``browser/norobots_macro.pt`` available through @@norobots_macro browser page.\n\nPossible problems\n-----------------\n\n * In a fresh Plone 5.0.5 the captcha widget does not appear in the comments form even if ``Norobots``\n is the selected captcha. Installing an other captcha like ``plone.formwidget.captcha`` solve\n this problem (sic!). In my website, updated from Plone 5.0.4 to 5.0.5, all is ok.\n\n * I have the following error when launching the tests: \"ImportError: No module named lxml.html\"\n => In order to run the tests you need lxml. You can add for example\n \"z3c.form [test]\" to your buildout. See http://plone.293351.n2.nabble.com/Custom-Dexterity-Widgets-td5594532.html for more details.\n\nCredits\n-----------------\n\n* Sylvain Boureliou [sylvainb] - `GitHub `_ - `Website `_\n* Makina Corpus `Makina Corpus `_\n\nSource code\n-----------\n\n`Source code `_ is hosted on Github.\n\nHow to contribute and submit a patch ?\n--------------------------------------\n\n`Source code `_ and an `issue tracker `_ is hosted on Github.\n\nContributors\n-----------------\n* Sylvain Boureliou [sylvainb]\n* Mikel Larreategi [erral]\n* Aijun Jian\n* Radim Novotny [naro]\n* Thomas Clement Mogensen [tmog]\n* Peter Mathis [petschki]\n* Petri Savolainen [petri]\n* Helmut Toplitzer\n* Luca Fabbri [keul]\n* Andrea Cecchi [cekk]\n* [serge73]\n\n.. _`collective.pfg.norobots`: http://pypi.python.org/pypi/collective.pfg.norobots\n\n\nChangelog\n------------\n\n1.4.4 (2016-07-20)\n~~~~~~~~~~~~~~~~~~\n\n- Add Russian translation\n [serge73]\n\n1.4.3 (2016-07-08)\n~~~~~~~~~~~~~~~~~~\n\n- Add macro for html forms\n [cekk]\n\n\n1.4.2.2 (2013-04-25)\n~~~~~~~~~~~~~~~~~~~~\n\n- added italian translation\n [keul]\n\n1.4.2.1 (2013-01-17)\n~~~~~~~~~~~~~~~~~~~~\n\n- add Dutch Translations\n [maartenkling]\n\n1.4.2 (2012-10-03)\n~~~~~~~~~~~~~~~~~~\n\n- Add compatibility for collective.pfg.norobots : allow to use the Norobots captcha with PloneFormGen.\n [sylvainb]\n\n- Fix widget template to allow good redirection when the answer is bad in plone.app.discussion forms.\n [sylvainb]\n\n- Move source code in \"src\" directory.\n [sylvainb]\n\n- Update tests, buildouts and add test coverage. Plone 4.0 is no longer supported.\n [sylvainb]\n\n- Change MessageFactory name to get translations picked up by Plone\n [erral]\n\n- Updated basque translation and added Spanish translation.\n [erral]\n\n1.4.1 (2012-07-02)\n~~~~~~~~~~~~~~~~~~\n\n- Fix Unicode error when a question contains non-ascii char.\n [sylvainb, Helmut Toplitzer]\n\n1.4 (2012-06-22)\n~~~~~~~~~~~~~~~~\n\n- Use plone.app.registry instead of a property sheet for the questions configuration.\n Questions can now be added using a dedicated control panel.\n [sylvainb]\n\n- Add an upgrade step (1 -> 2) to copy questions from the old properties sheet to plone.app.registry.\n [sylvainb]\n\n- Fix the widget template for use with plone.app.discussion (there was no redirection to\n the comment form when only the captcha is wrong).\n [sylvainb]\n\n- Update translations (some new strings added).\n [sylvainb]\n\n- Add Basque translation\n [erral]\n\n\n1.3.1 (2012-03-28)\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Add simplified chinese translation\n [Aijun Jian]\n\n1.3 (2012-02-27)\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Allow multiple answers for a question\n [naro]\n\n- Added danish translation\n [tmog]\n\n\n1.2.1 (2010-11-05)\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Added german translation\n [petschki]\n\n\n1.2 (2010-10-31)\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Fix tests for Plone 4\n [sylvainb]\n\n- Added Czech translation\n [naro]\n\n1.1 (2010-09-15)\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Support for using as a plone.app.discussion captcha plugin (Plone 4)\n [Petri Savolainen]\n\n- Finnish translations\n [Petri Savolainen]\n\n1.0 (2010-01-13)\n~~~~~~~~~~~~~~~~~~~~~~~~\n\n- Initial release\n [sylvainb]",
"description_content_type": null,
"docs_url": null,
"download_url": "UNKNOWN",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "http://www.makina-corpus.com",
"keywords": "plone z3cform captcha",
"license": "GPL",
"maintainer": null,
"maintainer_email": null,
"name": "collective.z3cform.norobots",
"package_url": "https://pypi.org/project/collective.z3cform.norobots/",
"platform": "UNKNOWN",
"project_url": "https://pypi.org/project/collective.z3cform.norobots/",
"project_urls": {
"Download": "UNKNOWN",
"Homepage": "http://www.makina-corpus.com"
},
"release_url": "https://pypi.org/project/collective.z3cform.norobots/1.4.4/",
"requires_dist": null,
"requires_python": null,
"summary": "Human readable captcha for z3cform",
"version": "1.4.4"
},
"last_serial": 2233442,
"releases": {
"1.0": [
{
"comment_text": "",
"digests": {
"md5": "6847fbfeca668bcd2ffae9967d8f11aa",
"sha256": "4acecc59b9eef0376b742234dc376115ad4569edd57aacdbc5ade2a02431d25c"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.0.zip",
"has_sig": false,
"md5_digest": "6847fbfeca668bcd2ffae9967d8f11aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 30306,
"upload_time": "2010-01-13T12:33:52",
"url": "https://files.pythonhosted.org/packages/4e/22/bb88ca63be583f4006d26277e9b182ab88eb916a16de34edb83112324ab9/collective.z3cform.norobots-1.0.zip"
}
],
"1.1": [
{
"comment_text": "",
"digests": {
"md5": "25597fe13a6cb05f8bc2f8cbba08003e",
"sha256": "2d6fdfbb89bb65bce7da555ee5ee4f78c5b5b5023d858382f715cba39249a5c9"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.1.zip",
"has_sig": false,
"md5_digest": "25597fe13a6cb05f8bc2f8cbba08003e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 32475,
"upload_time": "2010-09-15T10:23:16",
"url": "https://files.pythonhosted.org/packages/27/d9/a36b0c4a525b106c1b43ad2e4ce76baa88166449631cfbb77ced85338ee8/collective.z3cform.norobots-1.1.zip"
}
],
"1.2": [
{
"comment_text": "",
"digests": {
"md5": "f4959a175cb5e428df9174b10cb5dc54",
"sha256": "6e97b4bb6fed971a7fefe1098d5f74d6f34186c998baa9052708f6cefe65cdb0"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.2.tar.gz",
"has_sig": false,
"md5_digest": "f4959a175cb5e428df9174b10cb5dc54",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 18527,
"upload_time": "2010-10-31T20:01:22",
"url": "https://files.pythonhosted.org/packages/f8/de/fcdafee6388600a2611847e811ebfb3fd2b22afb805082523e9b23c25265/collective.z3cform.norobots-1.2.tar.gz"
}
],
"1.2.1": [
{
"comment_text": "",
"digests": {
"md5": "b1ddcb4ad482b42f6dc1b851b7362fe5",
"sha256": "33c6ea5aa1d258e4197c5d2967ada7631f0c7c54b17c4efee798921d15c43032"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.2.1.tar.gz",
"has_sig": false,
"md5_digest": "b1ddcb4ad482b42f6dc1b851b7362fe5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 19329,
"upload_time": "2010-11-05T10:01:43",
"url": "https://files.pythonhosted.org/packages/18/29/2d592476cfd98a62e6f27625e43850ae94237e6f3b7234c5b29951dbe8f1/collective.z3cform.norobots-1.2.1.tar.gz"
}
],
"1.3": [
{
"comment_text": "",
"digests": {
"md5": "a633dc819e29917361a1bc0b9b532ece",
"sha256": "7bbdf501ce8c35e5a200a514ce4514e83de374cfd7c50985f3e482412ac6f5dd"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.3.zip",
"has_sig": false,
"md5_digest": "a633dc819e29917361a1bc0b9b532ece",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 38239,
"upload_time": "2012-02-27T14:59:29",
"url": "https://files.pythonhosted.org/packages/10/6e/e731236a6cf3a2651ee054fc1edd42b5b0c34e8ca54d9cb25b2cbc234c12/collective.z3cform.norobots-1.3.zip"
}
],
"1.3.1": [
{
"comment_text": "",
"digests": {
"md5": "b58db76db628fa78a1f6810fcc59a15f",
"sha256": "0a50fc1edf040b1e0c55c6e46f8a7e8d62bfc4bcb6ca143682b0c0bdedcc9f4c"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.3.1.zip",
"has_sig": false,
"md5_digest": "b58db76db628fa78a1f6810fcc59a15f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 39853,
"upload_time": "2012-03-28T09:05:15",
"url": "https://files.pythonhosted.org/packages/9f/41/bb30c6ce0fcb0598776f1d7d04e619e517a5035fc32308ff60f6bf9c6561/collective.z3cform.norobots-1.3.1.zip"
}
],
"1.4": [
{
"comment_text": "",
"digests": {
"md5": "bcd655c698ef28cf65e66bc090dd0a60",
"sha256": "e04ed5889377b5a7db6b7f9dc340703b0e9cab2611b24146ce56b39607e53ace"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.zip",
"has_sig": false,
"md5_digest": "bcd655c698ef28cf65e66bc090dd0a60",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 80279,
"upload_time": "2012-06-26T23:16:57",
"url": "https://files.pythonhosted.org/packages/e8/1a/248889a925a8f121406e59bcb9491a1f9678658d475c6b75538ef17392d4/collective.z3cform.norobots-1.4.zip"
}
],
"1.4.1": [
{
"comment_text": "",
"digests": {
"md5": "ade2c6b75da890052fff37507db6b36d",
"sha256": "3897c3c4cf7c1071fadce06238242e03e7d43a479b86b65a9563ea5bdfff890a"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.1.zip",
"has_sig": false,
"md5_digest": "ade2c6b75da890052fff37507db6b36d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 80782,
"upload_time": "2012-07-02T10:50:53",
"url": "https://files.pythonhosted.org/packages/f2/bb/018dafbb40402e04cd90fef3bbb86e1bfc19f5efd3338e928dd7d94246a0/collective.z3cform.norobots-1.4.1.zip"
}
],
"1.4.2": [
{
"comment_text": "",
"digests": {
"md5": "a3165f5600d3e2f250aad71e33fce6af",
"sha256": "bc8165e5cd1df23d43b92e7cbb308cf297dacbdaadb075249d12218dc540813a"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.2.zip",
"has_sig": false,
"md5_digest": "a3165f5600d3e2f250aad71e33fce6af",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 84904,
"upload_time": "2012-10-03T10:39:19",
"url": "https://files.pythonhosted.org/packages/5a/d1/689b7956624aef27450e6dacdac22a173d239c842a551b16333c432b216f/collective.z3cform.norobots-1.4.2.zip"
}
],
"1.4.2.1": [
{
"comment_text": "",
"digests": {
"md5": "1f010275f994a669fd14b01a6e9f0670",
"sha256": "803827b9a43ea81d27d6dc249c99790096d95dc2375f9778273da135c496c84a"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.2.1.zip",
"has_sig": false,
"md5_digest": "1f010275f994a669fd14b01a6e9f0670",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 88036,
"upload_time": "2013-01-17T10:39:25",
"url": "https://files.pythonhosted.org/packages/d1/8f/87ef32e89446642ce928ccbe7e69be1f6b9b59b157d8815de96ffc62dabb/collective.z3cform.norobots-1.4.2.1.zip"
}
],
"1.4.2.2": [
{
"comment_text": "",
"digests": {
"md5": "a1a5a8c583a4bd090160078fa8fa5fdd",
"sha256": "613b43537dee6764555e576aaf9b2cf57a467a9666bb94c3c93e23cf7efc02f7"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.2.2.zip",
"has_sig": false,
"md5_digest": "a1a5a8c583a4bd090160078fa8fa5fdd",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 88803,
"upload_time": "2013-04-25T08:59:34",
"url": "https://files.pythonhosted.org/packages/98/cc/1f37210b6e7fe8d043e86448727c0625ea3c56d5271923c4dbdfb4836f6b/collective.z3cform.norobots-1.4.2.2.zip"
}
],
"1.4.3": [
{
"comment_text": "",
"digests": {
"md5": "d60f5b466ac5eabddd8b4c961d0f12b2",
"sha256": "0bf3079968d0914a754a51ad5d50eecd82752d0bc4b95be794a9cb758d90d458"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.3.zip",
"has_sig": false,
"md5_digest": "d60f5b466ac5eabddd8b4c961d0f12b2",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 105927,
"upload_time": "2016-07-08T20:47:48",
"url": "https://files.pythonhosted.org/packages/28/61/0df2b22ca3e153b13fd7765e2c81c45c674efd470a3962e954860e95bcfa/collective.z3cform.norobots-1.4.3.zip"
}
],
"1.4.4": [
{
"comment_text": "",
"digests": {
"md5": "ec3003f03b6fccc944129e6b3cef141f",
"sha256": "3164f92d69cb201f27ac35e3af5bac32f665a73d2f3981b12dcaa3545315b03e"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.4.zip",
"has_sig": false,
"md5_digest": "ec3003f03b6fccc944129e6b3cef141f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 92542,
"upload_time": "2016-07-20T16:12:10",
"url": "https://files.pythonhosted.org/packages/a4/5e/764921f60d894bcb79471a7bef51391943f5718639d5543fce8b9747bacf/collective.z3cform.norobots-1.4.4.zip"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "ec3003f03b6fccc944129e6b3cef141f",
"sha256": "3164f92d69cb201f27ac35e3af5bac32f665a73d2f3981b12dcaa3545315b03e"
},
"downloads": -1,
"filename": "collective.z3cform.norobots-1.4.4.zip",
"has_sig": false,
"md5_digest": "ec3003f03b6fccc944129e6b3cef141f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 92542,
"upload_time": "2016-07-20T16:12:10",
"url": "https://files.pythonhosted.org/packages/a4/5e/764921f60d894bcb79471a7bef51391943f5718639d5543fce8b9747bacf/collective.z3cform.norobots-1.4.4.zip"
}
]
}