[MERGE]: Merge with lp:~daniel-watkins-credativ/openobject-addons/crm_fix, Added new wizard to add notes in communication history
bzr revid: rpa@tinyerp.com-20100907124825-xpr9j26dux224prj
This commit is contained in:
@@ -84,6 +84,7 @@ Create dashboard for CRM that includes:
|
||||
'wizard/crm_partner_to_opportunity_view.xml',
|
||||
|
||||
'wizard/crm_send_email_view.xml',
|
||||
'wizard/crm_add_note_view.xml',
|
||||
'wizard/crm_forward_to_partner_view.xml',
|
||||
'wizard/crm_custom_create_menu_view.xml',
|
||||
'wizard/crm_merge_opportunities_view.xml',
|
||||
|
||||
@@ -211,11 +211,15 @@
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="2" string="Send New Email"
|
||||
<button string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.lead'}"
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button colspan="2" string="Forward"
|
||||
<button string="Add New Note"
|
||||
name="%(crm.action_crm_add_note)d"
|
||||
context="{'model': 'crm.lead' }"
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button string="Forward"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="terp-mail-forward" type="action" />
|
||||
</page>
|
||||
|
||||
@@ -168,11 +168,15 @@
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="2" string="Send New Email"
|
||||
<button string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.lead'}"
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button colspan="2" string="Forward"
|
||||
<button string="Add New Note"
|
||||
name="%(crm.action_crm_add_note)d"
|
||||
context="{'model': 'crm.lead' }"
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button string="Forward"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="terp-mail-forward" type="action" />
|
||||
</page>
|
||||
|
||||
@@ -568,11 +568,15 @@
|
||||
</notebook>
|
||||
</form>
|
||||
</field>
|
||||
<button colspan="2" string="Send New Email"
|
||||
<button string="Send New Email"
|
||||
name="%(crm.action_crm_send_mail)d"
|
||||
context="{'mail':'new', 'model': 'crm.case.custom'}"
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button colspan="2" string="Forward to Partner"
|
||||
<button string="Add New Note"
|
||||
name="%(crm.action_crm_add_note)d"
|
||||
context="{'model': 'crm.lead' }"
|
||||
icon="terp-mail-message-new" type="action" />
|
||||
<button string="Forward to Partner"
|
||||
name="%(crm_lead_forward_to_partner_act)d"
|
||||
icon="terp-mail-forward" type="action" />
|
||||
</page>
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
import crm_add_note
|
||||
import crm_send_email
|
||||
import crm_forward_to_partner
|
||||
|
||||
|
||||
@@ -0,0 +1,58 @@
|
||||
from crm import crm
|
||||
from osv import fields, osv
|
||||
from tools.translate import _
|
||||
|
||||
|
||||
AVAILABLE_STATES = crm.AVAILABLE_STATES + [('unchanged', 'Unchanged')]
|
||||
|
||||
|
||||
class crm_add_note(osv.osv_memory):
|
||||
"""Adds a new note to the case."""
|
||||
_name = 'crm.add.note'
|
||||
_description = "Add New Note"
|
||||
|
||||
_columns = {
|
||||
'body': fields.text('Note Body', required=True),
|
||||
'state': fields.selection(AVAILABLE_STATES, string='Set New State To',
|
||||
required=True),
|
||||
}
|
||||
|
||||
def action_add(self, cr, uid, ids, context=None):
|
||||
if not context:
|
||||
context = {}
|
||||
|
||||
if not context.get('active_model'):
|
||||
raise osv.except_osv(_('Error'), _('Can not add note!'))
|
||||
|
||||
model = context.get('active_model')
|
||||
case_pool = self.pool.get(model)
|
||||
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
case_list = case_pool.browse(cr, uid, context['active_ids'],
|
||||
context=context)
|
||||
case = case_list[0]
|
||||
user_obj = self.pool.get('res.users')
|
||||
user_name = user_obj.browse(cr, uid, [uid], context=context)[0].name
|
||||
case_pool.history(cr, uid, [case], _("Note"), history=True,
|
||||
details=obj.body, email_from=user_name)
|
||||
|
||||
if obj.state == 'unchanged':
|
||||
pass
|
||||
elif obj.state == 'done':
|
||||
case_pool.case_close(cr, uid, [case.id])
|
||||
elif obj.state == 'draft':
|
||||
case_pool.case_reset(cr, uid, [case.id])
|
||||
elif obj.state in ['cancel', 'open', 'pending']:
|
||||
act = 'case_' + obj.state
|
||||
getattr(case_pool, act)(cr, uid, [case.id])
|
||||
|
||||
return {}
|
||||
|
||||
def default_get(self, cr, uid, fields, context=None):
|
||||
"""
|
||||
This function gets default values
|
||||
"""
|
||||
return {'state': u'unchanged'}
|
||||
|
||||
|
||||
crm_add_note()
|
||||
@@ -0,0 +1,37 @@
|
||||
<?xml version="1.0"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<!-- Add New Note view -->
|
||||
|
||||
<record model="ir.ui.view" id="crm_add_new_note_view">
|
||||
<field name="name">crm.new.add.note.form</field>
|
||||
<field name="model">crm.add.note</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Add Note" col="4">
|
||||
<field name="body" nolabel="1" colspan="4" default_focus="1"/>
|
||||
<separator string="" colspan="6"/>
|
||||
<group colspan="6" col="4" >
|
||||
<field name="state" />
|
||||
<button string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_add" type="object" string="_Add" icon="gtk-go-forward" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Add New Note action -->
|
||||
|
||||
<record model="ir.actions.act_window" id="action_crm_add_note">
|
||||
<field name="name">Add Note</field>
|
||||
<field name="res_model">crm.add.note</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="view_id" ref="crm_add_new_note_view"/>
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -28,6 +28,10 @@ import itertools
|
||||
import tools
|
||||
import re
|
||||
|
||||
|
||||
AVAILABLE_STATES = crm.AVAILABLE_STATES + [('unchanged', 'Unchanged')]
|
||||
|
||||
|
||||
class crm_send_new_email_attachment(osv.osv_memory):
|
||||
_name = 'crm.send.mail.attachment'
|
||||
|
||||
@@ -51,7 +55,7 @@ class crm_send_new_email(osv.osv_memory):
|
||||
'email_cc' : fields.char('CC', size=512, help="These addresses will receive a copy of this email. To modify the permanent CC list, edit the global CC field of this case"),
|
||||
'subject': fields.char('Subject', size=512, required=True),
|
||||
'body': fields.text('Message Body', required=True),
|
||||
'state': fields.selection(crm.AVAILABLE_STATES, string='Set New State To', required=True),
|
||||
'state': fields.selection(AVAILABLE_STATES, string='Set New State To', required=True),
|
||||
'attachment_ids' : fields.one2many('crm.send.mail.attachment', 'wizard_id'),
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user