Commit Graph
56 Commits
Author SHA1 Message Date
Victor Feyens 9c87db3c62 [IMP] gamification: support batch creation
See merge commit for more details.

Task ID-2330149
COM PR odoo/odoo#61246
ENT PR odoo/enterprise#14561
2020-12-03 10:19:07 +00:00
Benjamin Vray dc9505b019 [FIX] gamification: fix badge creation
Before this commit, we executed the request even when creating a new
badge. And it thrown a traceback.

After this commit, we return default values before executing the
request if this is a new badge.

task-2312878

closes odoo/odoo#60441

X-original-commit: 85995b7a4f0544779f3de537f0e6024820abbd5d
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
2020-10-21 11:59:26 +00:00
mreficent 3dffce34bf [IMP] fields: log warning for ignored selection
When a field is related, defining a selection or selection_add will
have no effect and the paramater is ignored.

Log a warning and fix all fields badly definied

Closes odoo/odoo#45716

closes odoo/odoo#45832

Related: odoo/enterprise#8613
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-02-20 14:58:33 +00:00
David Beguin 6f0d36fa67 [REF] gamification : rename stat_* fields into granted_* to ease understanding
In this commit we rename stat_count into granted_count, and stat_count_distinct
into granted_users_count to reflect more what are those variables, aka count
of granted badges.

Task ID: 1961053
PR #32594
2019-11-22 14:44:39 +00:00
Raphael Collet 9920f20e4c [IMP] models: ORM speedup
This branch is the combination of several optimizations in the ORM:

* store field values once in the cache: the cache reflects more
faithfully the database, only fields that explicitly depend on the
context have an extra indirection in the cache;

* delay recomputations by default: use method `recompute` to explicitly
flush out pending recomputations;

* delay updates in method `write`: updates are stored in a data
structure that can be flushed efficiently to the database with method
`flush` (which also flush out recomputations);

* make method `modified` take advantage of inverse fields to inverse
dependencies;

* filter records by evaluating a domain on records in Python;

* a computed field with `readonly=False` behaves like a normal field
with an onchange method;

* computed fields are computed in superuser mode by default.

Work done by Toufik Ben Jaa, Raphael Collet, Denis Ledoux and Fabien
Pinckaers.

closes odoo/odoo#35659

Signed-off-by: Denis Ledoux <beledouxdenis@users.noreply.github.com>
2019-08-20 12:43:59 +00:00
Sébastien Theys 1e9772889b [IMP] *: use image.mixin when appropriate
The following models are already using big images, or they might need big images
in the future:

- partner
- hr employee
- shop category
- lunch product
- gamification badge and karma rank

PR: #34925
2019-08-02 16:47:58 +00:00
Sébastien Theys 58a2ffa26f [IMP] *: rename image fields
image_original => image_1920 (now resized to 1920)
image_big => image_1024
image_large => image_256
image_medium => image_128
image_small  => image_64
image replaced by image_1920 (when writing) or by image_1024 (when displaying
	what was previously the big size)

+ add new intermediate format:
image_512

PR: #34925
2019-08-02 16:47:58 +00:00
Adrian Torres 4b38cc6590 [REM] *: calls to @api.multi
Multi is the default api for methods, it is not necessary to explicitly
decorate methods with it, adds clutter and most people use it because
they see that the rest of the code uses it.

Done with `find . -type f -name '*.py' | xargs sed -i '/@api.multi/d'`
2019-07-17 14:13:12 +02:00
Raphael Collet 368e9530f4 [REF] *: record.env.user._is_XXX() -> record.env.is_XXX()
Superuser mode implies `record.env.is_XXX()`.
2019-07-04 11:32:22 +00:00
Christophe Simonis 71faa19af0 [MERGE] forward port branch saas-12.1 up to 2b3296bbf8 2019-03-11 14:42:34 +01:00
Christophe Simonis c023d0784f [MERGE] forward port branch saas-11.3 up to ecd8c023b7 2019-03-08 16:10:55 +01:00
Christophe Simonis b47749effd [MERGE] forward port branch 10.0 up to 88de931141 2019-03-08 13:08:58 +01:00
Suganthi Karunanithi eb62cd2c2b [FIX] gamification: badge auth for badge no error
To avoid exception:
  TypeError: Mixing apples and oranges: gamification.badge() - gamification.badge.user(1,)

when rule_auth of a badge is set to `having`.

opw-1945440
closes #31436
closes #31595

Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2019-03-06 18:00:53 +00:00
David Beguin 3b9dcb6d8d [REF] gamification, website_forum: move karma, badge and badge level to gamification
Purpose of this commit is to prepare addition of gamification in slides /
eLearning platform. In order to be able to use karma and the badges in other
modules we move those models in gamification.

Partial commit linked to eLearning project. Main specifications related
to gamification and user profile can be found on task 1922159 (PR #30514).
Main specifications related to eLearning can be found on task 1902304
(PR #29876).
2019-02-07 12:11:44 +00:00
Xavier Morel 66f0e26f6f [CHG] *: make binary fields default to attachment=True
Check that it makes custom binary fields into attachment as that's the
main reason for the change: when users create binary fields via Studio,
they're necessarily db-stored (as the interface doesn't allow altering
the attachment attribute and it's unclear how we'd handle users
switching it on/off every time), which significantly bloats their
database (and burns storage & backup space), especially as the primary
use case for binary fields is adding images and documents to records.

* check that binary fields are properly created as attachment=True
* add attachment=False on fields where that seems relevant (most but not
  all of the fields previously using the default)
* remove occurrences of attachment=True

closes odoo/odoo#29308
2018-12-07 13:37:34 +00:00
Adrian Torres 3f4f77fd9d [REF] *: adapt code to new related default behaviour
This commit adapts the business code to changes introduced by
the parent commit in order to keep the same behaviour as before.

All readonly=False fields will have to be checked afterwards to confirm
that the business case requires write access to the source field.
2018-09-27 12:10:23 +02:00
Nimesh Jethva a308506051 [IMP]hr_*: Improvement in model description
Purpose of this commit is to give description more "business oriented"
because those descriptions appears in Odoo Studio which is supposed to be used by end users, not only by developers.

Related Task ID : 37311
2018-09-21 11:45:15 +02:00
Raphael Collet fa6774b899 [FIX] models: make log_access fields readonly, and remove useless definitions 2018-09-11 17:25:07 +02:00
Christophe Monniez 3ff0948b0a [FIX] gamification: compute badge stats wihtout error
Since 960360a, when computing badge stats, a datetime was compared to a
string leading to a traceback.  e.g. when clicking in employess >
badges.

Also, due to a typo, the compute method was assigning the stats result
to the wrong attributes.  e.g. 'stats_my_this_month' instead of
'stat_my_this_month'.

With this commit, the above mentioned issues are fixed and a test is
covering these issues to avoid regression.
2018-08-22 09:28:16 +02:00
Christophe Simonis aafa6e38c4 [MERGE] forward port branch 10.0 up to 342d037373 2018-08-21 11:33:53 +02:00
Grzegorz Krukar 48b492b086 [FIX] gamification: correctly set computed values
Field incorrected named
Introduced at 0c64964

Closes #25307
2018-08-20 09:10:20 +02:00
Thibault Delavallée 56645335b7 [IMP] gamification: improve email sent when granting a badge
Give some details about the badge: its description, its image, who granted
it, ... Otherwise it is quite complicated to understand the email content.

Thanks to @mart-e who reviewed and tested.
2016-12-30 10:46:12 +01:00
Jeremy Kersten 26c7ff9118 [FIX] gamification: don't use multimode from render_template
If render_template get list and not id, a dict is returned.
Force the param to be a int, allow to don't use the multimode from render_template.

Avoid to get message like:
 <p>{1: u'\n        </p><p>Congratulation, you have received the badge <strong>Autobiographer</strong> !\n        </p>\n\n'}
 <p>{2: u'\n        </p><p>Congratulation, you have received the badge <strong>Autobiographer</strong> !\n        </p>\n\n'}
 <p>{3: u'\n        </p><p>Congratulation, you have received the badge <strong>Student</strong> !\n        </p>\n\n'}
 <p>{4: u'\n        </p><p>Congratulation, you have received the badge <strong>Supporter</strong> !\n        </p>\n\n'}
2016-09-22 18:17:55 +02:00
Thibault Delavallée 8b6f7e1fe6 [FIX] various: fix fields index parameter in new API still called select 2016-08-09 12:28:03 +02:00
Xavier Morel 0c649644db [MIG] gamification: Migrate to new API
Includes compatibility-change to website_forum: a selection(callable)
converted to a Selection(list) since that can easily be extended in the
new API.
2016-08-05 10:18:02 +02:00
Christophe Matthieu bad14a54d3 [IMP] gamification: add sql index on 'gamification.badge.user' to improve speed of 'gamification.badge' function fields 2016-03-23 12:53:16 +01:00
Christophe Matthieu 2abc2ceee0 [IMP] gamification: split multi function field to avoid massive prefetching of user records
Issue: website_forum takes 15 to 30 seconds to load the user page
2016-03-23 11:22:51 +01:00
Miku Laitinen c9163c5403 [FIX] gamification: Made gamification badge descriptions translatable
The badge name is already translatable but the description was not,
Regenerate .pot file for these modules.

Closes #8399
2015-09-30 14:44:35 +02:00
Raphael Collet 5a6e136172 [IMP] addons: adapt binary fields to store images in attachments 2015-09-28 15:19:47 +02:00
Olivier Dony 0bd4545348 [LEGAL] Use global LICENSE/COPYRIGHT files, remove boilerplate text
- Preserved explicit 3rd-party copyright notices
- Explicit boilerplate should not be necessary - copyright law applies
  automatically in all countries thanks to Berne Convention + WTO rules,
  and a reference to the applicable license is clear enough.
2015-06-02 03:16:04 +02:00
Ravi Gohil 2acad60391 [FIX] gamification: translatable email notification
This requires a manual update/migration for existing template. opw 619786
2015-01-21 12:30:34 +01:00
Goffin Simon 0fd773a486 [IMP] Cleanup and refactoring of exception handling
Unify and refactor exception handling in framework and addons.

The generic `except_osv` is now deprecated, and replaced by more specialized exception subtypes:
 - `UserError` (renamed from Warning, as it conflicts with the built-in `Warning`) raised when a non-technical error occurs during a business operation. It could be a missing information in the data provided by the user, or a misconfiguration.
 - `AccessError`: raised when any operation is denied because the user conducting it does not have the required access rights.
 - `AccessDenied`: raised when an operation that requires authenticated access is attempted via an unauthenticated request.
 - `MissingError`: raised when an operation is attempted on a record that does not exist.
 - `ValidationError`: raised when an operation violates a SQL or Python constraint.
 - All other exceptions are internal errors due to a system problem or bug, and raised untouched to the client-side, which should display a traceback.

All exceptions take a single message argument.

The `test_exceptions` module has been updated to showcase both new and old (deprecated) exceptions.

A great many old `except_osv` had a useless title with "Error!" or "Warning", those have been removed, as this is handled by the client-side widget that displays the messages.

This commit introduces a more consistent policy for logging errors and warnings:
 - All messages that do not require administrator attention should be logged at INFO level or lower. This includes all errors that are notified to the user in a friendly manner, even for access right problems or validation errors during business operations.
 - All messages that indicate a likely misconfiguration or malicious use by the users should be logged at WARNING level, as they typically require administrator attention.
 - All other unhandled internal errors cannot typically be handled by the user and should be logged at ERROR or higher level, as they require immediate administrator attention.
2015-01-16 17:15:18 +01:00
Julien De Coster d88c34d11e [IMP] Mass mailings send in cron
1. The merge of the "email_template" module into the "mail" module.
2. The send action of the mass mailing has been moved from the frontend to a cron, because it was too slow to send over 10,000 mails (the user's browser was blocked for 15 - 20 minutes). Mass mailings have now their own process in the kanban view.
3. Mails sent from the mail form are sent immediatly instead of from the mail queue (for instance, when you go to sales > customers > list view > select 2 -3 customers > More > Partner Mass Mailing).
4. Users have now the choice from which mailing list they want to unsubscribe when they click on the unsubscribe link at the bottom of the mail.
5. Mass mailings inherit from their campaign UTMs and mass mailing campaigns are linked to an UTM campaign.
6. Many little improvements
2015-01-07 18:01:58 +01:00
Christophe Simonis 2e3f59181d [MERGE] forward port of branch saas-3 up to db75994 2014-10-14 15:13:14 +02:00
Denis Ledoux f305b9e95b [FIX] gamification: on delete badge user, cascade
Otherwise, this is no more possible to delete users having badges
2014-10-07 10:24:57 +02:00
Thibault Delavallée 7cad4baa84 [FIX] [CLEAN] Various: fixed / cleaned use of dict.fromkeys.
Indeed using fromkeys with a list / dict as argument leads to the creation
of shared list / dict. This could create some ugly side effects when
used in loops. This commit fixes or cleans this kind of statement to avoid
unwanted side effects.
2014-09-18 11:18:30 +02:00
Martin Trigaux e95aeb659c Forward port of branch saas-5 up to 9a7f48a 2014-09-02 14:50:51 +02:00
Martin Trigaux b707719891 [IMP] gamification: improve 40e8437 to make only one global request 2014-09-02 11:25:02 +02:00
Martin Trigaux 40e843761f [FIX] gamification: performance improvement
On a large database, thousands of badges may have been granted. This code used to prefetch all fields of the users and badge users. This was highly inefficient. Replace this code by SQL query.
2014-09-01 17:40:47 +02:00
Jaydeep Barot 026e38b48f [REM] Unnecessary size parameters on char fields 2014-06-25 17:13:43 +02:00
Martin Trigaux f14f632ef5 [IMP] gamification: improve the name of some m2m relations
bzr revid: mat@openerp.com-20140512092718-s6143ajy2g18ofy4
2014-05-12 11:27:18 +02:00
Thibault Delavallée d0740bedb9 [IMP] gamification: messages posted on user when receiving a badge
now have a subtype, to ease their search.

bzr revid: tde@openerp.com-20140411175730-hq06b7qezurzymj6
2014-04-11 19:57:30 +02:00
Thibault Delavallée f091e9d6e5 [MERGE] Sync with trunk
bzr revid: tde@openerp.com-20140411155723-pqe8ofxh060afiuj
2014-04-11 17:57:23 +02:00
Martin Trigaux 21022c5472 [REF] gamification: add batch mode, improve some views, remove inprogess_update state (replaced with boolean 'to update')
bzr revid: mat@openerp.com-20140411142257-zpaul4sq3t5j5r64
2014-04-11 16:22:57 +02:00
Thibault Delavallée 70eb634173 [FIX] Fixe dlast commit: badge message is posted on the user
as before. Also updated code in mail/res_users that could big: partner_ids given
to message_post can be a list of commands, or a list of ids.

bzr revid: tde@openerp.com-20140409155003-32ccef4udlzfg5us
2014-04-09 17:50:03 +02:00
Thibault Delavallée 9b922d9858 [REVIEW] [CLEAN] gamification: reverted changes instead of
the fix.

bzr revid: tde@openerp.com-20140409152629-3div4vdfknjrtnb6
2014-04-09 17:26:29 +02:00
Turkesh Patel (Open ERP) 9bb6139cd2 [IMP] gamification: improved code to send notification message when bedge assigned, website_forum: improved code to show notification when badge assigned to user.
bzr revid: tpa@tinyerp.com-20140319090735-zi01wzh8a8u5cfb7
2014-03-19 14:37:35 +05:30
Martin Trigaux 7c6a6b26f1 [FIX] gamification: goal.condition -> goal.definition_condition, user_ids not in vals -> not vals.get(user_ids)
bzr revid: mat@openerp.com-20131223161229-lpoevttkt6ezt2ia
2013-12-23 17:12:29 +01:00
Martin Trigaux f4e42879d3 [REF] gamification: rename user_from_id -> sender_id, move constants
bzr revid: mat@openerp.com-20131223160143-8mgmwrgf6i3wo8ku
2013-12-23 17:01:43 +01:00
Martin Trigaux c0eef31160 [REF] gamification: add user_from_id on badge, remove outdated-doc, remove useless message_post call
bzr revid: mat@openerp.com-20131223155404-h4in4ocr8jakq3ff
2013-12-23 16:54:04 +01:00