collective.feedback


Namecollective.feedback JSON
Version 1.1.5 PyPI version JSON
download
home_pagehttps://github.com/collective/collective.feedback
SummaryFeedback mechanism integration for io-comune
upload_time2024-11-07 13:32:12
maintainerNone
docs_urlNone
authorRedTurtle Technology
requires_python>=3.7
licenseGPL version 2
keywords python plone cms
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            .. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.
   If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html
   This text does not appear on pypi or github. It is a comment.

.. image:: https://img.shields.io/pypi/v/collective.feedback.svg
    :target: https://pypi.python.org/pypi/collective.feedback/
    :alt: Latest Version
.. image:: https://img.shields.io/pypi/status/collective.feedback.svg
    :target: https://pypi.python.org/pypi/collective.feedback
    :alt: Egg Status
.. image:: https://img.shields.io/pypi/pyversions/collective.feedback.svg?style=plastic
    :target: https://pypi.python.org/pypi/collective.feedback
    :alt: Supported - Python Versions
.. image:: https://img.shields.io/pypi/l/collective.feedback.svg
    :target: https://pypi.python.org/pypi/collective.feedback/
    :alt: License


===================
collective.feedback
===================

Feedback mechanism integration for volto.

Users can add vote and a comment to every page on the site.

Bot protection
==============

This product use `collective.honeypot <https://pypi.org/project/collective.honeypot/>`_ to prevent bot submissions.

You just need to set two environment variables:

- *EXTRA_PROTECTED_ACTIONS feedback-add*
- *HONEYPOT_FIELD xxx*

xxx should be a field name that bot should compile.

If you get hacked, you could simply change that variable.

Permissions
===========

There are two new specific permission:

- collective.feedback.ManageFeedbacks (collective.feedback: Manage Feedbacks) Allows to reset data (by default Manager and Site Administrator).
- collective.feedback.AccessFeedbacks (collective.feedback: Access Feedbacks) Allows users to list feedbacks on contents where they have that permission (by default Editor, Manager and Site Administrator)

Feedbacks catalog
=================

Reviews are stored inside an internal catalog (based on `souper.plone <https://pypi.org/project/souper.plone/>`_).

You can access/edit data through restapi routes (see below) or through a Plone utility::

    from zope.component import getUtility
    from collective.feedback.interfaces import ICollectiveFeedbackStore

    tool = getUtility(ICollectiveFeedbackStore)

Add a vote
----------

- Method ``add``
- Parameters: ``data`` (dictionary with parameters)
- Response: unique-id of new record

``data`` should be a dictionary with the following parameters:

- uid [required]: the uid of the Plone content
- vote [required]: the vote
- answer: a custom string, like a comment
- title: the title of the Plone content
- comment: an optional comment

Others parameters will be ignored.

Search reviews
--------------

- Method ``search``
- Parameters: ``query`` (dictionary with parameters), ``sort_index`` (default=date), ``reverse`` (default=False)
- Response: a list of results

``query`` is a dictionary of indexes where perform the search.

Right now data is not indexed so search filters does not work. You only need to call search method to get all data.


List update
-----------

PATCH
~~~~~

This endpoint allows update feedbacks by list.
By now you can only change "read" property


Example::

    curl http://localhost:8080/Plone/@feedback-list \
        -X PATCH \
        -H 'Accept: application/json' \
        -H 'Content-Type: application/json' \
        -d '{
            "101010101": {"read": true},
        }'


Installation
------------

Install collective.feedback by adding it to your buildout::

    [buildout]

    ...

    eggs =
        collective.feedback


and then running ``bin/buildout``

Contribute
------------

- Issue Tracker: https://github.com/RedTurtle/collective.feedback/issues
- Source Code: https://github.com/RedTurtle/collective.feedback

Compatibility
=============

This product has been tested on Plone 6

Authors
=======

This product was developed by RedTurtle Technology team.

.. image:: http://www.redturtle.net/redturtle_banner.png
   :alt: RedTurtle Technology Site
   :target: http://www.redturtle.net/


Contributors
============

- RedTurtle Technology, sviluppoplone@redturtle.it


Changelog
=========


1.1.5 (2024-11-07)
------------------

- Feedbacks list update endpoint @@feedback-list.
  [folix-01]

1.1.4 (2024-08-21)
------------------

- Add feedback update endpoint.
  [folix-01]

- Add read field to the comment.
  [folix-01]


1.1.3 (2024-04-29)
------------------

- add a plone2volto url conversion method on feedback download
  [lucabel]


1.1.2 (2024-03-15)
------------------

- Fix typo in actions.xml permission.
  [cekk]


1.1.1 (2024-03-13)
------------------

- re-add actions.xml file to have a user-action needed on Volto.
  [cekk]


1.1.0 (2024-03-12)
------------------

- Only managers can access deleted feedbacks.
  [cekk]
- Allow all authenticated users to access @feedback endpoint.
  The endpoint will return only feedbacks on objects that they can edit.
  [cekk]
- Improve tests.
  [cekk]
- Install souper.plone to have its control-panel in backend.
  [cekk]
- Remove unused user action.
  [cekk]
- Add `actions` infos in @feedback endpoint, to let the frontend know what the user can do.
  [cekk]

1.0.0 (2023-02-16)
------------------

- Initial release.
  [eikichi18]
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/collective/collective.feedback",
    "name": "collective.feedback",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "Python Plone CMS",
    "author": "RedTurtle Technology",
    "author_email": "sviluppoplone@redturtle.it",
    "download_url": "https://files.pythonhosted.org/packages/e6/17/def0c32f514552ddcf3be07e88812d1e8e9d223966b47c9f4f00f6664f3b/collective.feedback-1.1.5.tar.gz",
    "platform": null,
    "description": ".. This README is meant for consumption by humans and pypi. Pypi can render rst files so please do not use Sphinx features.\n   If you want to learn more about writing documentation, please check out: http://docs.plone.org/about/documentation_styleguide.html\n   This text does not appear on pypi or github. It is a comment.\n\n.. image:: https://img.shields.io/pypi/v/collective.feedback.svg\n    :target: https://pypi.python.org/pypi/collective.feedback/\n    :alt: Latest Version\n.. image:: https://img.shields.io/pypi/status/collective.feedback.svg\n    :target: https://pypi.python.org/pypi/collective.feedback\n    :alt: Egg Status\n.. image:: https://img.shields.io/pypi/pyversions/collective.feedback.svg?style=plastic\n    :target: https://pypi.python.org/pypi/collective.feedback\n    :alt: Supported - Python Versions\n.. image:: https://img.shields.io/pypi/l/collective.feedback.svg\n    :target: https://pypi.python.org/pypi/collective.feedback/\n    :alt: License\n\n\n===================\ncollective.feedback\n===================\n\nFeedback mechanism integration for volto.\n\nUsers can add vote and a comment to every page on the site.\n\nBot protection\n==============\n\nThis product use `collective.honeypot <https://pypi.org/project/collective.honeypot/>`_ to prevent bot submissions.\n\nYou just need to set two environment variables:\n\n- *EXTRA_PROTECTED_ACTIONS feedback-add*\n- *HONEYPOT_FIELD xxx*\n\nxxx should be a field name that bot should compile.\n\nIf you get hacked, you could simply change that variable.\n\nPermissions\n===========\n\nThere are two new specific permission:\n\n- collective.feedback.ManageFeedbacks (collective.feedback: Manage Feedbacks) Allows to reset data (by default Manager and Site Administrator).\n- collective.feedback.AccessFeedbacks (collective.feedback: Access Feedbacks) Allows users to list feedbacks on contents where they have that permission (by default Editor, Manager and Site Administrator)\n\nFeedbacks catalog\n=================\n\nReviews are stored inside an internal catalog (based on `souper.plone <https://pypi.org/project/souper.plone/>`_).\n\nYou can access/edit data through restapi routes (see below) or through a Plone utility::\n\n    from zope.component import getUtility\n    from collective.feedback.interfaces import ICollectiveFeedbackStore\n\n    tool = getUtility(ICollectiveFeedbackStore)\n\nAdd a vote\n----------\n\n- Method ``add``\n- Parameters: ``data`` (dictionary with parameters)\n- Response: unique-id of new record\n\n``data`` should be a dictionary with the following parameters:\n\n- uid [required]: the uid of the Plone content\n- vote [required]: the vote\n- answer: a custom string, like a comment\n- title: the title of the Plone content\n- comment: an optional comment\n\nOthers parameters will be ignored.\n\nSearch reviews\n--------------\n\n- Method ``search``\n- Parameters: ``query`` (dictionary with parameters), ``sort_index`` (default=date), ``reverse`` (default=False)\n- Response: a list of results\n\n``query`` is a dictionary of indexes where perform the search.\n\nRight now data is not indexed so search filters does not work. You only need to call search method to get all data.\n\n\nList update\n-----------\n\nPATCH\n~~~~~\n\nThis endpoint allows update feedbacks by list.\nBy now you can only change \"read\" property\n\n\nExample::\n\n    curl http://localhost:8080/Plone/@feedback-list \\\n        -X PATCH \\\n        -H 'Accept: application/json' \\\n        -H 'Content-Type: application/json' \\\n        -d '{\n            \"101010101\": {\"read\": true},\n        }'\n\n\nInstallation\n------------\n\nInstall collective.feedback by adding it to your buildout::\n\n    [buildout]\n\n    ...\n\n    eggs =\n        collective.feedback\n\n\nand then running ``bin/buildout``\n\nContribute\n------------\n\n- Issue Tracker: https://github.com/RedTurtle/collective.feedback/issues\n- Source Code: https://github.com/RedTurtle/collective.feedback\n\nCompatibility\n=============\n\nThis product has been tested on Plone 6\n\nAuthors\n=======\n\nThis product was developed by RedTurtle Technology team.\n\n.. image:: http://www.redturtle.net/redturtle_banner.png\n   :alt: RedTurtle Technology Site\n   :target: http://www.redturtle.net/\n\n\nContributors\n============\n\n- RedTurtle Technology, sviluppoplone@redturtle.it\n\n\nChangelog\n=========\n\n\n1.1.5 (2024-11-07)\n------------------\n\n- Feedbacks list update endpoint @@feedback-list.\n  [folix-01]\n\n1.1.4 (2024-08-21)\n------------------\n\n- Add feedback update endpoint.\n  [folix-01]\n\n- Add read field to the comment.\n  [folix-01]\n\n\n1.1.3 (2024-04-29)\n------------------\n\n- add a plone2volto url conversion method on feedback download\n  [lucabel]\n\n\n1.1.2 (2024-03-15)\n------------------\n\n- Fix typo in actions.xml permission.\n  [cekk]\n\n\n1.1.1 (2024-03-13)\n------------------\n\n- re-add actions.xml file to have a user-action needed on Volto.\n  [cekk]\n\n\n1.1.0 (2024-03-12)\n------------------\n\n- Only managers can access deleted feedbacks.\n  [cekk]\n- Allow all authenticated users to access @feedback endpoint.\n  The endpoint will return only feedbacks on objects that they can edit.\n  [cekk]\n- Improve tests.\n  [cekk]\n- Install souper.plone to have its control-panel in backend.\n  [cekk]\n- Remove unused user action.\n  [cekk]\n- Add `actions` infos in @feedback endpoint, to let the frontend know what the user can do.\n  [cekk]\n\n1.0.0 (2023-02-16)\n------------------\n\n- Initial release.\n  [eikichi18]",
    "bugtrack_url": null,
    "license": "GPL version 2",
    "summary": "Feedback mechanism integration for io-comune",
    "version": "1.1.5",
    "project_urls": {
        "Homepage": "https://github.com/collective/collective.feedback",
        "PyPI": "https://pypi.org/project/collective.feedback/",
        "Source": "https://github.com/collective/collective.feedback",
        "Tracker": "https://github.com/collective/collective.feedback/issues"
    },
    "split_keywords": [
        "python",
        "plone",
        "cms"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e617def0c32f514552ddcf3be07e88812d1e8e9d223966b47c9f4f00f6664f3b",
                "md5": "b69cba635c2eaee6d56dd4b5e6edb476",
                "sha256": "9071ac998a4a2827e9171494137d3b4df4ecc66b97eedda672891380f3b38ea5"
            },
            "downloads": -1,
            "filename": "collective.feedback-1.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "b69cba635c2eaee6d56dd4b5e6edb476",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 32455,
            "upload_time": "2024-11-07T13:32:12",
            "upload_time_iso_8601": "2024-11-07T13:32:12.577083Z",
            "url": "https://files.pythonhosted.org/packages/e6/17/def0c32f514552ddcf3be07e88812d1e8e9d223966b47c9f4f00f6664f3b/collective.feedback-1.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-11-07 13:32:12",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "collective",
    "github_project": "collective.feedback",
    "github_not_found": true,
    "lcname": "collective.feedback"
}
        
Elapsed time: 0.38672s