Feedback mechanism integration for volto.
Users can add vote and a comment to every page on the site.
This product use 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.
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)
Reviews are stored inside an internal catalog (based on 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)
- 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.
- 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.
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}, }'
Install collective.feedback by adding it to your buildout:
[buildout] ... eggs = collective.feedback
and then running bin/buildout
- Issue Tracker: https://github.com/RedTurtle/collective.feedback/issues
- Source Code: https://github.com/RedTurtle/collective.feedback
This product has been tested on Plone 6
This product was developed by RedTurtle Technology team.