diff --git a/addons/mail/doc/changelog.rst b/addons/mail/doc/changelog.rst deleted file mode 100644 index 5eee5f136a6325084be922046a122b4d5808c197..0000000000000000000000000000000000000000 --- a/addons/mail/doc/changelog.rst +++ /dev/null @@ -1,26 +0,0 @@ -.. _changelog: - -Changelog -========= - -`trunk (saas-2)` ----------------- - - - ``mass_mailing_campaign`` update - - - ``mail_mail`: moved ``reply_to`` computation from ``mail_mail`` to ``mail_message`` - where it belongs, as the field is located onto the ``mail_message`` model. - - ``mail_compose_message``: template rendering is now done in batch. Each template - is rendered for all res_ids, instead of all templates one id at a time. - - ``mail_thread``: to ease inheritance, processing of routes is now done in - message_route_process, called in message_route - - - added support of ``active_domain`` form context, coming from the list view. - When checking the header hook, the mass mailing will be done on all records - matching the ``active_domain``. - - added ``mail_server_id`` to mail_message, removing it from mail_mail. This allows - to set the preferred mail server to use for notifications emails, when using - templates. - - added ``_mail_post_access`` attribute that specifies the access right that - should have the user in order to post a new message on a given model. Values - are ``read`` (portal documents), ``write`` (default value), ``unlink`` or ``create``. diff --git a/addons/mail/doc/index.rst b/addons/mail/doc/index.rst deleted file mode 100644 index 033b1241af634beeb52dff12639bef0b39fcfabf..0000000000000000000000000000000000000000 --- a/addons/mail/doc/index.rst +++ /dev/null @@ -1,12 +0,0 @@ -Mail module documentation -========================= - -The Mail module holds all models and logic related to messages management. At low-level, it handles messages and offers an API to message queues for email sending. At an higher level, it provides the OpenChatter feature that is a thread management system inside OpenERP. A model that inherits from the mail module adds OpenChatter to its document. Its gives them the following capabilities : - - - messages management with a threaded design - - subscription mechanism tha allow users to follow/unfollow documents - - notifications mechanism; notifications are pushed to users to form a Wall page holding the latest pushed messages - -The mail module also comes with an email composition wizard, along with discussion groups. - -.. include:: index.rst.inc diff --git a/addons/mail/doc/index.rst.inc b/addons/mail/doc/index.rst.inc deleted file mode 100644 index 7f56666336be4c69655bbef10bd6310357339aea..0000000000000000000000000000000000000000 --- a/addons/mail/doc/index.rst.inc +++ /dev/null @@ -1,23 +0,0 @@ - -Mail Module documentation topics -''''''''''''''''''''''''''''''''' - -.. toctree:: - :maxdepth: 1 - - mail_message - mail_thread - mail_openchatter_howto - mail_needaction_howto - mail_partner - mail_state - mail_subtype - - -Changelog -''''''''' - -.. toctree:: - :maxdepth: 1 - - changelog.rst diff --git a/addons/mail/doc/mail_message.rst b/addons/mail/doc/mail_message.rst deleted file mode 100644 index de58b3bebf27b73a45d43f23183247678481883d..0000000000000000000000000000000000000000 --- a/addons/mail/doc/mail_message.rst +++ /dev/null @@ -1,111 +0,0 @@ -.. _mail_message: - -mail.message -============ - -Models -++++++ - -``mail.message`` is a class for holding the main attributes of a message object -(notification for system message, reciving email message or sent messages). It -could be reused as parent model for any database model, wall thread view, or -wizard screen that needs to hold a kind of message. - -All internal logic should be in a database-based model while this model -holds the basics of a message. For example, a wizard for writing emails -should inherit from this class. - - -.. versionchanged:: 7.0 - -ClientAction (ir.actions.client) -++++++++++++++++++++++++++++++++ - -.. code-block:: xml - - <record id="mail_message_action_inbox" model="ir.actions.client"> - <field name="name">Inbox</field> - <field name="tag">mail.wall</field> - <field name="res_model">mail.message</field> - <field name="context"></field> - <field name="params"></field> - <field name="help" type="html"></field> - </record> - - - ``tag`` : 'mail.wall', 'mail_thread' or 'mail.widget' - 'mail.wall' to have a display like the mail wall with threads, title, search view - (default value like a wall) - 'mail_thread' widget for field on standard view. (default value like a thread for - record, view on flat mode, no reply, no read/unread) - 'mail.widget' it's the root thread, used by 'mail.wall' and 'mail_thread' - - - ``help`` : Text HTML to display if there are no message - - ``context`` : insert 'default_model' and 'default_res_id' - - ``params`` : options for the widget - - ``domain`` : choose the domain of the messages - - ``truncate_limit`` : {Number} number of character to display before having a "show more" - link; note that the text will not be truncated if it does not have 110% of the parameter - - ``show_record_name`` : {Boolean} display the name and link of the related record - - ``show_reply_button`` : {Boolean} display the reply button - - ``show_read_unread_button`` : {Boolean} display the read/unread button - - ``display_indented_thread`` : {int [0,1]} number thread level to indented threads. - - ``show_compose_message`` : display the composer on top thread - - ``show_compact_message`` : display the compact message on the thread when the user clic - on this compact mode, the composer is open - - ``message_ids`` : {Array | False} List of ids to fetch by the root thread. If no value, - the root search the message by the domain - - ``compose_placeholder`` : Message to display on the textareaboxes. - - ``show_link`` : Display partner (authors, followers...) on link or not - - ``compose_as_todo`` : The root composer mark automatically the message as todo - - ``readonly`` : Read only mode, hide all action buttons and composer - -Fields -++++++ - - - ``type`` : usually 'email', 'comment', 'notification'. - Message type: email for external email message recieve, notification for system - message, comment for other messages such as user replies. - - ``subtype_id`` : - Subtype of the notification for system message. The users can followe a document - and choose the subtype of this document (eg: Create, Comment, Done). - You can defined new subtypes and choose his name, by agreement the id begin by "mt\_" on the model - "mail.message.subtype". - - ``partner_ids`` : - List of recipients, the recipients have this message in their personal mailboxe. - - ``notified_partner_ids`` : - Partners that have a notification pushing this message in their mailboxes. Usualy - it's an automatic system message for a model followed by users. - - ``notification_ids`` : - Technical field holding the message notifications. Use notified_partner_ids to access - notified partners. - - ``attachment_ids`` : - List of attachments - - ``parent_id`` : - It's the initial thread message. It's use for group message by thread in mailboxes. - - ``child_ids`` : - List of child message linked to the initial thread message. - - ``model`` : - Related Document Moded. It's use for group message by document. - - ``res_id`` : - Related Document ID. It's use for group message by document. - - ``record_name`` : - Functionnal field use to get the name of related document. - - ``vote_user_ids`` : - List of partner that vote/like this message. - - ``to_read`` : - Functional field to search for messages the current user has to read. The messages as - treat like a need action. When the user recive a message (to_read = True) this message - or action must be performed and mark done (to_read = False) - - ``favorite_user_ids`` : - Users that set this message in their favorites/todo list. - -Methods -+++++++ - - - ``message_read`` : - Value: ids, domain, message_unload_ids, thread_level, context, parent_id, limit - Return: List of dictinary of message. All message is sent with their parented messages and - sort by id. The messages that the user can read but not in his search, are group in - expandable messages. The expandable messages contain the domain to expand. - - ``check_access_rule`` : - Overwrite the initial message for this model. diff --git a/addons/mail/doc/mail_needaction_howto.rst b/addons/mail/doc/mail_needaction_howto.rst deleted file mode 100644 index 8cb41cee37488912d4b52c56902299e0c21ef141..0000000000000000000000000000000000000000 --- a/addons/mail/doc/mail_needaction_howto.rst +++ /dev/null @@ -1,15 +0,0 @@ - -How to use the need action mechanism in my addon -================================================= - -Make your module inheriting from ir.needaction_mixin class - -Feature integration -++++++++++++++++++++ - -:: - - class my_module(osv.osv): - _name = "my.module" - _description = "My Module" - _inherit = ['ir.needaction_mixin'] diff --git a/addons/mail/doc/mail_openchatter_howto.rst b/addons/mail/doc/mail_openchatter_howto.rst deleted file mode 100644 index f8b4fd989343594aaee8f5ebd222e3d3e6cd39ae..0000000000000000000000000000000000000000 --- a/addons/mail/doc/mail_openchatter_howto.rst +++ /dev/null @@ -1,112 +0,0 @@ - -How to use OpenChatter in my addon -=================================== - -Running example -++++++++++++++++ - -A small my_task model will be used as example to explain how to use the -OpenChatter feature. Being simple, it has only the following fields: - -- a name -- a task responsible -- a related project - -:: - - class my_task(osv.osv): - _name = "my.task" - _description = "My Task" - _columns = { - 'name': fields.char('Name', required=True, size=64), - 'user_id':fields.many2one('res.users', string='Responsible', - ondelete='cascade', required=True, select=1), - 'project_id':fields.many2one('project.project', string='Related project', - ondelete='cascade', required=True, select=1), - } - - -Two-lines feature integration -++++++++++++++++++++++++++++++ - -Make your object inherit from :class:`mail.thread`:: - - class my_task(osv.osv): - _name = "my.task" - _description = "My Task" - # inherit from mail.thread allows the use of OpenChatter - _inherit = ['mail.thread'] - -Use the thread viewer widget inside your form view by using the mail_thread -widget on the message_ids field inherited from :class:`mail.thread`:: - - <record model="ir.ui.view" id="my_task_form_view"> - <field name="name">My Task</field> - <field name="model">my.task</field> - <field name="priority">1</field> - <field name="arch" type="xml"> - <form> - [...] - <field name="message_ids" colspan="4" widget="mail_thread" nolabel="1"/> - </form> - </field> - </record> - -Send notifications -+++++++++++++++++++ - -When sending a notification is required in your workflow or business logic, -use :meth:`mail.thread.message_post`. It will automatically take care of -subscriptions and notifications. - -Here is a small example of sending a notification when the ``do_something`` -method is called:: - - def do_something(self, cr, uid, ids, context=None): - self.do_something_send_note(cr, uid, ids, context=context) - return res - - def do_something_send_note(self, cr, uid, ids, context=None): - self.message_post( - cr, uid, ids, _('My subject'), - _("has received a <b>notification</b> and is happy for it."), - context=context) - -Notifications guidelines -+++++++++++++++++++++++++ - -- avoid unnecessary content, swamping users with irrelevant messages will lead - to them ignoring all messages -- use short sentences -- do not include the document name, this is done by the thread widget -- use a simple and clean style - - - html tags are supported: use <b> or <em> mainly - - put key word(s) in bold - - avoid fancy styles that will break the OpenERP look and feel -- create a separate method for sending your notification, use clear method - names allowing quickly spotting notification code e.g. name notification - methods by using the original method name postfixed by ``_send_note`` - (``do_something`` -> ``do_something_send_note``) - -Subscription management -++++++++++++++++++++++++ - -The default subscription behavior is the following: - -* Subscriptions are set up by creating a :class:`mail.followers`` entry -* If a user creates or updates a document, they automatically follow it. The - corresponding :class:`mail.followers` entry is created -* If a user explicitly cliks on the document's :guilabel:`Follow` button, - they follow the document. The corresponding :class:`mail.followers` entry - is created -* If a user explicitly clicks on the document's :guilabel:`Unfollow` button, - they stop following the document. The corresponding :class:`mail.followers` - entry is deleted - -You should not directly manipulate :class:`mail.followers` entry, if you need -to override the default subscription behavior you should override the relevant -:class:`mail.thread` methods. - -.. TODO: wtf are the relevant mail.thread methds? message_get_subscribers - has disappeared and nothing looks like a replacement diff --git a/addons/mail/doc/mail_partner.rst b/addons/mail/doc/mail_partner.rst deleted file mode 100644 index a99246395d760e876e51b5f2fea2b29d346d0e7a..0000000000000000000000000000000000000000 --- a/addons/mail/doc/mail_partner.rst +++ /dev/null @@ -1,10 +0,0 @@ -What is shown -============== - - for every module which are related to partner show apporopriate message in the partner view like opportunities, sale orders and invoices. - - -How it is done -=============== - - _inherit = 'mail.thread' - - - Override def message_load_ids(self, cr, uid, ids, limit=100, offset=0, domain=[], ascent=False, root_ids=[], context=None) search by the partner diff --git a/addons/mail/doc/mail_state.rst b/addons/mail/doc/mail_state.rst deleted file mode 100644 index cf1874ffca155aeef5aafdd29e430805b854e5f6..0000000000000000000000000000000000000000 --- a/addons/mail/doc/mail_state.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. _mail_state: - -message_unread -============== - -``message_unread`` is a boolean field that states whether the document -has unread messages. In previous versions, some documents were going -back to ``pending`` state when receiving an email through the mail -gateway. Now the state related to messages differs from the state or -stage of the document itself. - -message_unread and need action mechanism -++++++++++++++++++++++++++++++++++++++++ - -The ``mail`` module introduces a default behavior for the need_action -mechanism [REF]. - -:: - - def get_needaction_user_ids(self, cr, uid, ids, context=None): - """ Returns the user_ids that have to perform an action - :return: dict { record_id: [user_ids], } - """ - result = super(ir_needaction_mixin, self).get_needaction_user_ids(cr, uid, ids, context=context) - for obj in self.browse(cr, uid, ids, context=context): - if obj.message_unread == False and obj.user_id: - result[obj.id].append(obj.user_id.id) - return result diff --git a/addons/mail/doc/mail_subtype.rst b/addons/mail/doc/mail_subtype.rst deleted file mode 100644 index e63b67936cd8069047284eec8700dbe8f7cd09d4..0000000000000000000000000000000000000000 --- a/addons/mail/doc/mail_subtype.rst +++ /dev/null @@ -1,70 +0,0 @@ -.. _mail_message_subtype: - -OpenChatter Pi (3.1415): Message Subtype -======================================== - - To overcome the problems of crowdy walls in system notification, We have added features of **Message Subtype** in mail. - -mail.message.subtype -++++++++++++++++++++ -``mail.message.subtype`` has following fields: - - - ``Name``: fields.char(' Message Subtype ', size = 128,required = True,help = 'Subtype Of Message'), - - ``model_ids``: fields.many2many('ir.model','mail_message_subtyp_message_rel','message_subtype_id', 'model_id', 'Model',help = "link some subtypes to several models, for projet/task"), - - ``default``: fields.boolean('Default', help = "When subscribing to the document, users will receive by default messages related to this subtype unless they uncheck this subtype"), - -mail.followers -++++++++++++++ - -In ``mail.followers`` we have added additional many2many field subtype ids : - - - ``subtype_ids``: fields.many2many('mail.message.subtype','mail_message_subtyp_rel','subscription_id', 'subtype_id', 'Subtype',help = "linking some subscription to several subtype for projet/task") - -mail.message -++++++++++++ - -In mail_message we have added additional field subtype_id which Indicates the Type of Message - - - ``subtype_id``: fields.many2one('mail.message.subtype', 'Subtype') - -mail.thread -+++++++++++ - - - In **message_post** method add the *subtype_id* field as parameter and set as default subtype 'Other'. - - def message_post(self, cr, uid, thread_id, body='', subject=False, msg_type='notification', parent_id=False, attachments=None, subtype='other', context=None, ``**kwargs``): - - - In **message_subscribe** method add the *subtype_ids* field as parameter.In this method if subtype_ids is None, it fatch the default true subtypes in mail.message.subtypes otherwise pass selected subtypes. - For update subtypes call **message_subscribe_udpate_subtypes** method - - def message_subscribe(self, cr, uid, ids, partner_ids,subtype_ids = None, context=None): - - - Add **message_subscribe_udpate_subtypes** method to update the subtype_ids in followers. - - def message_subscribe_udpate_subtypes(self, cr, uid, ids, user_id, subtype_ids,context=None): - followers_obj = self.pool.get('mail.followers') - followers_ids = followers_obj.search(cr, uid, [('res_model', '=', self._name), ('res_id', 'in', ids)]) - return followers_obj.write(cr, uid, followers_ids, {'subtype_ids': [(6, 0 , subtype_ids)]}, context = context) - -For Each Addons: -++++++++++++++++ - - - Add data of subtypes for each addons module. - - Add subtype field as parameter in **message_post** Method for each addons module. - -How It Works: -+++++++++++++ - - - In addons module when we Follow a Perticular document It display under the followers button. - - In sybtypes there are 3 default subtypes for each addons - 1) Email - 2) Comment - 3) Other - - In document display a default subtypes(which are true) related a perticular model_ids wise. - - Example:- - If I have open crm.lead, It display only subtypes of crm.lead - - - When we select subtype it update subtype_ids(which are checked) in mail.follower where match res_model & res_id of the current documents. - - when message created update subtype_id of that message in mail.message. - - In Feeds display only those notifications of documents which subtypes are selected diff --git a/addons/mail/doc/mail_thread.rst b/addons/mail/doc/mail_thread.rst deleted file mode 100644 index 9a59b7c967c78ff1abf3afcf91262c285304714e..0000000000000000000000000000000000000000 --- a/addons/mail/doc/mail_thread.rst +++ /dev/null @@ -1,53 +0,0 @@ -.. _mail_thread: - -=========================== -mail.thread and OpenChatter -=========================== - -API -=== - -Writing messages and notifications ----------------------------------- - -``message_append`` - -Creates a new mail.message through message_create. The new message is attached -to the current mail.thread, containing all the details passed as parameters. -All attachments will be attached to the thread record as well as to the -actual message. - -This method calls message_create that will handle management of subscription -and notifications, and effectively create the message. - -If ``email_from`` is not set or ``type`` not set as 'email', a note message -is created (comment or system notification), without the usual envelope -attributes (sender, recipients, etc.). - -mail.group -++++++++++ - -A mail_group is a collection of users sharing messages in a discussion group. Group users are users that follow the mail group, using the subscription/follow mechanism of OpenSocial. A mail group has nothing in common wih res.users.group. -Additional information on fields: - - - ``member_ids``: user member of the groups are calculated with ``message_get_subscribers`` method from mail.thread - - ``member_count``: calculated with member_ids - - ``is_subscriber``: calculated with member_ids - -res.users -+++++++++ - -OpenChatter updates the res.users class: - - it adds a preference about sending emails when receiving a notification - - make a new user follow itself automatically - - create a welcome message when creating a new user, to make his arrival in OpenERP more friendly - - -Misc magic context keys -+++++++++++++++++++++++ - - - mail_create_nosubscribe: when creating a new record that inherit from mail_thread, - do not subscribe the creator to the document followers - - mail_create_nolog: do not log creation message - - mail_notify_noemail: do not send email notifications; partners to notify are - notified, i.e. a mail_notification is created, but no email is actually send diff --git a/addons/mail/doc/tracked_field.rst b/addons/mail/doc/tracked_field.rst deleted file mode 100644 index 8d06ae1fa415f1e936db4b7ebb768f51b56fbeec..0000000000000000000000000000000000000000 --- a/addons/mail/doc/tracked_field.rst +++ /dev/null @@ -1,18 +0,0 @@ -Tracked fields ---------------- -Tracked fields is generic logging system for the changes applied to some fields in open chatter. - - In the definition of a fields. you have to simply add tracked=True. - - When changing one of the fields having tracked=True on saved automatically write a log in openchatter for the changes in fields. - -How it works: -+++++++++++++ - - You have to add tracked=True in field defination as following. - - ``'stage_id': fields.many2one('project.task.type', 'Stage',tracked=True),`` - - For developed this feature we override write method of mail_thread. - - And make one mako template which shows old field and updated field. - -Open chatter log: -+++++++++++++++++ - - After changing field follower can show log of tracked field in open chatter as followed. - - Updated Fields: - - Stage: Analysis -> Specification \ No newline at end of file