summaryrefslogtreecommitdiff
path: root/addons/mail/models/mail_template.py
AgeCommit message (Collapse)Author
2021-05-27[FIX] mail: use template lang on layout and display namenie
Steps: - Install sale - Go to Settings / Translations / Languages - Activate Dutch - Go to Settings / Users & Companies / Users - Edit demo - Language: Dutch - Go to Sales - Create a quotation: - Customer: demo - Go to Settings / Technical / Automation / Scheduled Actions - Create a new action: - Model: Sales Order - Python code: ```python last_id = model.search([], order='id desc', limit=1)[0].id env.ref('sale.email_template_edi_sale').send_mail(last_id, notif_layout='mail.mail_notification_paynow') ``` - Click "Run Manually" - Go to Settings / Technical / Email / Emails - Open the last email you just sent Bug: Parts of the email are not in Dutch Explanation: This commit makes a template pass the rendering language to the layout and the display name when calling `template.send_mail()`. opw:2467640 closes odoo/odoo#68656 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2021-02-18[FIX] mail: translate report name fieldMartin Trigaux
When genrating an attachment in a mail message (e.g. the pdf attached to a confirmation email), the filename was not translated into the language of the recipient (unlink the email content). The variable `template` has the contact language in the context while `self` contains the language of the user executing the action. Fixes odoo/odoo#66420 closes odoo/odoo#66441 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-10-29[FIX] *: correct typos and bad EnglishMartin Trigaux
Courtesy of translators Reexport .pot of modified modules closes odoo/odoo#61002 Related: odoo/enterprise#14485 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2020-08-27[REF] mail: move generic methods from thread to BaseModelThibault Delavallée
PURPOSE Since v13 some commits added code in mail thread file. This file is already quite long and keeping it organized allow to understand its content. SPECIFICATIONS Some methods defined on mail.thread may actually be called on models not inheriting from mail.thread . Instead of having model methods on mail thread receiving a records parameter it seems better to have those available directly on BaseModel. Move static_message_track on BaseModel in models.py. This method is now called _mail_track, to be coherent with othe rmail-related naming. It is used in accounting to track values in line model that does not inherit from mail. thread. Update accounting accordingly (followup of d862965). Move _message_get_default_recipients_on_records in models.py. Renaming it _message_get_default_recipients() allow to be compatible with current behavior and current override available in some addons (like CRM, event, ...). Move _notify_get_reply_to_on_records in models.py. Renaming it _notify_get_reply_to() allows to be shorter and coherent. Move _alias_check_contact_on_record in models.py. Renaming it _alias_check_contact_() allows to be shorter and coherent. Its override in hr is also moved on BaseModel. Backward compatibility is kept for those methods as this PR target a mostly stable version. LINKS Task ID-2327096 (code cleaning) PR #56631
2020-06-18[IMP] *: replace to new _() syntaxMartin Trigaux
Using a few regex like \((_\(.*%s.*)(\) % )([\w\[\]][\w .\[\]\(\)'"]*)\) ($1, $3)) Old syntax is still compatible but starts the migration to the new syntax that catches error.
2020-05-14[IMP] *: convert to private methodsMartin Trigaux
render, render_template, load, activity_schedule_with_view, get_website_pages should all be private: It should not be possible to render an aribtrary template only with its name or id Still need to render some qweb views from js so the method render_template is kept public. This explains why the website editor still need read access on ir.ui.view as we want to allow any snippet to be rendered.
2020-03-24[MOV] mail, various: move replace_local_links to render mixinThibault Delavallée
PURPOSE Move links shortening tools on mail.render.mixin to have rendering and post procesing tools available on that mixin. LINKS Task ID 1963529 Community PR odoo/odoo#32397
2020-03-24[MOV] mail, sms: move language computation in render mixin directlyThibault Delavallée
PURPOSE Merge rendering tools used in mail and sms templates as well as partially in mailings and move them directly in mail.render.mixin. SPECIFICATIONS Move tools related to language computation from mail.template model to the mail.render.mixin. It allows to update both * mail.template: simply update calls accordingly; * sms.template: remove code doing what is now available through mail.render .mixin inherit; Lang field is moved to mail.render.mixin as it is used notably for the language computation. It therefore adds the field on mailing.mailing model although not used currently. LINKS Task ID 1963529 Community PR odoo/odoo#32397
2020-03-24[MOV] mail: move rendering code to mail render mixinThibault Delavallée
We also have to update code calling directly the rendering itself. Indeed some code bits does some rendering directly on jinja-enabled input and not through templates. Those calls have to be updated accordingly. LINKS Task ID 1963529 Community PR odoo/odoo#32397
2020-03-24[REF] mail: clean code about rendering in mail_templateThibault Delavallée
PURPOSE Clean and rename code about language management and template rendering in mail template model. SPECIFICATIONS Clean method naming and try to make code easier to understand and call. Also add and/or clean docstrings of rendering methods. Notably * ``_classify_per_lang``: for each lang-contextualized template, give the list of record ids; * ``_render_template``: now working only on a valid list of IDs instead of allowing both int / list and having a return type depending on the input type. It allows to simplify code and delegate some processing to callers; Introduce new API method * ``_render_lang``: for each record id return the lang matching it; * ``_render_field``: render a field of mail.template, on given set of record ids. Usage: template._render_field('body_html', records.ids). Language computation is available for this method; Remove the "multi mode" support of rendering that either returned a rendered value, either a dict based on given ids. Now all methods always work in batch and caller have to fetch the correct result if necessary. LINKS Task ID 1963529 Community PR odoo/odoo#32397
2020-03-24[REF] mail, sms: reorganize {mail.sms}.template and mail.render.mixin fields ↵Thibault Delavallée
and add docstrings PURPOSE Clarify mail.template, mail.render.mixin and sms.template code organization. SPECIFICATIONS Reorganize fields according to their main use. Remove an unnecessary onchange in mail template model. As "model" field on mail template is a computed field its computation is sufficient. Add some docstrings and code separations. Prepare future code change. LINKS Task ID 1963529 Community PR odoo/odoo#32397
2020-03-24[REF] base, mail: improve partner creation from name / emailThibault Delavallée
Rewrite code parsing name (_parse_partner_name) to make it easier to understand. Tweak find_or_create to return directly a recordset with the found partner / new partner instead of a name_get result. Also inherit Partner.find_or_create() in mail in order to benefits from email_normalized field, allowing to improve the search on matching emails and avoid duplicates. LINKS Task ID 1963529 Community PR odoo/odoo#32397
2020-02-18[IMP] mail: improve the help tooltip of auto_delete fieldIpsita Borisagar
Currently the message for help tooltip of auto_delete field is not sufficiently clear for user to understand. In this commit, improving message for help tooltip by adding some extra details in it so user can easily understand about it for models mail.mail, mail.template and wizard mail_compose_message. Task-2055702 Closes https://github.com/odoo/odoo/pull/45063 closes odoo/odoo#45063 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-02-11[REF] mail, various: remove user_signature field from mail.templatemcm-odoo
RATIONALE Mail template model holds a field telling odoo mail engine to automatically add the current user's signature to the body. Its use depends on the use case * using the template in the composer on a single record: it is displayed in the rendered template in the composer, meaning people could change it. This behavior is interesting as it allows to see the email content; * using the template in the composer in mass mail mode: it is not displayed as only the raw jinja is displayed. It is therefore not obvious that it will be appended to the body of the mail. People could add it manually and have 2 signatures as a result; A mechanism automatically adding a signature to sent emails when posting a message is already implemented and is based on template existence. If a template has been used when posting, no signature is added in sent emails. Otherwise it is automatically added. This behavior should not change. Behavior will therefore be * use a template -> specify signature usage in it manually through jinja; * do not use a template -> signature added in sent emails; SPECIFICATIONS Remove user_signature. Update template body accordingly. In customer oriented templates that are using it and do not already contain it, manually add a call to user.signature within the jinja code. When set to False, just remove its declaration. Quickly clean some signature integration. LINKS Task ID 2089252 Community PR odoo/odoo#39482 Enterprise PR odoo/enterprise#6459 Upgrade PR odoo/upgrate#761 Related: odoo/enterprise#6459 Related: odoo/upgrade#761 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com> Co-authored-by: Michaël Mattiello <mcm@odoo.com> Co-authored-by: Thibault Delavallée <tde@odoo.com>
2019-12-02[IMP] mail: improve displayed error when template rendering crashesryv-odoo
Currently when rendering a template crashes, error is not easy to understand as it is hidden in a generic message. Purpose of this commit is to improve this message to indicate why the template fails to build (only the first error encountered). Task 2085912 PR #38708
2019-11-29[FIX] mail: restrict access to mail.mail modelThibault Delavallée
From now on mail.mail is considered as a technical model. Indeed people should not really manually craft mails by hand. Instead various functional flows should either send mails, either craft mails based on some user input. We therefore make mail restricted to admin users. Flows creating mail.mail are updated to use sudo, and ensure it was done in a context that makes sense to delegate this power to the user. Task ID 1853147 PR #32243
2019-11-07[IMP] mail, mass_mailing: add dynamic placeholder mixin and use it in ↵laa
mailing and templates PURPOSE Upgrade the "mass_mailing" and "mass_mailing_sms" modules with a dynamic placeholder generator as it already exists in "mail module" as depicted in https://www.screencast.com/t/cnFA0gIY. SPECIFICATIONS As duplicated code already exists for that and that a third version of this code has to be added, instead create a mixin for this dynamic placeholder generator to avoid code duplication. Thereby * a mail.render mixin for the dynamic placeholder generator must be created in mail; * dynamic placeholder generator code present in mail.template.py must be moved to that mixin and replaced by a simple inherit; * use the mixin in * mail templates: mail.template.py (mail module); * mass mailings: mailing.py (mass_mailing module); * sms templates: sms.template (mass_mailing_sms module); In a near future, some code will be added in this mixin, notably the template rendering that could be moved outside of mail.template core model and moved in that rendering mixin. LINKS Task ID 2070612 PR #36722 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-10-23[REF] mail: remove dead code in composer and lint some code bitsThibault Delavallée
Purpose of this commit is to remove code coming from old features, implementations and that was not completely cleaned. Including * remove support of old "reply" composition mode which is simply a comment with a parent message, and is deprecated; * remove support of old "mail.compose.message.mode" context key that was used in Odoo 6.1; * remove support of message_id default value in context instead of default_parent_id; * remove old redirection of user / partner post. This code come from old age when people were able to post on their "profile" by posting on their user; * remove unnecessary method for selection field; * remove unused imports to clean a bit code; We also make some optional parameters in rendering methods mandatory to ease code understanding and future modifications. Task ID 1853147 PR #39272
2019-08-05[IMP] *: remove usage of `oldname` attributeChristophe Simonis
This attribute is misleading as it is insufficient to correctly upgrade the database. It only renames the column in the database, but other operations are needed, like updating the corresponding `ir.model.fields` record (and its xmlid). The default values and the translations are also lost during the upgrade. Moreover, this feature was misused. It was: - left on fields during multiple versions. - used on reports (SQL views). This would be ok if the feature was complete, but, as is, it was useless. - kept unchanged after a second renaming of the field (which can happen versions later the first rename). - used, even when the meaning of the field changed. i.e. the field `archived` has been renamed to the classic `active`, but the value in the database should be switched.
2019-07-17[REM] *: calls to @api.multiAdrian Torres
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-15[MERGE] Forward port of saas-12.4 to master up to 1f5a4649a67908Martin Trigaux
closes odoo/odoo#34850 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-12[MERGE] Forward port of saas-12.3 to saas-12.4 up to 87fc1554d6a1823Martin Trigaux
closes odoo/odoo#34820 Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2019-07-05[MERGE] forward port branch 12.0 up to 9c742d0c656Christophe Simonis
2019-06-27[FIX] mail: allow more complex email layoutJorge Pinna Puissant
Add record to the email values to allow the use of more complex email layout as : "mail.mail_notification_paynow" opw-2025099 closes odoo/odoo#34375 Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-06-05[REF] *: removes datas_fname from ir.attachmentThanh Dodeur
This commit removes the field `datas_fname` from `ir.attachment` as it was unnecessary and most of the time the duplicate of `name` or `url`. Task #1909865 closes odoo/odoo#32976 Signed-off-by: Martin Geubelle (mge) <mge@openerp.com>
2019-05-29[IMP] api.py: Rename company_id/company_ids into company/companiesYannick Tivisse
The goal is to be coherent with the user property. Actually, company_id and company_ids on the environment are no fields. Calling env.company_id returns a browse record, not an id.
2019-06-28[IMP] tools: introduces format_durationjem-odoo
As some formatting tools already exists, it is time for float_time conversion to have its own. Purpose is to extract formatting logic from the float_time qweb widget to tools, in order to reuse it in mail.template (jinja). We named it 'format_duration', to follow babel convention. This can bring confusion with the duration qweb widget, but this widget should be called 'timedelta', as it is more generic than this one. Task-2025396 closes odoo/odoo#34417 Signed-off-by: Jérome Maes (jem) <jem@openerp.com>
2019-06-28[REF] mail: template: move formatting to toolsThibault Delavallée
This commit moves formatting helpers method used in mail.template to tools. The goal is to reuse them anywhere in odoo, and not only in mail templates. Thoses method are used to format date, datetime, amount, ... according to user localization (currency, language, pattern, ...). This commit also improve the formatting methods of 'date' and 'datetime': we are now taking the 'lang_code' into account. Indeed, as the implementation uses `babel` lib, it is easy and usefull to add the language option, to display the given dates into a particular language. This parameter is optional to keep compatiblity with existing code. Task-2025396 Code Courtesy of @tde-banana-odoo
2019-06-17[IMP] *: remove 'view_type' on window actions.Hiral Bhavsar
The old tree views don't really exist anymore, this odd pseudo-flag to dispatch between "list" and "tree" tree views has no reason to remain. Task 1937686 closes odoo/odoo#31243 Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-05-27[REM] multi from ir.actions.act_windowXavier Morel
Task 1843603 * src_model is redundant with binding_model_id * multi -> binding_view_types (if empty => all views) (maybe should be empty by default yo?) * in convert, type => rec.get(type) but no @type possible on <act_window>... * removed deprecated auto_refresh & auto_search (not used anywhere (?)) closes odoo/odoo#24738 Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2019-05-13[REF] mail, various : make message_get_default_recipients from mail.thread ↵David Beguin
private Purpose: make some methods from mail.thread mixin private and update their naming if necessary. Some methods prepare data for business flows and deal with internal information. Public methods should either use of give some access to those methods. Computation itself should be keps internal. In this commit we put message_get_default_recipients as private. Its API is improved to clearly separate model-inherited method (overriden in some addons) and general tool method given by the mixin. Finally all sudo hidden in the computation are removed. Caller now give a sudo-ed record set in order to be more explicit. Low level method just computes the result and does not care about sudo-ing or ACLs. Note a model approach for this method is necessary as mass mailing using mail.template records does not ensure records to check inherit from mail thread. Some addons are updated accordingly to the method change. Related to task ID 1911679 Linked to PR #29483
2019-05-13[MERGE] forward port branch saas-12.3 up to 60e71302a38Christophe Simonis
2019-05-13[IMP] base: Contextualize the multi companyYannick Tivisse
Purpose ======= Allow the user to select the allowed companies for which he wants to see records on top of selecting his current company. It is confusing for users to see the records from the company he is connected to and the records of the children companies. Instead of using the hierarchy of companies to access records across companies, the user can now select (from his set of allowed companies) the companies for which he wants to access records. /!\ This means that the user will interact with records from company A when in company B. Example: a SO has been created and confirmed in A. When in B, I create the invoice from it. Specifications ============== 1/ Deprecate the parent/children hierarchy on the res.company model. The fields are kept on the res.company model to ensure the retro-compatibility, but won't be used accross the standard code anymore. The only functional usage for this mechanism was to allow to see records from several companies by creating a virtual parent company, which will be possible with the new mechanism. 2/ By default, a user will only see the records of the company he is connected to (or records without a company). (It is still editable by the user if needed). For that, put this information in the user context, to allow having different configurations on different browser tabs. Instead of having domains like ['|', ('company_id', '=', False), ('company_id', 'child_of', user.company_id.id)] you'll have something like ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] Note that the 'company_ids' is a value that is passed in the evaluation context on the record rule, as we already have user, or time. company_ids is a list of the ids of all the enabled companies in the user's context. 3/ Out of the generic improvements brought by this task, this will illustrate issues that could exist since several versions. For example, it should not be possible to create a scrap order for the company A with a package of the company B, or it should not be possible to create an invoice on the company A with payment terms from the company B. Before the version 12.0, it was easy to encounter this kind of issues as the admin was the SUPERUSER_ID. A positive side effect of the fact that the SUPERUSER_ID has become an inactive user was to make it more difficult to introduce mismatch on the records, but haven't solved the issue, as it was still possible to do it with parent companies configuration. Some of these issues have been fixed in this commit, but all the business flows should be re-tested to check if an ir.rule should be introduced (eg: a multi company rule for stock.quand.package), if the company of a record is correctly transfered to another record created from the first record (eg: From a SO, create an invoice and a payment, the company of the sales order should be transfered on the invoice and the payment, even if the company of the sales order is A and I'm logged into the company B with the company A enabled. 4/ Currently, if I click on a button on a notification email (example 'View Task'), I face a traceback if I'm not logged into the company of the record. Now, if you click on a button and if you have access to the record, the correct company will be automatically set. 5/ If I display a kanban view with several records from several companies (and an image), all the images should be displayed. 6/ Currently if you copy paste an url, this will crash if you're not in the correct company. This won't be fixed because it's quite impossible to do it in a clean way. This task brings a workaround. Copy/Paste -> Traceback -> Log into the correct company, re-copy/paste -> Ok. 7/ 2 property methods have been added on the environment to retrieve the company on which the user is logged in and the companies the user enabled, on a specific tab. That way, when creating a record, instead of doing default=lambda self: self.env.user.company_id do default=lambda self: self.env.company_id On the other hand, to retrieve the enabled companies, do companies = self.env.company_ids 8/ Modify the Company Switcher widget to allow to log into another company WITHOUT writing on the res.users (and thus bringing cache invalidation issues and so on). Also allow to enable several companies and see records from several companies, and independantly of the other browser's tabs. 9/ When focusing on a tab, save the current company configuration on the local storage. That way, when doing 'CTRL+T' or a middle click, the context is propagated to the new tab. 10/ Improve the error message in case of multi company access errors. Now, when the user is in debug mode, display the related names of the records and the name of the user who brings the issue. 11/ Remove the context erasing when writing on a res.users This is probably coming from the migration to new API of the base module. The context was not propagated at this moment, which was a common mistake at that time. When migrating the module, probably by using the 'black box' method, as the context was not propagated, it was erased on the new version. This is now an issue because the context (i.e. the enabled companies) was erased when writing on a res.users, leading to tracebacks. See: https://github.com/odoo/odoo/commit/7eab8e26d3d46c53f4be924d6a34e80a66e74960#diff-4c2e738ee8f64f11806c889ea097b5e7R624 12/ Fix the crash manager on redirect warnings. The issue is the following - Create an invoice on a company without a configured CoA. - Set a partner - On the onchange_partner_id, a redirect warning is raised to propose you to configure a CoA - Click on 'Go to the configuration panel' - A generic warning says something like 'Do you want to discard your changes?' - Click on yes, the page refreshes, but not on the redirect action. Now, set correctly the action on the hash, and reload instead. The breadcrumb is lost for example, but you reach the correct action at least. 13/ Introduce a res.group to enable/disable the multi company per tab feature. 14/ To help the users to know which tab is in which company, add the possibility to have a favicon per company. When creating a company, the classical 'O' icon is colored by default in a random color. 15/ Remove the company switcher on the frontend. This was mainly there to allow a user to swicth to the company linked to the website. This behavior is now transparent to the user. If the website A is activated, then the company set on the context is the company of the website. 16/ Deprecated the _company_default_get method on the res.company model. Remove the method _get_company on the res.users model. 17/ Add 'allowed_company_ids' and 'current_company_id' on the pyeval context. You can now use those variables on domains in the views to access directly to the activated company.ies on the current tab. TaskID: 1960971 closes odoo/odoo#32341 Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2019-04-30[FIX] mail: Fixed typoSwapnesh Shah
closes odoo/odoo#33069 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-26[MERGE] forward port branch 12.0 up to c9913152ecbDenis Ledoux
2019-04-17[IMP] mail: restore support for all report_types in mail attachmentsLaurent Mignon (ACSONE)
Commit 48018411 introduced a new ir.action.report type: qweb-text. Commit 3425752 introduced an explicit check on the type, for html or pdf. This removed the ability to support arbitrary reports through the call to the generic render method, which dispatches to the correct one for a report_type. We add support for the text format following the same logic. The explicit error will be raised if the rendering fails, e.g. in the case where the render method is not defined. Thanks to @gdgellatly for reporting. opw 1966208 closes #28513 closes #30013 closes #32532 closes odoo/odoo#32773 Signed-off-by: Nans Lefebvre (len) <len@odoo.com>
2019-03-14[MERGE] forward port branch 12.0 up to a26496b6e79Christophe Simonis
2019-03-11[FIX] mail: incorrect check in template if no company setAlex Tuyls
In case company is not set on the model related to the template, we should not try to retrieve it when creating the associated partner. Fine-tuning of a46138cb019a3617704afb018132396ac2339823 opw-1947334 closes odoo/odoo#31607 Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
2019-02-07[MERGE] forward port branch 12.0 up to a46138cb019Christophe Simonis
2019-02-06[FIX] mail: create partner from template in right companyLucas Perais (lpe)
Before this commit, when creating a partner automatically when creating a message with a template, the company on the partner was wrongly set After this commit, we try to retrieve the company from the model on the template OPW 1934392 closes odoo/odoo#30893
2018-11-29[REF] *: replace deprecated pycompat helpers for builtinsAdrian Torres
This commit replaces calls to pycompat helpers that were intended for python 2 <-> python 3 interoperability for python 3 builtins, as python 2 is no longer officially supported by Odoo. This includes: * calls to imap/izip/ifilter replaced by map/zip/filter * uses of text_type replaced by str * uses of unichr replaced by chr * calls to implements_to_string, implements_iterator removed * string_types and integer_types replaced by str, int respectively * calls to to_native replaced by calls to to_text This is done in preparation to the removal of these deprecated helpers in the following commit.
2019-04-24[IMP] mail: add an option to preview templates in a specific languageAxay Javiya
Purpose: allow to check email preview in a specific language in order to see the result in a given translation context. Specifications * added preview_lang field to change language of template * set default language from the template by evaluating expression if lang field of template is set, This commit is related to task ID: 30245 closes odoo/odoo#19165 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
2019-04-05[FIX] mail_template: correctly compute / update attachment_ids in send mailThibault Delavallée
Attachments when generating an email based on a template are done in two steps, see notably [1]. However mail generation replaces attachments using a 6 command. This means existing attachments given through email_values are not correctly managed and this leads to invalid command given to the m2m field. This commit fixes that by correctly generating a list of commands, using 4 (add) for new attachments coming notably from reports linked to the template. Related task ID 1965040 PR #32459 [1] https://github.com/odoo/odoo/commit/f789005c9a6c26322565a1af7cc4e57a60eab9f0
2018-10-02[IMP] mail: Make mail.compose.message code more readableYannick Tivisse
Purpose ======= Remove the method 'render_template' in mail.compose.message as the indirection is not useful. Call the method on the correct model (mail.template) directly.
2018-08-10[MERGE] forward port branch saas-11.4 up to edd586002e9Christophe Simonis
2018-08-09[MERGE] forward port branch saas-11.2 up to 499af66727eChristophe Simonis
2018-08-07[MERGE] forward port branch 11.0 up to ced9156a97eChristophe Simonis
2018-08-06[REF] *: use native date/datetime for Date/Datetime fieldsRaphael Collet
From this commit onwards, Date fields will return datetime.date objects and Datetime fields will return datetime.datetime objects, this implies a number of things that are clearly explained both in the ORM API for master. This commit also introduces a number of helper functions for dates and datetimes that are exposed in tools.date_utils and fields.Date[time], explained in the documentation as well. Task-ID: 47189
2018-08-01[MERGE] forward port branch saas-11.4 up to 8d9366197e1Christophe Simonis
2018-07-30[MERGE] forward port branch saas-11.2 up to 3376bad191dChristophe Simonis