OpenERP Online has proposed merging
lp:~openerp-dev/openerp-web/trunk-qweb_manifest-chs into lp:openerp-web.
Requested reviews:
OpenERP R&D Web Team (openerp-dev-web)
For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-qweb_manifest-chs/+merge/80556
--
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-qweb_manifest-chs/+merge/80556
Your team OpenERP R&D Team is subscribed to branch
lp:~openerp-dev/openerp-web/trunk-qweb_manifest-chs.
=== modified file 'addons/web/__openerp__.py'
--- addons/web/__openerp__.py 2011-10-25 08:36:48 +0000
+++ addons/web/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -52,4 +52,7 @@
"static/src/css/data_export.css",
"static/src/css/data_import.css",
],
+ 'qweb' : [
+ "static/src/xml/*.xml",
+ ],
}
=== modified file 'addons/web/controllers/main.py'
--- addons/web/controllers/main.py 2011-10-24 14:06:58 +0000
+++ addons/web/controllers/main.py 2011-10-27 12:44:25 +0000
@@ -24,6 +24,32 @@
# OpenERP Web web Controllers
#----------------------------------------------------------
+
+def concat_xml(file_list):
+ """Concatenate xml files
+ return (concat,timestamp)
+ concat: concatenation of file content
+ timestamp: max(os.path.getmtime of file_list)
+ """
+ root = None
+ files_timestamp = 0
+ for fname in file_list:
+ ftime = os.path.getmtime(fname)
+ if ftime > files_timestamp:
+ files_timestamp = ftime
+
+ xml = ElementTree.parse(fname).getroot()
+
+ if root is None:
+ root = ElementTree.Element(xml.tag)
+ #elif root.tag != xml.tag:
+ # raise ValueError("Root tags missmatch: %r != %r" % (root.tag, xml.tag))
+
+ for child in xml.getchildren():
+ root.append(child)
+ return ElementTree.tostring(root, 'utf-8'), files_timestamp
+
+
def concat_files(file_list):
""" Concatenate file content
return (concat,timestamp)
@@ -83,12 +109,14 @@
yield path, path[len(addons_path):]
def manifest_list(self, req, mods, extension):
+ env = req.httprequest.environ
+ host = '%s://%s' % (env['wsgi.url_scheme'], env['HTTP_HOST'])
if not req.debug:
- path = '/web/webclient/' + extension
+ path = host + '/web/webclient/' + extension
if mods is not None:
path += '?mods=' + mods
return [path]
- return ['%s?debug=%s' % (wp, os.path.getmtime(fp)) for fp, wp in self.manifest_glob(req, mods, extension)]
+ return ['%s%s?debug=%s' % (host, wp, os.path.getmtime(fp)) for fp, wp in self.manifest_glob(req, mods, extension)]
@openerpweb.jsonrequest
def csslist(self, req, mods=None):
@@ -98,6 +126,10 @@
def jslist(self, req, mods=None):
return self.manifest_list(req, mods, 'js')
+ @openerpweb.jsonrequest
+ def qweblist(self, req, mods=None):
+ return self.manifest_list(req, mods, 'qweb')
+
@openerpweb.httprequest
def css(self, req, mods=None):
files = [f[0] for f in self.manifest_glob(req, mods, 'css')]
@@ -113,6 +145,14 @@
return req.make_response(content, [('Content-Type', 'application/javascript')])
@openerpweb.httprequest
+ def qweb(self, req, mods=None):
+ files = [f[0] for f in self.manifest_glob(req, mods, 'qweb')]
+ content,timestamp = concat_xml(files)
+ # TODO use timestamp to set Last mofified date and E-tag
+ return req.make_response(content, [('Content-Type', 'text/xml')])
+
+
+ @openerpweb.httprequest
def home(self, req, s_action=None, **kw):
js = "\n ".join('<script type="text/javascript" src="%s"></script>'%i for i in self.manifest_list(req, None, 'js'))
css = "\n ".join('<link rel="stylesheet" href="%s">'%i for i in self.manifest_list(req, None, 'css'))
=== modified file 'addons/web/static/src/js/chrome.js'
--- addons/web/static/src/js/chrome.js 2011-10-18 14:33:00 +0000
+++ addons/web/static/src/js/chrome.js 2011-10-27 12:44:25 +0000
@@ -2,7 +2,6 @@
* OpenERP Web chrome
*---------------------------------------------------------*/
openerp.web.chrome = function(openerp) {
-var QWeb = openerp.web.qweb;
openerp.web.Notification = openerp.web.Widget.extend(/** @lends openerp.web.Notification# */{
template: 'Notification',
@@ -157,7 +156,7 @@
}
},
on_managed_error: function(error) {
- $('<div>' + QWeb.render('DialogWarning', {error: error}) + '</div>').dialog({
+ $('<div>' + this.session.qweb.render('DialogWarning', {error: error}) + '</div>').dialog({
title: "OpenERP " + _.capitalize(error.type),
buttons: {
Ok: function() {
@@ -180,7 +179,7 @@
}
}
}).start();
- dialog.$element.html(QWeb.render('DialogTraceback', {error: error}));
+ dialog.$element.html(this.session.qweb.render('DialogTraceback', {error: error}));
}
});
@@ -201,7 +200,7 @@
on_rpc_event : function(increment) {
this.count += increment;
if (this.count) {
- //this.$element.html(QWeb.render("Loading", {}));
+ //this.$element.html(this.session.qweb.render("Loading", {}));
this.$element.html("Loading ("+this.count+")");
this.$element.show();
this.widget_parent.$element.addClass('loading');
@@ -226,7 +225,7 @@
this.$option_id = $('#' + option_id);
},
start: function() {
- this.$element.html(QWeb.render("Database", this));
+ this.$element.html(this.session.qweb.render("Database", this));
this.$element.closest(".openerp")
.removeClass("login-mode")
.addClass("database_block");
@@ -339,7 +338,7 @@
},
do_create: function() {
var self = this;
- self.$option_id.html(QWeb.render("Database.CreateDB", self));
+ self.$option_id.html(this.session.qweb.render("Database.CreateDB", self));
self.$option_id.find("form[name=create_db_form]").validate({
submitHandler: function (form) {
var fields = $(form).serializeArray();
@@ -363,7 +362,7 @@
},
do_drop: function() {
var self = this;
- self.$option_id.html(QWeb.render("DropDB", self));
+ self.$option_id.html(this.session.qweb.render("DropDB", self));
self.$option_id.find("form[name=drop_db_form]").validate({
submitHandler: function (form) {
var $form = $(form),
@@ -389,7 +388,7 @@
do_backup: function() {
var self = this;
self.$option_id
- .html(QWeb.render("BackupDB", self))
+ .html(this.session.qweb.render("BackupDB", self))
.find("form[name=backup_db_form]").validate({
submitHandler: function (form) {
$.blockUI({message:'<img src="/web/static/src/img/throbber2.gif">'});
@@ -409,7 +408,7 @@
},
do_restore: function() {
var self = this;
- self.$option_id.html(QWeb.render("RestoreDB", self));
+ self.$option_id.html(this.session.qweb.render("RestoreDB", self));
self.$option_id.find("form[name=restore_db_form]").validate({
submitHandler: function (form) {
@@ -447,7 +446,7 @@
},
do_change_password: function() {
var self = this;
- self.$option_id.html(QWeb.render("Change_DB_Pwd", self));
+ self.$option_id.html(this.session.qweb.render("Change_DB_Pwd", self));
self.$option_id.find("form[name=change_pwd_form]").validate({
messages: {
@@ -521,7 +520,7 @@
this.$element.find("form").submit(this.on_submit);
this.rpc("/web/database/get_list", {}, function(result) {
- var tpl = openerp.web.qweb.render('Login_dblist', {db_list: result.db_list, selected_db: self.selected_db});
+ var tpl = self.session.qweb.render('Login_dblist', {db_list: result.db_list, selected_db: self.selected_db});
self.$element.find("input[name=db]").replaceWith(tpl)
},
function(error, event) {
@@ -618,7 +617,7 @@
return;
var func = new openerp.web.Model(self.session, "res.users").get_func("read");
return func(self.session.uid, ["name", "company_id"]).pipe(function(res) {
- self.$content = $(QWeb.render("Header-content", {widget: self, user: res}));
+ self.$content = $(self.session.qweb.render("Header-content", {widget: self, user: res}));
self.$content.appendTo(self.$element);
self.$element.find(".logout").click(self.on_logout);
self.$element.find("a.preferences").click(self.on_preferences);
@@ -631,7 +630,7 @@
on_about: function() {
var self = this;
self.rpc("/web/webclient/version_info", {}).then(function(res) {
- var $help = $(QWeb.render("About-Page", {version_info: res}));
+ var $help = $(self.session.qweb.render("About-Page", {version_info: res}));
$help.dialog({autoOpen: true,
modal: true, width: 960, title: "About"});
});
@@ -674,7 +673,7 @@
sc.push.apply(sc, shortcuts);
self.$element.find('.oe-shortcuts')
- .html(QWeb.render('Shortcuts', {'shortcuts': shortcuts}))
+ .html(self.session.qweb.render('Shortcuts', {'shortcuts': shortcuts}))
.undelegate('li', 'click')
.delegate('li', 'click', function(e) {
@@ -747,7 +746,7 @@
height : 'auto'
});
this.dialog.start().open();
- this.dialog.$element.html(QWeb.render("Change_Pwd", self));
+ this.dialog.$element.html(self.session.qweb.render("Change_Pwd", self));
this.dialog.$element.find("form[name=change_password_form]").validate({
submitHandler: function (form) {
self.rpc("/web/session/change_password",{
@@ -806,8 +805,8 @@
},
on_loaded: function(data) {
this.data = data;
- this.$element.html(QWeb.render("Menu", { widget : this }));
- this.$secondary_menu.html(QWeb.render("Menu.secondary", { widget : this }));
+ this.$element.html(this.session.qweb.render("Menu", { widget : this }));
+ this.$secondary_menu.html(this.session.qweb.render("Menu.secondary", { widget : this }));
this.$element.add(this.$secondary_menu).find("a").click(this.on_menu_click);
this.$secondary_menu.find('.oe_toggle_secondary_menu').click(this.on_toggle_fold);
},
@@ -942,16 +941,15 @@
init: function(element_id) {
this._super(null, element_id);
openerp.webclient = this;
+ this.session = new openerp.web.Session();
- QWeb.add_template("/web/static/src/xml/base.xml");
var params = {};
if(jQuery.param != undefined && jQuery.deparam(jQuery.param.querystring()).kitten != undefined) {
this.$element.addClass("kitten-mode-activated");
}
- this.$element.html(QWeb.render("Interface", params));
- this.notification = new openerp.web.Notification();
- this.session = new openerp.web.Session();
+ this.$element.html(this.session.qweb.render("Interface", params));
+ this.notification = new openerp.web.Notification(this);
this.loading = new openerp.web.Loading(this,"oe_loading");
this.crashmanager = new openerp.web.CrashManager(this);
=== modified file 'addons/web/static/src/js/core.js'
--- addons/web/static/src/js/core.js 2011-10-26 08:25:43 +0000
+++ addons/web/static/src/js/core.js 2011-10-27 12:44:25 +0000
@@ -364,10 +364,38 @@
// TODO: session should have an optional name indicating that they'll
// be saved to (and revived from) cookies
this.name = 'session';
+ this.qweb = this._build_qweb();
},
start: function() {
this.session_restore();
},
+
+
+ _build_qweb: function() {
+ qweb = new QWeb2.Engine();
+ qweb.debug = this.debug;
+ qweb.default_dict = {
+ '_' : _
+ };
+ qweb.format_text_node = function(s) {
+ // Note that 'this' is the Qweb Node of the text
+ var translation = this.node.parentNode.attributes['t-translation'];
+ if (translation && translation.value === 'off') {
+ return s;
+ }
+ var ts = _.trim(s);
+ if (ts.length === 0) {
+ return s;
+ }
+ var tr = openerp.web._t(ts);
+ return tr === ts ? s : tr;
+ };
+ var tpl = _('http://%s:%s/web/webclient/qweb').sprintf(this.server, this.port)
+ qweb.add_template(tpl);
+ return qweb;
+ },
+
+
/**
* Executes an RPC call, registering the provided callbacks.
*
@@ -487,6 +515,7 @@
self.user_context = result.context;
self.db = result.db;
self.session_save();
+ self.on_session_valid();
return true;
}).then(success_callback);
},
@@ -577,6 +606,7 @@
self.rpc('/web/webclient/jslist', {"mods": modules}, function(files) {
self.do_load_js(file_list.concat(files));
});
+ self.rpc('/web/webclient/qweblist', {"mods": modules}, self.do_load_qweb);
openerp._modules_loaded = true;
});
});
@@ -610,6 +640,14 @@
this.on_modules_loaded();
}
},
+ do_load_qweb: function(files) {
+ var self = this;
+ _.each(files, function(file) {
+ $.get(file).then(function(xml) {
+ self.qweb.add_template(_(xml).trim());
+ });
+ });
+ },
on_modules_loaded: function() {
for(var j=0; j<this.module_list.length; j++) {
var mod = this.module_list[j];
@@ -905,7 +943,7 @@
* @param {Object} additional Additional context arguments to pass to the template.
*/
render: function (additional) {
- return openerp.web.qweb.render(this.template, _.extend({widget: this}, additional || {}));
+ return this.session.qweb.render(this.template, _.extend({widget: this}, additional || {}));
},
/**
* Method called after rendering. Mostly used to bind actions, perform asynchronous
@@ -987,7 +1025,7 @@
*/
openerp.web.OldWidget = openerp.web.Widget.extend(/** @lends openerp.web.OldWidget# */{
render: function (additional) {
- return openerp.web.qweb.render(this.template, _.extend(_.extend({}, this), additional || {}));
+ return this.session.qweb.render(this.template, _.extend(_.extend({}, this), additional || {}));
}
});
@@ -1044,24 +1082,6 @@
});
openerp.web._t = new openerp.web.TranslationDataBase().build_translation_function();
-openerp.web.qweb = new QWeb2.Engine();
-openerp.web.qweb.debug = (window.location.search.indexOf('?debug') !== -1);
-openerp.web.qweb.default_dict = {
- '_' : _
-}
-openerp.web.qweb.format_text_node = function(s) {
- // Note that 'this' is the Qweb Node of the text
- var translation = this.node.parentNode.attributes['t-translation'];
- if (translation && translation.value === 'off') {
- return s;
- }
- var ts = _.trim(s);
- if (ts.length === 0) {
- return s;
- }
- var tr = openerp.web._t(ts);
- return tr === ts ? s : tr;
-}
};
=== modified file 'addons/web/static/src/js/data_export.js'
--- addons/web/static/src/js/data_export.js 2011-09-07 09:37:43 +0000
+++ addons/web/static/src/js/data_export.js 2011-10-27 12:44:25 +0000
@@ -1,5 +1,4 @@
openerp.web.data_export = function(openerp) {
-var QWeb = openerp.web.qweb;
openerp.web.DataExport = openerp.web.Dialog.extend({
template: 'ExportTreeView',
dialog_title: 'Export Data',
@@ -85,7 +84,7 @@
if (!export_list.length) {
return;
}
- self.$element.find('#ExistsExportList').append(QWeb.render('Exists.ExportList', {'existing_exports': export_list}));
+ self.$element.find('#ExistsExportList').append(self.session.qweb.render('Exists.ExportList', {'existing_exports': export_list}));
self.$element.find('#saved_export_list').change(function() {
self.$element.find('#fields_list option').remove();
var export_id = self.$element.find('#saved_export_list option:selected').val();
@@ -115,7 +114,7 @@
var self = this;
var current_node = self.$element.find("#savenewlist");
if (!(current_node.find("label")).length) {
- current_node.append(QWeb.render('ExportNewList'));
+ current_node.append(this.session.qweb.render('ExportNewList'));
current_node.find("#add_export_list").click(function() {
var value = current_node.find("#savelist_name").val();
if (value) {
@@ -191,9 +190,9 @@
var current_tr = self.$element.find("tr[id='treerow-" + after + "']");
current_tr.addClass('open');
current_tr.find('img').attr('src','/web/static/src/img/collapse.gif');
- current_tr.after(QWeb.render('ExportTreeView-Secondary.children', {'fields': result}));
+ current_tr.after(this.session.qweb.render('ExportTreeView-Secondary.children', {'fields': result}));
} else {
- self.$element.find('#left_field_panel').append(QWeb.render('ExportTreeView-Secondary', {'fields': result}));
+ self.$element.find('#left_field_panel').append(this.session.qweb.render('ExportTreeView-Secondary', {'fields': result}));
}
_.each(result, function(record) {
self.records[record.id] = record.value;
=== modified file 'addons/web/static/src/js/data_import.js'
--- addons/web/static/src/js/data_import.js 2011-10-24 14:27:44 +0000
+++ addons/web/static/src/js/data_import.js 2011-10-27 12:44:25 +0000
@@ -1,6 +1,5 @@
openerp.web.data_import = function(openerp) {
-var QWeb = openerp.web.qweb,
- _t = openerp.web._t;
+var _t = openerp.web._t;
/**
* Safari does not deal well at all with raw JSON data being returned. As a
* result, we're going to cheat by using a pseudo-jsonp: instead of getting
@@ -188,7 +187,7 @@
with_headers = this.$element.find('#file_has_headers').prop('checked');
headers = with_headers ? results.records[0] : null;
- result_node.append(QWeb.render('ImportView.result', {
+ result_node.append(this.session.qweb.render('ImportView.result', {
'headers': headers,
'records': lines_to_skip ? results.records.slice(lines_to_skip)
: with_headers ? results.records.slice(1)
@@ -196,7 +195,7 @@
}));
this.$element.find('fieldset').addClass('oe-closed');
} else if (results['error']) {
- result_node.append(QWeb.render('ImportView.error', {
+ result_node.append(this.session.qweb.render('ImportView.error', {
'error': results['error']}));
this.$element.find('fieldset').removeClass('oe-closed');
} else if (results['success']) {
=== modified file 'addons/web/static/src/js/search.js'
--- addons/web/static/src/js/search.js 2011-10-24 15:26:12 +0000
+++ addons/web/static/src/js/search.js 2011-10-27 12:44:25 +0000
@@ -1,5 +1,4 @@
openerp.web.search = function(openerp) {
-var QWeb = openerp.web.qweb;
openerp.web.SearchView = openerp.web.Widget.extend(/** @lends openerp.web.SearchView# */{
template: "EmptyComponent",
@@ -144,7 +143,7 @@
lines.push([ext]);
this.inputs.push(ext);
- var render = QWeb.render("SearchView", {
+ var render = this.session.qweb.render("SearchView", {
'view': data.fields_view['arch'],
'lines': lines,
'defaults': this.defaults
@@ -175,7 +174,7 @@
}).then(function(result) {
self.managed_filters = result;
var filters = self.$element.find(".oe_search-view-filters-management");
- filters.html(QWeb.render("SearchView.managed-filters", {filters: result}));
+ filters.html(self.session.qweb.render("SearchView.managed-filters", {filters: result}));
filters.change(self.on_filters_management);
});
},
@@ -207,7 +206,7 @@
_.each(data.domains, function(x) {
domain.add(x);
});
- var dial_html = QWeb.render("SearchView.managed-filters.add");
+ var dial_html = this.session.qweb.render("SearchView.managed-filters.add");
var $dial = $(dial_html);
$dial.dialog({
modal: true,
@@ -433,6 +432,7 @@
* @param view the ancestor view of this widget
*/
init: function (view) {
+ this._super(view);
this.view = view;
},
/**
@@ -473,10 +473,8 @@
this._super();
},
render: function (defaults) {
- return QWeb.render(
- this.template, _.extend(this, {
- defaults: defaults
- }));
+ // FIXME
+ return this._super(_.extend(this, {defaults: defaults}));
}
});
openerp.web.search.add_expand_listener = function($root) {
=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js 2011-10-27 12:43:25 +0000
+++ addons/web/static/src/js/view_form.js 2011-10-27 12:44:25 +0000
@@ -1,7 +1,6 @@
openerp.web.form = function (openerp) {
var _t = openerp.web._t;
-var QWeb = openerp.web.qweb;
openerp.web.views.add('form', 'openerp.web.FormView');
openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# */{
@@ -89,7 +88,7 @@
this.fields_view = data;
var frame = new (this.registry.get_object('frame'))(this, this.fields_view.arch);
- this.rendered = QWeb.render(this.form_template, { 'frame': frame, 'widget': this });
+ this.rendered = this.session.qweb.render(this.form_template, { 'frame': frame, 'widget': this });
}
this.$element.html(this.rendered);
_.each(this.widgets, function(w) {
@@ -320,7 +319,7 @@
this.on_form_changed();
}
if (!_.isEmpty(result.warning)) {
- $(QWeb.render("DialogWarning", result.warning)).dialog({
+ $(this.session.qweb.render("DialogWarning", result.warning)).dialog({
modal: true,
buttons: {
Ok: function() {
@@ -593,7 +592,7 @@
},
on_attachments_loaded: function(attachments) {
this.attachments = attachments;
- this.$div.html(QWeb.render('FormView.sidebar.attachments', this));
+ this.$div.html(this.session.qweb.render('FormView.sidebar.attachments', this));
this.$element.find('.oe-binary-file').change(this.on_attachment_changed);
this.$element.find('.oe-sidebar-attachment-delete').click(this.on_attachment_delete);
},
@@ -744,7 +743,7 @@
},
render: function() {
var template = this.template;
- return QWeb.render(template, { "widget": this });
+ return this.session.qweb.render(template, { "widget": this });
},
_build_view_fields_values: function() {
var a_dataset = this.view.dataset;
@@ -1068,10 +1067,10 @@
},
render: function () {
if (this['for'] && this.type !== 'label') {
- return QWeb.render(this.template, {widget: this['for']});
+ return this.session.qweb.render(this.template, {widget: this['for']});
}
// Actual label widgets should not have a false and have type label
- return QWeb.render(this.template, {widget: this});
+ return this.session.qweb.render(this.template, {widget: this});
},
start: function() {
this._super();
@@ -1612,7 +1611,7 @@
self.related_entries = result;
var $cmenu = $("#" + self.cm_id);
- $cmenu.append(QWeb.render("FieldMany2One.context_menu", {widget: self}));
+ $cmenu.append(self.session.qweb.render("FieldMany2One.context_menu", {widget: self}));
var bindings = {};
bindings[self.cm_id + "_search"] = function() {
self._search_create_popup("search");
@@ -2438,7 +2437,7 @@
});
this.searchview.on_loaded.add_last(function () {
var $buttons = self.searchview.$element.find(".oe_search-view-buttons");
- $buttons.append(QWeb.render("SelectCreatePopup.search.buttons"));
+ $buttons.append(self.session.qweb.render("SelectCreatePopup.search.buttons"));
var $cbutton = $buttons.find(".oe_selectcreatepopup-search-close");
$cbutton.click(function() {
self.stop();
@@ -2511,7 +2510,7 @@
this.view_form.appendTo(this.$element.find("#" + this.element_id + "_view_form"));
this.view_form.on_loaded.add_last(function() {
var $buttons = self.view_form.$element.find(".oe_form_buttons");
- $buttons.html(QWeb.render("SelectCreatePopup.form.buttons", {widget:self}));
+ $buttons.html(self.sessions.qweb.render("SelectCreatePopup.form.buttons", {widget:self}));
var $nbutton = $buttons.find(".oe_selectcreatepopup-form-save-new");
$nbutton.click(function() {
$.when(self.view_form.do_save()).then(function() {
@@ -2613,7 +2612,7 @@
this.view_form.appendTo(this.$element.find("#" + this.element_id + "_view_form"));
this.view_form.on_loaded.add_last(function() {
var $buttons = self.view_form.$element.find(".oe_form_buttons");
- $buttons.html(QWeb.render("FormOpenPopup.form.buttons"));
+ $buttons.html(self.session.qweb.render("FormOpenPopup.form.buttons"));
var $nbutton = $buttons.find(".oe_formopenpopup-form-save");
$nbutton.click(function() {
self.view_form.do_save().then(function() {
@@ -2869,7 +2868,7 @@
});
}
- var content = openerp.web.qweb.render("FieldStatus.content", {widget: this, _:_});
+ var content = this.openerp.qweb.render("FieldStatus.content", {widget: this, _:_});
this.$element.html(content);
var colors = JSON.parse((this.node.attrs || {}).statusbar_colors || "{}");
=== modified file 'addons/web/static/src/js/view_list.js'
--- addons/web/static/src/js/view_list.js 2011-10-25 13:24:12 +0000
+++ addons/web/static/src/js/view_list.js 2011-10-27 12:44:25 +0000
@@ -1,6 +1,5 @@
openerp.web.list = function (openerp) {
var _t = openerp.web._t;
-var QWeb = openerp.web.qweb;
openerp.web.views.add('list', 'openerp.web.ListView');
openerp.web.ListView = openerp.web.View.extend( /** @lends openerp.web.ListView# */ {
defaults: {
@@ -200,7 +199,7 @@
this.setup_columns(this.fields_view.fields, grouped);
- this.$element.html(QWeb.render("ListView", this));
+ this.$element.html(this.session.qweb.render("ListView", this));
// Head hook
this.$element.find('.all-record-selector').click(function(){
self.$element.find('.oe-record-selector input').prop('checked',
@@ -851,7 +850,7 @@
}
this.$current = this.$_element.clone(true);
this.$current.empty().append(
- QWeb.render('ListView.rows', _.extend({
+ this.session.qweb.render('ListView.rows', _.extend({
render_cell: $.proxy(this, 'render_cell')}, this)));
this.pad_table_to(5);
},
@@ -954,7 +953,7 @@
*/
render_record: function (record) {
var index = this.records.indexOf(record);
- return QWeb.render('ListView.row', {
+ return this.sessions.qweb.render('ListView.row', {
columns: this.columns,
options: this.options,
record: record,
=== modified file 'addons/web/static/src/js/view_tree.js'
--- addons/web/static/src/js/view_tree.js 2011-10-12 11:14:29 +0000
+++ addons/web/static/src/js/view_tree.js 2011-10-27 12:44:25 +0000
@@ -3,7 +3,6 @@
*---------------------------------------------------------*/
openerp.web.view_tree = function(openerp) {
-var QWeb = openerp.web.qweb;
openerp.web.views.add('tree', 'openerp.web.TreeView');
openerp.web.TreeView = openerp.web.View.extend(/** @lends openerp.web.TreeView# */{
@@ -76,7 +75,7 @@
});
this.fields = fields_view.fields;
this.hook_row_click();
- this.$element.html(QWeb.render('TreeView', {
+ this.$element.html(this.session.qweb.render('TreeView', {
'title': this.fields_view.arch.attrs.string,
'fields_view': this.fields_view.arch.children,
'fields': this.fields,
@@ -192,7 +191,7 @@
});
var $curr_node = self.$element.find('#treerow_' + id);
- var children_rows = QWeb.render('TreeView.rows', {
+ var children_rows = self.session.qweb.render('TreeView.rows', {
'records': records,
'children_field': self.children_field,
'fields_view': self.fields_view.arch.children,
=== modified file 'addons/web/static/src/js/views.js'
--- addons/web/static/src/js/views.js 2011-10-27 06:17:27 +0000
+++ addons/web/static/src/js/views.js 2011-10-27 12:44:25 +0000
@@ -188,7 +188,7 @@
this.registry = session.web.views;
},
render: function() {
- return session.web.qweb.render(this.template, {
+ return this.session.qweb.render(this.template, {
self: this,
prefix: this.element_id,
views: this.views_src});
@@ -549,7 +549,7 @@
start: function() {
this._super(this);
var self = this;
- this.$element.html(session.web.qweb.render('Sidebar'));
+ this.$element.html(this.session.qweb.render('Sidebar'));
this.$element.find(".toggle-sidebar").click(function(e) {
self.do_toggle();
});
@@ -626,7 +626,7 @@
if(!$section) {
section_id = _.uniqueId(this.element_id + '_section_' + code + '_');
- var $section = $(session.web.qweb.render("Sidebar.section", {
+ var $section = $(this.session.qweb.render("Sidebar.section", {
section_id: section_id,
name: name,
classname: 'oe_sidebar_' + code,
@@ -658,7 +658,7 @@
this.items[items[i].element_id] = items[i];
}
- var $items = $(session.web.qweb.render("Sidebar.section.items", {items: items}));
+ var $items = $(this.session.qweb.render("Sidebar.section.items", {items: items}));
$items.find('a.oe_sidebar_action_a').click(function() {
var item = self.items[$(this).attr('id')];
@@ -739,7 +739,7 @@
var self = this;
this._super();
$.when(this.languages_loaded).then(function() {
- self.$element.html(session.web.qweb.render('TranslateDialog', { widget: self }));
+ self.$element.html(self.session.qweb.render('TranslateDialog', { widget: self }));
self.$element.tabs();
if (!(self.view.translatable_fields && self.view.translatable_fields.length)) {
self.hide_tabs('fields');
=== modified file 'addons/web_calendar/__openerp__.py'
--- addons/web_calendar/__openerp__.py 2011-10-05 14:36:07 +0000
+++ addons/web_calendar/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -11,5 +11,8 @@
"css": ['static/lib/dhtmlxScheduler/codebase/dhtmlxscheduler.css',
'static/lib/dhtmlxScheduler/codebase/ext/dhtmlxscheduler_ext.css'
],
+ 'qweb' : [
+ "static/src/xml/*.xml",
+ ],
'active': True
}
=== modified file 'addons/web_calendar/static/src/js/calendar.js'
--- addons/web_calendar/static/src/js/calendar.js 2011-10-20 10:39:26 +0000
+++ addons/web_calendar/static/src/js/calendar.js 2011-10-27 12:44:25 +0000
@@ -4,8 +4,6 @@
openerp.web_calendar = function(openerp) {
var _t = openerp.web._t;
-var QWeb = openerp.web.qweb;
-QWeb.add_template('/web_calendar/static/src/xml/web_calendar.xml');
openerp.web.views.add('calendar', 'openerp.web_calendar.CalendarView');
openerp.web_calendar.CalendarView = openerp.web.View.extend({
// Dhtmlx scheduler ?
@@ -78,7 +76,7 @@
for (var fld = 0; fld < this.fields_view.arch.children.length; fld++) {
this.info_fields.push(this.fields_view.arch.children[fld].attrs.name);
}
- this.$element.html(QWeb.render("CalendarView", {"fields_view": this.fields_view}));
+ this.$element.html(this.session.qweb.render("CalendarView", {"fields_view": this.fields_view}));
if (this.options.sidebar && this.options.sidebar_id) {
this.sidebar = new openerp.web.Sidebar(this, this.options.sidebar_id);
@@ -374,7 +372,7 @@
this.$element.delegate('input:checkbox', 'change', this.on_filter_click);
},
on_events_loaded: function(filters) {
- this.$div.html(QWeb.render('CalendarView.sidebar.responsible', { filters: filters }));
+ this.$div.html(this.session.qweb.render('CalendarView.sidebar.responsible', { filters: filters }));
},
on_filter_click: function(e) {
var responsibles = [],
=== modified file 'addons/web_dashboard/__openerp__.py'
--- addons/web_dashboard/__openerp__.py 2011-10-05 14:36:07 +0000
+++ addons/web_dashboard/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -7,5 +7,8 @@
'static/src/js/dashboard.js'
],
"css": ['static/src/css/dashboard.css'],
+ 'qweb' : [
+ "static/src/xml/*.xml",
+ ],
'active': True
}
=== modified file 'addons/web_dashboard/static/src/js/dashboard.js'
--- addons/web_dashboard/static/src/js/dashboard.js 2011-10-22 20:20:19 +0000
+++ addons/web_dashboard/static/src/js/dashboard.js 2011-10-27 12:44:25 +0000
@@ -1,6 +1,4 @@
openerp.web_dashboard = function(openerp) {
-var QWeb = openerp.web.qweb;
-QWeb.add_template('/web_dashboard/static/src/xml/web_dashboard.xml');
if (!openerp.web_dashboard) {
/** @namespace */
@@ -109,7 +107,7 @@
qdict.action = {
attrs : self.actions_attrs[aid]
};
- self.$element.find('.oe-dashboard-column:first').prepend(QWeb.render('DashBoard.action', qdict));
+ self.$element.find('.oe-dashboard-column:first').prepend(self.session.qweb.render('DashBoard.action', qdict));
self.do_save_dashboard();
self.on_load_action(result)
});
@@ -149,7 +147,7 @@
title: 'Edit Layout',
width: 'auto',
height: 'auto'
- }).html(QWeb.render('DashBoard.layouts', qdict));
+ }).html(this.session.qweb.render('DashBoard.layouts', qdict));
$dialog.find('li').click(function() {
var layout = $(this).attr('data-layout');
$dialog.dialog('destroy');
@@ -210,7 +208,7 @@
});
board.columns.push(actions);
});
- var arch = QWeb.render('DashBoard.xml', board);
+ var arch = this.session.qweb.render('DashBoard.xml', board);
this.rpc('/web/view/add_custom', {
view_id: this.view.fields_view.view_id,
arch: arch
@@ -253,7 +251,7 @@
children: []
});
}
- return QWeb.render(this.template, this);
+ return this.session.qweb.render(this.template, this);
},
do_reload: function() {
var view_manager = this.view.widget_parent,
@@ -326,7 +324,7 @@
})
.groupBy(function (record) {return record.category})
.value();
- this.$element.html(QWeb.render('ConfigOverview.content', {
+ this.$element.html(this.session.qweb.render('ConfigOverview.content', {
completion: 100 * progress.done / progress.total,
groups: grouped_todos
}));
@@ -439,7 +437,7 @@
while (applications.length) {
rows.push(applications.splice(0, 3));
}
- var tiles = QWeb.render( 'ApplicationTiles.content', {rows: rows});
+ var tiles = self.session.qweb.render( 'ApplicationTiles.content', {rows: rows});
self.$element.append(tiles)
.find('.oe-dashboard-home-tile')
.click(function () {
@@ -455,7 +453,7 @@
session: self.session,
rows: openerp.web_dashboard.apps.applications
};
- var installer = QWeb.render('StaticHome', render_ctx);
+ var installer = this.session.qweb.render('StaticHome', render_ctx);
self.$element.append(installer);
this.$element.delegate('.oe-static-home-tile-text button', 'click', function () {
self.install_module($(this).val());
@@ -525,7 +523,7 @@
var url = _.sprintf(
'/web_dashboard/widgets/content?session_id=%s&widget_id=%d',
this.session.session_id, widget.id);
- this.$element.html(QWeb.render('HomeWidget.content', {
+ this.$element.html(this.session.qweb.render('HomeWidget.content', {
widget: widget,
url: url
}));
=== modified file 'addons/web_diagram/__openerp__.py'
--- addons/web_diagram/__openerp__.py 2011-10-05 14:36:07 +0000
+++ addons/web_diagram/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -13,5 +13,8 @@
'css' : [
"static/src/css/base_diagram.css",
],
+ 'qweb' : [
+ "static/src/xml/*.xml",
+ ],
'active': True,
}
=== modified file 'addons/web_diagram/static/src/js/diagram.js'
--- addons/web_diagram/static/src/js/diagram.js 2011-10-26 13:52:20 +0000
+++ addons/web_diagram/static/src/js/diagram.js 2011-10-27 12:44:25 +0000
@@ -3,8 +3,6 @@
*---------------------------------------------------------*/
openerp.web_diagram = function (openerp) {
-var QWeb = openerp.web.qweb;
-QWeb.add_template('/web_diagram/static/src/xml/base_diagram.xml');
openerp.web.views.add('diagram', 'openerp.web.DiagramView');
openerp.web.DiagramView = openerp.web.View.extend({
searchable: false,
@@ -43,7 +41,7 @@
this.node = this.nodes.attrs.object,
this.connector = this.connectors.attrs.object;
- this.$element.html(QWeb.render("DiagramView", this));
+ this.$element.html(this.session.qweb.render("DiagramView", this));
this.$element.find('div.oe_diagram_pager button[data-pager-action]').click(function() {
var action = $(this).data('pager-action');
=== modified file 'addons/web_gantt/__openerp__.py'
--- addons/web_gantt/__openerp__.py 2011-10-05 14:36:07 +0000
+++ addons/web_gantt/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -9,5 +9,8 @@
'static/src/js/gantt.js'
],
"css": ['static/lib/dhtmlxGantt/codebase/dhtmlxgantt.css'],
+ 'qweb' : [
+ "static/src/xml/*.xml",
+ ],
'active': True
}
=== modified file 'addons/web_gantt/static/src/js/gantt.js'
--- addons/web_gantt/static/src/js/gantt.js 2011-10-24 10:10:15 +0000
+++ addons/web_gantt/static/src/js/gantt.js 2011-10-27 12:44:25 +0000
@@ -2,8 +2,6 @@
* OpenERP web_gantt
*---------------------------------------------------------*/
openerp.web_gantt = function (openerp) {
-var QWeb = openerp.web.qweb;
-QWeb.add_template('/web_gantt/static/src/xml/web_gantt.xml');
openerp.web.views.add('gantt', 'openerp.web_gantt.GanttView');
openerp.web_gantt.GanttView = openerp.web.View.extend({
@@ -61,7 +59,7 @@
self.create_gantt();
self.get_events();
- this.$element.html(QWeb.render("GanttView", {"view": this, "fields_view": this.fields_view}));
+ this.$element.html(this.session.qweb.render("GanttView", {"view": this, "fields_view": this.fields_view}));
},
=== modified file 'addons/web_graph/__openerp__.py'
--- addons/web_graph/__openerp__.py 2011-10-05 14:36:07 +0000
+++ addons/web_graph/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -7,5 +7,8 @@
"static/lib/dhtmlxGraph/codebase/dhtmlxchart_debug.js",
"static/src/js/graph.js"],
"css": ["static/lib/dhtmlxGraph/codebase/dhtmlxchart.css"],
+ 'qweb' : [
+ "static/src/xml/*.xml",
+ ],
"active": True
}
=== modified file 'addons/web_graph/static/src/js/graph.js'
--- addons/web_graph/static/src/js/graph.js 2011-10-07 16:21:56 +0000
+++ addons/web_graph/static/src/js/graph.js 2011-10-27 12:44:25 +0000
@@ -12,8 +12,6 @@
'#ad7fa8', '#729fcf', '#8ae234', '#e9b96e', '#fce94f', '#f57900',
'#cc0000', '#d400a8'];
-var QWeb = openerp.web.qweb;
-QWeb.add_template('/web_graph/static/src/xml/web_graph.xml');
openerp.web.views.add('graph', 'openerp.web_graph.GraphView');
openerp.web_graph.GraphView = openerp.web.View.extend({
@@ -91,7 +89,7 @@
},
schedule_chart: function(results) {
var self = this;
- this.$element.html(QWeb.render("GraphView", {
+ this.$element.html(this.session.qweb.render("GraphView", {
"fields_view": this.fields_view,
"chart": this.chart,
'element_id': this.element_id
=== modified file 'addons/web_kanban/__openerp__.py'
--- addons/web_kanban/__openerp__.py 2011-10-05 14:36:07 +0000
+++ addons/web_kanban/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -9,5 +9,8 @@
"css": [
"static/src/css/kanban.css"
],
+ 'qweb' : [
+ "static/src/xml/*.xml",
+ ],
'active': True
}
=== modified file 'addons/web_kanban/static/src/js/kanban.js'
--- addons/web_kanban/static/src/js/kanban.js 2011-10-27 10:33:01 +0000
+++ addons/web_kanban/static/src/js/kanban.js 2011-10-27 12:44:25 +0000
@@ -1,7 +1,5 @@
openerp.web_kanban = function (openerp) {
-var QWeb = openerp.web.qweb;
-QWeb.add_template('/web_kanban/static/src/xml/web_kanban.xml');
openerp.web.views.add('kanban', 'openerp.web_kanban.KanbanView');
openerp.web_kanban.KanbanView = openerp.web.View.extend({
init: function (parent, dataset, view_id, options) {
@@ -16,7 +14,7 @@
this.all_display_data = false;
this.groups = [];
this.qweb = new QWeb2.Engine();
- this.qweb.debug = (window.location.search.indexOf('?debug') !== -1);
+ this.qweb.debug = this.session.debug;
this.aggregates = {};
this.NO_OF_COLUMNS = 3;
this.form_dialog = new openerp.web.FormDialog(this, {}, this.options.action_views_ids.form, dataset).start();
@@ -94,7 +92,7 @@
return s.substr(0, size) + '...';
},
transform_qweb_template: function(node) {
- var qweb_prefix = QWeb.prefix;
+ var qweb_prefix = this.session.qweb.prefix;
switch (node.tag) {
case 'field':
node.tag = 't';
@@ -149,7 +147,7 @@
if (!this.group_by.length) {
this.do_record_group();
}
- this.$element.html(QWeb.render("KanbanView", {"data": self.all_display_data}));
+ this.$element.html(this.session.qweb.render("KanbanView", {"data": self.all_display_data}));
this.on_reload_kanban();
this.$element.find(".oe_vertical_text").hide();
var drag_handel = false;
@@ -223,7 +221,7 @@
var self = this,
id = record_id,
colors = '#FFC7C7,#FFF1C7,#E3FFC7,#C7FFD5,#C7FFFF,#C7D5FF,#E3C7FF,#FFC7F1'.split(','),
- $cpicker = $(QWeb.render('KanbanColorPicker', { colors : colors, columns: 2 }));
+ $cpicker = $(this.session.qweb.render('KanbanColorPicker', { colors : colors, columns: 2 }));
$e.after($cpicker);
$cpicker.mouseenter(function() {
clearTimeout($cpicker.data('timeoutId'));
=== modified file 'addons/web_mobile/__openerp__.py'
--- addons/web_mobile/__openerp__.py 2011-10-05 14:36:07 +0000
+++ addons/web_mobile/__openerp__.py 2011-10-27 12:44:25 +0000
@@ -3,5 +3,5 @@
"category" : "Hidden",
"version" : "2.0",
"depends" : [],
- 'active': True,
+ 'active': False,
}
_______________________________________________
Mailing list: https://launchpad.net/~openerp-dev-gtk
Post to : [email protected]
Unsubscribe : https://launchpad.net/~openerp-dev-gtk
More help : https://help.launchpad.net/ListHelp