Commit Graph
34 Commits
Author SHA1 Message Date
Hardik Patel a8f1adc29a [FIX] rating: correctly encode base64 image
Fixed a typo from commit 3824b5dcc1
2017-09-18 16:51:18 +02:00
Rohan Patel 8c1f6a7cc6 [IMP] mail,*: replace emojis by unicode in chat messages
*im_livechat,rating.

Emojis are now encoded in unicode characters in messages. This
allows to copy/paste messages including emojis, ensures that
emojis are properly displayed in mail interfaces (at least those
that support unicode, e.g. GMAIL, counter-example: outlook), and
allows the user to directly use emojis of its smartphone in mobile.

This commit also adds several new emojis.

PR #11095
2017-09-11 12:20:49 +02:00
Olivier Dony 695716efb0 [FIX] P3: remove pycompat.{keys,items,values} helpers
Now that we're closer to switching to P3 for good, these helpers have
outlived their usefulness, and mostly add noise.

All remaining dict.iter*() or dict.view*() must be converted to the
normal keys(), values() or items() calls.

Whenever the result is likely to be used for more than the scope of a
loop, or when the dict needs to be modified during iteration, the calls
must be wrapped in a ``list()``, to protect the new P3 semantics.
Those cases are very exceptional.

Also removed some dead code or improved the API to remove unnecessary
conversions.
2017-08-20 23:25:54 +02:00
Xavier Morel 3824b5dcc1 [FIX] P3: fix base64 and StringIO uses
* StringIO removed from stdlib, replace with io
* try to correctly handle BytesIO/StringIO (one is for bytes the other
  is for text)
* fix base64: Python 3 removed bytes-encoding and bytes-bytes
  codecs (via #encode) so replace all calls to str.encode('base64'),
  also b64encode is a bytes->bytes conversion so attempt to properly
  handle that

issue #8530
2017-08-20 23:25:54 +02:00
dbh f784c26cf9 [IMP] rating: add groupby on rating_text
This commit change field rating_text into
selection computed field.

In customer satifaction, we want to be able
to group by note, but not use the rating value
itself. So a label representing provide 3 satisfaction
levels : 'Dissatisfied' (1-3 points), 'Not satisfied'
(4-7 points) and 'Satisfied' (8-10 points).
2017-07-10 08:46:27 +02:00
dbh 798c1da440 [IMP] rating: parenting model mecanism
This commit provide a parenting system for rated
record, such as mail alias.
For instance, 'project.project' is the parent of
task and issue objects.

This will allow to have a global view of customer
statisfaction on 'parent' objects (project and
livechat channel for now).

To do so, the rating
mixin provides 2 methods that need to be
overriden: `rating_get_parent_model_name` and
`rating_get_parent_id`.
2017-07-10 08:46:27 +02:00
Jérome Maes f447e9679f [IMP] rating: message_post with rating value
rating module provide now post a message with a
rating value, though `message_post` method.
'mail.message' also has now a `rating_value` field
to ease searching and filtering.

This will help the ecommerce (and other website modules)
to post a comment associate with a rating.
2017-06-30 11:06:32 +02:00
xmo-odoo fffaf735f5 [FIX] P3: list -> iterable builtins (#16811)
In Python 3:

* various builtins and dict methods were changed to return
  view/iterable objects rather than lists
* and the separate Python 2 view/iterable builtins and methods were
  removed altogether

This is problematic when using these items as list (which the happens
repeatedly in Odoo), but more viciously when iterating *multiple times*
over them (which also happens, which I've messed up multiple times while
writing this, and which is a pain to debug even when you've just created
the issue).

Convert all code using these to semantics-matching cross-version
helper functions to get the LCD behaviour between P2 and P3, and
forbid the builtins via lint.

issue #8530
2017-05-10 09:39:55 +02:00
xmo-odoo b4429c2a91 [FIX] Various P3-related import changes
* LDAP import: python-ldap is not python3-compatible, pyldap is

  Warning: only supported from debian Stretch (current testing)?
  https://packages.debian.org/search?searchon=names&keywords=pyldap

* implicitly relative imports
* imports of moved or removed stdlib modules

issue #8530
2017-04-28 09:06:53 +02:00
Xavier Morel 76852a2fad [#8530] fix uses of `reduce` builtin
Demoted to library in Python 3, see if uses can be replaced by more
specific construct, just import functools.reduce otherwise.

Futurize fixers:
* lib2to3.fixes.fix_reduce
2017-04-12 13:48:42 +02:00
Christophe Simonis 68176d80ad [MERGE] forward port branch saas-14 up to eddefc9948 2017-03-01 16:49:15 +01:00
Christophe Simonis 85368d7f86 [MERGE] forward port branch 10.0 up to 387b2acfcb 2017-02-23 20:15:38 +01:00
Denis Ledoux 731a21e5b4 [FIX] rating: security issue to the last_value related field depends
The `rating_last_value` field was a related on the One2many
field `rating_ids`, on which the domain
`[('res_model', '=', self._name)]` is applied.

The problem is that this domain is not taken into account
when retrieving the records for which this value must be recomputed

Therefore, when computing the `rating_last_value` of a record,
if there was a record with the same `res_id` but another
`res_model`, the `rating_last_value` of this other record
is recomputed as well.

And, if you did not have the write access rights on this other
record, it raised a security exception.

There is at the moment no way in the ORM to filter the
depends on a specific subset of records for which
a computed field must be recomputed. Therefore,
we have no other choices to make the recomputation
of the records value as sudo. It will
recompute the value of other records which have nothing
to do with the one on which this value must be recomputed
(nothing to do except the id of the records which is common),
but at least it will succeed.

opw-709349
2017-02-23 13:57:31 +01:00
Goffin Simon f63fb28579 [FIX] rating: Typo error
When record.id was not in the dictionary result, it raised a error.

opw:709072
2017-02-20 11:40:19 +01:00
Jérome Maes 8e10f6adf9 [IMP] rating: delete rating when needed
Automatically deleting a rating was not implemented
yet. We find 2 cases :
- when uninstalling a module, the same mecanism as
mail.follower is used, via a res_model_id field
pointing on ir.model. When this model does not
exist anymore, remove all related rating.
- when deleting a record, its rating should be
deleted too.
2017-01-09 16:33:21 +01:00
Jigar Patel f7379b1c7f [IMP] rating_*: cleaning and improvements
In rating module
- provide list and form view for rating
- better kanban view (remove js code, ellispsis
for long name, better feedback display, ...)
- provide more field on the mixin to cover
more case
- update res_name of rating when the ressource name
is changed (for consistency)
- make the rating web page, a correct html page (by
using web.layout template)
- some guidelines compliance

In rating_project and rating_project_issue:
- add filter for rated document
- some guidelines compliance
2017-01-09 16:19:25 +01:00
Nicolas Martinelli 3653661235 [FIX] rating, rating_{*}: translations
Several translation issues are faced with the rating module:
- the feedback page is always displayed in the admin language
- the feedback emails are always sent in the user's language

One would expect these to be in the partner language.

opw-694718
2016-12-01 15:50:11 +01:00
Christophe Simonis 298e2032ea [MERGE] forward port branch saas-12 up to 9f28139 2016-09-09 18:13:31 +02:00
Damien Bouvy 259cc9a708 [FIX] rating: fetch the rated partner when applying the rating
A function named rating_get_rated_partner_id is there, let's use it.
2016-09-07 11:44:42 +02:00
Denis Vermylen (dve) fb0cb41912 [FIX] rating: comparing record to id 2016-09-02 13:31:15 +02:00
Thibault Delavallée c8a313d51e [IMP] various: use odoo for imports instead of openerp and update class names 2016-08-10 15:48:07 +02:00
Fabien Pinckaers 9bf9eb863b [FIX] rating: correct list view (list --> tree)
[FIX] livechat_rating: ratings from livechat should be consumed
(otherwise invisible)
[IMP] usability: better views and tooltips
2016-07-15 15:13:17 +02:00
Fabien Pinckaers fb289e0b5d [SEC] rating: escape feedback, text2html to avoid js injection
[IMP] rating: website rating page: reviewed design, rate on click, update on submit
[IMP] rating_project: rating_status: 'no' instead of False
[IMP] rating_project/issue: smileys insteaf of thumbs for consistency in kanban
[IMP] rating: allow to update an existing rating (feedback + rate)
[IMP] rating: consistency on rating names (statisfied, not satisfied, higly dissatisfed)
[IMP] rating: avoid deadend after rating, button to go to Odoo
[IMP] rating: res_config better sentence
2016-07-02 18:33:55 +02:00
jat-odoo 0b1a27a3c7 [REF,IMP] project,project_issue,rating: Handle ratings more efficiently
Purpose:

For our internal project management, we would like to track the customer
satisfaction on the open projects. We send them an email every one or 2
weeks allowing them to give a feedback by clicking on one of 3
smileys: Happy, Average, Angry. They can also put a additional explanation.

We already have something similar which is working on livechat with a
unusable reporting, and on issues but unusable. Our project are managed by tasks.

Specification:
- On the project : Selection fields : (Periodical Rating or Rating on Stage)
  + Fields to choose the period if periodical
- On the stage : email_template_id field.
- IF :
---> Periodical : Send an email to all the customers for the tasks on this stage periodically
---> On Stage : Send an email to the customer's tasks when the task reaches the stage
- That way, it's impossible to send a satisfaction request both periodically and sequentially.
  FP request
- Who is the customer : The customer on the task OR the customer on the related sales order
  OR the customer on the projet OR nobody
- The last feedback is displayed on the task kanban card (Thumb up, down, or neutral)
- On the project kanban card, the customer satisfaction is displayed. This is the simple
  mean of all the previous ratings.
2016-07-01 14:05:03 +02:00
Christophe Simonis 1e404b7b69 [MERGE] forward port of branch 9.0 up to de11d84 2016-04-01 18:43:35 +02:00
Christophe Simonis 94af66fe8b [MERGE] forward port of branch saas-6 up to df45a31 2016-04-01 18:31:04 +02:00
Denis Ledoux 8bb6704b4b [FIX] rating: rating as public
If the user is not connected with his portal account,
but has the right token to rate,
he should be able to.

opw-673231
2016-03-30 12:06:18 +02:00
Martin Trigaux c298cf3250 [MERGE] Forward port of 9.0 up to 7892d99f 2015-12-18 16:15:08 +01:00
Thibault Delavallée 7a3ad6ba4c [FIX] rating: reuse ratings from the same customer
Otherwise Micheline ratings will be overridden by Raoul ones.
2015-12-14 17:10:49 +01:00
Martin Trigaux b776d66d85 [FIX] all: ressource -> resource
Courtesy of Kris Krnacs
2015-10-01 10:54:04 +02:00
Jérome Maes a960eb9ff5 [IMP] rating : add generic star widget
- star widget and rating card to post and display rating
- Linked rating.rating to mail.message
- method to extract more statistics about the rating of an object.
2015-08-27 09:36:35 +02:00
Jérome Maes 63e5341081 [FIX] im_livechat, rating : add a cron in im_livechat to delete empty anonymous sessions. And change the res_name of a rating record for im_chat.session : keep the same notation as in reporting instead of uuid. 2015-03-05 16:31:18 +01:00
Jérome Maes 283868bc5f [IMP] rating, rating_project, rating_project_issue : add 'auto validation kanban state' option. This will modify the kanban state according customer feedback. Require some change : notify by mail the follower when rating, and better sudo usage. Also update wrong code comments. 2015-02-12 13:29:14 +01:00
Jérome Maes b11e24c726 [ADD] rating : base rating module contains a mixin and the meta model rating with graph and kanban views 2015-01-08 12:28:22 +01:00