Skip to main content

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.

Review

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.

Feedbacks listing

Comments listing

Users with rer.customersatisfaction.AccessCustomerSatisfaction can call @@show-feedbacks view on a content, to see a detailed list of feedbacks and comments.

Comments listing

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

All sites summary comments listing

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

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.

Authors

This product was developed by RedTurtle Technology team.

RedTurtle Technology Site

Contributors

  • RedTurtle Technology, sviluppo@redturtle.it

  • Rohberg, Katja Süss, @ksuess

  • Leonardo J. Caballero G., @macagua

Changelog

2.2.6 (2024-01-12)

  • Add customized date format to the exported csv [folix-01]

  • Extend the exported csv report compatibility with ms. Excel. [folix-01]

2.2.4 (2023-07-07)

  • add escape chars for csv in the customer-satisfaction-gloabal view. [folix-01]

2.2.3 (2023-05-25)

  • Add export to customer-satisfaction-global view [folix-01]

  • Add Spanish translations. [macagua]

  • Fix english translations. [cekk]

  • Fix bundle (there was a missing resource). [cekk]

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 [folix-01]

  • 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

rer.customersatisfaction-2.2.6.tar.gz (1.0 MB view details)

Uploaded Source

File details

Details for the file rer.customersatisfaction-2.2.6.tar.gz.

File metadata

File hashes

Hashes for rer.customersatisfaction-2.2.6.tar.gz
Algorithm Hash digest
SHA256 b8f95e796c5ca6f773a43e7bc6331a61aa97030ec38ed8d729e6ca7ebf3e2987
MD5 08b5f5a597389102b0aac5ca087c2618
BLAKE2b-256 36cbc5b6ac8ababf0dae301c15f7862389f87b578f74994f30adb5db2744bc97

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page