<notebook colspan="4">
<page string="Sales Team">
<group col="4">
- <field name="reply_to"/>
- <field name="allow_unlink"/>
- <field name="change_responsible"/>
- <field name="member_ids"/>
+ <group>
+ <field name="reply_to"/>
+ </group>
+ <group>
+ <field name="change_responsible"/>
+ <field name="allow_unlink"/>
+ </group>
</group>
+ <group attrs="{'invisible': [('alias_domain', '=', False)]}">
+ <div name="alias_box">
+ <label for="alias_name"/>
- <field name="alias_name" class="oe_inline" required="0"/>@<field name="alias_domain" class="oe_inline"/>
++ <field name="alias_name" class="oe_inline"/>@<field name="alias_domain" class="oe_inline"/>
+ </div>
+ </group>
+ <separator string="Team Members"/>
+ <field name="member_ids"/>
</page>
<page string="Stages">
<separator string="Select Stages for this Sales Team"/>
</div>
</field>
<field name="company_id" version="7.0" position="after">
- <field name="alias_id" required="0" domain="[('alias_model_id','=','hr.applicant')]"/>
- <group colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}">
- <div name="alias_box">
- <label for="alias_name"/>
- <field name="alias_name" required="0" class="oe_inline"/>@
- <field name="alias_domain" class="oe_inline"/>
- </div>
- </group>
++ <div colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}">
++ <field name="alias_name" nolabel="1" class="oe_inline"/>@<field name="alias_domain" nolabel="1" class="oe_inline"/>
++ </div>
</field>
</field>
</record>
<field name="priority" eval="10"/>
<field name="arch" type="xml">
<form string="Group Form" version="7.0">
- <div style="padding: 8px">
- <div class="oe_right">
- <field name="photo" widget='image' on_change="onchange_photo(photo)"/>
- </div>
- <div class="oe_title">
- <div class="oe_edit_only">
- <label for="name"/>
- </div>
- <h1><field name="name"/></h1>
- <div class="oe_edit_only">
- <label for="responsible_id"/>
- </div>
- <field name="responsible_id" class="oe_inline"/>
- <div class="oe_edit_only">
- <label for="public"/>
- <field name="public" class="oe_inline"/>
- </div>
- <group colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}">
- <div name="alias_box">
- <label for="alias_name"/>
- <field name="alias_name" required="0" class="oe_inline"/>@<field name="alias_domain" class="oe_inline"/>
+ <sheet class="openerp_mail_group_sheet">
+ <group colspan="4" col="8">
+ <group colspan="1" col="2">
+ <field name="photo" widget='image' nolabel="1" on_change="onchange_photo(photo)"/>
+ </group>
+ <group colspan="7" col="6">
+ <div class="oe_edit_only">
+ <label for="name"/>
+ </div>
- <h2><field name="name" colspan="4"/></h2>
++ <div>
++ <h2><field name="name" colspan="4"/></h2>
++ <div name="alias_box" colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}" class="oe_edit_only">
++ <field name="alias_name" nolabel="1" class="oe_inline"/>@<field name="alias_domain" nolabel="1" class="oe_inline"/>
++ </div>
+ </div>
+ <newline/>
+ <group colspan="4" col="4">
+ <field name="description" colspan="4" nolabel="1"/>
- <div class="oe_edit_only">
- <field name="alias_id" required="0" domain="[('alias_model_id','=','mail.group')]" />
- </div>
+ </group>
+ <group colspan="2" col="2" class="oe_edit_only">
+ <field name="responsible_id" colspan="2"/>
+ <field name="public" colspan="2"/>
+ </group>
</group>
- <field name="description" colspan="4" nolabel="1"/>
- </div>
- </div>
- <footer>
- <field name="message_ids" colspan="4" widget="ThreadView" options='{"thread_level": 1}'/>
+ </group>
+ </sheet>
+ <footer class="openerp_mail_group_footer">
+ <field name="message_ids" widget="mail_thread"
+ options='{"thread_level": 1}'/>
</footer>
</form>
</field>
_inherit = 'base.config.settings'
_columns = {
-- 'alias_domain' : fields.char('Catch-all Mail Alias Domain', size=None,
++ 'alias_domain' : fields.char('Alias Domain', size=None,
help="If you have setup a catch-all mail domain redirected to "
"the OpenERP server, enter the domain name here."),
}
('none', 'Never')
], 'Receive Feeds by Email', required=True,
help="Choose in which case you want to receive an email when you receive new feeds."),
- 'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="cascade", required=True),
- 'alias_id': fields.many2one('mail.alias', 'Mail Alias', ondelete="restrict", required=True,
++ 'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="restrict", required=True,
+ help="This Unique Mail Box Alias of the User allows to manage the Seamless email communication between Mail Box and OpenERP,"
+ "This Alias MailBox manage the Users email communication."),
}
_defaults = {
</div>
</xpath>
<field name="active" position="after">
- <field name="alias_id" readonly="1" required="0"/>
+ <group colspan="2" attrs="{'invisible': [('alias_domain', '=', False)]}">
- <div name="alias_box">
- <label for="alias_name"/>
- <field name="alias_name" readonly="1" required="0" class="oe_inline"/>@<field name="alias_domain" class="oe_inline"/>
- </div>
++ <field name="alias_id" readonly="1"/><field name="alias_domain" invisible="1"/>
+ </group>
</field>
</data>
</field>
# ------------------------------------------------
# OpenChatter methods and notifications
# ------------------------------------------------
-
- def get_needaction_user_ids(self, cr, uid, ids, context=None):
- result = dict.fromkeys(ids)
- for obj in self.browse(cr, uid, ids, context=context):
- result[obj.id] = []
- if obj.state == 'draft' and obj.user_id:
- result[obj.id] = [obj.user_id.id]
- return result
def message_get_subscribers(self, cr, uid, ids, context=None):
- sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context);
+ """ Override to add responsible user. """
+ user_ids = super(project, self).message_get_subscribers(cr, uid, ids, context=context)
for obj in self.browse(cr, uid, ids, context=context):
- if obj.user_id:
- sub_ids.append(obj.user_id.id)
- return self.pool.get('res.users').read(cr, uid, sub_ids, context=context)
+ if obj.user_id and not obj.user_id.id in user_ids:
+ user_ids.append(obj.user_id.id)
+ return user_ids
def create(self, cr, uid, vals, context=None):
- model_pool = self.pool.get('ir.model.data')
alias_pool = self.pool.get('mail.alias')
- model, res_id = model_pool.get_object_reference( cr, uid, "project", vals.get('alias_model','model_project_task'))
- vals.update({'alias_name':"project",
- 'alias_model_id': res_id})
- alias_pool.create_unique_alias(cr, uid, vals, context=context)
+ if not vals.get('alias_id'):
+ name = vals.get('alias_name') or vals['name']
+ alias_id = alias_pool.create_unique_alias(cr, uid,
+ {'alias_name': "project_"+name,
+ 'alias_model_id': self._name}, context=context)
+ alias = alias_pool.read(cr, uid, alias_id, ['alias_name'],context)
+ vals.update({'alias_id': alias_id, 'alias_name': alias['alias_name']})
res = super( project, self).create(cr, uid, vals, context)
- record = self.read(cr, uid, res, context)
- alias_pool.write(cr, uid, [record['alias_id']], {'alias_defaults':{'project_id': record['id']}}, context)
+ alias_pool.write(cr, uid, [vals['alias_id']], {'alias_defaults':{'project_id': res}}, context)
self.create_send_note(cr, uid, [res], context=context)
return res
<field name="resource_calendar_id"/>
</group>
<group string="Miscellaneous" name="misc">
- <field name="company_id" select="1" groups="base.group_multi_company" widget="selection" required="1"/>
+ <field name="company_id" groups="base.group_multi_company" widget="selection" required="1"/>
<field name="priority"/>
<field name="active" attrs="{'invisible':[('state','in',['open', 'pending', 'template'])]}"/>
- <field name="currency_id" select="1" groups="base.group_multi_company" required="1"/>
+ <field name="currency_id" groups="base.group_multi_company" required="1"/>
</group>
+ <group string="Mailbox Alias" colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}">
+ <div>
+ <label for="alias_name"/>
+ <field name="alias_name" required="0" class="oe_inline"/>@
+ <field name="alias_domain" class="oe_inline"/>
+ </div>
+ <field name="alias_model" invisible="1"/>
+ </group>
</group>
</page>
<page string="Tasks Stages">
<div>Progress</div>
<div><t t-esc="Math.round(record.effective_hours.raw_value)"/> / <t t-esc="Math.round(record.planned_hours.raw_value)"/> <field name="company_uom_id"/></div>
</div>
-
+ <div name="alias_box" t-if="record.alias_domain.raw_value" class="oe_kanban_ellipsis">
- Mailbox Alias :
- <a t-attf-href="mailto:#{record.alias_id.raw_value}"><field name="alias_id"/></a>
++ <a t-attf-href="mailto:#{record.alias_id.value}"><field name="alias_id"/></a>
+ </div>
<div class="oe_kanban_project_avatars">
<t t-foreach="record.members.raw_value" t-as="member">
<img t-att-src="kanban_image('res.users', 'avatar', member)" t-att-data-member_id="member"/>