[MERGE] Merge with main branch
bzr revid: mra@tinyerp.com-20100423091528-r3d82e5p1gxtvzq2
This commit is contained in:
@@ -310,6 +310,7 @@ class base_action_rule_line(osv.osv):
|
||||
('create','Creation Date'),
|
||||
('action_last','Last Action Date'),
|
||||
('date','Date'),
|
||||
('deadline', 'Deadline'),
|
||||
], 'Trigger Date', size=16),
|
||||
'trg_date_range': fields.integer('Delay after trigger date',help="Delay After Trigger Date,\
|
||||
specifies you can put a negative number " \
|
||||
|
||||
+7
-3
@@ -620,7 +620,9 @@ class crm_case(osv.osv):
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.__history(cr, uid, cases, _('Close'))
|
||||
self.write(cr, uid, ids, {'state': 'done', 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
self.write(cr, uid, ids, {'state': 'done',
|
||||
'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'probability' : 100.0})
|
||||
#
|
||||
# We use the cache of cases to keep the old case state
|
||||
#
|
||||
@@ -681,7 +683,9 @@ class crm_case(osv.osv):
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.__history(cr, uid, cases, _('Cancel'))
|
||||
self.write(cr, uid, ids, {'state': 'cancel', 'active': True})
|
||||
self.write(cr, uid, ids, {'state': 'cancel',
|
||||
'active': True,
|
||||
'probability' : 0.0})
|
||||
self._action(cr, uid, cases, 'cancel')
|
||||
return True
|
||||
|
||||
@@ -764,7 +768,7 @@ class crm_case_history(osv.osv):
|
||||
_columns = {
|
||||
'description': fields.text('Description'),
|
||||
'note': fields.function(_note_get, method=True, string="Description", type="text"),
|
||||
'email_to': fields.char('Email TO', size=84),
|
||||
'email_to': fields.char('Email To', size=84),
|
||||
'email_from' : fields.char('Email From', size=84),
|
||||
'log_id': fields.many2one('crm.case.log','Log',ondelete='cascade'),
|
||||
'message_id': fields.char('Message Id', size=1024, readonly=True, help="Message Id on Email Server.", select=True),
|
||||
|
||||
@@ -144,7 +144,7 @@ class crm_cases(osv.osv):
|
||||
select = ids
|
||||
for case in self.browse(cr, uid, select):
|
||||
user_email = (case.user_id and case.user_id.address_id and case.user_id.address_id.email) or False
|
||||
res += [(user_email, case.email_from, case.email_cc, getattr(case,'priority') and case.priority or False)]
|
||||
res += [(user_email, case.email_from, case.email_cc or False, getattr(case,'priority') and case.priority or False)]
|
||||
if isinstance(ids, (str, int, long)):
|
||||
return len(res) and res[0] or False
|
||||
return res
|
||||
|
||||
@@ -27,7 +27,7 @@ import time
|
||||
import mx.DateTime
|
||||
|
||||
AVAILABLE_STATES = [
|
||||
('draft','New'),
|
||||
('draft','Draft'),
|
||||
('open','Open'),
|
||||
('cancel', 'Lost'),
|
||||
('done', 'Converted'),
|
||||
@@ -190,6 +190,7 @@ class crm_opportunity(osv.osv):
|
||||
_defaults = {
|
||||
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.opportunity', context=c),
|
||||
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'state' : 'draft',
|
||||
}
|
||||
|
||||
def action_makeMeeting(self, cr, uid, ids, context=None):
|
||||
|
||||
@@ -183,6 +183,7 @@ class email_parser(object):
|
||||
'email_cc': msg_cc,
|
||||
'user_id': False,
|
||||
'description': message['body'],
|
||||
'state' : 'draft',
|
||||
}
|
||||
data.update(self.partner_get(msg_from))
|
||||
|
||||
|
||||
@@ -1,43 +1,39 @@
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
<!-- CRM Email Add CC Form View -->
|
||||
<!-- CRM Email Add CC Form View -->
|
||||
|
||||
<record id="view_crm_email_add_cc_wizard" model="ir.ui.view">
|
||||
<record id="view_crm_email_add_cc_wizard" model="ir.ui.view">
|
||||
<field name="name">Add CC</field>
|
||||
<field name="model">crm.email.add.cc</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Add CC">
|
||||
<field name="name" width="200" />
|
||||
<field name="subject" width="200" />
|
||||
<separator colspan="4" string="" />
|
||||
<group col="2" colspan="2" attrs="{ 'invisible' : [('name','!=','user')]}">
|
||||
<field name="user_id"
|
||||
attrs="{ 'required' : [('name','=','user')]}"
|
||||
on_change="on_change_email(user_id, partner_id)" />
|
||||
</group>
|
||||
<newline />
|
||||
<group col="2" colspan="2"
|
||||
attrs="{ 'invisible' : [('name','!=','partner')]}">
|
||||
<field name="partner_id"
|
||||
attrs="{'required' : [('name','=','partner')]}"
|
||||
on_change="on_change_email(user_id, partner_id)" />
|
||||
</group>
|
||||
<newline />
|
||||
<field name="email" attrs="{ 'required' : [('name','=','email')]}" />
|
||||
<newline />
|
||||
<separator colspan="4" string="" />
|
||||
<group col="2" colspan="4">
|
||||
<label string="" />
|
||||
<button name="add_cc" string="_Add"
|
||||
type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
</form>
|
||||
<form string="Forward">
|
||||
<field name="name" width="200" />
|
||||
<field name="subject" colspan="4" />
|
||||
<separator colspan="4" string="" />
|
||||
<group col="2" colspan="2" attrs="{ 'invisible' : [('name','!=','user')]}">
|
||||
<field name="user_id"
|
||||
attrs="{ 'required' : [('name','=','user')]}"
|
||||
on_change="on_change_email(user_id, partner_id)" />
|
||||
</group>
|
||||
<newline />
|
||||
<group col="2" colspan="2"
|
||||
attrs="{ 'invisible' : [('name','!=','partner')]}">
|
||||
<field name="partner_id"
|
||||
attrs="{'required' : [('name','=','partner')]}"
|
||||
on_change="on_change_email(user_id, partner_id)" />
|
||||
</group>
|
||||
<field colspan="4" name="email" attrs="{ 'required' : [('name','=','email')]}" />
|
||||
<separator colspan="4" string="" />
|
||||
<group col="1" colspan="4">
|
||||
<button name="add_cc" string="_Forward" type="object" icon="gtk-ok" />
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- CRM Email Add CC Action -->
|
||||
<!-- CRM Email Add CC Action -->
|
||||
|
||||
<record id="action_view_crm_email_add_cc_wizard" model="ir.actions.act_window">
|
||||
<field name="name">Add CC</field>
|
||||
@@ -48,5 +44,5 @@
|
||||
<field name="target">new</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -51,74 +51,82 @@ class crm_lead2opportunity(osv.osv_memory):
|
||||
|
||||
@return : Dictionary value for created Opportunity form
|
||||
"""
|
||||
value = {}
|
||||
record_id = context and context.get('active_id', False) or False
|
||||
if record_id:
|
||||
lead_obj = self.pool.get('crm.lead')
|
||||
opp_obj = self. pool.get('crm.opportunity')
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
history_obj = self.pool.get('crm.case.history')
|
||||
model_obj = self.pool.get('ir.model')
|
||||
if not record_id:
|
||||
return {}
|
||||
|
||||
# Get Opportunity views
|
||||
result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_opportunities_filter')
|
||||
res = data_obj.read(cr, uid, result, ['res_id'])
|
||||
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_oppor')
|
||||
id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_oppor')
|
||||
if id2:
|
||||
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
|
||||
if id3:
|
||||
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
|
||||
lead_obj = self.pool.get('crm.lead')
|
||||
opp_obj = self. pool.get('crm.opportunity')
|
||||
data_obj = self.pool.get('ir.model.data')
|
||||
history_obj = self.pool.get('crm.case.history')
|
||||
model_obj = self.pool.get('ir.model')
|
||||
|
||||
lead = lead_obj.browse(cr, uid, record_id, context=context)
|
||||
model_ids = model_obj.search(cr, uid, [('model', '=', 'crm.opportunity')])
|
||||
# Get Opportunity views
|
||||
result = data_obj._get_id(cr, uid, 'crm', 'view_crm_case_opportunities_filter')
|
||||
res = data_obj.read(cr, uid, result, ['res_id'])
|
||||
id2 = data_obj._get_id(cr, uid, 'crm', 'crm_case_form_view_oppor')
|
||||
id3 = data_obj._get_id(cr, uid, 'crm', 'crm_case_tree_view_oppor')
|
||||
if id2:
|
||||
id2 = data_obj.browse(cr, uid, id2, context=context).res_id
|
||||
if id3:
|
||||
id3 = data_obj.browse(cr, uid, id3, context=context).res_id
|
||||
|
||||
lead = lead_obj.browse(cr, uid, record_id, context=context)
|
||||
model_ids = model_obj.search(cr, uid, [('model', '=', 'crm.opportunity')])
|
||||
|
||||
|
||||
for this in self.browse(cr, uid, ids, context=context):
|
||||
new_opportunity_id = opp_obj.create(cr, uid, {
|
||||
'name': this.name,
|
||||
'referred': this.referred,
|
||||
'planned_revenue': this.planned_revenue,
|
||||
'probability': this.probability,
|
||||
'partner_id': lead.partner_id and lead.partner_id.id or False ,
|
||||
'section_id': lead.section_id and lead.section_id.id or False,
|
||||
'description': lead.description or False,
|
||||
'date_deadline': lead.date_deadline or False,
|
||||
'partner_address_id': lead.partner_address_id and \
|
||||
lead.partner_address_id.id or False ,
|
||||
'priority': lead.priority,
|
||||
'phone': lead.phone,
|
||||
'email_from': lead.email_from
|
||||
})
|
||||
new_opportunity = opp_obj.browse(cr, uid, new_opportunity_id)
|
||||
vals = {
|
||||
'partner_id': this.partner_id and this.partner_id.id or False,
|
||||
}
|
||||
if not lead.opportunity_id:
|
||||
vals.update({'opportunity_id' : new_opportunity.id})
|
||||
for this in self.browse(cr, uid, ids, context=context):
|
||||
new_opportunity_id = opp_obj.create(cr, uid, {
|
||||
'name': this.name,
|
||||
'referred': lead.referred,
|
||||
'planned_revenue': this.planned_revenue,
|
||||
'probability': this.probability,
|
||||
'partner_id': lead.partner_id and lead.partner_id.id or False,
|
||||
'section_id': lead.section_id and lead.section_id.id or False,
|
||||
'description': lead.description or False,
|
||||
'date_deadline': lead.date_deadline or False,
|
||||
'partner_address_id': lead.partner_address_id and lead.partner_address_id.id or False ,
|
||||
'priority': lead.priority,
|
||||
'phone': lead.phone,
|
||||
'email_from': lead.email_from
|
||||
})
|
||||
new_opportunity = opp_obj.browse(cr, uid, new_opportunity_id)
|
||||
vals = {
|
||||
'partner_id': this.partner_id and this.partner_id.id or False,
|
||||
}
|
||||
if not lead.opportunity_id:
|
||||
vals.update({'opportunity_id' : new_opportunity.id})
|
||||
|
||||
lead_obj.write(cr, uid, [lead.id], vals)
|
||||
lead_obj.case_close(cr, uid, [lead.id])
|
||||
|
||||
# Copy lead history to opportunity
|
||||
for his_id in lead.history_line:
|
||||
history_ids = history_obj.copy(cr, uid, his_id.id, \
|
||||
{'model_id': model_ids[0], \
|
||||
'res_id': new_opportunity_id})
|
||||
model_opportunity_id = self.pool.get('ir.model').search(cr, uid, [('model', '=', 'crm.opportunity')], context=context)[0]
|
||||
|
||||
opp_obj.case_open(cr, uid, [new_opportunity_id])
|
||||
for model in ('crm.case.log', 'crm.case.history'):
|
||||
log_proxy = self.pool.get(model)
|
||||
log_ids = log_proxy.search(cr, uid, [('model_id.model', '=', 'crm.lead'),('res_id', '=', lead.id)], context=context)
|
||||
for log_id in log_ids:
|
||||
log_proxy.copy(cr, uid, log_id, {'model_id':model_opportunity_id}, context=context)
|
||||
|
||||
value = {
|
||||
'name': _('Opportunity'),
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form,tree',
|
||||
'res_model': 'crm.opportunity',
|
||||
'res_id': int(new_opportunity_id),
|
||||
'view_id': False,
|
||||
'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'search_view_id': res['res_id']
|
||||
}
|
||||
lead_obj.write(cr, uid, [lead.id], vals)
|
||||
lead_obj.case_close(cr, uid, [lead.id])
|
||||
|
||||
# Copy lead history to opportunity
|
||||
for his_id in lead.history_line:
|
||||
history_ids = history_obj.copy(cr, uid, his_id.id, \
|
||||
{'model_id': model_ids[0], \
|
||||
'res_id': new_opportunity_id})
|
||||
|
||||
#opp_obj.case_open(cr, uid, [new_opportunity_id])
|
||||
|
||||
value = {
|
||||
'name': _('Opportunity'),
|
||||
'view_type': 'form',
|
||||
'view_mode': 'form,tree',
|
||||
'res_model': 'crm.opportunity',
|
||||
'res_id': int(new_opportunity_id),
|
||||
'view_id': False,
|
||||
'views': [(id2, 'form'), (id3, 'tree'), (False, 'calendar'), (False, 'graph')],
|
||||
'type': 'ir.actions.act_window',
|
||||
'search_view_id': res['res_id']
|
||||
}
|
||||
return value
|
||||
|
||||
_columns = {
|
||||
|
||||
@@ -9,27 +9,26 @@
|
||||
<field name="model">crm.send.mail</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Send New Mail" col="4">
|
||||
<field name="email_to" />
|
||||
<field name="email_cc"/>
|
||||
<field name="subject" colspan="4"/>
|
||||
<group colspan="4" string="Extended Options" expand="1">
|
||||
<field name="email_from" />
|
||||
<newline/>
|
||||
<field name="doc1" filename="doc1_fname"/>
|
||||
<field name="doc1_fname"/>
|
||||
<field name="doc2" filename="doc2_fname" />
|
||||
<field name="doc2_fname"/>
|
||||
<field name="doc3" filename="doc3_fname" />
|
||||
<field name="doc3_fname"/>
|
||||
</group>
|
||||
<separator string="" colspan="4"/>
|
||||
<field name="text" nolabel="1" colspan="4"/>
|
||||
<newline/>
|
||||
<field name="state" />
|
||||
<separator string=" " colspan="4"/>
|
||||
<group colspan="4" col="3" >
|
||||
<label string=" " />
|
||||
<form string="Send New Mail" col="2">
|
||||
<field name="email_from" />
|
||||
<field name="email_to" />
|
||||
<field name="email_cc" />
|
||||
<field name="subject" />
|
||||
<notebook colspan="2">
|
||||
<page string="Message">
|
||||
<field name="text" nolabel="1" colspan="4"/>
|
||||
</page>
|
||||
<page string="Attachments">
|
||||
<field name="doc1" filename="doc1_fname"/>
|
||||
<field name="doc1_fname"/>
|
||||
<field name="doc2" filename="doc2_fname" />
|
||||
<field name="doc2_fname"/>
|
||||
<field name="doc3" filename="doc3_fname" />
|
||||
<field name="doc3_fname"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<group colspan="2" col="4" >
|
||||
<field name="state" />
|
||||
<button name="action_cancel" string="_Cancel" icon="gtk-cancel" special="cancel" />
|
||||
<button name="action_send" type="object" string="_Send" icon="gtk-go-forward" />
|
||||
</group>
|
||||
|
||||
@@ -74,9 +74,9 @@
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" select="1" readonly ="1"/>
|
||||
<button name="tender_in_progress" states="draft" string="Confirm" type="object" icon="gtk-apply" />
|
||||
<button name="tender_cancel" states="draft,in_progress" string="Cancel" type="object" icon="gtk-cancel" />
|
||||
<button name="tender_reset" states="done,cancel" string="Reset to Draft" type="object" icon="gtk-convert" />
|
||||
<button name="tender_done" states="in_progress" string="Done" type="object" icon="gtk-jump-to" />
|
||||
<button name="tender_done" states="in_progress" string="Done" type="object" icon="gtk-jump-to" />
|
||||
<button name="tender_cancel" states="draft,in_progress" string="Cancel" type="object" icon="gtk-cancel" />
|
||||
</group>
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user