[MERGE] crashmanager openerp entreprise bth/rlo/chs
authorAntony Lesuisse <al@openerp.com>
Tue, 27 Dec 2011 15:59:15 +0000 (16:59 +0100)
committerAntony Lesuisse <al@openerp.com>
Tue, 27 Dec 2011 15:59:15 +0000 (16:59 +0100)
bzr revid: al@openerp.com-20111227155915-4s3fmuqzce9733il

1  2 
addons/web/common/session.py
addons/web/controllers/main.py
addons/web/static/src/css/base.css
addons/web/static/src/js/chrome.js
addons/web/static/src/js/core.js
addons/web/static/src/xml/base.xml

@@@ -45,6 -45,12 +45,12 @@@ class OpenERPSession(object)
              del state['config']
          return state
  
 -    def has_pwc(self):
++    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)
@@@ -366,6 -366,6 +366,17 @@@ 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
          release = web.common.release
              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
-         }
 -            "session_id": req.session_id,
 -            "uid": req.session._uid,
 -            "context": ctx,
 -            "db": req.session._db,
 -            "login": req.session._login,
 -            "has_pwc": req.session.has_pwc()
 -        }
 -
 -    @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,
 -            "has_pwc": req.session.has_pwc()
 -        }
++        return self.get_session_info(req)
  
      @openerpweb.jsonrequest
      def change_password (self,req,fields):
@@@ -1888,6 -1883,29 +1888,25 @@@ ul.oe-arrow-list li.oe-arrow-list-selec
      display: block;
  }
  
+ /* Dialog traceback cases */
+ .openerp .oe_error_detail{
 -    display:block;
++    display: block;
+ }
+ .openerp .oe_error_send{
+     display:block;
+ }
 -.openerp .oe_error_fix{
 -    border:1px solid #999999;
 -    overflow:auto;
 -}
+ .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;
@@@ -167,7 -167,7 +167,7 @@@ openerp.web.CrashManager = openerp.web.
          }
      },
      on_managed_error: function(error) {
--        $('<div>' + QWeb.render('DialogWarning', {error: error}) + '</div>').dialog({
++        $('<div>' + QWeb.render('CrashManagerWarning', {error: error}) + '</div>').dialog({
              title: "OpenERP " + _.str.capitalize(error.type),
              buttons: [
                  {text: _t("Ok"), click: function() { $(this).dialog("close"); }}
          });
      },
      on_traceback: function(error) {
 -        this.servererror = new openerp.web.ServerError(this,error);
 -        this.servererror.start();
 -    }
 -});
 -openerp.web.ServerError = openerp.web.Dialog.extend({
 -    template: 'DialogTraceback',
 -    init: function(parent, error) {
 -        this._super(parent);
 -        this.error = error;
 -    },
 -    start: function() {
+         var self = this;
 -        if (self.session.has_pwc) {
 -            var buttons = [
 -                {
 -                    text: _t("Send to OpenERP Enterprise Team"), 
 -                    click: 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', [self.error.data,explanation,remark,issuename]).then(function(result){
 -                                    if (result === false) {
 -                                        alert('There was a communication error.')
 -                                    } else {
 -                                        $this.dialog('close');
 -                                    }
 -                                    console.log(arguments);
 -                                });
 -                            }
 -                },
 -                {
 -                    text: _t("Dont send"), click: function() { $(this).dialog("close"); }
 -                }
 -            ]
++        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 {
 -            var buttons = {text: _t("Ok"), click: function() { $(this).dialog("close"); }}
++            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('DialogTraceback', {session: this.session, error: this.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 -1078,10 +1111,10 @@@ openerp.web.WebClient = openerp.web.Wid
              self.action_manager = new openerp.web.ActionManager(self);
              self.action_manager.appendTo($("#oe_app"));
              self.bind_hashchange();
 -            if (!self.session.has_pwc) {
++            if (!self.session.openerp_entreprise) {
+                 self.$element.find('.oe_footer_powered').append('<span> - <a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank">Unsupported/Community Version</a></span>');
 -                $('title').html('OpenERP - Community Version');
++                $('title').html('OpenERP - Usupported/Community Version');
+             }
          });
      },
      do_reload: function() {
@@@ -373,6 -373,6 +373,7 @@@ openerp.web.Connection = openerp.web.Ca
          this.username = false;
          this.user_context= {};
          this.db = false;
++        this.openerp_entreprise = false;
          this.module_list = [];
          this.module_loaded = {"web": true};
          this.context = {};
                  db: result.db,
                  username: result.login,
                  uid: result.uid,
-                 user_context: result.context
+                 user_context: result.context,
 -                has_pwc: result.has_pwc
++                openerp_entreprise: result.openerp_entreprise
              });
              var deferred = self.do_load_qweb(['/web/webclient/qweb']);
              if(self.session_is_valid()) {
                  db: result.db,
                  username: result.login,
                  uid: result.uid,
-                 user_context: result.context
+                 user_context: result.context,
 -                has_pwc: result.has_pwc
++                openerp_entreprise: result.openerp_entreprise
              });
              if (!volatile) {
                  self.set_cookie('session_id', self.session_id);
      </form>
  </t>
  
++<t t-name="CrashManagerWarning">
++    <table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
++    <tr>
++        <td><img t-att-src='_s + "/web/static/src/img/warning.png"' class="oe-dialog-icon"/></td>
++        <td>
++            <p>
++                <t t-js="d">
++                    var message = d.message ? d.message : d.error.data.fault_code;
++                    d.html_error = context.engine.tools.html_escape(message)
++                        .replace(/\n/g, '<br/>');
++                </t>
++                <t t-raw="html_error"/>
++            </p>
++        </td>
++    </tr>
++    </table>
++</t>
++<t t-name="CrashManagerError">
++    <t t-if="!session.openerp_entreprise">
++        <span>Your version of OpenERP is unsupported. Support &amp; maintenance services are available here: <a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank">OpenERP Entreprise</a>.</span>
++    </t>
++    <t t-if="session.openerp_entreprise">
++        <div class="oe_error_send">
++            <div>
++                <div class="oe_centeralign"><b>OpenERP Enterprise Contract.</b></div>
++                <div><br/>Your report will be sent to the OpenERP Enterprise team.<br/></div><br/>
++                <div>
++                    <label>Summary:</label><br/>
++                    <input id="issuename" type="text" class="oe_fielddiv"/>
++                </div><br/><br/>
++                <div>
++                    <label>Description:</label><br/>
++                    <textarea id="explanation" rows="6"></textarea>
++                </div><br/><br/>
++                <div>
++                    <label>What you did:</label><br/>
++                    <textarea id="remark" rows="6" ></textarea>
++                </div>
++            </div>
++        </div><br/>
++    </t>
++    <div class="oe_error_detail">
++        <pre><t t-esc="error.message"/></pre>
++        <hr/>
++        <pre><t t-esc="error.data.debug"/></pre>
++    </div>
++</t>
++
  <t t-name="Login_dblist">
      <select name="db">
          <t t-foreach="db_list" t-as="db">
          </t>
      </select>
  </t>
--<t t-name="DialogWarning">
--    <table cellspacing="0" cellpadding="0" border="0" class="oe-dialog-warning">
--    <tr>
--        <td><img t-att-src='_s + "/web/static/src/img/warning.png"' class="oe-dialog-icon"/></td>
--        <td>
--            <p>
--                <t t-js="d">
--                    var message = d.message ? d.message : d.error.data.fault_code;
--                    d.html_error = context.engine.tools.html_escape(message)
--                        .replace(/\n/g, '<br/>');
--                </t>
--                <t t-raw="html_error"/>
--            </p>
--        </td>
--    </tr>
--    </table>
--</t>
--<t t-name="DialogTraceback">
-     <pre><t t-esc="error.message"/></pre>
-     <hr/>
-     <pre><t t-esc="error.data.debug"/></pre>
- </t>
 -    <form>
 -        <t t-if="!session.has_pwc">
 -            <span>You have an unsupported version. <a href="http://www.openerp.com/support-or-publisher-warranty-contract" target="_blank">Click here</a> to get support &amp; maintenance services.</span>
 -        </t>
 -        <t t-if="session.has_pwc">
 -            <div class="oe_error_send">
 -                <div>
 -                    <div class="oe_centeralign"><b>OpenERP Enterprise Contract.</b></div>
 -                    <div><br/>Your request will be sent to OpenERP and OpenERP Enterprise team will reply you shortly.<br/></div><br/>
 -                    <div>
 -                        <label>Summary:</label><br/>
 -                        <input id="issuename" type="text" class="oe_fielddiv"/>
 -                    </div><br/><br/>
 -                    <div>
 -                        <label>Description:</label><br/>
 -                        <textarea id="explanation" rows="6"></textarea>
 -                    </div><br/><br/>
 -                    <div>
 -                        <label>What you did:</label><br/>
 -                        <textarea id="remark" rows="6" ></textarea>
 -                    </div>
 -                </div>
 -            </div><br/>
 -        </t>
 -        <div class="oe_error_detail oe_error_fix">
 -            <pre><t t-esc="error.message"/></pre>
 -            <hr/>
 -            <pre><t t-esc="error.data.debug"/></pre>
 -        </div>
 -    </form>
 -</t>
  <t t-name="SelectCreatePopup">
      <div t-att-id="element_id">
          <table style="width:100%">