Farid Ghanchi (OpenERP) has proposed merging 
lp:~openerp-dev/openerp-web/trunk-improve-css-FF-IE-datepicker-ggh into 
lp:~openerp-dev/openerp-web/trunk-improve-css-FF-IE.

Requested reviews:
  OpenERP R&D Team (openerp-dev)

For more details, see:
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-improve-css-FF-IE-datepicker-ggh/+merge/125663

Hello,

Add a class for datepicker master for IE.

Thanks...
GGH 
-- 
https://code.launchpad.net/~openerp-dev/openerp-web/trunk-improve-css-FF-IE-datepicker-ggh/+merge/125663
Your team OpenERP R&D Team is requested to review the proposed merge of 
lp:~openerp-dev/openerp-web/trunk-improve-css-FF-IE-datepicker-ggh into 
lp:~openerp-dev/openerp-web/trunk-improve-css-FF-IE.
=== modified file 'addons/web/controllers/main.py'
--- addons/web/controllers/main.py	2012-09-13 19:27:59 +0000
+++ addons/web/controllers/main.py	2012-09-21 10:16:20 +0000
@@ -1922,7 +1922,7 @@
             report = zlib.decompress(report)
         report_mimetype = self.TYPES_MAPPING.get(
             report_struct['format'], 'octet-stream')
-        file_name = None
+        file_name = action.get('name', 'report')
         if 'name' not in action:
             reports = req.session.model('ir.actions.report.xml')
             res_id = reports.search([('report_name', '=', action['report_name']),],

=== modified file 'addons/web/static/src/css/base.css'
--- addons/web/static/src/css/base.css	2012-09-17 13:24:57 +0000
+++ addons/web/static/src/css/base.css	2012-09-21 10:16:20 +0000
@@ -25,12 +25,16 @@
     display: none !important;
   }
 }
-
 .openerp.openerp_webclient_container {
   height: 100%;
   position: relative;
 }
 
+.text-tag .text-button {
+  height: auto !important;
+  min-height: 16px;
+}
+
 .openerp {
   padding: 0;
   margin: 0;
@@ -41,7 +45,7 @@
   text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
   /* http://www.quirksmode.org/dom/inputfile.html
    * http://stackoverflow.com/questions/2855589/replace-input-type-file-by-an-image
-   */ */
+   */
 }
 .openerp :-moz-placeholder {
   color: #afafb6 !important;
@@ -53,6 +57,7 @@
 }
 .openerp a {
   text-decoration: none;
+  cursor: pointer !important;
 }
 .openerp table {
   padding: 0;
@@ -114,7 +119,7 @@
 }
 .openerp a.button:link, .openerp a.button:visited, .openerp button, .openerp input[type='submit'], .openerp .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button {
   display: inline-block;
-  border: 1px solid #ababab;
+  border: 1px solid rgba(0, 0, 0, 0.4);
   color: #4c4c4c;
   margin: 0;
   padding: 3px 12px;
@@ -372,7 +377,6 @@
   background: #dc5f59;
 }
 .openerp button.oe_highlight {
-  border: 1px solid #795151;
   background-color: #df3f3f;
   background-image: -webkit-gradient(linear, left top, left bottom, from(#df3f3f), to(#a21a1a));
   background-image: -webkit-linear-gradient(top, #df3f3f, #a21a1a);
@@ -542,6 +546,11 @@
   font-style: italic;
   text-decoration: none;
 }
+.openerp .oe_form header .oe_tags {
+  margin: 5px 0 0 5px;
+  width: 400px;
+  padding-bottom: 0;
+}
 .openerp.oe_tooltip {
   font-size: 12px;
 }
@@ -644,7 +653,7 @@
   cursor: pointer;
 }
 .openerp .oe_dropdown_toggle {
-  color: #404040;
+  color: rgba(0, 0, 0, 0.5);
   font-weight: normal;
 }
 .openerp .oe_dropdown_hover:hover .oe_dropdown_menu, .openerp .oe_dropdown_menu.oe_opened {
@@ -655,7 +664,7 @@
   position: absolute;
   top: 26px;
   left: 0;
-  z-index: 1;
+  z-index: 3;
   margin: 0;
   padding: 0;
   border: 1px solid #afafb6;
@@ -1081,6 +1090,48 @@
 .openerp .oe_user_menu .oe_dropdown_menu {
   right: -1px;
 }
+.openerp .oe_about {
+  background-color: white;
+  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=);
+  -moz-border-radius: 0 0 2px 2px;
+  -webkit-border-radius: 0 0 2px 2px;
+  border-radius: 0 0 2px 2px;
+}
+.openerp .oe_about a {
+  color: #7c7bad;
+}
+.openerp .oe_about a:hover {
+  text-decoration: underline;
+}
+.openerp .oe_about a:focus {
+  outline: none;
+}
+.openerp .oe_about .oe_logo {
+  margin-left: -6px;
+}
+.openerp .oe_about .oe_bottom {
+  position: absolute;
+  top: 50%;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  text-shadow: 0 1px 1px #999999;
+  background-color: #b41616;
+  background-image: -webkit-gradient(linear, left top, left bottom, from(#b41616), to(#600606));
+  background-image: -webkit-linear-gradient(top, #b41616, #600606);
+  background-image: -moz-linear-gradient(top, #b41616, #600606);
+  background-image: -ms-linear-gradient(top, #b41616, #600606);
+  background-image: -o-linear-gradient(top, #b41616, #600606);
+  background-image: linear-gradient(to bottom, #b41616, #600606);
+  color: #eeeeee;
+  padding: 0 16px;
+  -moz-border-radius: 0 0 2px 2px;
+  -webkit-border-radius: 0 0 2px 2px;
+  border-radius: 0 0 2px 2px;
+}
+.openerp .oe_about .oe_bottom a {
+  color: #eeeeee;
+}
 .openerp .oe_systray > div {
   float: left;
   padding: 0 4px 0 4px;
@@ -1154,7 +1205,7 @@
   color: white;
   padding: 2px 4px;
   margin: 1px 6px 0 0;
-  border: 1px solid lightGray;
+  border: 1px solid lightgrey;
   text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
   -moz-border-radius: 4px;
   -webkit-border-radius: 4px;
@@ -1179,7 +1230,7 @@
   transform: scale(1.1);
 }
 .openerp .oe_secondary_submenu .oe_active {
-  border-top: 1px solid lightGray;
+  border-top: 1px solid lightgrey;
   border-bottom: 1px solid #dedede;
   text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2);
   -moz-box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.2), inset 0 -1px 3px rgba(40, 40, 40, 0.2);
@@ -1523,6 +1574,7 @@
   font-size: 1px;
   letter-spacing: -1px;
   color: transparent;
+  font-weight: normal;
   -moz-box-shadow: none;
   -webkit-box-shadow: none;
   box-shadow: none;
@@ -1916,10 +1968,10 @@
 }
 .openerp .oe_form_nosheet > header {
   margin: -16px -16px 0 -16px;
-  padding: 8px;
+  padding: 0;
 }
 .openerp .oe_form_sheetbg {
-  padding: 8px 0;
+  padding: 16px 0;
 }
 .openerp .oe_form_sheet_width {
   min-width: 650px;
@@ -1936,10 +1988,10 @@
   border-bottom: 1px solid #dddddd;
 }
 .openerp .oe_application .oe_form_sheet {
-  border: 1px solid #afafb6;
-  -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
-  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.3);
+  border: 1px solid #c8c8d3;
+  -moz-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+  -webkit-box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
+  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
 }
 .openerp .oe_application .oe_form_sheet .ui-tabs {
   margin: 0 -16px;
@@ -1959,6 +2011,9 @@
   background-image: -o-linear-gradient(top, #fcfcfc, #dedede);
   background-image: linear-gradient(to bottom, #fcfcfc, #dedede);
 }
+.openerp .oe_form header > span {
+  margin-left: 4px;
+}
 .openerp .oe_form header ul {
   display: inline-block;
   float: right;
@@ -2003,6 +2058,8 @@
 .openerp .oe_form .oe_subtotal_footer .oe_subtotal_footer_separator {
   width: 108px;
   border-top: 1px solid #cacaca;
+  margin-top: 4px;
+  padding-top: 4px;
   font-weight: bold;
   font-size: 18px;
 }
@@ -2045,7 +2102,7 @@
 }
 .openerp .oe_form .oe_form_label_help[for] span, .openerp .oe_form .oe_form_label[for] span {
   font-size: 80%;
-  color: darkGreen;
+  color: darkgreen;
   vertical-align: top;
   position: relative;
   top: -4px;
@@ -2204,6 +2261,14 @@
   position: relative;
   overflow: hidden;
 }
+.openerp .oe_form .oe_form_field_html {
+  position: relative;
+  width: 600px;
+  margin-left: 130px;
+  margin-top: 32px;
+  margin-bottom: 32px;
+  text-align: justify;
+}
 .openerp .oe_form_editable .oe_form .oe_form_field_integer {
   width: 6em !important;
 }
@@ -2216,6 +2281,9 @@
 .openerp .oe_form_editable .oe_form .oe_form_field_datetime {
   width: 11.5em !important;
 }
+.openerp .oe_hidden_input_file {
+  position: relative;
+}
 .openerp .oe_hidden_input_file input.oe_form_binary_file {
   z-index: 0;
   line-height: 0;
@@ -2285,7 +2353,7 @@
 .openerp ul.oe_form_status li, .openerp ul.oe_form_status_clickable li {
   display: inline-block;
   list-style-type: none;
-  margin: 0 -20px 0 0;
+  margin: 0 -18px 0 0;
   padding: 0;
   background-color: #fcfcfc;
   background-image: -webkit-gradient(linear, left top, left bottom, from(#fcfcfc), to(#dedede));
@@ -2481,6 +2549,7 @@
 }
 .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_float input, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_view_integer input {
   text-align: right;
+  width: 100%;
 }
 .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime > span, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date > span {
   width: 100%;
@@ -2488,6 +2557,9 @@
 .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime input.oe_datepicker_master, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date input.oe_datepicker_master {
   width: 100% !important;
 }
+.openerp .oe_datepicker_master {
+  width: 100%;
+}
 .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_field_float, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field .oe_form_view_integer, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_datetime, .openerp .oe_list.oe_list_editable.oe_editing .oe_form_field.oe_form_field_date {
   min-width: 0 !important;
   max-width: none !important;
@@ -2640,20 +2712,24 @@
 }
 .openerp .oe_list_content td.oe_list_field_handle {
   width: 1em;
+  padding: 0 !important;
   cursor: ns-resize;
 }
 .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle {
   font-size: 1px;
   letter-spacing: -1px;
   color: transparent;
+  font-weight: normal;
+  margin-right: 7px;
 }
 .openerp .oe_list_content td.oe_list_field_handle .oe_list_handle:before {
-  font: 21px "mnmliconsRegular";
-  content: "ö";
-  color: #404040;
+  font: 18px "entypoRegular";
+  content: "}";
+  color: #e0e0e0;
 }
 .openerp .oe_list_cannot_edit .oe_list_header_handle, .openerp .oe_list_cannot_edit .oe_list_field_handle {
   display: none !important;
+  padding: 0 !important;
 }
 .openerp .oe_list_cannot_delete .oe_list_record_delete {
   display: none !important;
@@ -2710,9 +2786,6 @@
 .openerp .oe-treeview-table .treeview-tr.oe-treeview-first span, .openerp .oe-treeview-table .treeview-td.oe-treeview-first span {
   margin-left: 16px;
 }
-.openerp .oe_trad_field.touched {
-  border: 1px solid green !important;
-}
 .openerp .oe_layout_debugging .oe_form_group {
   outline: 2px dashed green;
 }

=== modified file 'addons/web/static/src/css/base.sass'
--- addons/web/static/src/css/base.sass	2012-09-17 11:32:18 +0000
+++ addons/web/static/src/css/base.sass	2012-09-21 10:16:20 +0000
@@ -113,17 +113,29 @@
     @keyframes #{$name}
         @content
 
+
 // Transforms the (readable) text of an inline element into an mmlicons icon,
 // allows for actual readable text in-code (and in readers?) with iconic looks
 @mixin text-to-icon($icon-name, $color: #404040)
     font-size: 1px
     letter-spacing: -1px
     color: transparent
+    font-weight: normal 
     &:before
         font: 21px "mnmliconsRegular"
         content: $icon-name
         color: $color
 
+@mixin text-to-entypo-icon($icon-name, $color: #404040, $size: 21px)
+    font-size: 1px
+    letter-spacing: -1px
+    color: transparent
+    font-weight: normal 
+    &:before
+        font: $size "entypoRegular"
+        content: $icon-name
+        color: $color
+
 // }}}
 
 @media print
@@ -134,6 +146,11 @@
     height: 100%
     position: relative
 
+// jQueryUI css bug fixing
+.text-tag .text-button
+    height: auto !important
+    min-height: 16px
+
 .openerp
     // Global style {{{
     padding: 0
@@ -155,6 +172,7 @@
     // Tag reset {{{
     a
         text-decoration: none
+        cursor: pointer !important
     table
         padding: 0
         border-collapse: collapse
@@ -191,7 +209,7 @@
     // Button style {{{
     a.button:link, a.button:visited, button, input[type='submit'], .ui-dialog-buttonpane .ui-dialog-buttonset .ui-button
         display: inline-block
-        border: 1px solid #ababab
+        border: 1px solid rgba(0,0,0,0.4)
         color: #4c4c4c
         margin: 0
         padding: 3px 12px
@@ -362,7 +380,6 @@
         color: white
         background: #DC5F59
     button.oe_highlight
-        border: 1px solid #795151
         @include vertical-gradient(#df3f3f, #a21a1a)
         @include box-shadow((0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 1px rgba(155, 155, 155, 0.4) inset))
     button.oe_highlight:hover
@@ -459,6 +476,12 @@
             text-decoration: none
         margin-bottom: 1px
     // }}}
+    .oe_form
+        header
+            .oe_tags
+                margin: 5px 0 0 5px
+                width: 400px
+                padding-bottom: 0
     // Tooltips {{{
     &.oe_tooltip
         font-size: 12px
@@ -538,7 +561,7 @@
         position: relative
         cursor: pointer
     .oe_dropdown_toggle
-        color: #404040
+        color: rgba(0,0,0,0.5)
         font-weight: normal
     .oe_dropdown_hover:hover .oe_dropdown_menu, .oe_dropdown_menu.oe_opened
         display: block
@@ -547,7 +570,7 @@
         position: absolute
         top: 26px
         left: 0
-        z-index: 1
+        z-index: 3
         margin: 0
         padding: 0
         border: 1px solid $tag-border
@@ -866,6 +889,33 @@
         .oe_dropdown_menu
             right: -1px
     // }}}
+    // About openerp {{{
+    .oe_about
+        background-color: white
+        background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAGCAYAAADgzO9IAAAAKUlEQVQIHWO8e/fufwYsgAUkJigoiCIF5DMyoYggcUiXgNnBiGQKmAkARpcEQeriln4AAAAASUVORK5CYII=)
+        @include radius(0 0 2px 2px)
+        a
+            color: $link-color
+            &:hover
+                text-decoration: underline
+            &:focus
+                outline: none
+        .oe_logo
+            margin-left: -6px
+        .oe_bottom
+            position: absolute
+            top: 50%
+            left: 0
+            right: 0
+            bottom: 0
+            text-shadow: 0 1px 1px #999999
+            @include vertical-gradient(#b41616, #600606)
+            color: #eee
+            padding: 0 16px
+            @include radius(0 0 2px 2px)
+            a
+                color: #eee
+    // }}}
     // Systray {{{
     .oe_systray > div
         float: left
@@ -1510,9 +1560,9 @@
         margin: 16px
         > header
             margin: -16px -16px 0 -16px
-            padding: 8px
+            padding: 0
     .oe_form_sheetbg
-        padding: 8px 0
+        padding: 16px 0
     .oe_form_sheet_width
         min-width: 650px
         max-width: $sheet-max-width
@@ -1527,8 +1577,8 @@
             background: url(/web/static/src/img/form_sheetbg.png)
             border-bottom: 1px solid #ddd
         .oe_form_sheet
-            border: 1px solid $tag-border
-            @include box-shadow(0 0 10px rgba(0,0,0,0.3))
+            border: 1px solid #c8c8d3 //$tag-border
+            @include box-shadow(0 4px 20px rgba(0,0,0,0.15))
             .ui-tabs
                 margin: 0 -16px
             .oe_notebook_page
@@ -1541,6 +1591,8 @@
             border-bottom: 1px solid #cacaca
             padding-left: 2px
             @include vertical-gradient(#fcfcfc, #dedede)
+            > span
+                margin-left: 4px
             ul
                 display: inline-block
                 float: right
@@ -1575,6 +1627,8 @@
             .oe_subtotal_footer_separator
                 width: 108px
                 border-top: 1px solid #cacaca
+                margin-top: 4px
+                padding-top: 4px
                 font-weight: bold
                 font-size: 18px
             label:after
@@ -1736,6 +1790,14 @@
             > div
                 position: relative
                 overflow: hidden
+        .oe_form_field_html
+            position: relative
+            width: 600px
+            margin-left: 130px
+            margin-top: 32px 
+            margin-bottom: 32px
+            text-align: justify
+            
     .oe_form_editable
         .oe_form
             .oe_form_field_integer
@@ -1752,6 +1814,9 @@
      * http://stackoverflow.com/questions/2855589/replace-input-type-file-by-an-image
      */
     .oe_hidden_input_file
+        // Position: relative is used for the hidden input[type=file]
+        // Do not remove it anymore !
+        position: relative
         input.oe_form_binary_file
             z-index: 0
             line-height: 0
@@ -1813,7 +1878,8 @@
         li 
             display: inline-block
             list-style-type: none
-            margin: 0 -20px 0 0
+            // It is probably a bad idea to modify this margin
+            margin: 0 -18px 0 0
             padding: 0
             @include vertical-gradient(#fcfcfc, #dedede)
             &:first-child .label
@@ -1947,6 +2013,7 @@
             &.oe_form_field_float,&.oe_form_view_integer
                 input
                     text-align: right
+                    width: 100%
             &.oe_form_field_datetime,&.oe_form_field_date
                 > span
                     width: 100%
@@ -2069,13 +2136,16 @@
             text-indent: -9001px
         td.oe_list_field_handle
             width: 1em
+            padding: 0 !important
             cursor: ns-resize
             .oe_list_handle
-                @include text-to-icon("ö")
+                @include text-to-entypo-icon("}",#E0E0E0,18px)
+                margin-right: 7px
 
     .oe_list_cannot_edit
         .oe_list_header_handle, .oe_list_field_handle
             display: none !important
+            padding: 0 !important
     .oe_list_cannot_delete
         .oe_list_record_delete
             display: none !important
@@ -2124,10 +2194,6 @@
         .treeview-tr.oe-treeview-first span, .treeview-td.oe-treeview-first span
             margin-left: 16px
     // }}}
-    // Translation {{{
-    .oe_trad_field.touched
-        border: 1px solid green !important
-    // }}}
     // Debugging stuff {{{
     .oe_layout_debugging
         .oe_form_group

=== modified file 'addons/web/static/src/js/chrome.js'
--- addons/web/static/src/js/chrome.js	2012-09-06 13:26:02 +0000
+++ addons/web/static/src/js/chrome.js	2012-09-21 10:16:20 +0000
@@ -79,6 +79,9 @@
             }
         }
         if (options) {
+            if (options.buttons) {
+                this.params_buttons = true;
+            }
             _.extend(this.dialog_options, options);
         }
     },
@@ -123,7 +126,13 @@
         if (! this.dialog_inited)
             this.init_dialog();
         var o = this.get_options(options);
+        if (! this.params_buttons) {
+            this.$buttons.appendTo($("body"));
+        }
         instance.web.dialog(this.$el, o).dialog('open');
+        if (! this.params_buttons) {
+            this.$buttons.appendTo(this.$el.dialog("widget"));
+        }
         if (o.height === 'auto' && o.max_height) {
             this.$el.css({ 'max-height': o.max_height, 'overflow-y': 'auto' });
         }
@@ -133,6 +142,10 @@
         this.renderElement();
         var o = this.get_options(options);
         instance.web.dialog(this.$el, o);
+        if (! this.params_buttons) {
+            this.$buttons = $('<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix" />');
+            this.$el.dialog("widget").append(this.$buttons);
+        }
         var res = this.start();
         this.dialog_inited = true;
         return res;

=== modified file 'addons/web/static/src/js/view_form.js'
--- addons/web/static/src/js/view_form.js	2012-09-18 11:18:37 +0000
+++ addons/web/static/src/js/view_form.js	2012-09-21 10:16:20 +0000
@@ -162,8 +162,9 @@
         this.$el.find(".oe_form_group_row,.oe_form_field,label").on('click', function (e) {
             if(self.get("actual_mode") == "view") {
                 var $button = self.options.$buttons.find(".oe_form_button_edit");
-                $button.effect('bounce', {distance: 18, times: 5}, 150)
+                $button.effect('bounce', {distance: 18, times: 5}, 150);
                 e.stopPropagation();
+                instance.web.bus.trigger('click', e);
             }
         });
 
@@ -270,9 +271,6 @@
         if (this.$buttons) {
             this.$buttons.show();
         }
-        if (this.$pager) {
-            this.$pager.show();
-        }
         this.$el.show().css({
             opacity: '0',
             filter: 'alpha(opacity = 0)'
@@ -408,7 +406,7 @@
             this.$pager.remove();
         if (this.get("actual_mode") === "create")
             return;
-        this.$pager = $(QWeb.render("FormView.pager", {'widget':self}));
+        this.$pager = $(QWeb.render("FormView.pager", {'widget':self})).hide();
         if (this.options.$pager) {
             this.$pager.appendTo(this.options.$pager);
         } else {
@@ -421,12 +419,11 @@
         this.do_update_pager();
     },
     do_update_pager: function(hide_index) {
-        var index = hide_index ? '-' : this.dataset.index + 1;
-        this.$pager.find('button').prop('disabled', this.dataset.ids.length < 2);
-        if (this.dataset.ids.length <= 1) {
+        this.$pager.toggle(this.dataset.ids.length > 1);
+        if (hide_index) {
             $(".oe_form_pager_state", this.$pager).html("");
         } else {
-            $(".oe_form_pager_state", this.$pager).html(_.str.sprintf(_t("%d / %d"), index, this.dataset.ids.length));
+            $(".oe_form_pager_state", this.$pager).html(_.str.sprintf(_t("%d / %d"), this.dataset.index + 1, this.dataset.ids.length));
         }
     },
     parse_on_change: function (on_change, widget) {
@@ -2617,6 +2614,7 @@
 
         var dataset = new instance.web.DataSet(this, this.field.relation, self.build_context());
         var blacklist = this.get_search_blacklist();
+        this.last_query = search_val;
 
         return this.orderer.add(dataset.name_search(
                 search_val, new instance.web.CompoundDomain(self.build_domain(), [["id", "not in", blacklist]]),
@@ -2724,6 +2722,32 @@
     },
 };
 
+instance.web.form.M2ODialog = instance.web.Dialog.extend({
+    template: "M2ODialog",
+    init: function(parent) {
+        this._super(parent, {
+            title: _.str.sprintf(_t("Add %s"), parent.string),
+            width: 312,
+        });
+    },
+    start: function() {
+        var self = this;
+        this.$buttons.html(QWeb.render("M2ODialog.buttons"));
+        this.$("input").val(this.getParent().last_query);
+        this.$buttons.find(".oe_form_m2o_qc_button").click(function(){
+            self.getParent()._quick_create(self.$("input").val());
+            self.destroy();
+        });
+        this.$buttons.find(".oe_form_m2o_sc_button").click(function(){
+            self.getParent()._search_create_popup("form", undefined, self.getParent()._create_context(self.$("input").val()));
+            self.destroy();
+        });
+        this.$buttons.find(".oe_form_m2o_cancel_button").click(function(){
+            self.destroy();
+        });
+    },
+});
+
 instance.web.form.FieldMany2One = instance.web.form.AbstractField.extend(instance.web.form.CompletionFieldMixin, instance.web.form.ReinitializeFieldMixin, {
     template: "FieldMany2One",
     init: function(field_manager, node) {
@@ -2754,26 +2778,23 @@
             this.render_editable();
         this.render_value();
     },
+    init_error_displayer: function() {
+        // nothing
+    },
+    hide_error_displayer: function() {
+        // doesn't work
+    },
+    show_error_displayer: function() {
+        new instance.web.form.M2ODialog(this).open();
+    },
     render_editable: function() {
         var self = this;
         this.$input = this.$el.find("input");
 
-        self.$input.tipsy({
-            title: function() {
-                return QWeb.render('Tipsy.alert', {
-                    message: "No element was selected, you should create or select one from the dropdown list."
-                });
-            },
-            trigger:'manual',
-            fade: true,
-            gravity: 's',
-            html: true,
-            opacity: 1,
-            offset: 4,
-        });
+        this.init_error_displayer();
 
         self.$input.on('focus', function() {
-            self.$input.tipsy("hide");
+            self.hide_error_displayer();
         });
 
         this.$drop_down = this.$el.find(".oe_m2o_drop_down_button");
@@ -2827,10 +2848,10 @@
                 }
             }
         });
-        self.tip_def = $.Deferred();
-        self.untip_def = $.Deferred();
-        var tip_delay = 200;
-        var tip_duration = 15000;
+        self.ed_def = $.Deferred();
+        self.uned_def = $.Deferred();
+        var ed_delay = 200;
+        var ed_duration = 15000;
         var anyoneLoosesFocus = function() {
             var used = false;
             if (self.floating) {
@@ -2850,25 +2871,25 @@
                 }
                 self.floating = false;
             }
-            if (used && self.get("value") === false && ! self.no_tipsy) {
-                self.tip_def.reject();
-                self.untip_def.reject();
-                self.tip_def = $.Deferred();
-                self.tip_def.then(function() {
-                    self.$input.tipsy("show");
+            if (used && self.get("value") === false && ! self.no_ed) {
+                self.ed_def.reject();
+                self.uned_def.reject();
+                self.ed_def = $.Deferred();
+                self.ed_def.then(function() {
+                    self.show_error_displayer();
                 });
                 setTimeout(function() {
-                    self.tip_def.resolve();
-                    self.untip_def.reject();
-                    self.untip_def = $.Deferred();
-                    self.untip_def.then(function() {
-                        self.$input.tipsy("hide");
+                    self.ed_def.resolve();
+                    self.uned_def.reject();
+                    self.uned_def = $.Deferred();
+                    self.uned_def.then(function() {
+                        self.hide_error_displayer();
                     });
-                    setTimeout(function() {self.untip_def.resolve();}, tip_duration);
-                }, tip_delay);
+                    setTimeout(function() {self.uned_def.resolve();}, ed_duration);
+                }, ed_delay);
             } else {
-                self.no_tipsy = false;
-                self.tip_def.reject();
+                self.no_ed = false;
+                self.ed_def.reject();
             }
         };
         var ignore_blur = false;
@@ -3008,13 +3029,13 @@
         this.$input.focus();
     },
     _quick_create: function() {
-        this.no_tipsy = true;
-        this.tip_def.reject();
+        this.no_ed = true;
+        this.ed_def.reject();
         return instance.web.form.CompletionFieldMixin._quick_create.apply(this, arguments);
     },
     _search_create_popup: function() {
-        this.no_tipsy = true;
-        this.tip_def.reject();
+        this.no_ed = true;
+        this.ed_def.reject();
         return instance.web.form.CompletionFieldMixin._search_create_popup.apply(this, arguments);
     },
 });

=== modified file 'addons/web/static/src/js/view_list.js'
--- addons/web/static/src/js/view_list.js	2012-09-16 20:40:29 +0000
+++ addons/web/static/src/js/view_list.js	2012-09-21 10:16:20 +0000
@@ -399,10 +399,14 @@
      */
     setup_columns: function (fields, grouped) {
         var registry = instance.web.list.columns;
+        var reorder = this.options.reorderable;
         this.columns.splice(0, this.columns.length);
         this.columns.push.apply(this.columns,
             _(this.fields_view.arch.children).map(function (field) {
                 var id = field.attrs.name;
+                if(field.attrs.widget == 'handle' && !reorder){
+                    field.attrs.reorderable = reorder || true;
+                }
                 return registry.for_(id, fields[id], field);
         }));
         if (grouped) {
@@ -411,9 +415,8 @@
         }
 
         this.visible_columns = _.filter(this.columns, function (column) {
-            return column.invisible !== '1';
+            return column.invisible !== '1' && !column.reorderable;
         });
-
         this.aggregate_columns = _(this.visible_columns).invoke('to_aggregate');
     },
     /**

=== modified file 'addons/web/static/src/xml/base.xml'
--- addons/web/static/src/xml/base.xml	2012-09-18 10:12:47 +0000
+++ addons/web/static/src/xml/base.xml	2012-09-21 10:16:20 +0000
@@ -630,7 +630,7 @@
                 <input type="checkbox" class="oe_list_record_selector"/>
             </th>
             <t t-foreach="columns" t-as="column">
-                <th t-if="!column.meta and column.invisible !== '1'" t-att-data-id="column.id"
+                <th t-if="!column.meta and column.invisible !== '1' and !column.reorderable" t-att-data-id="column.id"
                     t-attf-class="oe_list_header_#{column.widget or column.type} #{((options.sortable and column.tag !== 'button') ? 'oe_sortable' : null)}">
                     <t t-if="column.tag !== 'button'"><t t-esc="column.string"/></t>
                 </th>
@@ -685,7 +685,7 @@
     <t t-foreach="columns" t-as="column">
         <t t-set="number" t-value="column.type === 'integer' or column.type == 'float'"/>
         <t t-set="modifiers" t-value="column.modifiers_for(asData)"/>
-        <td t-if="!column.meta and column.invisible !== '1'" t-att-title="column.help"
+        <td t-if="!column.meta and column.invisible !== '1' and !column.reorderable" t-att-title="column.help"
             t-attf-class="oe_list_field_cell oe_list_field_#{column.widget or column.type} #{number ? 'oe_number' : ''} #{column.tag === 'button' ? 'oe-button' : ''} #{modifiers.readonly ? 'oe_readonly' : ''} #{modifiers.required ? 'oe_required' : ''}"
             t-att-data-field="column.id"
             ><t t-raw="render_cell(record, column)"/></td>
@@ -919,6 +919,7 @@
                 t-att-tabindex="widget.node.attrs.tabindex"
                 t-att-autofocus="widget.node.attrs.autofocus"
                 t-att-placeholder="widget.node.attrs.placeholder"
+                t-att-maxlength="widget.field.size"
             /><img class="oe_field_translate oe_input_icon" t-if="widget.field.translate" t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"/>
         </t>
     </span>
@@ -933,6 +934,7 @@
                     t-att-tabindex="widget.node.attrs.tabindex"
                     t-att-autofocus="widget.node.attrs.autofocus"
                     t-att-placeholder="widget.node.attrs.placeholder"
+                t-att-maxlength="widget.field.size"
                 />
             </div>
         </t>
@@ -951,6 +953,7 @@
             t-att-tabindex="widget.node.attrs.tabindex"
             t-att-autofocus="widget.node.attrs.autofocus"
             t-att-placeholder="! widget.get('effective_readonly') ? widget.node.attrs.placeholder : ''"
+            t-att-maxlength="widget.field.size"
         ></textarea><img class="oe_field_translate oe_input_icon"
                         t-if="widget.field.translate and !widget.get('effective_readonly')"
                         t-att-src='_s + "/web/static/src/img/icons/terp-translate.png"' width="16" height="16" border="0"
@@ -1117,7 +1120,7 @@
                         <t t-call="HiddenInputFile">
                             <t t-set="fileupload_id" t-value="widget.fileupload_id"/>
                             <t t-set="fileupload_style">width: 83px;</t>
-                            <button class="oe_button oe_field_button" type="button" title="Set Image">
+                            <button class="oe_button oe_field_button" type="button">
                                 <img t-att-src='_s + "/web/static/src/img/icons/STOCK_DIRECTORY.png"'/>
                                 <span>Select</span>
                             </button>
@@ -1700,4 +1703,14 @@
         <div class="oe_throbber_message" style="color:white"></div>
     </div>
 </t>
+<t t-name="M2ODialog">
+    <div>
+        Name: <input class="oe_form_m2o_input_name" type="text"/>
+    </div>
+</t>
+<t t-name="M2ODialog.buttons">
+    <button class="oe_form_m2o_qc_button oe_button oe_highlight">Quick Add</button>
+    <button class="oe_form_m2o_sc_button oe_button">Add All Info...</button>
+    <button class="oe_form_m2o_cancel_button oe_button">Cancel</button>
+</t>
 </templates>

=== modified file 'addons/web_kanban/static/src/css/kanban.css'
--- addons/web_kanban/static/src/css/kanban.css	2012-09-17 06:36:13 +0000
+++ addons/web_kanban/static/src/css/kanban.css	2012-09-21 10:16:20 +0000
@@ -8,14 +8,14 @@
   background: url(/web/static/src/img/form_sheetbg.png);
 }
 .openerp .oe_kanban_view .ui-sortable-placeholder {
-  border: 1px dotted black;
+  border: 1px solid rgba(0, 0, 0, 0.1);
   visibility: visible !important;
   height: 60px !important;
 }
 .openerp .oe_kanban_view .ui-sortable-helper {
-  -moz-box-shadow: 0 1px 20px rgba(0, 0, 0, 0.9);
-  -webkit-box-shadow: 0 1px 20px rgba(0, 0, 0, 0.9);
-  -box-shadow: 0 1px 20px rgba(0, 0, 0, 0.9);
+  -moz-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
+  -webkit-box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
+  -box-shadow: 0 1px 10px rgba(0, 0, 0, 0.3);
   -moz-transform: rotate(3deg);
   -webkit-transform: rotate(3deg);
   -o-transform: rotate(3deg);
@@ -136,7 +136,8 @@
   white-space: nowrap;
   display: none;
   position: relative;
-  top: 5px;
+  opacity: 0.75;
+  top: 20px;
 }
 .openerp .oe_kanban_view .oe_kanban_add, .openerp .oe_kanban_view .oe_kanban_header .oe_dropdown_toggle {
   margin-left: 4px;
@@ -144,6 +145,10 @@
   position: relative;
   top: -8px;
 }
+.openerp .oe_kanban_view .oe_kanban_card, .openerp .oe_kanban_view .oe_dropdown_toggle {
+  cursor: pointer;
+  display: inline-block;
+}
 .openerp .oe_kanban_view .oe_kanban_add {
   float: right;
 }
@@ -201,7 +206,7 @@
 .openerp .oe_kanban_view .oe_kanban_record {
   position: relative;
   display: block;
-  min-height: 50px;
+  min-height: 20px;
   margin: 0;
   -moz-border-radius: 4px;
   -webkit-border-radius: 4px;
@@ -347,8 +352,8 @@
   position: relative;
   display: block;
   background: white;
-  border: 1px solid #d8d8d8;
-  border-bottom-color: #b9b9b9;
+  border: 1px solid rgba(0, 0, 0, 0.16);
+  border-bottom-color: rgba(0, 0, 0, 0.3);
   padding: 8px;
   display: block;
   -moz-border-radius: 4px;
@@ -512,33 +517,43 @@
 }
 .openerp .oe_kanban_view .oe_kanban_color_0 {
   background-color: white;
+  color: #5a5a5a;
 }
 .openerp .oe_kanban_view .oe_kanban_color_1 {
   background-color: #cccccc;
+  color: #424242;
 }
 .openerp .oe_kanban_view .oe_kanban_color_2 {
   background-color: #ffc7c7;
+  color: #7a3737;
 }
 .openerp .oe_kanban_view .oe_kanban_color_3 {
   background-color: #fff1c7;
+  color: #756832;
 }
 .openerp .oe_kanban_view .oe_kanban_color_4 {
   background-color: #e3ffc7;
+  color: #5d6937;
 }
 .openerp .oe_kanban_view .oe_kanban_color_5 {
   background-color: #c7ffd5;
+  color: #1a7759;
 }
 .openerp .oe_kanban_view .oe_kanban_color_6 {
   background-color: #c7ffff;
+  color: #1a5d83;
 }
 .openerp .oe_kanban_view .oe_kanban_color_7 {
   background-color: #c7d5ff;
+  color: #3b3e75;
 }
 .openerp .oe_kanban_view .oe_kanban_color_8 {
   background-color: #e3c7ff;
+  color: #4c3668;
 }
 .openerp .oe_kanban_view .oe_kanban_color_9 {
   background-color: #ffc7f1;
+  color: #6d2c70;
 }
 
 .openerp .oe_form .oe_kanban_view .oe_kanban_column, .openerp .oe_form .oe_kanban_view .oe_kanban_group_header {

=== modified file 'addons/web_kanban/static/src/css/kanban.sass'
--- addons/web_kanban/static/src/css/kanban.sass	2012-09-16 17:26:12 +0000
+++ addons/web_kanban/static/src/css/kanban.sass	2012-09-21 10:16:20 +0000
@@ -42,11 +42,11 @@
     &.oe_kanban_grouped .oe_kanban_dummy_cell
         background: url(/web/static/src/img/form_sheetbg.png)
     .ui-sortable-placeholder
-        border: 1px dotted black
+        border: 1px solid rgba(0,0,0,0.1)
         visibility: visible !important
         height: 60px !important
     .ui-sortable-helper
-        @include box-shadow(0 1px 20px rgba(0, 0, 0, 0.9))
+        @include box-shadow(0 1px 10px rgba(0, 0, 0, 0.3))
         @include transform(rotate(3deg))
     .oe_kanban_left
         float: left
@@ -146,7 +146,8 @@
         white-space: nowrap
         display: none
         position: relative
-        top: 5px
+        opacity: 0.75
+        top: 20px
     // }}}
     // KanbanQuickCreate {{{
     .oe_kanban_add, .oe_kanban_header .oe_dropdown_toggle
@@ -154,6 +155,9 @@
         cursor: pointer
         position: relative
         top: -8px
+    .oe_kanban_card, .oe_dropdown_toggle
+        cursor: pointer
+        display: inline-block
     .oe_kanban_add
         float: right
 
@@ -199,7 +203,7 @@
     .oe_kanban_record
         position: relative
         display: block
-        min-height: 50px
+        min-height: 20px
         margin: 0
         @include radius(4px)
         &:last-child
@@ -311,8 +315,8 @@
         position: relative
         display: block
         background: white
-        border: 1px solid #d8d8d8
-        border-bottom-color: #b9b9b9
+        border: 1px solid rgba(0,0,0,0.16)
+        border-bottom-color: rgba(0,0,0,0.3)
         padding: 8px
         display: block
         @include radius(4px)
@@ -430,33 +434,34 @@
     // KanbanColors {{{
     .oe_kanban_color_0
         background-color: #FFFFFF
-
+        color: #5a5a5a
     .oe_kanban_color_1
         background-color: #CCCCCC
-
+        color: #424242
     .oe_kanban_color_2
         background-color: #FFC7C7
-
+        color: #7a3737
     .oe_kanban_color_3
         background-color: #FFF1C7
-
+        color: #756832
     .oe_kanban_color_4
         background-color: #E3FFC7
-
+        color: #5d6937
     .oe_kanban_color_5
         background-color: #C7FFD5
-
+        color: #1a7759
     .oe_kanban_color_6
         background-color: #C7FFFF
-
+        color: #1a5d83
     .oe_kanban_color_7
         background-color: #C7D5FF
-
+        color: #3b3e75
     .oe_kanban_color_8
         background-color: #E3C7FF
-
+        color: #4c3668
     .oe_kanban_color_9
         background-color: #FFC7F1
+        color: #6d2c70
 
 .openerp .oe_form .oe_kanban_view
     .oe_kanban_column, .oe_kanban_group_header

=== modified file 'addons/web_kanban/static/src/js/kanban.js'
--- addons/web_kanban/static/src/js/kanban.js	2012-09-16 20:16:09 +0000
+++ addons/web_kanban/static/src/js/kanban.js	2012-09-21 10:16:20 +0000
@@ -71,6 +71,7 @@
         this.fields_keys = _.keys(this.fields_view.fields);
         this.add_qweb_template();
         this.has_been_loaded.resolve();
+        this._super.apply(this, arguments);
         return $.when();
     },
     _is_quick_create_enabled: function() {
@@ -85,6 +86,9 @@
             return false;
         return this._super(action);
     },
+    /*  add_qweb_template
+    *   select the nodes into the xml and send to extract_aggregates the nodes with TagName="field"
+    */
     add_qweb_template: function() {
         for (var i=0, ii=this.fields_view.arch.children.length; i < ii; i++) {
             var child = this.fields_view.arch.children[i];
@@ -97,6 +101,9 @@
             }
         }
     },
+    /*  extract_aggregates
+    *   extract the agggregates from the nodes (TagName="field")
+    */
     extract_aggregates: function(node) {
         for (var j = 0, jj = this.group_operators.length; j < jj;  j++) {
             if (node.attrs[this.group_operators[j]]) {
@@ -121,9 +128,15 @@
         }
         switch (node.tag) {
             case 'field':
-                node.tag = QWeb.prefix;
-                node.attrs[QWeb.prefix + '-esc'] = 'record.' + node.attrs['name'] + '.value';
-                this.extract_aggregates(node);
+                if(this.fields_view.fields[ node.attrs['name'] ].type == 'many2many'){
+                    node.tag =  'div';
+                    node.attrs['class'] = 'oe_form_field oe_tags';
+                    node.attrs['model'] = this.fields_view.fields[node.attrs['name']].relation;
+                    node.attrs['t-att-data'] = 'record.' + node.attrs['name'] + '.raw_value';
+                }else {
+                    node.tag = QWeb.prefix;
+                    node.attrs[QWeb.prefix + '-esc'] = 'record.' + node.attrs['name'] + '.value';
+                }
                 break;
             case 'button':
             case 'a':
@@ -350,6 +363,7 @@
         } else {
             this.$el.find('.oe_kanban_draghandle').removeClass('oe_kanban_draghandle');
         }
+        instance.web_kanban.KanbanView.postprocessing_widget_many2many_tags(self);
     },
     on_record_moved : function(record, old_group, old_index, new_group, new_index) {
         var self = this;
@@ -434,6 +448,42 @@
     }
 });
 
+/* 
+*  widget for list of tags/categories
+*  make the rpc request for all ids/model and insert value inside .oe_tags fields
+*/
+instance.web_kanban.KanbanView.postprocessing_widget_many2many_tags = function(self){
+    var model_list_id={};
+
+    // select all widget for the kanban view or the widget inside the record
+    self.$el.find(".oe_form_field.oe_tags").each(function(){
+         var model = $(this).attr("model");
+        if(model.length){
+            var data = $(this).attr("data");
+            var list = data.split(",");
+
+            //select all id (per model)
+            if(!model_list_id[model]) model_list_id[model]=[];
+            for(var t=0;t<list.length;t++) if(list[t]!="") model_list_id[model].push( list[t] );
+        }
+    });
+    // rpc and insert
+    for(var model in model_list_id){
+        if(model_list_id[model].length>0){
+            var block = self.$el.find(".oe_form_field.oe_tags[model='" + model + "']");
+            var dataset = new instance.web.DataSetSearch(self, model, self.session.context);
+            dataset.name_get(_.uniq( model_list_id[model] )).then(
+                function(result) {
+                    for(var t=0;t<result.length;t++){
+                        block.filter(function(){ return this.getAttribute("data").match(new RegExp('(^|,)'+result[t][0]+'(,|$)')); })
+                            .append('<span class="oe_tag" data-list_id="' + result[t][0] +'"">'+result[t][1]+'</span>');
+                    }
+                }
+            );
+        }
+    }
+}
+
 function get_class(name) {
     return new instance.web.Registry({'tmp' : name}).get_object("tmp");
 }
@@ -506,7 +556,9 @@
         });
 
         this.$el.find('.oe_kanban_add').click(function () {
-            if (self.quick) { return; }
+            if (self.quick) {
+                return self.quick.trigger('close');
+            }
             var ctx = {};
             ctx['default_' + self.view.group_by] = self.value;
             self.quick = new (get_class(self.view.quick_create_class))(this, self.dataset, ctx, true)
@@ -762,7 +814,7 @@
             }
         });
 
-        if (this.$el.find('.oe_kanban_global_click').length) {
+        if (this.$el.find('.oe_kanban_global_click,.oe_kanban_global_click_edit').length) {
             this.$el.on('click', function(ev) {
                 if (!ev.isTrigger && !$(ev.target).data('events')) {
                     var trigger = true;
@@ -803,8 +855,15 @@
             });
         }
     },
+    /* actions when user click on the block with a specific class
+     *  open on normal view : oe_kanban_global_click
+     *  open on form/edit view : oe_kanban_global_click_edit
+     */
     on_card_clicked: function(ev) {
-        this.view.open_record(this.id);
+        if(this.$el.find('.oe_kanban_global_click_edit').size()>0)
+            this.do_action_edit();
+        else
+            this.do_action_open();
     },
     setup_color_picker: function() {
         var self = this;
@@ -859,6 +918,7 @@
                 self.$el.data('widget', self);
                 self.bind_events();
                 self.group.compute_cards_auto_height();
+                instance.web_kanban.KanbanView.postprocessing_widget_many2many_tags(self);
             } else {
                 self.destroy();
             }
@@ -959,7 +1019,8 @@
         $(".oe_kanban_quick_create_add", this.$el).click(function () {
             self.quick_add();
         });
-        $(".oe_kanban_quick_create_close", this.$el).click(function () {
+        $(".oe_kanban_quick_create_close", this.$el).click(function (ev) {
+            ev.preventDefault();
             self.trigger('close');
         });
         self.$input.keyup(function(e) {
@@ -977,7 +1038,7 @@
     quick_add: function () {
         var self = this;
         this._dataset.call(
-            'name_create', [self.$input.val(), new instance.web.CompoundContext(
+            'name_create', [self.$input.val() || false, new instance.web.CompoundContext(
                     this._dataset.get_context(), this._context)])
             .pipe(function(record) {
                 self.$input.val("");

=== modified file 'addons/web_kanban/static/src/xml/web_kanban.xml'
--- addons/web_kanban/static/src/xml/web_kanban.xml	2012-09-12 15:44:48 +0000
+++ addons/web_kanban/static/src/xml/web_kanban.xml	2012-09-21 10:16:20 +0000
@@ -86,7 +86,7 @@
     <t t-if="widget._buttons">
         <div class="oe_kanban_quick_create_buttons">
             <button class="oe_kanban_quick_create_add">Add</button>
-            or <a class="oe_kanban_quick_create_close">Cancel</a>
+            or <a href="#" class="oe_kanban_quick_create_close">Cancel</a>
         </div>
     </t>
 </div>

=== added file 'addons/web_tests/i18n/fr_CA.po'
--- addons/web_tests/i18n/fr_CA.po	1970-01-01 00:00:00 +0000
+++ addons/web_tests/i18n/fr_CA.po	2012-09-21 10:16:20 +0000
@@ -0,0 +1,20 @@
+# French (Canada) translation for openerp-web
+# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# This file is distributed under the same license as the openerp-web package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openerp-web\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-07-02 09:06+0200\n"
+"PO-Revision-Date: 2012-09-19 12:09+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: French (Canada) <[email protected]>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2012-09-20 04:49+0000\n"
+"X-Generator: Launchpad (build 15985)\n"
+
+

_______________________________________________
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

Reply via email to