diff --git a/addons/web/common/session.py b/addons/web/common/session.py index be1a2b749da..db58fea0b59 100644 --- a/addons/web/common/session.py +++ b/addons/web/common/session.py @@ -45,6 +45,12 @@ class OpenERPSession(object): del state['config'] return state + def has_pwc(self): + if not self._uid: + return False + else: + return self.model('publisher_warranty.contract').status()['status'] == 'full' + def build_connection(self): conn = openerplib.Connection(self.config.connector, database=self._db, login=self._login, user_id=self._uid, password=self._password) diff --git a/addons/web/controllers/main.py b/addons/web/controllers/main.py index e3af96206dc..73fb7a0684b 100644 --- a/addons/web/controllers/main.py +++ b/addons/web/controllers/main.py @@ -370,7 +370,8 @@ class Session(openerpweb.Controller): "uid": req.session._uid, "context": ctx, "db": req.session._db, - "login": req.session._login + "login": req.session._login, + "has_pwc": req.session.has_pwc() } @openerpweb.jsonrequest @@ -379,7 +380,8 @@ class Session(openerpweb.Controller): "uid": req.session._uid, "context": req.session.get_context() if req.session._uid else False, "db": req.session._db, - "login": req.session._login + "login": req.session._login, + "has_pwc": req.session.has_pwc() } @openerpweb.jsonrequest diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 98f28fa579c..5624f6d0740 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -1746,42 +1746,45 @@ ul.oe-arrow-list li.oe-arrow-list-selected .oe-arrow-list-after { } /* Dialog traceback cases */ -.expandcase { - background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat; +.openerp .expandcase { + background: transparent url(/web/static/src/img/expand.gif) 0 50% no-repeat; margin-top:10px; } -.collapsecase { - background: transparent url(/web/static/src/img/collapse.gif) 0 50% no-repeat; - margin-top:10px; +.openerp .collapsecase { + background: transparent url(/web/static/src/img/collapse.gif) 0 50% no-repeat; + margin-top:10px; } -.case-head{ - padding-left:18px; - margin-top:5px; +.openerp .case-head{ + padding-left:18px; + margin-top:5px; } -.error-detail{ +.openerp .error-detail{ display:none; } -.error-fix{ - border:1px solid #999999; - overflow:auto; +.openerp .error-send{ + display:block; } -.fielddiv{ +.openerp .error-fix{ + border:1px solid #999999; + overflow:auto; +} +.openerp .fielddiv{ display:inline-block; } -.fielddiv label{ -/* width:20%; */ - float:left; - text-align:right; +.openerp .fielddiv label{ + /* width:20%; */ + float:left; + text-align:right; } -.fielddiv div{ - width:79%; +.openerp .fielddiv div{ + width:79%; float:right; } -.fielddiv input[type=text],textarea{ - width:80%; +.openerp .fielddiv input[type=text],textarea{ + width:200px; } /* for Alignment center */ -.centeralign{ +.openerp .centeralign{ text-align:center; } /* Buttons */ diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index 41ecbb2bdca..468127f8810 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -188,34 +188,29 @@ openerp.web.ServerError = openerp.web.Dialog.extend({ ] }).start(); dialog.$element.html(QWeb.render('DialogTraceback', {error: this.error})); + + $('#button_send_error').click(function() { + var issuename = $('#issuename').val(); + var explanation = $('#explanation').val(); + var remark = $('#remark').val(); + + // Call the send method from server to send mail with details + new openerp.web.DataSet(self, 'publisher_warranty.contract').call_and_eval('send', [self.error.data,explanation,remark,issuename]).then(function(result){ + if (result === false) ( + alert('There was a communication error.')) + console.log(arguments); + }); + }); + + if (!self.session.has_pwc) { + $('.error-send').html('Unsupported/Community Version'); + } + dialog.$element.find('.expandcase').each(function() { var $this = $(this); - $this.click( function() { - if ($this.attr('id') == "case2") { - /* call the status method from the server to verify status of contract - if status is full then contract is valid - if status is none then contract is invalid - */ - new openerp.web.DataSet(self, 'publisher_warranty.contract').call_and_eval('status', []).then(function(res) { - var hasacontract = res.status == "full"; - if (!hasacontract) { - $this.find('a').attr({ href : 'http://www.openerp.com/support-or-publisher-warranty-contract',target: "_blank" }); - $this.find('a').css( 'text-decoration', 'none' ); - } else { - $this.next().find('[type=button]').click( function() { - var issuename = $('#issuename').val(); - var explanation = $('#explanation').val(); - var remark = $('#remark').val(); - // Call the send method from server to send mail with details - new openerp.web.DataSet(self, 'publisher_warranty.contract').call_and_eval('send', [self.error.data,explanation,remark,issuename]); - }); - $this.next().toggle().prev().toggleClass("expandcase collapsecase"); - } - }); - } else { - $this.next().toggle().prev().toggleClass("expandcase collapsecase"); - } + $this.click( function() { + $this.next().toggle().prev().toggleClass("expandcase collapsecase"); }); }); } @@ -1080,6 +1075,10 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie self.action_manager = new openerp.web.ActionManager(self); self.action_manager.appendTo($("#oe_app")); self.bind_hashchange(); + if (!self.session.has_pwc) { + self.$element.find('.oe_footer_powered').append(' - Unsupported/Community Version'); + $('title').html('OpenERP - Community Version'); + } }); }, do_reload: function() { diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js index 32cb5efdb73..018a474ddbc 100644 --- a/addons/web/static/src/js/core.js +++ b/addons/web/static/src/js/core.js @@ -544,7 +544,8 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. db: result.db, username: result.login, uid: result.uid, - user_context: result.context + user_context: result.context, + has_pwc: result.has_pwc }); var deferred = self.do_load_qweb(['/web/webclient/qweb']); if(self.uid) { @@ -569,7 +570,8 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp. db: result.db, username: result.login, uid: result.uid, - user_context: result.context + user_context: result.context, + has_pwc: result.has_pwc }); // TODO: session store in cookie should be optional self.set_cookie('session_id', self.session_id); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 0a6e3ba0b56..eb32c109787 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -57,9 +57,6 @@