summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorFabien Meghazi <fme@openerp.com>2013-10-10 15:29:07 +0200
committerFabien Meghazi <fme@openerp.com>2013-10-10 15:29:07 +0200
commit9b40e849d6debcfb9fbca2ded70f0ed7cae2c878 (patch)
tree798a75304726d29027ba732daaa6ff40818f0e26 /addons
parent672a76a002ca25ccfbfceab9c67a7a1003a2da62 (diff)
[WIP] new title managment in templates. expose main_object for seo
bzr revid: fme@openerp.com-20131010132907-xxmg96qmcw9j5f2d
Diffstat (limited to 'addons')
-rw-r--r--addons/website/controllers/main.py7
-rw-r--r--addons/website/models/view.py2
-rw-r--r--addons/website/static/src/js/website.js10
-rw-r--r--addons/website/static/src/js/website.seo.js50
-rw-r--r--addons/website/views/views.xml14
-rw-r--r--addons/website_blog/views/website_blog_templates.xml2
-rw-r--r--addons/website_crm/views/website_crm.xml4
-rw-r--r--addons/website_crm_partner_assign/views/website_crm_partner_assign.xml2
-rw-r--r--addons/website_customer/views/website_customer.xml2
-rw-r--r--addons/website_event/views/website_event.xml10
-rw-r--r--addons/website_hr_recruitment/views/website_hr_recruitment.xml11
-rw-r--r--addons/website_membership/views/website_membership.xml2
-rw-r--r--addons/website_project/views/website_project.xml4
-rw-r--r--addons/website_sale/controllers/main.py1
-rw-r--r--addons/website_sale/views/website_sale.xml10
15 files changed, 91 insertions, 40 deletions
diff --git a/addons/website/controllers/main.py b/addons/website/controllers/main.py
index 50163902b7a..869d51d85c7 100644
--- a/addons/website/controllers/main.py
+++ b/addons/website/controllers/main.py
@@ -123,6 +123,13 @@ class Website(openerp.addons.web.controllers.main.Home):
'path': path,
}
try:
+ module, xmlid = path.split('.', 1)
+ IMD = request.registry.get("ir.model.data")
+ obj = IMD.get_object_reference(request.cr, request.uid, module, xmlid)
+ values['main_object'] = request.registry[obj[0]].browse(request.cr, request.uid, obj[1])
+ except Exception:
+ pass
+ try:
html = request.website.render(path, values)
except ValueError:
html = request.website.render('website.404', values)
diff --git a/addons/website/models/view.py b/addons/website/models/view.py
index 6ddae129185..b146b405757 100644
--- a/addons/website/models/view.py
+++ b/addons/website/models/view.py
@@ -10,6 +10,8 @@ class view(osv.osv):
'inherit_option_id': fields.many2one('ir.ui.view','Optional Inheritancy'),
'inherited_option_ids': fields.one2many('ir.ui.view','inherit_option_id','Optional Inheritancies'),
'page': fields.boolean("Whether this view is a web page template (complete)"),
+ 'website_description': fields.char("Website Description", translate=True),
+ 'website_keywords': fields.char("Website Keywords", translate=True),
}
_defaults = {
'page': False,
diff --git a/addons/website/static/src/js/website.js b/addons/website/static/src/js/website.js
index e524edfb389..1f4e54b43df 100644
--- a/addons/website/static/src/js/website.js
+++ b/addons/website/static/src/js/website.js
@@ -109,9 +109,13 @@
website.ready = function() {
if (!all_ready) {
var tpl = website.load_templates(templates);
- // var session;
- // var trads = openerp._t.database.load_translations(session, ['website'], website.get_context().lang);
- all_ready = $.when(dom_ready, tpl);
+ all_ready = dom_ready.then(function () {
+ if ($('html').data('editable')) {
+ website.session = new openerp.Session();
+ var modules = ['website'];
+ return openerp._t.database.load_translations(website.session, modules, website.get_context().lang);
+ }
+ }).then(tpl).promise();
}
return all_ready;
};
diff --git a/addons/website/static/src/js/website.seo.js b/addons/website/static/src/js/website.seo.js
index 945b0ed353d..6aa97110ff6 100644
--- a/addons/website/static/src/js/website.seo.js
+++ b/addons/website/static/src/js/website.seo.js
@@ -9,7 +9,7 @@
'click a[data-action=promote-current-page]': 'launchSeo',
}),
launchSeo: function () {
- (new website.seo.Configurator()).appendTo($(document.body));
+ (new website.seo.Configurator(this)).appendTo($(document.body));
},
});
@@ -320,6 +320,9 @@
maxTitleSize: 65,
maxDescriptionSize: 155,
start: function () {
+ this.loadMetaData().then(function (data) {
+ console.log(data);
+ });
var self = this;
var $modal = self.$el;
var htmlPage = this.htmlPage = new website.seo.HtmlPage();
@@ -400,6 +403,51 @@
// TODO Persist changes
this.$el.modal('hide');
},
+ getMainObject: function () {
+ var repr = $('html').data('main-object');
+ var m = repr.match(/.+\((.+), (\d+)\)/);
+ if (!m) {
+ return null;
+ } else {
+ return {
+ model: m[1],
+ id: m[2]|0
+ };
+ }
+ },
+ loadMetaData: function () {
+ var self = this;
+ var obj = this.getMainObject();
+ var def = $.Deferred();
+ if (!obj) {
+ // return $.Deferred().reject(new Error("No main_object was found."));
+ def.resolve(null);
+ } else {
+ var fields = ['name', 'website_description', 'website_keywords'];
+ var model = website.session.model(obj.model);
+ model.call('read', [[obj.id], fields, website.get_context()]).then(function (data) {
+ if (data.length) {
+ var meta = data[0];
+ meta['model'] = obj.model;
+ def.resolve(meta);
+ } else {
+ def.resolve(null);
+ }
+ }).fail(function () {
+ def.reject();
+ });
+ }
+ return def;
+ },
+ saveMetaData: function (data) {
+ var obj = this.getMainObject();
+ if (!obj) {
+ return $.Deferred().reject();
+ } else {
+ var model = website.session.model(obj.model);
+ return model.call('write', [[obj.id], data, website.get_context()]);
+ }
+ },
titleChanged: function () {
var self = this;
setTimeout(function () {
diff --git a/addons/website/views/views.xml b/addons/website/views/views.xml
index cb0be35dee7..12a6a1b2d8a 100644
--- a/addons/website/views/views.xml
+++ b/addons/website/views/views.xml
@@ -14,10 +14,13 @@
<template id="layout" name="Main layout">
&lt;!DOCTYPE html&gt;
<html t-att-lang="lang.replace('_', '-')"
+ t-att-data-editable="'1' if editable else None"
t-att-data-translatable="'1' if translatable else None"
- t-att-data-view-xmlid="xmlid if editable else None">
+ t-att-data-view-xmlid="xmlid if editable else None"
+ t-att-data-main-object="main_object if editable else None">
<head>
- <title><t t-esc="title or res_company.name"/></title>
+ <title t-if="title"><t t-esc="title"/></title>
+ <title t-if="not title"><t t-esc="res_company.name"/><t t-if="additional_title"> - <t t-esc="additional_title"/></t></title>
<meta name="openerp.company" t-att-value="res_company.name" />
<meta name="description" value="" />
<meta name="keywords" value="" />
@@ -300,9 +303,7 @@
<template id="contactus" name="Contact us" page="True">
<t t-call="website.layout">
- <t t-set="title">Contact us -
- <t t-raw="res_company.name"></t>
- </t>
+ <t t-set="additional_title">Contact us</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container">
@@ -329,8 +330,7 @@
<template id="aboutus" page="True">
<t t-call="website.layout">
- <t t-set="title">About <t t-raw="res_company.name"></t>
- </t>
+ <t t-set="additional_title">About us</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container mb32">
diff --git a/addons/website_blog/views/website_blog_templates.xml b/addons/website_blog/views/website_blog_templates.xml
index 1fe8b503c8d..bb79867a5aa 100644
--- a/addons/website_blog/views/website_blog_templates.xml
+++ b/addons/website_blog/views/website_blog_templates.xml
@@ -139,7 +139,7 @@
<script type="text/javascript" src="/website_blog/static/src/js/website_blog.js"></script>
<link rel='stylesheet' href='/website_blog/static/src/css/website_blog.css'/>
</t>
- <t t-set="title">Blog</t>
+ <t t-set="additional_title">Blog</t>
<div id="wrap">
<div class="container mt16 js_website_blog">
<div class="row">
diff --git a/addons/website_crm/views/website_crm.xml b/addons/website_crm/views/website_crm.xml
index e10fd094795..5ac4e767524 100644
--- a/addons/website_crm/views/website_crm.xml
+++ b/addons/website_crm/views/website_crm.xml
@@ -57,9 +57,7 @@
<template id="contactus_thanks" name="Contact us" page="True">
<t t-call="website.layout">
- <t t-set="title">Contact us -
- <t t-raw="res_company.name"></t>
- </t>
+ <t t-set="additional_title">Contact us</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container">
diff --git a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml
index 3141f1fc12b..84c28170a17 100644
--- a/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml
+++ b/addons/website_crm_partner_assign/views/website_crm_partner_assign.xml
@@ -13,7 +13,7 @@
<!-- Page -->
<template id="layout" name="Partners Layout">
<t t-call="website.layout">
- <t t-set="title">Partners</t>
+ <t t-set="additional_title">Partners</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container">
diff --git a/addons/website_customer/views/website_customer.xml b/addons/website_customer/views/website_customer.xml
index efc31d6f2a5..816a949eb57 100644
--- a/addons/website_customer/views/website_customer.xml
+++ b/addons/website_customer/views/website_customer.xml
@@ -12,7 +12,7 @@
<!-- Page -->
<template id="layout" name="Customer References Layout">
<t t-call="website.layout">
- <t t-set="title">Customer References</t>
+ <t t-set="additional_title">Customer References</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container">
diff --git a/addons/website_event/views/website_event.xml b/addons/website_event/views/website_event.xml
index db4ec278b20..ea9fd17e597 100644
--- a/addons/website_event/views/website_event.xml
+++ b/addons/website_event/views/website_event.xml
@@ -15,10 +15,7 @@
<!-- Page -->
<template id="index" name="Events" page="True">
<t t-call="website.layout">
- <t t-set="head">
- <t t-raw="head or ''"/>
- </t>
- <t t-set="title">Events</t>
+ <t t-set="additional_title">Events</t>
<div id="wrap">
<div class="container">
<div class="oe_structure"/>
@@ -122,10 +119,7 @@
<template id="event_description_full">
<t t-call="website.layout">
- <t t-set="head">
- <t t-raw="head or ''"/>
- </t>
- <t t-set="title">Events</t>
+ <t t-set="additional_title">Events</t>
<div id="wrap">
<div class="container">
diff --git a/addons/website_hr_recruitment/views/website_hr_recruitment.xml b/addons/website_hr_recruitment/views/website_hr_recruitment.xml
index 09e1ebad1ce..8a9d106a9b6 100644
--- a/addons/website_hr_recruitment/views/website_hr_recruitment.xml
+++ b/addons/website_hr_recruitment/views/website_hr_recruitment.xml
@@ -18,10 +18,7 @@
<template id="index" name="Departments" page="True">
<t t-call="website.layout">
- <t t-set="head">
- <t t-raw="head or ''"/>
- </t>
- <t t-set="title">Jobs</t>
+ <t t-set="additional_title">Jobs</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container oe_website_jobs">
@@ -64,7 +61,7 @@
<script type="text/javascript" src="/website_hr_recruitment/static/src/js/recruitment.js"></script>
<t t-raw="head or ''"/>
</t>
- <t t-set="title">Job Detail</t>
+ <t t-set="additional_title">Job Detail</t>
<div id="wrap">
<div class="container oe_website_hr_recruitment">
<div class="row">
@@ -110,7 +107,7 @@
<template id="applyjobpost">
<t t-call="website.layout">
- <t t-set="title">Apply Job</t>
+ <t t-set="additional_title">Apply Job</t>
<div id="wrap">
<div class="container">
<h1 class="text-center">Apply for <span t-field="job.name"></span></h1>
@@ -158,7 +155,7 @@
</template>
<template id="thankyou">
<t t-call="website.layout">
- <t t-set="title">Thank You!</t>
+ <t t-set="additional_title">Thank You!</t>
<div id="wrap">
<div class="container">
<h1>You have successfully applied for job.</h1>
diff --git a/addons/website_membership/views/website_membership.xml b/addons/website_membership/views/website_membership.xml
index b3ebf776508..7491a15c55e 100644
--- a/addons/website_membership/views/website_membership.xml
+++ b/addons/website_membership/views/website_membership.xml
@@ -12,7 +12,7 @@
<!-- Page -->
<template id="layout" name="Members Layout">
<t t-call="website.layout">
- <t t-set="title">Associations</t>
+ <t t-set="additional_title">Associations</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container">
diff --git a/addons/website_project/views/website_project.xml b/addons/website_project/views/website_project.xml
index 44742bdf568..90618dc6adc 100644
--- a/addons/website_project/views/website_project.xml
+++ b/addons/website_project/views/website_project.xml
@@ -12,7 +12,7 @@
<!-- Task -->
<template id="task" name="Task">
<t t-call="website.layout">
- <t t-set="title">Task</t>
+ <t t-set="additional_title">Task</t>
<div id="wrap">
<div class="container">
<h4 t-field="task.name"/>
@@ -41,7 +41,7 @@
</template>
<template id="index" name="Project">
<t t-call="website.layout">
- <t t-set="title">Project</t>
+ <t t-set="additional_title">Project</t>
<div id="wrap">
<div class="container">
<h4 t-field="project.name"/>
diff --git a/addons/website_sale/controllers/main.py b/addons/website_sale/controllers/main.py
index 789391c478a..02fab32e177 100644
--- a/addons/website_sale/controllers/main.py
+++ b/addons/website_sale/controllers/main.py
@@ -289,6 +289,7 @@ class Ecommerce(http.Controller):
'search': post.get("search"),
'get_categories': self.get_categories,
'category_list': category_list,
+ 'main_object': product,
'product': product,
}
return request.website.render("website_sale.product", values)
diff --git a/addons/website_sale/views/website_sale.xml b/addons/website_sale/views/website_sale.xml
index 7e51b893016..5c5f400d62e 100644
--- a/addons/website_sale/views/website_sale.xml
+++ b/addons/website_sale/views/website_sale.xml
@@ -135,7 +135,7 @@
<link rel='stylesheet' href='/website_sale/static/src/css/website_sale.css'/>
<t t-raw="head or ''"/>
</t>
- <t t-set="title">Our Products</t>
+ <t t-set="additional_title">Our Products</t>
<div id="wrap">
<div class="oe_structure"/>
<div class="container oe_website_sale">
@@ -284,7 +284,7 @@
<t t-set="head">
<script type="text/javascript" src="/website_sale/static/src/js/website_sale.js"></script>
</t>
- <t t-set="title" t-raw="product.name"/>
+ <t t-set="additional_title" t-value="product.name"/>
<div id="wrap">
<section class="container mt8">
@@ -399,7 +399,7 @@
<link rel='stylesheet' href='/website_sale/static/src/css/website_sale.css'/>
<t t-raw="head or ''"/>
</t>
- <t t-set="title">Your Cart</t>
+ <t t-set="additional_title">Your Cart</t>
<div id="wrap">
<div class="container oe_website_sale">
@@ -603,7 +603,7 @@
<link rel='stylesheet' href='/website_sale/static/src/css/website_sale.css'/>
<t t-raw="head or ''"/>
</t>
- <t t-set="title">Shop - Checkout</t>
+ <t t-set="additional_title">Shop - Checkout</t>
<div id="wrap">
<div class="container oe_website_sale">
<ul class="wizard pull-right">
@@ -758,7 +758,7 @@
<link rel='stylesheet' href='/website_sale/static/src/css/website_sale.css'/>
<t t-raw="head or ''"/>
</t>
- <t t-set="title">Select Payment Mode</t>
+ <t t-set="additional_title">Shop - Select Payment Mode</t>
<div id="wrap">
<div class="container oe_website_sale">