From 205c8f6ea7e451354fade7a83c54ed64382ec9e6 Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Mon, 21 Nov 2011 18:01:15 +0530 Subject: [PATCH 01/40] [IMP] mrp_operations: Improved work orders to initialize the workflow for demo data and existing records. bzr revid: uco@tinyerp.com-20111121123115-3plhb42u04ye9ipj --- addons/mrp_operations/mrp_operation_data.xml | 3 +++ addons/mrp_operations/mrp_operations.py | 11 +++++++++++ 2 files changed, 14 insertions(+) diff --git a/addons/mrp_operations/mrp_operation_data.xml b/addons/mrp_operations/mrp_operation_data.xml index 7ce25b6d250..2d0694f12ac 100644 --- a/addons/mrp_operations/mrp_operation_data.xml +++ b/addons/mrp_operations/mrp_operation_data.xml @@ -30,5 +30,8 @@ done + + + diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index 7dc93731b03..e4815fee4c6 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -552,6 +552,17 @@ class mrp_operations_operation(osv.osv): return super(mrp_operations_operation, self).create(cr, uid, vals, context=context) + def initialize_workflow_instance(self, cr, uid, context=None): + wf_service = netsvc.LocalService("workflow") + wc_line_obj = self.pool.get('mrp.production.workcenter.line') + prod_obj = self.pool.get('mrp.production') + production_ids = prod_obj.search(cr, uid, [], context=context) + for op in prod_obj.browse(cr, uid, production_ids, context=context): + wc_lines = wc_line_obj.search(cr, uid, [('production_id','=',op.id)], context=context) + for line_id in wc_lines: + wf_service.trg_create(uid, 'mrp.production.workcenter.line', line_id, cr) + return True + _columns={ 'production_id':fields.many2one('mrp.production','Production',required=True), 'workcenter_id':fields.many2one('mrp.workcenter','Work Center',required=True), From eaebfd814d76a4767040d49e819a959fb89379f3 Mon Sep 17 00:00:00 2001 From: "Ujjvala Collins (OpenERP)" Date: Mon, 21 Nov 2011 18:31:53 +0530 Subject: [PATCH 02/40] [IMP] mrp_operations: Some usability improvements mentioned on pad. bzr revid: uco@tinyerp.com-20111121130153-re5blfwujjwjvqy6 --- addons/mrp_operations/mrp_operations.py | 4 ++-- addons/mrp_operations/mrp_operations_view.xml | 13 +++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py index e4815fee4c6..74d4ee3cf8a 100644 --- a/addons/mrp_operations/mrp_operations.py +++ b/addons/mrp_operations/mrp_operations.py @@ -86,10 +86,10 @@ class mrp_production_workcenter_line(osv.osv): _order = "sequence, date_planned" _columns = { - 'state': fields.selection([('draft','Draft'),('startworking', 'In Progress'),('pause','Pause'),('cancel','Cancelled'),('done','Finished')],'State', readonly=True, + 'state': fields.selection([('draft','Draft'),('startworking', 'In Progress'),('pause','Pending'),('cancel','Cancelled'),('done','Finished')],'State', readonly=True, help="* When a work order is created it is set in 'Draft' state.\n" \ "* When user sets work order in start mode that time it will be set in 'In Progress' state.\n" \ - "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pause' state.\n" \ + "* When work order is in running mode, during that time if user wants to stop or to make changes in order then can set in 'Pending' state.\n" \ "* When the user cancels the work order it will be set in 'Canceled' state.\n" \ "* When order is completely processed that time it is set in 'Finished' state."), 'date_start_date': fields.function(_get_date_date, string='Start Date', type='date'), diff --git a/addons/mrp_operations/mrp_operations_view.xml b/addons/mrp_operations/mrp_operations_view.xml index 377a57d6121..e7decebbf4b 100644 --- a/addons/mrp_operations/mrp_operations_view.xml +++ b/addons/mrp_operations/mrp_operations_view.xml @@ -16,7 +16,7 @@ + From 4ca43cd31e4324531d2816af27d97546aafb1f1f Mon Sep 17 00:00:00 2001 From: Minh Tran Date: Mon, 5 Dec 2011 16:44:25 +0100 Subject: [PATCH 06/40] [IMP] Changed the default home page bzr revid: mit@openerp.com-20111205154425-fw94io3x1dagpc5h --- addons/web/static/src/js/chrome.js | 10 +-- .../web_dashboard/static/src/js/dashboard.js | 69 +----------------- addons/web_default_home/__init__.py | 0 addons/web_default_home/__openerp__.py | 14 ++++ .../static/src/css/default_home.css | 47 ++++++++++++ .../static/src/js/default_home.js | 73 +++++++++++++++++++ .../static/src/xml/default_home.xml | 21 ++++++ 7 files changed, 158 insertions(+), 76 deletions(-) create mode 100644 addons/web_default_home/__init__.py create mode 100644 addons/web_default_home/__openerp__.py create mode 100644 addons/web_default_home/static/src/css/default_home.css create mode 100644 addons/web_default_home/static/src/js/default_home.js create mode 100644 addons/web_default_home/static/src/xml/default_home.xml diff --git a/addons/web/static/src/js/chrome.js b/addons/web/static/src/js/chrome.js index f10ee9376f6..d0a156ad9e5 100644 --- a/addons/web/static/src/js/chrome.js +++ b/addons/web/static/src/js/chrome.js @@ -1061,15 +1061,7 @@ openerp.web.WebClient = openerp.web.Widget.extend(/** @lends openerp.web.WebClie // TODO: add actual loading if there is url state to unpack, test on window.location.hash // not logged in if (!this.session.uid) { return; } - var ds = new openerp.web.DataSetSearch(this, 'res.users'); - ds.read_ids([this.session.uid], ['action_id'], function (users) { - var home_action = users[0].action_id; - if (!home_action) { - self.default_home(); - return; - } - self.execute_home_action(home_action[0], ds); - }) + self.action_manager.do_action({type: 'ir.actions.client', tag: 'default_home'}); }, default_home: function () { }, diff --git a/addons/web_dashboard/static/src/js/dashboard.js b/addons/web_dashboard/static/src/js/dashboard.js index e3ee0e2b542..2374acbec7a 100644 --- a/addons/web_dashboard/static/src/js/dashboard.js +++ b/addons/web_dashboard/static/src/js/dashboard.js @@ -385,21 +385,6 @@ openerp.web_dashboard.ApplicationTiles = openerp.web.View.extend({ start: function () { var self = this; this._super(); - // Check for installed application - var Installer = new openerp.web.DataSet(this, 'base.setup.installer'); - Installer.call('default_get', [], function (installed_modules) { - var installed = _(installed_modules).any(function (active, name) { - return _.str.startsWith(name, 'cat') && active; }); - - if(installed) { - self.do_display_root_menu(); - } else { - self.do_display_installer(); - } - }); - }, - do_display_root_menu: function() { - var self = this; var dss = new openerp.web.DataSetSearch( this, 'ir.ui.menu', null, [['parent_id', '=', false]]); var r = dss.read_slice( ['name', 'web_icon_data', 'web_icon_hover_data'], {}, function (applications) { // Create a matrix of 3*x applications @@ -408,58 +393,8 @@ openerp.web_dashboard.ApplicationTiles = openerp.web.View.extend({ rows.push(applications.splice(0, 3)); } var tiles = QWeb.render( 'ApplicationTiles.content', {rows: rows}); - self.$element.append(tiles) - .find('.oe-dashboard-home-tile') - .click(function () { - openerp.webclient.menu.on_menu_click(null, $(this).data('menuid')) - }); - }); - return r; - }, - do_display_installer: function() { - var self = this; - var render_ctx = { - url: window.location.protocol + '//' + window.location.host + window.location.pathname, - session: self.session, - rows: openerp.web_dashboard.apps.applications - }; - var installer = QWeb.render('StaticHome', render_ctx); - self.$element.append(installer); - this.$element.delegate('.oe-static-home-tile-text button', 'click', function () { - self.install_module($(this).val(), $(this).data('menu')); - }); - }, - install_module: function (module_name, menu_name) { - var self = this; - var Modules = new openerp.web.DataSetSearch( - this, 'ir.module.module', null, - [['name', '=', module_name], ['state', '=', 'uninstalled']]); - var Upgrade = new openerp.web.DataSet(this, 'base.module.upgrade'); - - $.blockUI(); - Modules.read_slice(['id'], {}, function (records) { - if (!(records.length === 1)) { $.unblockUI(); return; } - Modules.call('state_update', - [_.pluck(records, 'id'), 'to install', ['uninstalled']], - function () { - Upgrade.call('upgrade_module', [[]], function () { - self.run_configuration_wizards(menu_name); - }); - } - ) - }); - }, - run_configuration_wizards: function (menu_name) { - var self = this; - new openerp.web.DataSet(this, 'res.config').call('start', [[]], function (action) { - self.widget_parent.widget_parent.do_action(action, function () { - openerp.webclient.do_reload(); - }); - self.$element.empty(); - var dss = new openerp.web.DataSetSearch(this, 'ir.ui.menu', null, [['parent_id', '=', false], ['name', '=', menu_name]]); - dss.read_slice(['id'], {}, function(menus) { - if(!(menus.length === 1)) { $.unblockUI(); return; } - $.when(openerp.webclient.menu.on_menu_click(null, menus[0].id)).then($.unblockUI); + self.$element.append(tiles).find('.oe-dashboard-home-tile').click(function () { + openerp.webclient.menu.on_menu_click(null, $(this).data('menuid')) }); }); } diff --git a/addons/web_default_home/__init__.py b/addons/web_default_home/__init__.py new file mode 100644 index 00000000000..e69de29bb2d diff --git a/addons/web_default_home/__openerp__.py b/addons/web_default_home/__openerp__.py new file mode 100644 index 00000000000..ece173c8581 --- /dev/null +++ b/addons/web_default_home/__openerp__.py @@ -0,0 +1,14 @@ +{ + "name": "web Default Home", + "category" : "Hidden", + "version": "2.0", + "depends": ['web'], + "js": [ + 'static/src/js/default_home.js' + ], + "css": ['static/src/css/default_home.css'], + 'qweb' : [ + "static/src/xml/*.xml", + ], + 'active': True +} diff --git a/addons/web_default_home/static/src/css/default_home.css b/addons/web_default_home/static/src/css/default_home.css new file mode 100644 index 00000000000..96a6f9f4e82 --- /dev/null +++ b/addons/web_default_home/static/src/css/default_home.css @@ -0,0 +1,47 @@ +.installer { + width: 980px; +} + +.installer h1, .installer h3 { + margin: 16px 24px; + color: #555 +} + +.installer li { + float: left; + list-style: none; +} + +.installer li img { + display: block; + margin: 12px auto 16px; + height: 64px; + width: 64px; +} + +.installer li div { + color: #555; +} + +.installer li a { + display: block; + height: 120px; + width: 194px; + border: 1px solid #f4f2f2; + margin: 6px; + padding: 12px; + text-align: center; + text-transform: uppercase; + text-decoration: none; + font-size: 12px; + font-weight: 800; + background: white; + -moz-border-radius: 6px; + -webkit-border-radius: 6px; + -ms-border-radius: 6px; + border-radius: 6px; + -moz-box-shadow: 0 1px 2px #bbb; + -webkit-box-shadow: 0 1px 2px #bbb; + -o-box-shadow: 0 1px 2px #bbb; + box-shadow: 0 1px 2px #bbb; +} diff --git a/addons/web_default_home/static/src/js/default_home.js b/addons/web_default_home/static/src/js/default_home.js new file mode 100644 index 00000000000..0a95ace0681 --- /dev/null +++ b/addons/web_default_home/static/src/js/default_home.js @@ -0,0 +1,73 @@ +openerp.web_default_home = function(openerp) { + var QWeb = openerp.web.qweb; + + openerp.web.client_actions.add('default_home', 'openerp.web.Welcome'); + openerp.web.Welcome = openerp.web.Widget.extend({ + init: function(parent) { + this._super(parent); + }, + start: function() { + var self = this; + var applications = [ + {module: 'crm', name: 'CRM', menu: 'Sales', help: "Acquire leads, follow opportunities, manage prospects and phone calls, \u2026"}, + {module: 'sale', name: 'Sales', menu: 'Sales', help: "Do quotations, follow sales orders, invoice and control deliveries"}, + {module: 'account_voucher', name: 'Invoicing', menu: 'Accounting', help: "Send invoice, track payments and reminders"}, + {module: 'point_of_sale', name: 'Point of Sale', menu: 'Point of Sale', help: "Manage shop sales, use touch-screen POS"}, + {module: 'purchase', name: 'Purchase', menu: 'Sales', help: "Do purchase orders, control invoices and reception, follow your suppliers, \u2026"}, + {module: 'stock', name: 'Warehouse', menu: 'Warehouse', help: "Track your stocks, schedule product moves, manage incoming and outgoing shipments, \u2026"}, + {module: 'mrp', name: 'Manufacturing', menu: 'Manufacturing', help: "Manage your manufacturing, control your supply chain, personalize master data, \u2026"}, + {module: 'account_accountant', name: 'Accounting & Finance', menu: 'Accounting', help: "Record financial operations, automate followup, manage multi-currency, \u2026"}, + {module: 'project', name: 'Projects', menu: 'Project', help: "Manage projects, track tasks, invoice task works, follow issues, \u2026"}, + {module: 'hr', name: 'Human Resources', menu: 'Human Resources', help: "Manage employees and their contracts, follow laves, recruit people, \u2026"}, + {module: 'marketing', name: 'Marketing', menu: 'Marketing', help: "Manage campaigns, follow activities, automate emails, \u2026"}, + {module: 'knowledge', name: 'Knowledge', menu: 'Knowledge', help: "Track your documents, browse your files, \u2026"} + ]; + + var Installer = new openerp.web.DataSet(this, 'base.setup.installer'); + Installer.call('default_get', [], function (installed_modules) { + console.log(installed_modules); + self.$element.html(QWeb.render('Welcome-Page', {'applications': applications})); + self.$element.find('.install-module-link').click(function () { + self.install_module($(this).data('module'), $(this).data('menu')); + return false; + }); + }); + }, + install_module: function (module_name, menu_name) { + var self = this; + var Modules = new openerp.web.DataSetSearch( + this, 'ir.module.module', null, + [['name', '=', module_name], ['state', '=', 'uninstalled']]); + var Upgrade = new openerp.web.DataSet(this, 'base.module.upgrade'); + + $.blockUI(); + Modules.read_slice(['id'], {}, function (records) { + if (!(records.length === 1)) { $.unblockUI(); return; } + Modules.call('state_update', + [_.pluck(records, 'id'), 'to install', ['uninstalled']], + function () { + Upgrade.call('upgrade_module', [[]], function () { + self.run_configuration_wizards(menu_name); + }); + } + ) + }); + }, + run_configuration_wizards: function (menu_name) { + var self = this; + new openerp.web.DataSet(this, 'res.config').call('start', [[]], function (action) { + self.widget_parent.widget_parent.do_action(action, function () { + openerp.webclient.do_reload(); + }); + self.$element.empty(); + var dss = new openerp.web.DataSetSearch(this, 'ir.ui.menu', null, [['parent_id', '=', false], ['name', '=', menu_name]]); + dss.read_slice(['id'], {}, function(menus) { + if(!(menus.length === 1)) { $.unblockUI(); return; } + $.when(openerp.webclient.menu.on_menu_click(null, menus[0].id)).then($.unblockUI); + }); + }); + } + }); + +}; + diff --git a/addons/web_default_home/static/src/xml/default_home.xml b/addons/web_default_home/static/src/xml/default_home.xml new file mode 100644 index 00000000000..4d9e4a26938 --- /dev/null +++ b/addons/web_default_home/static/src/xml/default_home.xml @@ -0,0 +1,21 @@ + + + + +
+

Welcome to OpenERP

+

Please choose the first application to install.

+ +
+
+ +
From 573bae6729976353bac369d8b73e0a9f61614c20 Mon Sep 17 00:00:00 2001 From: Fabien Meghazi Date: Wed, 7 Dec 2011 17:31:31 +0100 Subject: [PATCH 07/40] [FIX] Shortcut icon + Process view button shall honor flags.display_title Fixed dashboard buttons styling bzr revid: fme@openerp.com-20111207163131-mi5cmtgficytw5c6 --- addons/web/static/src/xml/base.xml | 4 ++-- addons/web_dashboard/static/src/css/dashboard.css | 2 +- addons/web_process/static/src/xml/web_process.xml | 6 ++++-- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 618d135a919..8e7358a316f 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -460,11 +460,11 @@ - - diff --git a/addons/web_dashboard/static/src/css/dashboard.css b/addons/web_dashboard/static/src/css/dashboard.css index 572340a3e13..d3e05cc4e3b 100644 --- a/addons/web_dashboard/static/src/css/dashboard.css +++ b/addons/web_dashboard/static/src/css/dashboard.css @@ -3,7 +3,7 @@ } .openerp .oe-dashboard-links { text-align: right; - margin: -2em 0.4em 1em 0; + margin: 0 4px 6px 0; } .openerp .oe-dashboard-action { margin: 0 0.5em 0.5em 0; diff --git a/addons/web_process/static/src/xml/web_process.xml b/addons/web_process/static/src/xml/web_process.xml index 727bdad9d25..d9726a3b325 100644 --- a/addons/web_process/static/src/xml/web_process.xml +++ b/addons/web_process/static/src/xml/web_process.xml @@ -1,7 +1,9 @@ \ No newline at end of file + From 019946150930f297d33251c3eeaabf658ea2b169 Mon Sep 17 00:00:00 2001 From: Launchpad Translations on behalf of openerp <> Date: Thu, 8 Dec 2011 06:07:00 +0000 Subject: [PATCH 08/40] Launchpad automatic translations update. bzr revid: launchpad_translations_on_behalf_of_openerp-20111208053607-5eolhazj9nhu05j3 bzr revid: launchpad_translations_on_behalf_of_openerp-20111208060700-nb1yi7ecs4q7932m --- addons/account/i18n/ar.po | 26 +++++------ addons/sale/i18n/fr.po | 14 +++--- addons/web_calendar/po/uk.po | 30 +++++++++++++ addons/web_default_home/po/uk.po | 38 ++++++++++++++++ addons/web_mobile/po/uk.po | 74 ++++++++++++++++++++++++++++++++ 5 files changed, 162 insertions(+), 20 deletions(-) create mode 100644 addons/web_calendar/po/uk.po create mode 100644 addons/web_default_home/po/uk.po create mode 100644 addons/web_mobile/po/uk.po diff --git a/addons/account/i18n/ar.po b/addons/account/i18n/ar.po index faecaa6fe04..35a130927be 100644 --- a/addons/account/i18n/ar.po +++ b/addons/account/i18n/ar.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:14+0000\n" -"PO-Revision-Date: 2011-12-04 22:14+0000\n" +"PO-Revision-Date: 2011-12-08 00:21+0000\n" "Last-Translator: kifcaliph \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-12-05 05:22+0000\n" -"X-Generator: Launchpad (build 14418)\n" +"X-Launchpad-Export-Date: 2011-12-08 05:35+0000\n" +"X-Generator: Launchpad (build 14443)\n" #. module: account #: model:process.transition,name:account.process_transition_supplierreconcilepaid0 @@ -152,7 +152,7 @@ msgstr "الاصل" #: view:account.move.line.reconcile:0 #: view:account.move.line.reconcile.writeoff:0 msgid "Reconcile" -msgstr "توافق" +msgstr "تسوية" #. module: account #: field:account.bank.statement.line,ref:0 @@ -209,7 +209,7 @@ msgstr "سالب" #: code:addons/account/wizard/account_move_journal.py:95 #, python-format msgid "Journal: %s" -msgstr "سجل : %s" +msgstr "يومية: %s" #. module: account #: help:account.analytic.journal,type:0 @@ -230,7 +230,7 @@ msgstr "قوالب الضريبة" #. module: account #: model:ir.model,name:account.model_account_tax msgid "account.tax" -msgstr "حساب.ضريبة" +msgstr "account.tax" #. module: account #: code:addons/account/account.py:901 @@ -661,7 +661,7 @@ msgstr "اقفال الفترة" #. module: account #: model:ir.model,name:account.model_account_common_partner_report msgid "Account Common Partner Report" -msgstr "" +msgstr "تقرير الحساب المشترك للشريك" #. module: account #: field:account.fiscalyear.close,period_id:0 @@ -908,7 +908,7 @@ msgstr "مرشحات مفصلة..." #. module: account #: model:ir.ui.menu,name:account.menu_account_central_journal msgid "Centralizing Journal" -msgstr "مركزية السجل" +msgstr "مركزية اليومية" #. module: account #: selection:account.journal,type:0 @@ -1689,7 +1689,7 @@ msgstr "كل الشركاء" #. module: account #: report:account.move.voucher:0 msgid "Ref. :" -msgstr "" +msgstr "مرجع:" #. module: account #: view:account.analytic.chart:0 @@ -2622,7 +2622,7 @@ msgstr "" #. module: account #: report:account.move.voucher:0 msgid "Number:" -msgstr "" +msgstr "رقم:" #. module: account #: selection:account.print.journal,sort_selection:0 @@ -3069,7 +3069,7 @@ msgstr "" #. module: account #: report:account.move.voucher:0 msgid "Journal:" -msgstr "" +msgstr "يومية:" #. module: account #: view:account.bank.statement:0 @@ -3121,7 +3121,7 @@ msgstr "سنة" #. module: account #: report:account.move.voucher:0 msgid "Authorised Signatory" -msgstr "" +msgstr "إمضاء المسؤول" #. module: account #: view:validate.account.move.lines:0 @@ -4389,7 +4389,7 @@ msgstr "عناصر اليومية" #. module: account #: selection:account.account.type,report_type:0 msgid "Balance Sheet (Asset Accounts)" -msgstr "" +msgstr "الميزانية العمومية (حسابات الأصول)" #. module: account #: report:account.tax.code.entries:0 diff --git a/addons/sale/i18n/fr.po b/addons/sale/i18n/fr.po index 9e1c20409be..645dbcc4e38 100644 --- a/addons/sale/i18n/fr.po +++ b/addons/sale/i18n/fr.po @@ -7,14 +7,14 @@ msgstr "" "Project-Id-Version: OpenERP Server 6.0dev\n" "Report-Msgid-Bugs-To: support@openerp.com\n" "POT-Creation-Date: 2011-01-11 11:16+0000\n" -"PO-Revision-Date: 2011-01-18 13:16+0000\n" -"Last-Translator: Aline (OpenERP) \n" +"PO-Revision-Date: 2011-12-07 09:17+0000\n" +"Last-Translator: Numérigraphe \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -"X-Launchpad-Export-Date: 2011-11-05 05:16+0000\n" -"X-Generator: Launchpad (build 14231)\n" +"X-Launchpad-Export-Date: 2011-12-08 05:36+0000\n" +"X-Generator: Launchpad (build 14443)\n" #. module: sale #: code:addons/sale/sale.py:620 @@ -315,7 +315,7 @@ msgstr "Tableau de bord du responsable des ventes" #. module: sale #: field:sale.order.line,product_packaging:0 msgid "Packaging" -msgstr "Colis" +msgstr "Conditionnement" #. module: sale #: model:process.transition,name:sale.process_transition_saleinvoice0 @@ -600,8 +600,8 @@ msgid "" "For every sales order line, a procurement order is created to supply the " "sold product." msgstr "" -"Pour chaque ligne de vente, un ordre d'approvisionnement est créé pour " -"approvisionner le produit vendu." +"Pour chaque ligne de commande, un ordre d'approvisionnement est créé pour " +"fournir le produit vendu." #. module: sale #: help:sale.order,incoterm:0 diff --git a/addons/web_calendar/po/uk.po b/addons/web_calendar/po/uk.po new file mode 100644 index 00000000000..9cb7cae4797 --- /dev/null +++ b/addons/web_calendar/po/uk.po @@ -0,0 +1,30 @@ +# Ukrainian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" +"PO-Revision-Date: 2011-12-07 16:53+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Ukrainian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-08 06:06+0000\n" +"X-Generator: Launchpad (build 14443)\n" + +#: addons/web_calendar/static/src/js/calendar.js:409 +msgid "Responsible" +msgstr "" + +#: addons/web_calendar/static/src/js/calendar.js:438 +msgid "Navigator" +msgstr "" + +#: addons/web_calendar/static/src/xml/web_calendar.xml:0 +msgid " " +msgstr "" diff --git a/addons/web_default_home/po/uk.po b/addons/web_default_home/po/uk.po new file mode 100644 index 00000000000..7e3c560a2f6 --- /dev/null +++ b/addons/web_default_home/po/uk.po @@ -0,0 +1,38 @@ +# Ukrainian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-10-07 10:39+0200\n" +"PO-Revision-Date: 2011-12-07 16:56+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Ukrainian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-08 06:06+0000\n" +"X-Generator: Launchpad (build 14443)\n" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Welcome to your new OpenERP instance." +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember to bookmark this page." +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Remember your login:" +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Choose the first OpenERP Application you want to install.." +msgstr "" + +#: addons/web_default_home/static/src/xml/web_default_home.xml:0 +msgid "Install" +msgstr "" diff --git a/addons/web_mobile/po/uk.po b/addons/web_mobile/po/uk.po new file mode 100644 index 00000000000..5c9f7c291f7 --- /dev/null +++ b/addons/web_mobile/po/uk.po @@ -0,0 +1,74 @@ +# Ukrainian translation for openerp-web +# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011 +# This file is distributed under the same license as the openerp-web package. +# FIRST AUTHOR , 2011. +# +msgid "" +msgstr "" +"Project-Id-Version: openerp-web\n" +"Report-Msgid-Bugs-To: FULL NAME \n" +"POT-Creation-Date: 2011-12-05 11:50+0100\n" +"PO-Revision-Date: 2011-12-07 16:51+0000\n" +"Last-Translator: FULL NAME \n" +"Language-Team: Ukrainian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Launchpad-Export-Date: 2011-12-08 06:06+0000\n" +"X-Generator: Launchpad (build 14443)\n" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "OpenERP" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Database:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Password:" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Login" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Bad username or password" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Powered by openerp.com" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Favourite" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Preference" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Logout" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "There is no records to show." +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid ":" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "On" +msgstr "" + +#: addons/web_mobile/static/src/xml/web_mobile.xml:0 +msgid "Off" +msgstr "" From 22fb18bcbf480b28c3f96e16ceb207116e77fadd Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Wed, 7 Dec 2011 16:31:01 +0100 Subject: [PATCH 09/40] [ADD] special case: creating a record from list goes back to page view, not list view bzr revid: xmo@openerp.com-20111207153101-kzpolvmvmxnjl20m --- addons/web/static/src/js/view_form.js | 5 +++-- addons/web/static/src/js/views.js | 19 ++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 0e813f99166..46bb2ef7c35 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -356,8 +356,8 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# }, on_button_save: function() { var self = this; - return this.do_save().then(function() { - self.do_prev_view(); + return this.do_save().then(function(result) { + self.do_prev_view(result.created); }); }, on_button_cancel: function() { @@ -433,6 +433,7 @@ openerp.web.FormView = openerp.web.View.extend( /** @lends openerp.web.FormView# if (success) { success(); } + return $.Deferred().resolve({}).promise(); } else { openerp.log("FormView(", self, ") : About to save", values); return self.dataset.write(self.datarecord.id, values, {}).pipe(function(r) { diff --git a/addons/web/static/src/js/views.js b/addons/web/static/src/js/views.js index cae83d48258..f583dd259e7 100644 --- a/addons/web/static/src/js/views.js +++ b/addons/web/static/src/js/views.js @@ -300,10 +300,23 @@ session.web.ViewManager = session.web.Widget.extend(/** @lends session.web.View }); return view_promise; }, - on_prev_view: function () { - this.views_history.pop(); + /** + * Returns to the view preceding the caller view in this manager's + * navigation history (the navigation history is appended to via + * on_mode_switch) + * + * @param {Boolean} [created=false] returning from a creation + * @returns {$.Deferred} switching end signal + */ + on_prev_view: function (created) { + var current_view = this.views_history.pop(); var previous_view = this.views_history[this.views_history.length - 1]; - this.on_mode_switch(previous_view, true); + // APR special case: "If creation mode from list (and only from a list), + // after saving, go to page view (don't come back in list)" + if (created && current_view === 'form' && previous_view === 'list') { + return this.on_mode_switch('page'); + } + return this.on_mode_switch(previous_view, true); }, /** * Sets up the current viewmanager's search view. From 229e507a4bce79ae6bfe652330b714c3e94d45ff Mon Sep 17 00:00:00 2001 From: Minh Tran Date: Wed, 7 Dec 2011 19:50:58 +0100 Subject: [PATCH 10/40] [IMP] Relooking of the modules vignette, the Kanban view is now the default view for the module screen. bzr revid: mit@openerp.com-20111207185058-xb5b4z8cz0zd6gla --- openerp/addons/base/__openerp__.py | 2 + openerp/addons/base/module/module_view.xml | 48 +++++++++---------- .../addons/base/static/src/css/modules.css | 31 ++++++++++++ openerp/addons/base/static/src/js/modules.js | 0 4 files changed, 55 insertions(+), 26 deletions(-) create mode 100644 openerp/addons/base/static/src/css/modules.css create mode 100644 openerp/addons/base/static/src/js/modules.js diff --git a/openerp/addons/base/__openerp__.py b/openerp/addons/base/__openerp__.py index f1ceb9a0915..2bd66fa5a02 100644 --- a/openerp/addons/base/__openerp__.py +++ b/openerp/addons/base/__openerp__.py @@ -99,5 +99,7 @@ 'installable': True, 'active': True, 'certificate': '0076807797149', + "js": [ 'static/src/js/modules.js' ], + "css": [ 'static/src/css/modules.css' ], } # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/openerp/addons/base/module/module_view.xml b/openerp/addons/base/module/module_view.xml index ff4dee3b3c0..212a2881cf2 100644 --- a/openerp/addons/base/module/module_view.xml +++ b/openerp/addons/base/module/module_view.xml @@ -62,34 +62,30 @@ ir.module.module kanban - - - - - - - - - - - - -
- - -
-
-
- -
-
-
-
+ + + + + + + + +
+

+

+
+ Complexity: +

+ Install + +
+
+
+
+
- - Modules ir.module.module @@ -194,7 +190,7 @@ Modules ir.module.module form - tree,form,kanban + kanban,tree,form You can install new modules in order to activate new features, menu, reports or data in your OpenERP instance. To install some modules, click on the button "Install" from the form view and then click on "Start Upgrade". diff --git a/openerp/addons/base/static/src/css/modules.css b/openerp/addons/base/static/src/css/modules.css new file mode 100644 index 00000000000..645a332bc46 --- /dev/null +++ b/openerp/addons/base/static/src/css/modules.css @@ -0,0 +1,31 @@ +.module-icon, .module-desc { + display: inline-block; + vertical-align: top; +} + +.module-icon { + width: 80px; + height: 80px; + padding: 0 4px; +} + +.module-desc { + width: 220px; + font-size: 13px; + padding: 2px 4px 8px; + color: #4c4c4c; +} + +.module-desc h4 { + margin: 3px 0; + font-size: 13px; +} + +.module-desc p { + margin: 3px 0 5px; +} + +.oe_kanban_record { + margin: 5px 0; + min-height: 80px; +} diff --git a/openerp/addons/base/static/src/js/modules.js b/openerp/addons/base/static/src/js/modules.js new file mode 100644 index 00000000000..e69de29bb2d From ebac9ace6edd4ee5ea28d8af6296575e3bdd6c84 Mon Sep 17 00:00:00 2001 From: "Quentin (OpenERP)" Date: Thu, 8 Dec 2011 09:30:34 +0100 Subject: [PATCH 11/40] [FIX] l10n_ch: kwargs fix bzr revid: qdp-launchpad@openerp.com-20111208083034-lkvwxbv1xw0s9eps --- addons/l10n_ch/wizard/bvr_import.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addons/l10n_ch/wizard/bvr_import.py b/addons/l10n_ch/wizard/bvr_import.py index 31c1e9ab96f..e98053513cd 100644 --- a/addons/l10n_ch/wizard/bvr_import.py +++ b/addons/l10n_ch/wizard/bvr_import.py @@ -168,7 +168,7 @@ def _import(self, cursor, user, data, context=None): # line2reconcile = line.id account_id = line.account_id.id break - result = voucher_obj.onchange_partner_id(cursor, user, [], partner_id, journal_id=statement.journal_id.id, price=abs(record['amount']), currency_id= statement.currency.id, ttype='receipt', date=statement.date ,context=context) + result = voucher_obj.onchange_partner_id(cursor, user, [], partner_id, journal_id=statement.journal_id.id, amount=abs(record['amount']), currency_id= statement.currency.id, ttype='receipt', date=statement.date ,context=context) voucher_res = { 'type': 'receipt' , 'name': values['name'], From f3d42191643159b0a27f9c370cc713055fdf4b7d Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 8 Dec 2011 10:10:55 +0100 Subject: [PATCH 12/40] [IMP] editable list UI * removed cancel edition button * used an icon for save edition button bzr revid: xmo@openerp.com-20111208091055-j80gi36s0j5c3mpi --- addons/web/static/src/css/base.css | 6 +++++- .../web/static/src/img/icons/save-document.png | Bin 0 -> 1189 bytes addons/web/static/src/js/view_list_editable.js | 15 +++++---------- addons/web/static/src/xml/base.xml | 6 ++---- 4 files changed, 12 insertions(+), 15 deletions(-) create mode 100644 addons/web/static/src/img/icons/save-document.png diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 0281ec3750f..9f70a5eebfb 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -768,13 +768,17 @@ label.error { padding: 1px 2px; } -.openerp .oe-record-delete button{ +.openerp .oe-record-delete button, +.openerp button.oe-edit-row-save { border: none; height: 12px; width: 12px; background: url("/web/static/src/img/iconset-b-remove.png") no-repeat scroll center center transparent; cursor: pointer; } +.openerp button.oe-edit-row-save { + background-image: url('/web/static/src/img/icons/save-document.png'); +} /* Could use :not selectors if they were supported by MSIE8... */ .openerp .oe-listview tbody td { diff --git a/addons/web/static/src/img/icons/save-document.png b/addons/web/static/src/img/icons/save-document.png new file mode 100644 index 0000000000000000000000000000000000000000..8933ca0bed9cb93dcb4aa588f87fe3310ff3f2a9 GIT binary patch literal 1189 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`Y)RhkE)4%caKYZ?lYt_f1s;*b zKpodXn9)gNb_GbVtiUlHNQ3n=#2j0Dn1O+LrKgKyh{fsHN!dP=(zw8*jJ{KM zCZ#Q3IWMg#a&DoX&fy0Iy9D@LJyo@sx2W8jR$#}o^^iu&(q^$!GL74|HMBZ4DsgTQ zS$K;f%ITP*#jilWrS4H(htKBf-P}9d%I~I3p#rmnG(j{w^ZQtsaTW{5Mo-1qhc*W0s7gOY9ea;BK=2!igwDN6| ztfi~Eig=XebeA0g5&z3qo%s+xXUp@Mo3{R)e{y5>jBP!Rt6sWnE0d_57O8V{?ui^J zhUKf~CKmp>sqO_9MuEN!Oxwp9+N5pPX3a^r` z-fS}AOV5LYEvzL#d)D7OT6ZirzOk*%FE zvv%L+!W^Nmx8k-)zH?an+QDr#=bd%)3;+D;Pig9iu-fWzj^l_`jApLGx`@s_v(iFL zUMcLp+rF#M@x)jAg?$QdWgJ|i?JIt@Ke#vZsCcTc%ZEstzhBMGB^zDZ4^9kZ`6Kt^ z+Fk342j43DS?ce|;-;+7qacOFD2%~i@t`mxp4pf9S4>3-hf9HwEa}p!-G&}&6*3*?f{TExS&v|%%>$KqA5zC$K`RUBy_g&wz>^{rtUd8)g z#n0RpJD{VVcrovI*Jak-$GNB5H?U3@KbfoczHZ~SFLgU#MZbFb-L5XzKPIirqo~uy z$n-h8+4=>F^TIEPoYxOg<>$;dH--fVd$8Dzo_^>FbAuaxJHzuB$lLFB^RXv zDF!1014~^XGBge`G`BJ|wK6u-HZZa>FxY=k#vesPZhlH;S|x4`=jJT=4AdYAvLQG> qt)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysWA_h-aKbLh*2~7Y{FcQxI literal 0 HcmV?d00001 diff --git a/addons/web/static/src/js/view_list_editable.js b/addons/web/static/src/js/view_list_editable.js index f6b7f85dee1..37c14d31323 100644 --- a/addons/web/static/src/js/view_list_editable.js +++ b/addons/web/static/src/js/view_list_editable.js @@ -179,9 +179,6 @@ openerp.web.list_editable = function (openerp) { .delegate('button.oe-edit-row-save', 'click', function () { self.save_row(); }) - .delegate('button.oe-edit-row-cancel', 'click', function () { - self.cancel_edition(); - }) .delegate('button', 'keyup', function (e) { e.stopImmediatePropagation(); }) @@ -231,20 +228,18 @@ openerp.web.list_editable = function (openerp) { .addClass('oe-field-cell') .removeAttr('width') .end() - .find('td:first').removeClass('oe-field-cell').end() .find('td:last').removeClass('oe-field-cell').end(); + if (self.options.selectable) { + $new_row.prepend(''); + } // pad in case of groupby _(self.columns).each(function (column) { if (column.meta) { $new_row.prepend(''); } }); - // Add columns for the cancel and save buttons, if - // there are none in the list - if (!self.options.selectable) { - self.view.pad_columns( - 1, {except: $new_row, position: 'before'}); - } + // Add column for the save, if + // there is none in the list if (!self.options.deletable) { self.view.pad_columns( 1, {except: $new_row}); diff --git a/addons/web/static/src/xml/base.xml b/addons/web/static/src/xml/base.xml index 8e7358a316f..5eb19a70136 100644 --- a/addons/web/static/src/xml/base.xml +++ b/addons/web/static/src/xml/base.xml @@ -1412,10 +1412,8 @@ .replaceAll(this) .after($(document.createElement('td')).append( $(document.createElement('button')).attr({ - 'class': 'oe-edit-row-save', 'type': 'button'}).text('Save'))) - .before($(document.createElement('td')).append( - $(document.createElement('button')).attr({ - 'class': 'oe-edit-row-cancel', 'type': 'button'}).text('Cancel'))) + 'class': 'oe-edit-row-save', 'type': 'button'}) + .html(' '))) .unwrap(); From fef31e0d712b17840dec660a32b1413c88abf102 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 8 Dec 2011 11:28:09 +0100 Subject: [PATCH 13/40] [ADD] page view reference field behaves much like the corresponding m2o field: simply links to the referenced object bzr revid: xmo@openerp.com-20111208102809-ljc9sm84pc9snda0 --- addons/web/static/src/css/base.css | 10 ++++++++-- addons/web/static/src/js/view_page.js | 20 +++++++++++++++++++- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/addons/web/static/src/css/base.css b/addons/web/static/src/css/base.css index 9f70a5eebfb..3a163beb832 100644 --- a/addons/web/static/src/css/base.css +++ b/addons/web/static/src/css/base.css @@ -956,13 +956,19 @@ label.error { background: #f9f9f9; } /* Unedit Form */ -.openerp .field_char, .openerp .field_date, .openerp .field_float, .openerp .oe_form_field_many2one a { +.openerp .field_char, +.openerp .field_date, +.openerp .field_float, +.openerp .field_selection, +.openerp .oe_form_field_many2one a, +.openerp .oe_form_field_reference a{ vertical-align: middle; padding-top: 3px; font-size: 90%; color: #222; } -.openerp .oe_form_field_many2one a { +.openerp .oe_form_field_many2one a, +.openerp .oe_form_field_reference a { color: #9A0404; line-height: 12px; } diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index ee7ce2537ad..76ad81837c2 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -168,7 +168,24 @@ openerp.web.page = function (openerp) { } } }); - + openerp.web.form.FieldReferenceReadonly = openerp.web.form.FieldMany2OneReadonly.extend({ + set_value: function (value) { + if (!value) { + return this._super(null); + } + var reference = value.split(','); + this.field.relation = reference[0]; + var id = parseInt(reference[1], 10); + return this._super(id); + }, + get_value: function () { + if (!this.value) { + return null; + } + return _.str.sprintf('%s,%d', this.field.relation, this.value[0]); + } + }); + openerp.web.form.FieldMany2ManyReadonly = openerp.web.form.FieldMany2Many.extend({ force_readonly: true }); @@ -188,6 +205,7 @@ openerp.web.page = function (openerp) { 'many2many' : 'openerp.web.form.FieldMany2ManyReadonly', 'one2many' : 'openerp.web.form.FieldOne2ManyReadonly', 'one2many_list' : 'openerp.web.form.FieldOne2ManyReadonly', + 'reference': 'openerp.web.form.FieldReferenceReadonly', 'boolean': 'openerp.web.form.FieldBooleanReadonly', 'float': 'openerp.web.form.FieldCharReadonly', 'integer': 'openerp.web.form.FieldCharReadonly', From 2891eeb1f82e0372771ff41f96d8199931e5f7db Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Thu, 8 Dec 2011 11:32:22 +0100 Subject: [PATCH 14/40] [IMP] search view on calendars bzr revid: fp@tinyerp.com-20111208103222-p1eh7yv431kig1pa --- addons/crm/crm_meeting_view.xml | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/addons/crm/crm_meeting_view.xml b/addons/crm/crm_meeting_view.xml index d35300b62b5..ad2c31f7b12 100644 --- a/addons/crm/crm_meeting_view.xml +++ b/addons/crm/crm_meeting_view.xml @@ -294,14 +294,18 @@ - - - + + + + + - From 8683629a75374ef7cf6c284f55ea9983f43b27fa Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 8 Dec 2011 11:37:32 +0100 Subject: [PATCH 15/40] [IMP] move page widgets to an openerp.web.page namespace, from openerp.web.form bzr revid: xmo@openerp.com-20111208103732-grfv19fhu0dxtk3m --- addons/web/static/src/js/view_page.js | 64 ++++++++++++++------------- 1 file changed, 34 insertions(+), 30 deletions(-) diff --git a/addons/web/static/src/js/view_page.js b/addons/web/static/src/js/view_page.js index 76ad81837c2..2ca07152a56 100644 --- a/addons/web/static/src/js/view_page.js +++ b/addons/web/static/src/js/view_page.js @@ -7,7 +7,7 @@ openerp.web.page = function (openerp) { form_template: "PageView", init: function () { this._super.apply(this, arguments); - this.registry = openerp.web.form.readonly; + this.registry = openerp.web.page.readonly; }, on_loaded: function(data) { this._super(data); @@ -55,10 +55,14 @@ openerp.web.page = function (openerp) { return def.promise(); } }); - openerp.web.form.FieldReadonly = openerp.web.form.Field.extend({ + + /** @namespace */ + openerp.web.page = {}; + + openerp.web.page.FieldReadonly = openerp.web.form.Field.extend({ }); - openerp.web.form.FieldCharReadonly = openerp.web.form.FieldReadonly.extend({ + openerp.web.page.FieldCharReadonly = openerp.web.page.FieldReadonly.extend({ template: 'FieldChar.readonly', init: function(view, node) { this._super(view, node); @@ -74,7 +78,7 @@ openerp.web.page = function (openerp) { return show_value; } }); - openerp.web.form.FieldURIReadonly = openerp.web.form.FieldCharReadonly.extend({ + openerp.web.page.FieldURIReadonly = openerp.web.page.FieldCharReadonly.extend({ template: 'FieldURI.readonly', scheme: null, set_value: function (value) { @@ -84,10 +88,10 @@ openerp.web.page = function (openerp) { .text(displayed); } }); - openerp.web.form.FieldEmailReadonly = openerp.web.form.FieldURIReadonly.extend({ + openerp.web.page.FieldEmailReadonly = openerp.web.page.FieldURIReadonly.extend({ scheme: 'mailto' }); - openerp.web.form.FieldUrlReadonly = openerp.web.form.FieldURIReadonly.extend({ + openerp.web.page.FieldUrlReadonly = openerp.web.page.FieldURIReadonly.extend({ set_value: function (value) { var s = /(\w+):(.+)/.exec(value); if (!s || !(s[1] === 'http' || s[1] === 'https')) { return; } @@ -95,12 +99,12 @@ openerp.web.page = function (openerp) { this._super(s[2]); } }); - openerp.web.form.FieldBooleanReadonly = openerp.web.form.FieldCharReadonly.extend({ + openerp.web.page.FieldBooleanReadonly = openerp.web.page.FieldCharReadonly.extend({ set_value: function (value) { this._super(value ? '\u2611' : '\u2610'); } }); - openerp.web.form.FieldSelectionReadonly = openerp.web.form.FieldReadonly.extend({ + openerp.web.page.FieldSelectionReadonly = openerp.web.page.FieldReadonly.extend({ template: 'FieldChar.readonly', init: function(view, node) { // lifted straight from r/w version @@ -123,7 +127,7 @@ openerp.web.page = function (openerp) { this.$element.find('div').text(option ? option[1] : this.values[0][1]); } }); - openerp.web.form.FieldMany2OneReadonly = openerp.web.form.FieldURIReadonly.extend({ + openerp.web.page.FieldMany2OneReadonly = openerp.web.page.FieldURIReadonly.extend({ set_value: function (value) { value = value || null; this.invalid = false; @@ -168,7 +172,7 @@ openerp.web.page = function (openerp) { } } }); - openerp.web.form.FieldReferenceReadonly = openerp.web.form.FieldMany2OneReadonly.extend({ + openerp.web.page.FieldReferenceReadonly = openerp.web.page.FieldMany2OneReadonly.extend({ set_value: function (value) { if (!value) { return this._super(null); @@ -186,29 +190,29 @@ openerp.web.page = function (openerp) { } }); - openerp.web.form.FieldMany2ManyReadonly = openerp.web.form.FieldMany2Many.extend({ + openerp.web.page.FieldMany2ManyReadonly = openerp.web.form.FieldMany2Many.extend({ force_readonly: true }); - openerp.web.form.FieldOne2ManyReadonly = openerp.web.form.FieldOne2Many.extend({ + openerp.web.page.FieldOne2ManyReadonly = openerp.web.form.FieldOne2Many.extend({ force_readonly: true }); - openerp.web.form.readonly = openerp.web.form.widgets.clone({ - 'char': 'openerp.web.form.FieldCharReadonly', - 'email': 'openerp.web.form.FieldEmailReadonly', - 'url': 'openerp.web.form.FieldUrlReadonly', - 'text': 'openerp.web.form.FieldCharReadonly', - 'text_wiki' : 'openerp.web.form.FieldCharReadonly', - 'date': 'openerp.web.form.FieldCharReadonly', - 'datetime': 'openerp.web.form.FieldCharReadonly', - 'selection' : 'openerp.web.form.FieldSelectionReadonly', - 'many2one': 'openerp.web.form.FieldMany2OneReadonly', - 'many2many' : 'openerp.web.form.FieldMany2ManyReadonly', - 'one2many' : 'openerp.web.form.FieldOne2ManyReadonly', - 'one2many_list' : 'openerp.web.form.FieldOne2ManyReadonly', - 'reference': 'openerp.web.form.FieldReferenceReadonly', - 'boolean': 'openerp.web.form.FieldBooleanReadonly', - 'float': 'openerp.web.form.FieldCharReadonly', - 'integer': 'openerp.web.form.FieldCharReadonly', - 'float_time': 'openerp.web.form.FieldCharReadonly' + openerp.web.page.readonly = openerp.web.form.widgets.clone({ + 'char': 'openerp.web.page.FieldCharReadonly', + 'email': 'openerp.web.page.FieldEmailReadonly', + 'url': 'openerp.web.page.FieldUrlReadonly', + 'text': 'openerp.web.page.FieldCharReadonly', + 'text_wiki' : 'openerp.web.page.FieldCharReadonly', + 'date': 'openerp.web.page.FieldCharReadonly', + 'datetime': 'openerp.web.page.FieldCharReadonly', + 'selection' : 'openerp.web.page.FieldSelectionReadonly', + 'many2one': 'openerp.web.page.FieldMany2OneReadonly', + 'many2many' : 'openerp.web.page.FieldMany2ManyReadonly', + 'one2many' : 'openerp.web.page.FieldOne2ManyReadonly', + 'one2many_list' : 'openerp.web.page.FieldOne2ManyReadonly', + 'reference': 'openerp.web.page.FieldReferenceReadonly', + 'boolean': 'openerp.web.page.FieldBooleanReadonly', + 'float': 'openerp.web.page.FieldCharReadonly', + 'integer': 'openerp.web.page.FieldCharReadonly', + 'float_time': 'openerp.web.page.FieldCharReadonly' }); }; From eacd5ff1f249f28d118d0ed16133b04a0a9f84a4 Mon Sep 17 00:00:00 2001 From: Xavier Morel Date: Thu, 8 Dec 2011 11:47:42 +0100 Subject: [PATCH 16/40] [FIX] have readonly m2m fields open their form popup in readonly mode bzr revid: xmo@openerp.com-20111208104742-k8rapp1l49wyayst --- addons/web/static/src/js/view_form.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/addons/web/static/src/js/view_form.js b/addons/web/static/src/js/view_form.js index 46bb2ef7c35..9d940d85bae 100644 --- a/addons/web/static/src/js/view_form.js +++ b/addons/web/static/src/js/view_form.js @@ -2450,7 +2450,9 @@ openerp.web.form.Many2ManyListView = openerp.web.ListView.extend(/** @lends open do_activate_record: function(index, id) { var self = this; var pop = new openerp.web.form.FormOpenPopup(this); - pop.show_element(this.dataset.model, id, this.m2m_field.build_context(), {}); + pop.show_element(this.dataset.model, id, this.m2m_field.build_context(), { + readonly: this.widget_parent.is_readonly() + }); pop.on_write_completed.add_last(function() { self.reload_content(); }); From 75fb009dae2a5614e671215a6cf035edcb39af4a Mon Sep 17 00:00:00 2001 From: Fabien Pinckaers Date: Thu, 8 Dec 2011 13:01:11 +0100 Subject: [PATCH 17/40] [IMP] fix on PoS module bzr revid: fp@tinyerp.com-20111208120111-skr3af91uiqot1ie --- addons/point_of_sale/point_of_sale.py | 16 +-- addons/point_of_sale/point_of_sale_view.xml | 112 +++++------------- .../security/ir.model.access.csv | 7 +- 3 files changed, 42 insertions(+), 93 deletions(-) diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py index b19405bd43f..1afa10b1be3 100644 --- a/addons/point_of_sale/point_of_sale.py +++ b/addons/point_of_sale/point_of_sale.py @@ -122,10 +122,10 @@ class pos_order(osv.osv): 'partner_id': fields.many2one('res.partner', 'Customer', change_default=True, select=1, states={'draft': [('readonly', False)], 'paid': [('readonly', False)]}), 'state': fields.selection([('draft', 'New'), - ('paid', 'Done'), + ('cancel', 'Cancelled'), + ('paid', 'Paid'), ('done', 'Posted'), - ('invoiced', 'Invoiced'), - ('cancel', 'Cancelled')], + ('invoiced', 'Invoiced')], 'State', readonly=True), 'invoice_id': fields.many2one('account.invoice', 'Invoice'), @@ -691,10 +691,12 @@ pos_category() class product_product(osv.osv): _inherit = 'product.product' _columns = { - 'income_pdt': fields.boolean('Product for Input'), - 'expense_pdt': fields.boolean('Product for Output'), - 'img': fields.binary('Pos Image, must be 50x50'), - 'pos_categ_id': fields.many2one('pos.category','POS Category', change_default=True, domain="[('type','=','normal')]" ,help="Select a pos category for the current product") + 'income_pdt': fields.boolean('PoS Cash Input', help="This is a product you can use to put cash into a statement for the point of sale backend."), + 'expense_pdt': fields.boolean('PoS Cash Output', help="This is a product you can use to take cash from a statement for the point of sale backend, exemple: money lost, transfer to bank, etc."), + 'img': fields.binary('Product Image, must be 50x50', help="Use an image size of 50x50."), + 'pos_categ_id': fields.many2one('pos.category','PoS Category', + domain="[('type','=','normal')]", + help="If you want to sell this product through the point of sale, select the category it belongs to.") } product_product() diff --git a/addons/point_of_sale/point_of_sale_view.xml b/addons/point_of_sale/point_of_sale_view.xml index 165c6c83e3a..b69305c1a30 100644 --- a/addons/point_of_sale/point_of_sale_view.xml +++ b/addons/point_of_sale/point_of_sale_view.xml @@ -12,11 +12,11 @@ pos.order form -
+ - +