[FIX] Fixed portal_crm module structure and test. Improved code to invite sale order followers to follow the invoice object.
bzr revid: vta@openerp.com-20121116145407-6hbv0xboq3igvt0l
This commit is contained in:
parent
7541e11697
commit
20a50a1866
|
@ -2,7 +2,7 @@
|
|||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2010 Tiny SPRL (<http://tiny.be>).
|
||||
# Copyright (C) 2004-2011 OpenERP S.A (<http://www.openerp.com>).
|
||||
#
|
||||
# This program is free software: you can redistribute it and/or modify
|
||||
# it under the terms of the GNU Affero General Public License as
|
||||
|
@ -19,4 +19,4 @@
|
|||
#
|
||||
##############################################################################
|
||||
|
||||
import wizard
|
||||
import contact
|
||||
|
|
|
@ -31,7 +31,9 @@ This module adds a contact page (with a contact form creating a lead when submit
|
|||
""",
|
||||
'author': 'OpenERP SA',
|
||||
'depends': ['crm','portal'],
|
||||
'data': ['wizard/contact_view.xml'],
|
||||
'data': [
|
||||
'contact_view.xml',
|
||||
],
|
||||
'test': [
|
||||
'test/contact_form.yml',
|
||||
],
|
||||
|
|
|
@ -22,14 +22,12 @@
|
|||
from openerp.osv import osv, fields
|
||||
from openerp import SUPERUSER_ID
|
||||
|
||||
class crm_contact_us(osv.TransientModel):
|
||||
class contact(osv.TransientModel):
|
||||
""" Create new leads through the "contact us" form """
|
||||
_name = 'portal_crm.crm_contact_us'
|
||||
_name = 'contact'
|
||||
_description = 'Contact form for the portal'
|
||||
_inherit = 'crm.lead'
|
||||
_columns = {
|
||||
'subject' : fields.char('Subject'),
|
||||
'body' : fields.text('Content'),
|
||||
'company_ids' : fields.many2many('res.company', string='Companies', readonly=True),
|
||||
}
|
||||
|
||||
|
@ -85,7 +83,7 @@ class crm_contact_us(osv.TransientModel):
|
|||
Since they are potentially sensitive, we don't want any user to be able
|
||||
to read datas generated through this module. Therefore we'll write
|
||||
these information directly in the crm.lead table and leave blank
|
||||
entries in the portal_crm.crm_contact_us table.
|
||||
entries in the contact table.
|
||||
This is why the create() method is overwritten.
|
||||
"""
|
||||
crm_lead = self.pool.get('crm.lead')
|
||||
|
@ -98,17 +96,15 @@ class crm_contact_us(osv.TransientModel):
|
|||
Therefore, user SUPERUSER_ID will perform the creation.
|
||||
"""
|
||||
print values
|
||||
values['name'] = values['subject']
|
||||
values['contact_name'] = values['partner_name']
|
||||
values['description'] = values['body']
|
||||
crm_lead.create(cr, SUPERUSER_ID, dict(values,user_id=False), context)
|
||||
|
||||
"""
|
||||
Create an empty record in the portal_crm.crm_contact_us table.
|
||||
Create an empty record in the contact table.
|
||||
Since the 'name' field is mandatory, give an empty string to avoid an integrity error.
|
||||
"""
|
||||
empty_values = dict((k, False) if k != 'name' else (k, '') for k, v in values.iteritems())
|
||||
return super(crm_contact_us, self).create(cr, uid, empty_values)
|
||||
return super(contact, self).create(cr, uid, empty_values)
|
||||
|
||||
def submit(self, cr, uid, ids, context=None):
|
||||
""" When the form is submitted, redirect the user to a "Thanks" message """
|
|
@ -3,10 +3,10 @@
|
|||
<data>
|
||||
|
||||
<record id="contact_form_view" model="ir.ui.view">
|
||||
<field name="name">Wizard form view</field>
|
||||
<field name="model">portal_crm.crm_contact_us</field>
|
||||
<field name="name">Contact form</field>
|
||||
<field name="model">contact</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string="Contact wizard view" version="7.0">
|
||||
<form string="Contact form" version="7.0">
|
||||
<sheet>
|
||||
<h1>Contact us</h1>
|
||||
<group class="oe_portal_crm_contact">
|
||||
|
@ -15,8 +15,9 @@
|
|||
<field name="partner_name" invisible="1"/>
|
||||
<field name="email_from" invisible="1"/>
|
||||
<field name="phone" nolabel="1" placeholder="Your phone number..."/>
|
||||
<field name="subject" nolabel="1" placeholder="Subject..." colspan="6" required="1"/>
|
||||
<field name="body" nolabel="1" placeholder="Content..." colspan="6" required="1"/>
|
||||
<field name="name" nolabel="1" placeholder="Subject..." colspan="6"/>
|
||||
<field name="description" nolabel="1" placeholder="Content..." colspan="6"/>
|
||||
<!-- <field name="description" nolabel="1" placeholder="Content..." colspan="6" attrs="{'required': [(context.get('user_id'), 'in', 'portal.group_portal.users')]}"/> -->
|
||||
<button string="Submit" name="submit" type="object"/>
|
||||
</group>
|
||||
<group class="oe_portal_crm_office">
|
||||
|
@ -56,9 +57,6 @@
|
|||
</group>
|
||||
</group>
|
||||
</group>
|
||||
<!-- <group>
|
||||
<div class="oe_portal_crm_team"></div>
|
||||
</group> -->
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
|
@ -67,7 +65,7 @@
|
|||
<!-- wizard thanks message (shows after submitting the form) -->
|
||||
<record id="wizard_contact_form_view_thanks" model="ir.ui.view">
|
||||
<field name="name">Wizard thanks message</field>
|
||||
<field name="model">portal_crm.crm_contact_us</field>
|
||||
<field name="model">contact</field>
|
||||
<!-- give it a low priority to ensure this won't be the default view -->
|
||||
<field name="priority">99</field>
|
||||
<field name="arch" type="xml">
|
||||
|
@ -85,7 +83,7 @@
|
|||
|
||||
<record id="action_contact_us" model="ir.actions.act_window">
|
||||
<field name="name">Contact Us</field>
|
||||
<field name="res_model">portal_crm.crm_contact_us</field>
|
||||
<field name="res_model">contact</field>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">inline</field>
|
||||
</record>
|
|
@ -6,7 +6,7 @@
|
|||
-
|
||||
As a portal user, I fill in the contact form and submit it.
|
||||
-
|
||||
!record {model: portal_crm.crm_contact_us, id: contact_us_01}:
|
||||
!record {model: contact, id: contact_us_01}:
|
||||
name: 'Need information about your contact form module'
|
||||
partner_name: 'Mr. John Doe'
|
||||
email_from: 'mister@john.doe'
|
||||
|
@ -15,7 +15,7 @@
|
|||
-
|
||||
For security reasons, the wizard values is empty.
|
||||
-
|
||||
!python {model: portal_crm.crm_contact_us}: |
|
||||
!python {model: contact}: |
|
||||
obj = self.browse(cr, uid, ref("contact_us_01"))
|
||||
assert not(obj.name or obj.partner_name or obj.email_from or obj.phone or obj.description), 'All the wizard\'s values are not empty'
|
||||
-
|
||||
|
|
|
@ -1,22 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2004-2011 OpenERP S.A (<http://www.openerp.com>).
|
||||
#
|
||||
# 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 contact
|
|
@ -46,25 +46,24 @@ class mail_mail(osv.osv):
|
|||
group_obj = self.pool.get('res.groups')
|
||||
|
||||
document = inv_obj.browse(cr, uid, mail.res_id, context=context)
|
||||
|
||||
# partners = partner_obj.read(cr, uid, partner_ids, ['user_ids'], context=context)
|
||||
# for partner in partners:
|
||||
# users = user_obj.read(cr, uid, partner['user_ids'], ['groups_id'], context=context)
|
||||
# for user in users:
|
||||
# for group in group_obj.browse(cr, uid, user['groups_id'], context=context):
|
||||
# if group.is_portal == True:
|
||||
# print 'Hello'
|
||||
# inv_obj.message_subscribe(cr, uid, [mail.res_id], partner_ids, context=context)
|
||||
# mail_values = {
|
||||
# 'email_from': 'vta@openerp.com',
|
||||
# 'email_to': 'falcobolger@gmail.com',
|
||||
# 'subject': 'Invitation to follow %s' % document.name_get()[0][1],
|
||||
# 'body_html': 'You have been invited to follow %s' % document.name_get()[0][1],
|
||||
# 'auto_delete': True,
|
||||
# }
|
||||
# mail_id = self.create(cr, uid, mail_values, context=context)
|
||||
# print mail_values
|
||||
# self.send(cr, uid, [mail_id], recipient_ids=[partner['id']], context=context)
|
||||
group_ids = []
|
||||
for partner in partner_obj.browse(cr, uid, partner_ids, context=context):
|
||||
for user_id in partner.user_ids:
|
||||
group_ids += user_id.groups_id
|
||||
if group_ids:
|
||||
for group_id in group_ids:
|
||||
if group_id.is_portal == True:
|
||||
inv_obj.message_subscribe(cr, uid, [mail.res_id], partner_ids, context=context)
|
||||
mail_values = {
|
||||
'email_from': 'vta@openerp.com',
|
||||
'email_to': 'falcobolger@gmail.com',
|
||||
'subject': 'Invitation to follow %s' % document.name_get()[0][1],
|
||||
'body_html': 'You have been invited to follow %s' % document.name_get()[0][1],
|
||||
'auto_delete': True,
|
||||
}
|
||||
mail_id = self.create(cr, uid, mail_values, context=context)
|
||||
self.send(cr, uid, [mail_id], recipient_ids=[partner['id']], context=context)
|
||||
group_ids = []
|
||||
|
||||
return super(mail_mail, self)._postprocess_sent_message(cr, uid, mail=mail, context=context)
|
||||
|
||||
|
|
Loading…
Reference in New Issue