[ADD] email_template_template
parent
29812578b7
commit
ce4fa01654
|
@ -0,0 +1 @@
|
|||
import model
|
|
@ -0,0 +1,52 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2013 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# 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": "Templates for email templates",
|
||||
"version": "1.0",
|
||||
"author": "Therp BV",
|
||||
"category": 'Tools',
|
||||
'complexity': "expert",
|
||||
"description": """If an organisation's email layout is a bit more
|
||||
complicated, changes can be tedious when having to do that across several email
|
||||
templates. So this addon allows to define templates for mails that is referenced
|
||||
by other mail templates.
|
||||
This way we can put the layout parts into the template template and only content
|
||||
in the other templates. Changing the layout is then only a matter of changing
|
||||
the template template.
|
||||
|
||||
|
||||
Usage:
|
||||
Create an email template with the related document model 'Email Templates'. Now
|
||||
most of the fields gray out and you can only edit body_text and body_html. Be
|
||||
sure to use ${body_text} and ${body_html} respectively in your template
|
||||
template.
|
||||
|
||||
Then select this newly created template templates in one of your actual
|
||||
templates.""",
|
||||
'website': 'http://therp.nl',
|
||||
'images': [],
|
||||
'depends': ['email_template'],
|
||||
'data': [
|
||||
'view/email_template.xml',
|
||||
],
|
||||
"license": 'AGPL-3',
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
|
@ -0,0 +1,21 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2013 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# 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 email_template
|
|
@ -0,0 +1,61 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# This module copyright (C) 2013 Therp BV (<http://therp.nl>).
|
||||
#
|
||||
# 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/>.
|
||||
#
|
||||
##############################################################################
|
||||
from openerp.osv.orm import Model
|
||||
from openerp.osv import fields
|
||||
from openerp.addons.email_template.email_template import mako_template_env
|
||||
|
||||
|
||||
class email_template(Model):
|
||||
_inherit = 'email.template'
|
||||
|
||||
def _get_is_template_template(self, cr, uid, ids, fields_name, arg,
|
||||
context=None):
|
||||
cr.execute('''select
|
||||
id, (select count(*) > 0 from email_template e
|
||||
where email_template_id=email_template.id)
|
||||
from email_template
|
||||
where id in %s''', (tuple(ids),))
|
||||
return dict(cr.fetchall())
|
||||
|
||||
_columns = {
|
||||
'email_template_id': fields.many2one('email.template', 'Template'),
|
||||
'is_template_template': fields.function(
|
||||
_get_is_template_template, type='boolean',
|
||||
string='Is a template template'),
|
||||
}
|
||||
|
||||
def get_email_template(self, cr, uid, template_id=False, record_id=None,
|
||||
context=None):
|
||||
this = super(email_template, self).get_email_template(
|
||||
cr, uid, template_id, record_id, context)
|
||||
|
||||
if this.email_template_id and not this.is_template_template:
|
||||
for field in ['body_html']:
|
||||
if this[field] and this.email_template_id[field]:
|
||||
try:
|
||||
mako_template_env.autoescape = False
|
||||
this._data[this.id][field] = self.render_template(
|
||||
cr, uid, this.email_template_id[field],
|
||||
this.email_template_id.model,
|
||||
this.id, this._context)
|
||||
finally:
|
||||
mako_template_env.autoescape = True
|
||||
return this
|
|
@ -0,0 +1,71 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="email_template_form" model="ir.ui.view">
|
||||
<field name="name">email.template.form</field>
|
||||
<field name="model">email.template</field>
|
||||
<field name="inherit_id" ref="email_template.email_template_form" />
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<data>
|
||||
<field name="name" position="after">
|
||||
<field name="is_template_template" invisible="1" />
|
||||
<field name="email_template_id" domain="[('email_template_id', '=', False), ('model_id', '=', %(email_template.model_email_template)s)]"
|
||||
attrs="{'readonly': [('is_template_template','=',True), ('email_template_id','=',False)]}"
|
||||
context="{'default_model_id': %(email_template.model_email_template)s}"
|
||||
/>
|
||||
|
||||
</field>
|
||||
<field name="model_id" position="attributes">
|
||||
<attribute name="attrs">
|
||||
{'readonly': [('is_template_template','=',True)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="email_from" position="attributes">
|
||||
<attribute name="required">0</attribute>
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="email_to" position="attributes">
|
||||
<attribute name="required">0</attribute>
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="email_cc" position="attributes">
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="email_recipients" position="attributes">
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="reply_to" position="attributes">
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="lang" position="attributes">
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="user_signature" position="attributes">
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
<field name="subject" position="attributes">
|
||||
<attribute name="required">0</attribute>
|
||||
<attribute name="attrs">
|
||||
{'readonly': ['|',('is_template_template','=',True),('model_id', '=', %(email_template.model_email_template)s)]}
|
||||
</attribute>
|
||||
</field>
|
||||
</data>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
Loading…
Reference in New Issue