[MERGE] with lp:~openerp-dev/openobject-addons/trunk-website-al.
bzr revid: dka@tinyerp.com-20140116120607-rkfs8qysinmegp54
This commit is contained in:
commit
fcf6109d16
|
@ -12,5 +12,9 @@
|
|||
<field name="journal_id" ref="analytic_journal"/>
|
||||
</record>
|
||||
|
||||
<record id="product.product_product_consultant" model="product.product">
|
||||
<field name="sale_ok">True</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
|
|
@ -198,6 +198,7 @@ parameter) will see those record just disappear.
|
|||
<field name="name">Service</field>
|
||||
<field name="categ_id" ref="product.product_category_all"/>
|
||||
<field name="type">service</field>
|
||||
<field name="sale_ok" eval="False"/>
|
||||
</record>
|
||||
<record id="product_product_consultant" model="product.product">
|
||||
<field name="product_tmpl_id" ref="product_template_consultant"/>
|
||||
|
|
|
@ -207,9 +207,9 @@
|
|||
|
||||
<record id="product_product_consultant" model="product.product">
|
||||
<field name="categ_id" ref="product.product_category_5"/>
|
||||
<field name="sale_ok" eval="True"/>
|
||||
</record>
|
||||
|
||||
|
||||
<record id="product_template_1" model="product.template">
|
||||
<field name="name">On Site Monitoring</field>
|
||||
<field name="categ_id" ref="product_category_5"/>
|
||||
|
|
|
@ -211,6 +211,10 @@ ul.oe_menu_editor .disclose {
|
|||
position: static !important;
|
||||
}
|
||||
|
||||
.cke_widget_inline {
|
||||
display: inline !important;
|
||||
}
|
||||
|
||||
.cke_widget_editable:empty:after {
|
||||
opacity: 0.3;
|
||||
white-space: pre-wrap;
|
||||
|
@ -234,6 +238,10 @@ ul.oe_menu_editor .disclose {
|
|||
z-index: 1000;
|
||||
}
|
||||
|
||||
.cke_editable .fa {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
/* ---- MOBILE PREVIEW ---- {{{ */
|
||||
.oe_mobile_preview.modal .modal-content {
|
||||
height: 660px;
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
+box-shadow(none)
|
||||
|
||||
// }}}
|
||||
|
||||
|
||||
/* ---- OpenERP Style ---- {{{ */
|
||||
|
||||
.oe_website_editorbar
|
||||
|
@ -177,6 +177,9 @@ ul.oe_menu_editor
|
|||
.cke_widget_wrapper
|
||||
position: static !important
|
||||
|
||||
.cke_widget_inline
|
||||
display: inline !important
|
||||
|
||||
// prevent inline widgets from entirely disappearing when their (textual)
|
||||
// content is removed
|
||||
.cke_widget_editable
|
||||
|
@ -202,6 +205,10 @@ ul.oe_menu_editor
|
|||
// This z-index is due to .navbar of bootstrap
|
||||
z-index: 1000
|
||||
|
||||
// fontawesome
|
||||
.cke_editable .fa
|
||||
cursor: pointer
|
||||
|
||||
// }}}
|
||||
|
||||
/* ---- MOBILE PREVIEW ---- {{{ */
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
@charset "utf-8";
|
||||
/* THIS CSS FILE IS FOR WEBSITE THEMING CUSTOMIZATION ONLY
|
||||
*
|
||||
* css for editor buttons, openerp widget included in the website and other
|
||||
|
@ -96,6 +95,12 @@ h1.text-muted, h2.text-muted, h3.text-muted {
|
|||
margin-top: 10px;
|
||||
}
|
||||
|
||||
/* ----- BOOTSTRAP FIX ----- */
|
||||
.container .container {
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
/* ----- BOOTSTRAP HACK FOR HEADER NAV BAR ----- */
|
||||
.navbar.navbar-static-top {
|
||||
margin-bottom: 0;
|
||||
|
|
|
@ -61,6 +61,13 @@ img.shadow
|
|||
h1.text-muted, h2.text-muted, h3.text-muted
|
||||
margin-top: 10px
|
||||
|
||||
/* ----- BOOTSTRAP FIX ----- */
|
||||
|
||||
.container
|
||||
.container
|
||||
padding-left: 0
|
||||
padding-right: 0
|
||||
|
||||
/* ----- BOOTSTRAP HACK FOR HEADER NAV BAR ----- */
|
||||
|
||||
.navbar.navbar-static-top
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -954,6 +954,8 @@
|
|||
clean_for_save: function () {
|
||||
this.$target.removeAttr('contentEditable')
|
||||
.find('*').removeAttr('contentEditable');
|
||||
this.$target.removeAttr('attributeEditable')
|
||||
.find('*').removeAttr('attributeEditable');
|
||||
},
|
||||
});
|
||||
|
||||
|
|
|
@ -203,4 +203,52 @@
|
|||
</button>
|
||||
</t>
|
||||
|
||||
<t t-name="website.editor.dialog.font-icons">
|
||||
<t t-call="website.editor.dialog">
|
||||
<t t-set="title">Icon:</t>
|
||||
<form>
|
||||
<div class="form-group">
|
||||
Preview: <span id="fa-preview"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="fa-icon">icon</label>
|
||||
<input type="hidden" id="fa-icon" class="form-control"/>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="fa-size">size</label>
|
||||
<select id="fa-size" class="form-control">
|
||||
<option value="">Default</option>
|
||||
<option value="fa-lg">Large</option>
|
||||
<option value="fa-2x">x2</option>
|
||||
<option value="fa-3x">x3</option>
|
||||
<option value="fa-4x">x4</option>
|
||||
<option value="fa-5x">x5</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="fa-rotation">Rotation</label>
|
||||
<select id="fa-rotation" class="form-control">
|
||||
<option value="">None</option>
|
||||
<option value="fa-spin">Spin</option>
|
||||
<option value="fa-rotate-90">Rotate 90º</option>
|
||||
<option value="fa-rotate-180">Rotate 180º</option>
|
||||
<option value="fa-rotate-270">Rotate 270º</option>
|
||||
<option value="fa-flip-horizontal">Horizontal flip</option>
|
||||
<option value="fa-flip-vertical">Vertical flip</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>
|
||||
<input type="checkbox" id="fa-fixed"/> fixed width
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>
|
||||
<input type="checkbox" id="fa-border"/> bordered
|
||||
</label>
|
||||
</div>
|
||||
</form>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
|
|
|
@ -44,6 +44,14 @@ class WebsiteUiSuite(unittest.TestSuite):
|
|||
self._timeout = timeout
|
||||
self._options = options
|
||||
self._test = None
|
||||
self._ignore_filters = [
|
||||
# Ignore phantomjs warnings
|
||||
"*** WARNING:",
|
||||
|
||||
# Fixes an issue with PhantomJS 1.9.2 on OS X 10.9 (Mavericks)
|
||||
# cf. https://github.com/ariya/phantomjs/issues/11418
|
||||
"CoreText performance note",
|
||||
]
|
||||
|
||||
def __iter__(self):
|
||||
return iter([self])
|
||||
|
@ -97,9 +105,7 @@ class WebsiteUiSuite(unittest.TestSuite):
|
|||
for stream in ready:
|
||||
lines = stream.readlines()
|
||||
if lines is None: # EOF
|
||||
# Fixes an issue with PhantomJS 1.9.2 on OS X 10.9 (Mavericks)
|
||||
# cf. https://github.com/ariya/phantomjs/issues/11418
|
||||
filtered_lines = [line for line in output if "CoreText performance note" not in line]
|
||||
filtered_lines = [line for line in output if not any(ignore in line for ignore in self._ignore_filters)]
|
||||
if (filtered_lines):
|
||||
self.process(filtered_lines, result)
|
||||
readable.remove(stream)
|
||||
|
|
|
@ -735,53 +735,46 @@
|
|||
</div>
|
||||
</div><div class="row">
|
||||
<div class="col-md-5">
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-comment pull-left mb16"></span>
|
||||
<h3 class="mb0">Blog</h3>
|
||||
<p>OpenERP includes a full features enterprise blog to promote your messages.</p>
|
||||
</li>
|
||||
<li>
|
||||
</div><div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-columns pull-left mb16"></span>
|
||||
<h3 class="mb0">Pricing Tables</h3>
|
||||
<p>Use building blocks to use pricing tables to display your products or services.</p>
|
||||
</li>
|
||||
<li>
|
||||
</div><div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-user pull-left mb16"></span>
|
||||
<h3 class="mb0">Log In & Signup</h3>
|
||||
<p>Clean & simple Log In, Signup & Forgot Your Password forms.</p>
|
||||
</li>
|
||||
<li>
|
||||
</div><div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-envelope pull-left mb16"></span>
|
||||
<h3 class="mb0">Contact</h3>
|
||||
<p>User-friendly contact form with Google Map integration.</p>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-5 col-md-offset-2">
|
||||
<ul class="list-unstyled">
|
||||
<li>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-magic pull-left mb16"></span>
|
||||
<h3 class="mb0">Bootstrap</h3>
|
||||
<p>Uses Twitter Bootstrap's sleek, intuitive, and powerful front-end framework.</p>
|
||||
</li>
|
||||
<li>
|
||||
</div><div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-font pull-left mb16"></span>
|
||||
<h3 class="mb0">Google Web Fonts</h3>
|
||||
<p>Royalty free, open source fonts for the people, by the people!</p>
|
||||
</li>
|
||||
<li>
|
||||
</div><div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-bolt pull-left mb16"></span>
|
||||
<h3 class="mb0">Powerful & slick jQuery</h3>
|
||||
<p>Fantastic jQuery plugins such as Isotope and Bootstrap's inbuilt features.</p>
|
||||
</li>
|
||||
<li>
|
||||
</div><div class="col-md-12">
|
||||
<span style="min-width: 45px" class="fa fa-3x fa-picture-o pull-left mb16"></span>
|
||||
<h3 class="mb0">Sample images</h3>
|
||||
<p>Fantastic sample images fully licensed for use.</p>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -98,14 +98,14 @@
|
|||
<template id="blog_post_short" name="Blog Post Summary">
|
||||
<t t-call="website_blog.index">
|
||||
<div t-if="not blog_posts">
|
||||
<h1>
|
||||
No blog post yet!
|
||||
</h1>
|
||||
<p groups="base.group_website_publisher">
|
||||
To create a new blog post, use the top-right menu <em>Content</em>
|
||||
and select the menuitem <em>New Blog Post</em>.
|
||||
</p>
|
||||
|
||||
<div class="text-center text-muted">
|
||||
<h3 class="css_editable_display">No blog post found</h3>
|
||||
<h3 class="css_non_editable_mode_hidden">There isn't available blog post right now, click <a t-href="/page/website.contactus">here</a> to contact us</h3>
|
||||
<t groups="base.group_website_publisher">
|
||||
<p>Click on "Content" to define a new blog post or "Help" for more informations.</p>
|
||||
<img src="/website/static/src/img/content_here.png"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<t t-foreach="blog_posts" t-as="blog_post">
|
||||
<div t-att-data-publish="blog_post.website_published and 'on' or 'off'">
|
||||
|
|
|
@ -44,12 +44,15 @@
|
|||
<div class="row mt32 mb32">
|
||||
<div class="col-md-9" id="middle_column">
|
||||
<t t-if="not event_ids">
|
||||
<p t-if="current_date or current_country or current_type">
|
||||
No event found in this category, check <a href="/event">all events</a>.
|
||||
</p>
|
||||
<p t-if="(current_date is None) and (current_country is None) and (current_type is None)">
|
||||
No events are planned for now on.
|
||||
</p>
|
||||
<div class="text-center text-muted">
|
||||
<h3 class="css_editable_display">No event found</h3>
|
||||
<h3 class="css_non_editable_mode_hidden">There isn't available events right now, <t t-if="current_date or current_country or current_type">click <a t-href="/event">here</a> to check all events or</t> click <a t-href="/page/website.contactus">here</a> to contact us</h3>
|
||||
<t groups="base.group_website_publisher">
|
||||
<p>Click on "Content" to define a new event or "Help" for more informations.</p>
|
||||
<img src="/website/static/src/img/content_here.png"/>
|
||||
<p>In the backend's event form contains information to customize your events: location, oranizer, tikets, registrations, etc.</p>
|
||||
</t>
|
||||
</div>
|
||||
</t>
|
||||
<ul class="media-list">
|
||||
<li t-foreach="event_ids" t-as="event" class="media">
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<t t-call="website.layout">
|
||||
<div id="wrap">
|
||||
<div class="oe_structure">
|
||||
<section data-snippet-id="text-block" class="mb32">
|
||||
<section data-snippet-id="text-block" class="mb16">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-center mb16" data-snippet-id="colmd">
|
||||
|
@ -51,11 +51,21 @@
|
|||
|
||||
<div class="container oe_website_jobs">
|
||||
<div class="row">
|
||||
<div class="col-md-1" id="jobs_grid_left">
|
||||
<div class="hidden" id="jobs_grid_left">
|
||||
|
||||
</div>
|
||||
<div class="col-md-9" id="jobs_grid">
|
||||
<ul class="media-list">
|
||||
<div class="col-md-12" id="jobs_grid">
|
||||
<div t-if="not jobs">
|
||||
<div class="text-center text-muted">
|
||||
<h4 class="css_editable_display">No job offer found</h4>
|
||||
<h4 class="css_non_editable_mode_hidden">There isn't job offer published now, click <a t-href="/page/website.contactus">here</a> to contact us</h4>
|
||||
<t groups="base.group_website_publisher">
|
||||
<p>Click on "Content" to define a new job offer or "Help" for more informations.</p>
|
||||
<img src="/website/static/src/img/content_here.png"/>
|
||||
</t>
|
||||
</div>
|
||||
</div>
|
||||
<ul class="media-list" t-if="jobs">
|
||||
<li t-foreach="jobs" t-as="job" class="media">
|
||||
<div class="media-body" t-att-data-publish="job.website_published and 'on' or 'off'">
|
||||
<h3 class="media-heading">
|
||||
|
@ -237,6 +247,9 @@
|
|||
<xpath expr="//div[@id='jobs_grid_left']" position="attributes">
|
||||
<attribute name="class">col-md-3</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//div[@id='jobs_grid']" position="attributes">
|
||||
<attribute name="class">col-md-9</attribute>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
<template id="job_offices" inherit_option_id="website_hr_recruitment.index" name="Filter by Offices">
|
||||
|
@ -257,6 +270,9 @@
|
|||
<xpath expr="//div[@id='jobs_grid_left']" position="attributes">
|
||||
<attribute name="class">col-md-3</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//div[@id='jobs_grid']" position="attributes">
|
||||
<attribute name="class">col-md-9</attribute>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
|
||||
|
|
|
@ -73,7 +73,10 @@ class EmailTemplate(osv.Model):
|
|||
elif node.tag == 'img' and not node.get('src', 'data').startswith('data'):
|
||||
node.set('src', _process_link(node.get('src')))
|
||||
|
||||
html = lxml.etree.tostring(root, pretty_print=False)
|
||||
html = lxml.html.tostring(root, pretty_print=False, method='html')
|
||||
# this is ugly, but lxml/etree tostring want to put everything in a 'div' that breaks the editor -> remove that
|
||||
if html.startswith('<div>') and html.endswith('</div>'):
|
||||
html = html[5:-6]
|
||||
return html
|
||||
|
||||
def create(self, cr, uid, values, context=None):
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<script type="text/javascript" src="/website_mail/static/src/js/website_email_designer.js"></script>
|
||||
</t>
|
||||
<div id="wrap">
|
||||
<div class="oe_structure container">
|
||||
<div class="container">
|
||||
<h1 t-field="template.name"/>
|
||||
<div class="row" style="width: 600px;">
|
||||
<div class="row">
|
||||
|
@ -38,7 +38,7 @@
|
|||
</div>
|
||||
|
||||
<div class="row well">
|
||||
<div t-field="template.body_html"/>
|
||||
<div t-field="template.body_html" style="position: relative;"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -189,7 +189,7 @@
|
|||
<t t-if="not bins">
|
||||
<div class="text-center text-muted">
|
||||
<h3 class="css_editable_display">No product found</h3>
|
||||
<h3 class="css_non_editable_mode_hidden">There isn't available products right know, click <a t-href="/page/website.contactus">here</a> to contact us</h3>
|
||||
<h3 class="css_non_editable_mode_hidden">There isn't available products right now, click <a t-href="/page/website.contactus">here</a> to contact us</h3>
|
||||
<t groups="base.group_website_publisher">
|
||||
<p>Click on "Content" to define a new product or "Help" for more informations.</p>
|
||||
<img src="/website/static/src/img/content_here.png"/>
|
||||
|
|
Loading…
Reference in New Issue