Commit Graph
99161 Commits
Author SHA1 Message Date
Jérome Maes 88f119314f [FIX] web : make timeago an optional dependency of translation. This aims to lighten the bundle (ex.: livechat). 2015-03-24 11:48:17 +01:00
Julien De Coster 0b19fd5212 [FIX] Alignment of the welcome message in website_forum 2015-03-24 10:48:27 +01:00
Jignesh Rathod a7543cc1ac [MOV] portal, mail: move some code on mail.message model from portal
to mail, as the portal group is now defined in base. Same for access rights.
There is no need to keep them in the portal module.
2015-03-24 10:18:20 +01:00
Jignesh Rathod b18beecf3b [FIX] mail: mail_thread: when trying to find the correct action to launch
when coming from a notification link, consider an access error when reading
the message as having to fallback on the Inbox, not crash.
2015-03-24 10:18:16 +01:00
Jignesh Rathod a8d8046cf2 [IMP] mail: mail_template: instead of crashing when sending email based on
templates that have a void email_from, just fall back on the default email_from
defined on the mail_message model.
2015-03-24 10:18:16 +01:00
Jignesh Rathod 2c13ea9c6f [IMP] mail: mail_group: as for other public documents people should be able to
post messages on group when they can read it.
2015-03-24 10:18:16 +01:00
Jignesh Rathod b55969a577 [REF] mail: migrated tests to the new API and refactored them.
Tests have been migrated to the new api to prepare the migration of the
mail module itself. Moreover tests have been cleaned: redundant tests
and unnecessary tests have been removed.

As the base test class in mail is used in other addons, other addons
have been updated :
- portal
- project
- portal_project
- website_project_issue
- sale
- purchase

Future commits will come with somes fixes for issues detected when cleaning
the tests.
2015-03-24 10:18:16 +01:00
Richard Mathot a883eefdd3 [FIX] crm: one id/name for three rules... (in the Land of Mordor where the
Shadows lie)
2015-03-24 10:03:19 +01:00
Goffin Simon a36396b192 [FIX] sale: based amount to compute advanced invoices
The based amount to compute advanced invoices must be the amount_untaxed.

opw:630975
2015-03-24 10:00:45 +01:00
Richard Mathot 8ab4933a66 [FIX] crm: missing import
Avoid crash when merging partners
2015-03-24 09:33:15 +01:00
Christophe Simonis fb8b970567 [MERGE] forward port of branch 8.0 up to 0ed63d7 2015-03-23 16:35:03 +01:00
Denis Ledoux 132afa981b [FIX] mail: is_read is the column name in 8.0.
The column 'read' has been renamed 'is_read' in Odoo 8.0.
2015-03-23 15:46:32 +01:00
Denis Ledoux 3235eda781 [FIX] mail: notify parent message on message auto subscribe.
When auto subscribing to a message
(For instance, change the ```user_id``` field on a record,
like an invoice)
The new user is notified of the last message of the thread.
He must be notified of the parent message as well,
to have access to the first message of the thread,
to prevent access rights issues to the thread.

This mechanism is applied in the _notify method
of model ```mail.message``` as well, for the same reasons.

opw-630286
2015-03-23 15:26:41 +01:00
Denis Ledoux 0c16c20c68 [FIX] hr_timesheet: timezone of anayltic sheets in sheet summary
The timezone of hr_analytic_sheet should be the timezone
of the employee as well, so sheet analytic lines and attendances
lines are grouped within the same timezone, the timezone
of the employees, so the time difference between the analytic
lines and the attendances lines can be properly computed.

Fixes #5809
Fixes #5379
Related to rev. 3bf1615ad4
2015-03-23 15:26:41 +01:00
Jérome Maes c6ff080e2b [FIX] im_livechat : send rating to the operator once the anonymous person close its conversation. 2015-03-23 14:49:23 +01:00
Jérome Maes 033ae180b1 [FIX] rating : clicking on rating kanban card now redirect to the object form view 2015-03-23 14:49:14 +01:00
Jérome Maes e36ffa8a55 [FIX] im_livechat : fix rule matching according to the country code found with GeoIP 2015-03-23 14:49:06 +01:00
Jérome Maes e5e9e35c30 [FIX] im_chat : real sanitization of shortcode. Substitution can be HTML code (only for emoji and should respect the regex) or pure text (will be escaped to avoid XSS) at create and write. 2015-03-23 14:48:57 +01:00
Raphael Collet 0ed63d73a6 Merge pull request #5676 from odoo-dev/8.0-memory_optimization-rco
Reduce memory footprint of server

The tricks used are:
- use a global LRU for `ormcache` (auto-balancing between registries);
- remove unnecessary data structures (binary class hierarchy of models);
- compute some data structures on demand (`_all_columns`);
- optimize field attributes (empty collections may be shared);
- optimize memory size of fields and columns by using slots.

On a database with modules sale, purchase and stock installed, the memory footprint of the registry went from 20.3Mb to 7.4Mb (as measured with heapy). In other words, the memory footprint was reduced to 1/3 !
2015-03-23 14:39:21 +01:00
Raphael Collet 5aa23f8280 [IMP] ormcache: compute hit/miss/err statistics per database
In ormcache, those statistic numbers were counted per cached method for all
registries.  We introduce separate statistic counters, and create a counter per
(database, model, method).  The existing attributes that are no longer used
have been removed.
2015-03-23 14:36:15 +01:00
Raphael Collet 68969c9716 [IMP] fields: avoid redundant slot in class many2one 2015-03-23 14:36:15 +01:00
Raphael Collet c0d79a78f0 [IMP] fields: rename methods to avoid collisions with __slots__ names 2015-03-23 14:36:15 +01:00
Raphael Collet 524bb0a520 [IMP] fields: simplify the definition of __slots__ via the Field metaclass 2015-03-23 14:36:15 +01:00
Raphael Collet b156c2e27e [IMP] registry: adapt LRU sizes for registries and ormcache
The registry size is now assumed to be around 10Mb, and ormcache size is
proportional to the maximum number of registries.  Statistics about ormcache
usage is shown to the log when receiving signal SIGUSR1.
2015-03-23 14:36:15 +01:00
Raphael Collet 93c341a52c [IMP] models: avoid using map instead of a for loop (thanks chs@odoo.com) 2015-03-23 14:36:15 +01:00
Raphael Collet f93a14e3b2 [IMP] fields: remove comments about _all_columns, and improve its docstring 2015-03-23 14:36:15 +01:00
Raphael Collet 1df3467888 [IMP] fields: remove unnecessary code
In `__getattr__`, remove the test on accessing `_attrs`.  This situation should
never happen, since the attribute `_attrs` is set in method `__init__()`.
2015-03-23 14:36:15 +01:00
Raphael Collet 4259fe0072 [IMP] openerp/osv/fields: add __slots__ on all column classes
Use the same technique as for field classes.
This saves about 1.6Mb of memory per registry.
2015-03-23 14:36:15 +01:00
Raphael Collet e7928e1265 [IMP] fields: add __slots__ on all fields
Introduce slots on all field classes for common attributes; slots take much
less memory than a `__dict__`.  The other attributes are stored in a dictionary
`_attrs`; all fields with an empty value for `_attrs` (common case) share the
same empty dictionary.  This saves quite some memory (around 4.5Mb per
registry), given the number of field instances created for a registry.

Another mechanism is used for the default values of attributes, since slots
cannot be assigned on classes.
2015-03-23 14:36:15 +01:00
Raphael Collet 915af86a91 [IMP] fields: simplify definition of ID field 2015-03-23 14:36:15 +01:00
Raphael Collet ffa7f28d34 [IMP] fields: reduce memory footprint of list/set field attributes
The optimization consists in using tuples for attributes `inverse_fields`,
`computed_fields` and `_triggers`, and to let them share their value when it is
empty, which is common.  This saves around 1.8Mb per registry.
2015-03-23 14:36:15 +01:00
Raphael Collet 3df7754087 [IMP] fields: reduce memory footprint of field._attrs and column._args
The optimization consists in sharing the dictionary when it is empty, which is
the common case.  This saves around 1.5Mb per registry.
2015-03-23 14:36:15 +01:00
Raphael Collet 4d232969a3 [IMP] fields: remove attribute _free_attrs and use _attrs instead
This saves about 400Kb per registry by not allocating those lists, which are in
most cases empty.  The removal of the attribute will also simplify a bit the
management of free attributes.
2015-03-23 14:36:15 +01:00
Raphael Collet 9aad3d873b [IMP] fields: turn field.digits and column.digits into dynamic properties
The computed value of parameter digits is no longer stored into fields and
columns; instead the value is recomputed everytime it is needed.  Note that
performance is not an issue, since the method `get_precision` of model
'decimal.precision' is cached by the orm.  This simplifies the management of
digits on fields and saves about 300Kb per registry.
2015-03-23 14:36:15 +01:00
Raphael Collet bf703fd9a3 [FIX] models: reorder the base classes of models following an equivalent class hierarchy
Sometimes, the expected mro of the model is not the same as the one built with
a binary class hierarchy.  So we reorder the base classes in order to match the
equivalent binary class hierarchy.  This also fixes the cases where duplicates
appear in base classes.
2015-03-23 14:36:14 +01:00
Raphael Collet 9bce04de79 [IMP] models: build a flat hierarchy of classes for models
Instead of composing classes in a binary tree hierarchy, we make one class that
inherits from all its base classes.  This avoids keeping intermediate data
structures for columns, inherits, constraints, etc.  This saves about 600Kb per
registry.
2015-03-23 14:36:14 +01:00
Raphael Collet 0f9b452c33 [IMP] models: convert deprecated model._all_columns into a dynamic property
The mappings model._all_columns takes quite some memory (around 2MB per
registry) because of the numerous dictionaries (one per model) and inefficient
memory storage of column_info.  Since it is deprecated and almost no longer
used, it can be computed on demand.
2015-03-23 14:36:14 +01:00
Raphael Collet e2ea691cef [IMP] ormcache: turn it into a global LRU cache shared among registries
The ormcache is now shared among registries.  The cached methods use keys like
(DBNAME, MODELNAME, METHOD, args...).  This allows registries with high load to
use more cache than other registries.
2015-03-23 14:36:14 +01:00
Denis Ledoux e3a80afbaf [FIX] im_livechat: prevent translation of JS snippet
QWeb templates can be translated, javascript code
included. Nothing prevents you to translate
the javascript reserved word "undefined", for instance.

Preventing the livechat JS snippet to be translated
prevent translations mistakes, like translate
```undefined``` by ```Niet gedefinieerd```

opw-630335
2015-03-23 13:50:23 +01:00
Aaron Bohy 573341c906 [FIX] Web_calendar: hide the sidebar in dashboards 2015-03-23 12:42:46 +01:00
Christophe Matthieu c9dd223305 [FIX] website editor: delete content should not remove the editable ancestor node when all content is seleted 2015-03-23 12:25:06 +01:00
Christophe Matthieu 2f5e4149fb [FIX] summernote: wrap the content with p when the user keyup on 'enter' but should not wrap the content if the editable area is a p, li or other para 2015-03-23 12:25:06 +01:00
Christophe Matthieu 421693d952 [FIX] website_mail: text block: padding at 0, it is not aligned with texts in other blocks 2015-03-23 12:25:05 +01:00
Christophe Matthieu e1cf30a88f [FIX] website editor: remove wrong tooltip on snippet icon 2015-03-23 12:25:05 +01:00
Richard Mathot 26c44a58df [FIX] hr: allow translating job offers 2015-03-23 12:11:41 +01:00
Géry Debongnie 137305d149 [FIX] web: remove useless dependency 2015-03-23 11:10:06 +01:00
mge-odoo f39fc09267 [ADD] web: generic widget with iframe 2015-03-23 11:09:40 +01:00
Nicolas Martinelli aac5c47980 [FIX] l10n_be_invoice_bba: only check BBA when modified
The BBA communication is now only checked when provided as input
(created or modified).
Avoids useless check for uniqueness when it's not modified, and
prevent errors when several invoices are modified in batch.

opw: 629649

Closes #5700
2015-03-23 11:06:14 +01:00
mge-odoo 62100da9d3 [IMP] Create dropdown in website for promote links + [FIX] website_links : add a link in the dropdown instead of replacing it 2015-03-23 11:05:14 +01:00
qdp-odoo c8ea6cf530 [IMP] account: bank statement processing now allow partial reconciliation on the last invoice selected (not only on the first). 2015-03-23 10:53:08 +01:00