summaryrefslogtreecommitdiff
path: root/addons/mail/models/__init__.py
AgeCommit message (Collapse)Author
2019-04-17[IMP] mail: Delete tracking values when uninstalling moduleLucas Lefèvre
Purpose ======= mail.tracking.values should be deleted when the corresponding field is deleted (when the module which defined it is uninstalled). Firstly because we don't want useless data in db. Secondly because the groups associated with the field can no longer be checked if it was deleted. As we don't know to whom the value was restricted, the value should not be displayed anyway. Note: this case was fixed in saas-12.2 by b9e96b7 but the proper way to fix it is to delete the tracking values. Specification ============= Delete `mail.tracking.value` when the associated `ir.model.fields` is deleted. Two alternatives were considered: 1. Change the `field` field of `mail.tracking.value` from Char to a m2o to `ir.model.fields` which allows to use delete oncascade. This implies to modify existing code, but more importantly it adds database queries. 2. Override the unlink method of `ir.model.fields` to first unlink associated tracking values. The first method is probably cleaner but the second method was nonetheless chosen as we don't want to impact performance in the main tracking flow only to better support module uninstalls which happens rarely. Note: when a module is uninstalled, `ir.model.fields` are unlinked one by one (in a for loop). Tracking values are therefore also unlinked field by field. Batchifying field deletion would greatly reduce the amount of queries.
2019-03-28[IMP] mail, test_mail, *: add new email.cc.mixin on main modelsXavierDo
*: crm, project, maintenance, hr_recruitment When a record is created from an email, cc can be lost. This commit proposes a new mixin to keep cc on the record and allows to create partner for each of them when sending a message from the chatter. The mixin is added on the mail recors that can be created from mail.alias: document helpdesk.ticket mrp.eco quality.alert hr.applicant crm.lead project.task mail.channel maintenance.equipment Task: 1925001
2019-02-07[IMP] mail, web: Add indication abouts it's own status in user_menu.XavierDo
Task: 1856205
2018-11-20[IMP] mail : add mixin to normalize email addressDavid Beguin
This Mixin can be used to store a normalized version of the primary email address of the parent model. The email_normalized field can than be used on that model to search quickly on emails (by simple comparison and not using time consuming regex anymore) This commit will be usefull to simplify the email address comparison in the blacklist mixin but also for any models storing non normalized email address. Task ID : 1896677
2018-09-14[IMP] mail: add main attachment support on mail.threadOlivier Colson
This is done by adding a new field on mail.thread objects and setting it when posting a message with attachments on a model inheriting from mail.thread. Was part of PR #26740 Was part of task #1880089
2018-09-03[FIX] mail: consider `activity` as a valid view typeMartin Geubelle
The recently introduced `activity` view (see rev. odoo/odoo@1de9496 has not received all the consideration it deserves as a real view type (no RNG, not in the valid view `type`, no doc, etc.). It was currently only working based on a `_get_default_activity_view` method. Even if the RNG is currently really basic, its grammar could evolve in the future. This was causing an issue when opening Studio with this view as a default view with an invalid type was created.
2018-08-10[IMP] mail - mail.blacklist: Not send mass_mail to recipient that does't want toDavid Beguin
Purpose ======= Improve mailing subscription to be more compliant with the European GDPR law. Keep a list of people who does not want to receive promotional emails (or mass mailing in general) anymore. Specifications =========== This commit is regrouping some main changes on mass mailing. - Added blacklist : Avoid sending mass mailing to blacklisted recipient (blacklisted = email address that doens't want to receive mass mailing anymore) Detailed implementation =================== Mail : - Add Blacklist mechanism in mail module (NOT in mass-mailing) : as we can send mass-mail without the mass-mailing module - Unicity in email -> To avoid error in import, override the create and return the existing record if any, else, create the record normally. - Blacklisting is done by email address and is cross model. Will apply to model that inherit the blacklist.mixin. - field 'is_blacklisted' -> computed : check if email is in blacklist + search method to be able to filter on is_blacklisted - When a email address is blacklisted, it will never get mass mailings anymore. Even if the email address is added to another mailing lists - Avoid sending notification to blacklisted recipients when sending email in mass mail mode. If the recipient is blacklisted, we should not even send a notification in the recipient's chatter for an email that he won't even receive. - When a email address is blacklisted, it can still get 'normal' mailings. - The blacklist shoud be accessible in Mass Mailing / Configuration / Blacklist and Settings / Technical / Email / Blacklist -> Renaming Settings / Technical / White / Black List config menu item into Channel Moderation to avoid confusion with Mass Mail Blacklist - Add indexes to the blacklist table (on email) to make it fast for access for the different use cases - _primary_email : attribute that must be overriden to specify which field must be used as email in the blacklist mechanism. - Filtering the blacklisted recipient in mail composer : done in mail._get mail value() In case of real mass mailing, we need the statistics to be computed in order to know how many recipients were ignored in the mail. So we cannot avoid sending mail but instead flag the mail as canceled. Task ID 33224
2018-07-20[FIX] mail: add missing licenseXavierDo
2018-06-06[IMP] mail: add moderation on channelsMathieu Duckaerts-Antoine
Purpose of this commit is to allow moderation on incoming messages in discussion channels. On some channels on which moderation is required messages should be in a pending moderation stage. Moderators can accept or refuse messages as well as always allow or ban messages coming from a given set of emails. Channels now have an option to be moderated. Moderators can be added on channels. They have access to a specific UI in Discuss to see and take action on messages waiting for moderation. Concerning mail.thread message that are pending moderation are not notified. It means nobody receives a notification about them. Moderation process calls the notification once the message is validated. Various features included in this commit : * a model is added to store the decision about emails, allow or ban; * access rights are updated so that only moderators can modify moderation fields on message; * specific bus notifications are send to moderated people as well as to moderators on incoming emails as well as when a decision is taken; * options are added on channels to send explanations to moderated emails; * options are added on channels to write and send guidelines explaining why and how moderation is performed; * a reminder is send daily to moderators with remaining messages to moderate; * discuss UI is adapted and a new channel is added below Inbox and Starred giving access to moderation tools; * chanenl UI is adapted allowing to moderate directly inside channels; This commit is linked to task ID 29521. Closes #21921.
2017-09-01[IMP] res_config: Update file names, xmlids, class names according to guidelinesYannick Tivisse
Now that we only have one model (res.config.settings). Uniformize everything according to the guidelines.
2017-06-19[MOV] *: Reorganize configuration files according to guidelinesYannick Tivisse
2017-05-15[REM] P3: outdated html2text vendoringXavier Morel
The vendored html2text is *really* old and absolutely not P3-compatible. There is a maintained version on Pypy which is, so use that and stop vendoring html2text.
2017-04-28[FIX] Various P3-related import changesxmo-odoo
* 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-02-28[IMP] mail: reflect inheritance of `mail.thread` on `ir.model` (#15107)Raphael Collet
The boolean field `is_mail_thread` on `ir.model` allows to create custom models that inherit from model `mail.thread`. The selection field `track_visibility` on `ir.model.fields` allows to add tracking on custom fields. Also change the order on model `ir.model` to make mail thread models appear first.
2016-12-21[IMP] mail: add activities allowing to define next actions on various modelsRavi Gadhia
This commit introduces generic activities to use in your addons. Activities are actions user have to take on a document like making a phonecall or organizing a meeting. Activities come with the mail module as they are integrated in the Chatter but are not bundled with mail.thread. New models are * mail.activity.type: used to categorize activities. Each type is a different kind of activity e.g. call, mail, meeting. An activity can be generic i.e. available for all models using activities; or specific to a model in which case res_model_id field should be used. * mail.activity: an actual activity to perform. Activities are linked to documents using res_id and res_model_id fields. Activities have a deadline that can be used in kanban view to display a status. Once done activities are unlinked and a message is posted. This message has a new activity_type_id field that indicates the activity linked to the message. This commit introduces a mail.activity mixin to use in various addons that enables the activities feature. It works like the mail.thread mixin. It defines a activity_ids one2many field toward activities using res_id and res_model_id. Various related / computed fields are also added to have a global status of activities on documents. Activities come with a new JS widget for the form view. It is integrated in the Chatter widget although it is a separate widget. It displays activities linked to the current record and allow to schedule, edit and mark done activities. Use widget="mail_activity" on activity_ids field in form view to use it. There is also a kanban widget defined. It defines a small widget to integrate in kanban vignettes. It allow to manage activities directly from the kanban view. Use widget="kanban_activity" on activitiy_ids field in kanban view to use it. Next commits will aim at integrating activities inside main Odoo addons. Thanks to R&D India for their work and testing on this task. Thanks to belgian Usabiliteam for reviewing and testing it. Thanks to @jem-odoo for the final review. May his soul lie in peace with the trumpets of paradise.
2016-09-01[IMP] mail: improve notification management for customersThibault Delavallée
Currently it is impossible in Discuss to know whether an email has been sent to a customer and whether it failed or bounced. A notified partner has an entry in the needaction m2m table. In this commit we decorate this table to add fields about the email notification: is an email sent, did it failed, did it bounce. This information is kept only for customers. Internal users does not use this information. Moreover their notification is deleted once the message is read in the Chatter. This avoids having a notification table that grows quickly. Chatter now holds a new icon for email details. It allows to know on a thread status of emails sent to customers.
2015-09-30[IMP] mail: trigger garbage collection of attachments from model `ir.autovacuum`Raphael Collet
2015-09-01[MOV] mail, im_chat : move files and code from im_chat to mail and busJérome Maes
- im_chat.session will be replaced by mail.channel - im_chat.shortode is renamed into mail.shortcode - im_chat.presence is moved to bus module - js and controller code is moved from im_chat to mail module This commit only move files, and modify manifests, bundles, ... The code will be adapt in the next commits.
2015-08-21[IMP] web: use css to display attachment mimetypeChristophe Matthieu
Widgets and website display images or display the type with icon like pdf, doc...
2015-08-21[REF] mail: mail_channel updateThibault Delavallée
Some features from live_chat have been moved to the mail module : - channels now have members, replacing followers; - a decorated m2m is used to link channels and members. It stores the last seen message on the channel for a specific partner; - channels do not create menu entries anymore, because the NewChatter will have its own display and use of channels; - access rights have been updated accordingly, using members instead of followers
2015-07-09[RENAME][MOV] mail, website_mail, website_mail_group: mail.group filesThibault Delavallée
renamed to mail.channel. At this point no model has been renamed; only files have been moved. n mail, mail_group files have been renamed to mail_channel. The website_mail_group addon has been renamed to website_mail_channel. Some internal references have been updated (templates, linked files).
2015-05-21[IMP][ADD] mail, various: timeline view.Valerie Pirenne
This commit introduces a new view type, the timeline view. This view is intended to display messages like the previous chatter. This is now a view like the form or list view. Like other views it will be possible to have custom templates for some specific needs, allowing customization. [IMP] mail: the value tracking is modified. Previously messages were created containing the modified values. Those values are now stored, using a new model mail.tracking.value. The message body is dynamically build based on the values. Tests have been updated. This version is temporary. Indeed two main modifications will come in a short future : - the new design will improve the display - the slack mode will change the way the Inbox and notifications are managed All glory to the Hypnotoad. Special thanks to Valerie Pirenne (vpi), Jerome Maes (jem) and Richat Mathot (rim) that did not code but said a lot of things. Martin Trigaux (mat) did nothing, a bit like for the slides modules, but he is busy sending emails.
2015-04-27[MOV] mail: moved files according to the new module organizationThibault Delavallée