Browse Source
[IMP] Give users the possibility to view emails
[IMP] Give users the possibility to view emails
[IMP] Add 'action_needed' flag to mails - default on for new messages receivedpull/78/head
6 changed files with 220 additions and 0 deletions
-
22mail_client_view/__init__.py
-
48mail_client_view/__openerp__.py
-
1mail_client_view/model/__init__.py
-
40mail_client_view/model/mail_message.py
-
11mail_client_view/view/mail_user_menu.xml
-
98mail_client_view/view/mail_user_view.xml
@ -0,0 +1,22 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# OpenERP, Open Source Management Solution |
|||
# This module copyright (C) 2013 Therp BV (<http://therp.nl>) |
|||
# All Rights Reserved |
|||
# |
|||
# This program is free software: you can redistribute it and/or modify |
|||
# it under the terms of the GNU Affero General Public License as |
|||
# published by the Free Software Foundation, either version 3 of the |
|||
# License, or (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU Affero General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU Affero General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
import model |
@ -0,0 +1,48 @@ |
|||
# -*- encoding: utf-8 -*- |
|||
############################################################################## |
|||
# |
|||
# OpenERP, Open Source Management Solution |
|||
# This module copyright (C) 2013 Therp BV (<http://therp.nl>) |
|||
# All Rights Reserved |
|||
# |
|||
# This program is free software: you can redistribute it and/or modify |
|||
# it under the terms of the GNU Affero General Public License as |
|||
# published by the Free Software Foundation, either version 3 of the |
|||
# License, or (at your option) any later version. |
|||
# |
|||
# This program is distributed in the hope that it will be useful, |
|||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|||
# GNU Affero General Public License for more details. |
|||
# |
|||
# You should have received a copy of the GNU Affero General Public License |
|||
# along with this program. If not, see <http://www.gnu.org/licenses/>. |
|||
# |
|||
############################################################################## |
|||
|
|||
{ |
|||
'name': 'User email access', |
|||
'version': '6.1.r0025', |
|||
'description': ''' |
|||
Adds a menu to the customer address book that enables ordinary users to |
|||
look at customer or other mail. Also adds an 'action needed' boolean to |
|||
mail messages, to quickly select all mails that still have to be acted on. |
|||
|
|||
The action_needed flag will be shown to users in a tree view as a red |
|||
circle, no action needed will be green. In a form users either have the |
|||
button 'confirm action done' (if action needed), or the button 'set |
|||
action needed. |
|||
''', |
|||
'author': 'Therp BV', |
|||
'website': 'http://www.therp.nl', |
|||
'category': 'Tools', |
|||
'depends': ['mail'], |
|||
'data': [ |
|||
'view/mail_user_menu.xml', |
|||
'view/mail_user_view.xml', |
|||
], |
|||
'js': [], |
|||
'installable': True, |
|||
'active': False, |
|||
'certificate': '', |
|||
} |
@ -0,0 +1 @@ |
|||
import mail_message |
@ -0,0 +1,40 @@ |
|||
# -*- coding: UTF-8 -*- |
|||
''' |
|||
Created on 16 apr. 2013 |
|||
|
|||
@author: Therp BV |
|||
|
|||
http://www.therp.nl |
|||
''' |
|||
from openerp.osv import osv |
|||
from openerp.osv import fields |
|||
|
|||
|
|||
class mail_message(osv.osv): |
|||
'''Extend mail_message with action_needed flag''' |
|||
_inherit = 'mail.message' |
|||
|
|||
def set_action_needed_off(self, cr, user, ids, args): |
|||
self.write(cr, user, ids, {'action_needed': False}) |
|||
return True |
|||
|
|||
def set_action_needed_on(self, cr, user, ids, args): |
|||
self.write(cr, user, ids, {'action_needed': True, }) |
|||
return True |
|||
|
|||
def create(self, cr, user, vals, context=None): |
|||
# Set newly received messages as needing action, unless an |
|||
# explicit value for action_needed has been passed. |
|||
if ((not 'action_needed' in vals) |
|||
and ('state' in vals) |
|||
and (vals['state'] == 'received')): |
|||
vals['action_needed'] = True |
|||
mm_id = super(mail_message, self).create(cr, user, vals, context) |
|||
return mm_id |
|||
|
|||
_columns = { |
|||
'action_needed': fields.boolean('Action needed', |
|||
help='Action needed is True whenever a new mail is received, or' |
|||
' when a user flags a message as needing attention.' |
|||
), |
|||
} |
@ -0,0 +1,11 @@ |
|||
<?xml version="1.0"?> |
|||
<openerp> |
|||
<data> |
|||
<menuitem |
|||
id="mail_user_menu" |
|||
name="Messages" |
|||
parent="base.menu_address_book" |
|||
action="mail.action_view_mail_message" |
|||
sequence="80" /> |
|||
</data> |
|||
</openerp> |
@ -0,0 +1,98 @@ |
|||
<?xml version="1.0" encoding="utf-8"?> |
|||
<openerp> |
|||
<data> |
|||
<record |
|||
id="view_mail_action_needed_search" |
|||
model="ir.ui.view"> |
|||
<field name="name">view_mail_action_needed_search</field> |
|||
<field name="model">mail.message</field> |
|||
<field |
|||
name="inherit_id" |
|||
ref="mail.view_email_message_search" /> |
|||
<field |
|||
name="arch" |
|||
type="xml"> |
|||
<data> |
|||
<field |
|||
name="email_from" |
|||
position="before"> |
|||
<separator orientation="vertical"/> |
|||
<filter |
|||
icon="terp-check" |
|||
name="action" |
|||
string="Action needed" |
|||
domain="[('action_needed','=',True)]" /> |
|||
</field> |
|||
</data> |
|||
</field> |
|||
</record> |
|||
<record |
|||
id="view_mail_action_needed_tree" |
|||
model="ir.ui.view"> |
|||
<field name="name">view_mail_action_needed_tree</field> |
|||
<field name="model">mail.message</field> |
|||
<field |
|||
name="inherit_id" |
|||
ref="mail.view_email_message_tree" /> |
|||
<field |
|||
name="arch" |
|||
type="xml"> |
|||
<data> |
|||
<field |
|||
name="state" |
|||
position="after"> |
|||
<field |
|||
name="action_needed" |
|||
invisible="True" /> |
|||
<button |
|||
name="set_action_needed_off" |
|||
attrs="{'invisible': [('action_needed','=',False)]}" |
|||
string="confirm action done" |
|||
icon="gtk-no" |
|||
type="object" /> |
|||
<button |
|||
name="set_action_needed_on" |
|||
attrs="{'invisible': [('action_needed','=',True)]}" |
|||
string="set action needed" |
|||
icon="gtk-yes" |
|||
type="object" /> |
|||
</field> |
|||
</data> |
|||
</field> |
|||
</record> |
|||
<record |
|||
id="view_mail_action_needed_form" |
|||
model="ir.ui.view"> |
|||
<field name="name">view_mail_action_needed_form</field> |
|||
<field name="model">mail.message</field> |
|||
<field |
|||
name="inherit_id" |
|||
ref="mail.view_email_message_form" /> |
|||
<field |
|||
name="arch" |
|||
type="xml"> |
|||
<data> |
|||
<button |
|||
name="%(mail.action_email_compose_message_wizard)d" |
|||
position="after"> |
|||
<field |
|||
name="action_needed" |
|||
invisible="True" /> |
|||
<button |
|||
name="set_action_needed_off" |
|||
attrs="{'invisible': [('action_needed','=',False)]}" |
|||
string="confirm action done" |
|||
icon="gtk-no" |
|||
type="object" /> |
|||
<button |
|||
name="set_action_needed_on" |
|||
attrs="{'invisible': [('action_needed','=',True)]}" |
|||
string="set action needed" |
|||
icon="gtk-yes" |
|||
type="object" /> |
|||
</button> |
|||
</data> |
|||
</field> |
|||
</record> |
|||
</data> |
|||
</openerp> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue