diff --git a/addons/web/common/session.py b/addons/web/common/session.py
index be1a2b749da..905670404a9 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 openerp_entreprise(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 6a7ab94a645..996b5f2095f 100644
--- a/addons/web/controllers/main.py
+++ b/addons/web/controllers/main.py
@@ -365,6 +365,17 @@ class Database(openerpweb.Controller):
class Session(openerpweb.Controller):
_cp_path = "/web/session"
+ @openerpweb.jsonrequest
+ def get_session_info(self, req):
+ return {
+ "session_id": req.session_id,
+ "uid": req.session._uid,
+ "context": req.session.get_context() if req.session._uid else {},
+ "db": req.session._db,
+ "login": req.session._login,
+ "openerp_entreprise": req.session.openerp_entreprise(),
+ }
+
@openerpweb.jsonrequest
def authenticate(self, req, db, login, password, base_location=None):
wsgienv = req.httprequest.environ
@@ -376,24 +387,8 @@ class Session(openerpweb.Controller):
user_agent="%s / %s" % (release.name, release.version),
)
req.session.authenticate(db, login, password, env)
- ctx = req.session.get_context() if req.session._uid else {}
- return {
- "session_id": req.session_id,
- "uid": req.session._uid,
- "context": ctx,
- "db": req.session._db,
- "login": req.session._login
- }
-
- @openerpweb.jsonrequest
- def get_session_info(self, req):
- return {
- "uid": req.session._uid,
- "context": req.session.get_context() if req.session._uid else False,
- "db": req.session._db,
- "login": req.session._login
- }
+ return self.get_session_info(req)
@openerpweb.jsonrequest
def change_password (self,req,fields):
diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css
index 19ac5e3d8a6..39297d892f4 100644
--- a/addons/web/static/src/css/base.css
+++ b/addons/web/static/src/css/base.css
@@ -1888,6 +1888,25 @@ ul.oe-arrow-list li.oe-arrow-list-selected .oe-arrow-list-after {
display: block;
}
+/* Dialog traceback cases */
+.openerp .oe_error_detail{
+ display: block;
+}
+.openerp .oe_error_send{
+ display:block;
+}
+.openerp .oe_fielddiv{
+ display:inline-block;
+ width:100%;
+}
+.openerp .oe_fielddiv input[type=text],textarea{
+ width:100%;
+}
+/* for Alignment center */
+.openerp .oe_centeralign{
+ text-align:center;
+}
+
.openerp .oe_applications_tiles {
color: #4C4C4C;
text-shadow: #EEE 0 1px 0;
diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js
index 015281a7a09..70f70c7ec4e 100644
--- a/addons/web/static/src/js/chrome.js
+++ b/addons/web/static/src/js/chrome.js
@@ -167,7 +167,7 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({
}
},
on_managed_error: function(error) {
- $('
' + QWeb.render('DialogWarning', {error: error}) + '
').dialog({
+ $('' + QWeb.render('CrashManagerWarning', {error: error}) + '
').dialog({
title: "OpenERP " + _.str.capitalize(error.type),
buttons: [
{text: _t("Ok"), click: function() { $(this).dialog("close"); }}
@@ -175,15 +175,42 @@ openerp.web.CrashManager = openerp.web.CallbackEnabled.extend({
});
},
on_traceback: function(error) {
+ var self = this;
+ var buttons = {};
+ if (openerp.connection.openerp_entreprise) {
+ buttons[_t("Send OpenERP Enterprise Report")] = function() {
+ $this = $(this);
+ 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', [error.data,explanation,remark,issuename]).then(function(result){
+ if (result === false) {
+ alert('There was a communication error.')
+ } else {
+ $this.dialog('close');
+ }
+ });
+ };
+ buttons[_t("Dont send")] = function() {
+ $(this).dialog("close");
+ };
+ } else {
+ buttons[_t("Ok")] = function() {
+ $(this).dialog("close");
+ };
+ }
var dialog = new openerp.web.Dialog(this, {
- title: "OpenERP " + _.str.capitalize(error.type),
+ title: "OpenERP " + _.str.capitalize(this.error.type),
autoOpen: true,
- buttons: [
- {text: _t("Ok"), click: function() { $(this).dialog("close"); }}
- ]
+ width: '80%',
+ height: '50%',
+ min_width: '800px',
+ min_height: '600px',
+ buttons: buttons
}).start();
- dialog.$element.html(QWeb.render('DialogTraceback', {error: error}));
- }
+ dialog.$element.html(QWeb.render('CrashManagerError', {session: openerp.connection, error: error}));
+ },
});
openerp.web.Loading = openerp.web.Widget.extend(/** @lends openerp.web.Loading# */{
@@ -1084,6 +1111,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.openerp_entreprise) {
+ self.$element.find('.oe_footer_powered').append(' - Unsupported/Community Version');
+ $('title').html('OpenERP - Usupported/Community Version');
+ }
});
},
do_reload: function() {
diff --git a/addons/web/static/src/js/core.js b/addons/web/static/src/js/core.js
index 066e904a8df..646b71834c9 100644
--- a/addons/web/static/src/js/core.js
+++ b/addons/web/static/src/js/core.js
@@ -373,6 +373,7 @@ openerp.web.Connection = openerp.web.CallbackEnabled.extend( /** @lends openerp.
this.username = false;
this.user_context= {};
this.db = false;
+ this.openerp_entreprise = false;
this.module_list = [];
this.module_loaded = {"web": true};
this.context = {};
@@ -549,7 +550,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,
+ openerp_entreprise: result.openerp_entreprise
});
var deferred = self.do_load_qweb(['/web/webclient/qweb']);
if(self.session_is_valid()) {
@@ -574,7 +576,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,
+ openerp_entreprise: result.openerp_entreprise
});
if (!volatile) {
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 a6f9be9b128..837e2eae1f9 100644
--- a/addons/web/static/src/xml/base.xml
+++ b/addons/web/static/src/xml/base.xml
@@ -247,6 +247,54 @@
+
+
+
+ ![]() |
+
+
+
+ var message = d.message ? d.message : d.error.data.fault_code;
+ d.html_error = context.engine.tools.html_escape(message)
+ .replace(/\n/g, ' ');
+
+
+
+ |
+
+
+
+
+
+ Your version of OpenERP is unsupported. Support & maintenance services are available here: OpenERP Entreprise.
+
+
+
+
+
OpenERP Enterprise Contract.
+
Your report will be sent to the OpenERP Enterprise team.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- ![]() |
-
-
-
- var message = d.message ? d.message : d.error.data.fault_code;
- d.html_error = context.engine.tools.html_escape(message)
- .replace(/\n/g, ' ');
-
-
-
- |
-
-
-
-
-
-
-
-