rer.customersatisfaction


Namerer.customersatisfaction JSON
Version 2.2.4 PyPI version JSON
download
home_pagehttps://github.com/collective/rer.customersatisfaction
SummaryCustomer satisfaction
upload_time2023-07-07 13:54:20
maintainer
docs_urlNone
authorRedTurtle Technology
requires_python
licenseGPL version 2
keywords python plone cms
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ==========================
RER: Customer satisfaction
==========================

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.

.. image:: docs/customer-satisfaction_1-Recensione.jpg
   :alt: Review


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 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 <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 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.

.. image:: docs/customer-satisfaction_2-Elenco-Recensioni.jpg
   :alt: 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.

.. image:: docs/customer-satisfaction_3-Dettaglio-Commenti.jpg
   :alt: 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

.. image:: docs/customer-satisfaction-global.png
   :alt: 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
==========

- 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`__.

__ http://www.regione.emilia-romagna.it/
__ http://www.plonegov.it/

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, sviluppo@redturtle.it
- Rohberg, Katja Süss, @ksuess
- Leonardo J. Caballero G., @macagua


Changelog
=========


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]
            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/collective/rer.customersatisfaction",
    "name": "rer.customersatisfaction",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "Python Plone CMS",
    "author": "RedTurtle Technology",
    "author_email": "sviluppo@redturtle.it",
    "download_url": "https://files.pythonhosted.org/packages/30/3d/7dbcab820cce113ad910a604a4c594651d4604756128d6a0cfdf34f20dc7/rer.customersatisfaction-2.2.4.tar.gz",
    "platform": null,
    "description": "==========================\nRER: Customer satisfaction\n==========================\n\nAdd a form (viewlet) for the customer satisfaction on site contents.\n\nUsers can add a vote (positive or negative) and a comment to every page on the site.\n\n.. image:: docs/customer-satisfaction_1-Recensione.jpg\n   :alt: Review\n\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 customer-satisfaction-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\n\nPermissions\n===========\n\nThere are two new specific permission:\n\n- rer.customersatisfaction.AddCustomerSatisfactionVote (rer.customersatisfaction: Add Customer Satisfaction Vote) Allows users to vote (by default Anonymous).\n- rer.customersatisfaction.ManageCustomerSatisfaction (rer.customersatisfaction: Manage Customer Satisfaction) Allows to reset data (by default Manager and Site Administrator).\n- rer.customersatisfaction.ShowDeletedFeedbacks (rer.customersatisfaction: Show Deleted Feedbacks) Allow list also feedbacks from deleted contents (by default Manager and Site Administrator)\n- 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)\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 rer.customersatisfaction.interfaces import ICustomerSatisfactionStore\n\n    tool = getUtility(ICustomerSatisfactionStore)\n\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 (should be **1** or **-1**)\n- title: the title of the Plone content\n- comment: an optional comment\n\nOthere 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\nrestapi routes\n==============\n\n\nAdd a vote\n----------\n\n*@customer-satisfaction-add*\n\n**POST** endpoint that need to be called on a site content.\n\nOnly users with \"rer.customersatisfaction.AddCustomerSatisfactionVote\" can post it::\n\n> 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\n\nIf vote is successful, the response is a ``204``.\n\n\nSites list\n----------\n\nLists all sites in the current installation\n\n*sites-list*\n\n**GET**\n\nOnly users with \"zope2.ViewManagementScreens\" can get it::\n\n> curl -i -X POST http://localhost:8080/sites-list -H 'Accept: application/json' -H 'Content-Type: application/json' --user admin:admin\n\nresult: [{\"id\": \"Plone\", \"url\": \"http://localhost:8080/Plone\", \"title\": \"Site\"}]\n\n\nFeedbacks listing\n=================\n\nThere is a view (a link is also available on user menu in sidebar) that shows all infos about feedbacks: @@customer-satisfaction\n\nThe list of feedbacks is filtered based on some permissions.\n\n.. image:: docs/customer-satisfaction_2-Elenco-Recensioni.jpg\n   :alt: Feedbacks listing\n\n\nComments listing\n================\n\nUsers with *rer.customersatisfaction.AccessCustomerSatisfaction* can call **@@show-feedbacks**\nview on a content, to see a detailed list of feedbacks and comments.\n\n.. image:: docs/customer-satisfaction_3-Dettaglio-Commenti.jpg\n   :alt: Comments listing\n\nCustomer satisfaction global\n============================\n\nUsers with *zope2.ViewManagementScreens* can call **@@customer-satisfaction-global**\nview on the application root(`/`) to see customer satisfaction report for all the sites\n\n.. image:: docs/customer-satisfaction-global.png\n   :alt: All sites summary comments listing\n\nInstallation\n============\n\nAdd rer.customersatisfaction to buildout::\n\n    [buildout]\n\n    ...\n\n    eggs =\n        rer.customersatisfaction\n\n\nIf you need collective.recaptcha support, add the egg like this::\n\n   ...\n\n   eggs =\n       rer.customersatisfaction[collective_recaptcha]\n\nand run ``bin/buildout`` command.\n\n\nContribute\n==========\n\n- Issue Tracker: https://github.com/RegioneER/rer.customersatisfaction/issues\n- Source Code: https://github.com/RegioneER/rer.customersatisfaction\n\nCompatibility\n=============\n\nThis product has been tested on Plone 5.1 and 5.2\n\n\nCredits\n=======\n\nDeveloped with the support of `Regione Emilia Romagna`__;\n\nRegione Emilia Romagna supports the `PloneGov initiative`__.\n\n__ http://www.regione.emilia-romagna.it/\n__ http://www.plonegov.it/\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, sviluppo@redturtle.it\n- Rohberg, Katja S\u00fcss, @ksuess\n- Leonardo J. Caballero G., @macagua\n\n\nChangelog\n=========\n\n\n2.2.4 (2023-07-07)\n------------------\n\n- add escape chars for csv in the customer-satisfaction-gloabal view.\n  [folix-01]\n\n\n2.2.3 (2023-05-25)\n------------------\n- Add export to customer-satisfaction-global view\n  [folix-01]\n- Add Spanish translations.\n  [macagua]\n- Fix english translations.\n  [cekk]\n- Fix bundle (there was a missing resource).\n  [cekk]\n\n\n2.2.2 (2023-05-11)\n------------------\n\n- Fix uninstall profile (remove action and bundles).\n  [cekk]\n\n\n2.2.1 (2023-03-24)\n------------------\n- Add customer-satisfaction-global view\n  [folix-01]\n- Fix english label.\n  [cekk]\n\n\n2.2.0 (2023-03-06)\n------------------\n\n- Fire content rules event on new vote.\n  [ksuess]\n\n\n2.1.1 (2022-12-30)\n------------------\n\n- Fix permissions to access feedbacks view.\n  [cekk]\n\n\n2.1.0 (2022-12-15)\n------------------\n\n- Handle comments view (aka do not break) when a content is deleted but has some comments.\n  [cekk]\n- Some fixes in accessibility and styles.\n  [cekk]\n\n2.0.0 (2022-11-07)\n------------------\n\n- Fix translations.\n  [cekk]\n- Fix python3.8 compatibility (https://github.com/repoze/repoze.catalog/issues/13) using python operators instead CQE.\n  [cekk]\n- Some fixes in layout.\n  [cekk]\n- Do not use recaptcha, but honeypot to prevent bots.\n  [cekk]\n- Remove role=\"radio\" from labels to improve accessibility.\n  [cekk]\n\n1.2.0 (2022-07-06)\n------------------\n\n- Add a flag to disable captcha validation.\n  [cekk]\n\n\n1.1.2 (2021-12-27)\n------------------\n\n- Do not break viewlet if collective.recaptcha is not installed.\n  [cekk]\n\n\n1.1.1 (2021-12-02)\n------------------\n\n- Fix python requirement.\n  [cekk]\n\n1.1.0 (2021-10-22)\n------------------\n\n- A11y fixes [nzambello]\n- Conditional use of collective.recaptcha.\n  [cekk]\n\n\n1.0.0 (2021-08-19)\n------------------\n\n- Initial release.\n  [cekk]",
    "bugtrack_url": null,
    "license": "GPL version 2",
    "summary": "Customer satisfaction",
    "version": "2.2.4",
    "project_urls": {
        "Homepage": "https://github.com/collective/rer.customersatisfaction",
        "PyPI": "https://pypi.python.org/pypi/rer.customersatisfaction",
        "Source": "https://github.com/collective/rer.customersatisfaction",
        "Tracker": "https://github.com/collective/rer.customersatisfaction/issues"
    },
    "split_keywords": [
        "python",
        "plone",
        "cms"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "303d7dbcab820cce113ad910a604a4c594651d4604756128d6a0cfdf34f20dc7",
                "md5": "b1ed34e753d112a18f8dd6cc3c68d052",
                "sha256": "d8ee0437c7565975a1c2caf21b756ef868c913ea15ddeefa4304105378e33999"
            },
            "downloads": -1,
            "filename": "rer.customersatisfaction-2.2.4.tar.gz",
            "has_sig": false,
            "md5_digest": "b1ed34e753d112a18f8dd6cc3c68d052",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 1036203,
            "upload_time": "2023-07-07T13:54:20",
            "upload_time_iso_8601": "2023-07-07T13:54:20.094676Z",
            "url": "https://files.pythonhosted.org/packages/30/3d/7dbcab820cce113ad910a604a4c594651d4604756128d6a0cfdf34f20dc7/rer.customersatisfaction-2.2.4.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-07-07 13:54:20",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "collective",
    "github_project": "rer.customersatisfaction",
    "github_not_found": true,
    "lcname": "rer.customersatisfaction"
}
        
Elapsed time: 0.09576s