Customer satisfaction
Project description
Add a form (viewlet) for the customer satisfaction on site contents.
Users can add a vote (positive or negative) and a comment to every page on the site.
Bot protection
This product use collective.honeypot to prevent bot submissions.
You just need to set two environment variables:
EXTRA_PROTECTED_ACTIONS customer-satisfaction-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:
rer.customersatisfaction.AddCustomerSatisfactionVote (rer.customersatisfaction: Add Customer Satisfaction Vote) Allows users to vote (by default Anonymous).
rer.customersatisfaction.ManageCustomerSatisfaction (rer.customersatisfaction: Manage Customer Satisfaction) Allows to reset data (by default Manager and Site Administrator).
rer.customersatisfaction.ShowDeletedFeedbacks (rer.customersatisfaction: Show Deleted Feedbacks) Allow list also feedbacks from deleted contents (by default Manager and Site Administrator)
rer.customersatisfaction.AccessCustomerSatisfaction (rer.customersatisfaction: Access Customer Satisfaction) 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).
You can access/edit data through restapi routes (see below) or through a Plone utility:
from zope.component import getUtility from rer.customersatisfaction.interfaces import ICustomerSatisfactionStore tool = getUtility(ICustomerSatisfactionStore)
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 (should be 1 or -1)
title: the title of the Plone content
comment: an optional comment
Othere 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.
restapi routes
Add a vote
@customer-satisfaction-add
POST endpoint that need to be called on a site content.
Only users with “rer.customersatisfaction.AddCustomerSatisfactionVote” can post it:
> curl -i -X POST http://localhost:8080/Plone/front-page/@customer-satisfaction-add -H 'Accept: application/json' -H 'Content-Type: application/json' --data-raw '{"vote": "1", "xxx": ""}' --user admin:admin
If vote is successful, the response is a 204.
Sites list
Lists all sites in the current installation
sites-list
GET
Only users with “zope2.ViewManagementScreens” can get it:
> curl -i -X POST http://localhost:8080/sites-list -H 'Accept: application/json' -H 'Content-Type: application/json' --user admin:admin
result: [{“id”: “Plone”, “url”: “http://localhost:8080/Plone”, “title”: “Site”}]
Feedbacks listing
There is a view (a link is also available on user menu in sidebar) that shows all infos about feedbacks: @@customer-satisfaction
The list of feedbacks is filtered based on some permissions.
Customer satisfaction global
Users with zope2.ViewManagementScreens can call @@customer-satisfaction-global view on the application root(/) to see customer satisfaction report for all the sites
Installation
Add rer.customersatisfaction to buildout:
[buildout] ... eggs = rer.customersatisfaction
If you need collective.recaptcha support, add the egg like this:
... eggs = rer.customersatisfaction[collective_recaptcha]
and run bin/buildout command.
Contribute
Issue Tracker: https://github.com/RegioneER/rer.customersatisfaction/issues
Source Code: https://github.com/RegioneER/rer.customersatisfaction
Compatibility
This product has been tested on Plone 5.1 and 5.2
Credits
Developed with the support of Regione Emilia Romagna;
Regione Emilia Romagna supports the PloneGov initiative.
Contributors
RedTurtle Technology, sviluppo@redturtle.it
Rohberg, Katja Süss, @ksuess
Changelog
2.2.2 (2023-05-11)
Fix uninstall profile (remove action and bundles). [cekk]
2.2.1 (2023-03-24)
Add customer-satisfaction-global view [foxtrot-dfm1]
Fix english label. [cekk]
2.2.0 (2023-03-06)
Fire content rules event on new vote. [ksuess]
2.1.1 (2022-12-30)
Fix permissions to access feedbacks view. [cekk]
2.1.0 (2022-12-15)
Handle comments view (aka do not break) when a content is deleted but has some comments. [cekk]
Some fixes in accessibility and styles. [cekk]
2.0.0 (2022-11-07)
Fix translations. [cekk]
Fix python3.8 compatibility (https://github.com/repoze/repoze.catalog/issues/13) using python operators instead CQE. [cekk]
Some fixes in layout. [cekk]
Do not use recaptcha, but honeypot to prevent bots. [cekk]
Remove role=”radio” from labels to improve accessibility. [cekk]
1.2.0 (2022-07-06)
Add a flag to disable captcha validation. [cekk]
1.1.2 (2021-12-27)
Do not break viewlet if collective.recaptcha is not installed. [cekk]
1.1.1 (2021-12-02)
Fix python requirement. [cekk]
1.1.0 (2021-10-22)
A11y fixes [nzambello]
Conditional use of collective.recaptcha. [cekk]
1.0.0 (2021-08-19)
Initial release. [cekk]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file rer.customersatisfaction-2.2.2.tar.gz
.
File metadata
- Download URL: rer.customersatisfaction-2.2.2.tar.gz
- Upload date:
- Size: 1.0 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.7.1 importlib_metadata/4.10.0 pkginfo/1.8.2 requests/2.27.1 requests-toolbelt/0.9.1 tqdm/4.62.3 CPython/3.8.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f262fd3339ebc726ff9fa14aa9cf455828837a080758e32e189935a6913c3b58 |
|
MD5 | 1e1ad1ede7a3d67cfe25e244ef5dca6e |
|
BLAKE2b-256 | a159424dd77b2a38685320af58a665d485de289ec4fdd3f4182c953d6c44b356 |
Comments listing
Users with rer.customersatisfaction.AccessCustomerSatisfaction can call @@show-feedbacks view on a content, to see a detailed list of feedbacks and comments.