[IMP] merge web_editor split

The web editor is split from website and moved to web_editor allowing it to be used without installing website.
This commit is contained in:
Christophe Matthieu
2015-07-10 17:20:33 +02:00
364 changed files with 15015 additions and 13422 deletions
@@ -4,7 +4,7 @@ odoo.define('account.move_line_quickadd', function (require) {
var core = require('web.core');
var data = require('web.data');
var ListView = require('web.ListView');
var Model = require('web.Model');
var Model = require('web.DataModel');
var QWeb = core.qweb;
@@ -2,7 +2,7 @@ odoo.define('barcodes.BarcodeParser', function (require) {
"use strict";
var Class = require('web.Class');
var Model = require('web.Model');
var Model = require('web.DataModel');
// The BarcodeParser is used to detect what is the category
// of a barcode (product, partner, ...) and extract an encoded value
+1 -1
View File
@@ -3,7 +3,7 @@ odoo.define('base_import.import', function (require) {
var core = require('web.core');
var ListView = require('web.ListView');
var Model = require('web.Model');
var Model = require('web.DataModel');
var session = require('web.session');
var Widget = require('web.Widget');
+1 -1
View File
@@ -7,7 +7,7 @@ var data = require('web.data');
var Dialog = require('web.Dialog');
var FavoriteMenu = require('web.FavoriteMenu');
var form_common = require('web.form_common');
var Model = require('web.Model');
var Model = require('web.DataModel');
var pyeval = require('web.pyeval');
var ViewManager = require('web.ViewManager');
@@ -4,7 +4,7 @@ odoo.define('base_calendar.base_calendar', function (require) {
var core = require('web.core');
var data = require('web.data');
var form_common = require('web.form_common');
var Model = require('web.Model');
var Model = require('web.DataModel');
var WebClient = require('web.WebClient');
var CalendarView = require('web_calendar.CalendarView');
var widgets = require('web_calendar.widgets');
@@ -26,7 +26,7 @@
</field>
<notebook colspan="4" groups="base.group_no_one">
<page string="Email Template">
<field name="body" readonly="1"/>
<field name="body" readonly="1" options="{'style-inline': true}"/>
</page>
</notebook>
<footer>
@@ -4,7 +4,7 @@ odoo.define('gamification.gamification', function(require) {
var mail = require('mail.mail');
var core = require('web.core');
var form_common = require('web.form_common');
var Model = require('web.Model');
var Model = require('web.DataModel');
var session = require('web.session');
var Widget = require('web.Widget');
+1 -1
View File
@@ -2,7 +2,7 @@ odoo.define('google_drive.google_drive', function (require) {
"use strict";
var data = require('web.data');
var Model = require('web.Model');
var Model = require('web.DataModel');
var Sidebar = require('web.Sidebar');
Sidebar.include({
@@ -4,7 +4,7 @@ odoo.define('hr_attendance.hr_attendance', function(require) {
var core = require('web.core');
var data = require('web.data');
var formats = require('web.formats');
var Model = require('web.Model');
var Model = require('web.DataModel');
var SystrayMenu = require('web.SystrayMenu');
var time = require('web.time');
var Widget = require('web.Widget');
@@ -5,7 +5,7 @@ var core = require('web.core');
var data = require('web.data');
var form_common = require('web.form_common');
var formats = require('web.formats');
var Model = require('web.Model');
var Model = require('web.DataModel');
var time = require('web.time');
var utils = require('web.utils');
@@ -6,7 +6,7 @@ odoo.define('im_chat.im_chat', function (require) {
var bus = require('bus.bus');
var core = require('web.core');
var data = require('web.data');
var Model = require('web.Model');
var Model = require('web.DataModel');
var session = require('web.session');
var SystrayMenu = require('web.SystrayMenu');
var utils = require('web.utils');
@@ -155,7 +155,6 @@
<t t-raw="rule"/>
);
});
odoo.init();
});
</t>
</template>
+3
View File
@@ -0,0 +1,3 @@
# -*- coding: utf-8 -*-
import models
import controller
+15
View File
@@ -0,0 +1,15 @@
{
'name': 'Link Tracker',
'category': 'Hidden',
'description': """
Create short and trackable URLs.
=====================================================
""",
'version': '1.0',
'depends': ['marketing', 'utm'],
'data': [
'views/link_tracker.xml',
'security/ir.model.access.csv',
],
}
@@ -1,2 +1,2 @@
# -*- coding: utf-8 -*-
import website_links
import main
+13
View File
@@ -0,0 +1,13 @@
# -*- coding: utf-8 -*-
import werkzeug
from openerp.addons.web import http
from openerp.http import request
class link_tracker(http.Controller):
@http.route('/r/<string:code>', type='http', auth='none', website=True)
def full_url_redirect(self, code, **post):
request.env['link.tracker.click'].add_click(code, request.httprequest.remote_addr, request.session['geoip'].get('country_code'), stat_id=False)
redirect_url = request.env['link.tracker'].get_url_from_code(code)
return werkzeug.utils.redirect(redirect_url or '', 301)
+2
View File
@@ -0,0 +1,2 @@
# -*- coding: utf-8 -*-
import link_tracker
@@ -21,12 +21,13 @@ def VALIDATE_URL(url):
return url
class website_links(models.Model):
"""website_links allow users to wrap any URL into a short and trackable URL
via a frontend and backend interface. website_links counts clicks on each tracked link.
class link_tracker(models.Model):
"""link_tracker allow users to wrap any URL into a short and trackable URL.
link_tracker counts clicks on each tracked link.
This module is also used by mass_mailing, where each link in mail_mail html_body are converted into
a trackable link to get the click-through rate of each mass_mailing."""
_name = "website.links"
_name = "link.tracker"
_rec_name = "short_url"
_inherit = ['utm.mixin']
@@ -34,10 +35,10 @@ class website_links(models.Model):
url = fields.Char(string='Target URL', required=True)
count = fields.Integer(string='Number of Clicks', compute='_compute_count', store=True)
short_url = fields.Char(string='Tracked URL', compute='_compute_short_url')
link_click_ids = fields.One2many('website.links.click', 'link_id', string='Clicks')
link_click_ids = fields.One2many('link.tracker.click', 'link_id', string='Clicks')
title = fields.Char(string='Page Title', store=True)
favicon = fields.Char(string='Favicon', compute='_compute_favicon', store=True)
link_code_ids = fields.One2many('website.links.code', 'link_id', string='Codes')
link_code_ids = fields.One2many('link.tracker.code', 'link_id', string='Codes')
code = fields.Char(string='Short URL code', compute='_compute_code')
redirected_url = fields.Char(string='Redirected URL', compute='_compute_redirected_url')
short_url_host = fields.Char(string='Host of the short URL', compute='_compute_short_url_host')
@@ -81,7 +82,7 @@ class website_links(models.Model):
@api.one
def _compute_code(self):
record = self.env['website.links.code'].search([('link_id', '=', self.id)], limit=1, order='id DESC')
record = self.env['link.tracker.code'].search([('link_id', '=', self.id)], limit=1, order='id DESC')
self.code = record.code
@api.one
@@ -127,7 +128,7 @@ class website_links(models.Model):
@api.multi
def action_view_statistics(self):
action = self.env['ir.actions.act_window'].for_xml_id('website_links', 'action_view_click_statistics')
action = self.env['ir.actions.act_window'].for_xml_id('link_tracker', 'action_view_click_statistics')
action['domain'] = [('link_id', '=', self.id)]
return action
@@ -177,16 +178,16 @@ class website_links(models.Model):
if fname not in create_vals:
create_vals[fname] = False
link = super(website_links, self).create(create_vals)
link = super(link_tracker, self).create(create_vals)
code = self.env['website.links.code'].get_random_code_string()
self.env['website.links.code'].create({'code': code, 'link_id': link.id})
code = self.env['link.tracker.code'].get_random_code_string()
self.env['link.tracker.code'].create({'code': code, 'link_id': link.id})
return link
@api.model
def get_url_from_code(self, code, context=None):
code_rec = self.env['website.links.code'].sudo().search([('code', '=', code)])
code_rec = self.env['link.tracker.code'].sudo().search([('code', '=', code)])
if not code_rec:
return None
@@ -198,11 +199,11 @@ class website_links(models.Model):
]
class website_links_code(models.Model):
_name = "website.links.code"
class link_tracker_code(models.Model):
_name = "link.tracker.code"
code = fields.Char(string='Short URL Code', store=True)
link_id = fields.Many2one('website.links', 'Link', required=True, ondelete='cascade')
link_id = fields.Many2one('link.tracker', 'Link', required=True, ondelete='cascade')
@api.model
def get_random_code_string(self):
@@ -220,19 +221,19 @@ class website_links_code(models.Model):
]
class website_links_click(models.Model):
_name = "website.links.click"
class link_tracker_click(models.Model):
_name = "link.tracker.click"
_rec_name = "link_id"
click_date = fields.Date(string='Create Date')
link_id = fields.Many2one('website.links', 'Link', required=True, ondelete='cascade')
link_id = fields.Many2one('link.tracker', 'Link', required=True, ondelete='cascade')
ip = fields.Char(string='Internet Protocol')
country_id = fields.Many2one('res.country', 'Country')
@api.model
def add_click(self, code, ip, country_code, stat_id=False):
self = self.sudo()
code_rec = self.env['website.links.code'].search([('code', '=', code)])
code_rec = self.env['link.tracker.code'].search([('code', '=', code)])
if not code_rec:
return None
@@ -0,0 +1,10 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_link_tracker_user,link.tracker,model_link_tracker,base.group_user,1,0,0,0
access_link_tracker_manager,link.tracker,model_link_tracker,marketing.group_marketing_user,1,1,1,1
access_link_tracker_public,link.tracker,model_link_tracker,base.group_public,1,0,0,0
access_link_tracker_code_user,link.tracker.code,model_link_tracker_code,base.group_user,1,0,0,0
access_link_tracker_code_manager,link.tracker.code,model_link_tracker_code,marketing.group_marketing_user,1,1,1,1
access_link_tracker_code_public,link.tracker.code,model_link_tracker_code,base.group_public,1,0,0,0
access_link_tracker_click_user,link.tracker.click,model_link_tracker_click,base.group_user,1,0,0,0
access_link_tracker_click_manager,link.tracker.click,model_link_tracker_click,marketing.group_marketing_user,1,1,1,1
access_link_tracker_click_public,link.tracker.click,model_link_tracker_click,base.group_public,1,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_link_tracker_user link.tracker model_link_tracker base.group_user 1 0 0 0
3 access_link_tracker_manager link.tracker model_link_tracker marketing.group_marketing_user 1 1 1 1
4 access_link_tracker_public link.tracker model_link_tracker base.group_public 1 0 0 0
5 access_link_tracker_code_user link.tracker.code model_link_tracker_code base.group_user 1 0 0 0
6 access_link_tracker_code_manager link.tracker.code model_link_tracker_code marketing.group_marketing_user 1 1 1 1
7 access_link_tracker_code_public link.tracker.code model_link_tracker_code base.group_public 1 0 0 0
8 access_link_tracker_click_user link.tracker.click model_link_tracker_click base.group_user 1 0 0 0
9 access_link_tracker_click_manager link.tracker.click model_link_tracker_click marketing.group_marketing_user 1 1 1 1
10 access_link_tracker_click_public link.tracker.click model_link_tracker_click base.group_public 1 0 0 0
@@ -3,15 +3,15 @@
<data>
<record model="ir.actions.act_window" id="action_view_click_statistics">
<field name="name">Statistics of Clicks</field>
<field name="res_model">website.links.click</field>
<field name="res_model">link.tracker.click</field>
<field name="view_mode">graph</field>
<field name="domain">[('link_id', 'IN', ids)]</field>
</record>
<!-- Search -->
<record id="view_website_links_filter" model="ir.ui.view">
<record id="view_link_tracker_filter" model="ir.ui.view">
<field name="name">Links</field>
<field name="model">website.links</field>
<field name="model">link.tracker</field>
<field name="arch" type="xml">
<search string="Tracked Link">
<field name="title"/>
@@ -21,9 +21,9 @@
</record>
<!-- Website links views -->
<record id="view_website_links_form" model="ir.ui.view">
<field name="name">website.links.form</field>
<field name="model">website.links</field>
<record id="view_link_tracker_form" model="ir.ui.view">
<field name="name">link.tracker.form</field>
<field name="model">link.tracker</field>
<field name="arch" type="xml">
<form string="Website Link">
<sheet>
@@ -53,9 +53,9 @@
</record>
<record id="view_website_links_form_stats" model="ir.ui.view">
<field name="name">website.links.my.form</field>
<field name="model">website.links</field>
<record id="view_link_tracker_form_stats" model="ir.ui.view">
<field name="name">link.tracker.my.form</field>
<field name="model">link.tracker</field>
<field name="arch" type="xml">
<form string="Website Link Graph">
<sheet>
@@ -71,17 +71,17 @@
</field>
</record>
<record model="ir.actions.act_window" id="action_website_links_stats">
<field name="name">website.links.form.graph.action</field>
<field name="res_model">website.links</field>
<record model="ir.actions.act_window" id="action_link_tracker_stats">
<field name="name">link.tracker.form.graph.action</field>
<field name="res_model">link.tracker</field>
<field name="view_type">form</field>
<field name="view_mode">form</field>
<field name="view_id" ref="view_website_links_form_stats"/>
<field name="view_id" ref="view_link_tracker_form_stats"/>
</record>
<record id="view_website_links_tree" model="ir.ui.view">
<field name="name">website.links.tree</field>
<field name="model">website.links</field>
<record id="view_link_tracker_tree" model="ir.ui.view">
<field name="name">link.tracker.tree</field>
<field name="model">link.tracker</field>
<field name="arch" type="xml">
<tree string="Website Links">
<field name="create_date"/>
@@ -93,9 +93,9 @@
</field>
</record>
<record id="view_website_links_graph" model="ir.ui.view" >
<field name="name">website.links.graph</field>
<field name="model">website.links</field>
<record id="view_link_tracker_graph" model="ir.ui.view" >
<field name="name">link.tracker.graph</field>
<field name="model">link.tracker</field>
<field name="arch" type="xml">
<graph string="Website Links" type="bar">
<field name="url" type="row"/>
@@ -105,17 +105,17 @@
</record>
<!-- Action for website links-->
<record model="ir.actions.act_window" id="action_website_links">
<record model="ir.actions.act_window" id="action_link_tracker">
<field name="name">Link Tracker</field>
<field name="res_model">website.links</field>
<field name="res_model">link.tracker</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form,graph</field>
</record>
<!-- Website links click views -->
<record id="view_website_links_click_form" model="ir.ui.view">
<field name="name">website.links.click.form</field>
<field name="model">website.links.click</field>
<record id="view_link_tracker_click_form" model="ir.ui.view">
<field name="name">link.tracker.click.form</field>
<field name="model">link.tracker.click</field>
<field name="arch" type="xml">
<form string="Website Link Clicks">
<header>
@@ -131,9 +131,9 @@
</field>
</record>
<record id="view_website_links_click_tree" model="ir.ui.view">
<field name="name">website.links.click.tree</field>
<field name="model">website.links.click</field>
<record id="view_link_tracker_click_tree" model="ir.ui.view">
<field name="name">link.tracker.click.tree</field>
<field name="model">link.tracker.click</field>
<field name="arch" type="xml">
<tree string="Website Links Clicks">
<field name="link_id"/>
@@ -143,9 +143,9 @@
</field>
</record>
<record id="view_website_links_click_graph" model="ir.ui.view" >
<field name="name">website.links.click.graph</field>
<field name="model">website.links.click</field>
<record id="view_link_tracker_click_graph" model="ir.ui.view" >
<field name="name">link.tracker.click.graph</field>
<field name="model">link.tracker.click</field>
<field name="arch" type="xml">
<graph string="Website Link Clicks">
<field name="link_id"/>
@@ -156,14 +156,14 @@
</record>
<!-- Action for website links click-->
<record model="ir.actions.act_window" id="action_website_links_click">
<record model="ir.actions.act_window" id="action_link_tracker_click">
<field name="name">Tracked Links</field>
<field name="res_model">website.links.click</field>
<field name="res_model">link.tracker.click</field>
<field name="view_type">form</field>
<field name="view_mode">graph,tree,form</field>
</record>
<menuitem id="menu_url_shortener_main" name="Link Tracker" parent="utm.menu_link_tracker_root" groups="base.group_no_one"/>
<menuitem id="menu_url_shortener_links" name="Tracked Links" parent="menu_url_shortener_main" action="action_website_links"/>
<menuitem id="menu_url_shortener_links" name="Tracked Links" parent="menu_url_shortener_main" action="action_link_tracker"/>
</data>
</openerp>
+1 -1
View File
@@ -2,7 +2,7 @@ odoo.define('mail.announcement', function (require) {
"use strict";
var core = require('web.core');
var Model = require('web.Model');
var Model = require('web.DataModel');
var session = require('web.session');
var WebClient = require('web.WebClient');
@@ -4,7 +4,7 @@ odoo.define('mail.many2manytags', function (require) {
var core = require('web.core');
var form_common = require('web.form_common');
var form_relational = require('web.form_relational');
var Model = require('web.Model');
var Model = require('web.DataModel');
var _t = core._t;
+1 -1
View File
@@ -30,7 +30,7 @@
</group>
<notebook>
<page string="Body">
<field name="body_html"/>
<field name="body_html" widget="html" options="{'style-inline': true}"/>
</page>
<page string="Advanced" groups="base.group_no_one">
<group>
+1 -1
View File
@@ -43,7 +43,7 @@
<field name="subtype_id"/>
</group>
</group>
<field name="body"/>
<field name="body" options="{'style-inline': true}"/>
</sheet>
</form>
</field>
+1 -1
View File
@@ -42,7 +42,7 @@
<page string="Content">
<label for="subject"/>
<h2 style="display: inline-block;"><field name="subject" placeholder="Subject (placeholders may be used here)"/></h2>
<field name="body_html"/>
<field name="body_html" widget="html" options="{'style-inline': true}"/>
<field name="attachment_ids" widget="many2many_binary"/>
</page>
<page string="Email Configuration">
+1 -1
View File
@@ -15,7 +15,7 @@
placeholder="Add contacts to notify..."
context="{'force_email':True, 'show_email':True}"/>
<field name="send_mail"/>
<field name="message" attrs="{'invisible': [('send_mail','!=',True)]}" class="test_message"/>
<field name="message" attrs="{'invisible': [('send_mail','!=',True)]}" options="{'style-inline': true}" class="test_message"/>
</group>
<footer>
<button string="Add Followers"
@@ -57,7 +57,7 @@
attrs="{'invisible':['|', ('no_auto_thread', '=', False), ('composition_mode', '!=', 'mass_mail')],
'required':[('no_auto_thread', '=', True), ('composition_mode', '=', 'mass_mail')]}"/>
</group>
<field name="body"/>
<field name="body" options="{'style-inline': true}"/>
<field name="attachment_ids" widget="many2many_binary" string="Attach a file"/>
<footer>
<button string="Send" name="send_mail_action" type="object" class="oe_highlight"/>
+15 -6
View File
@@ -16,10 +16,10 @@ professional emails and reuse templates in a few clicks.
'depends': [
'mail',
'marketing',
'web_kanban_gauge',
'website_mail',
'website_links',
'utm',
'link_tracker',
'web_editor',
'web_kanban_gauge',
],
'data': [
'data/mail_data.xml',
@@ -30,11 +30,20 @@ professional emails and reuse templates in a few clicks.
'views/mass_mailing.xml',
'views/res_config.xml',
'views/email_template.xml',
'views/website_mass_mailing.xml',
'views/snippets.xml',
'security/ir.model.access.csv',
'views/mass_mailing.xml',
'views/unsubscribe.xml',
'views/editor_field_html.xml',
'views/snippets_themes.xml',
'views/snippets_themes_options.xml',
'views/theme_list.xml',
'views/theme/neopolitan_snippets.xml',
'views/theme/skyline_snippets.xml',
'views/theme/narrative_snippets.xml',
'views/theme/sunday_snippets.xml',
'views/theme/go_snippets.xml',
'views/theme/airmail_snippets.xml',
'views/theme/zenflat_snippets.xml',
'views/theme/cleave_snippets.xml',
],
'qweb': [],
'demo': [
+1 -1
View File
@@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
import main
import website
import web_editor
+2 -64
View File
@@ -19,70 +19,8 @@ class MassMailController(http.Controller):
return response
@http.route(['/mail/mailing/<int:mailing_id>/unsubscribe'], type='http', auth='none', website=True)
def mailing(self, mailing_id, email=None, res_id=None, **post):
mailing = request.env['mail.mass_mailing'].sudo().browse(mailing_id)
if mailing.exists():
if mailing.mailing_model == 'mail.mass_mailing.contact':
contacts =request.env['mail.mass_mailing.contact'].sudo().search([('email', 'ilike', email)])
return request.website.render('mass_mailing.page_unsubscribe', {'contacts': contacts, 'email': email, 'mailing_id':mailing_id})
else:
mailing.update_opt_out(mailing_id, email, [res_id], True)
return request.website.render('mass_mailing.page_unsubscribed')
@http.route(['/mail/mailing/unsubscribe'], type='json', auth='none', website=True)
def unsubscribe(self, mailing_id, opt_in_ids, opt_out_ids, email):
mailing = request.env['mail.mass_mailing'].sudo().browse(mailing_id)
if mailing.exists():
mailing.update_opt_out(mailing_id, email, opt_in_ids, False)
mailing.update_opt_out(mailing_id, email, opt_out_ids, True)
@http.route('/website_mass_mailing/is_subscriber', type='json', auth="public", website=True)
def is_subscriber(self, list_id, **post):
cr, uid, context = request.cr, request.uid, request.context
Contacts = request.registry['mail.mass_mailing.contact']
Users = request.registry['res.users']
is_subscriber = False
email = None
if uid != request.website.user_id.id:
email = Users.browse(cr, SUPERUSER_ID, uid, context).email
elif request.session.get('mass_mailing_email'):
email = request.session['mass_mailing_email']
if email:
contact_ids = Contacts.search(cr, SUPERUSER_ID, [('list_id', '=', int(list_id)), ('email', '=', email), ('opt_out', '=', False)], context=context)
is_subscriber = len(contact_ids) > 0
return {'is_subscriber': is_subscriber, 'email': email}
@http.route('/website_mass_mailing/subscribe', type='json', auth="public", website=True)
def subscribe(self, list_id, email, **post):
cr, uid, context = request.cr, request.uid, request.context
Contacts = request.registry['mail.mass_mailing.contact']
contact_ids = Contacts.search_read(cr, SUPERUSER_ID, [('list_id', '=', int(list_id)), ('email', '=', email)], ['opt_out'], context=context)
if not contact_ids:
Contacts.add_to_list(cr, SUPERUSER_ID, email, int(list_id), context=context)
else:
if contact_ids[0]['opt_out']:
Contacts.write(cr, SUPERUSER_ID, [contact_ids[0]['id']], {'opt_out': False}, context=context)
# add email to session
request.session['mass_mailing_email'] = email
return True
@http.route('/r/<string:code>/m/<int:stat_id>', type='http', auth="none")
def full_url_redirect(self, code, stat_id, **post):
cr, uid, context = request.cr, request.uid, request.context
request.registry['website.links.click'].add_click(cr, uid, code, request.httprequest.remote_addr, request.session['geoip'].get('country_code'), stat_id=stat_id, context=context)
return werkzeug.utils.redirect(request.registry['website.links'].get_url_from_code(cr, uid, code, context=context), 301)
@http.route(['/website_mass_mailing/get_content'], type='json', auth="public", website=True)
def get_mass_mailing_content(self, newsletter_id, **post):
data = self.is_subscriber(newsletter_id, **post)
mass_mailing_list = request.registry['mail.mass_mailing.list'].browse(request.cr, SUPERUSER_ID, int(newsletter_id), request.context)
data.update({
'content': mass_mailing_list.popup_content,
'redirect_url': mass_mailing_list.popup_redirect_url
})
return data
request.registry['link.tracker.click'].add_click(cr, uid, code, request.httprequest.remote_addr, request.session['geoip'].get('country_code'), stat_id=stat_id, context=context)
return werkzeug.utils.redirect(request.registry['link.tracker'].get_url_from_code(cr, uid, code, context=context), 301)
@@ -0,0 +1,25 @@
# -*- coding: utf-8 -*-
from openerp import http
from openerp.http import request
from openerp.addons.web_editor.controllers.main import Web_Editor
class Web_Editor(Web_Editor):
@http.route(["/website_mass_mailing/field/popup_content"], type='http', auth="user")
def mass_mailing_FieldTextHtmlPopupTemplate(self, model=None, res_id=None, field=None, callback=None, **kwargs):
kwargs['snippets'] = '/website/snippets'
kwargs['template'] = 'mass_mailing.FieldTextHtmlPopupContent'
return self.FieldTextHtml(model, res_id, field, callback, **kwargs)
@http.route('/mass_mailing/field/email_template', type='http', auth="user")
def mass_mailing_FieldTextHtmlEmailTemplate(self, model=None, res_id=None, field=None, callback=None, **kwargs):
kwargs['snippets'] = '/mass_mailing/snippets'
kwargs['template'] = 'mass_mailing.FieldTextHtmlInline'
return self.FieldTextHtmlInline(model, res_id, field, callback, **kwargs)
@http.route(['/mass_mailing/snippets'], type='json', auth="user", website=True)
def mass_mailing_snippets(self):
values = {'company_id': request.env['res.users'].browse(request.uid).company_id}
return request.registry["ir.ui.view"].render(request.cr, request.uid, 'mass_mailing.email_designer_snippets', values, context=request.context)
@@ -1,14 +0,0 @@
# -*- coding: utf-8 -*-
from openerp import http
from openerp.addons.website.controllers.main import Website
class Website(Website):
@http.route(["/website_mass_mailing/field/popup_content"], type='http', auth="public", website=True)
def FieldTextHtmlPopupTemplate(self, model=None, res_id=None, field=None, callback=None, **kwargs):
kwargs['snippets'] = 'snippets' not in kwargs and '/website/snippets' or kwargs['snippets']
kwargs['dont_load_assets'] = False
kwargs['template'] = "mass_mailing.FieldTextHtmlPopupContent"
return self.FieldTextHtml(model, res_id, field, callback, **kwargs)
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -6,4 +6,4 @@ import mail_mail
import mail_thread
import res_config
import mass_mailing_report
import website_links
import link_tracker
@@ -1,15 +1,15 @@
from openerp import fields
from openerp import models
class website_links(models.Model):
_inherit = "website.links"
class link_tracker(models.Model):
_inherit = "link.tracker"
mass_mailing_id = fields.Many2one('mail.mass_mailing', string='Mass Mailing')
mass_mailing_campaign_id = fields.Many2one('mail.mass_mailing.campaign', string='Mass Mailing Campaign')
class website_links_click(models.Model):
_inherit = "website.links.click"
class link_tracker_click(models.Model):
_inherit = "link.tracker.click"
mail_stat_id = fields.Many2one('mail.mail.statistics', string='Mail Statistics')
mass_mailing_id = fields.Many2one('mail.mass_mailing', string='Mass Mailing')
mass_mailing_campaign_id = fields.Many2one('mail.mass_mailing.campaign', string='Mass Mailing Campaign')
mass_mailing_campaign_id = fields.Many2one('mail.mass_mailing.campaign', string='Mass Mailing Campaign')
+5 -5
View File
@@ -208,7 +208,7 @@ class MassMailingCampaign(osv.Model):
cr.execute("""
SELECT COUNT(DISTINCT(stats.id)) AS nb_mails, COUNT(DISTINCT(clicks.mail_stat_id)) AS nb_clicks, stats.mass_mailing_campaign_id AS id
FROM mail_mail_statistics AS stats
LEFT OUTER JOIN website_links_click AS clicks ON clicks.mail_stat_id = stats.id
LEFT OUTER JOIN link_tracker_click AS clicks ON clicks.mail_stat_id = stats.id
WHERE stats.mass_mailing_campaign_id IN %s
GROUP BY stats.mass_mailing_campaign_id
""", (tuple(ids), ))
@@ -436,7 +436,7 @@ class MassMailing(osv.Model):
cr.execute("""
SELECT COUNT(DISTINCT(stats.id)) AS nb_mails, COUNT(DISTINCT(clicks.mail_stat_id)) AS nb_clicks, stats.mass_mailing_id AS id
FROM mail_mail_statistics AS stats
LEFT OUTER JOIN website_links_click AS clicks ON clicks.mail_stat_id = stats.id
LEFT OUTER JOIN link_tracker_click AS clicks ON clicks.mail_stat_id = stats.id
WHERE stats.mass_mailing_id IN %s
GROUP BY stats.mass_mailing_id
""", (tuple(ids), ))
@@ -479,7 +479,7 @@ class MassMailing(osv.Model):
'create_date': fields.datetime('Creation Date'),
'sent_date': fields.datetime('Sent Date', oldname='date', copy=False),
'schedule_date': fields.datetime('Schedule in the Future'),
'body_html': fields.html('Body'),
'body_html': fields.html('Body', translate=True),
'attachment_ids': fields.many2many(
'ir.attachment', 'mass_mailing_ir_attachments_rel',
'mass_mailing_id', 'attachment_id', 'Attachments'
@@ -583,7 +583,7 @@ class MassMailing(osv.Model):
def mass_mailing_statistics_action(self, cr, uid, ids, context=None):
res = self.pool['ir.actions.act_window'].for_xml_id(cr, uid, 'mass_mailing', 'action_view_mass_mailing_statistics', context=context)
link_click_ids = self.pool['website.links.click'].search(cr, uid, [('mass_mailing_id', 'in', ids)], context=context)
link_click_ids = self.pool['link.tracker.click'].search(cr, uid, [('mass_mailing_id', 'in', ids)], context=context)
res['domain'] = [('id', 'in', link_click_ids)]
return res
@@ -796,7 +796,7 @@ class MassMailing(osv.Model):
if utm_mixin.medium_id:
vals['medium_id'] = utm_mixin.medium_id.id
res[mass_mailing.id] = self.pool['website.links'].convert_links(cr, uid, html, vals, blacklist=['/unsubscribe_from_list'], context=context)
res[mass_mailing.id] = self.pool['link.tracker'].convert_links(cr, uid, html, vals, blacklist=['/unsubscribe_from_list'], context=context)
return res
@@ -78,7 +78,7 @@ class MailMailStats(osv.Model):
'opened': fields.datetime('Opened', help='Date when the email has been opened the first time'),
'replied': fields.datetime('Replied', help='Date when this email has been replied for the first time.'),
'bounced': fields.datetime('Bounced', help='Date when this email has bounced.'),
'links_click_ids': fields.one2many('website.links.click', 'mail_stat_id', 'Links click'),
'links_click_ids': fields.one2many('link.tracker.click', 'mail_stat_id', 'Links click'),
'state': fields.function(_compute_state, string='State', type="selection", multi="state",
selection=[('outgoing', 'Outgoing'),
('exception', 'Exception'),
@@ -1,55 +1,3 @@
body {
background-color: #fff;
}
p {
margin: initial;
}
a {
color: inherit;
}
a:hover {
color: inherit;
}
#wrapwrap .o_editable {
font: initial;
line-height: initial;
color: initial;
}
#oe_snippets ~ #wrapwrap .o_editable {
margin-bottom: 100px;
}
#wrapwrap > main > div:first-child {
max-width: 600px;
margin-left: auto;
margin-right: auto;
position: relative;
}
.editor_enable #wrapwrap > main > div:first-child:before, #wrapwrap > main > div:first-child:after {
content: " ";
display: block;
height: 100%;
position: fixed;
top: -4px;
width: 0;
overflow: hidden;
}
.editor_enable #wrapwrap > main > div:first-child:before {
border-right: 1px dashed #ccc;
margin-left: -5px;
}
.editor_enable #wrapwrap > main > div:first-child:after {
border-left: 1px dashed #ccc;
margin-left: 605px;
}
.note-color-palette .colorpicker {
display: none;
}
/***************************/
#email_theme_list, #email_template_list {
clear: both;
text-align: center;
@@ -128,17 +76,21 @@ a:hover {
/***************************/
#templates{
margin-top: 50px;
width: 98%;
}
#choose_template{
display: none;
margin: 5px;
padding: 1px 5px;
position: fixed;
top: 0;
right: 50px;
right: 28px;
z-index: 2000;
}
#choose_template span{
padding: 1px 5px;
height: 24px;
}
#templates .template_preview_border{
overflow: hidden !important;
border: 2px solid grey;
@@ -161,4 +113,4 @@ a:hover {
}
.theme_thumbnail:hover>.template_preview{
opacity:0.3;
}
}
@@ -1,85 +1,85 @@
/* ---- thumbnail ---- */
.oe_snippet.o_mail_block_header_center_logo .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_header_center_logo.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_header_center_logo.png");
}
.oe_snippet.o_mail_block_header_center_text .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_header_center_text.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_header_center_text.png");
}
.oe_snippet.o_mail_block_header_social .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_header_social.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_header_social.png");
}
.oe_snippet.o_mail_block_header_text_social .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_header_text_social.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_header_text_social.png");
}
.oe_snippet.o_mail_block_text_image .oe_snippet_thumbnail_img {
background-image: url("/website/static/src/img/blocks/block_text_image.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_text-image.png");
}
.oe_snippet.o_mail_block_footer_copyright .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_footer_copyright.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_footer_copyright.png");
}
.oe_snippet.o_mail_block_footer_social .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_footer_social.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_footer_social.png");
}
.oe_snippet.o_mail_block_footer_text .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_footer_text.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_footer_text.png");
}
.oe_snippet.o_mail_block_footer_seprator .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_footer_seprator.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_footer_seprator.png");
}
.oe_snippet.o_mail_block_footer_tag_line .oe_snippet_thumbnail_img {
background-image: url("/website_mail/static/src/img/blocks/block_footer_tag_line.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_footer_tag_line.png");
}
.oe_snippet.o_mail_block_two_cols .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_two-column-img.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_two-column-img.png");
}
.oe_snippet.o_mail_block_two_cols_content .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_two-column.png");
background-image: url("/mass_mailing/static/src/img/blocks/block_two-column.png");
}
.oe_snippet.o_mail_block_title_text .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_title_text.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_title_text.png")
}
.oe_snippet.o_mail_block_title_sub .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_title.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_title.png")
}
.oe_snippet.o_mail_block_image_text .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_image-text.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_image-text.png")
}
.oe_snippet.o_mail_block_text_button .oe_snippet_thumbnail_img{
background-image: url("/website/static/src/img/blocks/block_jumbotron.png")
}
.oe_snippet.o_mail_block_table_content .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_table.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_table.png")
}
.oe_snippet.o_mail_block_discount1 .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_discount.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_discount.png")
}
.oe_snippet.o_mail_block_discount2 .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_discount2.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_discount2.png")
}
.oe_snippet.o_mail_block_event .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_event.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_event.png")
}
.oe_snippet.o_mail_block_image .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_image_text.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_image_text.png")
}
.oe_snippet.o_mail_block_profile .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_user.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_user.png")
}
.oe_snippet.o_mail_block_four_cols .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_four_columns.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_four_columns.png")
}
.oe_snippet.o_mail_block_button .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_button.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_button.png")
}
.oe_snippet.o_mail_block_simple_text .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_simple_text.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_simple_text.png")
}
.oe_snippet.o_mail_block_three_cols .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_three_columns.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_three_columns.png")
}
.oe_snippet.o_mail_block_text_on_img .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_text_on_image.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_text_on_image.png")
}
.oe_snippet.o_mail_block_steps .oe_snippet_thumbnail_img{
background-image: url("/website_mail/static/src/img/blocks/block_steps.png")
background-image: url("/mass_mailing/static/src/img/blocks/block_steps.png")
}
@@ -1,7 +1,7 @@
/* Summernote not Support for placeholder text https://github.com/summernote/summernote/issues/581 */
.editor_enable [data-oe-placeholder]:empty:not(:focus):before {
content: attr(data-oe-placeholder);
opacity: 0.3;
content: " \00a0 " attr(data-oe-placeholder);
opacity: 0.4;
}
.o_popup_animated {
-webkit-animation-duration: 1s;

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 974 B

After

Width:  |  Height:  |  Size: 974 B

Before

Width:  |  Height:  |  Size: 549 B

After

Width:  |  Height:  |  Size: 549 B

Before

Width:  |  Height:  |  Size: 310 B

After

Width:  |  Height:  |  Size: 310 B

Before

Width:  |  Height:  |  Size: 312 B

After

Width:  |  Height:  |  Size: 312 B

Before

Width:  |  Height:  |  Size: 322 B

After

Width:  |  Height:  |  Size: 322 B

Before

Width:  |  Height:  |  Size: 595 B

After

Width:  |  Height:  |  Size: 595 B

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 308 B

Before

Width:  |  Height:  |  Size: 535 B

After

Width:  |  Height:  |  Size: 535 B

Before

Width:  |  Height:  |  Size: 318 B

After

Width:  |  Height:  |  Size: 318 B

Before

Width:  |  Height:  |  Size: 548 B

After

Width:  |  Height:  |  Size: 548 B

Before

Width:  |  Height:  |  Size: 760 B

After

Width:  |  Height:  |  Size: 760 B

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Before

Width:  |  Height:  |  Size: 329 B

After

Width:  |  Height:  |  Size: 329 B

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 999 B

After

Width:  |  Height:  |  Size: 999 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Before

Width:  |  Height:  |  Size: 308 B

After

Width:  |  Height:  |  Size: 308 B

Before

Width:  |  Height:  |  Size: 815 B

After

Width:  |  Height:  |  Size: 815 B

Before

Width:  |  Height:  |  Size: 949 B

After

Width:  |  Height:  |  Size: 949 B

Before

Width:  |  Height:  |  Size: 348 B

After

Width:  |  Height:  |  Size: 348 B

Before

Width:  |  Height:  |  Size: 686 B

After

Width:  |  Height:  |  Size: 686 B

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 153 KiB

After

Width:  |  Height:  |  Size: 153 KiB

Before

Width:  |  Height:  |  Size: 567 B

After

Width:  |  Height:  |  Size: 567 B

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Before

Width:  |  Height:  |  Size: 620 B

After

Width:  |  Height:  |  Size: 620 B

Before

Width:  |  Height:  |  Size: 993 B

After

Width:  |  Height:  |  Size: 993 B

Before

Width:  |  Height:  |  Size: 755 B

After

Width:  |  Height:  |  Size: 755 B

@@ -1,19 +1,20 @@
odoo.define('website_mail.website_mail', function (require) {
odoo.define('mass_mailing.editor', function (require) {
"use strict";
var Model = require('web.Model');
var editor = require('website.editor');
var snippets_editor = require('website.snippets.editor');
var rte = require('web_editor.rte');
var web_editor = require('web_editor.editor');
var options = require('web_editor.snippets.options');
var snippets_editor = require('web_editor.snippet.editor');
// Snippet option for resizing image and column width inline like excel
snippets_editor.options["width-x"] = snippets_editor.Option.extend({
options.registry["width-x"] = options.Class.extend({
start: function () {
this.container_width = 600;
var parent = this.$target.closest('[data-max-width]');
if( parent.length ){
this.container_width = parseInt(parent.attr('data-max-width'));
}
}
var self = this;
var offset, sib_offset, target_width, sib_width;
this.is_image = false;
@@ -35,7 +36,7 @@ snippets_editor.options["width-x"] = snippets_editor.Option.extend({
if ($handle.hasClass(handler)) { compass = handler; }
});
if(self.is_image){ compass = "image"; }
self.BuildingBlock.editor_busy = true;
self.buildingBlock.editor_busy = true;
var $body = $(document.body);
@@ -58,11 +59,11 @@ snippets_editor.options["width-x"] = snippets_editor.Option.extend({
if (compass === 'image'){
self.change_width(event, self.$target, target_width, offset ,'plus');
}
};
}
var body_mouseup = function(){
$body.unbind('mousemove', body_mousemove);
$body.unbind('mouseup', body_mouseup);
self.BuildingBlock.editor_busy = false;
self.buildingBlock.editor_busy = false;
self.$target.removeClass("resize_editor_busy");
};
$body.mousemove(body_mousemove);
@@ -77,7 +78,7 @@ snippets_editor.options["width-x"] = snippets_editor.Option.extend({
var width = offset + target_width - event.pageX;
}
target.css("width", width + "px");
self.BuildingBlock.cover_target(self.$overlay, self.$target);
self.buildingBlock.cover_target(self.$overlay, self.$target);
return;
},
get_int_width: function ($el) {
@@ -89,7 +90,7 @@ snippets_editor.options["width-x"] = snippets_editor.Option.extend({
var self = this;
_.each($el.siblings(),function(sib){
max_width += self.get_int_width($(sib));
});
})
return this.container_width - max_width;
},
on_clone: function ($clone) {
@@ -99,13 +100,13 @@ snippets_editor.options["width-x"] = snippets_editor.Option.extend({
_.each($table.find('tbody>tr'),function(row){
var clone_selector = 'td:eq(' + clone_index + ')';
var $col_to_clone = $(row).find(clone_selector);
if($col_to_clone.length !== 0){
if($col_to_clone.length != 0){
$col_to_clone.after($col_to_clone.clone());
}
});
}
this._super($clone);
this.BuildingBlock.cover_target(this.$overlay, this.$target);
this.buildingBlock.cover_target(this.$overlay, this.$target);
},
on_remove: function () {
var remove_index = $(this.$target).index();
@@ -117,7 +118,7 @@ snippets_editor.options["width-x"] = snippets_editor.Option.extend({
});
}
this._super();
this.BuildingBlock.cover_target(this.$overlay, this.$target);
this.buildingBlock.cover_target(this.$overlay, this.$target);
},
});
@@ -128,31 +129,22 @@ $.summernote.eventHandler.popover.update = function ($popover, oStyle, isAirMode
$("span.o_table_handler, div.note-table").remove();
};
editor.EditorBar.include({
web_editor.Class.include({
start: function () {
var self = this;
if (location.search.indexOf("enable_editor") !== -1) {
this.on('rte:ready', this, function () {
this.on('rte:start', this, function () {
$("#choose_template").off("click").on("click", _.bind(self.on_choose_template, self));
$(".theme_thumbnail [data-snippet-theme]").off("click").on("click", _.bind(self.on_set_snippet_theme, self));
$("#wrapwrap").on('click', function (event) {
if ($(event.target).is("#wrapwrap")) {
setTimeout(function () {
var node = $("#wrapwrap .o_editable:first *")
.filter(function () { return this.textContent.match(/\S|\u00A0/); })
.add($("#wrapwrap .o_editable:first"))
.last()[0];
$.summernote.core.range.create(node, $.summernote.core.dom.nodeLength(node)).select();
},0);
}
});
var $editable = $("#editable_area");
$editable.html($editable.prop("innerHTML").replace(/^<p[^>]*>\s*<\/p>$/, ''));
});
this.on("snippets:ready", this, _.bind(self.display_theme_from_html, self));
}
return this._super.apply(this, arguments);
},
display_theme_from_html: function () {
var theme = $("#wrapwrap .o_editable:first [data-snippet-theme]").data("snippet-theme");
var theme = $("#editable_area [data-snippet-theme]").data("snippet-theme");
if (theme) {
$("#choose_template").show();
this.set_snippet_theme(theme);
@@ -170,15 +162,18 @@ editor.EditorBar.include({
if (event) {
$("#choose_template").show();
}
var $editable = $("#wrapwrap .o_editable:first");
var $editable = $("#editable_area");
$(".o_table_handler").remove();
$editable.parent().add("#oe_snippets, #templates, .note-popover").toggleClass("hidden");
$("#choose_template").children().toggleClass("hidden");
$("body").trigger("resize");
$(window.top).trigger('resize');
setTimeout(function () {
$(".note-popover").toggleClass("hidden", $("#templates").is(":visible"));
},0);
},
on_set_snippet_template: function (event) {
var $editable = $("#wrapwrap .o_editable:first");
var $editable = $("#editable_area");
this.rte.historyRecordUndo($editable);
$editable.html( $(event.target).closest(".theme_thumbnail").find(".js_content").html() );
$editable.parent().add("#oe_snippets, #templates, .note-popover").toggleClass("hidden");
@@ -201,7 +196,7 @@ editor.EditorBar.include({
get_snippet_template: function (mailing_model) {
var self = this;
var domain = [['model', '=', mailing_model]];
new Model('mail.template').call('search_read', [domain]).then(function (datas) {
return new Model('mail.template').call('search_read', [domain]).then(function (datas) {
var $template = $("#templates > div:last").addClass("hidden");
var $tclone = $template.find("> div > div:first");
$tclone.siblings().remove();
@@ -221,193 +216,33 @@ editor.EditorBar.include({
}
});
var cache = {};
var rulesCache = [];
function getMatchedCSSRules(a) {
if(cache[a.tagName + "." +a.className]) {
return cache[a.tagName + "." +a.className];
}
if (!rulesCache.length) {
var sheets = document.styleSheets;
for(var i = 0; i < sheets.length; i++) {
var rules = sheets[i].rules || sheets[i].cssRules;
if (rules) {
for(var r = 0; r < rules.length; r++) {
var selectorText = rules[r].selectorText;
if (selectorText &&
rules[r].cssText &&
selectorText.indexOf(".") !== -1 &&
selectorText.indexOf(":hover") === -1 &&
selectorText.indexOf(":before") === -1 &&
selectorText.indexOf(":after") === -1 &&
selectorText.indexOf(":active") === -1 &&
selectorText.indexOf(":link") === -1 &&
selectorText.indexOf("::") === -1) {
var st = selectorText.split(/\s*,\s*/);
for (var k=0; k<st.length; k++) {
rulesCache.push({
'selector': st[k],
'style': rules[r].style,
'point': st[k].split(/\s+/).length
});
}
}
}
}
}
rulesCache.sort(function (a,b) {
return a.point-b.point;
});
}
var css = [];
a.matches = a.matches || a.webkitMatchesSelector || a.mozMatchesSelector || a.msMatchesSelector || a.oMatchesSelector;
for(var r = 0; r < rulesCache.length; r++) {
if (a.matches(rulesCache[r].selector)) {
var style = rulesCache[r].style;
if (style.parentRule) {
var style_obj = {};
for (var k=0, len=style.length; k<len; k++) {
style_obj[style[k]] = style[style[k]];
}
rulesCache[r].style = style = style_obj;
}
css.push(style);
}
}
var style = {};
_.each(css, function (v,k) {
_.each(v, function (v,k) {
if (!style[k] || style[k].indexOf('important') === -1 || v.indexOf('important') !== -1) {
style[k] = v;
}
});
});
return cache[a.tagName + "." +a.className] = style;
}
$.fn.bindFirst = function(name, fn) {
this.bind(name, fn);
var handlers = $._data($(this).get(0), 'events')[name.split('.')[0]];
var handler = handlers.pop();
handlers.splice(0, 0, handler);
};
snippets_editor.BuildingBlock.include({
start: function () {
var self = this;
this._super();
setTimeout(function () {
self.img_to_font();
self.style_to_class();
});
},
snippets_editor.Class.include({
_get_snippet_url: function () {
return snippets_url;
},
clean_for_save: function () {
this._super();
this.class_to_style();
this.font_to_img();
var $editable = $("#wrapwrap .o_editable:first");
var $editable = $("#editable_area");
var theme = ($("#o_left_bar .o_panel_body > div:not(.hidden)").attr("class") || "").replace(/^\s*|\s*o_mail_block[^\s]+\s*|\s*oe_snippet\s*|\s*ui-draggable\s*|\s*$/g, '');
var $theme = $("#wrapwrap .o_editable:first [data-snippet-theme]").removeAttr("data-snippet-theme").removeData("snippet-theme");
var $theme = $("#editable_area [data-snippet-theme]").removeAttr("data-snippet-theme").removeData("snippet-theme");
$editable.children().first().attr("data-snippet-theme", theme);
$editable.find(":hidden").remove();
$editable.find(":not(br):hidden").remove();
},
// convert font awsome into image
font_to_img: function () {
$("#wrapwrap .fa").each(function () {
var $font = $(this);
var content;
_.find(editor.fontIcons, function (font) {
return _.find(editor.getCssSelectors(font.parser), function (css) {
if ($font.is(css[0].replace(/::?before$/, ''))) {
content = css[1].match(/content:\s*['"](.)['"]/)[1];
return true;
}
});
});
if (content) {
var size = parseInt(parseFloat($font.css("font-size"))/parseFloat($font.parent().css("font-size")),10);
var src = _.str.sprintf('/website_mail/font_to_img/%s/%s/'+$font.width(), window.encodeURI(content), window.encodeURI($font.css("color")));
var $img = $("<img/>").attr("src", src)
.attr("data-class", $font.attr("class"))
.attr("style", $font.attr("style"))
.css({"height": size+"em"}).css("font-size", "");
$font.replaceWith($img);
} else {
$font.remove();
}
});
},
// convert image into font awsome
img_to_font: function () {
$("#wrapwrap img[src*='/website_mail/font_to_img/']").each(function () {
var $img = $(this);
var $font = $("<span/>").attr("class", $img.data("class")).attr("style", $img.attr("style")).css("height", "");
$img.replaceWith($font);
});
},
class_to_style: function () {
var $editable = $("#wrapwrap .o_editable:first");
var selector = _.map(rulesCache, function (a) { return a.selector;}).join(",");
$editable.find(selector).each(function () {
var $target = $(this);
var css = getMatchedCSSRules(this);
var style = $target.attr("style") || "";
_.each(css, function (v,k) {
if (style.indexOf(k) === -1) {
style = k+":"+v+";"+style;
}
});
$target.attr("style", style);
});
},
style_to_class: function () {
var $editable = $("#wrapwrap .o_editable:first");
getMatchedCSSRules($editable[0]);
var selector = _.map(rulesCache, function (a) { return a.selector;}).join(",");
var $c = $('<span/>').appendTo("body");
$editable.find(selector).each(function () {
var $target = $(this);
var css = getMatchedCSSRules(this);
var style = "";
_.each(css, function (v,k) {
if (style.indexOf(k) === -1) {
style = k+":"+v+";"+style;
}
});
css = $c.attr("style", style).attr("style").split(/\s*;\s*/);
style = $target.attr("style") || "";
_.each(css, function (v) {
style = style.replace(v, '');
});
$target.attr("style", style.replace(/;+(\s;)*/g, ';').replace(/^;/g, ''));
});
$c.remove();
}
});
window.top.odoo[callback+"_set_value"] = function (value, fields_values, field_name) {
var $editable = $("#wrapwrap .o_editable:first");
var editor_enable = $('body').hasClass('editor_enable');
var _set_value = window.top.odoo[callback+"_updown"];
window.top.odoo[callback+"_updown"] = function (value, fields_values, field_name) {
var $editable = $("#editable_area");
var _val = $editable.prop("innerHTML");
var editor_enable = $('body').hasClass('editor_enable');
value = value || "";
if(value !== _val) {
if(value !==_val) {
if (editor_enable) {
if (value !== fields_values[field_name]) {
editor.editor_bar.rte.historyRecordUndo($editable, true);
rte.history.recordUndo($editable);
}
editor.editor_bar.snippets.make_active(false);
snippets_editor.instance.make_active(false);
}
if (value.indexOf('on_change_model_and_list') === -1) {
@@ -415,11 +250,7 @@ window.top.odoo[callback+"_set_value"] = function (value, fields_values, field_n
$editable.html(value);
if (editor_enable) {
editor.editor_bar.snippets.img_to_font();
editor.editor_bar.snippets.style_to_class();
if (fields_values.mailing_model) {
editor.editor_bar.display_theme_from_html();
}
web_editor.editor_bar.display_theme_from_html();
if (value !== fields_values[field_name]) {
$editable.trigger("content_changed");
@@ -428,17 +259,12 @@ window.top.odoo[callback+"_set_value"] = function (value, fields_values, field_n
}
}
if (fields_values.mailing_model) {
editor.editor_bar.get_snippet_template(fields_values.mailing_model);
if (fields_values.mailing_model && web_editor.editor_bar) {
web_editor.editor_bar.get_snippet_template(fields_values.mailing_model);
if (value.indexOf('on_change_model_and_list') !== -1) {
window.top.odoo[callback+"_downup"](_val);
}
}
};
return {
getMatchedCSSRules: getMatchedCSSRules
};
});
@@ -1,110 +0,0 @@
odoo.define('website_mass_mailing.editor', function (require) {
'use strict';
var ajax = require('web.ajax');
var core = require('web.core');
var editor = require('website.editor');
var snippet_editor = require('website.snippet.editor');
var website = require('website.website');
var _t = core._t;
snippet_editor.options.mailing_list_subscribe = snippet_editor.Option.extend({
choose_mailing_list: function (type, value) {
var self = this;
if (type !== "click") return;
return website.prompt({
id: "editor_new_mailing_list_subscribe_button",
window_title: _t("Add a Newsletter Subscribe Button"),
select: _t("Newsletter"),
init: function (field) {
return website.session.model('mail.mass_mailing.list')
.call('name_search', ['', []], { context: website.get_context() });
},
}).then(function (mailing_list_id) {
self.$target.attr("data-list-id", mailing_list_id);
});
},
drop_and_build_snippet: function() {
var self = this;
this._super();
this.choose_mailing_list('click').fail(function () {
self.editor.on_remove($.Event( "click" ));
});
},
clean_for_save: function () {
this.$target.addClass("hidden");
},
});
website.snippet.options.newsletter_popup = website.snippet.Option.extend({
select_mailing_list: function (type) {
var self = this;
if (type !== "click") return;
return website.prompt({
id: "editor_new_mailing_list_subscribe_popup",
window_title: _t("Add a Newsletter Subscribe Popup"),
select: _t("Newsletter"),
init: function () {
return website.session.model('mail.mass_mailing.list')
.call('name_search', [], { context: website.get_context() });
},
}).then(function (mailing_list_id) {
ajax.jsonRpc('/web/dataset/call', 'call', {
model: 'mail.mass_mailing.list',
method: 'read',
args: [[parseInt(mailing_list_id)], ['popup_content'], website.get_context()],
}).then(function (data) {
self.$target.find(".o_popup_content_dev").empty();
if (data && data[0].popup_content) {
$(data[0].popup_content).appendTo(self.$target.find(".o_popup_content_dev"));
}
});
self.$target.attr("data-list-id", mailing_list_id);
});
},
drop_and_build_snippet: function() {
var self = this;
this._super();
this.select_mailing_list('click').fail(function () {
self.editor.on_remove($.Event( "click" ));
});
},
});
editor.EditorBar.include({
edit: function () {
this._super();
$('body').on('click','#edit_dialog',_.bind(this.edit_dialog, this.rte.editor));
},
save : function() {
var $target = $('#wrapwrap').find('#o_newsletter_popup');
if ($target && $target.length) {
$target.modal('hide');
$target.css("display", "none");
$('.o_popup_bounce_small').show();
if (!$target.find('.o_popup_content_dev').length) {
$target.find('.o_popup_modal_body').prepend($('<div class="o_popup_content_dev" data-oe-placeholder="Type Here ..."></div>'));
}
var content = $('#wrapwrap .o_popup_content_dev').html();
var newsletter_id = $target.parent().attr('data-list-id');
ajax.jsonRpc('/web/dataset/call', 'call', {
model: 'mail.mass_mailing.list',
method: 'write',
args: [parseInt(newsletter_id),
{'popup_content':content},
website.get_context()],
});
}
return this._super();
},
edit_dialog : function() {
$('#wrapwrap').find('#o_newsletter_popup').modal('show');
$('.o_popup_bounce_small').hide();
$('.modal-backdrop').css("z-index", "0");
},
});
});
@@ -0,0 +1,61 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- Template Choice page -->
<template id="FieldTextHtmlInline" name="Editor layout">
<t t-set="head">
<t t-if="enable_editor">
<link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_editor.css" type="text/css"/>
<link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_editor_thumb.css" type="text/css"/>
<script type="text/javascript" src="/mass_mailing/static/src/js/mass_mailing_editor.js"></script>
</t>
</t>
<t t-set="add_html">
<t t-if="enable_editor">
<span id="choose_template" class="o_not_editable o_css_editor">
<span class="btn btn-primary">Theme</span>
<span class="btn btn-primary hidden">Cancel selection</span>
</span>
</t>
</t>
<t t-call="web_editor.layout">
<div>
<div t-if="not edit_translations" id="editable_area" class="o_editable" t-att-data-oe-model="model" t-att-data-oe-field="field" t-att-data-oe-id="res_id" data-oe-type="html"><t t-raw="content"/></div>
<div t-if="edit_translations" id="editable_area"><t t-raw="content"/></div>
</div>
<div id="templates" class="o_not_editable o_css_editor hidden" t-if="enable_editor">
<h1 class="page-header mt16 email_head panel-primary">
Select a theme
<button type="button" class="btn btn-sm btn-default info_popover fa fa-info-circle" data-toggle="popover" data-trigger="focus" title="Help" data-content="Here you can design your own template from scratch by selecting your favorite theme."></button>
</h1>
<t t-call="mass_mailing.mass_mail_theme_list"/>
<div class="hidden">
<h1 class="page-header mt16">
Choose a Template
</h1>
<div id="email_template_list">
<div class="hidden">
<div class="theme_thumbnail">
<div class="overlay text-center">
<p>template</p>
<a class="btn btn-primary btn-sm js_template_set"> Select </a>
</div>
<div class="template_preview js_content"/>
</div>
</div>
</div>
</div>
</div>
</t>
</template>
</data>
</openerp>
+1 -1
View File
@@ -28,7 +28,7 @@
</group>
<notebook>
<page string="Body">
<field name="body_html" nolabel="1" options="{'editor_url': '/website_mail/field/email_template'}" widget="html_frame"/>
<field name="body_html" nolabel="1" widget="html_frame" options="{'editor_url': '/mass_mailing/field/email_template'}"/>
<field name="attachment_ids" widget="many2many_binary"/>
</page>
</notebook>
+9 -9
View File
@@ -264,7 +264,7 @@
</div>
<notebook>
<page string="Popup Content">
<field name="popup_content" options="{'editor_url': '/website_mass_mailing/field/popup_content'}" widget="html_frame"/>
<field name="popup_content" widget="html_frame" options="{'editor_url': '/website_mass_mailing/field/popup_content'}"/>
</page>
</notebook>
</sheet>
@@ -329,8 +329,8 @@
</record>
<record model="ir.ui.view" id="view_mail_mass_mailing_links_tree">
<field name="name">website.links.tree</field>
<field name="model">website.links</field>
<field name="name">link.tracker.tree</field>
<field name="model">link.tracker</field>
<field name="priority">10</field>
<field name="arch" type="xml">
<tree string="Mailing Statistics of Clicks">
@@ -342,9 +342,9 @@
</record>
<record model="ir.ui.view" id="view_mail_mass_mailing_links_search">
<field name="name">website.links.search</field>
<field name="model">website.links</field>
<field name="inherit_id" ref="website_links.view_website_links_filter"/>
<field name="name">link.tracker.search</field>
<field name="model">link.tracker</field>
<field name="inherit_id" ref="link_tracker.view_link_tracker_filter"/>
<field name="arch" type="xml">
<search string="Tracked Link">
<field name="mass_mailing_id"/>
@@ -355,7 +355,7 @@
<record model="ir.actions.act_window" id="action_view_mass_mailing_links_statistics">
<field name="name">Statistics of Clicks</field>
<field name="res_model">website.links</field>
<field name="res_model">link.tracker</field>
<field name="view_mode">tree</field>
<field name="context">{'search_default_mass_mailing_id': active_id}</field>
</record>
@@ -444,7 +444,7 @@
</group>
<notebook>
<page string="Mail Body">
<field name="body_html" options="{'editor_url': '/website_mail/field/email_template'}" widget="html_frame"/>
<field name="body_html" widget="html_frame" options="{'editor_url': '/mass_mailing/field/email_template'}"/>
<field name="attachment_ids" widget="many2many_binary" string="Attach a file"/>
</page>
<page string="Options">
@@ -709,7 +709,7 @@
<record model="ir.actions.act_window" id="dropdb snipp">
<field name="name">Statistics of Clicks</field>
<field name="res_model">website.links</field>
<field name="res_model">link.tracker</field>
<field name="view_mode">tree</field>
<field name="context">{'search_default_mass_mailing_campaign_id': active_id}</field>
</record>
-116
View File
@@ -1,116 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="mailing_list_subscribe" inherit_id="website.snippets" name="Subscribe to Newsletter">
<xpath expr="//div[@id='snippet_content']/div[@class='o_panel_body']" position="inside">
<div>
<div class="oe_snippet_thumbnail">
<img class="oe_snippet_thumbnail_img" src="/mass_mailing/static/src/img/blocks/button_newsletter.png"/>
<span class="oe_snippet_thumbnail_title">Newsletter</span>
</div>
<div class="oe_snippet_body input-group js_subscribe"
data-list-id="0">
<input
type="email"
name="email"
class="js_subscribe_email form-control"
placeholder="your email..."/>
<span class="input-group-btn">
<a href="#" class="btn btn-primary js_subscribe_btn">Subscribe</a>
<a href="#" class="btn btn-success js_subscribed_btn hidden" disabled="disabled">Thanks</a>
</span>
<div class="alert alert-success hidden">Thanks for your subscription!</div>
</div>
</div>
</xpath>
<xpath expr="//div[@id='snippet_options']" position="inside">
<div data-js='mailing_list_subscribe'
data-selector=".js_subscribe"
data-drop-near="p, h1, h2, h3, blockquote, .well, .panel">
<li data-choose_mailing_list=""><a>Change Newsletter</a></li>
</div>
</xpath>
</template>
<template id="website_popup_snippet" name="popup snippet" inherit_id="website.snippets">
<xpath expr="//div[@id='snippet_feature']/div[@class='o_panel_body']" position="inside">
<div>
<div class="oe_snippet_thumbnail">
<img class="oe_snippet_thumbnail_img" src="/mass_mailing/static/src/img/blocks/bounce.png" />
<span class="oe_snippet_thumbnail_title">Newsletter Popup</span>
</div>
<div class="o_newsletter_popup" data-list-id="0">
<div class="alert alert-warning alert-dismissible fade in css_non_editable_mode_hidden o_not_editable" role="alert">
<strong>Newsletter Popup!</strong> The newsletter popup snippet effect is active on this page. Click <a id="edit_dialog" href="#">Here To Edit Dialog Content</a>
</div>
<div class="modal modal-dialog modal-md fade fade-custom" id="o_newsletter_popup" tabindex="-1" role="dialog">
<div class="modal-content o_popup_modal_content">
<a href="#" class="o_popup_btn_close o_not_editable" data-dismiss="modal">&amp;times;</a>
<div class="o_popup_modal_body text-center">
<div class="o_popup_content_dev" data-oe-placeholder="Type Here ..."/>
<div class="input-group o_not_editable o_popup_animated o_popup_bounce_del500ms o_popup_bounce_small" >
<input type="email" name="email" class="popup_subscribe_email form-control" placeholder="your email..." autofocus="autofocus"/>
<span class="input-group-btn">
<a href="#" class="btn btn-success popup_subscribe_btn">Subscribe</a>
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</xpath>
</template>
<template id="website_popup_options" name="Popup Options" inherit_id="website.snippet_options">
<xpath expr="//div" position="after">
<div data-js='newsletter_popup'
data-selector=".o_newsletter_popup"
data-drop-in=".oe_structure, [data-oe-type=html]">
<li data-select_mailing_list=""><a>Change Newsletter</a></li>
</div>
</xpath>
</template>
<template id="FieldTextHtmlPopupContent" name="Editor layout">
<t t-set="head">
<link rel="stylesheet" href="/website_mail/static/src/css/snippets.css" type="text/css"/>
<link rel="stylesheet" href="/mass_mailing/static/src/css/mass_mailing_popup.css" type="text/css"/>
<link rel="stylesheet" href="/website_mail/static/src/css/website_mail_iframe.css" type="text/css"/>
</t>
<t t-call="website.editor_layout">
<div class="modal-dialog modal-md show" id="o_newsletter_popup">
<div class="modal-content o_popup_modal_content">
<div class="o_popup_modal_body text-center">
<div class="o_popup_content_dev">
<div class="o_editable" t-att-data-oe-model="model" t-att-data-oe-field="field" t-att-data-oe-id="res_id" data-oe-type="html">
<!-- Can be removed once default values are ok for the editor -->
<t t-raw="content">
<div class="o_popup_modal_header text-center">
<h3 class="o_popup_modal_title mt8">Odoo Presents</h3>
</div>
<div class="o_popup_message">
<font>7</font>
<strong>Business Hacks</strong>
<span> to<br/>boost your marketing</span>
</div>
<p class="o_message_paragraph">Join our Marketing newsletter and get <strong>this white paper instantly</strong></p>
</t>
</div>
</div>
</div>
</div>
</div>
</t>
</template>
</data>
</openerp>
@@ -56,7 +56,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -74,7 +74,7 @@
<tr>
<td valign="center" style="text-align:center;font-size: 30px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: inherit;">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: inherit;">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -91,28 +91,28 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px;">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse;background:inherit;color:inherit">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse;background:inherit;color:inherit">
<tr>
<td align="right">
<a t-att-href="(website.social_facebook) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon"/></a>
<a t-att-href="(website.social_facebook) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon"/></a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_twitter) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a t-att-href="(website.social_twitter) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_googleplus) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a t-att-href="(website.social_googleplus) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_linkedin) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a t-att-href="(website.social_linkedin) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
<td align="right" style="padding-left:5px">
<a href="#"><img src="/website_mail/static/src/img/theme_imgs/social_rss.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a href="#"><img src="/mass_mailing/static/src/img/theme_imgs/social_rss.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
</tr>
</table>
@@ -128,28 +128,28 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px;font-size: 30px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: inherit">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: inherit">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse;background:inherit;color:inherit">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse;background:inherit;color:inherit">
<tr>
<td align="right">
<a t-att-href="(website.social_facebook) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a t-att-href="(website.social_facebook) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_twitter) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a t-att-href="(website.social_twitter) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_googleplus) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a t-att-href="(website.social_googleplus) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_linkedin) or '#'"><img src="/website_mail/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a t-att-href="(website.social_linkedin) or '#'"><img src="/mass_mailing/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
<td align="right" style="padding-left:5px">
<a href="#"><img src="/website_mail/static/src/img/theme_imgs/social_rss.png" style="height:auto;max-width:70px" alt="social icon" /></a>
<a href="#"><img src="/mass_mailing/static/src/img/theme_imgs/social_rss.png" style="height:auto;max-width:70px" alt="social icon" /></a>
</td>
</tr>
</table>
@@ -343,7 +343,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;background:inherit;color:inherit;border-collapse:collapse;color:inherit">
<tr>
<td style="padding:10px 30px;font-size:14px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -401,7 +401,7 @@
</span> Footers
</div>
<div class="o_panel_body">
<div name="Social + Text" class="basic_theme o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="basic_theme o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #FFFFFF repeat top /100%;color:#777777">
<table style="margin: 0 auto;border-collapse:collapse;background:inherit;color:inherit;width:600px" cellpadding="0" cellspacing="0">
<tbody>
@@ -412,27 +412,27 @@
<td align="right">
&amp;nbsp;
<a t-att-href="(website.social_facebook) or '#'">
<img src="/website_mail/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon" />
</a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_twitter) or '#'">
<img src="/website_mail/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" />
</a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_googleplus) or '#'">
<img src="/website_mail/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon" />
</a>
</td>
<td align="right" style="padding-left:5px">
<a t-att-href="(website.social_linkedin) or '#'">
<img src="/website_mail/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon" />
</a>
</td>
<td align="right" style="padding-left:5px">
<a href="#">
<img src="/website_mail/static/src/img/theme_imgs/social_rss.png" style="height:auto;max-width:70px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_rss.png" style="height:auto;max-width:70px" alt="social icon" />
</a>
&amp;nbsp;
</td>
@@ -459,7 +459,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding:10px">
&amp;nbsp;
<a style="color:inherit" href="/unsubscribe_from_list">Unsubscribe</a> | <a style="color:inherit" href="/page/contactus">Contact</a>
<a style="color:inherit" href="/unsubscribe_from_list">Unsubscribe</a>
<t t-if="website"> | <a style="color:inherit" href="/page/contactus">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -481,7 +482,13 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:20px;text-align:center">
&amp;nbsp;
<a style="color:inherit" href="/page/contactus">Contact Us</a> | <a style="color:inherit" t-att-href="(website.social_facebook) or '#'">Facebook</a> | <a style="color:inherit" t-att-href="(website.social_twitter) or '#'">Twitter</a> | <a style="color:inherit" href="#">Support</a> | <a href="/unsubscribe_from_list" style="color:inherit">Unsubscribe</a>
<t t-if="website">
<a style="color:inherit" href="/page/contactus">Contact Us</a> |
<a style="color:inherit" t-att-href="(website.social_facebook) or '#'">Facebook</a> |
<a style="color:inherit" t-att-href="(website.social_twitter) or '#'">Twitter</a> |
<a style="color:inherit" href="#">Support</a> |
</t>
<a href="/unsubscribe_from_list" style="color:inherit">Unsubscribe</a>
&amp;nbsp;
</td>
</tr>
@@ -496,7 +503,8 @@
</div>
<div id="snippet_options" class="hidden">
<t t-call="website_mail.snippet_options"/>
<t t-call="web_editor.snippet_options"/>
<t t-call="mass_mailing.snippet_options"/>
</div>
</template>
@@ -9,11 +9,6 @@
data-selector="img, .mv, .col_mv">
</div>
<div data-js='media'
data-selector="img:not(.cke_iframe)">
<li data-edition="edition"><a>Change Image ...</a></li>
</div>
<div data-js='table_row'
data-selector=".row"
data-drop-near=".row">
@@ -35,7 +30,6 @@
data-drop-in="[data-oe-field='body_html']">
</div>
<div data-js='resize'
data-selector="div.snippet_row"
data-drop-in=".oe_structure, [data-oe-type=html]">
@@ -5,13 +5,13 @@
<xpath expr="//div[@id='email_designer_default_headers']/div[2]" position="inside">
<div name="Center Logo" class="airmail o_mail_block_header_center_logo">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #f9f8f8 repeat top /100%">
<div style=" width:600px; background-image: url('/website_mail/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px; background-position:-2% 0%; display:block"/>
<div style=" width:600px; background-image: url('/mass_mailing/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px; background-position:-2% 0%; display:block"/>
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse;width:600px;">
<tbody>
<tr>
<td width="100%" valign="top" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -24,13 +24,13 @@
<div name="Center Text" class="airmail o_mail_block_header_center_text">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #f9f8f8 repeat top /100%;color: #464646">
<div style=" width:600px; background-image: url('/website_mail/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px; background-position:-2% 0%; display:block"/>
<div style=" width:600px; background-image: url('/mass_mailing/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px; background-position:-2% 0%; display:block"/>
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse;width:600px">
<tbody>
<tr>
<td width="100%" valign="top" style="text-align:center;font-size: 30px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#464646">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#464646">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -43,18 +43,18 @@
<div name="Logo - Social" class="airmail o_mail_block_header_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #f9f8f8 repeat top /100%;color: rgb(70,70,70)">
<div style=" width:600px; background-image: url('/website_mail/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px; background-position:-2% 0%; display:block"/>
<div style=" width:600px; background-image: url('/mass_mailing/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px; background-position:-2% 0%; display:block"/>
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse;width:600px">
<tr>
<td width="100%" valign="top" style="font-size: 30px;padding-left:5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -94,18 +94,18 @@
<div name="Text - Social" class="airmail o_mail_block_header_text_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #f9f8f8 repeat top /100%;color:#464646">
<div style=" width:600px; background-image: url('/website_mail/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px;color: rgb(70,70,70); background-position:-2% 0%; display:block "/>
<div style=" width:600px; background-image: url('/mass_mailing/static/src/img/theme_imgs/airmail.png'); background-repeat: repeat-x; background-size: contain; height: 7px;color: rgb(70,70,70); background-position:-2% 0%; display:block "/>
<table width="100%" cellspacing="0" cellpadding="0" border="0" style="border-collapse:collapse">
<tr>
<td width="100%" valign="top" style="vertical-align: middle;padding-left:5px;font-size: 30px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#464646">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#464646">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -267,7 +267,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -277,14 +277,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -482,7 +482,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;border-collapse:collapse;color:inherit">
<tr>
<td style="padding:10px 30px;font-size:14px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -494,7 +494,7 @@
</div>
<div name="Background Image" class="airmail o_mail_block_text_on_img">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -602,7 +602,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="airmail o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="airmail o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #E5E5E5 repeat top /100%;color:#464646">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:100%;border-collapse:collapse;color:inherit">
@@ -653,7 +653,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding:10px;color:#464646">
&amp;nbsp;
<a href="/unsubscribe_from_list" style="color:#464646">Unsubscribe</a> | <a href="/page/contactus" style="color:#464646">Contact</a>
<a href="/unsubscribe_from_list" style="color:#464646">Unsubscribe</a>
<t t-if="website"> | <a href="/page/contactus" style="color:#464646">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -675,12 +676,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:10px;text-align:center">
&amp;nbsp;
<a href="/page/contactus" style="padding-right:3px;color:#464646">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="padding-right:3px;color:#464646">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="padding-right:3px;color:#464646">Twitter</a> |
<t t-if="website">
<a href="/page/contactus" style="padding-right:3px;color:#464646">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="padding-right:3px;color:#464646">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="padding-right:3px;color:#464646">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#464646">Unsubscribe</a>
&amp;nbsp;
@@ -10,7 +10,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -28,7 +28,7 @@
<tr>
<td style="font-size: 30px; text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#414141">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#414141">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -45,13 +45,13 @@
<tr>
<td width="100%" valign="top" style="font-size: 30px;padding-left:5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="height:auto;max-width:600px;width:200px;padding:10px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -95,13 +95,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #414141;font-size: 30px; text-align:center">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #414141;font-size: 30px; text-align:center">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -276,7 +276,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -286,14 +286,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -466,7 +466,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;border-collapse:collapse;color:inherit">
<tr>
<td style="padding:10px 30px;font-size:14px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -478,7 +478,7 @@
</div>
<div name="Background Image" class="cleave o_mail_block_text_on_img">
<div class="snippet_row bg-color" style=" padding:0px;width:600px;margin:auto;background: url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row bg-color" style=" padding:0px;width:600px;margin:auto;background: url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -586,7 +586,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="cleave o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="cleave o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #E6E5E5 repeat top /100%;color:#414141">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:100%;border-collapse:collapse;color:inherit">
@@ -635,7 +635,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding-top:10px;padding-bottom:5px">
&amp;nbsp;
<a href="/unsubscribe_from_list" style="color:#414141">Unsubscribe</a> | <a href="/page/contactus" style="color:#414141">Contact</a>
<a href="/unsubscribe_from_list" style="color:#414141">Unsubscribe</a>
<t t-if="website"> | <a href="/page/contactus" style="color:#414141">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -657,12 +658,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:10px;text-align:center">
&amp;nbsp;
<a href="/page/contactus" style="color:#414141">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="color:#414141">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="color:#414141">Twitter</a> |
<t t-if="website">
<a href="/page/contactus" style="color:#414141">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="color:#414141">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="color:#414141">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#414141">Unsubscribe</a>
&amp;nbsp;
@@ -10,7 +10,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -28,7 +28,7 @@
<tr>
<td style="font-size: 30px; text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#fff">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#fff">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -45,13 +45,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -95,13 +95,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px;font-size: 30px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #fff">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #fff">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -248,7 +248,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -258,14 +258,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -511,7 +511,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;border-collapse:collapse;color:inherit">
<tr>
<td style="padding:10px 30px;font-size:14px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -523,7 +523,7 @@
</div>
<div name="Background Image" class="go o_mail_block_text_on_img">
<div class="snippet_row bg-color" style=" padding:0px;width:600px;margin:auto;background: url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row bg-color" style=" padding:0px;width:600px;margin:auto;background: url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -631,7 +631,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="go o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="go o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #2B934F repeat top /100%;color:#EEEEEE">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:100%;border-collapse:collapse;color:inherit">
@@ -682,7 +682,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding:10px;color:#fff">
&amp;nbsp;
<a style="color:#fff" href="/unsubscribe_from_list">Unsubscribe</a> | <a style="color:#fff" href="/page/contactus">Contact</a>
<a style="color:#fff" href="/unsubscribe_from_list">Unsubscribe</a>
<t t-if="website"> | <a style="color:#fff" href="/page/contactus">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -704,12 +705,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:20px;text-align:center">
&amp;nbsp;
<a style="color:#fff" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#fff" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#fff" t-att-href="website.social_twitter">Twitter</a> |
<t t-if="website">
<a style="color:#fff" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#fff" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#fff" t-att-href="website.social_twitter">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#fff">Unsubscribe</a>
&amp;nbsp;
@@ -10,7 +10,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -28,7 +28,7 @@
<tr>
<td style="font-size: 30px; text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#fff">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#fff">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -45,39 +45,39 @@
<tr>
<td valign="center" width="270" style="padding-left:5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="height:auto;max-width:600px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
<a t-att-href="website.social_facebook">
<img src="/website_mail/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon"/>
<img src="/mass_mailing/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon"/>
</a>
</td>
</t>
<t t-if="website.social_twitter">
<td align="right" style="padding-left:7px">
<a t-att-href="website.social_twitter">
<img src="/website_mail/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon"/>
<img src="/mass_mailing/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon"/>
</a>
</td>
</t>
<t t-if="website.social_googleplus">
<td align="right" style="padding-left:7px">
<a t-att-href="website.social_googleplus">
<img src="/website_mail/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon"/>
<img src="/mass_mailing/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon"/>
</a>
</td>
</t>
<t t-if="website.social_linkedin">
<td align="right" style="padding-left:7px">
<a t-att-href="website.social_linkedin">
<img src="/website_mail/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon"/>
<img src="/mass_mailing/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon"/>
</a>
</td>
</t>
@@ -95,39 +95,39 @@
<tr>
<td valign="center" width="270" style="padding-left:5px;font-size:30px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #fff">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #fff">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
<a t-att-href="website.social_facebook">
<img src="/website_mail/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px" alt="social icon" />
</a>
</td>
</t>
<t t-if="website.social_twitter">
<td align="right" style="padding-left:7px">
<a t-att-href="website.social_twitter">
<img src="/website_mail/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px" alt="social icon" />
</a>
</td>
</t>
<t t-if="website.social_googleplus">
<td align="right" style="padding-left:7px">
<a t-att-href="website.social_googleplus">
<img src="/website_mail/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon"/>
<img src="/mass_mailing/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px" alt="social icon"/>
</a>
</td>
</t>
<t t-if="website.social_linkedin">
<td align="right" style="padding-left:7px">
<a t-att-href="website.social_linkedin">
<img src="/website_mail/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon"/>
<img src="/mass_mailing/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px" alt="social icon"/>
</a>
</td>
</t>
@@ -314,7 +314,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -324,14 +324,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -483,7 +483,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;border-collapse:collapse;color:inherit">
<tr>
<td style="padding:10px 30px;font-size:14px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -495,7 +495,7 @@
</div>
<div name="Background Image" class="narrative o_mail_block_text_on_img">
<div class="snippet_row bg-color" style=" padding:0px;width:600px;margin:auto;background: url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row bg-color" style=" padding:0px;width:600px;margin:auto;background: url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -603,7 +603,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="narrative o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="narrative o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #1F1F1F repeat top /100%;color:#fff">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:600px;border-collapse:collapse;color:inherit">
@@ -613,22 +613,22 @@
&amp;nbsp;
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook">
<img src="/website_mail/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_facebook.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
</a>
</t>
<t t-if="website.social_googleplus">
<a t-att-href="website.social_googleplus">
<img src="/website_mail/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_twitter.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
</a>
</t>
<t t-if="website.social_linkedin">
<a t-att-href="website.social_linkedin">
<img src="/website_mail/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_googleplus.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
</a>
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter">
<img src="/website_mail/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
<img src="/mass_mailing/static/src/img/theme_imgs/social_linkedin.png" style="height:auto;max-width:70px;padding-right:6px" alt="social icon" />
</a>
</t>
&amp;nbsp;
@@ -654,7 +654,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding-top:10px;padding-bottom:5px;color:#fff">
&amp;nbsp;
<a href="/unsubscribe_from_list" style="color:#fff">Unsubscribe</a> | <a href="/page/contactus" style="color:#fff">Contact</a>
<a href="/unsubscribe_from_list" style="color:#fff">Unsubscribe</a>
<t t-if="website"> | <a href="/page/contactus" style="color:#fff">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -676,12 +677,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:20px;text-align:center">
&amp;nbsp;
<a href="/page/contactus" style="color:#fff">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="color:#fff">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="color:#fff">Twitter</a> |
<t t-if="website">
<a href="/page/contactus" style="color:#fff">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="color:#fff">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="color:#fff">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#fff">Unsubscribe</a>
&amp;nbsp;
@@ -10,7 +10,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -28,7 +28,7 @@
<tr>
<td style="font-size: 30px; text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#414141">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#414141">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -45,13 +45,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -62,21 +62,21 @@
</t>
<t t-if="website.social_googleplus">
<td align="right" style="padding-left:5px">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color:#44B7B7;" class="fa fa-google-plus-square fa-2x"></span>
</a>
</td>
</t>
<t t-if="website.social_linkedin">
<td align="right" style="padding-left:5px">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_linkedin">
<span style="color:#44B7B7;" class="fa fa-linkedin-square fa-2x"></span>
</a>
</td>
</t>
<t t-if="website.social_twitter">
<td align="right" style="padding-left:5px">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color:#44B7B7;" class="fa fa-twitter-square fa-2x"></span>
</a>
</td>
@@ -95,13 +95,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #414141;font-size: 30px; text-align:center">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #414141;font-size: 30px; text-align:center">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -112,21 +112,21 @@
</t>
<t t-if="website.social_googleplus">
<td align="right" style="padding-left:5px">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color:#44B7B7;" class="fa fa-google-plus-square fa-2x"></span>
</a>
</td>
</t>
<t t-if="website.social_linkedin">
<td align="right" style="padding-left:5px">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_linkedin">
<span style="color:#44B7B7;" class="fa fa-linkedin-square fa-2x"></span>
</a>
</td>
</t>
<t t-if="website.social_twitter">
<td align="right" style="padding-left:5px">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color:#44B7B7;" class="fa fa-twitter-square fa-2x"></span>
</a>
</td>
@@ -246,7 +246,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -256,14 +256,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -450,7 +450,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;inherit;border-collapse:collapse;color:inherit">
<tr>
<td style="padding:10px 30px;font-size:14px;line-height:20px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -462,7 +462,7 @@
</div>
<div name="Background Image" class="neopolitan o_mail_block_text_on_img">
<div class="snippet_row" style="padding:0px;width:600px;margin:auto;background:url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row" style="padding:0px;width:600px;margin:auto;background:url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -570,7 +570,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="neopolitan o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="neopolitan o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #414141 repeat top /100%;color:#44B7B7">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:100%;border-collapse:collapse;color:inherit;color:inherit">
@@ -621,7 +621,9 @@
<tr>
<td style="font-size:12px;text-align:center;padding-top:10px;color:#44B7B7;padding-bottom:5px">
&amp;nbsp;
<a href="/unsubscribe_from_list" style="color:#44B7B7">Unsubscribe</a> | <a href="/page/contactus" style="color:#44B7B7">Contact</a>&amp;nbsp;
<a href="/unsubscribe_from_list" style="color:#44B7B7">Unsubscribe</a>
<t t-if="website"> | <a href="/page/contactus" style="color:#44B7B7">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
<tr>
@@ -642,12 +644,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:10px;text-align:center">
&amp;nbsp;
<a href="/page/contactus" style="color:#44B7B7">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="color:#44B7B7">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="color:#44B7B7">Twitter</a> |
<t t-if="website">
<a href="/page/contactus" style="color:#44B7B7">Contact Us</a> |
<t t-if="website.social_facebook">
<a t-att-href="website.social_facebook" style="color:#44B7B7">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a t-att-href="website.social_twitter" style="color:#44B7B7">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#44B7B7">Unsubscribe</a>
&amp;nbsp;
@@ -10,7 +10,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -28,7 +28,7 @@
<tr>
<td style="font-size: 30px; text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#37302d">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#37302d">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -45,13 +45,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -95,13 +95,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #37302d;font-size: 30px; text-align:center">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #37302d;font-size: 30px; text-align:center">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -243,7 +243,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -253,14 +253,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -465,7 +465,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;border-collapse:collapse;color:inherit">
<tr>
<td style="padding:10px 30px;font-size:14px;line-height:20px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -477,7 +477,7 @@
</div>
<div name="Background Image" class="skyline o_mail_block_text_on_img">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -585,7 +585,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="skyline o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="skyline o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #C2C2C2 repeat top /100%;color:#37302d">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:100%;border-collapse:collapse;color:inherit">
@@ -636,7 +636,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding:10px;color:#37302D">
&amp;nbsp;
<a style="color:#37302D" href="/unsubscribe_from_list">Unsubscribe</a> | <a style="color:#37302D" href="/page/contactus">Contact</a>
<a style="color:#37302D" href="/unsubscribe_from_list">Unsubscribe</a>
<t t-if="website"> | <a style="color:#37302D" href="/page/contactus">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -658,12 +659,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:20px;text-align:center">
&amp;nbsp;
<a style="color:#37302D" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#37302D" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#37302D" t-att-href="website.social_twitter">Twitter</a> |
<t t-if="website">
<a style="color:#37302D" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#37302D" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#37302D" t-att-href="website.social_twitter">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#37302D">Unsubscribe</a>
&amp;nbsp;
@@ -10,7 +10,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -28,7 +28,7 @@
<tr>
<td style="font-size: 30px; text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #414141">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #414141">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -45,13 +45,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px;width:200px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -95,13 +95,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #414141;font-size: 30px; text-align:center">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #414141;font-size: 30px; text-align:center">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -246,7 +246,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -256,14 +256,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -466,7 +466,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;color:inherit;border-collapse:collapse">
<tr>
<td style="padding:10px 30px;font-size:14px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -478,7 +478,7 @@
</div>
<div name="Background Image" class="sunday o_mail_block_text_on_img">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:100%;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -586,7 +586,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="sunday o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="sunday o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #2F2F2F repeat top /100%;color:#EEEEEE">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:100%;border-collapse:collapse;color:inherit">
@@ -637,7 +637,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding:10px;color:#fff">
&amp;nbsp;
<a style="color:#fff" href="/unsubscribe_from_list">Unsubscribe</a> | <a style="color:#fff" href="/page/contactus">Contact</a>
<a style="color:#fff" href="/unsubscribe_from_list">Unsubscribe</a>
<t t-if="website"> | <a style="color:#fff" href="/page/contactus">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -659,12 +660,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:20px;text-align:center">
&amp;nbsp;
<a style="color:#fff" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#fff" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#fff" t-att-href="website.social_twitter">Twitter</a> |
<t t-if="website">
<a style="color:#fff" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#fff" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#fff" t-att-href="website.social_twitter">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#fff">Unsubscribe</a>
&amp;nbsp;
@@ -10,7 +10,7 @@
<tr>
<td valign="center" style="text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px" alt="Your Logo" />
</a>
&amp;nbsp;
@@ -26,9 +26,9 @@
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;border-collapse:collapse;width:600px">
<tbody>
<tr>
<td style="font-website_mail/font_to_img: 30px; text-align:center">
<td style="font-web_editor/font_to_img: 30px; text-align:center">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color:#008000">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color:#008000">
<strong>Your Company</strong>
</a>
&amp;nbsp;
@@ -45,13 +45,13 @@
<tr>
<td valign="center" width="270" style="padding:10px 10px 10px 5px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none">
<img src="/logo.png" style="padding:10px;height:auto;max-width:600px" alt="Your Logo" />
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -95,13 +95,13 @@
<tr>
<td valign="center" width="270" style="padding-left:5px;font-size:30px">
&amp;nbsp;
<a t-att-href="(website.company_id.website) or '#'" style="text-decoration:none;color: #008000">
<a t-att-href="(company_id.website) or '#'" style="text-decoration:none;color: #008000">
<strong>Your Company</strong>
</a>
&amp;nbsp;
</td>
<td valign="center" width="270" style="padding:10px 15px 10px 10px;vertical-align:middle">
<table border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<table t-if="website" border="0" cellpadding="0" cellspacing="0" align="right" style="border-collapse:collapse">
<tr>
<t t-if="website.social_facebook">
<td align="right">
@@ -249,7 +249,7 @@
</ul>
</td>
<td style="width: 60px;vertical-align:middle;display: table-cell">
<ul style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<ul t-if="website" style="border-left:1px solid #e6e6e6;list-style-type:none;padding-left:16px">
<t t-if="website.social_facebook">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
@@ -259,14 +259,14 @@
</t>
<t t-if="website.social_twitter">
<li style="width:34%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_twitter">
<span style="color: rgb(75,110,168);" class="fa fa-twitter-square fa-2x"></span>
</a>
</li>
</t>
<t t-if="website.social_googleplus">
<li style="width:33%;margin-left:0">
<a t-att-href="website.social_facebook">
<a t-att-href="website.social_googleplus">
<span style="color: rgb(221,75,57);" class="fa fa-google-plus-square fa-2x"></span>
</a>
</li>
@@ -486,7 +486,7 @@
<table style="width:100%;text-align:justify;margin:0 auto;color:#414141;border-collapse:collapse">
<tr>
<td style="padding:10px 30px;font-size:14px">
<p style="margin:0">Dear John</p>
<p style="margin:0">Dear ${object.name}</p>
<p style="margin:0">Great stories have personality. Consider telling a great story that provides personality. Writing a story with personality for potential clients will assist with making a relationship connection. This shows up in small quirks like word choices or phrases. Write from your point of view, not from someone else's experience.<br/></p>
<p style="margin:0">Great stories are for everyone even when only written for just one person. If you try to write with a wide general audience in mind, your story will ring false and be bland. No one will be interested. Write for one person. If it’s genuine for the one, it’s genuine for the rest.</p>
<p style="margin:0">Kind Regards,</p>
@@ -498,7 +498,7 @@
</div>
<div name="Background Image" class="zenflat o_mail_block_text_on_img">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/website_mail/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: url('/mass_mailing/static/src/img/theme_imgs/skyline_bg.gif') top /cover;background-repeat:no-repeat;color:#fff">
<table cellspacing="0" cellpadding="0" style="width:600px;background:inherit;border-collapse:collapse;color:inherit">
<tbody>
<tr>
@@ -606,7 +606,7 @@
</xpath>
<xpath expr="//div[@id='email_designer_default_footer']/div[2]" position="inside">
<div name="Social + Text" class="zenflat o_mail_block_footer_social">
<div t-if="website" name="Social + Text" class="zenflat o_mail_block_footer_social">
<div class="snippet_row bg-color" style="padding:0px;width:600px;margin:auto;background: #EEEEEE repeat top /100%;color:#414141">
<div style="padding:10px">
<table cellspacing="0" cellpadding="0" style="margin: 0 auto;width:600px;border-collapse:collapse">
@@ -657,7 +657,8 @@
<tr>
<td style="font-size:12px;text-align:center;padding-top:10px;padding-bottom:5px;color:#414141">
&amp;nbsp;
<a style="color:#414141" href="/unsubscribe_from_list">Unsubscribe</a> | <a style="color:#414141" href="/page/contactus">Contact</a>
<a style="color:#414141" href="/unsubscribe_from_list">Unsubscribe</a>
<t t-if="website"> | <a style="color:#414141" href="/page/contactus">Contact</a> </t>
&amp;nbsp;
</td>
</tr>
@@ -679,12 +680,14 @@
<tr>
<td valign="middle" align="right" style="font-size:12px;padding:20px;text-align:center">
&amp;nbsp;
<a style="color:#414141" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#414141" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#414141" t-att-href="website.social_twitter">Twitter</a> |
<t t-if="website">
<a style="color:#414141" href="/page/contactus">Contact Us</a> |
<t t-if="website.social_facebook">
<a style="color:#414141" t-att-href="website.social_facebook">Facebook</a> |
</t>
<t t-if="website.social_twitter">
<a style="color:#414141" t-att-href="website.social_twitter">Twitter</a> |
</t>
</t>
<a href="/unsubscribe_from_list" style="color:#414141">Unsubscribe</a>
&amp;nbsp;
@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<template id="assets_frontend" inherit_id="website.assets_frontend" name="wesbite_mass_mailing assets">
<xpath expr="." position="inside">
</xpath>
</template>
<template id="assets_frontend" inherit_id="website.assets_frontend" name="Mail Frontend Assets">
<xpath expr="." position="inside">
<link rel="stylesheet" type="text/css" href="/mass_mailing/static/src/css/mass_mailing_popup.css" />
<script type="text/javascript" src="/mass_mailing/static/src/js/website_mass_mailing.js"></script>
</xpath>
</template>
<template id="assets_editor" inherit_id="website.assets_editor" name="wesbite_mass_mailing Editor assets">
<xpath expr="/t" position="inside">
<script type="text/javascript" src="/mass_mailing/static/src/js/website_mass_mailing.editor.js" groups="base.group_website_publisher"></script>
</xpath>
</template>
</data>
</openerp>
-8
View File
@@ -10,11 +10,3 @@
padding: 0px;
width: 100%;
min-height: 200px; }
.openerp .oe_form .oe_form_field.oe_memo .cleditorMain {
border: none;
padding: 0px; }
.o-form-view.o_note_form_view .o_form_statusbar .o_statusbar_buttons, .o-form-view.o_note_form_view .o_form_statusbar .o_statusbar_status {
order: 1;
}
-8
View File
@@ -24,11 +24,3 @@
padding: 0px
width: 100%
min-height: 200px
.cleditorMain
border: none
padding: 0px
.o-form-view.o_note_form_view
.o_form_statusbar
.o_statusbar_buttons, .o_statusbar_status
order: 1 // many2many tag before statusbar button div (no button)
+1 -1
View File
@@ -7,7 +7,7 @@ odoo.define('point_of_sale.gui', function (require) {
// it is available to all pos objects trough the '.gui' field.
var core = require('web.core');
var Model = require('web.Model');
var Model = require('web.DataModel');
var _t = core._t;
+1 -1
View File
@@ -5,7 +5,7 @@ var BarcodeParser = require('barcodes.BarcodeParser');
var PosDB = require('point_of_sale.DB');
var devices = require('point_of_sale.devices');
var core = require('web.core');
var Model = require('web.Model');
var Model = require('web.DataModel');
var session = require('web.session');
var time = require('web.time');
var utils = require('web.utils');
@@ -31,7 +31,7 @@ var PosBaseWidget = require('point_of_sale.BaseWidget');
var gui = require('point_of_sale.gui');
var models = require('point_of_sale.models');
var core = require('web.core');
var Model = require('web.Model');
var Model = require('web.DataModel');
var utils = require('web.utils');
var formats = require('web.formats');
@@ -7,7 +7,7 @@ var gui = require('point_of_sale.gui');
var models = require('point_of_sale.models');
var screens = require('point_of_sale.screens');
var core = require('web.core');
var Model = require('web.Model');
var Model = require('web.DataModel');
var QWeb = core.qweb;
var _t = core._t;
@@ -2,7 +2,7 @@ odoo.define('purchase_requisition.purchase_requisition', function (require) {
"use strict";
var core = require('web.core');
var Model = require('web.Model');
var Model = require('web.DataModel');
var ListView = require('web.ListView');
var QWeb = core.qweb;
+8 -9
View File
@@ -28,22 +28,21 @@ class ReportController(Controller):
if docids:
docids = [int(i) for i in docids.split(',')]
options_data = None
if data.get('options'):
options_data = simplejson.loads(data['options'])
data['options'] = simplejson.loads(data['options'])
if data.get('context'):
# Ignore 'lang' here, because the context in data is the one from the webclient *but* if
# the user explicitely wants to change the lang, this mechanism overwrites it.
data_context = simplejson.loads(data['context'])
if data_context.get('lang'):
del data_context['lang']
context.update(data_context)
# the user explicitely wants to change the lang, this mechanism overwrites it.
data['context'] = simplejson.loads(data['context'])
if data['context'].get('lang'):
del data['context']['lang']
context.update(data['context'])
if converter == 'html':
html = report_obj.get_html(cr, uid, docids, reportname, data=options_data, context=context)
html = report_obj.get_html(cr, uid, docids, reportname, data=data, context=context)
return request.make_response(html)
elif converter == 'pdf':
pdf = report_obj.get_pdf(cr, uid, docids, reportname, data=options_data, context=context)
pdf = report_obj.get_pdf(cr, uid, docids, reportname, data=data, context=context)
pdfhttpheaders = [('Content-Type', 'application/pdf'), ('Content-Length', len(pdf))]
return request.make_response(pdf, headers=pdfhttpheaders)
else:

Some files were not shown because too many files have changed in this diff Show More