From a2557925b64e93161a7006572f970e7f208c3dd5 Mon Sep 17 00:00:00 2001 From: "P. Christeas" Date: Sun, 5 Jun 2011 16:51:16 +0300 Subject: [PATCH 1/6] yaml_import: fix ambiguous syntax at end of report When finishing a YAML import, the syntax ["str %d" % int + int] turns out to be ambiguous and is resolved as [ ("str %d" % int) + int], leading to a: TypeError: cannot concatenate 'str' and 'int' objects This had been first fixed in commit f46966e044d18a644 (2010-06-30) (cherry picked from commit cc0c584e5dfbf672d51f61e7207047f357e31471) bzr revid: xrg@linux.gr-20110605135116-ie2h7gnvnx2kpdoy --- openerp/tools/yaml_import.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openerp/tools/yaml_import.py b/openerp/tools/yaml_import.py index 2b6c0815e0d..ff4029d1f15 100644 --- a/openerp/tools/yaml_import.py +++ b/openerp/tools/yaml_import.py @@ -105,7 +105,7 @@ class TestReport(object): success += self._report[severity][True] failure += self._report[severity][False] res.append("total\t%s\t%s" % (success, failure)) - res.append("end of report (%s assertion(s) checked)" % success + failure) + res.append("end of report (%s assertion(s) checked)" % (success + failure)) return "\n".join(res) class RecordDictWrapper(dict): From b5793ebe2c469b1b100a4ca1b956dbcb9f131a3b Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Mon, 6 Jun 2011 12:12:38 +0200 Subject: [PATCH 2/6] [ADD] Change layout icons for dashboard bzr revid: fme@openerp.com-20110606101238-dxmce0kb5cr21rfe --- .../static/src/img/layout_1-1-1.png | Bin 0 -> 306 bytes .../base_dashboard/static/src/img/layout_1-1.png | Bin 0 -> 313 bytes .../base_dashboard/static/src/img/layout_1-2.png | Bin 0 -> 313 bytes addons/base_dashboard/static/src/img/layout_1.png | Bin 0 -> 292 bytes .../base_dashboard/static/src/img/layout_2-1.png | Bin 0 -> 304 bytes 5 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 addons/base_dashboard/static/src/img/layout_1-1-1.png create mode 100644 addons/base_dashboard/static/src/img/layout_1-1.png create mode 100644 addons/base_dashboard/static/src/img/layout_1-2.png create mode 100644 addons/base_dashboard/static/src/img/layout_1.png create mode 100644 addons/base_dashboard/static/src/img/layout_2-1.png diff --git a/addons/base_dashboard/static/src/img/layout_1-1-1.png b/addons/base_dashboard/static/src/img/layout_1-1-1.png new file mode 100644 index 0000000000000000000000000000000000000000..5eda2823c46c11bcfed2b657847dba77ba568d52 GIT binary patch literal 306 zcmeAS@N?(olHy`uVBq!ia0vp^AZ*OR1|(Tp;!}VWV{wqX6T`Z5GB1G~wj^(N7l!{J zxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwcjggO={}+qxO`y;wPZ!6Kid%2* zY~(s*AmVT_{9`i{U##_yn?Qo&=NvIDD-SpBNhty6?(R}4s8IF3m3a4h`ifn}E=Ou+ zdxn_AE;mo9yzqUhqRqk#VUGz4|G!`P7jkar>1B^odpbIv?)!6O*U~AII=^H!vuI9G zaO6?}s$mrZl1!XJOB|Y5ID-@%n^2`><>&kwcjggN>>c$NJuRx)lo-U3d6}R5r z*~`~tAkuKL`_%6V78{Iy+~8Zoqh`a$(#h8rD0JEFkLCSi*XG<==Iw15(;ls{)7izP zI?q$(%A8s3Pd+WY9^F>ZuH>)a*!1Ua@bAdl`}zA0{EBdQaVdXk7VjMzs&?rb8)pzu zTEt_5f+Lp-kYp87@n~e>6k6iY!~&Pvzb|v1!?P84rYq#;PWXTORqCIur=P#insdBA pvbz(cScqRbf7@lPKaL9i<>&kwcjggOsH`@D@5m0ESr;B4q#jUq@ z47r;eBpM!`KlNYPWQWz4&C)TlO!a+9LCzLxN9IoWx@UGbJOBN{)0u{M+TAsF2D`Xa z=X$DKiJ2w-8MOoBrGl{vBI;KYvq3?K)+pMY~IPA6m8Ql*_GK3XWVV z9ut^2g;YEmSvZB3I5e?nP5^2U@c@!gsVDDdKjTd4JC)3N=^ES5{cGcn#qX|}cgdoE s_P+ZrAeHe|H-4m9uRSEs^63l9x%sjacD6Gc13kgu>FVdQ&MBb@00A6wf&c&j literal 0 HcmV?d00001 diff --git a/addons/base_dashboard/static/src/img/layout_1.png b/addons/base_dashboard/static/src/img/layout_1.png new file mode 100644 index 0000000000000000000000000000000000000000..69a0e30854c06cb060533c0c41963584cc0aaf71 GIT binary patch literal 292 zcmeAS@N?(olHy`uVBq!ia0vp^AZ*OR1|(Tp;!}VWV{wqX6T`Z5GB1G~wj^(N7l!{J zxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwcjggPr#GC)hU!c$uPZ!6Kid%2* z7;-fmh%`J*U;F)}pp4D7X7>|?EZT1sn!1}*yl=n1zo~A|1XWMt{m;r*>_~SxV&bR5 z^{TzD`HuLm`*tn-BBe~6LQme$yOsWQ4yUY_=1h-hX%&w~7S13A$0iod2|!ZBV}b&! zkc!6yph~#ZpI_5T86y|3d+TuPmcsw-r%(R~pME}738-h~?e<>t+o`5?0xK@FA8ZpB URCT#*40JDpr>mdKI;Vst0C^K*^Z)<= literal 0 HcmV?d00001 diff --git a/addons/base_dashboard/static/src/img/layout_2-1.png b/addons/base_dashboard/static/src/img/layout_2-1.png new file mode 100644 index 0000000000000000000000000000000000000000..ed866add47c5e1c2384f18981f0fe13edc9cda0a GIT binary patch literal 304 zcmeAS@N?(olHy`uVBq!ia0vp^AZ*OR1|(Tp;!}VWV{wqX6T`Z5GB1G~wj^(N7l!{J zxM1({$v_d#0*}aI1_o|n5N2eUHAey{$X?><>&kwcjggOAlJ7!C2T*8(r;B4q#jUq@ zHgYu^h&Wta{=>16Zyn#?H$bAbrq9V+wkvt5>a-}!@?t^TJrh);dbfWR)LPfs@j~CW zvuRiH_m&vFFO{bSu4!!JRPmT_{O;EHsm1?RPtWwvb#dXj{!sh7zvfI2Z)p{eMi$N> z1;-{9%?UtK#AAX2s}N8F6DN>Fmdg5T@bA{c&$ecFm(RD|-pRr#wB+86oSMzCVNdy) bZksS4=9HQcS-jp2=ynEAS3j3^P6 Date: Mon, 6 Jun 2011 12:13:05 +0200 Subject: [PATCH 3/6] [ADD] Working "Change layout" dashboard feature bzr revid: fme@openerp.com-20110606101305-451lum3hj0twzvhq --- .../static/src/css/dashboard.css | 47 +++++++++++++++++ .../base_dashboard/static/src/js/dashboard.js | 51 +++++++++++++++++-- .../static/src/xml/base_dashboard.xml | 23 +++++---- 3 files changed, 108 insertions(+), 13 deletions(-) diff --git a/addons/base_dashboard/static/src/css/dashboard.css b/addons/base_dashboard/static/src/css/dashboard.css index 57f1ceb8f98..9dd03284eff 100644 --- a/addons/base_dashboard/static/src/css/dashboard.css +++ b/addons/base_dashboard/static/src/css/dashboard.css @@ -50,21 +50,68 @@ .openerp .oe-dashboard-layout_1 .oe-dashboard-column { width: 100%; } +.openerp .oe-dashboard-layout_1 .oe-dashboard-column.index_1 .oe-dashboard-column.index_2 { + display: none; +} + .openerp .oe-dashboard-layout_1-1 .oe-dashboard-column { width: 50%; } +.openerp .oe-dashboard-layout_1-1 .oe-dashboard-column.index_2 { + display: none; +} + .openerp .oe-dashboard-layout_1-1-1 .oe-dashboard-column { width: 33%; } + .openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_0 { width: 70%; } .openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_1 { width: 30%; } +.openerp .oe-dashboard-layout_2-1 .oe-dashboard-column.index_2 { + display: none; +} + .openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_0 { width: 30%; } .openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_1 { width: 70%; } +.openerp .oe-dashboard-layout_1-2 .oe-dashboard-column.index_2 { + display: none; +} + + +.openerp .oe-dashboard-layout-selector { + overflow: auto; + padding: 10px; +} + +.openerp .oe-dashboard-layout-selector ul { + margin: 0; + padding: 0; +} + +.openerp .oe-dashboard-layout-selector ul li { + position: relative; + float: left; + height: 51px; + list-style-type: none; + margin: 5px; + padding: 0; + width: 82px; + cursor: pointer; + border: 1px solid white; +} +.openerp .oe-dashboard-layout-selector ul li:hover { + border: 1px solid #090; +} +.openerp .oe-dashboard-layout-selector ul li img.oe-selected-layout { + position: absolute; + top: 0px; + right: 0px; +} diff --git a/addons/base_dashboard/static/src/js/dashboard.js b/addons/base_dashboard/static/src/js/dashboard.js index 8497ffc2ce5..9d6511fd215 100644 --- a/addons/base_dashboard/static/src/js/dashboard.js +++ b/addons/base_dashboard/static/src/js/dashboard.js @@ -19,7 +19,7 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ // Events this.$element.find('.oe-dashboard-link-undo').click(this.on_undo); this.$element.find('.oe-dashboard-link-add_widget').click(this.on_add_widget); - this.$element.find('.oe-dashboard-link-edit_layout').click(this.on_edit_layout); + this.$element.find('.oe-dashboard-link-change_layout').click(this.on_change_layout); this.$element.find('.oe-dashboard-column .ui-icon-minusthick').click(this.on_fold_action); this.$element.find('.oe-dashboard-column .ui-icon-closethick').click(this.on_close_action); @@ -44,7 +44,44 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ }, on_add_widget: function() { }, - on_edit_layout: function() { + on_change_layout: function() { + var self = this; + var qdict = { + current_layout : this.$element.find('.oe-dashboard').attr('data-layout') + }; + var $dialog = $('
').dialog({ + modal: true, + title: 'Edit Layout', + width: 'auto', + height: 'auto', + }).html(QWeb.render('DashBoard.layouts', qdict)); + $dialog.find('li').click(function() { + var layout = $(this).attr('data-layout'); + $dialog.dialog("destroy"); + self.do_change_layout(layout); + }); + }, + do_change_layout: function(new_layout) { + var $dashboard = this.$element.find('.oe-dashboard'); + var current_layout = $dashboard.attr('data-layout'); + if (current_layout != new_layout) { + var clayout = current_layout.split('-').length, + nlayout = new_layout.split('-').length, + column_diff = clayout - nlayout; + if (column_diff > 0) { + var $last_column = $(); + $dashboard.find('.oe-dashboard-column').each(function(k, v) { + if (k >= nlayout) { + $(v).find('.oe-dashboard-action').appendTo($last_column); + } else { + $last_column = $(v); + } + }); + } + $dashboard.toggleClass('oe-dashboard-layout_' + current_layout + ' oe-dashboard-layout_' + new_layout); + $dashboard.attr('data-layout', new_layout); + this.do_save_dashboard(); + } }, on_fold_action: function(e) { var $e = $(e.currentTarget); @@ -92,6 +129,14 @@ openerp.base.form.DashBoard = openerp.base.form.Widget.extend({ view.start(); }, render: function() { + // We should start with three columns available + for (var i = this.node.children.length; i < 3; i++) { + this.node.children.push({ + tag: 'column', + attrs: {}, + children: [] + }); + } return QWeb.render(this.template, this); }, do_reload: function() { @@ -119,7 +164,7 @@ openerp.base.form.DashBoardLegacy = openerp.base.form.DashBoard.extend({ } } }); - return QWeb.render(this.template, this); + return this._super(this, arguments); } }); diff --git a/addons/base_dashboard/static/src/xml/base_dashboard.xml b/addons/base_dashboard/static/src/xml/base_dashboard.xml index 80667dec557..9c43be6996c 100644 --- a/addons/base_dashboard/static/src/xml/base_dashboard.xml +++ b/addons/base_dashboard/static/src/xml/base_dashboard.xml @@ -2,13 +2,16 @@
@@ -33,12 +36,12 @@

Choose dashboard layout

-
    -
  • -
  • -
  • -
  • -
  • +
      +
    • + + +
From 0a4a4e799aba0606d00cdb3be44abdae788c01bd Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 11:04:54 +0200 Subject: [PATCH 4/6] [imp] implemented logout + improved login design bzr revid: nicolas.vanhoren@openerp.com-20110606090454-b2t5wun7vgcj5qb6 --- addons/base/static/src/css/base.css | 17 +++++++++-------- addons/base/static/src/js/chrome.js | 23 ++++++++++++++++++----- addons/base/static/src/xml/base.xml | 6 +++++- 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index d9042e7e251..f65a9be5253 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -61,19 +61,20 @@ body.openerp { /* Login */ .openerp .login { display: none; - padding: 6px; - z-index: 1002; - width: 34%; - position: fixed; - top: 0; - left: 33%; } .openerp .login_valid { - background-color: #8f8; } .openerp .login_invalid { - background-color: #f88; +} + +.openerp.login-mode .login { + display: block; +} +.openerp.login-mode #oe_menu, +.openerp.login-mode #oe_secondary_menu, +.openerp.login-mode #oe_app { + display: none; } /* Main*/ diff --git a/addons/base/static/src/js/chrome.js b/addons/base/static/src/js/chrome.js index 86549eca001..cefa4c89c84 100644 --- a/addons/base/static/src/js/chrome.js +++ b/addons/base/static/src/js/chrome.js @@ -441,6 +441,13 @@ openerp.base.Session = openerp.base.BasicController.extend( /** @lends openerp.b this.set_cookie('uid', this.uid); this.set_cookie('session_id', this.session_id); }, + logout: function() { + this.uid = this.get_cookie('uid'); + this.session_id = this.get_cookie('session_id'); + this.set_cookie('uid', false); + this.set_cookie('session_id', false); + this.on_session_invalid(function() {}); + }, /** * Fetches a cookie stored by an openerp session * @@ -777,14 +784,14 @@ openerp.base.Login = openerp.base.Controller.extend({ on_login_invalid: function() { this.$element .removeClass("login_valid") - .addClass("login_invalid") - .show(); + .addClass("login_invalid"); + this.$element.closest(".openerp").addClass("login-mode"); }, on_login_valid: function() { this.$element .removeClass("login_invalid") - .addClass("login_valid") - .hide(); + .addClass("login_valid"); + this.$element.closest(".openerp").removeClass("login-mode"); }, on_submit: function(ev) { ev.preventDefault(); @@ -810,6 +817,9 @@ openerp.base.Login = openerp.base.Controller.extend({ unique: true, callback: continuation }); + }, + on_logout: function() { + this.session.logout(); } }); @@ -822,7 +832,9 @@ openerp.base.Header = openerp.base.Controller.extend({ }, do_update: function() { this.$element.html(QWeb.render("Header", this)); - } + this.$element.find(".logout").click(this.on_logout); + }, + on_logout: function() {} }); openerp.base.Menu = openerp.base.Controller.extend({ @@ -937,6 +949,7 @@ openerp.base.WebClient = openerp.base.Controller.extend({ this.header = new openerp.base.Header(this.session, "oe_header"); this.login = new openerp.base.Login(this.session, "oe_login"); + this.header.on_logout.add(this.login.on_logout); this.session.on_session_invalid.add(this.login.do_ask_login); this.session.on_session_valid.add_last(this.header.do_update); diff --git a/addons/base/static/src/xml/base.xml b/addons/base/static/src/xml/base.xml index b8412aa1b19..3a8e5128f6f 100644 --- a/addons/base/static/src/xml/base.xml +++ b/addons/base/static/src/xml/base.xml @@ -17,7 +17,6 @@

#{text}

- + + + - @@ -51,12 +51,40 @@ Loading... +
- Database:
- Login:
- Password:
- +
+ + + +
+
@@ -34,6 +33,11 @@
+ +
+
+ + + + + + + + + + + + + + + + +
+ +
+ + + + From 69edae4391f345f2baa68bd1495a4fedc1d2ea7e Mon Sep 17 00:00:00 2001 From: niv-openerp Date: Mon, 6 Jun 2011 12:19:47 +0200 Subject: [PATCH 6/6] [imp] improved css of login bzr revid: nicolas.vanhoren@openerp.com-20110606101947-nqbx1jcz3uj5oav2 --- addons/base/static/src/css/base.css | 38 ++++++++++++--- .../static/src/img/accessories-archiver.png | Bin 0 -> 822 bytes addons/base/static/src/img/partner.png | Bin 0 -> 905 bytes addons/base/static/src/img/product.png | Bin 0 -> 708 bytes addons/base/static/src/xml/base.xml | 45 ++++++++++++++++-- 5 files changed, 71 insertions(+), 12 deletions(-) create mode 100644 addons/base/static/src/img/accessories-archiver.png create mode 100644 addons/base/static/src/img/partner.png create mode 100644 addons/base/static/src/img/product.png diff --git a/addons/base/static/src/css/base.css b/addons/base/static/src/css/base.css index 78cad811122..ad0bec6c255 100644 --- a/addons/base/static/src/css/base.css +++ b/addons/base/static/src/css/base.css @@ -62,17 +62,19 @@ body.openerp { .openerp .login { display: none; } +.openerp .login form { + float: left; + width: 420px; + margin-left: 40px; + margin-bottom: 60px; +} .openerp .login fieldset { padding-bottom: 5px; min-width: 100px; margin-top: 60px; - margin-bottom: 60px; - margin-left: 40px; border-radius: 10px; -moz-border-radius: 10px; -webkit-border-radius: 10px; - float: left; - width: 420px; } .openerp .login fieldset legend { padding: 4px; @@ -84,12 +86,34 @@ body.openerp { width: 100%; border:none; } -.openerp .login .oe_field_value { +.openerp .login .oe_box2 td { padding: 3px; + text-align: right; } -.openerp .login_valid { +.openerp .login .oe_box2 td input { + width: 100%; } -.openerp .login_invalid { +.openerp .login .oe_login_right_pane { + padding:70px 35px 5px 10px; + min-width: 200px; + margin-left: 500px; +} +.openerp .login .login_error_message { + display: none; + background-color: #9A0404; + border-radius: 3px; + -moz-border-radius: 3px; + -webkit-border-radius: 3px; + color: white; + font-family: Ubuntu, Helvetica, sans-serif; + font-size: 16px; + font-weight: bold; + padding: 5px; + margin-top: 5px; + text-align: center; +} +.openerp .login.login_invalid .login_error_message { + display: block; } .openerp.login-mode .login-container { diff --git a/addons/base/static/src/img/accessories-archiver.png b/addons/base/static/src/img/accessories-archiver.png new file mode 100644 index 0000000000000000000000000000000000000000..8bcbe4566bc10df91222f2045449abcd258997b6 GIT binary patch literal 822 zcmV-61Ihe}P)3o8;IpdbVcrBZb^TLo%!T$sNra%1e696CG-Xxrs z@uWj;LL3yX1g#BP8+<9rl_k#=R^=Ep20=2NApvSdozK4cjlB)wJ+l`0FKpge55l=! z$FaMvOXy44Lg;^sLLChT-FEAwI}XcEvGc*rLVS8_7v-9@C@8CM77X{Zais7iw$;m06gl1JDODV2R z84S8qLW{8$*N;FrtTd}~Wp(v!X)PZrm5V$ZlU&54({q#y!`Q)%n%LQxarY64A2G`n zxq`6L;Iw^c+b5kjWL^|E3vF+YhlBTfPdX%%Ax0~X%!IJAf-nk`4Tj%JTvj=B0lTJ590IjA5R98AOCsS`y03fUc6HM`OX)=+d^SG(^`LhOD8K^z2Mu**aWn@m?*IS*07*qoM6N<$fSzr&_!KV+*VL< zFK%_?Mt7qBfFKczbWuwXsS)ZT)>?F0lbQxPGnsjB?!E86`{AOd)J4wftPa1k_z^sj z4_>dK)9aUg-=89cIIY#+wJ_u#uO~Px z;*0hB)&bV!$d$mE58ICi*g^4=e~QgU{O(k9zvs^tL)n_SDf75 z?5g)JRPg0S{{Mls#Zsd_Qu}CXY-GIg)DS2oP-@^csuOyz`jgrE@-% z%30w1tHily^GrgB6wM<;7@c?;!SF0-A%s)=gqW<6N&Z*oZf|p=^B;k82*_CcM!UpL zXQGEl6i{InlM};mTEMCl&gO8r1R>5NKvbzbBKH6wtW_7ID7fsG#L+=6u+KS|0ml0k zOr(2oc?xF@oa};&Ea?ii_1Wbuhqsp=4FpC1ETQIvQXI^)2qJ=hHixV2((6g702m#kl^_USD3^-EfKPh)NpSyVa1)@Thr!|{)Mr+3<&P5D zoWi57#)zc}&#yB8AVlv`rgwEtO(wm5PoE&RFc%7$5jclD*N~Y)Yqt-TNkB_5;$%M& z-!lMMUh&lrSLH3v#g7m6_%-gYZU^Of*`p+M0JK)<_Bo`?K%v2`fEc7Vl3wyP1Ax1K z8jRG5T|CM9r_K}}Y~DO}hcc#pkHj97b@@PMA{9i76k2wZ{mzYt+rNL&x%KU@snS_**7oc{#1 fqpR?W5dh#{o9ud-MN>Ot00000NkvXXu0mjfut%x{ literal 0 HcmV?d00001 diff --git a/addons/base/static/src/img/product.png b/addons/base/static/src/img/product.png new file mode 100644 index 0000000000000000000000000000000000000000..99f58d95a8b16503a1b8b5086be523062fd9d1ed GIT binary patch literal 708 zcmV;#0z3VQP)Gp1|r&8Q7Lxa8HrAddkpDe`lJ5kKc@8QM$v5CIn6E~#bX=_?JAte(jkn%{9 z2U1#uq1$W}zrCxKRu;=UHlK(nr^t_D@!{Y^Zv6a{?9ll2%6cJU>INhvJRBTVg_NqP&$T$ zbKdq^VM^8;&ZNq-3WBF?(2VP7vf;=3VgxI|4qyg@0cN11%mIira;K(DrSdXj>ZPlS z*}Z`zG#lHOf9Br{XWN}#_(1u<3-S=OT26YAb!PWk5y|DfMtz~Qnjh82PTmVD-(^?3 zhrrOOQMb9aywI$co)TnH7PodWGgq!kqG~Le;bf){M=_Snu#~cT^I2)ba_H29SHNii zQj&UoR}?b1qn qbFC8o0 -
@@ -75,16 +74,52 @@ - - + +
+
- - +