-
+
diff --git a/addons/account_voucher/wizard/account_statement_from_invoice.py b/addons/account_voucher/wizard/account_statement_from_invoice.py
index 3509ac846b5..e4d728c8867 100644
--- a/addons/account_voucher/wizard/account_statement_from_invoice.py
+++ b/addons/account_voucher/wizard/account_statement_from_invoice.py
@@ -75,7 +75,7 @@ class account_statement_from_invoice_lines(osv.osv_memory):
statement.currency.id, amount, context=ctx)
context.update({'move_line_ids': [line.id]})
- result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), voucher_currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), date=line_date, context=context)
+ result = voucher_obj.onchange_partner_id(cr, uid, [], partner_id=line.partner_id.id, journal_id=statement.journal_id.id, price=abs(amount), currency_id= statement.currency.id, ttype=(amount < 0 and 'payment' or 'receipt'), date=line_date, context=context)
voucher_res = { 'type':(amount < 0 and 'payment' or 'receipt'),
'name': line.name,
'partner_id': line.partner_id.id,
diff --git a/addons/analytic/__openerp__.py b/addons/analytic/__openerp__.py
index 30712a78167..65f6588a1e3 100644
--- a/addons/analytic/__openerp__.py
+++ b/addons/analytic/__openerp__.py
@@ -24,7 +24,7 @@
"version": "1.1",
"author" : "OpenERP SA",
"website" : "http://www.openerp.com",
- "category" : "Finance",
+ "category" : "Hidden",
"depends" : ["base", "decimal_precision"],
"description": """
Module for defining analytic accounting object.
diff --git a/addons/analytic_journal_billing_rate/__openerp__.py b/addons/analytic_journal_billing_rate/__openerp__.py
index a9241213251..059e85d9367 100644
--- a/addons/analytic_journal_billing_rate/__openerp__.py
+++ b/addons/analytic_journal_billing_rate/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Analytic Journal Billing Rate, Define the default invoicing rate for a specific journal',
'version': '1.0',
- 'category': 'Human Resources',
+ 'category': 'Hidden',
'description': """
This module allows you to define what is the default invoicing rate for a specific journal on a given account.
==============================================================================================================
diff --git a/addons/analytic_user_function/__openerp__.py b/addons/analytic_user_function/__openerp__.py
index 9716495aabc..bb3ca084be7 100644
--- a/addons/analytic_user_function/__openerp__.py
+++ b/addons/analytic_user_function/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Human Resources',
'version': '1.0',
- 'category': 'Generic Modules/Others',
+ 'category': 'Hidden',
'description': """
This module allows you to define what is the default function of a specific user on a given account.
====================================================================================================
diff --git a/addons/anonymization/__openerp__.py b/addons/anonymization/__openerp__.py
index 842b774eb9c..41e906c078a 100644
--- a/addons/anonymization/__openerp__.py
+++ b/addons/anonymization/__openerp__.py
@@ -24,7 +24,7 @@
{
'name': 'Database Anonymization',
'version': '1.0',
- 'category': 'Tools',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """
This module allows you to anonymize a database.
diff --git a/addons/anonymization/anonymization.py b/addons/anonymization/anonymization.py
index 5d1f8a76e1c..4af387a5c02 100644
--- a/addons/anonymization/anonymization.py
+++ b/addons/anonymization/anonymization.py
@@ -239,7 +239,7 @@ class ir_model_fields_anonymize_wizard(osv.osv_memory):
return res
_columns = {
- 'name': fields.char(size='64', string='File Name'),
+ 'name': fields.char(size=64, string='File Name'),
'summary': fields.function(_get_summary, type='text', string='Summary'),
'file_export': fields.binary(string='Export'),
'file_import': fields.binary(string='Import'),
diff --git a/addons/association/__init__.py b/addons/association/__init__.py
index 5b34f17fec9..4716d0d109b 100644
--- a/addons/association/__init__.py
+++ b/addons/association/__init__.py
@@ -18,6 +18,5 @@
# along with this program. If not, see .
#
##############################################################################
-import profile_association
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/association/__openerp__.py b/addons/association/__openerp__.py
index 51d44bf681d..0251eb68d02 100644
--- a/addons/association/__openerp__.py
+++ b/addons/association/__openerp__.py
@@ -23,8 +23,7 @@
{
'name': 'Association profile',
'version': '0.1',
- 'category': 'General',
- 'category': 'Profile',
+ 'category': 'Vertical Applications',
'complexity': "normal",
'description': """
This module is to configure modules related to an association.
diff --git a/addons/association/profile_association.py b/addons/association/profile_association.py
deleted file mode 100644
index 0e66af14a1d..00000000000
--- a/addons/association/profile_association.py
+++ /dev/null
@@ -1,53 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from lxml import etree
-from osv import fields, osv
-
-class profile_association_config_install_modules_wizard(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- 'hr_expense':fields.boolean('Resources Management: Expenses Tracking', help="Tracks and manages employee expenses, and can "
- "automatically re-invoice clients if the expenses are "
- "project-related."),
- 'event_project':fields.boolean('Event Management: Events', help="Helps you to manage and organize your events."),
- 'project_gtd':fields.boolean('Getting Things Done',
- help="GTD is a methodology to efficiently organise yourself and your tasks. This module fully integrates GTD principle with OpenERP's project management."),
- 'wiki': fields.boolean('Wiki', help="Lets you create wiki pages and page groups in order "
- "to keep track of business knowledge and share it with "
- "and between your employees."),
- }
-
- # Will be removed when rd-v61-al-config-depends will be done
- def fields_view_get(self, cr, user, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- res = super(profile_association_config_install_modules_wizard, self).fields_view_get(cr, user, view_id, view_type, context, toolbar=toolbar, submenu=submenu)
- doc = etree.XML(res['arch'])
- for module in ['project_gtd','hr_expense']:
- count = 0
- for node in doc.xpath("//field[@name='%s']" % (module)):
- count = count + 1
- if count > 1:
- node.set('invisible', '1')
- res['arch'] = etree.tostring(doc)
- return res
-
-profile_association_config_install_modules_wizard()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/association/profile_association.xml b/addons/association/profile_association.xml
index 12222ecbd90..8ce97cb2e43 100644
--- a/addons/association/profile_association.xml
+++ b/addons/association/profile_association.xml
@@ -1,24 +1,6 @@
-
- Association Application Configuration
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Upload Your Company Logo
- ir.actions.act_window
- res.company
-
- form
- form
- {'res_id': user.company_id.id}
-
-
-
-
- done
-
diff --git a/addons/base_synchro/__openerp__.py b/addons/base_synchro/__openerp__.py
index a95dcff71da..fba793e0473 100644
--- a/addons/base_synchro/__openerp__.py
+++ b/addons/base_synchro/__openerp__.py
@@ -23,7 +23,7 @@
"name":"Server Object Synchronization",
"version":"0.1",
"author":"OpenERP SA",
- "category":"Tools",
+ "category":"Hidden",
"description": """
Synchronization with all objects.
=================================
diff --git a/addons/base_synchro/i18n/zh_TW.po b/addons/base_synchro/i18n/zh_TW.po
new file mode 100644
index 00000000000..a4fc9db7d81
--- /dev/null
+++ b/addons/base_synchro/i18n/zh_TW.po
@@ -0,0 +1,289 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-09-27 14:38+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
+
+#. module: base_synchro
+#: model:ir.actions.act_window,name:base_synchro.action_view_base_synchro
+msgid "Base Synchronization"
+msgstr "基礎同步化"
+
+#. module: base_synchro
+#: field:base.synchro.server,server_db:0
+msgid "Server Database"
+msgstr "伺服器資料庫"
+
+#. module: base_synchro
+#: view:base.synchro.server:0
+#: model:ir.model,name:base_synchro.model_base_synchro_server
+msgid "Synchronized server"
+msgstr "同步化伺服器"
+
+#. module: base_synchro
+#: field:base.synchro.obj.avoid,name:0
+msgid "Field Name"
+msgstr "欄位名稱"
+
+#. module: base_synchro
+#: field:base.synchro.obj,synchronize_date:0
+msgid "Latest Synchronization"
+msgstr "最新同步化"
+
+#. module: base_synchro
+#: field:base.synchro,user_id:0
+msgid "Send Result To"
+msgstr "將結果發送至"
+
+#. module: base_synchro
+#: model:ir.model,name:base_synchro.model_base_synchro_obj_avoid
+msgid "Fields to not synchronize"
+msgstr "不同步化之欄位"
+
+#. module: base_synchro
+#: view:base.synchro:0
+msgid "_Close"
+msgstr "關閉(_C)"
+
+#. module: base_synchro
+#: view:base.synchro:0
+msgid "Transfer Data To Server"
+msgstr "將資料轉至伺服器"
+
+#. module: base_synchro
+#: model:ir.model,name:base_synchro.model_base_synchro_obj
+msgid "Register Class"
+msgstr ""
+
+#. module: base_synchro
+#: view:base.synchro.obj:0
+#: model:ir.actions.act_window,name:base_synchro.action_transfer_tree
+#: model:ir.ui.menu,name:base_synchro.transfer_menu_id
+msgid "Synchronized objects"
+msgstr "同步化物件"
+
+#. module: base_synchro
+#: field:base.synchro.server,obj_ids:0
+msgid "Models"
+msgstr "模型"
+
+#. module: base_synchro
+#: field:base.synchro.obj.avoid,obj_id:0
+#: view:base.synchro.obj.line:0
+#: field:base.synchro.obj.line,obj_id:0
+msgid "Object"
+msgstr "物件"
+
+#. module: base_synchro
+#: field:base.synchro.server,login:0
+msgid "User Name"
+msgstr ""
+
+#. module: base_synchro
+#: view:base.synchro.obj:0
+#: view:base.synchro.obj.line:0
+msgid "Group By"
+msgstr ""
+
+#. module: base_synchro
+#: selection:base.synchro.obj,action:0
+msgid "Upload"
+msgstr "上載"
+
+#. module: base_synchro
+#: view:base.synchro.obj:0
+msgid "Latest synchronization"
+msgstr "最新同步化"
+
+#. module: base_synchro
+#: model:ir.module.module,description:base_synchro.module_meta_information
+msgid "Synchronization with all objects."
+msgstr "與所有物件同步化。"
+
+#. module: base_synchro
+#: view:base.synchro.obj.line:0
+#: field:base.synchro.obj.line,name:0
+msgid "Date"
+msgstr "日期"
+
+#. module: base_synchro
+#: field:base.synchro.server,password:0
+msgid "Password"
+msgstr "密碼"
+
+#. module: base_synchro
+#: field:base.synchro.obj,avoid_ids:0
+msgid "Fields Not Sync."
+msgstr "無同步化欄位"
+
+#. module: base_synchro
+#: selection:base.synchro.obj,action:0
+msgid "Both"
+msgstr "兩者"
+
+#. module: base_synchro
+#: field:base.synchro.obj,name:0
+msgid "Name"
+msgstr "名稱"
+
+#. module: base_synchro
+#: view:base.synchro.obj:0
+msgid "Fields"
+msgstr "欄位"
+
+#. module: base_synchro
+#: view:base.synchro.obj.line:0
+msgid "Transfered Ids Details"
+msgstr "已傳送 Ids 詳情"
+
+#. module: base_synchro
+#: field:base.synchro.obj,action:0
+msgid "Synchronisation direction"
+msgstr "同步化方向"
+
+#. module: base_synchro
+#: field:base.synchro.obj,server_id:0
+msgid "Server"
+msgstr "伺服器"
+
+#. module: base_synchro
+#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_obj_line_tree
+#: model:ir.model,name:base_synchro.model_base_synchro_obj_line
+#: model:ir.ui.menu,name:base_synchro.menu_action_base_synchro_obj_line_tree
+msgid "Synchronized instances"
+msgstr ""
+
+#. module: base_synchro
+#: field:base.synchro.obj,active:0
+msgid "Active"
+msgstr "作用中"
+
+#. module: base_synchro
+#: view:base.synchro.obj:0
+#: field:base.synchro.obj,model_id:0
+msgid "Object to synchronize"
+msgstr "要同步化物件"
+
+#. module: base_synchro
+#: model:ir.module.module,shortdesc:base_synchro.module_meta_information
+msgid "Base Synchro"
+msgstr ""
+
+#. module: base_synchro
+#: model:ir.actions.act_window,name:base_synchro.action_base_synchro_server_tree
+#: model:ir.ui.menu,name:base_synchro.synchro_server_tree_menu_id
+msgid "Servers to be synchronized"
+msgstr "要同步化伺服器"
+
+#. module: base_synchro
+#: view:base.synchro.obj:0
+msgid "Transfer Details"
+msgstr "傳送詳情"
+
+#. module: base_synchro
+#: field:base.synchro.obj.line,remote_id:0
+msgid "Remote Id"
+msgstr "遠端 Id"
+
+#. module: base_synchro
+#: field:base.synchro.obj,line_id:0
+msgid "Ids Affected"
+msgstr "受影響 Ids"
+
+#. module: base_synchro
+#: model:ir.ui.menu,name:base_synchro.next_id_63
+msgid "History"
+msgstr "歷史紀錄"
+
+#. module: base_synchro
+#: model:ir.ui.menu,name:base_synchro.next_id_62
+#: model:ir.ui.menu,name:base_synchro.synch_config
+msgid "Synchronization"
+msgstr "同步化"
+
+#. module: base_synchro
+#: field:base.synchro.obj,domain:0
+msgid "Domain"
+msgstr "領域"
+
+#. module: base_synchro
+#: view:base.synchro:0
+msgid "_Synchronize"
+msgstr "同步化(_S)"
+
+#. module: base_synchro
+#: view:base.synchro:0
+msgid "OK"
+msgstr ""
+
+#. module: base_synchro
+#: field:base.synchro.server,name:0
+msgid "Server name"
+msgstr "伺服器名稱"
+
+#. module: base_synchro
+#: field:base.synchro.obj,sequence:0
+msgid "Sequence"
+msgstr "次序"
+
+#. module: base_synchro
+#: view:base.synchro:0
+msgid ""
+"The synchronisation has been started.You will receive a request when it's "
+"done."
+msgstr "同步化已開始。完成時會收到要求。"
+
+#. module: base_synchro
+#: field:base.synchro.server,server_port:0
+msgid "Server Port"
+msgstr "伺服器連接埠"
+
+#. module: base_synchro
+#: model:ir.ui.menu,name:base_synchro.menu_action_view_base_synchro
+msgid "Synchronize objects"
+msgstr "同步化物件"
+
+#. module: base_synchro
+#: view:base.synchro:0
+msgid "Synchronization Complited!"
+msgstr "同步化完成!"
+
+#. module: base_synchro
+#: model:ir.model,name:base_synchro.model_base_synchro
+msgid "base.synchro"
+msgstr ""
+
+#. module: base_synchro
+#: field:base.synchro.obj.line,local_id:0
+msgid "Local Id"
+msgstr "本機 Id"
+
+#. module: base_synchro
+#: model:ir.actions.act_window,name:base_synchro.actions_regclass_tree
+#: model:ir.actions.act_window,name:base_synchro.actions_transfer_line_form
+msgid "Filters"
+msgstr ""
+
+#. module: base_synchro
+#: selection:base.synchro.obj,action:0
+msgid "Download"
+msgstr "下載"
+
+#. module: base_synchro
+#: field:base.synchro,server_url:0
+#: field:base.synchro.server,server_url:0
+msgid "Server URL"
+msgstr "伺服器 URL"
diff --git a/addons/base_tools/__openerp__.py b/addons/base_tools/__openerp__.py
index aade7664041..ec32805533e 100644
--- a/addons/base_tools/__openerp__.py
+++ b/addons/base_tools/__openerp__.py
@@ -4,7 +4,7 @@
"author": "OpenERP SA",
"version": "1.0",
"depends": ["base"],
- "category" : "Tools",
+ "category" : "Hidden",
'complexity': "easy",
'description': """
Common base for tools modules.
diff --git a/addons/base_tools/i18n/es_CL.po b/addons/base_tools/i18n/es_CL.po
new file mode 100644
index 00000000000..47ebd7bd625
--- /dev/null
+++ b/addons/base_tools/i18n/es_CL.po
@@ -0,0 +1,32 @@
+# Spanish (Chile) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-10-03 16:53+0000\n"
+"Last-Translator: David Acevedo Toledo \n"
+"Language-Team: Spanish (Chile) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-10-04 05:02+0000\n"
+"X-Generator: Launchpad (build 14071)\n"
+
+#. module: base_tools
+#: model:ir.module.module,shortdesc:base_tools.module_meta_information
+msgid "Common base for tools modules"
+msgstr "Base común para módulos de herramientas"
+
+#. module: base_tools
+#: model:ir.module.module,description:base_tools.module_meta_information
+msgid ""
+"\n"
+" "
+msgstr ""
+"\n"
+" "
diff --git a/addons/base_tools/i18n/sr@latin.po b/addons/base_tools/i18n/sr@latin.po
index ef66529a384..e62a52c1246 100644
--- a/addons/base_tools/i18n/sr@latin.po
+++ b/addons/base_tools/i18n/sr@latin.po
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2011-04-05 04:40+0000\n"
-"Last-Translator: kaneolopa \n"
+"PO-Revision-Date: 2011-10-06 13:41+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian Latin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:58+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: base_tools
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
msgid "Common base for tools modules"
-msgstr "Česti moduli za osnovne alate"
+msgstr "Uobičajena osnova za alatne module"
#. module: base_tools
#: model:ir.module.module,description:base_tools.module_meta_information
@@ -28,5 +28,5 @@ msgid ""
"\n"
" "
msgstr ""
-"modul: osnovni_alati\n"
+"modul: base_tools\n"
" "
diff --git a/addons/base_tools/i18n/zh_TW.po b/addons/base_tools/i18n/zh_TW.po
new file mode 100644
index 00000000000..b38f10132cf
--- /dev/null
+++ b/addons/base_tools/i18n/zh_TW.po
@@ -0,0 +1,32 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-09-27 14:45+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
+
+#. module: base_tools
+#: model:ir.module.module,shortdesc:base_tools.module_meta_information
+msgid "Common base for tools modules"
+msgstr "工具模組共同基礎"
+
+#. module: base_tools
+#: model:ir.module.module,description:base_tools.module_meta_information
+msgid ""
+"\n"
+" "
+msgstr ""
+"\n"
+" "
diff --git a/addons/base_vat/__openerp__.py b/addons/base_vat/__openerp__.py
index 29f402aa286..5f7c1d2d86d 100644
--- a/addons/base_vat/__openerp__.py
+++ b/addons/base_vat/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'VAT Number Validation',
'version': '1.0',
- 'category': 'Finance',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """
VAT validation for Partners' VAT numbers
diff --git a/addons/base_vat/i18n/sr@latin.po b/addons/base_vat/i18n/sr@latin.po
index eabab9985e9..0843a6eb94d 100644
--- a/addons/base_vat/i18n/sr@latin.po
+++ b/addons/base_vat/i18n/sr@latin.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2010-12-23 15:36+0000\n"
-"Last-Translator: Olivier Dony (OpenERP) \n"
+"PO-Revision-Date: 2011-10-06 13:45+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian latin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:10+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: base_vat
#: code:addons/base_vat/base_vat.py:87
@@ -23,7 +23,7 @@ msgstr ""
msgid ""
"The Vat does not seems to be correct. You should have entered something like "
"this %s"
-msgstr "PDV izgleda da nije korektan. Trebas upisati nesto kao %s"
+msgstr "PDV izgleda da nije korektan. Trebalo je uneti nešto kao %s"
#. module: base_vat
#: model:ir.module.module,description:base_vat.module_meta_information
@@ -38,22 +38,28 @@ msgid ""
"countries.\n"
" "
msgstr ""
+"\n"
+" Omogući PDV brojeve za partnera. Proverite validnost tog PDV broja.\n"
+"\n"
+" Ovaj modul prati metode opisane na http://sima-pc.com/nif.php za\n"
+" proveru validnosti PDV broja pripisane partnerima u evropskim zemljama.\n"
+" "
#. module: base_vat
#: model:ir.module.module,shortdesc:base_vat.module_meta_information
msgid "Base VAT - To check VAT number validity"
-msgstr "Osnovni PDV - Za Proveru validnosti PDV cifre"
+msgstr "Osnovni PDV - Za Proveru validnosti PDV broja"
#. module: base_vat
#: constraint:res.partner:0
msgid "Error ! You can not create recursive associated members."
-msgstr ""
+msgstr "Greška ! Ne možete da pravite rekurzivne povezane članove."
#. module: base_vat
#: code:addons/base_vat/base_vat.py:88
#, python-format
msgid "The VAT is invalid, It should begin with the country code"
-msgstr "PDV je neispravan, trebalo bi da zapocne sa kodom zemlje"
+msgstr "PDV je neispravan, trebalo bi da počinje kodom zemlje"
#. module: base_vat
#: help:res.partner,vat_subjected:0
@@ -61,7 +67,7 @@ msgid ""
"Check this box if the partner is subjected to the VAT. It will be used for "
"the VAT legal statement."
msgstr ""
-"Cekiraj ovu kucicu ukoliko je PDV naslovljen na partnera. On ce koristiti "
+"Označi ovu kućicu ukoliko je PDV naslovljen na partnera. Biće korišćen za "
"zakonsku PDV izjavu."
#. module: base_vat
diff --git a/addons/board/__openerp__.py b/addons/board/__openerp__.py
index f4de253c4f5..7f37f125903 100644
--- a/addons/board/__openerp__.py
+++ b/addons/board/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Dashboard Creator',
'version': '1.0',
- 'category': 'Tools',
+ 'category': 'Hidden',
'complexity': "normal",
'description': """
Lets the user create a custom dashboard.
diff --git a/addons/board/board_administration_view.xml b/addons/board/board_administration_view.xml
index 29146ad53ad..9e22dbd3fb6 100644
--- a/addons/board/board_administration_view.xml
+++ b/addons/board/board_administration_view.xml
@@ -139,13 +139,11 @@
-
-
+
+
-
-
-
+
diff --git a/addons/board/i18n/es_CL.po b/addons/board/i18n/es_CL.po
new file mode 100644
index 00000000000..1a603deddb1
--- /dev/null
+++ b/addons/board/i18n/es_CL.po
@@ -0,0 +1,395 @@
+# Spanish (Chile) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:14+0000\n"
+"PO-Revision-Date: 2011-10-03 16:58+0000\n"
+"Last-Translator: David Acevedo Toledo \n"
+"Language-Team: Spanish (Chile) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-10-04 05:01+0000\n"
+"X-Generator: Launchpad (build 14071)\n"
+
+#. module: board
+#: view:res.log.report:0
+msgid " Year "
+msgstr " Año "
+
+#. module: board
+#: model:ir.model,name:board.model_board_menu_create
+msgid "Menu Create"
+msgstr "Crear menú"
+
+#. module: board
+#: view:board.note:0
+#: field:board.note.type,name:0
+#: model:ir.model,name:board.model_board_note_type
+msgid "Note Type"
+msgstr "Tipo de nota"
+
+#. module: board
+#: view:board.note:0
+#: field:board.note,user_id:0
+msgid "Author"
+msgstr "Autor"
+
+#. module: board
+#: model:ir.module.module,shortdesc:board.module_meta_information
+msgid "Dashboard main module"
+msgstr "Módulo principal de tableros"
+
+#. module: board
+#: view:res.users:0
+msgid "Latest Connections"
+msgstr "Últimas conexiones"
+
+#. module: board
+#: code:addons/board/wizard/board_menu_create.py:45
+#, python-format
+msgid "User Error!"
+msgstr "¡Error de usuario!"
+
+#. module: board
+#: view:board.board:0
+#: model:ir.actions.act_window,name:board.open_board_administration_form
+#: model:ir.ui.menu,name:board.menu_board_admin
+msgid "Administration Dashboard"
+msgstr "Tablero de Administración"
+
+#. module: board
+#: view:board.note:0
+#: field:board.note,note:0
+#: model:ir.model,name:board.model_board_note
+msgid "Note"
+msgstr "Nota"
+
+#. module: board
+#: view:board.note:0
+#: view:res.log.report:0
+msgid "Group By..."
+msgstr "Agrupar por..."
+
+#. module: board
+#: model:ir.model,name:board.model_board_board
+msgid "Board"
+msgstr "Tablero"
+
+#. module: board
+#: view:board.board:0
+#: model:ir.actions.act_window,name:board.board_weekly_res_log_report_action
+#: view:res.log.report:0
+msgid "Weekly Global Activity"
+msgstr "Actividad global semanal"
+
+#. module: board
+#: field:board.board.line,name:0
+msgid "Title"
+msgstr "Título"
+
+#. module: board
+#: field:res.log.report,nbr:0
+msgid "# of Entries"
+msgstr "Nº de entradas"
+
+#. module: board
+#: view:res.log.report:0
+#: field:res.log.report,month:0
+msgid "Month"
+msgstr "Mes"
+
+#. module: board
+#: model:ir.actions.act_window,name:board.dashboard_open
+msgid "Open Dashboard"
+msgstr "Abrir tablero"
+
+#. module: board
+#: view:board.board:0
+#: model:ir.actions.act_window,name:board.board_monthly_res_log_report_action
+#: view:res.log.report:0
+msgid "Monthly Activity per Document"
+msgstr "Actividad mensual por documento"
+
+#. module: board
+#: view:res.log.report:0
+msgid "Log Analysis"
+msgstr "Análisis de registro"
+
+#. module: board
+#: model:ir.actions.act_window,name:board.action_view_board_list_form
+#: model:ir.ui.menu,name:board.menu_view_board_form
+msgid "Dashboard Definition"
+msgstr "Definición de tablero"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "March"
+msgstr "Marzo"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "August"
+msgstr "Agosto"
+
+#. module: board
+#: view:board.board:0
+#: model:ir.actions.act_window,name:board.action_user_connection_tree
+msgid "User Connections"
+msgstr "Conexiones de usuario"
+
+#. module: board
+#: field:res.log.report,creation_date:0
+msgid "Creation Date"
+msgstr "Fecha de Creación"
+
+#. module: board
+#: model:ir.actions.act_window,name:board.action_view_board_note_form
+#: model:ir.ui.menu,name:board.menu_view_board_note_form
+msgid "Publish a note"
+msgstr "Publicar una nota"
+
+#. module: board
+#: view:board.menu.create:0
+msgid "Menu Information"
+msgstr "Información del menú"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "June"
+msgstr "Junio"
+
+#. module: board
+#: field:board.note,type:0
+msgid "Note type"
+msgstr "Tipo de nota"
+
+#. module: board
+#: field:board.board,line_ids:0
+msgid "Action Views"
+msgstr "Vistas de acciones"
+
+#. module: board
+#: model:ir.model,name:board.model_res_log_report
+msgid "Log Report"
+msgstr "Informe de registro"
+
+#. module: board
+#: view:board.note:0
+#: field:board.note,date:0
+msgid "Date"
+msgstr "Fecha"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "July"
+msgstr "Julio"
+
+#. module: board
+#: view:res.log.report:0
+msgid "Extended Filters..."
+msgstr "Filtros extendidos..."
+
+#. module: board
+#: view:res.log.report:0
+#: field:res.log.report,day:0
+msgid "Day"
+msgstr "Dia"
+
+#. module: board
+#: view:board.menu.create:0
+msgid "Create Menu For Dashboard"
+msgstr "Crear menú para tablero"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "February"
+msgstr "Febrero"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "October"
+msgstr "Octubre"
+
+#. module: board
+#: model:ir.model,name:board.model_board_board_line
+msgid "Board Line"
+msgstr "Línea tablero"
+
+#. module: board
+#: field:board.menu.create,menu_parent_id:0
+msgid "Parent Menu"
+msgstr "Menú padre"
+
+#. module: board
+#: view:res.log.report:0
+msgid " Month-1 "
+msgstr " Mes-1 "
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "January"
+msgstr "Enero"
+
+#. module: board
+#: view:board.note:0
+msgid "Notes"
+msgstr "Notas"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "November"
+msgstr "Noviembre"
+
+#. module: board
+#: help:board.board.line,sequence:0
+msgid ""
+"Gives the sequence order when displaying a list of "
+"board lines."
+msgstr ""
+"Indica el orden de secuencia cuando se muestra una lista de líneas de "
+"tablero."
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "April"
+msgstr "Abril"
+
+#. module: board
+#: view:board.board:0
+#: field:board.board,name:0
+#: field:board.board.line,board_id:0
+#: model:ir.ui.menu,name:board.admin_menu_dasboard
+#: model:ir.ui.menu,name:board.menu_dasboard
+msgid "Dashboard"
+msgstr "Tablero"
+
+#. module: board
+#: model:ir.module.module,description:board.module_meta_information
+msgid "Base module for all dashboards."
+msgstr "Módulo base para todos los tableros."
+
+#. module: board
+#: field:board.board.line,action_id:0
+msgid "Action"
+msgstr "Acción."
+
+#. module: board
+#: field:board.board.line,position:0
+msgid "Position"
+msgstr "Posición"
+
+#. module: board
+#: view:res.log.report:0
+msgid "Model"
+msgstr "Modelo"
+
+#. module: board
+#: field:board.menu.create,menu_name:0
+msgid "Menu Name"
+msgstr "Nombre del menú"
+
+#. module: board
+#: view:board.board:0
+#: model:ir.actions.act_window,name:board.action_latest_activities_tree
+msgid "Latest Activities"
+msgstr "Últimas actividades"
+
+#. module: board
+#: selection:board.board.line,position:0
+msgid "Left"
+msgstr "Izquieda"
+
+#. module: board
+#: field:board.board,view_id:0
+msgid "Board View"
+msgstr "Vista de tablero"
+
+#. module: board
+#: selection:board.board.line,position:0
+msgid "Right"
+msgstr "Derecha"
+
+#. module: board
+#: field:board.board.line,width:0
+msgid "Width"
+msgstr "Ancho"
+
+#. module: board
+#: view:res.log.report:0
+msgid " Month "
+msgstr " Mes "
+
+#. module: board
+#: field:board.board.line,sequence:0
+msgid "Sequence"
+msgstr "Secuencia"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "September"
+msgstr "Septiembre"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "December"
+msgstr "Diciembre"
+
+#. module: board
+#: view:board.board:0
+#: view:board.menu.create:0
+msgid "Create Menu"
+msgstr "Crear Menú"
+
+#. module: board
+#: field:board.board.line,height:0
+msgid "Height"
+msgstr "Alto"
+
+#. module: board
+#: model:ir.actions.act_window,name:board.action_board_menu_create
+msgid "Create Board Menu"
+msgstr "Crear menú del tablero"
+
+#. module: board
+#: selection:res.log.report,month:0
+msgid "May"
+msgstr "Mayo"
+
+#. module: board
+#: field:res.log.report,res_model:0
+msgid "Object"
+msgstr "Objeto"
+
+#. module: board
+#: view:res.log.report:0
+#: field:res.log.report,name:0
+msgid "Year"
+msgstr "Año"
+
+#. module: board
+#: view:board.menu.create:0
+msgid "Cancel"
+msgstr "Cancelar"
+
+#. module: board
+#: view:board.board:0
+msgid "Dashboard View"
+msgstr "Vista de tablero"
+
+#. module: board
+#: code:addons/board/wizard/board_menu_create.py:46
+#, python-format
+msgid "Please Insert Dashboard View(s) !"
+msgstr "¡Por favor inserte alguna vista de tablero!"
+
+#. module: board
+#: view:board.note:0
+#: field:board.note,name:0
+msgid "Subject"
+msgstr "Asunto"
diff --git a/addons/caldav/__openerp__.py b/addons/caldav/__openerp__.py
index edf852e4d5e..53bee3d0e94 100644
--- a/addons/caldav/__openerp__.py
+++ b/addons/caldav/__openerp__.py
@@ -49,7 +49,7 @@ To access OpenERP Calendar using WebCal to remote site use the URL like:
DATABASE_NAME: Name of database on which OpenERP Calendar is created
CALENDAR_NAME: Name of calendar to access
""",
- 'category': 'Tools',
+ 'category': 'Hidden',
"author" : "OpenERP SA",
'website': 'http://www.openerp.com',
"init_xml" : ["caldav_data.xml"],
diff --git a/addons/caldav/doc/Path discovery.rst b/addons/caldav/doc/path_discovery.rst
similarity index 100%
rename from addons/caldav/doc/Path discovery.rst
rename to addons/caldav/doc/path_discovery.rst
diff --git a/addons/claim_from_delivery/__openerp__.py b/addons/claim_from_delivery/__openerp__.py
index 2e694008226..c3eec37a229 100644
--- a/addons/claim_from_delivery/__openerp__.py
+++ b/addons/claim_from_delivery/__openerp__.py
@@ -21,7 +21,7 @@
"name" : "Claim from Delivery",
"version" : "1.0",
"author" : "OpenERP SA",
- "category" : "Warehouse",
+ "category" : "Hidden",
"depends" : ["base", "crm_claim", "stock"],
"init_xml" : [],
"demo_xml" : [],
diff --git a/addons/claim_from_delivery/i18n/sr@latin.po b/addons/claim_from_delivery/i18n/sr@latin.po
index c5aa1f31a6d..26c657e2a0e 100644
--- a/addons/claim_from_delivery/i18n/sr@latin.po
+++ b/addons/claim_from_delivery/i18n/sr@latin.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
-"PO-Revision-Date: 2010-12-24 13:20+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2011-10-06 14:05+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian latin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:48+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: claim_from_delivery
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
@@ -25,9 +25,9 @@ msgstr "Zahtev"
#. module: claim_from_delivery
#: model:ir.module.module,description:claim_from_delivery.module_meta_information
msgid "Create Claim from delivery order:\n"
-msgstr "Kreiraj Zahtev iz Naloga Isporuke\n"
+msgstr "Napravi zahtev iz naloga isporuke\n"
#. module: claim_from_delivery
#: model:ir.module.module,shortdesc:claim_from_delivery.module_meta_information
msgid "Claim from delivery"
-msgstr "Zatraži od isporuke"
+msgstr "Zahtev od isporuke"
diff --git a/addons/crm/__init__.py b/addons/crm/__init__.py
index 6e57fa5e8c3..214c5c3d450 100644
--- a/addons/crm/__init__.py
+++ b/addons/crm/__init__.py
@@ -25,7 +25,6 @@ import crm_segmentation
import crm_meeting
import crm_lead
import crm_phonecall
-import crm_installer
import report
import wizard
import res_partner
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index c3f28c6a66f..a6f5f1630f7 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Customer & Supplier Relationship Management',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Customer Relationship Management',
'complexity': "easy",
'description': """
The generic OpenERP Customer Relationship Management.
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index 512192ddce7..bf30cac58fb 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -71,6 +71,7 @@ class crm_case_stage(osv.osv):
'on_change': fields.boolean('Change Probability Automatically', help="Setting this stage will change the probability automatically on the opportunity."),
'requirements': fields.text('Requirements'),
'section_ids':fields.many2many('crm.case.section', 'section_stage_rel', 'stage_id', 'section_id', 'Sections'),
+ 'case_default': fields.boolean('Common to All Teams', help="If you check this field, this stage will be proposed by default on each sales team. It will not assign this stage to existing teams."),
}
_defaults = {
@@ -106,10 +107,14 @@ class crm_case_section(osv.osv):
'working_hours': fields.float('Working Hours', digits=(16,2 )),
'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'),
}
+ def _get_stage_common(self, cr, uid, context):
+ ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default','=',1)], context=context)
+ return ids
_defaults = {
'active': lambda *a: 1,
'allow_unlink': lambda *a: 1,
+ 'stage_ids': _get_stage_common
}
_sql_constraints = [
@@ -381,7 +386,7 @@ class crm_case(crm_base):
default.update({ 'date_closed': False, })
if self._columns.get('date_open'):
default.update({ 'date_open': False })
- return super(osv.osv, self).copy(cr, uid, id, default, context=context)
+ return super(crm_case, self).copy(cr, uid, id, default, context=context)
def case_open(self, cr, uid, ids, *args):
diff --git a/addons/crm/crm_installer.py b/addons/crm/crm_installer.py
deleted file mode 100644
index fc3816c80fa..00000000000
--- a/addons/crm/crm_installer.py
+++ /dev/null
@@ -1,59 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from lxml import etree
-from osv import fields, osv
-
-class crm_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- 'name': fields.char('Name', size=64),
- 'crm_helpdesk': fields.boolean('Helpdesk', help="Manages a Helpdesk service."),
- 'crm_fundraising': fields.boolean('Fundraising', help="This may help associations in their fundraising process and tracking."),
- 'crm_claim': fields.boolean('Claims', help="Manages the suppliers and customers claims, including your corrective or preventive actions."),
- 'import_sugarcrm': fields.boolean('Import Data from SugarCRM', help="Help you to import and update data from SugarCRM to OpenERP"),
- 'crm_caldav': fields.boolean('Calendar Synchronizing', help="Helps you to synchronize the meetings with other calendar clients and mobiles."),
- 'sale_crm': fields.boolean('Opportunity to Quotation', help="Create a Quotation from an Opportunity."),
- 'fetchmail': fields.boolean('Fetch Emails', help="Allows you to receive E-Mails from POP/IMAP server."),
- 'thunderbird': fields.boolean('Thunderbird Plug-In', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
- 'outlook': fields.boolean('MS-Outlook Plug-In', help="Allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one."),
- 'wiki_sale_faq': fields.boolean('Sale FAQ', help="Helps you manage wiki pages for Frequently Asked Questions on Sales Application."),
- 'import_google': fields.boolean('Google Import', help="Imports contacts and events from your google account."),
- }
-
- def fields_view_get(self, cr, uid, view_id=None, view_type='form', context=None, toolbar=False, submenu=False):
- res = super(crm_installer, self).fields_view_get(cr, uid, view_id=view_id, view_type=view_type, context=context, toolbar=toolbar,submenu=False)
- #Checking sale module is installed or not
- cr.execute("SELECT * from ir_module_module where state='installed' and name = 'sale'")
- count = cr.fetchall()
- if count:
- doc = etree.XML(res['arch'])
- nodes = doc.xpath("//field[@name='sale_crm']")
- for node in nodes:
- node.set('invisible', '0')
- node.set('modifiers', '{}')
- res['arch'] = etree.tostring(doc)
- return res
-
-crm_installer()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm/crm_installer_view.xml b/addons/crm/crm_installer_view.xml
index 782083e4669..ecaec91cef6 100644
--- a/addons/crm/crm_installer_view.xml
+++ b/addons/crm/crm_installer_view.xml
@@ -1,29 +1,5 @@
-
- crm.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Define Sales Team
@@ -48,6 +24,7 @@
crm.case.stageformtree,form
+ {'default_case_default': 1}Stages will allow salesmen to easily track how a specific opportunity is positioned in the sales cycle. In order to efficiently manage your sales pipeline, it's important to define conditions to go to the next step. Example: to set an opportunity as 'Qualified', you must set the "Expected Revenue" and the "Expected Closing Date." You should also have a look at the tooltip of the field "Change Probability Automatically".
@@ -56,7 +33,7 @@
- 10
+ 9
diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml
index 0c7215c09eb..aaa00307bfe 100644
--- a/addons/crm/crm_lead_data.xml
+++ b/addons/crm/crm_lead_data.xml
@@ -5,31 +5,37 @@
Lost
+ New
+ Qualification
+ Proposition
+ Negotiation
+ Won
+
diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml
index 0d13911a5fe..9b0581844a5 100644
--- a/addons/crm/crm_lead_menu.xml
+++ b/addons/crm/crm_lead_menu.xml
@@ -9,7 +9,7 @@
['|', ('type','=','lead'), ('type','=',False)]
- {'search_default_current':1, 'default_type': 'lead', 'search_default_section_id': section_id, 'stage_type': 'lead'}
+ {'search_default_new':1, 'default_type': 'lead', 'search_default_section_id': section_id, 'stage_type': 'lead'}Leads allow you to manage and keep track of all initial contacts with a prospect or partner showing interest in your products or services. A lead is usually the first step in your sales cycle. Once qualified, a lead may be converted into a business opportunity, while creating the related partner for further detailed tracking of any linked activities. You can import a database of prospects, keep track of your business cards or integrate your website's contact form with the OpenERP Leads. Leads can be connected to the email gateway: new emails may create leads, each of them automatically gets the history of the conversation with the prospect.
@@ -62,7 +62,7 @@
crm.leadtree,form,graph,calendar,kanban[('type','=','opportunity')]
- {'search_default_user_id':uid,'search_default_current':1, 'search_default_section_id':section_id, 'stage_type': 'opportunity', 'default_type': 'opportunity'}
+ {'search_default_user_id':uid,'search_default_new':1, 'search_default_open':1, 'search_default_section_id':section_id, 'stage_type': 'opportunity', 'default_type': 'opportunity'}With opportunities you can manage and keep track of your sales pipeline by creating specific customer- or prospect-related sales documents to follow up potential sales. Information such as expected revenue, opportunity stage, expected closing date, communication history and much more can be stored. Opportunities can be connected to the email gateway: new emails may create opportunities, each of them automatically gets the history of the conversation with the customer.
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index d631e371948..42587eea2b0 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -302,7 +302,7 @@
-
+
@@ -372,13 +372,15 @@
@@ -675,13 +677,15 @@
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index c7038958126..fc01cfd5a05 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -64,11 +64,11 @@
-
+
-
+
@@ -154,12 +154,12 @@
-
-
-
-
-
+
+
+
+
+
@@ -230,7 +230,7 @@
-
+
@@ -382,7 +382,6 @@
@@ -396,7 +395,7 @@
-
+
diff --git a/addons/crm/i18n/fr.po b/addons/crm/i18n/fr.po
index ff8a76ddbd7..d1c4f486a64 100644
--- a/addons/crm/i18n/fr.po
+++ b/addons/crm/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:15+0000\n"
-"PO-Revision-Date: 2011-01-18 16:45+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2011-09-26 12:10+0000\n"
+"Last-Translator: lholivier \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-09-05 05:06+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-27 04:47+0000\n"
+"X-Generator: Launchpad (build 14028)\n"
#. module: crm
#: view:crm.lead.report:0
@@ -2512,7 +2512,7 @@ msgstr "L'étape de l'opportunité \"%s\" a été changé à \"%s\"."
#: code:addons/crm/crm_lead.py:282
#, python-format
msgid "Changed Stage to: %s"
-msgstr ""
+msgstr "Etape passée à : %s"
#. module: crm
#: selection:crm.segmentation.line,operator:0
diff --git a/addons/crm/i18n/zh_TW.po b/addons/crm/i18n/zh_TW.po
index 896a92d76a0..cb7df534f37 100644
--- a/addons/crm/i18n/zh_TW.po
+++ b/addons/crm/i18n/zh_TW.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-27 05:08+0000\n"
+"PO-Revision-Date: 2011-09-27 07:26+0000\n"
"Last-Translator: Walter Cheuk \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-09-05 05:08+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:19+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
#. module: crm
#: view:crm.lead.report:0
@@ -78,7 +78,7 @@ msgstr "今日"
#. module: crm
#: view:crm.merge.opportunity:0
msgid "Select Opportunities"
-msgstr "選取機會"
+msgstr "選擇機會"
#. module: crm
#: view:crm.meeting:0
@@ -184,7 +184,7 @@ msgstr "搜尋機會"
#, python-format
msgid ""
"Opportunity must have Partner assigned before merging with other Opportunity."
-msgstr "機會要先安排伙伴才可合併。"
+msgstr "機會要先安排伙伴才可與其他機會合併。"
#. module: crm
#: code:addons/crm/wizard/crm_merge_opportunities.py:46
@@ -249,7 +249,7 @@ msgstr ""
#: view:res.partner:0
#, python-format
msgid "Phone Call"
-msgstr "打電話"
+msgstr "致電"
#. module: crm
#: field:crm.lead,optout:0
@@ -260,7 +260,7 @@ msgstr ""
#: code:addons/crm/crm_opportunity.py:108
#, python-format
msgid "The opportunity '%s' has been marked as lost."
-msgstr ""
+msgstr "「%s」機會已標為丟失。"
#. module: crm
#: model:ir.actions.act_window,help:crm.action_report_crm_lead
@@ -309,7 +309,7 @@ msgid ""
"If you select Merge with existing Opportunity, the lead details(with the "
"communication history) will be merged with existing Opportunity of Selected "
"partner."
-msgstr ""
+msgstr "如選擇與現有機會合併,潛在客戶之詳情(包括通訊記錄)會與選取之伙伴的現有機會合併。"
#. module: crm
#: selection:crm.meeting,class:0
@@ -389,7 +389,7 @@ msgstr ""
#. module: crm
#: model:process.transition,name:crm.process_transition_opportunitymeeting0
msgid "Opportunity Meeting"
-msgstr ""
+msgstr "商機會談"
#. module: crm
#: help:crm.lead.report,delay_close:0
@@ -400,7 +400,7 @@ msgstr ""
#. module: crm
#: model:process.node,note:crm.process_node_opportunities0
msgid "When a real project/opportunity is detected"
-msgstr ""
+msgstr "當偵測到真正專案/機會"
#. module: crm
#: field:crm.installer,crm_fundraising:0
@@ -446,7 +446,7 @@ msgstr ""
#. module: crm
#: model:ir.model,name:crm.model_crm_lead2opportunity_action
msgid "Convert/Merge Opportunity"
-msgstr ""
+msgstr "轉變/合併機會"
#. module: crm
#: field:crm.lead,write_date:0
@@ -457,7 +457,7 @@ msgstr "更新日期"
#: view:crm.lead2opportunity.action:0
#: field:crm.lead2opportunity.action,name:0
msgid "Select Action"
-msgstr ""
+msgstr "選擇動作"
#. module: crm
#: field:base.action.rule,trg_categ_id:0
@@ -475,7 +475,7 @@ msgstr "分類"
#. module: crm
#: view:crm.lead.report:0
msgid "#Opportunities"
-msgstr ""
+msgstr "#機會"
#. module: crm
#: model:crm.case.resource.type,name:crm.type_oppor2
@@ -495,7 +495,7 @@ msgstr ""
#. module: crm
#: view:crm.lead.report:0
msgid "Opportunity Analysis"
-msgstr ""
+msgstr "機會分析"
#. module: crm
#: help:crm.meeting,location:0
@@ -525,7 +525,7 @@ msgstr ""
#. module: crm
#: model:process.transition,note:crm.process_transition_opportunitymeeting0
msgid "Normal or phone meeting for opportunity"
-msgstr ""
+msgstr "與機會的正常或電話會談"
#. module: crm
#: model:process.node,note:crm.process_node_leads0
@@ -544,7 +544,7 @@ msgstr ""
#: model:ir.actions.act_window,name:crm.crm_partner2opportunity
#, python-format
msgid "Create Opportunity"
-msgstr ""
+msgstr "建立機會"
#. module: crm
#: view:crm.installer:0
@@ -631,7 +631,7 @@ msgstr "滿意度調查"
msgid ""
"Thick this box if you want that on escalation, the responsible of this sale "
"team automatically becomes responsible of the lead/opportunity escaladed"
-msgstr ""
+msgstr "如想提升注意級別,勾選此項;此銷售隊伍之負責人會自動成為已提升注意潛在客戶/機會之負責人"
#. module: crm
#: help:crm.installer,outlook:0
@@ -671,7 +671,7 @@ msgstr ""
#. module: crm
#: view:crm.phonecall.report:0
msgid "#Phone calls"
-msgstr ""
+msgstr "致電數"
#. module: crm
#: help:crm.segmentation,categ_id:0
@@ -691,7 +691,7 @@ msgid ""
"The channels represent the different communication "
"modes available with the customer. With each commercial opportunity, you can "
"indicate the canall which is this opportunity source."
-msgstr ""
+msgstr "渠道代表該顧客之不同通訊模式。對於每個商機,您可指明此機會來源之管道。"
#. module: crm
#: code:addons/crm/crm_meeting.py:93
@@ -720,7 +720,7 @@ msgstr ""
#. module: crm
#: view:res.users:0
msgid "Current Activity"
-msgstr "目前活動"
+msgstr "當前動態"
#. module: crm
#: help:crm.meeting,exrule:0
@@ -835,7 +835,7 @@ msgstr "停止處理"
#. module: crm
#: view:crm.phonecall:0
msgid "Search Phonecalls"
-msgstr ""
+msgstr "搜尋致電"
#. module: crm
#: view:crm.lead2opportunity.partner:0
@@ -953,7 +953,7 @@ msgstr ""
#. module: crm
#: view:crm.phonecall2opportunity:0
msgid "Convert To Opportunity "
-msgstr ""
+msgstr "轉變為機會 "
#. module: crm
#: help:crm.case.stage,sequence:0
@@ -1016,7 +1016,7 @@ msgstr "三月"
#: code:addons/crm/crm_lead.py:230
#, python-format
msgid "The opportunity '%s' has been closed."
-msgstr ""
+msgstr "「%s」機會已結束。"
#. module: crm
#: field:crm.lead,day_open:0
@@ -1033,7 +1033,7 @@ msgstr "將時間顯示為"
#: view:crm.phonecall2partner:0
#, python-format
msgid "Create Partner"
-msgstr ""
+msgstr "建立伙伴"
#. module: crm
#: selection:crm.segmentation.line,expr_operator:0
@@ -1056,7 +1056,7 @@ msgstr ""
#, python-format
msgid ""
"There are no other 'Open' or 'Pending' Opportunities for the partner '%s'."
-msgstr ""
+msgstr "「%s」伙伴並無「開放」或「待處理」之機會。"
#. module: crm
#: view:crm.lead:0
@@ -1105,7 +1105,7 @@ msgstr ""
#: field:crm.meeting,date_action_next:0
#: field:crm.phonecall,date_action_next:0
msgid "Next Action"
-msgstr ""
+msgstr "下個動作"
#. module: crm
#: field:crm.meeting,end_date:0
@@ -1128,7 +1128,7 @@ msgstr ""
#: code:addons/crm/wizard/crm_phonecall_to_opportunity.py:57
#, python-format
msgid "Closed/Cancelled Phone Call Could not convert into Opportunity"
-msgstr ""
+msgstr "已結束/已取消之致電不能轉為機會"
#. module: crm
#: view:crm.segmentation:0
@@ -1353,7 +1353,7 @@ msgstr "已處理最大伙伴ID"
#: model:ir.actions.act_window,name:crm.action_report_crm_phonecall
#: model:ir.ui.menu,name:crm.menu_report_crm_phonecalls_tree
msgid "Phone Calls Analysis"
-msgstr ""
+msgstr "致電分析"
#. module: crm
#: field:crm.lead.report,opening_date:0
@@ -1493,7 +1493,7 @@ msgstr ""
#. module: crm
#: field:crm.phonecall2opportunity,name:0
msgid "Opportunity Summary"
-msgstr ""
+msgstr "機會摘要"
#. module: crm
#: view:crm.phonecall.report:0
@@ -1584,7 +1584,7 @@ msgstr ""
#. module: crm
#: model:ir.model,name:crm.model_crm_merge_opportunity
msgid "Merge two Opportunities"
-msgstr ""
+msgstr "合併兩個機會"
#. module: crm
#: selection:crm.meeting,end_type:0
@@ -1611,7 +1611,7 @@ msgstr ""
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_phonecall_categ_action
msgid "Phonecall Categories"
-msgstr ""
+msgstr "致電分類"
#. module: crm
#: view:crm.meeting:0
@@ -1804,7 +1804,7 @@ msgstr "上級團隊"
#. module: crm
#: field:crm.lead,date_action:0
msgid "Next Action Date"
-msgstr ""
+msgstr "下個動作日期"
#. module: crm
#: selection:crm.segmentation,state:0
@@ -1850,7 +1850,7 @@ msgstr ""
#: view:crm.phonecall.report:0
#: model:ir.actions.act_window,name:crm.act_crm_opportunity_crm_phonecall_new
msgid "Phone calls"
-msgstr ""
+msgstr "致電"
#. module: crm
#: view:crm.lead:0
@@ -2070,7 +2070,7 @@ msgstr ""
#. module: crm
#: model:process.node,note:crm.process_node_meeting0
msgid "Schedule a normal or phone meeting"
-msgstr ""
+msgstr "安排正常或電話會談"
#. module: crm
#: code:addons/crm/crm.py:375
@@ -2331,7 +2331,7 @@ msgstr ""
#: model:ir.ui.menu,name:crm.menu_crm_case_phone
#: view:res.partner:0
msgid "Phone Calls"
-msgstr ""
+msgstr "致電"
#. module: crm
#: help:crm.lead.report,delay_open:0
@@ -2358,7 +2358,7 @@ msgstr "活躍"
#: code:addons/crm/crm_lead.py:306
#, python-format
msgid "The stage of opportunity '%s' has been changed to '%s'."
-msgstr ""
+msgstr "機會階段已由「%s」變為「%s」。"
#. module: crm
#: code:addons/crm/crm_lead.py:282
@@ -2414,7 +2414,7 @@ msgstr ""
#: field:crm.lead2partner,action:0
#: field:crm.phonecall2partner,action:0
msgid "Action"
-msgstr ""
+msgstr "動作"
#. module: crm
#: field:crm.installer,crm_claim:0
@@ -2544,7 +2544,7 @@ msgstr ""
#: view:board.board:0
#: model:ir.actions.act_window,name:crm.act_my_oppor
msgid "My Open Opportunities"
-msgstr ""
+msgstr "我的開放機會"
#. module: crm
#: model:ir.actions.act_window,name:crm.open_board_statistical_dash
@@ -2585,7 +2585,7 @@ msgstr "會議類型"
#: code:addons/crm/wizard/crm_lead_to_opportunity.py:314
#, python-format
msgid "Merge with Existing Opportunity"
-msgstr "與既有機會合併"
+msgstr "與現有機會合併"
#. module: crm
#: help:crm.lead,state:0
@@ -2714,7 +2714,7 @@ msgstr ""
#: field:crm.meeting,date_action_last:0
#: field:crm.phonecall,date_action_last:0
msgid "Last Action"
-msgstr ""
+msgstr "最後動作"
#. module: crm
#: field:crm.meeting,duration:0
@@ -3485,7 +3485,7 @@ msgstr "各階段機會"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_case_categ_phone_create_partner
msgid "Schedule Phone Call"
-msgstr ""
+msgstr "安排致電"
#. module: crm
#: selection:crm.lead.report,month:0
@@ -3564,7 +3564,7 @@ msgstr ""
#: code:addons/crm/wizard/crm_merge_opportunities.py:100
#, python-format
msgid "Merged into Opportunity: %s"
-msgstr "合併至機會:%s"
+msgstr "已合併至機會: %s"
#. module: crm
#: code:addons/crm/crm.py:347
@@ -3584,7 +3584,7 @@ msgstr "分類化"
#. module: crm
#: model:ir.model,name:crm.model_base_action_rule
msgid "Action Rules"
-msgstr ""
+msgstr "動作規則"
#. module: crm
#: field:crm.meeting,rrule_type:0
@@ -3594,7 +3594,7 @@ msgstr ""
#. module: crm
#: field:crm.meeting,phonecall_id:0
msgid "Phonecall"
-msgstr ""
+msgstr "致電"
#. module: crm
#: selection:crm.meeting,week_list:0
@@ -3763,7 +3763,7 @@ msgstr ""
#. module: crm
#: selection:crm.lead2opportunity.action,name:0
msgid "Merge with existing Opportunity"
-msgstr ""
+msgstr "與現有機會合併"
#. module: crm
#: field:crm.meeting,select1:0
@@ -3816,7 +3816,7 @@ msgstr ""
#. module: crm
#: field:res.partner,phonecall_ids:0
msgid "Phonecalls"
-msgstr ""
+msgstr "致電"
#. module: crm
#: view:crm.lead.report:0
diff --git a/addons/crm/test/test_crm_lead.yml b/addons/crm/test/test_crm_lead.yml
index 6a954939e04..d5d3c6b933b 100644
--- a/addons/crm/test/test_crm_lead.yml
+++ b/addons/crm/test/test_crm_lead.yml
@@ -1,21 +1,9 @@
-- |
- In order to test the CRM in OpenERP,
- I will do a customer qualification process that
- starts with a fist contact with a customer (a lead), which will be converted to a
- business opportunity and a partner.
+-
+ In order to test the CRM in OpenERP, I will do a customer qualification
+ process that starts with a fist contact with a customer (a lead), which will
+ be converted to a business opportunity and a partner.
-
- I check installer report.
--
- !record {model: base.setup.installer , id: base_action_rule_0_1}:
- name: Test_action
--
- I create the view at the time of setup.
--
- !python {model: base.setup.installer}: |
- self.fields_view_get(cr, uid,view_id=None, view_type='form', context=None, toolbar=False, submenu=False)
-- |
- In order to test the flow, I create a two new users "user_crm" and
- I assign the group "salesman".
+ I create a two new users "user_crm" and I assign the group "salesman".
-
!record {model: res.users, id: res_users_usercrm0}:
company_id: base.main_company
@@ -92,7 +80,6 @@
-
!record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner_create_1}:
action: 'exist'
- name: 'existing partner'
-
Then, Click on "Create Opportunity" button.
-
@@ -104,7 +91,6 @@
-
!record {model: crm.lead2opportunity.partner, id: crm_lead2opportunity_partner_create_2}:
action: 'nothing'
- name: 'Do not link to a partner'
-
Then, Click on "Create Opportunity" button.
-
diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py
index 8200dbd1675..87ab9229d26 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity.py
+++ b/addons/crm/wizard/crm_lead_to_opportunity.py
@@ -37,7 +37,7 @@ class crm_lead2opportunity_partner(osv.osv_memory):
('nothing', 'Do not link to a partner')], \
'Action', required=True),
'name': fields.selection([('convert', 'Convert to Opportunity'), ('merge', 'Merge with existing Opportunity')],'Select Action', required=True),
- 'opportunity_ids': fields.many2many('crm.lead', 'merge_opportunity_rel', 'merge_id', 'opportunity_id', 'Opportunities', domain=[('type', '=', 'opportunity')]),
+ 'opportunity_ids': fields.many2many('crm.lead', string='Opportunities', domain=[('type', '=', 'opportunity')]),
}
def default_get(self, cr, uid, fields, context=None):
@@ -236,7 +236,7 @@ class crm_lead2opportunity_mass_convert(osv.osv_memory):
_columns = {
- 'user_ids': fields.many2many('res.users', 'mass_convert_rel', 'user_id', 'wizard_id', 'Salesmans'),
+ 'user_ids': fields.many2many('res.users', string='Salesmans'),
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
}
diff --git a/addons/crm/wizard/crm_merge_opportunities.py b/addons/crm/wizard/crm_merge_opportunities.py
index d2d46749746..f092d6ad0b6 100644
--- a/addons/crm/wizard/crm_merge_opportunities.py
+++ b/addons/crm/wizard/crm_merge_opportunities.py
@@ -142,7 +142,7 @@ class crm_merge_opportunity(osv.osv_memory):
count+=1
for history in opp.message_ids:
- message_obj.write(cr, uid, history.id, {'res_id': first_opportunity.id, 'name' : _("From %s : %s") % (opp.name, history.name) }, context=context)
+ message_obj.write(cr, uid, history.id, {'res_id': first_opportunity.id, 'subject' : _("From %s : %s") % (opp.name, history.subject) }, context=context)
#Notification about loss of information
details = []
diff --git a/addons/crm_caldav/__openerp__.py b/addons/crm_caldav/__openerp__.py
index fdbde1c8d2d..8f1812862c5 100644
--- a/addons/crm_caldav/__openerp__.py
+++ b/addons/crm_caldav/__openerp__.py
@@ -22,10 +22,9 @@
{
- 'name': 'Extended Module to Add CalDav feature on Meeting',
+ 'name': 'Calendar Synchronizing',
'version': '1.1',
- 'category': 'Sales',
- 'category': 'Generic Modules/CRM & SRM',
+ 'category': 'Customer Relationship Management',
'complexity': "normal",
'description': """
Caldav features in Meeting.
diff --git a/addons/crm_caldav/i18n/sr@latin.po b/addons/crm_caldav/i18n/sr@latin.po
index 65f9cd7e78d..58afdb13b25 100644
--- a/addons/crm_caldav/i18n/sr@latin.po
+++ b/addons/crm_caldav/i18n/sr@latin.po
@@ -8,19 +8,19 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-12-23 10:47+0000\n"
-"Last-Translator: qdp (OpenERP) \n"
+"PO-Revision-Date: 2011-10-06 14:03+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:55+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: crm_caldav
#: model:ir.actions.act_window,name:crm_caldav.action_caldav_browse
msgid "Caldav Browse"
-msgstr ""
+msgstr "Pretraži CalDav"
#. module: crm_caldav
#: model:ir.model,name:crm_caldav.model_crm_meeting
@@ -30,7 +30,7 @@ msgstr "Sastanak"
#. module: crm_caldav
#: model:ir.module.module,shortdesc:crm_caldav.module_meta_information
msgid "Extended Module to Add CalDav feature on Meeting"
-msgstr ""
+msgstr "Produženi modul za dodavanje CalDav funkcije u sastancima"
#. module: crm_caldav
#: model:ir.module.module,description:crm_caldav.module_meta_information
@@ -39,8 +39,11 @@ msgid ""
" New Features in Meeting:\n"
" * Share meeting with other calendar clients like sunbird\n"
msgstr ""
+"\n"
+" Nove funkcije u sastancima\n"
+" *Podeli sastanke s drugim kalendarskim klijentima poput sunbird-a\n"
#. module: crm_caldav
#: model:ir.ui.menu,name:crm_caldav.menu_caldav_browse
msgid "Synchronyze this calendar"
-msgstr ""
+msgstr "Sinhronisanje ovog kalendara"
diff --git a/addons/crm_claim/__openerp__.py b/addons/crm_claim/__openerp__.py
index 696298d275b..ae493c5dac2 100644
--- a/addons/crm_claim/__openerp__.py
+++ b/addons/crm_claim/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Customer & Supplier Claims Management',
+ 'name': 'Claims',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Customer Relationship Management',
'complexity': "easy",
'description': """
This modules allows you to track your customers/suppliers claims and grievances.
diff --git a/addons/crm_fundraising/__openerp__.py b/addons/crm_fundraising/__openerp__.py
index 7a37bd13d16..2d75f9e69b7 100644
--- a/addons/crm_fundraising/__openerp__.py
+++ b/addons/crm_fundraising/__openerp__.py
@@ -21,8 +21,8 @@
{
- 'category': 'Sales',
- 'name': 'CRM Fundraising',
+ 'category': 'Customer Relationship Management',
+ 'name': 'Fundraising',
'version': '1.0',
'complexity': "easy",
'description': """
diff --git a/addons/crm_helpdesk/__openerp__.py b/addons/crm_helpdesk/__openerp__.py
index b69f1de1b08..5124c3c5817 100644
--- a/addons/crm_helpdesk/__openerp__.py
+++ b/addons/crm_helpdesk/__openerp__.py
@@ -21,8 +21,8 @@
{
- 'category': 'Sales',
- 'name': 'CRM Helpdesk',
+ 'category': 'Customer Relationship Management',
+ 'name': 'Helpdesk',
'version': '1.0',
'complexity': "easy",
'description': """
diff --git a/addons/crm_partner_assign/__openerp__.py b/addons/crm_partner_assign/__openerp__.py
index eca5307df91..9e72204e31d 100644
--- a/addons/crm_partner_assign/__openerp__.py
+++ b/addons/crm_partner_assign/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Partner Geo-Localization',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Hidden',
'complexity': "normal",
'description': """
This is the module used by OpenERP SA to redirect customers to its partners, based on geolocalization.
diff --git a/addons/crm_partner_assign/test/test_crm_partner_assign.yml b/addons/crm_partner_assign/test/test_crm_partner_assign.yml
index b214f535275..359fa8454f6 100644
--- a/addons/crm_partner_assign/test/test_crm_partner_assign.yml
+++ b/addons/crm_partner_assign/test/test_crm_partner_assign.yml
@@ -108,6 +108,7 @@
'email_to': 'info@axelor.com',
'email_from': 'Administrator ',
'reply_to': 'sales_openerp@openerp.com',
+ 'state': 'draft',
'history': 'latest',
}
ids = self.create(cr, uid, vals, context={'active_id': ref('crm_lead_questionnaireonopenerp0'), 'active_model': 'crm.lead'})
diff --git a/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml b/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml
index d3ecddb1aa3..8bdb03cf962 100644
--- a/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml
+++ b/addons/crm_partner_assign/wizard/crm_forward_to_partner_view.xml
@@ -25,7 +25,6 @@
-
diff --git a/addons/crm_profiling/__openerp__.py b/addons/crm_profiling/__openerp__.py
index 98d69aca7b5..656f8360f0b 100644
--- a/addons/crm_profiling/__openerp__.py
+++ b/addons/crm_profiling/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'CRM Profiling Management - To Perform Segmentation within Partners',
+ 'name': 'Profiling Tools',
'version': '1.3',
- 'category': 'Sales',
+ 'category': 'Marketing',
'complexity': "easy",
'description': """
This module allows users to perform segmentation within partners.
diff --git a/addons/crm_profiling/crm_profiling.py b/addons/crm_profiling/crm_profiling.py
index 90dc0818743..59137966da0 100644
--- a/addons/crm_profiling/crm_profiling.py
+++ b/addons/crm_profiling/crm_profiling.py
@@ -264,7 +264,7 @@ class crm_segmentation(osv.osv):
}
_constraints = [
- (orm.orm._check_recursion, 'Error ! You can not create recursive profiles.', ['parent_id'])
+ (osv.osv._check_recursion, 'Error ! You can not create recursive profiles.', ['parent_id'])
]
def process_continue(self, cr, uid, ids, start=False):
diff --git a/addons/decimal_precision/__openerp__.py b/addons/decimal_precision/__openerp__.py
index a2e94c7f58d..b8ac25eb379 100644
--- a/addons/decimal_precision/__openerp__.py
+++ b/addons/decimal_precision/__openerp__.py
@@ -30,7 +30,7 @@ The decimal precision is configured per company.
"author": "OpenERP SA",
"version": "0.1",
"depends": ["base"],
- "category" : "Tools",
+ "category" : "Hidden",
'complexity': "easy",
"init_xml": [],
"update_xml": [
diff --git a/addons/decimal_precision/i18n/sr@latin.po b/addons/decimal_precision/i18n/sr@latin.po
index f4fd07121c4..4a177f34577 100644
--- a/addons/decimal_precision/i18n/sr@latin.po
+++ b/addons/decimal_precision/i18n/sr@latin.po
@@ -8,30 +8,30 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-12-23 16:14+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2011-10-06 14:01+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian latin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:47+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: decimal_precision
#: field:decimal.precision,digits:0
msgid "Digits"
-msgstr "Brojevi"
+msgstr "Cifara"
#. module: decimal_precision
#: view:decimal.precision:0
msgid "Decimal Precision"
-msgstr "Decimalna Preiznost"
+msgstr "Decimalna preciznost"
#. module: decimal_precision
#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
msgid "Decimal Accuracy Definitions"
-msgstr "Definicija Decimalne Preciznosti"
+msgstr "Definicije decimalne preciznosti"
#. module: decimal_precision
#: model:ir.module.module,description:decimal_precision.module_meta_information
@@ -44,26 +44,26 @@ msgid ""
"The decimal precision is configured per company.\n"
msgstr ""
"\n"
-"Ovaj modul vam omogucava za zaokruzujete cene na potrebne vrednosti za "
-"nekoliko nacina\n"
-"koriscenja: Racunanje, prodaja, nabavka ...\n"
+"Ovaj modul Vam omogućava podešavanje preciznosti cena za različite načine\n"
+"upotrebe: računanje, prodaja, nabavka ... \n"
"\n"
-"Preciznost definisete za celo preduzece.\n"
+"Preciznost je definisana po pojedinačnom preduzeću.\n"
#. module: decimal_precision
#: field:decimal.precision,name:0
msgid "Usage"
-msgstr "Koriscenje"
+msgstr "Upotreba"
#. module: decimal_precision
#: sql_constraint:decimal.precision:0
msgid "Only one value can be defined for each given usage!"
msgstr ""
+"Samo jedna vrednost može biti definisana za svaku pojedinačnu upotrebu!"
#. module: decimal_precision
#: model:ir.module.module,shortdesc:decimal_precision.module_meta_information
msgid "Decimal Precision Configuration"
-msgstr "Podesavanje Decimalne Preciznosti"
+msgstr "Podešavanje decimalne preciznosti"
#. module: decimal_precision
#: model:ir.model,name:decimal_precision.model_decimal_precision
diff --git a/addons/decimal_precision/i18n/zh_TW.po b/addons/decimal_precision/i18n/zh_TW.po
new file mode 100644
index 00000000000..0350112585d
--- /dev/null
+++ b/addons/decimal_precision/i18n/zh_TW.po
@@ -0,0 +1,72 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-09-27 08:06+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
+
+#. module: decimal_precision
+#: field:decimal.precision,digits:0
+msgid "Digits"
+msgstr "數字"
+
+#. module: decimal_precision
+#: view:decimal.precision:0
+msgid "Decimal Precision"
+msgstr "小數精確度"
+
+#. module: decimal_precision
+#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
+#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
+msgid "Decimal Accuracy Definitions"
+msgstr ""
+
+#. module: decimal_precision
+#: model:ir.module.module,description:decimal_precision.module_meta_information
+msgid ""
+"\n"
+"This module allows to configure the price accuracy you need for different "
+"kind\n"
+"of usage: accounting, sales, purchases, ...\n"
+"\n"
+"The decimal precision is configured per company.\n"
+msgstr ""
+"\n"
+"此模組讓您為會計、銷售、採購...等不同用途設定價錢準確度。\n"
+"\n"
+"每間公司之小數精確度可以不同。\n"
+
+#. module: decimal_precision
+#: field:decimal.precision,name:0
+msgid "Usage"
+msgstr "用途"
+
+#. module: decimal_precision
+#: sql_constraint:decimal.precision:0
+msgid "Only one value can be defined for each given usage!"
+msgstr "每種用途只可定義一個值!"
+
+#. module: decimal_precision
+#: model:ir.module.module,shortdesc:decimal_precision.module_meta_information
+msgid "Decimal Precision Configuration"
+msgstr "小數精確度設定"
+
+#. module: decimal_precision
+#: model:ir.model,name:decimal_precision.model_decimal_precision
+msgid "decimal.precision"
+msgstr ""
+
+#~ msgid "Decimal Accuracy"
+#~ msgstr "小數準確度"
diff --git a/addons/delivery/__openerp__.py b/addons/delivery/__openerp__.py
index e9fa8240e21..40dab751f79 100644
--- a/addons/delivery/__openerp__.py
+++ b/addons/delivery/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Carriers and Deliveries',
+ 'name': 'Delivery Costs',
'version': '1.0',
- 'category': 'Warehouse',
+ 'category': 'Sales Management',
'complexity': "normal",
'description': """
Allows you to add delivery methods in sale orders and picking.
diff --git a/addons/delivery/delivery.py b/addons/delivery/delivery.py
index 94a21289925..cac4c20c288 100644
--- a/addons/delivery/delivery.py
+++ b/addons/delivery/delivery.py
@@ -61,16 +61,16 @@ class delivery_carrier(osv.osv):
return res
_columns = {
- 'name': fields.char('Carrier', size=64, required=True),
- 'partner_id': fields.many2one('res.partner', 'Carrier Partner', required=True),
+ 'name': fields.char('Delivery Method', size=64, required=True),
+ 'partner_id': fields.many2one('res.partner', 'Transport Company', required=True, help="The partner that is doing the delivery service."),
'product_id': fields.many2one('product.product', 'Delivery Product', required=True),
'grids_id': fields.one2many('delivery.grid', 'carrier_id', 'Delivery Grids'),
'price' : fields.function(get_price, string='Price'),
'active': fields.boolean('Active', help="If the active field is set to False, it will allow you to hide the delivery carrier without removing it."),
- 'normal_price': fields.float('Normal Price'),
- 'free_if_more_than': fields.boolean('Free If More Than'),
- 'amount': fields.float('Amount'),
- 'use_detailed_pricelist': fields.boolean('Use Detailed Pricelist'),
+ 'normal_price': fields.float('Normal Price', help="Keep empty if the pricing depends on the advanced pricing per destination"),
+ 'free_if_more_than': fields.boolean('Free If More Than', help="If the order is more expensive than a certain amount, the customer can benefit from a free shipping"),
+ 'amount': fields.float('Amount', help="Amount of the order to benefit from a free shipping, expressed in the company currency"),
+ 'use_detailed_pricelist': fields.boolean('Advanced Pricing per Destination', help="Check this box if you want to manage delivery prices that depends on the destination, the weight, the total of the order, etc."),
'pricelist_ids': fields.one2many('delivery.grid', 'carrier_id', 'Advanced Pricing'),
}
@@ -103,25 +103,32 @@ class delivery_carrier(osv.osv):
grid_line_pool = self.pool.get('delivery.grid.line')
grid_pool = self.pool.get('delivery.grid')
for record in self.browse(cr, uid, ids, context=context):
- grid_id = grid_pool.search(cr, uid, [('carrier_id', '=', record.id)], context=context)
+ grid_id = grid_pool.search(cr, uid, [('carrier_id', '=', record.id),('sequence','=',9999)], context=context)
+
+ if grid_id and not (record.normal_price or record.free_if_more_than):
+ grid_pool.unlink(cr, uid, grid_id, context=context)
+
+ if not (record.normal_price or record.free_if_more_than):
+ continue
+
if not grid_id:
record_data = {
- 'name': vals.get('name', False),
+ 'name': record.name,
'carrier_id': record.id,
- 'seqeunce': 10,
+ 'sequence': 9999,
}
new_grid_id = grid_pool.create(cr, uid, record_data, context=context)
grid_id = [new_grid_id]
- #delete all existing grid lines
- grid_lines = [line.id for line in grid_pool.browse(cr, uid, grid_id[0]).line_ids if line.type == 'price']
- grid_line_pool.unlink(cr, uid, grid_lines, context=context)
+ lines = grid_line_pool.search(cr, uid, [('grid_id','in',grid_id)], context=context)
+ if lines:
+ grid_line_pool.unlink(cr, uid, lines, context=context)
#create the grid lines
if record.free_if_more_than:
data = {
'grid_id': grid_id and grid_id[0],
- 'name': _('Free if more than %d') % record.amount,
+ 'name': _('Free if more than %.2f') % record.amount,
'type': 'price',
'operator': '>=',
'max_value': record.amount,
@@ -217,7 +224,7 @@ class delivery_grid_line(osv.osv):
_description = "Delivery Grid Line"
_columns = {
'name': fields.char('Name', size=32, required=True),
- 'grid_id': fields.many2one('delivery.grid', 'Grid',required=True),
+ 'grid_id': fields.many2one('delivery.grid', 'Grid',required=True, ondelete='cascade'),
'type': fields.selection([('weight','Weight'),('volume','Volume'),\
('wv','Weight * Volume'), ('price','Price')],\
'Variable', required=True),
@@ -242,21 +249,19 @@ class define_delivery_steps(osv.osv_memory):
_name = 'delivery.define.delivery.steps.wizard'
_columns = {
- 'picking_policy' : fields.selection([('direct', 'Partial Delivery'), ('one', 'Complete Delivery'),],
- 'Picking Policy', required=True),
+ 'picking_policy' : fields.selection([('direct', 'Deliver each product when available'), ('one', 'Deliver all products at once')], 'Picking Policy'),
+ }
+ _defaults = {
+ 'picking_policy': lambda s,c,u,ctx: s.pool.get('sale.order').default_get(c,u,['picking_policy'],context=ctx)['picking_policy']
}
def apply_cb(self, cr, uid, ids, context=None):
ir_values_obj = self.pool.get('ir.values')
-
wizard = self.browse(cr, uid, ids, context=context)[0]
-
ir_values_obj.set(cr, uid, 'default', False, 'picking_policy', ['sale.order'], wizard.picking_policy)
-
return {'type' : 'ir.actions.act_window_close'}
define_delivery_steps()
-
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/delivery/delivery_view.xml b/addons/delivery/delivery_view.xml
index 23147a2716f..deb13679355 100644
--- a/addons/delivery/delivery_view.xml
+++ b/addons/delivery/delivery_view.xml
@@ -9,6 +9,7 @@
tree
+
@@ -21,15 +22,16 @@
+
-
-
-
+
+
+
-
+
@@ -37,7 +39,6 @@
-
@@ -76,8 +77,8 @@
ir.actions.act_windowdelivery.carrierform
- form,tree
- Define the delivery methods you are using and their pricing in order to reinvoice the delivery costs when you are doing invoicing based on delivery orders
+ tree,form
+ Define your delivery methods and their pricing. The delivery costs can be added on the sale order form or in the invoice, based on the delivery orders.
@@ -325,7 +326,7 @@
-
+
@@ -341,9 +342,10 @@
delivery.define.delivery.steps.wizardform
-
-
+
+
+
@@ -353,7 +355,7 @@
- Setup Your Delivery Steps
+ Setup Your Picking Policydelivery.define.delivery.steps.wizardformform
@@ -362,6 +364,8 @@
+
+ once
diff --git a/addons/delivery/i18n/zh_TW.po b/addons/delivery/i18n/zh_TW.po
index 6a09d0860d7..91f4e8816a5 100644
--- a/addons/delivery/i18n/zh_TW.po
+++ b/addons/delivery/i18n/zh_TW.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-28 03:29+0000\n"
+"PO-Revision-Date: 2011-09-27 10:27+0000\n"
"Last-Translator: Walter Cheuk \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-09-05 05:01+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:19+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
#. module: delivery
#: report:sale.shipping:0
msgid "Order Ref."
-msgstr "單號參照"
+msgstr "訂單參考"
#. module: delivery
#: model:product.template,name:delivery.delivery_product_product_template
@@ -67,7 +67,7 @@ msgstr "體積"
#. module: delivery
#: sql_constraint:sale.order:0
msgid "Order Reference must be unique !"
-msgstr "交貨參照不能重覆!"
+msgstr "訂單參考不能重覆!"
#. module: delivery
#: field:delivery.grid,line_ids:0
@@ -82,17 +82,17 @@ msgstr "交貨單"
#. module: delivery
#: view:res.partner:0
msgid "Deliveries Properties"
-msgstr ""
+msgstr "交貨性質"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_picking_tree4
msgid "Picking to be invoiced"
-msgstr ""
+msgstr "要開立發票的提貨"
#. module: delivery
#: help:delivery.grid,sequence:0
msgid "Gives the sequence order when displaying a list of delivery grid."
-msgstr ""
+msgstr "提供顯示交貨格線清單的次序。"
#. module: delivery
#: view:delivery.grid:0
@@ -103,12 +103,12 @@ msgstr "國家"
#. module: delivery
#: report:sale.shipping:0
msgid "Delivery Order :"
-msgstr "交貨單:"
+msgstr "交貨單 :"
#. module: delivery
#: field:delivery.grid.line,variable_factor:0
msgid "Variable Factor"
-msgstr ""
+msgstr "可變因子"
#. module: delivery
#: model:ir.actions.act_window,help:delivery.action_delivery_grid_form
@@ -132,7 +132,7 @@ msgstr "固定"
#: field:res.partner,property_delivery_carrier:0
#: field:sale.order,carrier_id:0
msgid "Delivery Method"
-msgstr "交貨方式"
+msgstr "交貨方法"
#. module: delivery
#: model:ir.model,name:delivery.model_stock_move
@@ -143,12 +143,12 @@ msgstr "庫存調動"
#: code:addons/delivery/delivery.py:141
#, python-format
msgid "No line matched this order in the choosed delivery grids !"
-msgstr ""
+msgstr "選擇的交貨格無一行符合此訂單 !"
#. module: delivery
#: field:stock.picking,carrier_tracking_ref:0
msgid "Carrier Tracking Ref"
-msgstr "運輸公司追蹤編號"
+msgstr "運輸公司追蹤參考"
#. module: delivery
#: field:stock.picking,weight_net:0
@@ -172,7 +172,7 @@ msgstr "警告"
#. module: delivery
#: view:delivery.grid:0
msgid "Grid definition"
-msgstr ""
+msgstr "格線定義"
#. module: delivery
#: view:delivery.sale.order:0
@@ -197,12 +197,12 @@ msgstr "銷貨單"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_grid
msgid "Delivery Grid"
-msgstr ""
+msgstr "交貨格線"
#. module: delivery
#: report:sale.shipping:0
msgid "Invoiced to"
-msgstr "發票交至"
+msgstr "發票開立對象:"
#. module: delivery
#: model:ir.model,name:delivery.model_stock_picking
@@ -212,7 +212,7 @@ msgstr "提貨清單"
#. module: delivery
#: model:ir.model,name:delivery.model_delivery_sale_order
msgid "Make Delievery"
-msgstr ""
+msgstr "進行交貨"
#. module: delivery
#: model:ir.module.module,description:delivery.module_meta_information
@@ -228,12 +228,12 @@ msgstr ""
#. module: delivery
#: view:delivery.grid.line:0
msgid "Grid Lines"
-msgstr ""
+msgstr "格線"
#. module: delivery
#: field:delivery.grid.line,grid_id:0
msgid "Grid"
-msgstr ""
+msgstr "網格"
#. module: delivery
#: help:delivery.grid,active:0
@@ -245,17 +245,17 @@ msgstr ""
#. module: delivery
#: field:delivery.grid,zip_to:0
msgid "To Zip"
-msgstr ""
+msgstr "至郵遞區號"
#. module: delivery
#: report:sale.shipping:0
msgid "Order Date"
-msgstr "單子日期"
+msgstr "訂單日期"
#. module: delivery
#: field:delivery.grid,name:0
msgid "Grid Name"
-msgstr ""
+msgstr "網格名稱"
#. module: delivery
#: view:stock.move:0
@@ -287,7 +287,7 @@ msgstr ""
#: code:addons/delivery/wizard/delivery_sale_order.py:95
#, python-format
msgid "No grid available !"
-msgstr ""
+msgstr "無可用網格 !"
#. module: delivery
#: selection:delivery.grid.line,operator:0
@@ -299,7 +299,7 @@ msgstr ""
#: code:addons/delivery/wizard/delivery_sale_order.py:98
#, python-format
msgid "Order not in draft state !"
-msgstr ""
+msgstr "訂單不在草稿階段 !"
#. module: delivery
#: constraint:res.partner:0
@@ -314,7 +314,7 @@ msgstr "批次"
#. module: delivery
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
-msgstr ""
+msgstr "指定了不同產品的批次"
#. module: delivery
#: field:delivery.carrier,active:0
@@ -325,7 +325,7 @@ msgstr "活躍"
#. module: delivery
#: report:sale.shipping:0
msgid "Shipping Date"
-msgstr ""
+msgstr "貨運日期"
#. module: delivery
#: field:delivery.carrier,product_id:0
@@ -382,7 +382,7 @@ msgstr "運輸公司伙伴"
#. module: delivery
#: view:res.partner:0
msgid "Sales & Purchases"
-msgstr "銷售&採購"
+msgstr "銷售 及 購貨"
#. module: delivery
#: selection:delivery.grid.line,operator:0
@@ -392,12 +392,12 @@ msgstr ""
#. module: delivery
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
-msgstr "須為此產品分配生產批次"
+msgstr "須為此產品指定生產批次"
#. module: delivery
#: view:delivery.sale.order:0
msgid "Create Deliveries"
-msgstr ""
+msgstr "進行交貨"
#. module: delivery
#: model:ir.actions.act_window,name:delivery.action_delivery_cost
@@ -481,7 +481,7 @@ msgstr ""
#: code:addons/delivery/wizard/delivery_sale_order.py:98
#, python-format
msgid "The order state have to be draft to add delivery lines."
-msgstr ""
+msgstr "訂單狀態要是草稿才能添加交貨明細。"
#. module: delivery
#: model:ir.module.module,shortdesc:delivery.module_meta_information
@@ -491,12 +491,12 @@ msgstr "運輸公司與交貨"
#. module: delivery
#: field:delivery.carrier,grids_id:0
msgid "Delivery Grids"
-msgstr ""
+msgstr "交貨網格"
#. module: delivery
#: field:delivery.grid,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "次序"
#. module: delivery
#: field:delivery.grid.line,list_price:0
@@ -507,7 +507,7 @@ msgstr "銷售價"
#: view:delivery.grid:0
#: field:delivery.grid,state_ids:0
msgid "States"
-msgstr ""
+msgstr "狀態"
#. module: delivery
#: field:delivery.grid.line,price_type:0
diff --git a/addons/document/__openerp__.py b/addons/document/__openerp__.py
index c98daa4eaaf..6b9cbd21f48 100644
--- a/addons/document/__openerp__.py
+++ b/addons/document/__openerp__.py
@@ -23,8 +23,7 @@
{
'name': 'Integrated Document Management System',
'version': '2.1',
- 'category': 'Tools',
- 'category': 'Generic Modules/Others',
+ 'category': 'Knowledge Management',
'complexity': "normal",
'description': """
This is a complete document management system.
diff --git a/addons/document/i18n/zh_HK.po b/addons/document/i18n/zh_HK.po
new file mode 100644
index 00000000000..d0e38ae37d2
--- /dev/null
+++ b/addons/document/i18n/zh_HK.po
@@ -0,0 +1,1030 @@
+# Chinese (Hong Kong) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-09-27 13:46+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Hong Kong) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
+
+#. module: document
+#: field:document.directory,parent_id:0
+msgid "Parent Directory"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_document_configuration
+msgid "Auto Directory Configuration"
+msgstr ""
+
+#. module: document
+#: field:document.directory,resource_field:0
+msgid "Name field"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+msgid "Document board"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_process_node
+msgid "Process Node"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Search Document Directory"
+msgstr ""
+
+#. module: document
+#: help:document.directory,resource_field:0
+msgid ""
+"Field to be used as name on resource directories. If empty, the \"name\" "
+"will be used."
+msgstr ""
+
+#. module: document
+#: code:addons/document/document_directory.py:276
+#, python-format
+msgid "Directory name contains special characters!"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+#: view:document.storage:0
+msgid "Group By..."
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_document_directory_content_type
+msgid "Directory Content Type"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Resources"
+msgstr ""
+
+#. module: document
+#: field:document.directory,file_ids:0
+#: view:report.document.user:0
+msgid "Files"
+msgstr ""
+
+#. module: document
+#: view:report.files.partner:0
+msgid "Files per Month"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "March"
+msgstr ""
+
+#. module: document
+#: view:document.configuration:0
+msgid "title"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+#: field:document.directory,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_document_directory_content
+msgid "Directory Content"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Dynamic context"
+msgstr ""
+
+#. module: document
+#: model:ir.ui.menu,name:document.menu_document_management_configuration
+msgid "Document Management"
+msgstr ""
+
+#. module: document
+#: help:document.directory.dctx,expr:0
+msgid ""
+"A python expression used to evaluate the field.\n"
+"You can use 'dir_id' for current dir, 'res_id', 'res_model' as a reference "
+"to the current record, in dynamic folders"
+msgstr ""
+
+#. module: document
+#: view:report.document.user:0
+msgid "This Year"
+msgstr ""
+
+#. module: document
+#: field:document.storage,path:0
+msgid "Path"
+msgstr ""
+
+#. module: document
+#: code:addons/document/document_directory.py:266
+#: code:addons/document/document_directory.py:271
+#, python-format
+msgid "Directory name must be unique!"
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+#: field:ir.attachment,index_content:0
+msgid "Indexed Content"
+msgstr ""
+
+#. module: document
+#: help:document.directory,resource_find_all:0
+msgid ""
+"If true, all attachments that match this resource will be located. If "
+"false, only ones that have this as parent."
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+#: field:document.storage,dir_ids:0
+#: model:ir.actions.act_window,name:document.action_document_directory_form
+#: model:ir.ui.menu,name:document.menu_document_directories
+msgid "Directories"
+msgstr ""
+
+#. module: document
+#: field:document.configuration,sale_order:0
+msgid "Sale Order"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_report_document_user
+msgid "Files details by Users"
+msgstr ""
+
+#. module: document
+#: field:document.configuration,project:0
+msgid "Project"
+msgstr ""
+
+#. module: document
+#: code:addons/document/document_storage.py:573
+#: code:addons/document/document_storage.py:601
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: document
+#: help:document.configuration,product:0
+msgid "Auto directory configuration for Products."
+msgstr ""
+
+#. module: document
+#: field:document.directory,resource_find_all:0
+msgid "Find all resources"
+msgstr ""
+
+#. module: document
+#: selection:document.directory,type:0
+msgid "Folders per resource"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,suffix:0
+msgid "Suffix"
+msgstr ""
+
+#. module: document
+#: field:report.document.user,change_date:0
+msgid "Modified Date"
+msgstr ""
+
+#. module: document
+#: view:document.configuration:0
+msgid "Knowledge Application Configuration"
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+#: field:ir.attachment,partner_id:0
+#: field:report.files.partner,partner:0
+msgid "Partner"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+msgid "Files by Users"
+msgstr ""
+
+#. module: document
+#: field:process.node,directory_id:0
+msgid "Document directory"
+msgstr ""
+
+#. module: document
+#: code:addons/document/document.py:226
+#: code:addons/document/document.py:294
+#: code:addons/document/document_directory.py:266
+#: code:addons/document/document_directory.py:271
+#: code:addons/document/document_directory.py:276
+#, python-format
+msgid "ValidateError"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_ir_actions_report_xml
+msgid "ir.actions.report.xml"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.action_document_file_form
+#: view:ir.attachment:0
+#: model:ir.ui.menu,name:document.menu_document_doc
+#: model:ir.ui.menu,name:document.menu_document_files
+msgid "Documents"
+msgstr ""
+
+#. module: document
+#: constraint:document.directory:0
+msgid "Error! You can not create recursive Directories."
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+#: field:document.directory,storage_id:0
+msgid "Storage"
+msgstr ""
+
+#. module: document
+#: view:document.configuration:0
+msgid "Configure Resource Directory"
+msgstr ""
+
+#. module: document
+#: field:ir.attachment,file_size:0
+#: field:report.document.file,file_size:0
+#: field:report.document.user,file_size:0
+#: field:report.files.partner,file_size:0
+msgid "File Size"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content.type,name:0
+#: field:ir.attachment,file_type:0
+msgid "Content Type"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+#: field:document.directory,type:0
+#: view:document.storage:0
+#: field:document.storage,type:0
+msgid "Type"
+msgstr ""
+
+#. module: document
+#: help:document.directory,ressource_type_id:0
+msgid ""
+"Select an object here and there will be one folder per record of that "
+"resource."
+msgstr ""
+
+#. module: document
+#: help:document.directory,domain:0
+msgid ""
+"Use a domain if you want to apply an automatic filter on visible resources."
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.action_view_files_by_partner
+msgid "Files Per Partner"
+msgstr ""
+
+#. module: document
+#: field:document.directory,dctx_ids:0
+msgid "Context fields"
+msgstr ""
+
+#. module: document
+#: field:ir.attachment,store_fname:0
+msgid "Stored Filename"
+msgstr ""
+
+#. module: document
+#: field:document.directory,ressource_type_id:0
+msgid "Resource model"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+#: field:report.document.user,type:0
+msgid "Directory Type"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,report_id:0
+msgid "Report"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "July"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.open_board_document_manager
+#: model:ir.ui.menu,name:document.menu_reports_document_manager
+msgid "Document Dashboard"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content.type,code:0
+msgid "Extension"
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+msgid "Created"
+msgstr ""
+
+#. module: document
+#: field:document.directory,content_ids:0
+msgid "Virtual Files"
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+msgid "Modified"
+msgstr ""
+
+#. module: document
+#: code:addons/document/document_storage.py:639
+#, python-format
+msgid "Error at doc write!"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Generated Files"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,directory_id:0
+#: field:document.directory.dctx,dir_id:0
+#: model:ir.actions.act_window,name:document.action_document_file_directory_form
+#: view:ir.attachment:0
+#: field:ir.attachment,parent_id:0
+#: model:ir.model,name:document.model_document_directory
+#: field:report.document.user,directory:0
+msgid "Directory"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+msgid "Files by Partner"
+msgstr ""
+
+#. module: document
+#: field:document.directory,write_uid:0
+#: field:document.storage,write_uid:0
+#: field:ir.attachment,write_uid:0
+msgid "Last Modification User"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.act_res_partner_document
+#: model:ir.actions.act_window,name:document.zoom_directory
+msgid "Related Documents"
+msgstr ""
+
+#. module: document
+#: field:document.configuration,progress:0
+msgid "Configuration Progress"
+msgstr ""
+
+#. module: document
+#: field:document.directory,domain:0
+msgid "Domain"
+msgstr ""
+
+#. module: document
+#: field:document.directory,write_date:0
+#: field:document.storage,write_date:0
+#: field:ir.attachment,write_date:0
+msgid "Date Modified"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_report_document_file
+msgid "Files details by Directory"
+msgstr ""
+
+#. module: document
+#: view:report.document.user:0
+msgid "All users files"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+#: model:ir.actions.act_window,name:document.action_view_size_month
+#: view:report.document.file:0
+msgid "File Size by Month"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "December"
+msgstr ""
+
+#. module: document
+#: field:document.configuration,config_logo:0
+msgid "Image"
+msgstr ""
+
+#. module: document
+#: selection:document.directory,type:0
+msgid "Static Directory"
+msgstr ""
+
+#. module: document
+#: field:document.directory,child_ids:0
+msgid "Children"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Define words in the context, for all child directories and files"
+msgstr ""
+
+#. module: document
+#: model:ir.module.module,description:document.module_meta_information
+msgid ""
+"This is a complete document management system:\n"
+" * User Authentication\n"
+" * Document Indexation :- .pptx and .docx files are not support in "
+"windows platform.\n"
+" * Dashboard for Document that includes:\n"
+" * New Files (list)\n"
+" * Files by Resource Type (graph)\n"
+" * Files by Partner (graph)\n"
+" * Files by Month (graph)\n"
+" ATTENTION:\n"
+" - When you install this module in a running company that have already "
+"PDF files stored into the database,\n"
+" you will lose them all.\n"
+" - After installing this module PDF's are no longer stored into the "
+"database,\n"
+" but in the servers rootpad like /server/bin/filestore.\n"
+msgstr ""
+
+#. module: document
+#: help:document.storage,online:0
+msgid ""
+"If not checked, media is currently offline and its contents not available"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+#: field:document.directory,user_id:0
+#: field:document.storage,user_id:0
+#: view:ir.attachment:0
+#: field:ir.attachment,user_id:0
+#: field:report.document.user,user_id:0
+#: field:report.document.wall,user_id:0
+msgid "Owner"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "PDF Report"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Contents"
+msgstr ""
+
+#. module: document
+#: field:document.directory,create_date:0
+#: field:document.storage,create_date:0
+#: field:report.document.user,create_date:0
+msgid "Date Created"
+msgstr ""
+
+#. module: document
+#: help:document.directory.content,include_name:0
+msgid ""
+"Check this field if you want that the name of the file to contain the record "
+"name.\n"
+"If set, the directory will have to be a resource one."
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.action_config_auto_directory
+msgid "Auto Configure Directory"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,include_name:0
+msgid "Include Record Name"
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+msgid "Attachment"
+msgstr ""
+
+#. module: document
+#: field:ir.actions.report.xml,model_id:0
+msgid "Model Id"
+msgstr ""
+
+#. module: document
+#: field:document.storage,online:0
+msgid "Online"
+msgstr ""
+
+#. module: document
+#: help:document.directory,ressource_tree:0
+msgid ""
+"Check this if you want to use the same tree structure as the object selected "
+"in the system."
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Security"
+msgstr "保安"
+
+#. module: document
+#: help:document.directory,ressource_id:0
+msgid ""
+"Along with Parent Model, this ID attaches this folder to a specific record "
+"of Parent Model."
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "August"
+msgstr ""
+
+#. module: document
+#: sql_constraint:document.directory:0
+msgid "Directory cannot be parent of itself!"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "June"
+msgstr ""
+
+#. module: document
+#: field:report.document.user,user:0
+#: field:report.document.wall,user:0
+msgid "User"
+msgstr ""
+
+#. module: document
+#: field:document.directory,group_ids:0
+#: field:document.storage,group_ids:0
+msgid "Groups"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content.type,active:0
+msgid "Active"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "November"
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+#: field:ir.attachment,db_datas:0
+msgid "Data"
+msgstr ""
+
+#. module: document
+#: help:document.directory,ressource_parent_type_id:0
+msgid ""
+"If you put an object here, this directory template will appear bellow all of "
+"these objects. Such directories are \"attached\" to the specific model or "
+"record, just like attachments. Don't put a parent directory if you select a "
+"parent model."
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Definition"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "October"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Seq."
+msgstr ""
+
+#. module: document
+#: selection:document.storage,type:0
+msgid "Database"
+msgstr ""
+
+#. module: document
+#: help:document.configuration,project:0
+msgid "Auto directory configuration for Projects."
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+msgid "Related to"
+msgstr ""
+
+#. module: document
+#: model:ir.module.module,shortdesc:document.module_meta_information
+msgid "Integrated Document Management System"
+msgstr ""
+
+#. module: document
+#: view:document.configuration:0
+msgid "Choose the following Resouces to auto directory configuration."
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+msgid "Attached To"
+msgstr ""
+
+#. module: document
+#: model:ir.ui.menu,name:document.menu_reports_document
+msgid "Dashboard"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.action_view_user_graph
+msgid "Files By Users"
+msgstr ""
+
+#. module: document
+#: field:document.storage,readonly:0
+msgid "Read Only"
+msgstr ""
+
+#. module: document
+#: field:document.directory.dctx,expr:0
+msgid "Expression"
+msgstr ""
+
+#. module: document
+#: sql_constraint:document.directory:0
+msgid "The directory name must be unique !"
+msgstr ""
+
+#. module: document
+#: field:document.directory,create_uid:0
+#: field:document.storage,create_uid:0
+msgid "Creator"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+#: model:ir.actions.act_window,name:document.action_view_files_by_month_graph
+#: view:report.document.user:0
+msgid "Files by Month"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "September"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,prefix:0
+msgid "Prefix"
+msgstr ""
+
+#. module: document
+#: field:report.document.wall,last:0
+msgid "Last Posted Time"
+msgstr ""
+
+#. module: document
+#: field:report.document.user,datas_fname:0
+msgid "File Name"
+msgstr ""
+
+#. module: document
+#: view:document.configuration:0
+msgid "res_config_contents"
+msgstr ""
+
+#. module: document
+#: field:document.directory,ressource_id:0
+msgid "Resource ID"
+msgstr ""
+
+#. module: document
+#: selection:document.storage,type:0
+msgid "External file storage"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+#: model:ir.actions.act_window,name:document.action_view_wall
+#: view:report.document.wall:0
+msgid "Wall of Shame"
+msgstr ""
+
+#. module: document
+#: help:document.storage,path:0
+msgid "For file storage, the root path of the storage"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_report_files_partner
+msgid "Files details by Partners"
+msgstr ""
+
+#. module: document
+#: field:document.directory.dctx,field:0
+msgid "Field"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_document_directory_dctx
+msgid "Directory Dynamic Context"
+msgstr ""
+
+#. module: document
+#: field:document.directory,ressource_parent_type_id:0
+msgid "Parent Model"
+msgstr ""
+
+#. module: document
+#: view:report.document.user:0
+msgid "Files by users"
+msgstr ""
+
+#. module: document
+#: field:report.document.file,month:0
+#: field:report.document.user,month:0
+#: field:report.document.wall,month:0
+#: field:report.document.wall,name:0
+#: field:report.files.partner,month:0
+msgid "Month"
+msgstr ""
+
+#. module: document
+#: model:ir.ui.menu,name:document.menu_reporting
+msgid "Reporting"
+msgstr ""
+
+#. module: document
+#: field:document.configuration,product:0
+msgid "Product"
+msgstr ""
+
+#. module: document
+#: field:document.directory,ressource_tree:0
+msgid "Tree Structure"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "May"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.action_view_all_document_tree1
+msgid "All Users files"
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_report_document_wall
+msgid "Users that did not inserted documents since one month"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,help:document.action_document_file_form
+msgid ""
+"The Documents repository gives you access to all attachments, such as mails, "
+"project documents, invoices etc."
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "For each entry here, virtual files will appear in this folder."
+msgstr ""
+
+#. module: document
+#: model:ir.model,name:document.model_ir_attachment
+msgid "ir.attachment"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+msgid "New Files"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "January"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Static"
+msgstr ""
+
+#. module: document
+#: view:report.files.partner:0
+msgid "Files By Partner"
+msgstr ""
+
+#. module: document
+#: help:document.directory.dctx,field:0
+msgid ""
+"The name of the field. Note that the prefix \"dctx_\" will be prepended to "
+"what is typed here."
+msgstr ""
+
+#. module: document
+#: view:report.document.user:0
+msgid "This Month"
+msgstr ""
+
+#. module: document
+#: view:ir.attachment:0
+msgid "Notes"
+msgstr ""
+
+#. module: document
+#: help:document.configuration,sale_order:0
+msgid ""
+"Auto directory configuration for Sale Orders and Quotation with report."
+msgstr ""
+
+#. module: document
+#: help:document.directory,type:0
+msgid ""
+"Each directory can either have the type Static or be linked to another "
+"resource. A static directory, as with Operating Systems, is the classic "
+"directory that can contain a set of files. The directories linked to systems "
+"resources automatically possess sub-directories for each of resource types "
+"defined in the parent directory."
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "February"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.open_board_document_manager1
+#: model:ir.ui.menu,name:document.menu_reports_document_manager1
+msgid "Statistics by User"
+msgstr ""
+
+#. module: document
+#: field:document.directory,name:0
+#: field:document.storage,name:0
+msgid "Name"
+msgstr ""
+
+#. module: document
+#: sql_constraint:document.storage:0
+msgid "The storage path must be unique!"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid "Fields"
+msgstr ""
+
+#. module: document
+#: help:document.storage,readonly:0
+msgid "If set, media is for reading only"
+msgstr ""
+
+#. module: document
+#: selection:report.document.user,month:0
+#: selection:report.files.partner,month:0
+msgid "April"
+msgstr ""
+
+#. module: document
+#: field:report.document.file,nbr:0
+#: field:report.document.user,nbr:0
+#: field:report.files.partner,nbr:0
+msgid "# of Files"
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid ""
+"Only members of these groups will have access to this directory and its "
+"files."
+msgstr ""
+
+#. module: document
+#: view:document.directory:0
+msgid ""
+"These groups, however, do NOT apply to children directories, which must "
+"define their own groups."
+msgstr ""
+
+#. module: document
+#: field:document.directory.content.type,mimetype:0
+msgid "Mime Type"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,name:0
+msgid "Content Name"
+msgstr ""
+
+#. module: document
+#: code:addons/document/document.py:226
+#: code:addons/document/document.py:294
+#, python-format
+msgid "File name must be unique!"
+msgstr ""
+
+#. module: document
+#: selection:document.storage,type:0
+msgid "Internal File storage"
+msgstr ""
+
+#. module: document
+#: sql_constraint:document.directory:0
+msgid "Directory must have a parent or a storage"
+msgstr ""
+
+#. module: document
+#: model:ir.actions.act_window,name:document.action_document_directory_tree
+#: model:ir.ui.menu,name:document.menu_document_directories_tree
+msgid "Directories' Structure"
+msgstr ""
+
+#. module: document
+#: view:board.board:0
+#: model:ir.actions.act_window,name:document.action_view_document_by_resourcetype_graph
+#: view:report.document.user:0
+msgid "Files by Resource Type"
+msgstr ""
+
+#. module: document
+#: field:report.document.user,name:0
+#: field:report.files.partner,name:0
+msgid "Year"
+msgstr ""
+
+#. module: document
+#: view:document.storage:0
+#: model:ir.model,name:document.model_document_storage
+#: model:ir.ui.menu,name:document.menu_document_storage_media
+msgid "Storage Media"
+msgstr ""
+
+#. module: document
+#: view:document.storage:0
+msgid "Search Document storage"
+msgstr ""
+
+#. module: document
+#: field:document.directory.content,extension:0
+msgid "Document Type"
+msgstr ""
diff --git a/addons/document/wizard/document_configuration.py b/addons/document/wizard/document_configuration.py
index 3485e7412c7..97eda4e2d62 100644
--- a/addons/document/wizard/document_configuration.py
+++ b/addons/document/wizard/document_configuration.py
@@ -22,26 +22,16 @@
from osv import osv, fields
class document_configuration(osv.osv_memory):
-
_name='document.configuration'
- _description = 'Auto Directory Configuration'
+ _description = 'Directory Configuration'
_inherit = 'res.config'
- _columns = {
- 'sale_order' : fields.boolean('Sale Orders', help="Create virtual folders for Sale Orders and Quotations. One virtual folder will appear for each, in which the latest printed PDF document can be downloaded at any time, and where you can manage (view, add, delete) other attachments."),
- 'product' : fields.boolean('Products', help="Create virtual folders for Products. One virtual folder will appear for each product, where you can manage (view, add, delete) the files attached to the product"),
- 'project': fields.boolean('Projects', help="Create virtual folders for Projects. One virtual folder will appear for each project, where you can manage (view, add, delete) the files attached to the project"),
- }
-
-
def execute(self, cr, uid, ids, context=None):
- conf_id = ids and ids[0] or False
- conf = self.browse(cr, uid, conf_id, context=context)
dir_pool = self.pool.get('document.directory')
data_pool = self.pool.get('ir.model.data')
model_pool = self.pool.get('ir.model')
content_pool = self.pool.get('document.directory.content')
- if conf.sale_order and self.pool.get('sale.order'):
+ if self.pool.get('sale.order'):
# Sale order
dir_data_id = data_pool._get_id(cr, uid, 'document', 'dir_sale_order_all')
if dir_data_id:
@@ -90,7 +80,7 @@ class document_configuration(osv.osv_memory):
})
- if conf.product and self.pool.get('product.product'):
+ if self.pool.get('product.product'):
# Product
dir_data_id = data_pool._get_id(cr, uid, 'document', 'dir_product')
if dir_data_id:
@@ -104,7 +94,7 @@ class document_configuration(osv.osv_memory):
'ressource_type_id': mid[0],
})
- if conf.project and self.pool.get('account.analytic.account'):
+ if self.pool.get('account.analytic.account'):
# Project
dir_data_id = data_pool._get_id(cr, uid, 'document', 'dir_project')
if dir_data_id:
diff --git a/addons/document/wizard/document_configuration_view.xml b/addons/document/wizard/document_configuration_view.xml
index eaba3b7115e..a51a7877e60 100644
--- a/addons/document/wizard/document_configuration_view.xml
+++ b/addons/document/wizard/document_configuration_view.xml
@@ -1,31 +1,27 @@
- Auto Configure Directory
+ Auto Configure Directoriesdocument.configurationform
diff --git a/addons/fetchmail_crm/__openerp__.py b/addons/fetchmail_crm/__openerp__.py
index 2be9920ee83..66cff346d0a 100644
--- a/addons/fetchmail_crm/__openerp__.py
+++ b/addons/fetchmail_crm/__openerp__.py
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "crm"],
"author" : "OpenERP SA",
- "category": 'Tools',
+ "category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/fetchmail_crm_claim/__openerp__.py b/addons/fetchmail_crm_claim/__openerp__.py
index b8f0fa24470..cfe6a675d20 100644
--- a/addons/fetchmail_crm_claim/__openerp__.py
+++ b/addons/fetchmail_crm_claim/__openerp__.py
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "crm_claim"],
"author" : "OpenERP SA",
- "category": 'Tools',
+ "category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/fetchmail_hr_recruitment/__openerp__.py b/addons/fetchmail_hr_recruitment/__openerp__.py
index fd5b8346227..75531097645 100644
--- a/addons/fetchmail_hr_recruitment/__openerp__.py
+++ b/addons/fetchmail_hr_recruitment/__openerp__.py
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "hr_recruitment"],
"author" : "OpenERP SA",
- "category": 'Tools',
+ "category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/fetchmail_project_issue/__openerp__.py b/addons/fetchmail_project_issue/__openerp__.py
index 641012fc9ab..1165949108a 100644
--- a/addons/fetchmail_project_issue/__openerp__.py
+++ b/addons/fetchmail_project_issue/__openerp__.py
@@ -24,7 +24,7 @@
"version" : "1.0",
"depends" : ["fetchmail", "project_issue"],
"author" : "OpenERP SA",
- "category": 'Tools',
+ "category": 'Hidden/Link',
"description": """
""",
'website': 'http://www.openerp.com',
diff --git a/addons/google_base_account/__openerp__.py b/addons/google_base_account/__openerp__.py
index 409ca205c74..19afc18bf09 100644
--- a/addons/google_base_account/__openerp__.py
+++ b/addons/google_base_account/__openerp__.py
@@ -23,8 +23,8 @@
{
'name': 'Google user',
'version': '1.0',
- 'category': 'Generic Modules/Others',
- 'description': """The module adds google user in res user""",
+ 'category': 'Hidden',
+ 'description': """The module adds google user in res user""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'depends': ['base'],
diff --git a/addons/google_map/__openerp__.py b/addons/google_map/__openerp__.py
index 5c48a9370d7..423351a53ef 100644
--- a/addons/google_map/__openerp__.py
+++ b/addons/google_map/__openerp__.py
@@ -23,9 +23,7 @@
{
'name': 'Google Map',
'version': '1.0',
- 'category': 'Tools',
- 'complexity': "easy",
- 'category': 'Generic Modules/Others',
+ 'category': 'Hidden',
'description': """
The module adds Google Map field in partner address.
====================================================
diff --git a/addons/google_map/i18n/sr@latin.po b/addons/google_map/i18n/sr@latin.po
index af7d4e21ee3..5d9570489bc 100644
--- a/addons/google_map/i18n/sr@latin.po
+++ b/addons/google_map/i18n/sr@latin.po
@@ -8,26 +8,26 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-12-23 16:09+0000\n"
-"Last-Translator: OpenERP Administrators \n"
+"PO-Revision-Date: 2011-10-06 13:57+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian latin \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 04:55+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: google_map
#: view:res.partner:0
#: view:res.partner.address:0
msgid "Map"
-msgstr "mapa"
+msgstr "Karta"
#. module: google_map
#: view:res.partner:0
#: view:res.partner.address:0
msgid "Street2 : "
-msgstr "Ulica2 "
+msgstr "Ulica2 : "
#. module: google_map
#: model:ir.actions.wizard,name:google_map.wizard_google_map
@@ -41,19 +41,19 @@ msgid ""
"so that we can directly open google map from the\n"
"url widget."
msgstr ""
-"Ovaj Modul ubacuje sliku google map u partnerovoj adresi\n"
-"tako da mozemo direktno da otvorimo google map iz tog\n"
-"prozora."
+"Ovaj Modul dodaje google map polje u partnerovoj adresi\n"
+"tako da možemo direktno otvoriti google map iz\n"
+"url vidžeta."
#. module: google_map
#: model:ir.module.module,shortdesc:google_map.module_meta_information
msgid "Google Map"
-msgstr ""
+msgstr "Google Map"
#. module: google_map
#: model:ir.model,name:google_map.model_res_partner_address
msgid "Partner Addresses"
-msgstr "Adresa Partnera"
+msgstr "Partnerove adrese"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Nevažeći XML za pregled arhitekture"
diff --git a/addons/hr/__init__.py b/addons/hr/__init__.py
index 769e894f1bb..e2ff754ad35 100644
--- a/addons/hr/__init__.py
+++ b/addons/hr/__init__.py
@@ -21,9 +21,8 @@
import hr_department
import hr
-import installer
import report
import wizard
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr/__openerp__.py b/addons/hr/__openerp__.py
index 598b49a725e..bca65c54cb2 100644
--- a/addons/hr/__openerp__.py
+++ b/addons/hr/__openerp__.py
@@ -38,7 +38,7 @@ You can manage:
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
'images': ['images/hr_department.jpeg', 'images/hr_employee.jpeg','images/hr_job_position.jpeg'],
- 'depends': ['base_setup', 'resource', 'board'],
+ 'depends': ['base_setup','mail', 'resource', 'board'],
'init_xml': [],
'update_xml': [
'security/hr_security.xml',
diff --git a/addons/hr/hr.py b/addons/hr/hr.py
index e5551060362..7a704de78d0 100644
--- a/addons/hr/hr.py
+++ b/addons/hr/hr.py
@@ -154,7 +154,9 @@ class hr_employee(osv.osv):
'coach_id': fields.many2one('hr.employee', 'Coach'),
'job_id': fields.many2one('hr.job', 'Job'),
'photo': fields.binary('Photo'),
- 'passport_id':fields.char('Passport No', size=64)
+ 'passport_id':fields.char('Passport No', size=64),
+ 'color': fields.integer('Color Index'),
+ 'city': fields.related('address_id', 'city', type='char', string='City'),
}
def unlink(self, cr, uid, ids, context=None):
@@ -203,6 +205,7 @@ class hr_employee(osv.osv):
'active': 1,
'photo': _get_photo,
'marital': 'single',
+ 'color': 0,
}
def _check_recursion(self, cr, uid, ids, context=None):
diff --git a/addons/hr/hr_installer.xml b/addons/hr/hr_installer.xml
index bd6e7ed3f6b..263f842b5b4 100644
--- a/addons/hr/hr_installer.xml
+++ b/addons/hr/hr_installer.xml
@@ -1,29 +1,6 @@
-
- hr.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- HR Management
@@ -32,28 +9,27 @@
- Create your employees
+ Create your Employeesir.actions.act_windowhr.employeeform
- form
-
+ tree,form
+
-
-
+
- Define Your Department Structure
+ Create Your Departmentsir.actions.act_windowhr.departmentformtree,form
- Your Company's Department Structure is used to manage all documents related to employees by departments: expenses and timesheet validation, leaves management, recruitments, etc.
+ Your departments structure is used to manage all documents related to employees by departments: expenses and timesheet validation, leaves management, recruitments, etc.
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index 87a9da2cc6e..f0399a4f5a3 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -33,7 +33,7 @@
-
+
@@ -125,7 +125,70 @@
-
+
+
+ HR - Employess Kanban
+ hr.employee
+ kanban
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ,
+
+
+
+
+ ,
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Employees Structurehr.employee
@@ -149,13 +212,27 @@
Employeeshr.employeeform
- tree,form
+ tree,form,kanban[]{"search_default_department_id": department_id,"search_default_active":eval('True')}Here you can manage your work force by creating employees and assigning them specific properties in the system. Maintain all employee related information and keep track of anything that needs to be recorded for them. The personal information tab will help you maintain their identity data. The Categories tab gives you the opportunity to assign them related employee categories depending on their position and activities within the company. A category can be a seniority level within the company or a department. The Timesheets tab allows to assign them a specific timesheet and analytic journal where they will be able to enter time through the system. In the note tab, you can enter text data that should be recorded for a specific employee.
+
+
+
+ tree
+
+
+
+
+
+
+ form
+
+
+
diff --git a/addons/hr/installer.py b/addons/hr/installer.py
deleted file mode 100644
index 3916acaeb1e..00000000000
--- a/addons/hr/installer.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from osv import fields, osv
-
-class hr_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
- _columns = {
- # Human Resources Management
- 'hr_holidays': fields.boolean('Leaves Management',
- help="Tracks employee leaves, allocation requests and planning."),
- 'hr_expense': fields.boolean('Expenses',
- help="Tracks and manages employee expenses, and can "
- "automatically re-invoice clients if the expenses are "
- "project-related."),
- 'hr_recruitment': fields.boolean('Recruitment Process',
- help="Helps you manage and streamline your recruitment process."),
- 'hr_timesheet_sheet':fields.boolean('Timesheets',
- help="Tracks and helps employees encode and validate timesheets "
- "and attendances."),
- 'hr_contract': fields.boolean("Employee's Contracts",
- help="Extends employee profiles to help manage their contracts."),
- 'hr_evaluation': fields.boolean('Periodic Evaluations',
- help="Lets you create and manage the periodic evaluation and "
- "performance review of employees."),
- 'hr_attendance': fields.boolean('Attendances',
- help="Simplifies the management of employee's attendances."),
- 'hr_payroll': fields.boolean('Payroll',
- help="Generic Payroll system."),
- 'hr_payroll_account': fields.boolean('Payroll Accounting',
- help="Generic Payroll system Integrated with Accountings."),
- }
-hr_installer()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_attendance/__openerp__.py b/addons/hr_attendance/__openerp__.py
index f7111fdb191..3d945910144 100644
--- a/addons/hr_attendance/__openerp__.py
+++ b/addons/hr_attendance/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Attendances Of Employees',
+ 'name': 'Attendances',
'version': '1.1',
'category': 'Human Resources',
'complexity': "easy",
diff --git a/addons/hr_attendance/report/attendance_by_month.py b/addons/hr_attendance/report/attendance_by_month.py
index 2b708434317..80646be85f4 100644
--- a/addons/hr_attendance/report/attendance_by_month.py
+++ b/addons/hr_attendance/report/attendance_by_month.py
@@ -30,9 +30,10 @@ from report.interface import toxml
from report import report_sxw
from tools import ustr
+from tools.translate import _
one_day = relativedelta(days=1)
-month2name = [0, 'January', 'February', 'March', 'April', 'May', 'Jun', 'July', 'August', 'September', 'October', 'November', 'December']
+month2name = [0, 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
def hour2str(h):
hours = int(h)
@@ -52,7 +53,7 @@ class report_custom(report_rml):
context = {}
month = datetime(datas['form']['year'], datas['form']['month'], 1)
emp_ids = context.get('active_ids', [])
- user_xml = ['%s' % month2name[month.month], '%s' % month.year]
+ user_xml = ['%s' % _(month2name[month.month]), '%s' % month.year]
if emp_ids:
for emp in obj_emp.read(cr, uid, emp_ids, ['name']):
stop, days_xml = False, []
@@ -95,7 +96,7 @@ class report_custom(report_rml):
days_xml.append(today_xml)
today, tomor = tomor, tomor + one_day
user_xml.append(user_repr % '\n'.join(days_xml))
-
+
rpt_obj = pooler.get_pool(cr.dbname).get('hr.employee')
rml_obj=report_sxw.rml_parse(cr, uid, rpt_obj._name,context)
header_xml = '''
@@ -104,7 +105,7 @@ class report_custom(report_rml):
%s
''' % (str(rml_obj.formatLang(time.strftime("%Y-%m-%d"),date=True))+' ' + str(time.strftime("%H:%M")),pooler.get_pool(cr.dbname).get('res.users').browse(cr,uid,uid).company_id.name)
-
+
first_date = str(month)
som = datetime.strptime(first_date, '%Y-%m-%d %H:%M:%S')
eom = som + timedelta(int(dy)-1)
@@ -113,12 +114,12 @@ class report_custom(report_rml):
cell=1
date_xml.append('')
if day_diff.days>=30:
- date_xml += ['' % (x, som.replace(day=x).strftime('%a'),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
+ date_xml += ['' % (x, _(som.replace(day=x).strftime('%a')),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
else:
if day_diff.days>=(lengthmonth(som.year, som.month)-som.day):
- date_xml += ['' % (x, som.replace(day=x).strftime('%a'),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
+ date_xml += ['' % (x, _(som.replace(day=x).strftime('%a')),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
else:
- date_xml += ['' % (x, som.replace(day=x).strftime('%a'),x-som.day+1) for x in range(som.day, eom.day+1)]
+ date_xml += ['' % (x, _(som.replace(day=x).strftime('%a')),x-som.day+1) for x in range(som.day, eom.day+1)]
cell=x-som.day+1
day_diff1=day_diff.days-cell+1
width_dict={}
@@ -129,12 +130,12 @@ class report_custom(report_rml):
month=som.month
month_dict[j]=som.strftime('%B')
width_dict[j]=cell
-
+
while day_diff1>0:
if month+i<=12:
if day_diff1 > lengthmonth(year,i+month): # Not on 30 else you have problems when entering 01-01-2009 for example
som1=datetime.date(year,month+i,1)
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, lengthmonth(year,i+month)+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, lengthmonth(year,i+month)+1)]
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
@@ -142,7 +143,7 @@ class report_custom(report_rml):
width_dict[j]=x
else:
som1=datetime.date(year,month+i,1)
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, eom.day+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, eom.day+1)]
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
@@ -156,7 +157,7 @@ class report_custom(report_rml):
i=1
if day_diff1>=30:
som1=datetime.date(years,i,1)
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, lengthmonth(years,i)+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, lengthmonth(years,i)+1)]
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
@@ -167,7 +168,7 @@ class report_custom(report_rml):
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, eom.day+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, eom.day+1)]
cell=cell+x
width_dict[j]=x
day_diff1=day_diff1-x
@@ -176,10 +177,11 @@ class report_custom(report_rml):
xml = '''
%s
+ %s
%s
%s
- ''' % (header_xml,'\n'.join(user_xml),date_xml)
+ ''' % (header_xml,_('Attendances By Month'),'\n'.join(user_xml),date_xml)
return xml
report_custom('report.hr.attendance.bymonth', 'hr.employee', '', 'addons/hr_attendance/report/bymonth.xsl')
diff --git a/addons/hr_attendance/report/bymonth.xsl b/addons/hr_attendance/report/bymonth.xsl
index 23e7fb14b3d..0ec0a23cc8d 100644
--- a/addons/hr_attendance/report/bymonth.xsl
+++ b/addons/hr_attendance/report/bymonth.xsl
@@ -12,6 +12,7 @@
+
@@ -29,7 +30,7 @@
- Attendances By Month
+ week
@@ -53,7 +54,14 @@
-
+
+
+
+
+
+
+
+
diff --git a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
index 7a51c2b9e1e..2631139b38d 100644
--- a/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
+++ b/addons/hr_attendance/wizard/hr_attendance_sign_in_out.py
@@ -29,7 +29,7 @@ class hr_si_so_ask(osv.osv_memory):
_columns = {
'name': fields.char('Employees name', size=32, required=True, readonly=True),
'last_time': fields.datetime('Your last sign out', required=True),
- 'emp_id': fields.char('Empoyee ID', size=32, required=True, readonly=True),
+ 'emp_id': fields.many2one('hr.employee', 'Empoyee ID', readonly=True),
}
def _get_empname(self, cr, uid, context=None):
@@ -52,10 +52,12 @@ class hr_si_so_ask(osv.osv_memory):
def sign_in(self, cr, uid, ids, context=None):
data = self.read(cr, uid, ids, [], context=context)[0]
+ data['emp_id'] = data['emp_id'] and data['emp_id'][0]
return self.pool.get('hr.sign.in.out').sign_in(cr, uid, data, context)
def sign_out(self, cr, uid, ids, context=None):
data = self.read(cr, uid, ids, [], context=context)[0]
+ data['emp_id'] = data['emp_id'] and data['emp_id'][0]
return self.pool.get('hr.sign.in.out').sign_out(cr, uid, data, context)
hr_si_so_ask()
@@ -68,7 +70,7 @@ class hr_sign_in_out(osv.osv_memory):
_columns = {
'name': fields.char('Employees name', size=32, required=True, readonly=True),
'state': fields.char('Current state', size=32, required=True, readonly=True),
- 'emp_id': fields.char('Employee ID', size=32, required=True, readonly=True),
+ 'emp_id': fields.many2one('hr.employee', 'Empoyee ID', readonly=True),
}
def _get_empid(self, cr, uid, context=None):
@@ -88,6 +90,7 @@ class hr_sign_in_out(osv.osv_memory):
obj_model = self.pool.get('ir.model.data')
att_obj = self.pool.get('hr.attendance')
data = self.read(cr, uid, ids, [], context=context)[0]
+ data['emp_id'] = data['emp_id'] and data['emp_id'][0]
emp_id = data['emp_id']
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id)], limit=1, order='name desc')
last_att = att_obj.browse(cr, uid, att_id, context=context)
@@ -113,6 +116,7 @@ class hr_sign_in_out(osv.osv_memory):
obj_model = self.pool.get('ir.model.data')
att_obj = self.pool.get('hr.attendance')
data = self.read(cr, uid, ids, [], context=context)[0]
+ data['emp_id'] = data['emp_id'] and data['emp_id'][0]
emp_id = data['emp_id']
att_id = att_obj.search(cr, uid, [('employee_id', '=', emp_id),('action', '!=', 'action')], limit=1, order='name desc')
last_att = att_obj.browse(cr, uid, att_id, context=context)
diff --git a/addons/hr_contract/__openerp__.py b/addons/hr_contract/__openerp__.py
index 091204fcf74..a0d303383f7 100644
--- a/addons/hr_contract/__openerp__.py
+++ b/addons/hr_contract/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Human Resources Contracts',
+ 'name': "Employee's Contracts",
'version': '1.0',
'category': 'Human Resources',
'complexity': "easy",
diff --git a/addons/hr_evaluation/__openerp__.py b/addons/hr_evaluation/__openerp__.py
index 95ef4512d5c..bed442dc2ad 100644
--- a/addons/hr_evaluation/__openerp__.py
+++ b/addons/hr_evaluation/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name" : "Human Resources Evaluation",
+ "name" : "Periodic Evaluations",
"version": "0.1",
"author": "OpenERP SA",
"category": "Human Resources",
@@ -39,7 +39,7 @@ level of employee hierarchy fills what and final review and evaluation
is done by the manager.Every evaluation filled by the employees can be viewed
in the form of pdf file. Implements a dashboard for My Current Evaluations
""",
- "demo": ["hr_evaluation_demo.xml", ],
+ "demo": [],
"data": [
"security/ir.model.access.csv",
"security/hr_evaluation_security.xml",
diff --git a/addons/hr_evaluation/hr_evaluation.py b/addons/hr_evaluation/hr_evaluation.py
index d79cf90b915..03ff1692009 100644
--- a/addons/hr_evaluation/hr_evaluation.py
+++ b/addons/hr_evaluation/hr_evaluation.py
@@ -39,6 +39,8 @@ class hr_evaluation_plan(osv.osv):
}
_defaults = {
'active': True,
+ 'month_first': 6,
+ 'month_next': 12,
'company_id': lambda s,cr,uid,c: s.pool.get('res.company')._company_default_get(cr, uid, 'account.account', context=c),
}
hr_evaluation_plan()
diff --git a/addons/hr_evaluation/hr_evaluation_data.xml b/addons/hr_evaluation/hr_evaluation_data.xml
index a83caa71173..b69671f2343 100644
--- a/addons/hr_evaluation/hr_evaluation_data.xml
+++ b/addons/hr_evaluation/hr_evaluation_data.xml
@@ -593,5 +593,636 @@ Once the form had been filled, the employee send it to his supervisor.
+
+
+ Employee Opinion
+ 20
+
+
+
+ 5
+
+
+ Process
+
+
+
+
+ Survey
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Employee Details
+
+ multiple_textboxes_diff_type
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Engagement
+
+ matrix_of_choices_only_one_ans
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Leadership
+
+ matrix_of_choices_only_one_ans
+
+
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Effectiveness
+
+ matrix_of_choices_only_one_ans
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Continuous Improvement
+
+ matrix_of_choices_only_one_ans
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Openness
+
+ matrix_of_choices_only_one_ans
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Miscellaneous
+
+ matrix_of_choices_only_one_ans
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ Additional comments :
+
+ comment
+ The comment you entered is in an invalid format.
+
+
+
+ Other
+
+
+
+
+ 1
+ do_not_validate
+ do_not_validate
+ Please enter a comment.
+ The choices need to add up to [enter sum here].
+
+ The comment you entered is in an invalid format.
+
+ This question requires an answer.
+
+ At the supervisor's appraisal date
+
+ descriptive_text
+ The comment you entered is in an invalid format.
+ * His direct reports will be invited through OpenERP to express a feedback on their supervisor's leadership and to give their opinion about their own engagement and effectiveness, the continuous improvement and openness in action in the company, ...
+
+* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor.
+* The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below :
+
+ 1 - Significantly exceeds standards and expectations required of the position
+ 2 - Exceeds standards and expectations
+ 3 - Meet standards and expectations
+ 4 - Did not meet standards and expectations
+ 5 - Significantly below standards and expectations
+
+
+
+ Other
+
+
+
+
+ 1
+ 1
+ 1
+
+
+
+ 1
+ 1
+ 2
+
+
+
+ 1
+ 1
+ 3
+
+
+
+ 1
+ 1
+ 4
+
+
+
+ 1
+ 1
+ 5
+
+
+
+ 1
+ 1
+ 1
+
+
+
+ 1
+ 1
+ 2
+
+
+
+ 1
+ 1
+ 3
+
+
+
+ 1
+ 1
+ 4
+
+
+
+ 1
+ 1
+ 5
+
+
+
+ 1
+ 1
+ 1
+
+
+
+ 1
+ 1
+ 2
+
+
+
+ 1
+ 1
+ 3
+
+
+
+ 1
+ 1
+ 4
+
+
+
+ 1
+ 1
+ 5
+
+
+
+ 1
+ 1
+ 1
+
+
+
+ 1
+ 1
+ 2
+
+
+
+ 1
+ 1
+ 3
+
+
+
+ 1
+ 1
+ 4
+
+
+
+ 1
+ 1
+ 5
+
+
+
+ 1
+ 1
+ 1
+
+
+
+ 1
+ 1
+ 2
+
+
+
+ 1
+ 1
+ 3
+
+
+
+ 1
+ 1
+ 4
+
+
+
+ 1
+ 1
+ 5
+
+
+
+ 1
+ 1
+ 1
+
+
+
+ 1
+ 1
+ 2
+
+
+
+ 1
+ 1
+ 3
+
+
+
+ 1
+ 1
+ 4
+
+
+
+ 1
+ 1
+ 5
+
+
+
+ 1
+ Demonstrates genuine concern for me as a person.
+
+
+
+
+ 1
+ I'm efficient at work and my achievements are successful.
+
+
+
+
+ 1
+ I am proud to tell others I work here.
+
+
+
+
+ 0
+ Name of your direct supervisor
+
+ char
+
+
+
+ 1
+ Actions by Executive management show genuine interest in the well-being of employees.
+
+
+
+
+ 1
+ I know the company's values and live them.
+
+
+
+
+ 1
+ My work contributes towards the continuous improvement of the company, our services or products.
+
+
+
+
+ 1
+ I have enough work.
+
+
+
+
+ 0
+ Date
+
+ datetime
+
+
+
+ 1
+ I consistently acquire new knowledge, skills or understanding through contact with my supervisor. He helps me growing my compete
+
+
+
+
+ 1
+ My job provides me with a sense of personal accomplishment.
+
+
+
+
+ 1
+ What I did several months ago is still of use to the company, the services or the products today.
+
+
+
+
+ 1
+ My best achievements have been communicated to the community, internally or to customers.
+
+
+
+
+ 1
+ I have the same opportunity to succeed as others with similar experiences, performance and educational background.
+
+
+
+
+ 1
+ Compared to similar jobs in other companies where I could work, my total compensation is:
+(Scale: Well below others, Below othe
+
+
+
+
+ 1
+ Overall, I believe the quality of products and/or services my workgroup delivers is improving.
+
+
+
+
+ 1
+ I would prefer to remain with this company even if a comparable job were available in another company.
+
+
+
+
+ 1
+ Listens and takes into account all ideas and do his best to put in place the best of these.
+
+
+
+
+ 1
+ I mostly work on value-added tasks for the company, the products or the services. (Value-added task : significant improvement pe
+
+
+
+
+ 1
+ Our workgroup identifies and reduces waste of time in our activities and processes.
+
+
+
+
+ 1
+ Taking everything into account, how satisfied are you with your current job?
+
+
+
+
+ 1
+ I understand the company strategy and how my workgroup supports it.
+
+
+
+
+ 1
+ I am willing to put in a great deal of effort beyond what is expected to help my workgroup succeed.
+
+
+
+
+ 1
+ I believe the information that I get from the person I report to.
+
+
+
+
+
+
+
+
+ Manager's Evaluation Plan
+
+
+
+
+
+
+
+
+ Send to Subordinates
+
+
+
+ bottom-up
+
+
+
+
+
+
+
+
+ Send to Managers
+
+
+
+ top-down
+
+
+
+
+
+
+
+
+ Send to Employee
+
+
+
+ self
+
+
+
+
+
+
+
+
+ Final Interview With Manager
+
+
+
+ final
+
+
+
+
+
+
+
+
+
+
+ Run Employee Evaluation
+
+
+ 1
+ days
+ -1
+
+
+
+
+
+
diff --git a/addons/hr_evaluation/hr_evaluation_demo.xml b/addons/hr_evaluation/hr_evaluation_demo.xml
deleted file mode 100644
index a7be585272f..00000000000
--- a/addons/hr_evaluation/hr_evaluation_demo.xml
+++ /dev/null
@@ -1,857 +0,0 @@
-
-
-
-
-
- Employee Opinion
- 20
-
-
-
- 5
-
-
-
-
-
- Process
-
-
-
-
-
-
-
- Survey
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Employee Details
-
- multiple_textboxes_diff_type
- The comment you entered is in an invalid format.
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Engagement
-
- matrix_of_choices_only_one_ans
- The comment you entered is in an invalid format.
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Leadership
-
- matrix_of_choices_only_one_ans
-
-
-
-
-
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Effectiveness
-
- matrix_of_choices_only_one_ans
- The comment you entered is in an invalid format.
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Continuous Improvement
-
- matrix_of_choices_only_one_ans
- The comment you entered is in an invalid format.
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Openness
-
- matrix_of_choices_only_one_ans
- The comment you entered is in an invalid format.
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Miscellaneous
-
- matrix_of_choices_only_one_ans
- The comment you entered is in an invalid format.
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- Additional comments :
-
- comment
- The comment you entered is in an invalid format.
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- do_not_validate
- do_not_validate
- Please enter a comment.
- The choices need to add up to [enter sum here].
-
- The comment you entered is in an invalid format.
-
- This question requires an answer.
-
- At the supervisor's appraisal date
-
- descriptive_text
- The comment you entered is in an invalid format.
- * His direct reports will be invited through OpenERP to express a feedback on their supervisor's leadership and to give their opinion about their own engagement and effectiveness, the continuous improvement and openness in action in the company, ...
-
-* The employees will send back their anonymous answers to OpenERP. The data will be handled by the HR manager and a brief summary of the data will be sent to the concerned supervisor, to his team and to the supervisor's supervisor.
-* The appraiser should rate the employee’s major work accomplishments and performance according to the metric provided below :
-
- 1 - Significantly exceeds standards and expectations required of the position
- 2 - Exceeds standards and expectations
- 3 - Meet standards and expectations
- 4 - Did not meet standards and expectations
- 5 - Significantly below standards and expectations
-
-
-
- Other
-
-
-
-
-
-
-
- 1
- 1
- 1
-
-
-
-
-
-
- 1
- 1
- 2
-
-
-
-
-
-
- 1
- 1
- 3
-
-
-
-
-
-
- 1
- 1
- 4
-
-
-
-
-
-
- 1
- 1
- 5
-
-
-
-
-
-
- 1
- 1
- 1
-
-
-
-
-
-
- 1
- 1
- 2
-
-
-
-
-
-
- 1
- 1
- 3
-
-
-
-
-
-
- 1
- 1
- 4
-
-
-
-
-
-
- 1
- 1
- 5
-
-
-
-
-
-
- 1
- 1
- 1
-
-
-
-
-
-
- 1
- 1
- 2
-
-
-
-
-
-
- 1
- 1
- 3
-
-
-
-
-
-
- 1
- 1
- 4
-
-
-
-
-
-
- 1
- 1
- 5
-
-
-
-
-
-
- 1
- 1
- 1
-
-
-
-
-
-
- 1
- 1
- 2
-
-
-
-
-
-
- 1
- 1
- 3
-
-
-
-
-
-
- 1
- 1
- 4
-
-
-
-
-
-
- 1
- 1
- 5
-
-
-
-
-
-
- 1
- 1
- 1
-
-
-
-
-
-
- 1
- 1
- 2
-
-
-
-
-
-
- 1
- 1
- 3
-
-
-
-
-
-
- 1
- 1
- 4
-
-
-
-
-
-
- 1
- 1
- 5
-
-
-
-
-
-
- 1
- 1
- 1
-
-
-
-
-
-
- 1
- 1
- 2
-
-
-
-
-
-
- 1
- 1
- 3
-
-
-
-
-
-
- 1
- 1
- 4
-
-
-
-
-
-
- 1
- 1
- 5
-
-
-
-
-
-
- 1
- Demonstrates genuine concern for me as a person.
-
-
-
-
-
-
-
- 1
- I'm efficient at work and my achievements are successful.
-
-
-
-
-
-
-
- 1
- I am proud to tell others I work here.
-
-
-
-
-
-
-
- 0
- Name of your direct supervisor
-
- char
-
-
-
-
-
-
- 1
- Actions by Executive management show genuine interest in the well-being of employees.
-
-
-
-
-
-
-
- 1
- I know the company's values and live them.
-
-
-
-
-
-
-
- 1
- My work contributes towards the continuous improvement of the company, our services or products.
-
-
-
-
-
-
-
- 1
- I have enough work.
-
-
-
-
-
-
-
- 0
- Date
-
- datetime
-
-
-
-
-
-
- 1
- I consistently acquire new knowledge, skills or understanding through contact with my supervisor. He helps me growing my compete
-
-
-
-
-
-
-
- 1
- My job provides me with a sense of personal accomplishment.
-
-
-
-
-
-
-
- 1
- What I did several months ago is still of use to the company, the services or the products today.
-
-
-
-
-
-
-
- 1
- My best achievements have been communicated to the community, internally or to customers.
-
-
-
-
-
-
-
- 1
- I have the same opportunity to succeed as others with similar experiences, performance and educational background.
-
-
-
-
-
-
-
- 1
- Compared to similar jobs in other companies where I could work, my total compensation is:
-(Scale: Well below others, Below othe
-
-
-
-
-
-
-
- 1
- Overall, I believe the quality of products and/or services my workgroup delivers is improving.
-
-
-
-
-
-
-
- 1
- I would prefer to remain with this company even if a comparable job were available in another company.
-
-
-
-
-
-
-
- 1
- Listens and takes into account all ideas and do his best to put in place the best of these.
-
-
-
-
-
-
-
- 1
- I mostly work on value-added tasks for the company, the products or the services. (Value-added task : significant improvement pe
-
-
-
-
-
-
-
- 1
- Our workgroup identifies and reduces waste of time in our activities and processes.
-
-
-
-
-
-
-
- 1
- Taking everything into account, how satisfied are you with your current job?
-
-
-
-
-
-
-
- 1
- I understand the company strategy and how my workgroup supports it.
-
-
-
-
-
-
-
-
- 1
- I am willing to put in a great deal of effort beyond what is expected to help my workgroup succeed.
-
-
-
-
-
-
-
- 1
- I believe the information that I get from the person I report to.
-
-
-
-
-
-
-
-
-
- Manager's Evaluation Plan
-
-
-
-
-
-
-
-
- Send to Subordinates
-
-
-
- bottom-up
-
-
-
-
-
-
-
-
-
-
-
- Send to Managers
-
-
-
- top-down
-
-
-
-
-
-
-
-
-
-
-
- Send to Employee
-
-
-
- self
-
-
-
-
-
-
-
-
-
-
-
- Final Interview With Manager
-
-
-
- final
-
-
-
-
-
-
-
-
-
-
- Run Employee Evaluation
-
-
- 1
- minutes
- -1
-
-
-
-
-
-
- Employee Evaluation
-
- [('employee_id.user_id','=',user.id)]
-
-
-
- Manager Evaluation
-
- ['|',('employee_id.user_id','=',user.id),('employee_id.parent_id.user_id','=',user.id )]
-
-
-
-
-
diff --git a/addons/hr_evaluation/hr_evaluation_installer.xml b/addons/hr_evaluation/hr_evaluation_installer.xml
index 4ef0013a4c2..842363559a9 100644
--- a/addons/hr_evaluation/hr_evaluation_installer.xml
+++ b/addons/hr_evaluation/hr_evaluation_installer.xml
@@ -6,7 +6,7 @@
ir.actions.act_windowhr_evaluation.planform
- form,tree
+ tree,form
diff --git a/addons/hr_expense/__openerp__.py b/addons/hr_expense/__openerp__.py
index 09352fcfa89..4a22f00e076 100644
--- a/addons/hr_expense/__openerp__.py
+++ b/addons/hr_expense/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Human Resources Expenses Tracking',
+ 'name': 'Expenses',
'version': '1.0',
'category': 'Human Resources',
'complexity': "easy",
diff --git a/addons/hr_expense/hr_expense_installer_view.xml b/addons/hr_expense/hr_expense_installer_view.xml
index a5c378238a6..bdb5fdedcb4 100644
--- a/addons/hr_expense/hr_expense_installer_view.xml
+++ b/addons/hr_expense/hr_expense_installer_view.xml
@@ -24,6 +24,7 @@
[('hr_expense_ok','=',True)]
+ Define one product for each expense type allowed for an employee (travel by car, hostel, restaurant, etc). If you reimburse the employees at a fixed rate, set a cost and a unit of measure on the product. If you reimburse based on real costs, set the cost at 0.00. The user will set the real price when recording his expense sheet.
diff --git a/addons/hr_holidays/__openerp__.py b/addons/hr_holidays/__openerp__.py
index 63c2eb76195..563bb409b41 100644
--- a/addons/hr_holidays/__openerp__.py
+++ b/addons/hr_holidays/__openerp__.py
@@ -21,7 +21,7 @@
{
- "name": "Human Resources: Holidays management",
+ "name": "Leaves Management",
"version": "1.5",
"author": ['OpenERP SA', 'Axelor'],
"category": "Human Resources",
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index 2dcb448d3cf..77cd53551b8 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -358,12 +358,24 @@ class hr_employee(osv.osv):
leave_id = holiday_obj.create(cr, uid, {'name': _('Leave Request for %s') % employee.name, 'employee_id': employee.id, 'holiday_status_id': status_id, 'type': 'remove', 'holiday_type': 'employee', 'number_of_days_temp': abs(diff)}, context=context)
else:
return False
- holiday_obj.holidays_confirm(cr, uid, [leave_id])
- holiday_obj.holidays_validate2(cr, uid, [leave_id])
+ wf_service = netsvc.LocalService("workflow")
+ wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'confirm', cr)
+ wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'validate', cr)
+ wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'second_validate', cr)
return True
def _get_remaining_days(self, cr, uid, ids, name, args, context=None):
- cr.execute("SELECT sum(h.number_of_days_temp) as days, h.employee_id from hr_holidays h join hr_holidays_status s on (s.id=h.holiday_status_id) where h.type='add' and h.state='validate' and s.limit=False group by h.employee_id")
+ cr.execute("""SELECT
+ sum(h.number_of_days) as days,
+ h.employee_id
+ from
+ hr_holidays h
+ join hr_holidays_status s on (s.id=h.holiday_status_id)
+ where
+ h.state='validate' and
+ s.limit=False and
+ h.employee_id in (%s)
+ group by h.employee_id"""% (','.join(map(str,ids)),) )
res = cr.dictfetchall()
remaining = {}
for r in res:
@@ -373,11 +385,10 @@ class hr_employee(osv.osv):
remaining[employee_id] = 0.0
return remaining
-
_columns = {
- 'remaining_leaves': fields.function(_get_remaining_days, string='Remaining Legal Leaves', fnct_inv=_set_remaining_days, type="float", help='Total number of legal leaves allocated to this employee, change this value to create allocation/leave requests.', store=True),
+ 'remaining_leaves': fields.function(_get_remaining_days, string='Remaining Legal Leaves', fnct_inv=_set_remaining_days, type="float", help='Total number of legal leaves allocated to this employee, change this value to create allocation/leave requests.'),
}
hr_employee()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/hr_holidays/hr_holidays_view.xml b/addons/hr_holidays/hr_holidays_view.xml
index 80a33b0b72c..b6d6a64ed26 100644
--- a/addons/hr_holidays/hr_holidays_view.xml
+++ b/addons/hr_holidays/hr_holidays_view.xml
@@ -10,7 +10,7 @@
-
+
@@ -21,8 +21,6 @@
-
-
@@ -145,7 +143,7 @@
hr.holidaystree
-
+
@@ -225,7 +223,7 @@
hr.holidaystree
-
+
@@ -314,7 +312,7 @@
formtree,form
- {'search_default_my_leaves': 1, 'search_default_group_type': 1}
+ {'search_default_my_leaves': 1, 'search_default_group_type': 1, 'search_default_validated': 1}[('holiday_type','=','employee')]
@@ -437,7 +435,7 @@
hr.employeetree
-
+
@@ -451,13 +449,14 @@
formtree,form
+ You can assign remaining Legal Leaves for each employee, OpenERP will automatically create and validate allocation requests.
-
-
+
+
@@ -467,7 +466,7 @@
-
+
diff --git a/addons/hr_holidays/report/holidays_summary_report.py b/addons/hr_holidays/report/holidays_summary_report.py
index dd0bd91a0d0..d756dfe6dfd 100644
--- a/addons/hr_holidays/report/holidays_summary_report.py
+++ b/addons/hr_holidays/report/holidays_summary_report.py
@@ -30,6 +30,7 @@ import pooler
import time
from report import report_sxw
from tools import ustr
+from tools.translate import _
def lengthmonth(year, month):
if month == 2 and ((year % 4 == 0) and ((year % 100 != 0) or (year % 400 == 0))):
@@ -69,9 +70,9 @@ def emp_create_xml(self, cr, uid, dept, holiday_type, row_id, empid, name, som,
for index in range(1,61):
display[index]=' '
count=''
-
+
data_xml=['' % (row_id,x,display[x]) for x in range(1,len(display)+1) ]
-
+
# Computing the xml
xml = '''
%s
@@ -120,18 +121,17 @@ class report_custom(report_rml):
# date_xml=[]
for l in range(0,len(legend)):
- date_xml += ['' % (l+1,legend[l][0],legend[l][1],legend[l][2])]
-
+ date_xml += ['' % (l+1,legend[l][0],_(legend[l][1]),legend[l][2])]
date_xml += ['' % (som.strftime('%B'), som.year),'']
cell=1
if day_diff.days>=30:
- date_xml += ['' % (x, som.replace(day=x).strftime('%a'),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
+ date_xml += ['' % (x, _(som.replace(day=x).strftime('%a')),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
else:
if day_diff.days>=(lengthmonth(som.year, som.month)-som.day):
- date_xml += ['' % (x, som.replace(day=x).strftime('%a'),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
+ date_xml += ['' % (x, _(som.replace(day=x).strftime('%a')),x-som.day+1) for x in range(som.day, lengthmonth(som.year, som.month)+1)]
else:
- date_xml += ['' % (x, som.replace(day=x).strftime('%a'),x-som.day+1) for x in range(som.day, eom.day+1)]
+ date_xml += ['' % (x, _(som.replace(day=x).strftime('%a')),x-som.day+1) for x in range(som.day, eom.day+1)]
cell=x-som.day+1
day_diff1=day_diff.days-cell+1
@@ -150,7 +150,7 @@ class report_custom(report_rml):
if month+i<=12:
if day_diff1 > lengthmonth(year,i+month): # Not on 30 else you have problems when entering 01-01-2009 for example
som1=datetime.date(year,month+i,1)
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, lengthmonth(year,i+month)+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, lengthmonth(year,i+month)+1)]
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
@@ -159,7 +159,7 @@ class report_custom(report_rml):
else:
som1=datetime.date(year,month+i,1)
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, eom.day+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, eom.day+1)]
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
@@ -174,7 +174,7 @@ class report_custom(report_rml):
i=1
if day_diff1>=30:
som1=datetime.date(years,i,1)
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, lengthmonth(years,i)+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, lengthmonth(years,i)+1)]
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
@@ -186,7 +186,7 @@ class report_custom(report_rml):
i=i+1
j=j+1
month_dict[j]=som1.strftime('%B')
- date_xml += ['' % (x, som1.replace(day=x).strftime('%a'),cell+x) for x in range(1, eom.day+1)]
+ date_xml += ['' % (x, _(som1.replace(day=x).strftime('%a')),cell+x) for x in range(1, eom.day+1)]
cell=cell+x
width_dict[j]=x
@@ -200,16 +200,16 @@ class report_custom(report_rml):
st+=',' + str(0.4 *width_dict[m])+'cm'
st+=',0.4cm\n'
- months_xml =['' % (x,month_dict[x]) for x in range(1,len(month_dict)+1) ]
+ months_xml =['' % (x, _(month_dict[x])) for x in range(1,len(month_dict)+1) ]
months_xml.append(st)
-
+
emp_xml=''
row_id=1
-
+
if data['model']=='hr.employee':
for id in data['form']['emp']:
items = obj_emp.read(cr, uid, id, ['id','name'])
-
+
emp_xml += emp_create_xml(self, cr, uid, 0, holiday_type, row_id, items['id'], items['name'], som, eom)
row_id = row_id +1
@@ -229,7 +229,7 @@ class report_custom(report_rml):
dept_done=1
emp_xml += emp_create_xml(self, cr, uid, 0, holiday_type, row_id, item['id'], item['name'], som, eom)
row_id = row_id +1
-
+
header_xml = '''
%s
diff --git a/addons/hr_payroll/__openerp__.py b/addons/hr_payroll/__openerp__.py
index 9e7debaa992..34e8924bea5 100644
--- a/addons/hr_payroll/__openerp__.py
+++ b/addons/hr_payroll/__openerp__.py
@@ -20,7 +20,7 @@
#
##############################################################################
{
- 'name': 'Human Resource Payroll',
+ 'name': 'Payroll',
'version': '1.0',
'category': 'Human Resources',
'complexity': "expert",
diff --git a/addons/hr_payroll_account/__openerp__.py b/addons/hr_payroll_account/__openerp__.py
index 5a7f67d5d21..beaa08b56cd 100644
--- a/addons/hr_payroll_account/__openerp__.py
+++ b/addons/hr_payroll_account/__openerp__.py
@@ -20,7 +20,7 @@
#
##############################################################################
{
- 'name': 'Human Resource Payroll Accounting',
+ 'name': 'Payroll Accounting',
'version': '1.0',
'category': 'Human Resources',
'complexity': "expert",
diff --git a/addons/hr_recruitment/__openerp__.py b/addons/hr_recruitment/__openerp__.py
index 790ac78cd4f..b728609c53d 100644
--- a/addons/hr_recruitment/__openerp__.py
+++ b/addons/hr_recruitment/__openerp__.py
@@ -20,7 +20,7 @@
#
##############################################################################
{
- 'name': 'HR - Recruitment',
+ 'name': 'Recruitment Process',
'version': '1.0',
'category': 'Human Resources',
'complexity': "easy",
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index 77a1bcb7b8f..e2ecf522cae 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -180,6 +180,7 @@ class hr_applicant(crm.crm_case, osv.osv):
multi='day_open', type="float", store=True),
'day_close': fields.function(_compute_day, string='Days to Close', \
multi='day_close', type="float", store=True),
+ 'color': fields.integer('Color Index'),
}
def _get_stage(self, cr, uid, context=None):
@@ -194,6 +195,7 @@ class hr_applicant(crm.crm_case, osv.osv):
'priority': lambda *a: '',
'company_id': lambda s, cr, uid, c: s.pool.get('res.company')._company_default_get(cr, uid, 'crm.helpdesk', context=c),
'priority': lambda *a: crm.AVAILABLE_PRIORITIES[2][0],
+ 'color': 0,
}
def onchange_job(self,cr, uid, ids, job, context=None):
@@ -442,6 +444,21 @@ class hr_applicant(crm.crm_case, osv.osv):
res = super(hr_applicant, self).case_reset(cr, uid, ids, *args)
self.write(cr, uid, ids, {'date_open': False, 'date_closed': False})
return res
+
+ def set_priority(self, cr, uid, ids, priority):
+ """Set lead priority
+ """
+ return self.write(cr, uid, ids, {'priority' : priority})
+
+ def set_high_priority(self, cr, uid, ids, *args):
+ """Set lead priority to high
+ """
+ return self.set_priority(cr, uid, ids, '1')
+
+ def set_normal_priority(self, cr, uid, ids, *args):
+ """Set lead priority to normal
+ """
+ return self.set_priority(cr, uid, ids, '3')
def write(self, cr, uid, ids, vals, context=None):
if 'stage_id' in vals and vals['stage_id']:
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index 9883e311fba..0bac3f8615a 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -6,7 +6,7 @@
Applicantshr.applicant
- tree,form,graph,calendar
+ tree,form,graph,calendar,kanban{"search_default_user_id":uid, 'search_default_current': 1,"search_default_department_id": department_id}
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index 8dd5e171206..e5905b16a77 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -277,7 +277,81 @@
+
+
+ Hr Applicants kanban
+ hr.applicant
+ kanban
+
+
+
+
+
+
+
+
+
+
+
# ------------------------------------------------------
# HR Job
# ------------------------------------------------------
diff --git a/addons/hr_timesheet/__openerp__.py b/addons/hr_timesheet/__openerp__.py
index 40e3f720da1..76886a45aaf 100644
--- a/addons/hr_timesheet/__openerp__.py
+++ b/addons/hr_timesheet/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Human Resources (Timesheet encoding)',
'version': '1.0',
- 'category': 'Human Resources',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """
This module implements a timesheet system.
diff --git a/addons/hr_timesheet/hr_timesheet_data.xml b/addons/hr_timesheet/hr_timesheet_data.xml
index 74403343a03..e6130806b2e 100644
--- a/addons/hr_timesheet/hr_timesheet_data.xml
+++ b/addons/hr_timesheet/hr_timesheet_data.xml
@@ -16,7 +16,7 @@
-
+
TSTimesheet Journal
diff --git a/addons/hr_timesheet/hr_timesheet_installer.xml b/addons/hr_timesheet/hr_timesheet_installer.xml
index 66289ed0c0c..cfd2cc8ab88 100644
--- a/addons/hr_timesheet/hr_timesheet_installer.xml
+++ b/addons/hr_timesheet/hr_timesheet_installer.xml
@@ -7,6 +7,7 @@
account.analytic.accountformtree,form
+ You should create an analytic account structure depending on your needs to analyse costs and revenues. In OpenERP, analytic accounts are also used to track customer contracts.
diff --git a/addons/hr_timesheet/hr_timesheet_view.xml b/addons/hr_timesheet/hr_timesheet_view.xml
index 710291c8f32..f2b8a6beb0f 100644
--- a/addons/hr_timesheet/hr_timesheet_view.xml
+++ b/addons/hr_timesheet/hr_timesheet_view.xml
@@ -104,8 +104,8 @@
-
+
diff --git a/addons/hr_timesheet_invoice/__openerp__.py b/addons/hr_timesheet_invoice/__openerp__.py
index 95682d00ef0..d4237baf36c 100644
--- a/addons/hr_timesheet_invoice/__openerp__.py
+++ b/addons/hr_timesheet_invoice/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Invoice on analytic lines',
'version': '1.0',
- 'category': 'Human Resources',
+ 'category': 'Hidden/Link',
'description': """Generate your Invoices from Expenses, Timesheet Entries, ...
Module to generate invoices based on costs (human resources, expenses, ...).
============================================================================
diff --git a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
index b0edacd7272..2ce309e0df4 100644
--- a/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
+++ b/addons/hr_timesheet_invoice/hr_timesheet_invoice_view.xml
@@ -18,7 +18,7 @@
-
+
diff --git a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
index 1983b75d3f6..5e0fc9a5b36 100644
--- a/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
+++ b/addons/hr_timesheet_sheet/hr_timesheet_sheet.py
@@ -774,7 +774,8 @@ class res_company(osv.osv):
_inherit = 'res.company'
_columns = {
'timesheet_range': fields.selection(
- [('day','Day'),('week','Week'),('month','Month'),('year','Year')], 'Timesheet range'),
+ [('day','Day'),('week','Week'),('month','Month')], 'Timesheet range',
+ help="Periodicity on which you validate your timesheets."),
'timesheet_max_difference': fields.float('Timesheet allowed difference(Hours)',
help="Allowed difference in hours between the sign in/out and the timesheet " \
"computation for one sheet. Set this to 0 if you do not want any control."),
diff --git a/addons/html_view/__openerp__.py b/addons/html_view/__openerp__.py
index c4a7f033993..3deceff9d6f 100644
--- a/addons/html_view/__openerp__.py
+++ b/addons/html_view/__openerp__.py
@@ -2,7 +2,7 @@
"name" : "Html View",
"version" : "1.1",
"author" : "OpenERP SA",
- "category" : "Tools",
+ "category" : "Hidden",
"depends" : ['base'],
"init_xml" : ['html_view.xml'],
"demo_xml" : [],
diff --git a/addons/html_view/i18n/ar.po b/addons/html_view/i18n/ar.po
new file mode 100644
index 00000000000..e0ffbe9d036
--- /dev/null
+++ b/addons/html_view/i18n/ar.po
@@ -0,0 +1,63 @@
+# Arabic translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-09-26 21:06+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Arabic \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-09-27 04:47+0000\n"
+"X-Generator: Launchpad (build 14028)\n"
+
+#. module: html_view
+#: field:html.view,name:0
+msgid "Name"
+msgstr "اسم"
+
+#. module: html_view
+#: field:html.view,comp_id:0
+msgid "Company"
+msgstr "شركة"
+
+#. module: html_view
+#: model:ir.actions.act_window,name:html_view.action_html_view_form
+#: model:ir.ui.menu,name:html_view.html_form
+msgid "Html Test"
+msgstr "إختبار HTML"
+
+#. module: html_view
+#: view:html.view:0
+msgid "Html Example"
+msgstr "مثال HTML"
+
+#. module: html_view
+#: model:ir.module.module,shortdesc:html_view.module_meta_information
+msgid "Html View"
+msgstr "عرض HTML"
+
+#. module: html_view
+#: field:html.view,bank_ids:0
+msgid "Banks"
+msgstr "المصارف"
+
+#. module: html_view
+#: model:ir.module.module,description:html_view.module_meta_information
+msgid ""
+"\n"
+" This is the test module which shows html tag supports in normal xml form "
+"view.\n"
+" "
+msgstr ""
+
+#. module: html_view
+#: model:ir.model,name:html_view.model_html_view
+msgid "html.view"
+msgstr ""
diff --git a/addons/html_view/i18n/sr@latin.po b/addons/html_view/i18n/sr@latin.po
index 3c9bf842001..b6ba1e8c4b1 100644
--- a/addons/html_view/i18n/sr@latin.po
+++ b/addons/html_view/i18n/sr@latin.po
@@ -8,24 +8,24 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2010-12-23 11:14+0000\n"
-"Last-Translator: qdp (OpenERP) \n"
+"PO-Revision-Date: 2011-10-06 13:56+0000\n"
+"Last-Translator: Milan Milosevic \n"
"Language-Team: Serbian \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:55+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: html_view
#: field:html.view,name:0
msgid "Name"
-msgstr "Ime"
+msgstr "Naziv"
#. module: html_view
#: field:html.view,comp_id:0
msgid "Company"
-msgstr "Preduzece"
+msgstr "Preduzeće"
#. module: html_view
#: model:ir.actions.act_window,name:html_view.action_html_view_form
@@ -56,6 +56,10 @@ msgid ""
"view.\n"
" "
msgstr ""
+"\n"
+" Ovo je test-modul koji pokazuje html podršku za tegove u uobičajenom xml "
+"obliku pregleda.\n"
+" "
#. module: html_view
#: model:ir.model,name:html_view.model_html_view
diff --git a/addons/idea/__openerp__.py b/addons/idea/__openerp__.py
index 2a561a93b81..e6dab775d6e 100644
--- a/addons/idea/__openerp__.py
+++ b/addons/idea/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Idea Manager',
+ 'name': 'Ideas Box',
'version': '0.1',
- 'category': 'Tools',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """
This module allows your user to easily and efficiently participate in enterprise innovation.
diff --git a/addons/idea/idea_view.xml b/addons/idea/idea_view.xml
index 4ac27fee51f..d5732d51672 100644
--- a/addons/idea/idea_view.xml
+++ b/addons/idea/idea_view.xml
@@ -198,6 +198,7 @@
+
@@ -233,11 +234,7 @@
-
-
-
-
-
+
diff --git a/addons/idea/test/test_idea.yml b/addons/idea/test/test_idea.yml
index 402f93f4817..4ce9d706e69 100644
--- a/addons/idea/test/test_idea.yml
+++ b/addons/idea/test/test_idea.yml
@@ -56,7 +56,7 @@
-
!python {model: idea.post.vote}: |
uid2 = ref('test_idea_user1')
- new_id = self.create(cr, uid2, {'vote': 50}, {"active_ids": [ref("idea_idea_0")]})
+ new_id = self.create(cr, uid2, {'vote': "50"}, {"active_ids": [ref("idea_idea_0")]})
self.do_vote(cr, uid2, [new_id], {"active_ids": [ref("idea_idea_0")]})
- |
@@ -69,7 +69,7 @@
-
!python {model: idea.post.vote}: |
uid2 = ref('test_idea_user2')
- new_id = self.create(cr, uid2, {'vote': 100, 'note': 'We can learn many things from technical presentation'}, {"active_ids": [ref("idea_idea_0")]})
+ new_id = self.create(cr, uid2, {'vote': "100", 'note': 'We can learn many things from technical presentation'}, {"active_ids": [ref("idea_idea_0")]})
self.do_vote(cr, uid2, [new_id], {'active_ids': [ref('idea_idea_0')]})
- |
diff --git a/addons/idea/wizard/idea_post_vote.py b/addons/idea/wizard/idea_post_vote.py
index b54c007549d..df35f42cc33 100644
--- a/addons/idea/wizard/idea_post_vote.py
+++ b/addons/idea/wizard/idea_post_vote.py
@@ -73,12 +73,14 @@ class idea_post_vote(osv.osv_memory):
"""
idea_obj = self.pool.get('idea.idea')
vote_obj = self.pool.get('idea.vote')
+
+ ctx_key = 'idea_ids' if context.get('idea_ids') is not None else 'active_ids'
- for idea in idea_obj.browse(cr, uid, context.get('active_ids', []), context=context):
+ for idea in idea_obj.browse(cr, uid, context.get(ctx_key, []), context=context):
- for active_id in context.get('active_ids'):
+ for idea_id in context.get(ctx_key):
- vote_ids = vote_obj.search(cr, uid, [('user_id', '=', uid), ('idea_id', '=', active_id)])
+ vote_ids = vote_obj.search(cr, uid, [('user_id', '=', uid), ('idea_id', '=', idea_id)])
vote_obj_id = vote_obj.browse(cr, uid, vote_ids)
count = 0
for vote in vote_obj_id:
@@ -166,7 +168,7 @@ class idea_select(osv.osv_memory):
'views': [(id2, 'form'), (False, 'tree'), (False, 'calendar'), (False, 'graph')],
'type': 'ir.actions.act_window',
'target': 'new',
- 'context': {'active_ids': [idea_id]}
+ 'context': {'idea_ids': [idea_id]}
}
return value
diff --git a/addons/import_base/__openerp__.py b/addons/import_base/__openerp__.py
index f244338a7e3..6d4f4374dfe 100644
--- a/addons/import_base/__openerp__.py
+++ b/addons/import_base/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Base framework for module that need to import complex data',
'version': '0.9',
- 'category': 'Generic Modules',
+ 'category': 'Hidden',
'description': """
This module provide a class import_framework to help importing
complex data from other software
diff --git a/addons/import_google/__openerp__.py b/addons/import_google/__openerp__.py
index f1ab89a041d..a0a15756ec3 100644
--- a/addons/import_google/__openerp__.py
+++ b/addons/import_google/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Google Import',
'version': '1.0',
- 'category': 'Generic Modules/Others',
+ 'category': 'Customer Relationship Management',
'description': """The module adds google contact in partner address and add google calendar events details in Meeting""",
'author': 'OpenERP SA',
'website': 'http://www.openerp.com',
diff --git a/addons/import_sugarcrm/__openerp__.py b/addons/import_sugarcrm/__openerp__.py
index 071f58099b3..927a4b542ed 100644
--- a/addons/import_sugarcrm/__openerp__.py
+++ b/addons/import_sugarcrm/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Import SugarCRM Data into OpenERP Module.',
+ 'name': 'Import Data from SugarCRM',
'version': '1.0',
- 'category': 'Generic Modules',
+ 'category': 'Customer Relationship Management',
'description': """This Module Import SugarCRM "Leads", "Opportunities", "Users", "Accounts",
"Contacts", "Employees", Meetings, Phonecalls, Emails, and Project, Project Tasks Data into OpenERP Module.""",
'author': 'OpenERP SA',
diff --git a/addons/knowledge/__init__.py b/addons/knowledge/__init__.py
index 3511d091ecb..9a3d6d2fbb6 100644
--- a/addons/knowledge/__init__.py
+++ b/addons/knowledge/__init__.py
@@ -19,6 +19,5 @@
#
##############################################################################
-import installer
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/knowledge/__openerp__.py b/addons/knowledge/__openerp__.py
index c2f1b2c7a88..2ca58e9861f 100644
--- a/addons/knowledge/__openerp__.py
+++ b/addons/knowledge/__openerp__.py
@@ -25,21 +25,20 @@
"version" : "1.0",
"depends" : ["base","base_setup"],
"author" : "OpenERP SA",
- "category": 'Tools',
+ "category": 'Hidden',
'complexity': "easy",
"description": """
-Installer for knowledge-based tools.
+Installer for knowledge-based Hidden.
====================================
Makes the Knowledge Application Configuration available from where you can install
-document and Wiki based tools.
+document and Wiki based Hidden.
""",
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
'security/knowledge_security.xml',
'security/ir.model.access.csv',
- 'knowledge_installer.xml',
'knowledge_view.xml',
],
'demo_xml': ['knowledge_demo.xml'],
diff --git a/addons/knowledge/installer.py b/addons/knowledge/installer.py
deleted file mode 100644
index 0f6b29597de..00000000000
--- a/addons/knowledge/installer.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from osv import fields, osv
-
-class knowledge_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- # Knowledge Management
- 'document_ftp':fields.boolean('Shared Repositories (FTP)',
- help="Provides an FTP access to your OpenERP's "
- "Document Management System. It lets you access attachments "
- "and virtual documents through a standard FTP client."),
- 'document_webdav':fields.boolean('Shared Repositories (WebDAV)',
- help="Provides a WebDAV access to your OpenERP's Document "
- "Management System. Lets you access attachments and "
- "virtual documents through your standard file browser."),
- 'wiki':fields.boolean('Collaborative Content (Wiki)',
- help="Lets you create wiki pages and page groups in order "
- "to keep track of business knowledge and share it with "
- "and between your employees."),
- # Content templates
- 'wiki_faq':fields.boolean('Template: Internal FAQ',
- help="Creates a skeleton internal FAQ pre-filled with "
- "documentation about OpenERP's Document Management "
- "System."),
- 'wiki_quality_manual':fields.boolean('Template: Quality Manual',
- help="Creates an example skeleton for a standard quality manual."),
- }
- _defaults = {
- 'document_ftp':True,
- }
-
-knowledge_installer()
diff --git a/addons/knowledge/knowledge_installer.xml b/addons/knowledge/knowledge_installer.xml
deleted file mode 100644
index d9a4a45df66..00000000000
--- a/addons/knowledge/knowledge_installer.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- knowledge.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/l10n_at/__openerp__.py b/addons/l10n_at/__openerp__.py
index 6c8e8b5eda3..d28598c1ed2 100644
--- a/addons/l10n_at/__openerp__.py
+++ b/addons/l10n_at/__openerp__.py
@@ -24,7 +24,7 @@
"version" : "1.0",
"author" : "conexus.at",
"website" : "http://www.conexus.at",
- "category" : "Localisation/Account Charts",
+ "category" : "Localization/Account Charts",
"depends" : ["account_chart", 'base_vat'],
"description": "This module provides the standard Accounting Chart for Austria which is based on the Template from BMF.gv.at. Please keep in mind that you should review and adapt it with your Accountant, before using it in a live Environment.",
"demo_xml" : [],
diff --git a/addons/l10n_at/account_chart.xml b/addons/l10n_at/account_chart.xml
index fdebb42ec3b..6e49ef357e4 100644
--- a/addons/l10n_at/account_chart.xml
+++ b/addons/l10n_at/account_chart.xml
@@ -61,6 +61,7 @@
Eigenkapitalequity
+ liabilitybalance
diff --git a/addons/l10n_be/__openerp__.py b/addons/l10n_be/__openerp__.py
index 6fd486f06fb..26c9837a8bf 100644
--- a/addons/l10n_be/__openerp__.py
+++ b/addons/l10n_be/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{ 'name': 'Belgium - Plan Comptable Minimum Normalise',
'version': '1.1',
- 'category': 'Finance',
+ 'category': 'Localization/Account Charts',
'description': """
This is the base module to manage the accounting chart for Belgium in OpenERP.
==============================================================================
diff --git a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
index 2ab26d66439..e43dbfecf2b 100644
--- a/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
+++ b/addons/l10n_be/wizard/l10n_be_partner_vat_listing.py
@@ -117,7 +117,8 @@ class partner_vat_list_13(osv.osv_memory):
""" Partner Vat Listing """
_name = "partner.vat.list_13"
_columns = {
- 'partner_ids': fields.many2many('vat.listing.clients', 'vat_partner_rel', 'vat_id', 'partner_id', 'Clients', required=False, help='You can remove clients/partners which you do not want to show in xml file'),
+ # TODO the referenced model has been deleted at revno 4672.1.2.
+ #'partner_ids': fields.many2many('vat.listing.clients', 'vat_partner_rel', 'vat_id', 'partner_id', 'Clients', required=False, help='You can remove clients/partners which you do not want to show in xml file'),
'name': fields.char('File Name', size=32),
'msg': fields.text('File created', size=64, readonly=True),
'file_save' : fields.binary('Save File', readonly=True),
@@ -127,7 +128,8 @@ class partner_vat_list_13(osv.osv_memory):
return context.get('partner_ids', [])
_defaults={
- 'partner_ids': _get_partners
+ # TODO the referenced model has been deleted at revno 4672.1.2.
+ # 'partner_ids': _get_partners
}
def create_xml(self, cursor, user, ids, context=None):
diff --git a/addons/l10n_be/wizard/l10n_be_vat_intra.py b/addons/l10n_be/wizard/l10n_be_vat_intra.py
index 2596076c048..84093cbe066 100644
--- a/addons/l10n_be/wizard/l10n_be_vat_intra.py
+++ b/addons/l10n_be/wizard/l10n_be_vat_intra.py
@@ -83,9 +83,10 @@ class partner_vat_intra(osv.osv_memory):
else:
data_cmpny = obj_user.browse(cursor, user, user).company_id
data = self.read(cursor, user, ids)[0]
- company_vat = data_cmpny.partner_id.vat.replace(' ','').upper()
+ company_vat = data_cmpny.partner_id.vat
if not company_vat:
raise osv.except_osv(_('Data Insufficient'),_('No VAT Number Associated with Main Company!'))
+ company_vat = company_vat.replace(' ','').upper()
seq_controlref = obj_sequence.get(cursor, user, 'controlref')
seq_declarantnum = obj_sequence.get(cursor, user, 'declarantnum')
diff --git a/addons/l10n_be_hr_payroll/__openerp__.py b/addons/l10n_be_hr_payroll/__openerp__.py
index ca0851ed9eb..b6a36a7528c 100644
--- a/addons/l10n_be_hr_payroll/__openerp__.py
+++ b/addons/l10n_be_hr_payroll/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
'name': 'Belgian Payroll Rules',
- 'category': 'payroll',
+ 'category': 'Localization/Payroll',
'author': 'OpenERP SA',
'depends': ['hr_payroll','hr_contract'],
'version': '1.0',
diff --git a/addons/l10n_br/__openerp__.py b/addons/l10n_br/__openerp__.py
index 578978599a0..ecd6c9d6fa6 100644
--- a/addons/l10n_br/__openerp__.py
+++ b/addons/l10n_br/__openerp__.py
@@ -21,7 +21,7 @@
{
'name': 'Brazilian Localization',
'description': 'Brazilian Localization',
- 'category': 'Finance',
+ 'category': 'Localization/Account Charts',
'description': """
This is the base module to manage the accounting chart for Brazil in OpenERP.
=============================================================================
diff --git a/addons/l10n_br/i18n/sr@latin.po b/addons/l10n_br/i18n/sr@latin.po
new file mode 100644
index 00000000000..89d698474d6
--- /dev/null
+++ b/addons/l10n_br/i18n/sr@latin.po
@@ -0,0 +1,44 @@
+# Serbian Latin translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-07 06:40+0000\n"
+"PO-Revision-Date: 2011-10-06 13:53+0000\n"
+"Last-Translator: Milan Milosevic \n"
+"Language-Team: Serbian Latin \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
+
+#. module: l10n_br
+#: model:ir.actions.todo,note:l10n_br.config_call_account_template_brazilian_localization
+msgid ""
+"Generate Chart of Accounts from a Chart Template. You will be asked to pass "
+"the name of the company, the chart template to follow, the no. of digits to "
+"generate the code for your accounts and Bank account, currency to create "
+"Journals. Thus,the pure copy of chart Template is generated.\n"
+" This is the same wizard that runs from Financial "
+"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
+"Chart of Accounts from a Chart Template."
+msgstr ""
+"Generiše tabelu računâ iz šablona tabelâ. Bićete upitani za ime kompanije, "
+"šablon tabelâ koji ćete pratiti, broj cifara za generisanje koda za Vaše "
+"naloge i bankovni račun, valuta za pravljenje dnevnika. Na taj način se "
+"generiše čista kopija šablona tabelâ.\n"
+"\n"
+" To je isti setup wizard koji se pokreće iz Financial "
+"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
+"Chart of Accounts from a Chart Template."
+
+#. module: l10n_br
+#: model:ir.module.module,description:l10n_br.module_meta_information
+#: model:ir.module.module,shortdesc:l10n_br.module_meta_information
+msgid "Brazilian Localization"
+msgstr "Brazilska lokalizacija"
diff --git a/addons/l10n_ca/__openerp__.py b/addons/l10n_ca/__openerp__.py
index b73f4fbbb05..fbfadbf9755 100644
--- a/addons/l10n_ca/__openerp__.py
+++ b/addons/l10n_ca/__openerp__.py
@@ -23,7 +23,7 @@
"version" : "1.0",
"author" : "Savoir-faire Linux",
"website" : "http://www.savoirfairelinux.com",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
This is the module to manage the English and French - Canadian accounting chart in OpenERP.
===========================================================================================
diff --git a/addons/l10n_ca/account_types_en.xml b/addons/l10n_ca/account_types_en.xml
index 0c507fba98b..1af3fd92205 100644
--- a/addons/l10n_ca/account_types_en.xml
+++ b/addons/l10n_ca/account_types_en.xml
@@ -56,6 +56,7 @@
Equityequity
+ liabilitybalance
diff --git a/addons/l10n_ch/__openerp__.py b/addons/l10n_ch/__openerp__.py
index d3398ccf23a..66a32c80437 100644
--- a/addons/l10n_ch/__openerp__.py
+++ b/addons/l10n_ch/__openerp__.py
@@ -62,7 +62,7 @@ TODO :
""",
"version" : "6.0",
"author" : "Camptocamp SA",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"website": "http://www.camptocamp.com",
"depends" : [
diff --git a/addons/l10n_ch/journal_data.xml b/addons/l10n_ch/journal_data.xml
index ac8c714fbca..c755660d950 100644
--- a/addons/l10n_ch/journal_data.xml
+++ b/addons/l10n_ch/journal_data.xml
@@ -6,7 +6,6 @@
EXPFpurchase
-
@@ -17,7 +16,6 @@
BCHFcash
-
@@ -28,7 +26,6 @@
BEURcash
-
@@ -40,7 +37,6 @@
CAIcash
-
@@ -51,7 +47,6 @@
ODgeneral
-
@@ -63,7 +58,6 @@
situationTrue
-
diff --git a/addons/l10n_cn/__openerp__.py b/addons/l10n_cn/__openerp__.py
index 5674c95cd43..6a063505275 100644
--- a/addons/l10n_cn/__openerp__.py
+++ b/addons/l10n_cn/__openerp__.py
@@ -20,7 +20,7 @@
{
"name" : "中国会计科目表",
"version" : "1.0",
- "category": "Finance",
+ "category": "Localization/Account Charts",
"author" : "openerp-china.org",
"maintainer":"openerp-china.org",
"website":"http://openerp-china.org",
diff --git a/addons/l10n_cr/__openerp__.py b/addons/l10n_cr/__openerp__.py
index a2656e8dc59..5fc4d80d7f7 100644
--- a/addons/l10n_cr/__openerp__.py
+++ b/addons/l10n_cr/__openerp__.py
@@ -38,7 +38,7 @@
'url': 'http://launchpad.net/openerp-costa-rica',
'author': 'ClearCorp S.A.',
'website': 'http://clearcorp.co.cr',
- 'category': 'Finance',
+ 'category': 'Localization/Account Charts',
'description': """
Chart of accounts for Costa Rica.
=================================
diff --git a/addons/l10n_cr/data/account_account_type.xml b/addons/l10n_cr/data/account_account_type.xml
index 76e6c0bdf65..7961f6422a2 100644
--- a/addons/l10n_cr/data/account_account_type.xml
+++ b/addons/l10n_cr/data/account_account_type.xml
@@ -27,6 +27,7 @@
EqEquity
+ liabilitydetail
diff --git a/addons/l10n_de/__openerp__.py b/addons/l10n_de/__openerp__.py
index 9582ce185fa..8cbdaa3b6ee 100644
--- a/addons/l10n_de/__openerp__.py
+++ b/addons/l10n_de/__openerp__.py
@@ -125,7 +125,7 @@
"version" : "1.0",
"author" : "openbig.org",
"website" : "http://www.openbig.org",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
Dieses Modul beinhaltet einen deutschen Kontenrahmen basierend auf dem SKR03.
==============================================================================
diff --git a/addons/l10n_ec/__openerp__.py b/addons/l10n_ec/__openerp__.py
index 27c72e4b2e6..0e93a3ac57b 100644
--- a/addons/l10n_ec/__openerp__.py
+++ b/addons/l10n_ec/__openerp__.py
@@ -20,7 +20,7 @@
{
'name': 'Ecuador - Accounting Chart',
'version': '1.1',
- 'category': 'Finance',
+ 'category': 'Localization/Account Charts',
'description': """
This is the base module to manage the accounting chart for Ecuador in OpenERP.
==============================================================================
diff --git a/addons/l10n_es/__openerp__.py b/addons/l10n_es/__openerp__.py
index aa27dc73f6f..3cdc521ad60 100644
--- a/addons/l10n_es/__openerp__.py
+++ b/addons/l10n_es/__openerp__.py
@@ -26,7 +26,7 @@
"version" : "3.0",
"author" : "Spanish Localization Team",
'website' : 'https://launchpad.net/openerp-spain',
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
Spanish Charts of Accounts (PGCE 2008).
=======================================
diff --git a/addons/l10n_fr/__openerp__.py b/addons/l10n_fr/__openerp__.py
index d0e8f481766..1bcb659c322 100644
--- a/addons/l10n_fr/__openerp__.py
+++ b/addons/l10n_fr/__openerp__.py
@@ -30,7 +30,7 @@
"version" : "1.0",
"author" : "OpenERP SA",
"website": "http://www.openerp.com",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
This is the module to manage the accounting chart for France in OpenERP.
========================================================================
diff --git a/addons/l10n_fr/plan_comptable_general_demo.xml b/addons/l10n_fr/plan_comptable_general_demo.xml
index e3684eb3d34..b78e1821720 100644
--- a/addons/l10n_fr/plan_comptable_general_demo.xml
+++ b/addons/l10n_fr/plan_comptable_general_demo.xml
@@ -94,7 +94,7 @@
Equityequity
- asset
+ liabilitybalance
diff --git a/addons/l10n_gr/__openerp__.py b/addons/l10n_gr/__openerp__.py
index b1bae1a1bfb..72b1d2c7cc4 100644
--- a/addons/l10n_gr/__openerp__.py
+++ b/addons/l10n_gr/__openerp__.py
@@ -24,7 +24,7 @@
"version" : "0.2",
"author" : "P. Christeas, OpenERP SA.",
"website": "http://openerp.hellug.gr/",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
This is the base module to manage the accounting chart for Greece.
==================================================================
diff --git a/addons/l10n_gt/__openerp__.py b/addons/l10n_gt/__openerp__.py
index 8806479b69d..d80c1fa80a7 100644
--- a/addons/l10n_gt/__openerp__.py
+++ b/addons/l10n_gt/__openerp__.py
@@ -35,7 +35,7 @@
{
'name': 'Guatemala - Plan contable general',
'version': '3.0',
- 'category': 'Finance',
+ 'category': 'Localization/Account Charts',
'description': """
This is the base module to manage the accounting chart for Guatemala.
=====================================================================
diff --git a/addons/l10n_in/__openerp__.py b/addons/l10n_in/__openerp__.py
index ab99941c379..9aaec061319 100644
--- a/addons/l10n_in/__openerp__.py
+++ b/addons/l10n_in/__openerp__.py
@@ -29,7 +29,7 @@ Indian Accounting : Chart of Account.
Indian accounting chart and localization.
""",
"author": ['OpenERP SA', 'Axelor'],
- "category": "Finance",
+ "category": "Localization/Account Charts",
"depends": [
"account",
"account_chart"
diff --git a/addons/l10n_it/__openerp__.py b/addons/l10n_it/__openerp__.py
index 41161f67a70..d6138608aa2 100644
--- a/addons/l10n_it/__openerp__.py
+++ b/addons/l10n_it/__openerp__.py
@@ -36,7 +36,7 @@ Piano dei conti italiano di un'impresa generica.
Italian accounting chart and localization.
""",
"license": "AGPL-3",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
'website': 'http://www.openerp-italia.org/',
'init_xml': [
'report.xml',
diff --git a/addons/l10n_lu/__openerp__.py b/addons/l10n_lu/__openerp__.py
index 09d8dbfabe3..7a4436e31c1 100644
--- a/addons/l10n_lu/__openerp__.py
+++ b/addons/l10n_lu/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Luxembourg - Plan Comptable Minimum Normalise',
'version': '1.0',
- 'category': 'Finance',
+ 'category': 'Localization/Account Charts',
'description': """
This is the base module to manage the accounting chart for Luxembourg.
======================================================================
diff --git a/addons/l10n_lu/l10n_lu_data.xml b/addons/l10n_lu/l10n_lu_data.xml
index 940da2177e5..36403f383b0 100644
--- a/addons/l10n_lu/l10n_lu_data.xml
+++ b/addons/l10n_lu/l10n_lu_data.xml
@@ -32,7 +32,7 @@
Equityequity
- asset
+ liabilitybalance
diff --git a/addons/l10n_ma/__openerp__.py b/addons/l10n_ma/__openerp__.py
index 3a26f6992dc..a9bd7ce557e 100644
--- a/addons/l10n_ma/__openerp__.py
+++ b/addons/l10n_ma/__openerp__.py
@@ -23,7 +23,7 @@
"name" : "Maroc - Plan Comptable Général",
"version" : "1.0",
"author" : "kazacube",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
This is the base module to manage the accounting chart for Maroc.
=================================================================
diff --git a/addons/l10n_ma/account_type.xml b/addons/l10n_ma/account_type.xml
index 7d747a68886..d8e688b0b0f 100644
--- a/addons/l10n_ma/account_type.xml
+++ b/addons/l10n_ma/account_type.xml
@@ -5,7 +5,7 @@
Capitaux Propresequity
- asset
+ liabilitybalance
diff --git a/addons/l10n_mx/__openerp__.py b/addons/l10n_mx/__openerp__.py
index 17aea022d48..d56d5f570b1 100644
--- a/addons/l10n_mx/__openerp__.py
+++ b/addons/l10n_mx/__openerp__.py
@@ -23,7 +23,7 @@
"name" : "Mexico - Chart of Account",
"version" : "1.0",
"author" : "RelTek Mexico",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
This is the module to manage the accounting chart for Mexico in OpenERP.
========================================================================
diff --git a/addons/l10n_mx/account_chart.xml b/addons/l10n_mx/account_chart.xml
index ea7b534d503..9a86600101f 100644
--- a/addons/l10n_mx/account_chart.xml
+++ b/addons/l10n_mx/account_chart.xml
@@ -56,6 +56,7 @@
Equityequity
+ liabilitybalance
diff --git a/addons/l10n_nl/__openerp__.py b/addons/l10n_nl/__openerp__.py
index 849053fb0ad..5635e16d6c3 100644
--- a/addons/l10n_nl/__openerp__.py
+++ b/addons/l10n_nl/__openerp__.py
@@ -88,7 +88,7 @@
{
"name" : "Netherlands - Grootboek en BTW rekeningen",
"version" : "1.5",
- "category": "Finance",
+ "category": "Localization/Account Charts",
"description": """
This is the module to manage the accounting chart for Netherlands in OpenERP.
=============================================================================
diff --git a/addons/l10n_pl/__openerp__.py b/addons/l10n_pl/__openerp__.py
index 584a7d27832..0ec97ab7cb6 100644
--- a/addons/l10n_pl/__openerp__.py
+++ b/addons/l10n_pl/__openerp__.py
@@ -25,7 +25,7 @@
"version" : "1.0",
"author" : "Grzegorz Grzelak (Cirrus)",
"website": "http://www.cirrus.pl",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description": """
This is the module to manage the accounting chart and taxes for Poland in OpenERP.
==================================================================================
diff --git a/addons/l10n_ro/__openerp__.py b/addons/l10n_ro/__openerp__.py
index 134a4aea679..647b4b35449 100644
--- a/addons/l10n_ro/__openerp__.py
+++ b/addons/l10n_ro/__openerp__.py
@@ -24,7 +24,7 @@
"version" : "1.1",
"author" : "filsys",
"website": "http://www.filsystem.ro",
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"depends" : ["account_chart", 'base_vat'],
"description": """
This is the module to manage the accounting chart, VAT structure and Registration Number for Romania in OpenERP.
diff --git a/addons/l10n_ro/account_chart.xml b/addons/l10n_ro/account_chart.xml
index f48cc0de7e4..aae1ca9faf8 100644
--- a/addons/l10n_ro/account_chart.xml
+++ b/addons/l10n_ro/account_chart.xml
@@ -61,6 +61,7 @@
Equityequity
+ liabilitybalance
diff --git a/addons/l10n_syscohada/__openerp__.py b/addons/l10n_syscohada/__openerp__.py
index 6cf85ed5f19..0fa4631b1f1 100644
--- a/addons/l10n_syscohada/__openerp__.py
+++ b/addons/l10n_syscohada/__openerp__.py
@@ -23,7 +23,7 @@
"name" : "OHADA - The accounting chart ",
"version" : "1.0",
"author" : "Baamtu Senegal",
- "category" : "Localisation/Account Charts",
+ "category" : "Localization/Account Charts",
"description": """This module implements the accounting chart for OHADA area.
It allows any company or association to manage its financial accounting.
Countries that use OHADA are the following:
@@ -39,4 +39,4 @@
"active": False,
"installable": True
}
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/l10n_syscohada/l10n_syscohada_data.xml b/addons/l10n_syscohada/l10n_syscohada_data.xml
index 1d8a1564348..c5a28dd95da 100644
--- a/addons/l10n_syscohada/l10n_syscohada_data.xml
+++ b/addons/l10n_syscohada/l10n_syscohada_data.xml
@@ -74,7 +74,7 @@
Equityequity
- asset
+ liabilitybalance
diff --git a/addons/l10n_th/__openerp__.py b/addons/l10n_th/__openerp__.py
index 714fc959c4a..1b2c4771aee 100644
--- a/addons/l10n_th/__openerp__.py
+++ b/addons/l10n_th/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Thailand - Thai Chart of Accounts',
'version': '1.0',
- 'category': 'Finance',
+ 'category': 'Localization/Account Charts',
'description': """
Chart of Accounts for Thailand.
===============================
diff --git a/addons/l10n_uk/__openerp__.py b/addons/l10n_uk/__openerp__.py
index cf97b79d323..f6e253fffc2 100644
--- a/addons/l10n_uk/__openerp__.py
+++ b/addons/l10n_uk/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'UK Chart of Accounts - latest (Smartode/CT600)',
'version': '1.0',
- 'category': 'Localisation/Account Charts',
+ 'category': 'Localization/Account Charts',
'description': """This is the latest UK OpenERP localisation necesary to run OpenERP accounting for UK SME's with:
- a CT600-ready chart of accounts
- VAT100-ready tax structure
diff --git a/addons/l10n_ve/__openerp__.py b/addons/l10n_ve/__openerp__.py
index b48c208dd17..45ac68fc105 100644
--- a/addons/l10n_ve/__openerp__.py
+++ b/addons/l10n_ve/__openerp__.py
@@ -26,7 +26,7 @@
"name" : "Venezuela -Chart of Account",
"version" : "1.0",
"author" : ['OpenERP SA', "Netquatro"],
- "category" : "Finance",
+ "category" : "Localization/Account Charts",
"description":
'''
This is the module to manage the accounting chart for Venezuela in OpenERP.
diff --git a/addons/l10n_ve/account_chart.xml b/addons/l10n_ve/account_chart.xml
index b46ff29ef8a..aaa4fe91b08 100644
--- a/addons/l10n_ve/account_chart.xml
+++ b/addons/l10n_ve/account_chart.xml
@@ -56,6 +56,7 @@
Equityequity
+ liabilitybalance
diff --git a/addons/lunch/__openerp__.py b/addons/lunch/__openerp__.py
index d2f91c6f040..2a493f39dcf 100644
--- a/addons/lunch/__openerp__.py
+++ b/addons/lunch/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name": "Lunch Module",
+ "name": "Lunch",
"author": "OpenERP SA",
'complexity': "easy",
"Description": """
@@ -33,7 +33,7 @@
""",
"version": "0.1",
"depends": ["base_tools"],
- "category" : "Tools",
+ "category" : "Hidden",
'description': """
The base module to manage lunch
diff --git a/addons/lunch/i18n/zh_TW.po b/addons/lunch/i18n/zh_TW.po
new file mode 100644
index 00000000000..c29ab2a1fb1
--- /dev/null
+++ b/addons/lunch/i18n/zh_TW.po
@@ -0,0 +1,540 @@
+# Chinese (Traditional) translation for openobject-addons
+# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR , 2011.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME \n"
+"POT-Creation-Date: 2011-01-11 11:15+0000\n"
+"PO-Revision-Date: 2011-09-27 08:10+0000\n"
+"Last-Translator: FULL NAME \n"
+"Language-Team: Chinese (Traditional) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:20+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
+
+#. module: lunch
+#: wizard_view:lunch.cashbox.clean,init:0
+msgid "Reset cashbox"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.act_window,name:lunch.action_lunch_order_form
+#: model:ir.ui.menu,name:lunch.menu_lunch_order_form
+#: model:ir.ui.menu,name:lunch.menu_lunch_reporting_order
+msgid "Lunch Orders"
+msgstr "午膳訂單"
+
+#. module: lunch
+#: wizard_view:lunch.order.cancel,init:0
+msgid "Are you sure you want to cancel this order ?"
+msgstr "是否取消此訂單?"
+
+#. module: lunch
+#: model:ir.ui.menu,name:lunch.menu_lunch_cashmove_form
+msgid "Cash Moves"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.cashmove:0
+#: view:lunch.order:0
+#: view:report.lunch.amount:0
+#: view:report.lunch.order:0
+msgid "Group By..."
+msgstr "分組根據..."
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_lunch_order_confirm
+msgid "confirm Order"
+msgstr "確認訂單"
+
+#. module: lunch
+#: view:report.lunch.order:0
+msgid " 7 Days "
+msgstr " 7 天 "
+
+#. module: lunch
+#: model:ir.module.module,description:lunch.module_meta_information
+msgid ""
+"\n"
+" The base module to manage lunch\n"
+"\n"
+" keep track for the Lunch Order ,Cash Moves ,CashBox ,Product.\n"
+" Apply Different Category for the product.\n"
+" "
+msgstr ""
+
+#. module: lunch
+#: view:lunch.cashmove:0
+#: view:lunch.order:0
+msgid "Today"
+msgstr "今日"
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "March"
+msgstr "三月"
+
+#. module: lunch
+#: report:lunch.order:0
+msgid "Total :"
+msgstr ""
+
+#. module: lunch
+#: field:report.lunch.amount,day:0
+#: view:report.lunch.order:0
+#: field:report.lunch.order,day:0
+msgid "Day"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.wizard,name:lunch.wizard_id_cancel
+#: wizard_view:lunch.order.cancel,init:0
+msgid "Cancel Order"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashmove,amount:0
+#: field:report.lunch.amount,amount:0
+msgid "Amount"
+msgstr ""
+
+#. module: lunch
+#: model:ir.ui.menu,name:lunch.menu_lunch_product_form
+#: view:lunch.product:0
+msgid "Products"
+msgstr ""
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_report_lunch_amount
+msgid "Amount available by user and box"
+msgstr ""
+
+#. module: lunch
+#: view:report.lunch.amount:0
+msgid " Month "
+msgstr ""
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_report_lunch_order
+msgid "Lunch Orders Statistics"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.act_window,name:lunch.action_lunch_cashmove_form
+#: view:lunch.cashmove:0
+#: field:lunch.order,cashmove:0
+msgid "CashMove"
+msgstr ""
+
+#. module: lunch
+#: selection:lunch.order,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.order.confirm:0
+msgid "Confirm"
+msgstr ""
+
+#. module: lunch
+#: model:ir.module.module,shortdesc:lunch.module_meta_information
+msgid "Lunch Module"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.order:0
+msgid "Search Lunch Order"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.order,state:0
+msgid "State"
+msgstr ""
+
+#. module: lunch
+#: field:report.lunch.order,price_total:0
+msgid "Total Price"
+msgstr ""
+
+#. module: lunch
+#: model:ir.ui.menu,name:lunch.menu_lunch_report_amount_tree
+#: view:report.lunch.amount:0
+msgid "Box Amount by User"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashmove,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: lunch
+#: report:lunch.order:0
+msgid "Name/Date"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.order,descript:0
+msgid "Description Order"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.wizard,name:lunch.lunch_order_confirm
+#: wizard_button:lunch.order.confirm,init,go:0
+msgid "Confirm Order"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "July"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.cashmove:0
+#: view:report.lunch.amount:0
+#: view:report.lunch.order:0
+msgid "Box"
+msgstr ""
+
+#. module: lunch
+#: view:report.lunch.order:0
+msgid " 365 Days "
+msgstr ""
+
+#. module: lunch
+#: view:report.lunch.amount:0
+msgid " Month-1 "
+msgstr ""
+
+#. module: lunch
+#: field:report.lunch.amount,date:0
+msgid "Created Date"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.act_window,name:lunch.action_lunch_category_form
+msgid " Product Categories "
+msgstr ""
+
+#. module: lunch
+#: wizard_button:lunch.cashbox.clean,init,zero:0
+msgid "Set to Zero"
+msgstr ""
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_lunch_cashmove
+msgid "Cash Move"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "April"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "September"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "December"
+msgstr ""
+
+#. module: lunch
+#: field:report.lunch.amount,month:0
+#: view:report.lunch.order:0
+#: field:report.lunch.order,month:0
+msgid "Month"
+msgstr ""
+
+#. module: lunch
+#: wizard_field:lunch.order.confirm,init,confirm_cashbox:0
+msgid "Name of box"
+msgstr ""
+
+#. module: lunch
+#: wizard_button:lunch.order.cancel,init,cancel:0
+msgid "Yes"
+msgstr ""
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_lunch_category
+#: view:lunch.category:0
+#: field:lunch.product,category_id:0
+msgid "Category"
+msgstr ""
+
+#. module: lunch
+#: view:report.lunch.amount:0
+msgid " Year "
+msgstr ""
+
+#. module: lunch
+#: model:ir.ui.menu,name:lunch.menu_lunch_category_form
+msgid "Product Categories"
+msgstr ""
+
+#. module: lunch
+#: wizard_button:lunch.order.cancel,init,end:0
+msgid "No"
+msgstr ""
+
+#. module: lunch
+#: wizard_view:lunch.order.confirm,init:0
+msgid "Orders Confirmation"
+msgstr ""
+
+#. module: lunch
+#: wizard_view:lunch.cashbox.clean,init:0
+msgid "Are you sure you want to reset this cashbox ?"
+msgstr ""
+
+#. module: lunch
+#: selection:lunch.order,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "August"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.act_window,name:lunch.action_report_lunch_order_all
+#: view:report.lunch.order:0
+msgid "Lunch Order Analysis"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "June"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashmove,user_cashmove:0
+#: field:lunch.order,user_id:0
+#: field:report.lunch.amount,user_id:0
+msgid "User Name"
+msgstr ""
+
+#. module: lunch
+#: view:report.lunch.order:0
+msgid "Sales Analysis"
+msgstr ""
+
+#. module: lunch
+#: model:ir.ui.menu,name:lunch.menu_lunch
+msgid "Lunch"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.cashmove:0
+#: view:report.lunch.order:0
+msgid "User"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.order,date:0
+msgid "Date"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "November"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "October"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "January"
+msgstr ""
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_lunch_cashbox_clean
+msgid "clean cashbox"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashmove,active:0
+#: field:lunch.product,active:0
+msgid "Active"
+msgstr ""
+
+#. module: lunch
+#: field:report.lunch.order,date:0
+msgid "Date Order"
+msgstr ""
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_lunch_cashbox
+msgid "Cashbox for Lunch "
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.wizard,name:lunch.wizard_clean_cashbox
+msgid "Set CashBox to Zero"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashmove,box:0
+#: field:report.lunch.amount,box:0
+msgid "Box Name"
+msgstr ""
+
+#. module: lunch
+#: wizard_button:lunch.cashbox.clean,init,end:0
+#: wizard_button:lunch.order.confirm,init,end:0
+msgid "Cancel"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.act_window,name:lunch.action_lunch_cashbox_form
+msgid " Cashboxes "
+msgstr ""
+
+#. module: lunch
+#: rml:lunch.order:0
+msgid "Unit Price"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.act_window,name:lunch.action_lunch_product_form
+#: field:lunch.order,product:0
+msgid "Product"
+msgstr ""
+
+#. module: lunch
+#: rml:lunch.order:0
+#: field:lunch.product,description:0
+msgid "Description"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "May"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.order,price:0
+#: field:lunch.product,price:0
+msgid "Price"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.cashmove:0
+msgid "Search CashMove"
+msgstr ""
+
+#. module: lunch
+#: view:report.lunch.amount:0
+msgid "Total box"
+msgstr ""
+
+#. module: lunch
+#: model:ir.model,name:lunch.model_lunch_product
+msgid "Lunch Product"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashbox,sum_remain:0
+msgid "Total Remaining"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.order:0
+msgid "Total price"
+msgstr ""
+
+#. module: lunch
+#: selection:report.lunch.amount,month:0
+#: selection:report.lunch.order,month:0
+msgid "February"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashbox,name:0
+#: field:lunch.cashmove,name:0
+#: field:lunch.category,name:0
+#: rml:lunch.order:0
+#: field:lunch.product,name:0
+msgid "Name"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.cashmove:0
+msgid "Total amount"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.category:0
+msgid "Category related to Products"
+msgstr ""
+
+#. module: lunch
+#: model:ir.ui.menu,name:lunch.menu_lunch_cashbox_form
+#: view:lunch.cashbox:0
+msgid "Cashboxes"
+msgstr ""
+
+#. module: lunch
+#: view:lunch.category:0
+#: rml:lunch.order:0
+#: view:lunch.order:0
+msgid "Order"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.report.xml,name:lunch.report_lunch_order
+#: model:ir.model,name:lunch.model_lunch_order
+#: model:ir.ui.menu,name:lunch.menu_lunch
+#: report:lunch.order:0
+msgid "Lunch Order"
+msgstr ""
+
+#. module: lunch
+#: model:ir.actions.act_window,name:lunch.action_report_lunch_amount_tree
+#: model:ir.ui.menu,name:lunch.menu_lunch_report_amount_tree
+msgid "Cash Position by User"
+msgstr ""
+
+#. module: lunch
+#: field:lunch.cashbox,manager:0
+msgid "Manager"
+msgstr ""
+
+#. module: lunch
+#: view:report.lunch.order:0
+msgid " 30 Days "
+msgstr ""
+
+#. module: lunch
+#: view:lunch.order:0
+msgid "To Confirm"
+msgstr ""
+
+#. module: lunch
+#: field:report.lunch.amount,year:0
+#: view:report.lunch.order:0
+#: field:report.lunch.order,year:0
+msgid "Year"
+msgstr ""
diff --git a/addons/lunch/lunch_installer_view.xml b/addons/lunch/lunch_installer_view.xml
index 693ac9aa27f..716ba36a49c 100644
--- a/addons/lunch/lunch_installer_view.xml
+++ b/addons/lunch/lunch_installer_view.xml
@@ -6,7 +6,8 @@
lunch.productformtree,form
-
+
+ Define all products that the employees can order for the lunch time. If you order lunch at several places, you can use the product categories to split by supplier. It will be easier for the lunch manager to filter lunch orders by categories.
@@ -16,11 +17,12 @@
- Create CashBox
+ Create Lunch Cash Boxesir.actions.act_windowlunch.cashboxform
- form
+ tree,form
+ You can create on cashbox by employee if you want to keep track of the amount due by employee according to what have been ordered.
diff --git a/addons/lunch/lunch_view.xml b/addons/lunch/lunch_view.xml
index 0b2cdf04e89..50932a03437 100644
--- a/addons/lunch/lunch_view.xml
+++ b/addons/lunch/lunch_view.xml
@@ -262,7 +262,7 @@
-
+
@@ -300,7 +300,7 @@
-
+
diff --git a/addons/mail/__openerp__.py b/addons/mail/__openerp__.py
index 08473cad102..47d731aa4e5 100644
--- a/addons/mail/__openerp__.py
+++ b/addons/mail/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Email Subsystem',
'version': '1.0',
- 'category': 'Tools',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """
A generic email subsystem with message storage and queuing
diff --git a/addons/mail/mail_installer.xml b/addons/mail/mail_installer.xml
index 3faf5fad630..022bff6e53b 100644
--- a/addons/mail/mail_installer.xml
+++ b/addons/mail/mail_installer.xml
@@ -2,11 +2,11 @@
- Configure Email Server
+ Configure Email Serversir.actions.act_windowir.mail_serverform
- form
+ tree,form
diff --git a/addons/mail/scripts/__init__.py b/addons/mail/static/scripts/__init__.py
similarity index 100%
rename from addons/mail/scripts/__init__.py
rename to addons/mail/static/scripts/__init__.py
diff --git a/addons/mail/scripts/openerp_mailgate/openerp_mailgate.py b/addons/mail/static/scripts/openerp_mailgate.py
similarity index 100%
rename from addons/mail/scripts/openerp_mailgate/openerp_mailgate.py
rename to addons/mail/static/scripts/openerp_mailgate.py
diff --git a/addons/mail/scripts/openerp_mailgate/__init__.py b/addons/mail/static/scripts/openerp_mailgate/__init__.py
similarity index 100%
rename from addons/mail/scripts/openerp_mailgate/__init__.py
rename to addons/mail/static/scripts/openerp_mailgate/__init__.py
diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py
index 0bfaf06890a..93bf0b004d8 100644
--- a/addons/mail/wizard/mail_compose_message.py
+++ b/addons/mail/wizard/mail_compose_message.py
@@ -82,9 +82,9 @@ class mail_compose_message(osv.osv_memory):
else:
# default mode
result['model'] = context.get('active_model', False)
- if vals:
- for field in fields:
- result.update({field : vals.get(field, False)})
+ for field in vals:
+ if field in fields:
+ result.update({field : vals[field]})
# link to model and record if not done yet
if not result.get('model') or not result.get('res_id'):
diff --git a/addons/marketing/__init__.py b/addons/marketing/__init__.py
index c83787a6ef7..e68279cad8d 100644
--- a/addons/marketing/__init__.py
+++ b/addons/marketing/__init__.py
@@ -19,7 +19,6 @@
#
##############################################################################
-import marketing_wizard
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/marketing/__openerp__.py b/addons/marketing/__openerp__.py
index d9845cd957d..1f1995c52da 100644
--- a/addons/marketing/__openerp__.py
+++ b/addons/marketing/__openerp__.py
@@ -25,7 +25,7 @@
"version" : "1.1",
"depends" : ["base", "base_setup"],
"author" : "OpenERP SA",
- "category": 'Sales',
+ "category": 'Marketing',
'complexity': "expert",
"description": """
Menu for Marketing.
diff --git a/addons/marketing/marketing_view.xml b/addons/marketing/marketing_view.xml
index 9f70651e5ab..a697d586cd4 100644
--- a/addons/marketing/marketing_view.xml
+++ b/addons/marketing/marketing_view.xml
@@ -11,23 +11,5 @@
web_icon="images/marketing.png"
web_icon_hover="images/marketing-hover.png"/>
-
-
- marketing.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py
index 78060b1e571..44a2f1e30bd 100644
--- a/addons/marketing_campaign/__openerp__.py
+++ b/addons/marketing_campaign/__openerp__.py
@@ -21,7 +21,7 @@
{
- "name" : "Marketing Campaign",
+ "name" : "Marketing Campaigns",
"version" : "1.1",
"depends" : ["marketing",
"document",
@@ -29,7 +29,7 @@
"decimal_precision"
],
"author" : "OpenERP SA",
- "category": 'Sales',
+ "category": 'Marketing',
'complexity': "expert",
"description": """
This module provides leads automation through marketing campaigns (campaigns can in fact be defined on any resource, not just CRM Leads).
diff --git a/addons/marketing_campaign_crm_demo/__openerp__.py b/addons/marketing_campaign_crm_demo/__openerp__.py
index 7fd9155bf9b..4841cc1a2e8 100644
--- a/addons/marketing_campaign_crm_demo/__openerp__.py
+++ b/addons/marketing_campaign_crm_demo/__openerp__.py
@@ -27,7 +27,7 @@
"crm",
],
"author" : "OpenERP SA",
- "category": 'Sales',
+ "category": 'Hidden',
"description": """
Demo data for the module marketing_campaign.
============================================
diff --git a/addons/membership/__openerp__.py b/addons/membership/__openerp__.py
index affcf0a0294..20d01b6a60e 100644
--- a/addons/membership/__openerp__.py
+++ b/addons/membership/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Membership',
'version': '0.1',
- 'category': 'Tools',
+ 'category': 'Hidden',
'description': """
This module allows you to manage all operations for managing memberships.
=========================================================================
diff --git a/addons/mrp/__init__.py b/addons/mrp/__init__.py
index 30367ec35f8..52a5bdda77b 100644
--- a/addons/mrp/__init__.py
+++ b/addons/mrp/__init__.py
@@ -22,7 +22,6 @@
import mrp
import stock
import product
-import installer
import wizard
import report
import company
diff --git a/addons/mrp/i18n/fr.po b/addons/mrp/i18n/fr.po
index a1ad6c25fa4..6582e283c5d 100644
--- a/addons/mrp/i18n/fr.po
+++ b/addons/mrp/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:15+0000\n"
-"PO-Revision-Date: 2011-05-24 16:08+0000\n"
+"PO-Revision-Date: 2011-09-26 12:16+0000\n"
"Last-Translator: lholivier \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-09-05 04:59+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-27 04:47+0000\n"
+"X-Generator: Launchpad (build 14028)\n"
#. module: mrp
#: field:mrp.bom,product_uos:0
@@ -91,8 +91,8 @@ msgid ""
"The 'Minimum stock rule' allows the system to create procurement orders "
"automatically as soon as the minimum stock is reached."
msgstr ""
-"La \"règle de stock minimum\" permet au système d'enregistrer "
-"automatiquement les besoins dès que le stock minimum est atteint."
+"La \"règle de stock minimum\" permet au système de créer automatiquement les "
+"approvisionnements dès que le stock minimum est atteint."
#. module: mrp
#: field:mrp.production,picking_id:0
@@ -232,8 +232,8 @@ msgid ""
"In case the Supply method of the product is Produce, the system creates a "
"production order."
msgstr ""
-"Dans le cas où la méthode d'approvisionnement de ce produit est Produire, le "
-"système crée un ordre de fabrication"
+"Dans le cas où la méthode de fourniture de ce produit est \"Produire\", le "
+"système crée un ordre de fabrication."
#. module: mrp
#: view:mrp.production:0
@@ -293,7 +293,7 @@ msgstr "["
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procureserviceproduct0
msgid "Procurement of services"
-msgstr "Besoin de services"
+msgstr "Approvisionnement de services"
#. module: mrp
#: view:mrp.workcenter:0
@@ -322,8 +322,8 @@ msgid ""
"products are typically procured manually or through a minimum stock rule."
msgstr ""
"Le système attend que les produits soient disponibles en stock. Typiquement, "
-"les besoins en ces produits sont traités manuellement ou avec une règle de "
-"stock minimum."
+"les approvisionnements de ces produits sont traités manuellement ou avec une "
+"règle de stock minimum."
#. module: mrp
#: report:mrp.production.order:0
@@ -389,7 +389,7 @@ msgstr "Coût des composants de "
#. module: mrp
#: model:process.transition,name:mrp.process_transition_procurestockableproduct0
msgid "Procurement of stockable Product"
-msgstr "Besoin de produit stocké"
+msgstr "Approvisionnement de produit stocké"
#. module: mrp
#: view:mrp.bom:0
@@ -621,7 +621,7 @@ msgstr "Fabriquer"
#. module: mrp
#: help:mrp.workcenter,costs_cycle:0
msgid "Specify Cost of Work Center per cycle."
-msgstr ""
+msgstr "Précisez le coût du poste de charge par cycle"
#. module: mrp
#: selection:mrp.production,state:0
@@ -852,9 +852,9 @@ msgid ""
"order creates a RFQ for a subcontracting purchase order or waits until the "
"service is done (= the delivery of the products)."
msgstr ""
-"En fonction de la méthode choisie pour \"l'approvisionnement\" du service, "
-"le besoin va générer un appel d'offres pour une commande de sous-traitance, "
-"ou va attendre jusqu'à ce que le service soit effectué (= la livraison des "
+"En fonction de la méthode de fourniture du service, l'approvisionnement va "
+"générer un appel d'offres pour une commande de sous-traitance, ou va "
+"attendre jusqu'à ce que le service soit effectué (= la livraison des "
"produits)."
#. module: mrp
@@ -866,7 +866,7 @@ msgstr "Urgent"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing_workcenter
msgid "Work Center Usage"
-msgstr ""
+msgstr "Utilisation du poste de charge"
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_production
@@ -876,7 +876,7 @@ msgstr "Ordre de fabrication"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_productionprocureproducts0
msgid "Procurement of raw material"
-msgstr "Besoin de matière première"
+msgstr "Approvisionnement de matière première"
#. module: mrp
#: help:mrp.routing.workcenter,hour_nbr:0
@@ -1043,6 +1043,9 @@ msgid ""
"Number of operations this Work Center can do in parallel. If this Work "
"Center represents a team of 5 workers, the capacity per cycle is 5."
msgstr ""
+"Nombre d'opérations simultanées que ce poste de charge peut réaliser. Si ce "
+"poste de charge représente une équipe de 5 personnes, la capacité par cycle "
+"est de 5."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_servicerfq0
@@ -1050,8 +1053,8 @@ msgid ""
"If the service has a 'Buy' supply method, this creates a RFQ, a "
"subcontracting demand for instance."
msgstr ""
-"Si la méthode d'approvisionnement du service est \"Acheter\", ceci va créer "
-"un appel d'offres, par exemple une demande de sous-traitance."
+"Si la méthode de fourniture du service est \"Acheter\", ceci va créer un "
+"appel d'offres, par exemple une demande de sous-traitance."
#. module: mrp
#: field:mrp.production,move_prod_id:0
@@ -1066,7 +1069,7 @@ msgstr "En retard"
#. module: mrp
#: model:process.node,name:mrp.process_node_servicemts0
msgid "Make to stock"
-msgstr "Sur stock"
+msgstr "Production sur stock"
#. module: mrp
#: help:mrp.routing.workcenter,sequence:0
@@ -1139,7 +1142,7 @@ msgid ""
"avoids having to wait for the procurement scheduler to run or having to run "
"the procurement scheduler manually."
msgstr ""
-"Permet le calcul en Juste-à-temps des besoins.\n"
+"Permet le calcul en Juste-à-temps des approvisionnements.\n"
"\n"
"Bien que cela soit plus gourmand en ressources que le fonctionnement "
"standard, le calcul en Juste-à-Temps permet d'éviter d'attendre l'activation "
@@ -1225,6 +1228,41 @@ msgid ""
" * List of procurement in exception\n"
" "
msgstr ""
+"\n"
+" Ceci est la module de base de la gestion de fabrication d'OpenERP.\n"
+"\n"
+" Fonctionnalités :\n"
+" * Fabrication pour stockage / Fabrication pour commande (par ligne)\n"
+" * Nomenclatures multi-niveaux (sans limitations)\n"
+" * Gammes multi-niveaux (sans limitations)\n"
+" * Gamme et poste de charge intégrés avec la comptabilité analytique\n"
+" * Re-planification périodique / module juste à temps\n"
+" * Multi-points de vente, multi-stocks\n"
+" * Différentes Stratégies d'ordonnancement\n"
+" * Méthode des coûts par produit : prix standard , prix moyen\n"
+" * Analyse facilitée des besoins et des incidents\n"
+" * Grande flexibilité\n"
+" * Permet de parcourir la totalité des nomenclatures\n"
+" y compris les nomenclatures filles et les nomenclatures fantômes\n"
+" Il intègre complètement la planification des marchandises stockables,\n"
+" et des services consommables. Les services sont integratés avec le "
+"reste\n"
+" du logiciel. Par exemple, on peut placer un service dans une "
+"nomenclature\n"
+" afin de déclencher automatiquement un achat lors d'un ordre de "
+"fabrication.\n"
+"\n"
+" Rapports fournis par ce module :\n"
+" * Structure et composants de nomenclature\n"
+" * Pévision de la charge pour les postes de charge\n"
+" * Impression des ordres de fabrication\n"
+" * Prévision des stocks\n"
+" Tableau de bord de ce module :\n"
+" * Liste des prochains ordres de production\n"
+" * Liste des livraisons (en sortie de colisage)\n"
+" * Graphique de charge des postes de charge\n"
+" * Liste des approvisionnements en défaut\n"
+" "
#. module: mrp
#: model:ir.actions.act_window,name:mrp.mrp_production_action4
@@ -1359,9 +1397,10 @@ msgid ""
"maxi quantity. It's available in the Inventory management menu and "
"configured by product."
msgstr ""
-"La règle du stock minimum est une règle de gestion automatique des besoins, "
-"basée sur des quantités minimum et maximum. Cette règle est disponible dans "
-"le menu de gestion des stocks, et paramétrable pour chaque produit."
+"La règle du stock minimum est une règle de gestion automatique des "
+"approvisionnements, basée sur des quantités minimum et maximum. Cette règle "
+"est disponible dans le menu de gestion des stocks, et paramétrable pour "
+"chaque produit."
#. module: mrp
#: selection:mrp.workcenter.load,time_unit:0
@@ -1455,13 +1494,13 @@ msgid ""
"In case the Supply method of the product is Buy, the system creates a "
"purchase order."
msgstr ""
-"Dans le cas où la méthode d'approvisionnement est \"Acheter\", le système va "
-"créer un Ordre d'Achat"
+"Dans le cas où la méthode de fourniture est \"Acheter\", le système va créer "
+"un ordre d'achat."
#. module: mrp
#: model:ir.model,name:mrp.model_procurement_order
msgid "Procurement"
-msgstr "Besoin"
+msgstr "Approvisionnement"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_view_mrp_product_price_wizard
@@ -1542,7 +1581,7 @@ msgstr "Actif"
#. module: mrp
#: model:process.node,name:mrp.process_node_procureproducts0
msgid "Procure Products"
-msgstr "Satisfaire le besoin de produit"
+msgstr "Approvisionner les produits"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_workcenter_load_tree
@@ -1592,7 +1631,7 @@ msgstr "Modifier les quantités de produit"
#. module: mrp
#: model:process.node,note:mrp.process_node_productionorder0
msgid "Drives the procurement orders for raw material."
-msgstr "Pilote la gestion des besoins de matières premières"
+msgstr "Pilote la gestion des approvisionnement en matières premières"
#. module: mrp
#: view:mrp.production.order:0
@@ -1719,7 +1758,7 @@ msgstr "Produits consommés"
#: model:process.transition,name:mrp.process_transition_servicemto0
#: model:process.transition,name:mrp.process_transition_stockproduct0
msgid "Make to Order"
-msgstr "Fabrication à la commande"
+msgstr "Production à la demande"
#. module: mrp
#: model:ir.actions.act_window,name:mrp.action_report_mrp_production_order
@@ -1914,7 +1953,7 @@ msgstr "Ordre de Production"
#. module: mrp
#: model:process.node,note:mrp.process_node_productminimumstockrule0
msgid "Automatic procurement rule"
-msgstr "Règle de gestion automatique des besoins"
+msgstr "Règle de gestion automatique des approvisionnements"
#. module: mrp
#: view:mrp.production:0
@@ -2110,7 +2149,7 @@ msgstr "Information de coût"
#. module: mrp
#: model:process.node,name:mrp.process_node_purchaseprocure0
msgid "Procurement Orders"
-msgstr "Besoins"
+msgstr "Ordre d'approvisionnement"
#. module: mrp
#: help:mrp.bom,product_rounding:0
@@ -2315,6 +2354,8 @@ msgid ""
"Description of the Work Center. Explain here what's a cycle according to "
"this Work Center."
msgstr ""
+"Description du poste de charge. Expliquer ici ce qu'est un cycle pour un tel "
+"poste de charge."
#. module: mrp
#: model:ir.model,name:mrp.model_mrp_routing
@@ -2368,7 +2409,7 @@ msgstr "Production"
#. module: mrp
#: view:board.board:0
msgid "Procurements in Exception"
-msgstr "Besoins en exception"
+msgstr "Approvisionnements en exception"
#. module: mrp
#: model:process.transition,name:mrp.process_transition_minimumstockprocure0
@@ -2443,7 +2484,7 @@ msgstr ""
#. module: mrp
#: model:process.node,note:mrp.process_node_procureproducts0
msgid "The way to procurement depends on the product type."
-msgstr "Le moyen de satisfaire le besoin dépend du type de produit"
+msgstr "Le moyen d’approvisionnement dépend du type de produit"
#. module: mrp
#: model:ir.ui.menu,name:mrp.menu_mrp_manufacturing
@@ -2477,8 +2518,8 @@ msgid ""
"Depending on the chosen method to supply the stockable products, the "
"procurement order creates a RFQ, a production order, ... "
msgstr ""
-"Selon la méthode d'approvisionnement choisie pour les produits suivis en "
-"stock, le besoin générera un appel d'offres, un ordre de fabrication, ... "
+"Selon la méthode de fourniture choisie pour les produits suivis en stock, "
+"l'approvisionnement générera un appel d'offres, un ordre de fabrication, ... "
#. module: mrp
#: help:mrp.workcenter,time_stop:0
@@ -2496,8 +2537,8 @@ msgid ""
"If the service has a 'Produce' supply method, this creates a task in the "
"project management module of OpenERP."
msgstr ""
-"Si la méthode d'approvisionnement du service est \"Produire\", ceci va créer "
-"une tâche dans le module de gestion de projets."
+"Si la méthode de fourniture du service est \"Produire\", ceci va créer une "
+"tâche dans le module de gestion de projets."
#. module: mrp
#: model:process.transition,note:mrp.process_transition_productionprocureproducts0
@@ -2506,9 +2547,9 @@ msgid ""
"production order creates as much procurement orders as components listed in "
"the BOM, through a run of the schedulers (MRP)."
msgstr ""
-"Afin de s'approvisionner en matières premières (à acheter ou à fabriquer), "
-"l'ordre de fabrication crée autant de besoins que de composants présents "
-"dans la nomenclature, par le biais des planificateurs (MRP)."
+"Afin de fournir les matières premières (à acheter ou à fabriquer), l'ordre "
+"de fabrication crée autant d'ordres d'approvisionnement que de composants "
+"présents dans la nomenclature, par le biais des planificateurs (MRP)."
#. module: mrp
#: help:mrp.product_price,number:0
@@ -3323,6 +3364,15 @@ msgstr "Année"
#~ msgid "Specify Cost of Work center per cycle."
#~ msgstr "Spécifie le coût par cycle d'un poste de charges."
+#~ msgid ""
+#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
+#~ "Routing is indicated then,the third tab of a production order (workcenters) "
+#~ "will be automatically pre-completed."
+#~ msgstr ""
+#~ "La gamme indique tous les postes de charge utilisés, la durée et/ou le "
+#~ "nombre de cycles. Quand \"Gamme\" est indiqué, le troisième onglet des "
+#~ "ordres de fabrication (postes de charge) est automatiquement pré-rempli."
+
#~ msgid ""
#~ "\n"
#~ " This is the base module to manage the manufacturing process in OpenERP.\n"
@@ -3364,7 +3414,7 @@ msgstr "Année"
#~ "fabrication.\n"
#~ "\n"
#~ " Fonctionnalités:\n"
-#~ " * Fabrication pour stock/ Fabrication à la commande (par ligne)\n"
+#~ " * Production sur stock / à la demande (par ligne)\n"
#~ " * Nomenclatures multi-niveaux, sans limitation\n"
#~ " * Gammes multi-niveaux, sans limitation\n"
#~ " * Gammes et postes de charge intégrés dans la comptabilité analytique\n"
@@ -3396,12 +3446,3 @@ msgstr "Année"
#~ " * Graphique de la charge des postes\n"
#~ " * Liste des approvisionnements ayant subit un incident\n"
#~ " "
-
-#~ msgid ""
-#~ "Routing indicates all the workcenters used, for how long and/or cycles.If "
-#~ "Routing is indicated then,the third tab of a production order (workcenters) "
-#~ "will be automatically pre-completed."
-#~ msgstr ""
-#~ "La gamme indique tous les postes de charge utilisés, la durée et/ou le "
-#~ "nombre de cycles. Quand \"Gamme\" est indiqué, le troisième onglet des "
-#~ "ordres de fabrication (postes de charge) est automatiquement pré-rempli."
diff --git a/addons/mrp/installer.py b/addons/mrp/installer.py
deleted file mode 100644
index 7fc7fea9c1e..00000000000
--- a/addons/mrp/installer.py
+++ /dev/null
@@ -1,52 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from osv import fields, osv
-
-class mrp_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- # Manufacturing Resource Planning
- 'stock_location': fields.boolean('Advanced Routes',
- help="Manages product routes and paths within and between "
- "locations (e.g. warehouses)."),
- 'mrp_jit': fields.boolean('Just In Time Scheduling',
- help="Enables Just In Time computation of procurement orders."
- "\n\nWhile it's more resource intensive than the default "
- "setup, the JIT computer avoids having to wait for the "
- "procurement scheduler to run or having to run the "
- "procurement scheduler manually."),
- 'mrp_operations': fields.boolean('Manufacturing Operations',
- help="Enhances production orders with readiness states as well "
- "as the start date and end date of execution of the order."),
- 'mrp_subproduct': fields.boolean('MRP Subproducts',
- help="Enables multiple product output from a single production "
- "order: without this, a production order can have only one "
- "output product."),
- 'mrp_repair': fields.boolean('Repairs',
- help="Enables warranty and repair management (and their impact "
- "on stocks and invoicing)."),
- }
-
- _defaults = {
- 'mrp_jit': lambda self,cr,uid,*a: self.pool.get('res.users').browse(cr, uid, uid).view == 'simple',
- }
-mrp_installer()
diff --git a/addons/mrp/mrp_installer.xml b/addons/mrp/mrp_installer.xml
index af2a35b3ce7..b4d4551bda8 100644
--- a/addons/mrp/mrp_installer.xml
+++ b/addons/mrp/mrp_installer.xml
@@ -1,26 +1,5 @@
-
- mrp.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
MRP Management6
@@ -40,16 +19,8 @@
-
- Create Bill of Materials
- ir.actions.act_window
- mrp.bom
- form,tree
- form
-
-
-
+
diff --git a/addons/mrp/report/price.py b/addons/mrp/report/price.py
index 733312ba799..5027bd372ea 100644
--- a/addons/mrp/report/price.py
+++ b/addons/mrp/report/price.py
@@ -19,6 +19,7 @@
#
##############################################################################
+import time
import pooler
from report.interface import report_rml
#from report.interface import toxml
@@ -39,6 +40,7 @@ class report_custom(report_rml):
workcenter_pool = pool.get('mrp.workcenter')
user_pool = pool.get('res.users')
bom_pool = pool.get('mrp.bom')
+ pricelist_pool = pool.get('product.pricelist')
rml_obj=report_sxw.rml_parse(cr, uid, product_pool._name,context)
rml_obj.localcontext.update({'lang':context.get('lang',False)})
company_currency = user_pool.browse(cr, uid, uid).company_id.currency_id
@@ -56,8 +58,12 @@ class report_custom(report_rml):
if prod.seller_id:
main_sp_name = "%s\r\n" %(prod.seller_id.name)
- price = supplier_info_pool.price_get(cr, uid, prod.seller_id.id, prod.id, number*prod_qtty)[prod.seller_id.id]
- price = product_uom_pool._compute_price(cr, uid, prod.uom_id.id, price, to_uom_id=product_uom.id)
+ pricelist = prod.seller_id.property_product_pricelist_purchase
+ price = pricelist_pool.price_get(cr,uid,[pricelist.id],
+ prod.id, number*prod_qtty or 1.0, prod.seller_id.id, {
+ 'uom': prod.uom_po_id.id,
+ 'date': time.strftime('%Y-%m-%d'),
+ })[pricelist.id]
main_sp_price = """"""+rml_obj.formatLang(price)+' '+ company_currency.symbol+"""\r\n"""
sum += prod_qtty*price
std_price = product_uom_pool._compute_price(cr, uid, prod.uom_id.id, prod.standard_price, to_uom_id=product_uom.id)
@@ -65,8 +71,12 @@ class report_custom(report_rml):
sum_strd = prod_qtty*std_price
for seller_id in prod.seller_ids:
sellers += '- '+ seller_id.name.name +'\r\n'
- price = supplier_info_pool.price_get(cr, uid, seller_id.name.id, prod.id, number*prod_qtty)[seller_id.name.id]
- price = product_uom_pool._compute_price(cr, uid, prod.uom_id.id, price, to_uom_id=product_uom.id)
+ pricelist = seller_id.name.property_product_pricelist_purchase
+ price = pricelist_pool.price_get(cr,uid,[pricelist.id],
+ prod.id, number*prod_qtty or 1.0, seller_id.name.id, {
+ 'uom': prod.uom_po_id.id,
+ 'date': time.strftime('%Y-%m-%d'),
+ })[pricelist.id]
sellers_price += """"""+rml_obj.formatLang(price) +' '+ company_currency.symbol +"""\r\n"""
xml += """
"""+ prod_name +"""
"""+ main_sp_name + sellers + """
diff --git a/addons/mrp/test/mrp_phantom_bom.yml b/addons/mrp/test/mrp_phantom_bom.yml
index 6bb297fbcfb..1f499a5fb7f 100644
--- a/addons/mrp/test/mrp_phantom_bom.yml
+++ b/addons/mrp/test/mrp_phantom_bom.yml
@@ -205,9 +205,8 @@
I am checking Procurement orders. There are 3 orders generated for Oranges, Sugar and Water.
-
!python {model: procurement.order}: |
- from tools.translate import _
proc_ids = self.search(cr, uid, [('product_id','in',[ref('product_product_orange0'),ref('product_product_sugar0'),ref('product_product_water0')])])
- assert proc_ids, _('No Procurements!')
+ assert proc_ids, 'No Procurements!'
-
The scheduler runs.
-
@@ -219,9 +218,8 @@
stock moves for Oranges, Sugar and Water made correctly.
-
!python {model: stock.picking}: |
- from tools.translate import _
pick_ids = self.search(cr, uid, [('type','=','internal')])
- assert pick_ids, _('No Internal Pickings!')
+ assert pick_ids, 'No Internal Pickings!'
-
According to minimum stock rules. I have 2 purchase orders for
Sugar with 6 Kg from Axelor and Orange 60 Kg from ASUStek.
@@ -229,50 +227,24 @@
I confirm the purchase order of Sugar and Orange.
-
!python {model: purchase.order}: |
- from tools.translate import _
import netsvc
purch_ids = self.search(cr, uid, [('state','=','draft')])
- assert purch_ids, _('No Purchase Orders were made!')
+ assert purch_ids, 'No Purchase Orders were made!'
wf_service = netsvc.LocalService("workflow")
for p_id in purch_ids:
wf_service.trg_validate(uid, 'purchase.order', p_id, 'purchase_confirm', cr)
-
- I see two incoming pickings for Orange and Sugar.
+ I see two incoming pickings for Orange and Sugar, and receive them.
-
!python {model: stock.picking}: |
- from tools.translate import _
pick_ids = self.search(cr, uid, [('type','=','in')])
- assert pick_ids, _('No Incoming Shipments found!')
--
- I receive both the products. My incoming pickings are done.
--
- I create record for the incoming picking wizard.
--
- !record {model: stock.partial.picking, id: stock_partial_picking0}:
- date: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
--
- I make my pickings done.
--
- !python {model: stock.partial.picking}: |
- pick_obj = self.pool.get('stock.picking')
- picking_ids = pick_obj.search(cr, uid, [('type','=','in'),('state','=','assigned')])
- partial = self.browse(cr, uid, 1, context)
- partial_datas = {
- 'delivery_date': partial.date
- }
- for pick in pick_obj.browse(cr, uid, picking_ids):
- for m in pick.move_lines:
- partial_datas['move%s'%(m.id)] = {
- 'product_id': m.product_id.id,
- 'product_qty': m.product_qty,
- 'product_uom': m.product_uom.id
- }
- if (pick.type == 'in') and (m.product_id.cost_method == 'average'):
- partial_datas['move%s'%(m.id)].update({
- 'product_price': m.product_price,
- 'product_currency': m.product_currency
- })
- pick_obj.do_partial(cr, uid, picking_ids, partial_datas, context=context)
+ assert pick_ids, 'No Incoming Shipments found!'
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ for pick_id in pick_ids:
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick_id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
Again the scheduler runs.
-
@@ -283,19 +255,15 @@
I check my internal picking of "Orange Juice" is done.
-
!python {model: stock.picking}: |
- from tools.translate import _
pick_ids = self.search(cr, uid, [('type','=','internal'),('state','=','done')])
- assert pick_ids, _('Internal Picking is not done yet!')
+ assert pick_ids, 'Internal Picking is not done yet!'
-
I check my manufacturing order for "Orange Juice" is ready or not.
-
!python {model: mrp.production}: |
- from tools.translate import _
- pick_ids = self.search(cr, uid, [('state','=','ready'),('id','=',ref('mrp_production_mo0'))])
- assert pick_ids, _('Manufacturing order is not ready!')
+ prod_ids = self.search(cr, uid, [('state','=','ready'),('id','=',ref('mrp_production_mo0'))])
+ assert prod_ids, 'Manufacturing order is not ready!'
-
I start the production order.
-
!workflow {model: mrp.production, action: button_produce, ref: mrp_production_mo0}
-
-
diff --git a/addons/mrp/test/mrp_procurement.yml b/addons/mrp/test/mrp_procurement.yml
index 568a5f0b0e8..4aaf1560432 100644
--- a/addons/mrp/test/mrp_procurement.yml
+++ b/addons/mrp/test/mrp_procurement.yml
@@ -195,74 +195,26 @@
I Check incoming shipments for cloth. And receive products.
-
!python {model: stock.picking}: |
- from tools.translate import _
pick_ids = self.search(cr, uid, [('address_id.name','=','Wong'),('state','=','assigned')])
- assert pick_ids, _('No Incoming Shipments found!')
--
- I create record for partial picking.
--
- !record {model: stock.partial.picking, id: stock_partial_picking0}:
- date: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
-
--
- I make my picking done.
--
- !python {model: stock.partial.picking}: |
- pick_obj = self.pool.get('stock.picking')
- picking_ids = pick_obj.search(cr, uid, [('address_id.name','=','Wong'),('state','=','assigned')])
- partial = self.browse(cr, uid, 1, context)
- partial_datas = {
- 'delivery_date' : partial.date
- }
- for pick in pick_obj.browse(cr, uid, picking_ids):
- for m in pick.move_lines:
- partial_datas['move%s'%(m.id)] = {
- 'product_id' : m.product_id.id,
- 'product_qty' : m.product_qty,
- 'product_uom' : m.product_uom.id
- }
- if (pick.type == 'in') and (m.product_id.cost_method == 'average'):
- partial_datas['move%s'%(m.id)].update({
- 'product_price' : m.product_price,
- 'product_currency': m.product_currency
- })
- pick_obj.do_partial(cr, uid, picking_ids, partial_datas, context=context)
+ assert pick_ids, 'No Incoming Shipments found!'
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ for pick_id in pick_ids:
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick_id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I Check incoming shipments for buttons and receive products.
-
!python {model: stock.picking}: |
- from tools.translate import _
pick_ids = self.search(cr, uid, [('address_id.name','=','Tang'),('state','=','assigned')])
- assert pick_ids, _('No Incoming Shipments found!')
--
- I create record for partial picking.
--
- !record {model: stock.partial.picking, id: stock_partial_picking0}:
- date: !eval datetime.today().strftime("%Y-%m-%d %H:%M:%S")
-
--
- I make my picking done.
--
- !python {model: stock.partial.picking}: |
- pick_obj = self.pool.get('stock.picking')
- picking_ids = pick_obj.search(cr, uid, [('address_id.name','=','Tang'),('state','=','assigned')])
- partial = self.browse(cr, uid, 1, context)
- partial_datas = {
- 'delivery_date': partial.date
- }
- for pick in pick_obj.browse(cr, uid, picking_ids):
- for m in pick.move_lines:
- partial_datas['move%s'%(m.id)] = {
- 'product_id': m.product_id.id,
- 'product_qty': m.product_qty,
- 'product_uom': m.product_uom.id
- }
- if (pick.type == 'in') and (m.product_id.cost_method == 'average'):
- partial_datas['move%s'%(m.id)].update({
- 'product_price': m.product_price,
- 'product_currency': m.product_currency
- })
- pick_obj.do_partial(cr, uid, picking_ids, partial_datas, context=context)
+ assert pick_ids, 'No Incoming Shipments found!'
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ for pick_id in pick_ids:
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick_id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
Run scheduler again.
-
@@ -297,7 +249,6 @@
I produce 2 products with 5.00 quantities each.
-
!python {model: mrp.product.produce}: |
- from tools.translate import _
prod_obj = self.pool.get('mrp.production')
prod_ids = prod_obj.search(cr, uid, [('product_id.name','=','Shirt')])
self.do_produce(cr, uid, [ref('mrp_product_produce0')], context={'active_ids': prod_ids})
@@ -321,8 +272,7 @@
And finally production order is done.
-
!python {model: mrp.product.produce}: |
- from tools.translate import _
prod_obj = self.pool.get('mrp.production')
prod_ids = prod_obj.search(cr, uid, [('product_id.name','=','Shirt')])
- self.do_produce(cr, uid, [1], context={'active_ids': prod_ids})
+ self.do_produce(cr, uid, [ref('mrp_product_produce0')], context={'active_ids': prod_ids})
diff --git a/addons/mrp_jit/__openerp__.py b/addons/mrp_jit/__openerp__.py
index 77bece7cfd6..72ef35ebc4b 100644
--- a/addons/mrp_jit/__openerp__.py
+++ b/addons/mrp_jit/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'MRP JIT',
+ 'name': 'Just In Time Scheduling',
'version': '1.0',
'category': 'Manufacturing',
'complexity': "easy",
diff --git a/addons/mrp_operations/__openerp__.py b/addons/mrp_operations/__openerp__.py
index 08f8f5b7f5b..0ac2d83c524 100644
--- a/addons/mrp_operations/__openerp__.py
+++ b/addons/mrp_operations/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Work Center Production start end workflow',
+ 'name': 'Manufacturing Operations',
'version': '1.0',
'category': 'Manufacturing',
'complexity': "easy",
diff --git a/addons/mrp_operations/mrp_operations.py b/addons/mrp_operations/mrp_operations.py
index 4e665b3f9dc..7dc93731b03 100644
--- a/addons/mrp_operations/mrp_operations.py
+++ b/addons/mrp_operations/mrp_operations.py
@@ -235,6 +235,8 @@ class mrp_production(osv.osv):
obj = self.browse(cr, uid, ids)[0]
wf_service = netsvc.LocalService("workflow")
for workcenter_line in obj.workcenter_lines:
+ if workcenter_line.state == 'draft':
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr)
wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_done', cr)
return super(mrp_production,self).action_production_end(cr, uid, ids)
@@ -243,9 +245,11 @@ class mrp_production(osv.osv):
@return: True
"""
obj = self.browse(cr, uid, ids)[0]
+ workcenter_pool = self.pool.get('mrp.production.workcenter.line')
wf_service = netsvc.LocalService("workflow")
- for workcenter_line in obj.workcenter_lines:
- wf_service.trg_validate(uid, 'mrp.production.workcenter.line', workcenter_line.id, 'button_start_working', cr)
+ for prod in self.browse(cr, uid, ids):
+ if prod.workcenter_lines:
+ wf_service.trg_validate(uid, 'mrp.production.workcenter.line', prod.workcenter_lines[0].id, 'button_start_working', cr)
return super(mrp_production,self).action_in_production(cr, uid, ids)
def action_cancel(self, cr, uid, ids, context=None):
diff --git a/addons/mrp_repair/__openerp__.py b/addons/mrp_repair/__openerp__.py
index 134b16542a5..06aa78c30f6 100644
--- a/addons/mrp_repair/__openerp__.py
+++ b/addons/mrp_repair/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Products Repairs Module - Manage All products Repairs',
+ 'name': 'Repairs',
'version': '1.0',
- 'category': 'Tools',
+ 'category': 'Manufacturing',
'description': """
The aim is to have a complete module to manage all products repairs. The following topics should be covered by this module:
===========================================================================================================================
diff --git a/addons/mrp_subproduct/__openerp__.py b/addons/mrp_subproduct/__openerp__.py
index 52fd3758fbc..5c3db5436d5 100644
--- a/addons/mrp_subproduct/__openerp__.py
+++ b/addons/mrp_subproduct/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'MRP Sub Product - To produce several products from one production order',
+ 'name': 'MRP Subproducts',
'version': '1.0',
'category': 'Manufacturing',
'description': """
diff --git a/addons/multi_company/__openerp__.py b/addons/multi_company/__openerp__.py
index d82f0e1eb7c..636ff1cac29 100644
--- a/addons/multi_company/__openerp__.py
+++ b/addons/multi_company/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Multi-Company',
'version': '1.0',
- 'category': 'Tools',
+ 'category': 'Hidden',
'complexity': "expert",
'description': """
This module is for managing a multicompany environment.
diff --git a/addons/outlook/__openerp__.py b/addons/outlook/__openerp__.py
index e376bcfa34a..beab5aca648 100644
--- a/addons/outlook/__openerp__.py
+++ b/addons/outlook/__openerp__.py
@@ -21,12 +21,12 @@
{
- 'name' : 'Outlook Interface',
+ 'name' : 'Outlook Plug-In',
'version' : '1.0',
'author' : 'OpenERP SA',
'website' : 'http://www.openerp.com/',
'depends' : ['base', 'mail'],
- 'category' : 'Tools',
+ 'category' : 'Customer Relationship Management',
'description': '''
This module provides the Outlook Plug-in.
=========================================
diff --git a/addons/outlook/installer.py b/addons/outlook/installer.py
index 4d0ac1e1971..2be0c243037 100644
--- a/addons/outlook/installer.py
+++ b/addons/outlook/installer.py
@@ -41,7 +41,7 @@ class outlook_installer(osv.osv_memory):
'doc_name':fields.char('File name', size=64),
'outlook':fields.boolean('Outlook Plug-in ', help="Allows you to select an object that you would like to add to your email and its attachments."),
'plugin_file':fields.binary('Outlook Plug-in', readonly=True, help="outlook plug-in file. Save as this file and install this plug-in in outlook."),
- 'doc_file':fields.char('Installation Manual',size="264",help="The documentation file :- how to install Outlook Plug-in.", readonly=True),
+ 'doc_file':fields.char('Installation Manual',size=264,help="The documentation file :- how to install Outlook Plug-in.", readonly=True),
'description':fields.text('Description', readonly=True)
}
diff --git a/addons/outlook/outlook_installer.xml b/addons/outlook/outlook_installer.xml
index a85a16c245b..bb2aeb31fd2 100644
--- a/addons/outlook/outlook_installer.xml
+++ b/addons/outlook/outlook_installer.xml
@@ -8,20 +8,18 @@
- Load Outlook Plug-In
+ Install Outlook Plug-In
- Load Outlook Plug-In
+ Install Outlook Plug-InThis plug-in allows you to link your e-mail to OpenERP's documents. You can attach it to any existing one in OpenERP or create a new one.
-
-
+
-
@@ -46,7 +44,7 @@
- Load Outlook Plug-In
+ Install Outlook Plug-Inir.actions.act_windowoutlook.installer
@@ -59,10 +57,11 @@
4
+ automatic
- Load Outlook Plug-In
+ Install Outlook Plug-Inir.actions.act_windowoutlook.installer
@@ -73,10 +72,7 @@
+
-
-
-
-
diff --git a/addons/pad/__openerp__.py b/addons/pad/__openerp__.py
index b3429dde329..65035912d85 100644
--- a/addons/pad/__openerp__.py
+++ b/addons/pad/__openerp__.py
@@ -1,8 +1,8 @@
# -*- coding: utf-8 -*-
{
- 'name': 'Enhanced support for (Ether)Pad attachments',
+ 'name': 'Collaborative Note Pad',
'version': '1.0.3',
- 'category': 'Tools',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """
Adds enhanced support for (Ether)Pad attachments in the web client.
diff --git a/addons/point_of_sale/__openerp__.py b/addons/point_of_sale/__openerp__.py
index 125449cfc6f..1f6a808d2a0 100644
--- a/addons/point_of_sale/__openerp__.py
+++ b/addons/point_of_sale/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Point Of Sale',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Point Of Sale',
'description': """
This module provides a quick and easy sale process.
===================================================
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 19f18d92dd6..ee2173dcd49 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -264,7 +264,7 @@ class pos_order(osv.osv):
args['partner_id'] = order.partner_id and order.partner_id.id or None
statement_id = statement_obj.search(cr,uid, [
- ('journal_id', '=', data['journal']),
+ ('journal_id', '=', int(data['journal'])),
('company_id', '=', curr_company),
('user_id', '=', uid),
('state', '=', 'open')], context=context)
@@ -274,7 +274,7 @@ class pos_order(osv.osv):
statement_id = statement_id[0]
args['statement_id'] = statement_id
args['pos_statement_id'] = order_id
- args['journal_id'] = data['journal']
+ args['journal_id'] = int(data['journal'])
args['type'] = 'customer'
args['ref'] = order.name
statement_line_obj.create(cr, uid, args, context=context)
diff --git a/addons/point_of_sale/test/point_of_sale_report.yml b/addons/point_of_sale/test/point_of_sale_report.yml
index f31f9ec0f49..f3ea5995b9e 100644
--- a/addons/point_of_sale/test/point_of_sale_report.yml
+++ b/addons/point_of_sale/test/point_of_sale_report.yml
@@ -34,6 +34,11 @@
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'point_of_sale-receipt report'+format), 'wb+').write(data)
+-
+ Create a record for the root user in pos.payment.report.user (used by the next python block).
+-
+ !record {model: pos.payment.report.user, id: pos_payment_report_user_1}:
+ user_id: []
-
Print the POS Payment Report through the wizard
-
diff --git a/addons/point_of_sale/wizard/pos_open_statement.py b/addons/point_of_sale/wizard/pos_open_statement.py
index 038ca3b6990..47c5348943b 100644
--- a/addons/point_of_sale/wizard/pos_open_statement.py
+++ b/addons/point_of_sale/wizard/pos_open_statement.py
@@ -53,9 +53,9 @@ class pos_open_statement(osv.osv_memory):
continue
if journal.sequence_id:
- number = sequence_obj.get_id(cr, uid, journal.sequence_id.id)
+ number = sequence_obj.next_by_id(cr, uid, journal.sequence_id.id)
else:
- number = sequence_obj.get(cr, uid, 'account.cash.statement')
+ number = sequence_obj.next_by_code(cr, uid, 'account.cash.statement')
data.update({
'journal_id': journal.id,
diff --git a/addons/portal/__openerp__.py b/addons/portal/__openerp__.py
index 6bb69cd91c9..1b3be74c79f 100644
--- a/addons/portal/__openerp__.py
+++ b/addons/portal/__openerp__.py
@@ -24,7 +24,7 @@
'version' : "1.0",
'depends' : ["base", "share"],
'author' : "OpenERP SA",
- 'category': 'Tools',
+ 'category': 'Hidden',
'description': """
This module defines 'portals' to customize the access to your OpenERP database
for external users.
diff --git a/addons/portal/i18n/fr.po b/addons/portal/i18n/fr.po
index 99499a00149..19e685ebae1 100644
--- a/addons/portal/i18n/fr.po
+++ b/addons/portal/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-07-04 14:16+0000\n"
-"PO-Revision-Date: 2011-07-11 09:51+0000\n"
-"Last-Translator: FULL NAME \n"
+"PO-Revision-Date: 2011-09-26 12:28+0000\n"
+"Last-Translator: Numérigraphe \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:59+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-27 04:47+0000\n"
+"X-Generator: Launchpad (build 14028)\n"
#. module: portal
#: code:addons/portal/wizard/share_wizard.py:55
@@ -73,7 +73,7 @@ msgstr ""
#. module: portal
#: constraint:res.users:0
msgid "The chosen company is not in the allowed companies for this user"
-msgstr ""
+msgstr "La société choisie n'est pas autorisée pour cet utilisateur."
#. module: portal
#: view:res.portal:0
@@ -207,12 +207,12 @@ msgstr ""
#: view:share.wizard:0
#: field:share.wizard,user_ids:0
msgid "Existing users"
-msgstr ""
+msgstr "Utilisateurs existants"
#. module: portal
#: field:res.portal.wizard.user,wizard_id:0
msgid "Wizard"
-msgstr ""
+msgstr "Assistant"
#. module: portal
#: help:res.portal.wizard.user,user_email:0
@@ -224,12 +224,12 @@ msgstr ""
#. module: portal
#: field:res.portal.wizard.user,lang:0
msgid "Language"
-msgstr ""
+msgstr "Langue"
#. module: portal
#: field:res.portal,url:0
msgid "URL"
-msgstr ""
+msgstr "URL"
#. module: portal
#: view:res.portal:0
@@ -249,7 +249,7 @@ msgstr "Annuler"
#. module: portal
#: view:res.portal:0
msgid "Website"
-msgstr ""
+msgstr "Site web"
#. module: portal
#: view:res.portal:0
@@ -271,7 +271,7 @@ msgstr ""
#. module: portal
#: model:ir.model,name:portal.model_res_users
msgid "res.users"
-msgstr ""
+msgstr "res.users"
#. module: portal
#: constraint:res.portal.wizard.user:0
@@ -288,7 +288,7 @@ msgstr ""
#. module: portal
#: model:ir.model,name:portal.model_ir_ui_menu
msgid "ir.ui.menu"
-msgstr ""
+msgstr "ir.ui.menu"
#. module: portal
#: help:res.portal,group_id:0
@@ -323,7 +323,7 @@ msgstr ""
#. module: portal
#: field:res.portal.widget,sequence:0
msgid "Sequence"
-msgstr ""
+msgstr "Séquence"
#. module: portal
#: field:res.users,partner_id:0
@@ -386,7 +386,7 @@ msgstr ""
#. module: portal
#: field:res.portal.wizard.user,partner_id:0
msgid "Partner"
-msgstr ""
+msgstr "Partenaire"
#. module: portal
#: model:ir.actions.act_window,help:portal.portal_list_action
diff --git a/addons/process/__openerp__.py b/addons/process/__openerp__.py
index 4af045ff6bb..e35ae2b06ae 100644
--- a/addons/process/__openerp__.py
+++ b/addons/process/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Enterprise Process',
'version': '1.0',
- 'category': 'Tools',
+ 'category': 'Hidden',
'description': """
This module shows the basic processes involved in the selected modules and in the sequence they occur.
======================================================================================================
diff --git a/addons/procurement/__openerp__.py b/addons/procurement/__openerp__.py
index e590163f8a7..87a766a009f 100644
--- a/addons/procurement/__openerp__.py
+++ b/addons/procurement/__openerp__.py
@@ -25,7 +25,7 @@
"version" : "1.0",
"author" : "OpenERP SA",
"website" : "http://www.openerp.com",
- "category" : "Warehouse",
+ "category" : "Warehouse Management",
"depends" : ["base","process", "product", "stock"],
"description": """
This is the module for computing Procurements.
diff --git a/addons/product/__openerp__.py b/addons/product/__openerp__.py
index bcddcc93bdf..7498265a5f9 100644
--- a/addons/product/__openerp__.py
+++ b/addons/product/__openerp__.py
@@ -24,7 +24,7 @@
"name" : "Products & Pricelists",
"version" : "1.1",
"author" : "OpenERP SA",
- "category" : "Warehouse",
+ "category" : "Hidden",
"depends" : ["base", "process", "decimal_precision"],
"init_xml" : [],
"demo_xml" : ["product_demo.xml"],
diff --git a/addons/product/pricelist_view.xml b/addons/product/pricelist_view.xml
index f284dcbc47b..79e6773980c 100644
--- a/addons/product/pricelist_view.xml
+++ b/addons/product/pricelist_view.xml
@@ -56,6 +56,7 @@
+
diff --git a/addons/product/product.py b/addons/product/product.py
index 78fc05fe7e7..b055e704785 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -460,6 +460,7 @@ class product_product(osv.osv):
'active': lambda *a: 1,
'price_extra': lambda *a: 0.0,
'price_margin': lambda *a: 1.0,
+ 'color': 0,
}
_name = "product.product"
@@ -486,8 +487,10 @@ class product_product(osv.osv):
'price_margin': fields.float('Variant Price Margin', digits_compute=dp.get_precision('Sale Price')),
'pricelist_id': fields.dummy(string='Pricelist', relation='product.pricelist', type='many2one'),
'name_template': fields.related('product_tmpl_id', 'name', string="Name", type='char', size=128, store=True),
+ 'color': fields.integer('Color Index'),
+ 'product_image': fields.binary('Image'),
}
-
+
def unlink(self, cr, uid, ids, context=None):
unlink_ids = []
unlink_product_tmpl_ids = []
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index a50a7b404e2..35798ce939d 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -69,7 +69,7 @@
+
+
+
+
+
+
Productsir.actions.act_window
@@ -204,12 +269,27 @@
Productsir.actions.act_windowproduct.product
+ tree,form,kanbanform{"search_default_filter_to_sell":1}You must define a Product for everything you buy or sell. Products can be raw materials, stockable products, consumables or services. The Product form contains detailed information about your products related to procurement logistics, sales price, product category, suppliers and so on.
+
+
+
+ tree
+
+
+
+
+
+
+ form
+
+
+
diff --git a/addons/product_expiry/__openerp__.py b/addons/product_expiry/__openerp__.py
index 434f5605baa..ebf3b97bc0a 100644
--- a/addons/product_expiry/__openerp__.py
+++ b/addons/product_expiry/__openerp__.py
@@ -21,7 +21,7 @@
"name" : "Products Expiry Date",
"version" : "1.0",
"author" : "OpenERP SA",
- "category" : "Warehouse",
+ "category" : "Vertical Applications",
'complexity': "easy",
"depends" : ["stock"],
"init_xml" : [],
diff --git a/addons/product_manufacturer/__openerp__.py b/addons/product_manufacturer/__openerp__.py
index 5aea3f333d3..d04d0724137 100644
--- a/addons/product_manufacturer/__openerp__.py
+++ b/addons/product_manufacturer/__openerp__.py
@@ -21,7 +21,7 @@
"name" : "Products Attributes & Manufacturers",
"version" : "1.0",
"author" : "OpenERP SA",
- "category" : "Tools",
+ "category" : "Hidden",
'complexity': "easy",
"depends" : ["stock"],
"init_xml" : [],
diff --git a/addons/product_margin/__openerp__.py b/addons/product_margin/__openerp__.py
index 9ef858fa9ec..b412e8b63eb 100644
--- a/addons/product_margin/__openerp__.py
+++ b/addons/product_margin/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Margins in Product',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Hidden',
'description': """
Adds a reporting menu in products that computes sales, purchases, margins and other interesting indicators based on invoices.
=============================================================================================================================
diff --git a/addons/product_visible_discount/__openerp__.py b/addons/product_visible_discount/__openerp__.py
index 903bc6c7523..d05c3a82c11 100644
--- a/addons/product_visible_discount/__openerp__.py
+++ b/addons/product_visible_discount/__openerp__.py
@@ -21,7 +21,7 @@
"name": "Visible Discount",
"version": "1.0",
"author": "OpenERP SA",
- "category": "Sales",
+ "category": "Hidden",
'complexity': "easy",
"description": """
This module lets you calculate discounts on Sale Order lines and Invoice lines base on the partner's pricelist.
diff --git a/addons/profile_tools/__init__.py b/addons/profile_tools/__init__.py
index 3511d091ecb..9a3d6d2fbb6 100644
--- a/addons/profile_tools/__init__.py
+++ b/addons/profile_tools/__init__.py
@@ -19,6 +19,5 @@
#
##############################################################################
-import installer
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/profile_tools/__openerp__.py b/addons/profile_tools/__openerp__.py
index 46528337f98..bd8790d1496 100644
--- a/addons/profile_tools/__openerp__.py
+++ b/addons/profile_tools/__openerp__.py
@@ -21,28 +21,27 @@
{
- "name" : "Miscellaneous Tools",
+ "name" : "Miscellaneous Hidden",
"version" : "1.0",
"depends" : ["base", "base_setup"],
"author" : "OpenERP SA",
- "category" : "Tools",
+ "category" : "Hidden",
'complexity': "easy",
"description": """
-Installer for extra tools like lunch, survey, idea, share, etc.
+Installer for extra Hidden like lunch, survey, idea, share, etc.
===============================================================
-Makes the Extra Tools Configuration available from where you can install
+Makes the Extra Hidden Configuration available from where you can install
modules like share, lunch, pad, idea, survey and subscription.
""",
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
- 'misc_tools_installer.xml',
],
'demo_xml': [],
'installable': True,
'active': False,
'certificate' : '00557100228403879621',
- 'images': ['images/config_extra_tools.jpeg'],
+ 'images': ['images/config_extra_Hidden.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/profile_tools/installer.py b/addons/profile_tools/installer.py
deleted file mode 100644
index 44258234d11..00000000000
--- a/addons/profile_tools/installer.py
+++ /dev/null
@@ -1,40 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-from osv import fields, osv
-
-class misc_tools_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- 'lunch':fields.boolean('Lunch',help='A simple module to help you to manage Lunch orders.'),
- 'subscription':fields.boolean('Recurring Documents',help='Helps to generate automatically recurring documents.'),
- 'survey':fields.boolean('Survey',help='Allows you to organize surveys.'),
- 'idea':fields.boolean('Ideas Box',help='Promote ideas of the employees, votes and discussion on best ideas.'),
- 'share':fields.boolean('Web Share',help='Allows you to give restricted access to your OpenERP documents to external users, ' \
- 'such as customers, suppliers, or accountants. You can share any OpenERP Menu such as your project tasks, support requests, invoices, etc.'),
- 'pad': fields.boolean('Collaborative Note Pads',
- help="This module creates a tighter integration between a Pad "
- "instance of your choosing and your OpenERP Web Client by "
- "letting you easily link pads to OpenERP objects via "
- "OpenERP attachments."),
- }
-misc_tools_installer()
-
diff --git a/addons/profile_tools/misc_tools_installer.xml b/addons/profile_tools/misc_tools_installer.xml
deleted file mode 100644
index 703a8aed9c7..00000000000
--- a/addons/profile_tools/misc_tools_installer.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-
-
-
- misc_tools.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/project/__init__.py b/addons/project/__init__.py
index 142cd98e485..01bef264e02 100644
--- a/addons/project/__init__.py
+++ b/addons/project/__init__.py
@@ -21,7 +21,6 @@
import project
import company
-import installer
import report
import wizard
import res_partner
diff --git a/addons/project/i18n/zh_TW.po b/addons/project/i18n/zh_TW.po
index dc38347e9a5..c22e242a41d 100644
--- a/addons/project/i18n/zh_TW.po
+++ b/addons/project/i18n/zh_TW.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-28 16:28+0000\n"
+"PO-Revision-Date: 2011-09-27 10:35+0000\n"
"Last-Translator: Walter Cheuk \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-09-05 04:54+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:19+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
#. module: project
#: model:ir.actions.act_window,name:project.act_res_users_2_project_task_opened
msgid "Assigned tasks"
-msgstr "任務指派"
+msgstr "已分派任務"
#. module: project
#: help:project.task.delegate,new_task_description:0
@@ -30,7 +30,7 @@ msgstr ""
#: code:addons/project/project.py:671
#, python-format
msgid "The task '%s' has been delegated to %s."
-msgstr "「%s」任務委派予 %s"
+msgstr "已將「%s」任務委派予 %s。"
#. module: project
#: help:res.company,project_time_mode_id:0
@@ -254,7 +254,7 @@ msgstr "專案結束任務"
#. module: project
#: model:process.node,name:project.process_node_drafttask0
msgid "Draft task"
-msgstr "草案任務"
+msgstr "任務草案"
#. module: project
#: model:ir.model,name:project.model_project_task
@@ -273,7 +273,7 @@ msgstr "成員"
msgid ""
"Estimated time to do the task, usually set by the project manager when the "
"task is in draft state."
-msgstr "完成任務估計時間,通常由專案經理(PM)於草案階段設定"
+msgstr "完成任務估計時間,通常由專案經理(PM)於草案階段設定。"
#. module: project
#: model:ir.model,name:project.model_project_task_work
@@ -553,7 +553,7 @@ msgstr "下一個"
#. module: project
#: model:process.transition,note:project.process_transition_draftopentask0
msgid "From draft state, it will come into the open state."
-msgstr "「草案」階段會轉為「進行中」階段"
+msgstr "會由「草案」階段轉為「開放」階段。"
#. module: project
#: view:report.project.task.user:0
@@ -770,7 +770,7 @@ msgstr ""
#. module: project
#: model:process.transition,name:project.process_transition_draftopentask0
msgid "Draft Open task"
-msgstr "草案進行任務"
+msgstr "開啟任務草案"
#. module: project
#: view:project.project:0
@@ -917,6 +917,10 @@ msgid ""
" \n"
" If the task is over, the states is set to 'Done'."
msgstr ""
+"當建立任務時會處於「草案(Draft)」階段。\n"
+" 開始後會處於「進行中(In Progress)」階段。\n"
+" 如需評估,會處於「待通過(Pending)」階段。 \n"
+" 任務完成,處於「完成(Done)」階段。"
#. module: project
#: help:project.task,progress:0
diff --git a/addons/project/installer.py b/addons/project/installer.py
deleted file mode 100644
index 36b458da296..00000000000
--- a/addons/project/installer.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2009 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields, osv
-
-class project_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- # Project Management
- 'project_long_term': fields.boolean(
- 'Long Term Planning',
- help="Enables long-term projects tracking, including "
- "multiple-phase projects and resource allocation handling."),
- 'hr_timesheet_sheet': fields.boolean('Timesheets',
- help="Tracks and helps employees encode and validate timesheets "
- "and attendances."),
- 'project_timesheet': fields.boolean('Bill Time on Tasks',
- help="Helps generate invoices based on time spent on tasks, if activated on the project."),
- 'account_budget': fields.boolean('Budgets',
- help="Helps accountants manage analytic and crossover budgets."),
- 'project_issue': fields.boolean('Issues Tracker',
- help="Automatically synchronizes project tasks and crm cases."),
- # Methodologies
- 'project_scrum': fields.boolean('Methodology: SCRUM',
- help="Implements and tracks the concepts and task types defined "
- "in the SCRUM methodology."),
- 'project_gtd': fields.boolean('Methodology: Getting Things Done',
- help="GTD is a methodology to efficiently organise yourself and your tasks. This module fully integrates GTD principle with OpenERP's project management."),
- }
-project_installer()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project/project.py b/addons/project/project.py
index 3565a877b61..967bd4ebbd3 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -470,6 +470,7 @@ class task(osv.osv):
'manager_id': fields.related('project_id', 'analytic_account_id', 'user_id', type='many2one', relation='res.users', string='Project Manager'),
'company_id': fields.many2one('res.company', 'Company'),
'id': fields.integer('ID'),
+ 'color': fields.integer('Color Index'),
}
_defaults = {
@@ -485,6 +486,21 @@ class task(osv.osv):
_order = "sequence,priority, date_start, name, id"
+ def set_priority(self, cr, uid, ids, priority):
+ """Set task priority
+ """
+ return self.write(cr, uid, ids, {'priority' : priority})
+
+ def set_high_priority(self, cr, uid, ids, *args):
+ """Set task priority to high
+ """
+ return self.set_priority(cr, uid, ids, '1')
+
+ def set_normal_priority(self, cr, uid, ids, *args):
+ """Set task priority to normal
+ """
+ return self.set_priority(cr, uid, ids, '3')
+
def _check_recursion(self, cr, uid, ids, context=None):
for id in ids:
visited_branch = set()
diff --git a/addons/project/project_installer.xml b/addons/project/project_installer.xml
index 3e04b919edd..1dd8965fe76 100644
--- a/addons/project/project_installer.xml
+++ b/addons/project/project_installer.xml
@@ -2,27 +2,6 @@
-
- project.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Project Management
@@ -30,11 +9,11 @@
- Create your initial projects
+ Create your Firsts Projectsir.actions.act_windowproject.projectform
- form
+ tree,form
@@ -43,7 +22,7 @@
- Configure Default Time Unit for Project
+ Setup your Project's Time Unitir.actions.act_windowres.company
@@ -54,6 +33,7 @@
+ once
@@ -62,8 +42,9 @@
project.task.typeformtree,form
- {}
+ {'search_default_common': 1, 'default_project_default': 1}[]
+ The stages can be common to all project or specific to one project. Each task will follow the different stages in order to be closed.
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index b49241de996..b518cb31de2 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -313,62 +313,71 @@
-
-
-
+
+
+ project.task.kanbanproject.taskkanban
-
-
+
- #fff
- #dfd
- lightcyan
- red
-
-
+
project.task.tree
@@ -502,6 +511,21 @@
A task represents a work that has to be done. Each user works in his own list of tasks where he can record his task work in hours. He can work and close the task itself or delegate it to another user. If you delegate a task to another user, you get a new task in pending state, which will be reopened when you have to review the work achieved. If you install the project_timesheet module, task work can be invoiced based on the project configuration. With the project_mrp module, sales orders can create tasks automatically when they are confirmed.
+
+
+
+ tree
+
+
+
+
+
+
+ form
+
+
+
+
@@ -533,6 +557,21 @@
+
+ project.task.type.search
+ project.task.type
+ search
+
+
+
+
+
+
+
+
+
+
+
project.task.type.formproject.task.type
@@ -540,7 +579,7 @@
+
+
+
+
+
+
+
+
+
+
+
# ------------------------------------------------------
# Feature Requests
# ------------------------------------------------------
diff --git a/addons/project_issue_sheet/__openerp__.py b/addons/project_issue_sheet/__openerp__.py
index cc1cd6504b0..972245533ad 100644
--- a/addons/project_issue_sheet/__openerp__.py
+++ b/addons/project_issue_sheet/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Add the Timesheet support for Issue Management in Project Management',
'version': '1.0',
- 'category': 'Project Management',
+ 'category': 'Hidden/Link',
'description': """
This module adds the Timesheet support for the Issues/Bugs Management in Project.
=================================================================================
diff --git a/addons/project_long_term/__openerp__.py b/addons/project_long_term/__openerp__.py
index 76e872d65f7..ef57f53e5f1 100644
--- a/addons/project_long_term/__openerp__.py
+++ b/addons/project_long_term/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- "name": "Long Term Project Management",
+ "name": "Long Term Planning",
"version": "1.1",
"author": "OpenERP SA",
"website": "http://www.openerp.com",
diff --git a/addons/project_long_term/wizard/project_compute_phases_view.xml b/addons/project_long_term/wizard/project_compute_phases_view.xml
index 9d5754af09c..69b7d94eabd 100644
--- a/addons/project_long_term/wizard/project_compute_phases_view.xml
+++ b/addons/project_long_term/wizard/project_compute_phases_view.xml
@@ -31,7 +31,6 @@
formform
- {'record_id': active_id}newTo schedule phases of all or a specified project. It then open a gantt view.
diff --git a/addons/project_long_term/wizard/project_compute_tasks_view.xml b/addons/project_long_term/wizard/project_compute_tasks_view.xml
index e6540fafff9..e679110acdc 100644
--- a/addons/project_long_term/wizard/project_compute_tasks_view.xml
+++ b/addons/project_long_term/wizard/project_compute_tasks_view.xml
@@ -30,7 +30,6 @@
formform
- {'record_id' : active_id}new
diff --git a/addons/project_mailgate/__openerp__.py b/addons/project_mailgate/__openerp__.py
index 76ff6dbbc47..ba3e2e57ba5 100644
--- a/addons/project_mailgate/__openerp__.py
+++ b/addons/project_mailgate/__openerp__.py
@@ -25,7 +25,7 @@
"version": "1.1",
"author": "OpenERP SA",
"website": "http://www.openerp.com",
- "category": "Project Management",
+ "category": "Hidden",
'complexity': "easy",
"images": ["images/project_mailgate_task.jpeg"],
"depends": ["project", "mail"],
diff --git a/addons/project_messages/__openerp__.py b/addons/project_messages/__openerp__.py
index 3f1882ed376..f7e50110784 100644
--- a/addons/project_messages/__openerp__.py
+++ b/addons/project_messages/__openerp__.py
@@ -26,7 +26,7 @@
"images": ["images/project_message.jpeg"],
"depends": ["project"],
"author": "OpenERP SA",
- "category": 'Project Management',
+ "category": 'Hidden',
'complexity': "easy",
"description": """
This module provides the functionality to send messages within a project.
diff --git a/addons/project_mrp/__openerp__.py b/addons/project_mrp/__openerp__.py
index 86520a0cc78..3cb2fb40179 100644
--- a/addons/project_mrp/__openerp__.py
+++ b/addons/project_mrp/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Automatic task creation from procurement lines',
'version': '1.0',
- 'category': 'Project Management',
+ 'category': 'Hidden/Link',
'complexity': "easy",
'description': """
Automatically creates project tasks from procurement lines
diff --git a/addons/project_planning/__openerp__.py b/addons/project_planning/__openerp__.py
index 537170d4e3d..9ce5e8a2d9a 100644
--- a/addons/project_planning/__openerp__.py
+++ b/addons/project_planning/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Planning Management Module',
'version': '1.0',
- 'category': 'Project Management',
+ 'category': 'Hidden',
'complexity': "easy",
'description': """Keep track of your planning
This module helps you to manage your plannings.
diff --git a/addons/project_retro_planning/__openerp__.py b/addons/project_retro_planning/__openerp__.py
index 8157180321a..68ea9d5d78e 100644
--- a/addons/project_retro_planning/__openerp__.py
+++ b/addons/project_retro_planning/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Project Retro planning',
'version': '0.1',
- 'category': 'Project Management',
+ 'category': 'Hidden',
'description': """
Changes dates according to change in project End Date.
======================================================
diff --git a/addons/project_scrum/__openerp__.py b/addons/project_scrum/__openerp__.py
index 9b2f4c4e046..fb08b8432be 100644
--- a/addons/project_scrum/__openerp__.py
+++ b/addons/project_scrum/__openerp__.py
@@ -21,7 +21,7 @@
{
- 'name': 'Scrum, Agile Development Method',
+ 'name': 'Methodology: SCRUM',
'version': '1.0',
'category': 'Project Management',
'complexity': "easy",
diff --git a/addons/project_scrum/i18n/fr.po b/addons/project_scrum/i18n/fr.po
index adca710673b..4379520c588 100644
--- a/addons/project_scrum/i18n/fr.po
+++ b/addons/project_scrum/i18n/fr.po
@@ -7,15 +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:15+0000\n"
-"PO-Revision-Date: 2011-01-18 16:47+0000\n"
-"Last-Translator: Maxime Chambreuil (http://www.savoirfairelinux.com) "
-"\n"
+"PO-Revision-Date: 2011-09-26 12:11+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-09-05 05:03+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-27 04:47+0000\n"
+"X-Generator: Launchpad (build 14028)\n"
#. module: project_scrum
#: help:project.scrum.email,scrum_master_email:0
@@ -991,6 +990,14 @@ msgid ""
"*Blocks encountered:\n"
"_______________________ %s"
msgstr ""
+"\n"
+"* Tâches depuis hier :\n"
+"_______________________%s\n"
+"* Tâches pour aujourd'hui :\n"
+"_______________________ %s\n"
+"\n"
+"* Blocages rencontrés :\n"
+"_______________________ %s"
#. module: project_scrum
#: help:project.scrum.product.backlog,active:0
diff --git a/addons/project_timesheet/__openerp__.py b/addons/project_timesheet/__openerp__.py
index 1263a514804..1076eb7065e 100644
--- a/addons/project_timesheet/__openerp__.py
+++ b/addons/project_timesheet/__openerp__.py
@@ -20,7 +20,7 @@
##############################################################################
{
- 'name': 'Project Timesheet',
+ 'name': 'Bill Time on Tasks',
'version': '1.0',
'category': 'Project Management',
'description': """
diff --git a/addons/purchase/__openerp__.py b/addons/purchase/__openerp__.py
index 975754dd5fe..faf9850d14a 100644
--- a/addons/purchase/__openerp__.py
+++ b/addons/purchase/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Purchase Management',
'version': '1.1',
- 'category': 'Purchases',
+ 'category': 'Purchase Management',
'complexity': "easy",
'description': """
Purchase module is for generating a purchase order for purchase of goods from a supplier.
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index dcf29bfaceb..db494add04b 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -188,11 +188,11 @@ class purchase_order(osv.osv):
'shipped_rate': fields.function(_shipped_rate, string='Received', type='float'),
'invoiced': fields.function(_invoiced, string='Invoiced & Paid', type='boolean', help="It indicates that an invoice has been paid"),
'invoiced_rate': fields.function(_invoiced_rate, string='Invoiced', type='float'),
- 'invoice_method': fields.selection([('manual','From PO/PO lines'),('order','Draft invoices pre-generated'),('picking','From receptions')], 'Invoicing Control', required=True,
- help="From Order: a draft invoice will be generated based on the purchase order. The accountant " \
+ 'invoice_method': fields.selection([('manual','Based on purchase order lines'),('order','Draft invoices pre-generated'),('picking','Based on receptions')], 'Invoicing Control', required=True,
+ help="Based on orders: a draft invoice will be generated based on the purchase order. The accountant " \
"will just have to validate this invoice for control.\n" \
- "From Reception: a draft invoice will be generated based on validated receptions.\n" \
- "Manual: allows you to generate suppliers invoices by chosing in the uninvoiced lines of all manual purchase orders."
+ "Based on receptions: a draft invoice will be generated based on validated receptions.\n" \
+ "Pre-generate Invoice: allows you to generate draft suppliers invoices on validation of the PO."
),
'minimum_planned_date':fields.function(_minimum_planned_date, fnct_inv=_set_minimum_planned_date, string='Expected Date', type='date', select=True, help="This is computed as the minimum scheduled date of all purchase order lines' products.",
store = {
diff --git a/addons/purchase/purchase_sequence.xml b/addons/purchase/purchase_sequence.xml
index e8a7f43c503..d5b4fc4bd3b 100644
--- a/addons/purchase/purchase_sequence.xml
+++ b/addons/purchase/purchase_sequence.xml
@@ -11,7 +11,7 @@
purchase.orderPO5
-
+
diff --git a/addons/purchase/purchase_view.xml b/addons/purchase/purchase_view.xml
index cb7224faaf0..60c6c39bf05 100644
--- a/addons/purchase/purchase_view.xml
+++ b/addons/purchase/purchase_view.xml
@@ -497,14 +497,14 @@
- On Purchase Order Line
+ On Purchase Order Linesir.actions.act_windowpurchase.order.line[('order_id.invoice_method','<>','picking'), ('state','in',('confirmed','done')), ('invoiced', '=', False)]formtree,form
- If you set the invoicing control on a purchase order as "Manual", you can track here all the purchase order lines for which you have not received the supplier invoice yet. Once you are ready to receive a supplier invoice, you can generate a draft supplier invoice based on the lines from this menu.
+ If you set the invoicing control on a purchase order as "Based on Purchase Order Lines", you can track here all the purchase order lines for which you have not received the supplier invoice yet. Once you are ready to receive a supplier invoice, you can generate a draft supplier invoice based on the lines from this menu.
diff --git a/addons/purchase/stock.py b/addons/purchase/stock.py
index 696c4d708fe..29b4aa29318 100644
--- a/addons/purchase/stock.py
+++ b/addons/purchase/stock.py
@@ -124,68 +124,15 @@ class stock_picking(osv.osv):
purchase_obj.write(cursor, user, [picking.purchase_id.id], {'invoice_id': invoice_id,})
return super(stock_picking, self)._invoice_hook(cursor, user, picking, invoice_id)
-stock_picking()
-
class stock_partial_picking(osv.osv_memory):
_inherit = 'stock.partial.picking'
- def default_get(self, cr, uid, fields, context=None):
- """ To get default values for the object.
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
- @return: A dictionary which of fields with values.
- """
- if context is None:
- context = {}
- pick_obj = self.pool.get('stock.picking')
- res = super(stock_partial_picking, self).default_get(cr, uid, fields, context=context)
- for pick in pick_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- has_product_cost = (pick.type == 'in' and pick.purchase_id)
- for m in pick.move_lines:
- if m.state in ('done','cancel') :
- continue
- if has_product_cost and m.product_id.cost_method == 'average' and m.purchase_line_id:
- # We use the original PO unit purchase price as the basis for the cost, expressed
- # in the currency of the PO (i.e the PO's pricelist currency)
- list_index = 0
- for item in res['product_moves_in']:
- if item['move_id'] == m.id:
- res['product_moves_in'][list_index]['cost'] = m.purchase_line_id.price_unit
- res['product_moves_in'][list_index]['currency'] = m.picking_id.purchase_id.pricelist_id.currency_id.id
- list_index += 1
- return res
-stock_partial_picking()
+ # Overridden to inject the purchase price as true 'cost price' when processing
+ # incoming pickings.
+ def _product_cost_for_average_update(self, cr, uid, move):
+ if move.picking_id.purchase_id:
+ return {'cost': move.purchase_line_id.price_unit,
+ 'currency': move.picking_id.purchase_id.pricelist_id.currency_id.id}
+ return super(stock_partial_picking, self)._product_cost_for_average_update(cr, uid, move)
-class stock_partial_move(osv.osv_memory):
- _inherit = "stock.partial.move"
- def default_get(self, cr, uid, fields, context=None):
- """ To get default values for the object.
- @param self: The object pointer.
- @param cr: A database cursor
- @param uid: ID of the user currently logged in
- @param fields: List of fields for which we want default values
- @param context: A standard dictionary
- @return: A dictionary which of fields with values.
- """
- if context is None:
- context = {}
- res = super(stock_partial_move, self).default_get(cr, uid, fields, context=context)
- move_obj = self.pool.get('stock.move')
- for m in move_obj.browse(cr, uid, context.get('active_ids', []), context=context):
- if m.picking_id.type == 'in' and m.product_id.cost_method == 'average' \
- and m.purchase_line_id and m.picking_id.purchase_id:
- # We use the original PO unit purchase price as the basis for the cost, expressed
- # in the currency of the PO (i.e the PO's pricelist currency)
- list_index = 0
- for item in res['product_moves_in']:
- if item['move_id'] == m.id:
- res['product_moves_in'][list_index]['cost'] = m.purchase_line_id.price_unit
- res['product_moves_in'][list_index]['currency'] = m.picking_id.purchase_id.pricelist_id.currency_id.id
- list_index += 1
- return res
-stock_partial_move()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
-
diff --git a/addons/purchase/test/purchase_from_picking.yml b/addons/purchase/test/purchase_from_picking.yml
index 9425ad94812..8d63aa3e02c 100644
--- a/addons/purchase/test/purchase_from_picking.yml
+++ b/addons/purchase/test/purchase_from_picking.yml
@@ -137,7 +137,7 @@
pur_id1=pur_obj.browse(cr, uid, ref("purchase_order_po2"))
pick_ids = [x.id for x in pur_id1.picking_ids]
id = self.create(cr, uid, {'invoice_date': time.strftime('%Y-%m-%d'), 'journal_id': ref('account.expenses_journal')},
- {'active_ids': pick_ids})
+ {'active_ids': pick_ids, 'active_model': 'stock.picking'})
self.create_invoice(cr, uid, [id], {"active_ids": pick_ids, "active_id": pick_ids[0]})
-
I check that an invoice_ids field of Delivery&Invoices gets bind with the value.
diff --git a/addons/purchase/wizard/purchase_installer.py b/addons/purchase/wizard/purchase_installer.py
index c6d70947893..a96d07f6caf 100644
--- a/addons/purchase/wizard/purchase_installer.py
+++ b/addons/purchase/wizard/purchase_installer.py
@@ -20,35 +20,26 @@
##############################################################################
from osv import fields, osv
-class purchase_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- 'purchase_requisition':fields.boolean('Purchase Requisition',help="Manages your Purchase Requisition and allows you to easily keep track and manage all your purchase orders."),
- 'purchase_analytic_plans': fields.boolean('Purchase Analytic Plans',help="Manages analytic distribution and purchase orders.")
- }
-purchase_installer()
-
class purchase_config_wizard(osv.osv_memory):
_name = 'purchase.config.wizard'
+ _inherit = 'res.config'
_columns = {
'default_method' : fields.selection(
- [('manual', 'Based on Purchase Orders'),
+ [('manual', 'Based on Purchase Order Lines'),
('picking', 'Based on Receptions'),
- ('order', 'Pre-Generate Draft Invoices on Purchase Orders'),
- ],
- 'Default Invoicing Control Method',
- required=True,
- ),
+ ('order', 'Pre-Generate Draft Invoices on Based Purchase Orders'),
+ ], 'Default Invoicing Control Method', required=True,
+ )
+ }
+ _defaults = {
+ 'default_method': lambda s,c,u,ctx: s.pool.get('purchase.order').default_get(c,u,['invoice_method'],context=ctx)['invoice_method']
}
- def validate_cb(self, cr, uid, ids, context=None):
+ def execute(self, cr, uid, ids, context=None):
wizard = self.browse(cr, uid, ids, context=context)[0]
-
proxy = self.pool.get('ir.values')
proxy.set(cr, uid, 'default', False, 'invoice_method', ['purchase.order'], wizard.default_method),
-
return {'type' : 'ir.actions.act_window_close'}
purchase_config_wizard()
diff --git a/addons/purchase/wizard/purchase_installer.xml b/addons/purchase/wizard/purchase_installer.xml
index cf9b6a985db..37ae97e9eca 100644
--- a/addons/purchase/wizard/purchase_installer.xml
+++ b/addons/purchase/wizard/purchase_installer.xml
@@ -1,22 +1,6 @@
-
- Purchases Application Configuration
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
- Create or Import Suppliers
@@ -40,32 +24,49 @@
- purchase.view_purchase_config
- form
+ Invoicing Control on Purchasespurchase.config.wizard
+ form
+
-
-
-
-
-
-
-
-
+
+
+ Invoicing Control on Purchases
+
+
+ Invoicing Control on Purchases
+
+
+ This tool will help you to select the method you want to use to control supplier invoices.
+
+
+
+ 12
+
+
+
+
+
+
+
+
Set the Default Invoicing Control Methodpurchase.config.wizardformformnew
+
+
+ once
diff --git a/addons/purchase_analytic_plans/__openerp__.py b/addons/purchase_analytic_plans/__openerp__.py
index 56d9bd59051..a29fd64944c 100644
--- a/addons/purchase_analytic_plans/__openerp__.py
+++ b/addons/purchase_analytic_plans/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Purchase Analytic Distribution Management',
+ 'name': 'Purchase Analytic Plans',
'version': '1.0',
- 'category': 'Purchases',
+ 'category': 'Purchase Management',
'description': """
The base module to manage analytic distribution and purchase orders.
====================================================================
diff --git a/addons/purchase_double_validation/__openerp__.py b/addons/purchase_double_validation/__openerp__.py
index c111d0679c1..9645514076f 100644
--- a/addons/purchase_double_validation/__openerp__.py
+++ b/addons/purchase_double_validation/__openerp__.py
@@ -22,7 +22,7 @@
{
"name" : "Double Validation for Purchase",
"version" : "1.1",
- "category": 'Purchases',
+ "category": 'Hidden',
'complexity': "easy",
"images" : ["images/purchase_validation.jpeg"],
"depends" : ["base","purchase"],
diff --git a/addons/purchase_double_validation/purchase_double_validation_installer.xml b/addons/purchase_double_validation/purchase_double_validation_installer.xml
index 9a06f66164a..490581e472b 100644
--- a/addons/purchase_double_validation/purchase_double_validation_installer.xml
+++ b/addons/purchase_double_validation/purchase_double_validation_installer.xml
@@ -44,6 +44,7 @@
+ once
diff --git a/addons/purchase_requisition/__openerp__.py b/addons/purchase_requisition/__openerp__.py
index a3658414e0f..cdb13e3e1aa 100644
--- a/addons/purchase_requisition/__openerp__.py
+++ b/addons/purchase_requisition/__openerp__.py
@@ -18,10 +18,10 @@
#
##############################################################################
{
- "name" : "Purchase - Purchase Requisition",
+ "name" : "Purchase Requisition",
"version" : "0.1",
"author" : "OpenERP SA",
- "category" : "Purchases",
+ "category" : "Purchase Management",
'complexity': "easy",
"images" : ['images/purchase_requisitions.jpeg'],
"website" : "http://www.openerp.com",
diff --git a/addons/purchase_requisition/i18n/fr.po b/addons/purchase_requisition/i18n/fr.po
index 58b7e9b9d25..41b8bde6141 100644
--- a/addons/purchase_requisition/i18n/fr.po
+++ b/addons/purchase_requisition/i18n/fr.po
@@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME \n"
"POT-Creation-Date: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-18 16:46+0000\n"
-"Last-Translator: Fabien (Open ERP) \n"
+"PO-Revision-Date: 2011-09-26 12:22+0000\n"
+"Last-Translator: lholivier \n"
"Language-Team: French \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2011-09-05 05:57+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-27 04:47+0000\n"
+"X-Generator: Launchpad (build 14028)\n"
#. module: purchase_requisition
#: view:purchase.requisition:0
@@ -193,11 +193,11 @@ msgid ""
"negotiation, once you have reviewed all the supplier's offers, you can "
"validate some and cancel others."
msgstr ""
-"Une demande d'achat est une étape avant la demande de devis. Dans une "
-"demande d'achat (ou appel d'offre), vous pouvez enregistrer les produits que "
-"vous avez besoin d'acheter et automatiser la création des demandes de devis "
-"à vos fournisseurs. Après la négociation, quand vous avez toutes les offres "
-"de vos fournisseurs, vous pouvez en valider certaines et en annuler d'autres."
+"La demande d'achat précède la demande de devis. La demande d'achat "
+"répertorie les produits dont on a besoin et on peut y déclencher des "
+"demandes de devis auprès des fournisseurs. Aprés la négociation, lorsque "
+"toutes les offres des fournisseurs ont été examinées, vous pouvez valider "
+"certaines offres et éliminer les autres."
#. module: purchase_requisition
#: field:purchase.requisition.line,product_qty:0
@@ -344,7 +344,7 @@ msgstr "Référence"
#. module: purchase_requisition
#: model:ir.model,name:purchase_requisition.model_procurement_order
msgid "Procurement"
-msgstr "Besoin"
+msgstr "Approvisionnement"
#. module: purchase_requisition
#: field:purchase.requisition,warehouse_id:0
@@ -434,3 +434,5 @@ msgid ""
"You have already one %s purchase order for this partner, you must cancel "
"this purchase order to create a new quotation."
msgstr ""
+"Il existe déjà une commande %s pour ce partenaire, vous devez annuler cette "
+"commande avant de faire un nouveau devis."
diff --git a/addons/report_designer/__init__.py b/addons/report_designer/__init__.py
index 3511d091ecb..9a3d6d2fbb6 100644
--- a/addons/report_designer/__init__.py
+++ b/addons/report_designer/__init__.py
@@ -19,6 +19,5 @@
#
##############################################################################
-import installer
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/report_designer/__openerp__.py b/addons/report_designer/__openerp__.py
index 73982086c8f..fd29d2b96ee 100644
--- a/addons/report_designer/__openerp__.py
+++ b/addons/report_designer/__openerp__.py
@@ -21,28 +21,27 @@
{
- "name" : "Reporting Tools Installer",
+ "name" : "Reporting Hidden Installer",
"version" : "1.0",
"depends" : ["base", "base_setup"],
"author" : "OpenERP SA",
- "category": "Tools",
+ "category": "Hidden",
"description": """
-Installer for reporting tools.
+Installer for reporting Hidden.
==============================
-Makes the Reporting Tools Configuration available from where you can install
+Makes the Reporting Hidden Configuration available from where you can install
modules like base_report_designer and base_report_creator.
""",
'website': 'http://www.openerp.com',
'init_xml': [],
'update_xml': [
'security/ir.model.access.csv',
- 'report_designer_installer.xml',
],
'demo_xml': [],
'installable': True,
'active': False,
'certificate' : '00764037194670093149',
- 'images': ['images/config_reporting_tools.jpeg'],
+ 'images': ['images/config_reporting_Hidden.jpeg'],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/report_designer/report_designer_installer.xml b/addons/report_designer/report_designer_installer.xml
deleted file mode 100644
index d8d1798578e..00000000000
--- a/addons/report_designer/report_designer_installer.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
- report_designer.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/report_intrastat/__openerp__.py b/addons/report_intrastat/__openerp__.py
index b3101317ece..6c80e0f2b81 100644
--- a/addons/report_intrastat/__openerp__.py
+++ b/addons/report_intrastat/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Intrastat Reporting',
'version': '1.0',
- 'category': 'Warehouse',
+ 'category': 'Hidden',
'description': """
A module that adds intrastat reports.
=====================================
diff --git a/addons/report_webkit/__openerp__.py b/addons/report_webkit/__openerp__.py
index e593791f826..339818a646b 100644
--- a/addons/report_webkit/__openerp__.py
+++ b/addons/report_webkit/__openerp__.py
@@ -74,7 +74,7 @@ Web client WYSIWYG
"version" : "0.9",
"depends" : ["base"],
"author" : "Camptocamp SA - NBessi",
- "category": "Tools",
+ "category": "Hidden",
"url": "http://http://www.camptocamp.com/",
"data": [ "security/ir.model.access.csv",
"data.xml",
diff --git a/addons/report_webkit_sample/__openerp__.py b/addons/report_webkit_sample/__openerp__.py
index 3670aa4c5d2..d485692c164 100644
--- a/addons/report_webkit_sample/__openerp__.py
+++ b/addons/report_webkit_sample/__openerp__.py
@@ -43,7 +43,7 @@ You have to create the print buttons by calling the wizard. For more details see
""",
"version" : "0.9",
"depends" : ["base", "account", "report_webkit"],
- "category": "Tools",
+ "category": "Hidden",
"author" : "Camptocamp SA - NBessi",
"url": "http://www.camptocamp.com/",
"data": ["report_webkit_html_view.xml",
diff --git a/addons/resource/__openerp__.py b/addons/resource/__openerp__.py
index dab9b06d5f8..f1e020215a6 100644
--- a/addons/resource/__openerp__.py
+++ b/addons/resource/__openerp__.py
@@ -23,7 +23,7 @@
"name" : "Resource",
"version" : "1.1",
"author" : "OpenERP SA",
- "category" : "Project Management",
+ "category" : "Hidden",
"website" : "http://www.openerp.com",
"description": """
Module for resource management.
diff --git a/addons/sale/__init__.py b/addons/sale/__init__.py
index 3c7af56e808..c7be8e7e14b 100644
--- a/addons/sale/__init__.py
+++ b/addons/sale/__init__.py
@@ -25,7 +25,6 @@
import sale
import stock
-import sale_installer
import wizard
import report
import company
diff --git a/addons/sale/__openerp__.py b/addons/sale/__openerp__.py
index c983edc881e..ac2f2090c7f 100644
--- a/addons/sale/__openerp__.py
+++ b/addons/sale/__openerp__.py
@@ -22,8 +22,7 @@
{
'name': 'Sales Management',
'version': '1.0',
- 'category': 'Sales',
- 'category': 'Generic Modules/Sales & Purchases',
+ 'category': 'Sales Management',
'complexity': "easy",
'description': """
The base module to manage quotations and sales orders.
@@ -79,7 +78,6 @@ Dashboard for Sales Manager that includes:
'sale_sequence.xml',
'sale_data.xml',
'sale_view.xml',
- 'sale_installer.xml',
'report/sale_report_view.xml',
'sale_report.xml',
'stock_view.xml',
diff --git a/addons/sale/i18n/es_CL.po b/addons/sale/i18n/es_CL.po
index 7d53daae068..b5c12a60c81 100644
--- a/addons/sale/i18n/es_CL.po
+++ b/addons/sale/i18n/es_CL.po
@@ -7,15 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev_rc3\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
-"PO-Revision-Date: 2011-01-14 04:38+0000\n"
-"Last-Translator: Jordi Esteve (www.zikzakmedia.com) "
-"\n"
+"PO-Revision-Date: 2011-10-06 16:03+0000\n"
+"Last-Translator: Francisco Reyes Acuña \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-09-05 05:22+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-07 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: sale
#: view:board.board:0
@@ -34,8 +33,8 @@ msgid ""
"If you don't have enough stock available to deliver all at once, do you "
"accept partial shipments or not?"
msgstr ""
-"Si no dispone de suficientes existencias para enviarlo todo de una vez, "
-"¿acepta envíos parciales o no?"
+"Si no dispone de suficiente stock disponible para enviarlo todo a la vez, "
+"¿acepta envíos parciales?"
#. module: sale
#: help:sale.order,partner_shipping_id:0
@@ -140,6 +139,14 @@ msgid ""
"configuration of the sales order, a draft invoice will be generated so that "
"you just have to confirm it when you want to bill your customer."
msgstr ""
+"Los pedidos de ventas le ayudan a gestionar presupuestos y pedidos de sus "
+"clientes. OpenERP sugiere que comience por crear un presupuesto. Una vez "
+"esté confirmado, el presupuesto se convertirá en un pedido de venta. OpenERP "
+"puede gestionar varios tipos de productos de forma que un pedido de venta "
+"puede generar tareas, órdenes de entrega, órdenes de fabricación, compras, "
+"etc. Según la configuración del pedido de venta, se generará una factura en "
+"borrador de manera que sólo hay que confirmarla cuando se quiera facturar a "
+"su cliente."
#. module: sale
#: help:sale.order,invoice_quantity:0
@@ -791,6 +798,28 @@ msgid ""
" * Graph of cases of the month\n"
" "
msgstr ""
+"\n"
+" El módulo base para gestionar presupuestos y pedidos de venta.\n"
+"\n"
+" * Flujo de trabajo con etapas de validación:\n"
+" - Presupuesto -> Pedido de venta -> Factura\n"
+" * Métodos de facturación:\n"
+" - Factura del pedido (antes o después del envío)\n"
+" - Factura del albarán\n"
+" - Factura de la hoja de servicios\n"
+" - Avanzar factura\n"
+" * Preferencias de los clientes (envío, facturación, incoterm, ...)\n"
+" * Existencias de los productos y precios\n"
+" * Formas de envío:\n"
+" - Todo a la vez, En varios paquetes\n"
+" - Gastos de envío\n"
+" * El tablero para el comercial incluye:\n"
+" * Sus presupuestos abiertos\n"
+" * Las 10 mejores ventas del mes\n"
+" * Estadísticas de casos\n"
+" * Gráfico de las ventas por producto\n"
+" * Gráfico de los casos por mes\n"
+" "
#. module: sale
#: model:ir.model,name:sale.model_sale_shop
@@ -953,7 +982,7 @@ msgstr "Basado en las cantidades enviadas o ordenadas."
#. module: sale
#: field:sale.order,picking_ids:0
msgid "Related Picking"
-msgstr "Albarán relacionado"
+msgstr "Guía de despacho relacionada"
#. module: sale
#: field:sale.config.picking_policy,name:0
@@ -1055,7 +1084,7 @@ msgstr "título"
#. module: sale
#: model:process.node,name:sale.process_node_packinglist0
msgid "Pick List"
-msgstr "Albarán"
+msgstr "Guía de despacho"
#. module: sale
#: view:sale.order:0
@@ -1102,7 +1131,7 @@ msgstr "Fecha en que se crea el pedido de venta."
#. module: sale
#: model:ir.model,name:sale.model_stock_move
msgid "Stock Move"
-msgstr "Movimiento stock"
+msgstr "Movimiento de stock"
#. module: sale
#: view:sale.make.invoice:0
@@ -1138,7 +1167,7 @@ msgstr "Factura basada en pedidos de venta"
#. module: sale
#: model:ir.model,name:sale.model_stock_picking
msgid "Picking List"
-msgstr "Albarán"
+msgstr "LIsta de guías de despacho"
#. module: sale
#: code:addons/sale/sale.py:387
@@ -1324,7 +1353,7 @@ msgstr ""
#. module: sale
#: selection:sale.config.picking_policy,step:0
msgid "Picking List & Delivery Order"
-msgstr "Albarán y Orden de entrega"
+msgstr "Guía de despacho y Orden de entrega"
#. module: sale
#: field:sale.order,origin:0
@@ -2037,6 +2066,11 @@ msgid ""
"warehouse from which the products will be delivered for each particular "
"sales."
msgstr ""
+"Si tiene más de una tienda donde vende los productos de su compañía, puede "
+"crearlas y gestionarlas desde aquí. Cada vez que codifique un nuevo "
+"presupuesto o pedido de venta, debe estar vinculado a una tienda. La tienda "
+"también define desde que almacén serán entregados los productos para cada "
+"venta."
#. module: sale
#: help:sale.order,invoiced:0
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index f2f953398a2..d9b8cfb88f9 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -216,7 +216,7 @@ class sale_order(osv.osv):
'partner_shipping_id': fields.many2one('res.partner.address', 'Shipping Address', readonly=True, required=True, states={'draft': [('readonly', False)]}, help="Shipping address for current sales order."),
'incoterm': fields.many2one('stock.incoterms', 'Incoterm', help="Incoterm which stands for 'International Commercial terms' implies its a series of sales terms which are used in the commercial transaction."),
- 'picking_policy': fields.selection([('direct', 'Partial Delivery'), ('one', 'Complete Delivery')],
+ 'picking_policy': fields.selection([('direct', 'Deliver each products when available'), ('one', 'Deliver all products at once')],
'Picking Policy', required=True, readonly=True, states={'draft': [('readonly', False)]}, help="""If you don't have enough stock available to deliver all at once, do you accept partial shipments or not?"""),
'order_policy': fields.selection([
('prepaid', 'Pay before delivery'),
@@ -728,6 +728,7 @@ class sale_order(osv.osv):
#'state': 'waiting',
'note': line.notes,
'company_id': order.company_id.id,
+ 'price_unit': line.product_id.standard_price or 0.0
})
if line.product_id:
@@ -1215,7 +1216,7 @@ class sale_config_picking_policy(osv.osv_memory):
('manual', 'Invoice Based on Sales Orders'),
('picking', 'Invoice Based on Deliveries'),
], 'Main Method Based On', required=True, help="You can generate invoices based on sales orders or based on shippings."),
- 'charge_delivery': fields.boolean('Do you charge the delivery'),
+ 'charge_delivery': fields.boolean('Do you charge the delivery?'),
'time_unit': fields.many2one('product.uom','Main Working Time Unit')
}
_defaults = {
@@ -1224,12 +1225,10 @@ class sale_config_picking_policy(osv.osv_memory):
def onchange_order(self, cr, uid, ids, sale, deli, context=None):
res = {}
- if sale or deli:
+ if sale:
res.update({'order_policy': 'manual'})
- elif not sale and not deli:
- res.update({'order_policy': 'manual'})
- else:
- return {}
+ elif deli:
+ res.update({'order_policy': 'picking'})
return {'value':res}
def execute(self, cr, uid, ids, context=None):
@@ -1239,26 +1238,18 @@ class sale_config_picking_policy(osv.osv_memory):
module_obj = self.pool.get('ir.module.module')
module_upgrade_obj = self.pool.get('base.module.upgrade')
module_name = []
- group_ids=[]
- group_name = ['group_sale_salesman','group_sale_manager']
- for name in group_name:
- data_id = data_obj.name_search(cr, uid, name)
- group_ids.append(data_obj.browse(cr,uid,data_id[0][0]).res_id)
+ group_id = data_obj.get_object(cr, uid, 'base', 'group_sale_salesman').id
wizard = self.browse(cr, uid, ids)[0]
if wizard.sale_orders:
- menu_name = 'menu_invoicing_sales_order_lines'
- data_id = data_obj.name_search(cr, uid, menu_name)
- menu_id = data_obj.browse(cr,uid,data_id[0][0]).res_id
- menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_ids[0]),(4,group_ids[1])]})
+ menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_invoicing_sales_order_lines').id
+ menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]})
if wizard.deli_orders:
- menu_name = 'menu_action_picking_list_to_invoice'
- data_id = data_obj.name_search(cr, uid, menu_name)
- menu_id = data_obj.browse(cr,uid,data_id[0][0]).res_id
- menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_ids[0]),(4,group_ids[1])]})
+ menu_id = data_obj.get_object(cr, uid, 'sale', 'menu_action_picking_list_to_invoice').id
+ menu_obj.write(cr, uid, menu_id, {'groups_id':[(4,group_id)]})
if wizard.task_work:
module_name.append('project_timesheet')
@@ -1268,12 +1259,7 @@ class sale_config_picking_policy(osv.osv_memory):
module_name.append('account_analytic_analysis')
if wizard.charge_delivery:
- module_name.append('delivery')
-
- if wizard.time_unit:
- product_obj = self.pool.get('product.product')
- product_id = product_obj.name_search(cr, uid, 'Employee')
- product_obj.write(cr, uid, product_id[0][0], {'uom_id':wizard.time_unit.id})
+ module_name.append('delivery')
if len(module_name):
module_ids = []
@@ -1291,7 +1277,17 @@ class sale_config_picking_policy(osv.osv_memory):
if need_install:
pooler.restart_pool(cr.dbname, update_module=True)[1]
+ if wizard.time_unit:
+ prod_id = data_obj.get_object(cr, uid, 'hr_timesheet', 'product_consultant').id
+ product_obj = self.pool.get('product.product')
+ product_obj.write(cr, uid, prod_id, {'uom_id':wizard.time_unit.id, 'uom_po_id': wizard.time_unit.id})
+
ir_values_obj.set(cr, uid, 'default', False, 'order_policy', ['sale.order'], wizard.order_policy)
+ if wizard.task_work and wizard.time_unit:
+ company_id = self.pool.get('res.users').browse(cr, uid, uid).company_id.id
+ self.pool.get('res.company').write(cr, uid, [company_id], {
+ 'project_time_mode_id': wizard.time_unit.id
+ }, context=context)
sale_config_picking_policy()
diff --git a/addons/sale/sale_data.xml b/addons/sale/sale_data.xml
index 41f7534c8e2..4622577ac3d 100644
--- a/addons/sale/sale_data.xml
+++ b/addons/sale/sale_data.xml
@@ -13,11 +13,15 @@
Resource: sale.shop
-->
-
-
-
-
+
+
+
+
+
+
diff --git a/addons/sale/sale_installer.py b/addons/sale/sale_installer.py
deleted file mode 100644
index dcac79270b2..00000000000
--- a/addons/sale/sale_installer.py
+++ /dev/null
@@ -1,43 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2004-2010 Tiny SPRL ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-from osv import fields, osv
-
-class sale_installer(osv.osv_memory):
- _inherit = 'base.setup.installer'
-
- _columns = {
- 'delivery': fields.boolean('Delivery Costs',
- help="Allows you to compute delivery costs on your quotations."),
- 'sale_journal': fields.boolean('Invoicing journals',
- help="Allows you to group and invoice your delivery orders according to different invoicing types: daily, weekly, etc."),
- 'sale_layout': fields.boolean('Sales Orders Print Layout',
- help="Provides some features to improve the layout of the Sales Order reports."),
- 'sale_margin': fields.boolean('Margins in Sales Orders',
- help="Gives the margin of profitability by calculating "
- "the difference between Unit Price and Cost Price."),
- 'sale_order_dates': fields.boolean('Full Dates on Sales Orders',
- help="Adds commitment, requested and effective dates on Sales Orders."),
- }
-
-sale_installer()
-
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale/sale_installer.xml b/addons/sale/sale_installer.xml
deleted file mode 100644
index ae48e9f14b2..00000000000
--- a/addons/sale/sale_installer.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
- sale.installer.view
- base.setup.installer
- form
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/addons/sale/sale_sequence.xml b/addons/sale/sale_sequence.xml
index dadd1942940..666f7b49720 100644
--- a/addons/sale/sale_sequence.xml
+++ b/addons/sale/sale_sequence.xml
@@ -13,6 +13,7 @@
sale.orderSO3
+
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index b7f5d11e15f..4669a9d7d9c 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -481,54 +481,50 @@
- Set Up Your Invoicing Method
+ Setup Your Invoicing Methodsale.config.picking_policyform
- Sales Application Configuration
+ Setup your Invoicing Method
-
-
-
+
+
+ Setup your Invoicing Method
+
+
+ This tool will help you to install the right module and configure the system according to the method you use to invoice your customers.
+
+
+
+ 12
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
- Set up your Invoicing Method
+ Setup your Invoicing Methodir.actions.act_windowsale.config.picking_policy
@@ -541,6 +537,7 @@
+ once
diff --git a/addons/sale/test/data_test.yml b/addons/sale/test/data_test.yml
index 7064a549335..0be8474754c 100644
--- a/addons/sale/test/data_test.yml
+++ b/addons/sale/test/data_test.yml
@@ -122,7 +122,6 @@
default_credit_account_id: account_account_purchases0
default_debit_account_id: account_account_purchases0
name: Purchase Journal - (test)
- sequence_id: account.sequence_purchase_journal
type: purchase
view_id: account.account_journal_view
-
@@ -134,7 +133,6 @@
default_credit_account_id: account_account_sales0
default_debit_account_id: account_account_sales0
name: Sale Journal
- sequence_id: account.sequence_sale_journal
type: sale
view_id: account.account_journal_view
-
@@ -146,7 +144,6 @@
default_credit_account_id: account_account_cash0
default_debit_account_id: account_account_cash0
name: Bank Journal
- sequence_id: account.sequence_journal
type: cash
view_id: account.account_journal_bank_view
-
diff --git a/addons/sale/test/invoice_on_ordered_qty.yml b/addons/sale/test/invoice_on_ordered_qty.yml
index 785b2d8835e..313aa3a0d63 100644
--- a/addons/sale/test/invoice_on_ordered_qty.yml
+++ b/addons/sale/test/invoice_on_ordered_qty.yml
@@ -31,39 +31,17 @@
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_so9}
-
- I verify that the picking has been generated for the sale order
+ I verify that the picking has been generated for the sale order and I process it
-
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so9"))
assert so.picking_ids,"Picking has not been generated for sale_order_so9"
--
- Then I confirm the picking
--
- !record {model: stock.partial.picking, id: stock_partial_picking_0}:
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
--
- Then I done the picking
--
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so9"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': '100',
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ picking, = so.picking_ids
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [picking.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I click on Create Invoice button to create the invoice.
-
diff --git a/addons/sale/test/invoice_on_shipped_qty.yml b/addons/sale/test/invoice_on_shipped_qty.yml
index bf2795e0f5b..c6ac86471be 100644
--- a/addons/sale/test/invoice_on_shipped_qty.yml
+++ b/addons/sale/test/invoice_on_shipped_qty.yml
@@ -30,41 +30,21 @@
-
!workflow {model: sale.order, action: order_confirm, ref: sale_order_so6}
-
- I verify that the picking has been generated for the sale order
+ I verify that the picking has been generated for the sale order and I process it
-
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so6"))
assert so.picking_ids,"Picking has not been generated for sale_order_so6"
--
- Then I click on the "Product Sent" button of Outgoing Shipments
--
- !record {model: stock.partial.picking, id: stock_partial_picking_0}:
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
--
- I change the quantity on the picking to 199, and confirm partially 100 PCE.
--
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so6"))
- picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- self.pool.get('stock.move').write(cr, uid, [pick.move_lines[0].id], {'product_qty': 199, 'product_uos_qty': 199})
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': '100',
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ picking, = so.picking_ids
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [picking.id]})
+ # I change the qty to 100 for a partial delivery
+ partial = stock_partial_picking.browse(cr,uid,partial_id)
+ line_id = partial.move_ids[0].id
+ partial.write({'move_ids': [(1,line_id,{'quantity':100})]})
+ partial.do_partial()
-
Then I click on 'Create Invoices' button
-
@@ -72,9 +52,9 @@
import time
sale_obj = self.pool.get('sale.order')
sale_id = sale_obj.browse(cr, uid, ref("sale_order_so6"))
- ids = [x.id for x in sale_id.picking_ids]
+ ids = [x.id for x in sale_id.picking_ids if x.state == 'done']
wiz_id = self.create(cr, uid, {'invoice_date': time.strftime('%Y-%m-%d'), 'journal_id': ref('account.sales_journal')},
- {'active_ids': ids})
+ {'active_ids': ids, 'active_model': 'stock.picking'})
self.create_invoice(cr, uid, [wiz_id], {"active_ids": ids, "active_id": ids[0]})
-
I verify whether the invoice has been generated for SO
@@ -98,7 +78,7 @@
inv_brw = self.browse(cr,uid,inv_id)[0]
for inv_lines in inv_brw.invoice_line:
qty1=inv_lines.quantity
- assert (qty1 == qty), "Quantities are not the same"
+ assert (qty1 == qty), "Quantities are not the same: invoiced: %s, shipped: %s" % (qty1,qty)
-
I open the Invoice for the SO.
-
diff --git a/addons/sale/test/manual_order_policy.yml b/addons/sale/test/manual_order_policy.yml
index c1535402f9b..af515b2d4e4 100644
--- a/addons/sale/test/manual_order_policy.yml
+++ b/addons/sale/test/manual_order_policy.yml
@@ -136,15 +136,11 @@
I verify that a procurement state is "running"
-
!python {model: procurement.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','=','running')])
- assert(proc_ids),"Procurement is not in the running state!"
+ sale_order_obj = self.pool.get('sale.order')
+ so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
+ proc_ids = self.search(cr, uid, [('origin','=',so.name),('state','in',['running','ready'])])
+ # should be running is 'purchase' is installed, else 'ready'
+ assert(proc_ids),"Procurement is not in running/ready state!"
-
I verify that a purchase order has been generated
-
@@ -192,7 +188,7 @@
for pur in pur_ids:
wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
-
- I verify that a picking related to purchase order has been generated.
+ I verify that a picking related to purchase order has been generated and I process it
-
!python {model: sale.order}: |
modules = self.pool.get('ir.module.module')
@@ -204,29 +200,12 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
assert(po.picking_ids),"Picking for purchase order has not been generated"
--
- Then I click on the "Products Received" button of Incoming Shipments
--
- !record {model: stock.partial.picking, id: stock_partial_picking_0}:
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
--
- I click on the "Validate" button
--
- !python {model: stock.picking}: |
- modules = self.pool.get('ir.module.module')
- sale_order_obj = self.pool.get('sale.order')
- pur_obj = self.pool.get('purchase.order')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- pick_ser_id = self.search(cr, uid, [('purchase_id', '=', po.id )])
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- for pick in pick_ser_id:
- wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
+ picking, = po.picking_ids
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [picking.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I verify that picking for purchase order has been done.
-
@@ -244,7 +223,7 @@
ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
assert(ids),"Picking is not in the done state!"
-
- Then I done the picking
+ Then I process the picking
-
!python {model: stock.picking }: |
import time
@@ -254,18 +233,11 @@
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': move.product_qty,
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I verify that picking for sale order is in done state.
-
@@ -275,38 +247,6 @@
picking_id = self.search(cr, uid, [('origin','=',so.name),('type','=','out')])
pick = self.browse(cr,uid,picking_id[0])
assert (pick.state) =='done', "Picking for SO is not in done state."
--
- Then I done the delivery order
--
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': move.product_qty,
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
--
- I verify that delivery state is done
--
- !python {model: stock.picking }: |
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so0"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- pick = self.browse(cr,uid,picking_id[0])
- assert (pick.state) =='done', "Picking for SO is not in done state."
-
I verify that a "Picked" has been set to true
-
diff --git a/addons/sale/test/picking_order_policy.yml b/addons/sale/test/picking_order_policy.yml
index 4381c78f010..1dcbf980da4 100644
--- a/addons/sale/test/picking_order_policy.yml
+++ b/addons/sale/test/picking_order_policy.yml
@@ -46,18 +46,11 @@
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': move.product_qty,
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
Then I click on 'Create Invoices' button
-
@@ -67,7 +60,7 @@
sale_id=sale_obj.browse(cr, uid, ref("sale_order_so7"))
ids = [x.id for x in sale_id.picking_ids]
wiz_id = self.create(cr, uid, {'invoice_date': time.strftime('%Y-%m-%d'), 'journal_id': ref('account.sales_journal')},
- {'active_ids': ids})
+ {'active_ids': ids, 'active_model': 'stock.picking'})
self.create_invoice(cr, uid, [wiz_id], {"active_ids": ids, "active_id": ids[0]})
-
I check that an invoice has been created.
@@ -197,7 +190,7 @@
for pur in pur_ids:
wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
-
- I verify that a picking related to purchase order has been generated.
+ I verify that a picking related to purchase order has been generated and I process it
-
!python {model: sale.order}: |
modules = self.pool.get('ir.module.module')
@@ -209,29 +202,12 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
assert(po.picking_ids),"Picking for purchase order has not been generated"
--
- Then I click on the "Products Received" button of Incoming Shipments
--
- !record {model: stock.partial.picking, id: stock_partial_picking_0}:
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
--
- I click on the "Validate" button
--
- !python {model: stock.picking}: |
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- sale_order_obj = self.pool.get('sale.order')
- pur_obj = self.pool.get('purchase.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- pick_ser_id = self.search(cr, uid, [('purchase_id', '=', po.id )])
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- for pick in pick_ser_id:
- wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
+ picking, = po.picking_ids
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [picking.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I verify that picking for purchase order has been done.
-
@@ -249,36 +225,20 @@
ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
assert ids, _('Picking is not in the done state!')
-
- I verify that delivery order has been generated for sale order
+ I verify that delivery order has been generated for sale order, and process it
-
!python {model: stock.picking }: |
sale_order_obj = self.pool.get('sale.order')
so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
picking_id = self.search(cr, uid, [('origin','=',so.name)])
assert (picking_id),"Delivery order has not been generated"
--
- I verify that delivery has been done
--
- !python {model: stock.picking }: |
- import time
- sale_order_obj = self.pool.get('sale.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so7"))
- picking_id = self.search(cr, uid, [('origin','=',so.name)])
- if picking_id:
- pick=self.browse(cr,uid,picking_id[0])
- pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': move.product_qty,
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ pick=self.browse(cr,uid,picking_id[0])
+ pick.force_assign(cr, uid)
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I verify that delivery state is done
-
@@ -290,7 +250,7 @@
pick = self.browse(cr,uid,picking_id[0])
assert (pick.state) =='done', "Picking for SO is not in done state."
-
- I verify that a "Picked" has been set to true
+ I verify that the sale order is marked as delivered
-
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so7"))
diff --git a/addons/sale/test/postpaid_order_policy.yml b/addons/sale/test/postpaid_order_policy.yml
index 330c6d17308..a0d5a8e1928 100644
--- a/addons/sale/test/postpaid_order_policy.yml
+++ b/addons/sale/test/postpaid_order_policy.yml
@@ -45,18 +45,11 @@
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': move.product_qty,
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I verify that picking order is in done state.
-
@@ -76,7 +69,7 @@
picking_id = self.search(cr, uid, [('origin','=',so.name)])
assert (picking_id),"Delivery order has not been generated"
-
- I click on the Products Sent button and then on the Validate button
+ I process the delivery order
-
!python {model: stock.picking }: |
import time
@@ -86,20 +79,13 @@
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': move.product_qty,
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
- I verify that delivery state is done
+ I verify that delivery order is marked done
-
!python {model: stock.picking }: |
sale_order_obj = self.pool.get('sale.order')
@@ -187,7 +173,7 @@
for pur in pur_ids:
wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
-
- I verify that a picking related to purchase order has been generated.
+ I verify that a picking related to purchase order has been generated and I process it
-
!python {model: sale.order}: |
modules = self.pool.get('ir.module.module')
@@ -199,31 +185,14 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
assert(po.picking_ids),"Picking for purchase order has not been generated"
+ picking, = po.picking_ids
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [picking.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
- Then I click on the "Products Received" button of Incoming Shipments
--
- !record {model: stock.partial.picking, id: stock_partial_picking_0}:
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
--
- I click on the "Validate" button
--
- !python {model: stock.picking}: |
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- sale_order_obj = self.pool.get('sale.order')
- pur_obj = self.pool.get('purchase.order')
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so8"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- pick_ser_id = self.search(cr, uid, [('purchase_id', '=', po.id )])
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- for pick in pick_ser_id:
- wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
--
- I verify that picking for purchase order has been done.
+ I verify that picking for purchase order has been marked done.
-
!python {model: sale.order}: |
from tools.translate import _
@@ -239,7 +208,7 @@
ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
assert ids, _('Picking is not in the done state!')
-
- I verify that a "Picked" has been set to true
+ I verify that the sale order is marked as delivered
-
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so8"))
diff --git a/addons/sale/test/prepaid_order_policy.yml b/addons/sale/test/prepaid_order_policy.yml
index 4bf132e5bee..d6f3da64a2c 100644
--- a/addons/sale/test/prepaid_order_policy.yml
+++ b/addons/sale/test/prepaid_order_policy.yml
@@ -101,18 +101,11 @@
if picking_id:
pick=self.browse(cr,uid,picking_id[0])
pick.force_assign(cr, uid)
- partial_datas = {
- 'partner_id':pick.address_id.partner_id.id,
- 'address_id': pick.address_id.id,
- 'delivery_date' : time.strftime('%Y-%m-%d'),
- }
- move = pick.move_lines[0]
- partial_datas['move%s'%(move.id)]= {
- 'product_id': move.product_id.id,
- 'product_qty': move.product_qty,
- 'product_uom': move.product_uom.id,
- }
- self.do_partial(cr, uid, [pick.id],partial_datas)
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [pick.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
-
I verify that picking order is in done state.
-
@@ -201,7 +194,7 @@
for pur in pur_ids:
wf_service.trg_validate(uid, 'purchase.order',pur,'purchase_approve', cr)
-
- I verify that a picking related to purchase order has been generated.
+ I verify that a picking related to purchase order has been generated and I process it
-
!python {model: sale.order}: |
modules = self.pool.get('ir.module.module')
@@ -213,51 +206,21 @@
pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
po = pur_obj.browse(cr, uid, pur_id)[0]
assert(po.picking_ids),"Picking for purchase order has not been generated"
--
- Then I click on the "Products Received" button of Incoming Shipments
--
- !record {model: stock.partial.picking, id: stock_partial_picking_0}:
- date: !eval time.strftime('%Y-%m-%d %H:%M:%S')
--
- I click on the "Validate" button
--
- !python {model: stock.picking}: |
- modules = self.pool.get('ir.module.module')
- sale_order_obj = self.pool.get('sale.order')
- pur_obj = self.pool.get('purchase.order')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if (mod_brw.state == 'installed'):
- so = sale_order_obj.browse(cr, uid, ref("sale_order_so1"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
- pick_ser_id = self.search(cr, uid, [('purchase_id', '=', po.id )])
- import netsvc
- wf_service = netsvc.LocalService("workflow")
- for pick in pick_ser_id:
- wf_service.trg_validate(uid, 'stock.picking',pick,'button_done', cr)
--
- I verify that picking for purchase order has been done.
--
- !python {model: sale.order}: |
- from tools.translate import _
- modules = self.pool.get('ir.module.module')
- mod_pur = modules.search(cr, uid, [('name','=','purchase')])
- mod_brw = modules.browse(cr,uid,mod_pur)[0]
- if(mod_brw.state == 'installed'):
- pur_obj = self.pool.get('purchase.order')
- so = self.browse(cr, uid, ref("sale_order_so1"))
- pur_id = pur_obj.search(cr, uid, [('origin','=',so.name)])
- po = pur_obj.browse(cr, uid, pur_id)[0]
+ picking, = po.picking_ids
+ stock_partial_picking = self.pool.get('stock.partial.picking')
+ partial_id = stock_partial_picking.create(cr, uid, {},
+ context={'active_model': 'stock.picking',
+ 'active_ids': [picking.id]})
+ stock_partial_picking.do_partial(cr, uid, [partial_id])
picking_obj = self.pool.get('stock.picking')
- ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id ),('state', '=', 'done')])
- assert ids, _('Picking is not in the done state!')
+ ids = picking_obj.search(cr, uid, [('purchase_id', '=', po.id),('state', '=', 'done')])
+ assert ids, 'Picking should be marked done!'
-
- I verify that a "Picked" has been set to true
+ I verify that the sale order is marked as delivered
-
!python {model: sale.order}: |
so = self.browse(cr, uid, ref("sale_order_so1"))
- assert (so.shipped == True), "Picking is not done."
+ assert (so.shipped == True), "Sale order is not marked as delivered"
-
I verify that a sale order is in done state
-
diff --git a/addons/sale/wizard/sale_make_invoice_advance.py b/addons/sale/wizard/sale_make_invoice_advance.py
index 4b1e4511021..4d9e0058e94 100644
--- a/addons/sale/wizard/sale_make_invoice_advance.py
+++ b/addons/sale/wizard/sale_make_invoice_advance.py
@@ -27,8 +27,8 @@ class sale_advance_payment_inv(osv.osv_memory):
_columns = {
'product_id': fields.many2one('product.product', 'Advance Product', required=True,
help="Select a product of type service which is called 'Advance Product'. You may have to create it and set it as a default value on this field."),
- 'amount': fields.float('Advance Amount', size=(16, 2), required=True, help="The amount to be invoiced in advance."),
- 'qtty': fields.float('Quantity', size=(16, 2), required=True),
+ 'amount': fields.float('Advance Amount', digits=(16, 2), required=True, help="The amount to be invoiced in advance."),
+ 'qtty': fields.float('Quantity', digits=(16, 2), required=True),
}
_defaults = {
'qtty': 1.0
@@ -173,4 +173,4 @@ class sale_open_invoice(osv.osv_memory):
sale_open_invoice()
-# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
\ No newline at end of file
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_analytic_plans/__openerp__.py b/addons/sale_analytic_plans/__openerp__.py
index 91f04c1b977..1850fbf8b2a 100644
--- a/addons/sale_analytic_plans/__openerp__.py
+++ b/addons/sale_analytic_plans/__openerp__.py
@@ -22,7 +22,7 @@
{
'name': 'Sales Analytic Distribution Management',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Hidden',
'description': """
The base module to manage analytic distribution and sales orders.
=================================================================
diff --git a/addons/sale_crm/__openerp__.py b/addons/sale_crm/__openerp__.py
index 7fe2bd135c7..c3f4365bfee 100644
--- a/addons/sale_crm/__openerp__.py
+++ b/addons/sale_crm/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Creates Sales order from Opportunity',
+ 'name': 'Opportunity to Quotation',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Hidden/Link',
'complexity': "easy",
'description': """
This module adds a shortcut on one or several opportunity cases in the CRM.
diff --git a/addons/sale_journal/__openerp__.py b/addons/sale_journal/__openerp__.py
index c95b94da3ee..1cd2eef2d77 100644
--- a/addons/sale_journal/__openerp__.py
+++ b/addons/sale_journal/__openerp__.py
@@ -20,9 +20,9 @@
##############################################################################
{
- 'name': 'Managing sales and deliveries by journal',
+ 'name': 'Invoicing Journals',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Sales Management',
'complexity': "easy",
'description': """
The sales journal modules allows you to categorise your sales and deliveries (picking lists) between different journals.
diff --git a/addons/sale_layout/__openerp__.py b/addons/sale_layout/__openerp__.py
index 8f9005e50a0..b3d033fed44 100644
--- a/addons/sale_layout/__openerp__.py
+++ b/addons/sale_layout/__openerp__.py
@@ -19,7 +19,7 @@
##############################################################################
{
- "name" : "Sale Order Layout",
+ "name" : "Sales Orders Print Layout",
"version" : "1.0",
"images" : ["images/sale_layout.jpeg"],
"depends" : ["sale", "account_invoice_layout"],
@@ -36,7 +36,7 @@ It gives you the possibility to
""",
"website" : "http://www.openerp.com",
- "category" : "Sales",
+ "category" : "Sales Management",
"init_xml" : [],
"demo_xml" : [],
"update_xml" : [
diff --git a/addons/sale_margin/__openerp__.py b/addons/sale_margin/__openerp__.py
index 1170c72485c..c7eae6daea2 100644
--- a/addons/sale_margin/__openerp__.py
+++ b/addons/sale_margin/__openerp__.py
@@ -19,9 +19,9 @@
##############################################################################
{
- "name":"Margins in Sales Order",
+ "name":"Margins in Sales Orders",
"version":"1.0",
- "category" : "Sales",
+ "category" : "Sales Management",
"description": """
This module adds the 'Margin' on sales order.
=============================================
diff --git a/addons/sale_mrp/__openerp__.py b/addons/sale_mrp/__openerp__.py
index 1fd1fab9d2f..7d4443a3cce 100644
--- a/addons/sale_mrp/__openerp__.py
+++ b/addons/sale_mrp/__openerp__.py
@@ -23,7 +23,7 @@
{
'name': 'Sales and MRP Management',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Hidden/Link',
'complexity': "easy",
'description': """
This module provides facility to the user to install mrp and sales modulesat a time.
diff --git a/addons/sale_order_dates/__openerp__.py b/addons/sale_order_dates/__openerp__.py
index eb7e3a516fa..f88a2777a00 100644
--- a/addons/sale_order_dates/__openerp__.py
+++ b/addons/sale_order_dates/__openerp__.py
@@ -21,9 +21,9 @@
{
- 'name': 'Sales Order Dates',
+ 'name': 'Full Dates on Sales Order',
'version': '1.0',
- 'category': 'Sales',
+ 'category': 'Sales Management',
'complexity': "easy",
'description': """
Add additional date information to the sales order.
diff --git a/addons/share/__openerp__.py b/addons/share/__openerp__.py
index 52ffa165c14..f6a0c93285d 100644
--- a/addons/share/__openerp__.py
+++ b/addons/share/__openerp__.py
@@ -21,11 +21,11 @@
{
- "name" : "Sharing Tools",
+ "name" : "Web Share",
"version" : "1.5",
"depends" : ["base", "mail"],
"author" : "OpenERP SA",
- "category": 'Tools',
+ "category": 'Hidden',
'complexity': "easy",
"description": """
This module adds generic sharing tools to your current OpenERP database.
diff --git a/addons/share/res_users.py b/addons/share/res_users.py
index 81683066220..07031ab3845 100644
--- a/addons/share/res_users.py
+++ b/addons/share/res_users.py
@@ -24,7 +24,7 @@ class res_groups(osv.osv):
_name = "res.groups"
_inherit = 'res.groups'
_columns = {
- 'share': fields.boolean('Share Group', groups='share.group_share', readonly=True,
+ 'share': fields.boolean('Share Group', readonly=True,
help="Group created to set access rights for sharing data with some users.")
}
res_groups()
@@ -33,7 +33,7 @@ class res_users(osv.osv):
_name = 'res.users'
_inherit = 'res.users'
_columns = {
- 'share': fields.boolean('Share User', groups='share.group_share', readonly=True,
+ 'share': fields.boolean('Share User', readonly=True,
help="External user with limited access, created only for the purpose of sharing data.")
}
res_users()
diff --git a/addons/stock/__openerp__.py b/addons/stock/__openerp__.py
index c6ea30db330..5b1d392a592 100644
--- a/addons/stock/__openerp__.py
+++ b/addons/stock/__openerp__.py
@@ -47,7 +47,7 @@ Thanks to the double entry management, the inventory controlling is powerful and
"website" : "http://www.openerp.com",
"images" : ["images/stock_forecast_report.png", "images/delivery_orders.jpeg", "images/inventory_analysis.jpeg","images/location.jpeg","images/moves_analysis.jpeg","images/physical_inventories.jpeg","images/warehouse_dashboard.jpeg"],
"depends" : ["product", "account"],
- "category" : "Warehouse",
+ "category" : "Warehouse Management",
"init_xml" : [],
"demo_xml" : ["stock_demo.xml"],
"update_xml" : [
diff --git a/addons/stock/i18n/es_CL.po b/addons/stock/i18n/es_CL.po
index ff898a8d261..12c4d47e515 100644
--- a/addons/stock/i18n/es_CL.po
+++ b/addons/stock/i18n/es_CL.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-14 04:42+0000\n"
-"Last-Translator: Borja López Soilán (NeoPolus) \n"
+"PO-Revision-Date: 2011-10-05 16:52+0000\n"
+"Last-Translator: Francisco Reyes Acuña \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-09-05 04:57+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-10-06 04:36+0000\n"
+"X-Generator: Launchpad (build 14085)\n"
#. module: stock
#: field:product.product,track_outgoing:0
@@ -37,7 +37,7 @@ msgstr ""
#. module: stock
#: field:stock.location,chained_location_id:0
msgid "Chained Location If Fixed"
-msgstr "Ubicación encadenada si fija"
+msgstr "Encadenar Ubicación si es Fija"
#. module: stock
#: view:stock.inventory:0
@@ -70,20 +70,20 @@ msgstr "Hoy"
#. module: stock
#: field:stock.production.lot.revision,indice:0
msgid "Revision Number"
-msgstr "Número revisión"
+msgstr "Número de revisión"
#. module: stock
#: view:stock.move.memory.in:0
#: view:stock.move.memory.out:0
msgid "Product Moves"
-msgstr "Movimientos productos"
+msgstr "Movimientos de producto"
#. module: stock
#: model:ir.actions.act_window,name:stock.action_stock_move_report
#: model:ir.ui.menu,name:stock.menu_action_stock_move_report
#: view:report.stock.move:0
msgid "Moves Analysis"
-msgstr "Análisis movimientos"
+msgstr "Análisis de movimientos"
#. module: stock
#: help:stock.production.lot,ref:0
@@ -194,8 +194,8 @@ msgstr ""
"de esta categoría, también puede indicarse directamente en cada producto."
#. module: stock
-#: code:addons/stock/stock.py:1170
-#: code:addons/stock/stock.py:2415
+#: code:addons/stock/stock.py:1190
+#: code:addons/stock/stock.py:2436
#, python-format
msgid "Missing partial picking data for move #%s"
msgstr "Faltan datos del albarán parcial para el movimiento #%s"
@@ -260,8 +260,8 @@ msgid "Reference"
msgstr "Referencia"
#. module: stock
-#: code:addons/stock/stock.py:666
-#: code:addons/stock/stock.py:1472
+#: code:addons/stock/stock.py:679
+#: code:addons/stock/stock.py:1492
#, python-format
msgid "Products to Process"
msgstr "Productos a procesar"
@@ -286,7 +286,7 @@ msgid "Split lines"
msgstr "Dividir líneas"
#. module: stock
-#: code:addons/stock/stock.py:1120
+#: code:addons/stock/stock.py:1139
#, python-format
msgid "You cannot cancel picking because stock move is in done state !"
msgstr ""
@@ -294,9 +294,9 @@ msgstr ""
"realizado!"
#. module: stock
-#: code:addons/stock/stock.py:2233
-#: code:addons/stock/stock.py:2274
-#: code:addons/stock/stock.py:2334
+#: code:addons/stock/stock.py:2253
+#: code:addons/stock/stock.py:2295
+#: code:addons/stock/stock.py:2355
#: code:addons/stock/wizard/stock_fill_inventory.py:53
#, python-format
msgid "Warning!"
@@ -506,7 +506,6 @@ msgstr "Filtro lotes de producto"
#: report:lot.stock.overview:0
#: report:lot.stock.overview_all:0
#: report:stock.inventory.move:0
-#: report:stock.picking.list:0
msgid "["
msgstr "["
@@ -525,7 +524,7 @@ msgid "Move History (child moves)"
msgstr "Historial movimientos (movimientos hijos)"
#. module: stock
-#: code:addons/stock/stock.py:2015
+#: code:addons/stock/stock.py:2033
#, python-format
msgid ""
"There is no stock output account defined for this product or its category: "
@@ -547,10 +546,10 @@ msgid "Destination Location"
msgstr "Ubicación destino"
#. module: stock
-#: code:addons/stock/stock.py:754
+#: code:addons/stock/stock.py:769
#, python-format
msgid "You can not process picking without stock moves"
-msgstr "No puede procesar un albarán sin movimientos de stock"
+msgstr "No puede procesar una guía de despacho sin movimientos de stock"
#. module: stock
#: model:ir.ui.menu,name:stock.menu_product_packaging_stock_action
@@ -601,7 +600,7 @@ msgid "Location / Product"
msgstr "Ubicación / Producto"
#. module: stock
-#: code:addons/stock/stock.py:1303
+#: code:addons/stock/stock.py:1323
#, python-format
msgid "Reception"
msgstr "Recepción"
@@ -633,6 +632,11 @@ msgid ""
"worker/team that should perform the operation. Examples of stock journals "
"may be: quality control, pick lists, packing, etc."
msgstr ""
+"El sistema de existencias diarias le permite asignar cada operación de "
+"existencias a un diario específico según el tipo de operación a realizar o "
+"el trabajador / equipo que debe realizar la operación. Algunos ejemplos de "
+"diarios de existencias pueden ser: control de calidad, listas de selección, "
+"embalaje, etc."
#. module: stock
#: field:stock.location,complete_name:0
@@ -849,7 +853,7 @@ msgstr "Contiene"
#. module: stock
#: view:board.board:0
msgid "Incoming Products Delay"
-msgstr "Retraso albaranes entrada"
+msgstr "Retraso de guías de despacho de entrada"
#. module: stock
#: view:stock.location:0
@@ -1094,7 +1098,7 @@ msgid "Author"
msgstr "Autor"
#. module: stock
-#: code:addons/stock/stock.py:1302
+#: code:addons/stock/stock.py:1322
#, python-format
msgid "Delivery Order"
msgstr "Orden de entrega"
@@ -1102,7 +1106,7 @@ msgstr "Orden de entrega"
#. module: stock
#: model:ir.model,name:stock.model_stock_move_memory_in
msgid "stock.move.memory.in"
-msgstr ""
+msgstr "stock.move.memory.in"
#. module: stock
#: selection:stock.location,chained_auto_packing:0
@@ -1165,9 +1169,9 @@ msgid ""
"empty to automatically detect the type based on the source and destination "
"locations)."
msgstr ""
-"Tipo de envío del albarán que va a contener el movimiento encadenado (dejar "
-"vacío para detectar automáticamente el tipo basado en las ubicaciones de "
-"origen y destino)."
+"Tipo de envío de la guía de despacho que va a contener el movimiento "
+"encadenado (dejar vacío para detectar automáticamente el tipo basado en las "
+"ubicaciones de origen y destino)."
#. module: stock
#: view:stock.move.split:0
@@ -1246,7 +1250,7 @@ msgstr ""
"stock generados por las órdenes de producción."
#. module: stock
-#: code:addons/stock/stock.py:2006
+#: code:addons/stock/stock.py:2024
#, python-format
msgid ""
"Can not create Journal Entry, Output Account defined on this product and "
@@ -1256,7 +1260,7 @@ msgstr ""
"y la cuenta variante de la categoría de producto son la misma."
#. module: stock
-#: code:addons/stock/stock.py:1319
+#: code:addons/stock/stock.py:1339
#, python-format
msgid "is in draft state."
msgstr "está en estado borrador."
@@ -1322,7 +1326,7 @@ msgid "Additional Info"
msgstr "Información adicional"
#. module: stock
-#: code:addons/stock/stock.py:1619
+#: code:addons/stock/stock.py:1639
#, python-format
msgid "Operation forbidden"
msgstr "Operación prohibida"
@@ -1374,7 +1378,7 @@ msgstr "Dividir"
#. module: stock
#: view:stock.picking:0
msgid "Search Stock Picking"
-msgstr "Buscar albarán stock"
+msgstr "Buscar guía de despacho de stock"
#. module: stock
#: code:addons/stock/product.py:93
@@ -1469,7 +1473,7 @@ msgid "Downstream traceability"
msgstr "Trazabilidad hacia abajo"
#. module: stock
-#: code:addons/stock/wizard/stock_invoice_onshipping.py:101
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:106
#, python-format
msgid "No Invoices were created"
msgstr "No se han creado facturas"
@@ -1533,7 +1537,7 @@ msgstr ""
"compañías."
#. module: stock
-#: code:addons/stock/stock.py:2233
+#: code:addons/stock/stock.py:2253
#, python-format
msgid "Please provide a positive quantity to scrap!"
msgstr "¡Introduzca una cantidad positiva a desechar!"
@@ -1564,6 +1568,13 @@ msgid ""
" When the picking is done the state is 'Done'. \n"
"The state is 'Waiting' if the move is waiting for another one."
msgstr ""
+"Cuando un movimiento de almacén es creado queda en estado 'Borrador'.\n"
+" Luego, se establece en estado 'No Disponible' si el ... no ha encontrado "
+"los productos.\n"
+" Cuando los productos se han reservado es puesto en 'Disponible'.\n"
+" Cuando el retiro es realizado el estado es puesto en 'Realizado'. "
+" \n"
+"El estado es puesto 'En Espera' si se está esperando por otro movimiento."
#. module: stock
#: selection:report.stock.inventory,location_type:0
@@ -1573,7 +1584,7 @@ msgid "Supplier Location"
msgstr "Ubicación del proveedor"
#. module: stock
-#: code:addons/stock/stock.py:2254
+#: code:addons/stock/stock.py:2275
#, python-format
msgid "were scrapped"
msgstr "estaban desechados"
@@ -1765,7 +1776,7 @@ msgid "Warehouse Dashboard"
msgstr "Tablero almacén"
#. module: stock
-#: code:addons/stock/stock.py:512
+#: code:addons/stock/stock.py:525
#, python-format
msgid "You can not remove a lot line !"
msgstr "¡No puede eliminar una línea de lote!"
@@ -1779,7 +1790,7 @@ msgid "Scrap Products"
msgstr "Productos de desecho"
#. module: stock
-#: code:addons/stock/stock.py:1128
+#: code:addons/stock/stock.py:1147
#, python-format
msgid "You cannot remove the picking which is in %s state !"
msgstr "¡No puede eliminar el albarán que está en estado %s!"
@@ -1842,7 +1853,7 @@ msgid "Provide the quantities of the returned products."
msgstr "Indique las cantidades de los productos devueltos."
#. module: stock
-#: code:addons/stock/stock.py:2009
+#: code:addons/stock/stock.py:2027
#, python-format
msgid ""
"Can not create Journal Entry, Input Account defined on this product and "
@@ -1931,7 +1942,7 @@ msgid "Quantity per lot"
msgstr "Cantidad por lote"
#. module: stock
-#: code:addons/stock/stock.py:2012
+#: code:addons/stock/stock.py:2030
#, python-format
msgid ""
"There is no stock input account defined for this product or its category: "
@@ -2003,6 +2014,27 @@ msgid ""
"day)\n"
" "
msgstr ""
+"El módulo de OpenERP de gestión de inventario puede gestionar múltiples "
+"almacenes, y varias ubicaciones estructuradas.\n"
+"Gracias a la gestión de doble entrada, el control de inventario es potente y "
+"flexible:\n"
+"* Historial de movimientos y planificación,\n"
+"* Diferentes métodos de inventario (FIFO, LIFO, ...)\n"
+"* Valoración de existencias (precio estándar o medio, ...)\n"
+"* Robustez frente a las diferencias de inventario\n"
+"* Normas de reordenación automática (nivel de existencias, JIT, ...)\n"
+"* Código de barras soportado\n"
+"* Detección rápida de errores a través del sistema de entrada doble\n"
+"* Trazabilidad (ascendente/descendente abajo, lotes de producción, número de "
+"serie, ...)\n"
+"* Panel para almacenes que incluye:\n"
+" * Productos a recibir con retraso (fecha <= hoy)\n"
+" * Excepciones de compra\n"
+" * Gráfico: Número de productos Recibidos frente al previsto (gráfico de "
+"barras semanal por día)\n"
+" * Gráfico: Número de productos Entregados frente al previsto (gráfico de "
+"barras semanal por día)\n"
+" "
#. module: stock
#: help:product.template,property_stock_inventory:0
@@ -2040,7 +2072,6 @@ msgstr "_Aplicar"
#: report:lot.stock.overview:0
#: report:lot.stock.overview_all:0
#: report:stock.inventory.move:0
-#: report:stock.picking.list:0
msgid "]"
msgstr "]"
@@ -2146,7 +2177,7 @@ msgid "Inventory loss"
msgstr "Pérdidas de inventario"
#. module: stock
-#: code:addons/stock/stock.py:1311
+#: code:addons/stock/stock.py:1331
#, python-format
msgid "Document"
msgstr "Documento"
@@ -2271,13 +2302,13 @@ msgid "Shipping Type"
msgstr "Tipo de envío"
#. module: stock
-#: code:addons/stock/stock.py:2210
+#: code:addons/stock/stock.py:2230
#, python-format
msgid "You can only delete draft moves."
msgstr "Sólo puede eliminar movimientos borrador."
#. module: stock
-#: code:addons/stock/wizard/stock_partial_picking.py:97
+#: code:addons/stock/wizard/stock_partial_picking.py:98
#: model:ir.actions.act_window,name:stock.act_product_location_open
#: model:ir.ui.menu,name:stock.menu_stock_products_menu
#: view:stock.inventory:0
@@ -2448,7 +2479,7 @@ msgid "Source"
msgstr "Origen"
#. module: stock
-#: code:addons/stock/stock.py:2589
+#: code:addons/stock/stock.py:2610
#: model:ir.model,name:stock.model_stock_inventory
#: selection:report.stock.inventory,location_type:0
#: field:stock.inventory.line,inventory_id:0
@@ -2489,7 +2520,7 @@ msgstr "Seguimiento nº serie"
#. module: stock
#: code:addons/stock/report/report_stock.py:78
#: code:addons/stock/report/report_stock.py:135
-#: code:addons/stock/stock.py:754
+#: code:addons/stock/stock.py:769
#, python-format
msgid "Error !"
msgstr "¡Error!"
@@ -2673,7 +2704,7 @@ msgstr ""
"(id: %d)"
#. module: stock
-#: code:addons/stock/stock.py:2339
+#: code:addons/stock/stock.py:2361
#, python-format
msgid "Can not consume a move with negative or zero quantity !"
msgstr ""
@@ -2736,7 +2767,7 @@ msgid "Quantity (UOS)"
msgstr "Cantidad (UdV)"
#. module: stock
-#: code:addons/stock/stock.py:1664
+#: code:addons/stock/stock.py:1684
#, python-format
msgid ""
"You are moving %.2f %s products but only %.2f %s available in this lot."
@@ -2777,7 +2808,7 @@ msgid "Properties"
msgstr "Propiedades"
#. module: stock
-#: code:addons/stock/stock.py:974
+#: code:addons/stock/stock.py:994
#, python-format
msgid "Error, no partner !"
msgstr "¡Error, sin empresa!"
@@ -2828,7 +2859,7 @@ msgid "Inventory Reference"
msgstr "Referencia inventario"
#. module: stock
-#: code:addons/stock/stock.py:1304
+#: code:addons/stock/stock.py:1324
#, python-format
msgid "Internal picking"
msgstr "Albarán interno"
@@ -2917,7 +2948,7 @@ msgid "Date done"
msgstr "Fecha realización"
#. module: stock
-#: code:addons/stock/stock.py:975
+#: code:addons/stock/stock.py:995
#, python-format
msgid ""
"Please put a partner on the picking list if you want to generate invoice."
@@ -3002,8 +3033,8 @@ msgid "Invoicing"
msgstr "Facturación"
#. module: stock
-#: code:addons/stock/stock.py:2274
-#: code:addons/stock/stock.py:2334
+#: code:addons/stock/stock.py:2295
+#: code:addons/stock/stock.py:2355
#, python-format
msgid "Please provide Proper Quantity !"
msgstr "¡Indique cantidad correcta!"
@@ -3030,7 +3061,7 @@ msgid "Consume Products"
msgstr "Consumir productos"
#. module: stock
-#: code:addons/stock/stock.py:1663
+#: code:addons/stock/stock.py:1683
#, python-format
msgid "Insufficient Stock in Lot !"
msgstr "¡Stock insuficiente en el lote!"
@@ -3130,7 +3161,9 @@ msgstr "Referencia paquete"
#. module: stock
#: view:report.stock.move:0
#: field:report.stock.move,location_id:0
+#: field:stock.inventory.line.split,location_id:0
#: field:stock.move,location_id:0
+#: field:stock.move.split,location_id:0
msgid "Source Location"
msgstr "Ubicación origen"
@@ -3183,7 +3216,7 @@ msgid "All at once"
msgstr "Todo junto"
#. module: stock
-#: code:addons/stock/stock.py:1620
+#: code:addons/stock/stock.py:1640
#, python-format
msgid ""
"Quantities, UoMs, Products and Locations cannot be modified on stock moves "
@@ -3234,7 +3267,7 @@ msgstr "Movimientos para este lote de producción"
#. module: stock
#: model:ir.model,name:stock.model_stock_move_memory_out
msgid "stock.move.memory.out"
-msgstr ""
+msgstr "stock.move.memory.out"
#. module: stock
#: code:addons/stock/wizard/stock_fill_inventory.py:115
@@ -3286,8 +3319,8 @@ msgid "Icon"
msgstr "Icono"
#. module: stock
-#: code:addons/stock/stock.py:2209
-#: code:addons/stock/stock.py:2617
+#: code:addons/stock/stock.py:2229
+#: code:addons/stock/stock.py:2638
#, python-format
msgid "UserError"
msgstr "Error de usuario"
@@ -3314,13 +3347,13 @@ msgstr "Clientes no europeos"
#: code:addons/stock/product.py:100
#: code:addons/stock/product.py:121
#: code:addons/stock/product.py:147
-#: code:addons/stock/stock.py:2006
-#: code:addons/stock/stock.py:2009
-#: code:addons/stock/stock.py:2012
-#: code:addons/stock/stock.py:2015
-#: code:addons/stock/stock.py:2018
-#: code:addons/stock/stock.py:2021
-#: code:addons/stock/stock.py:2339
+#: code:addons/stock/stock.py:2024
+#: code:addons/stock/stock.py:2027
+#: code:addons/stock/stock.py:2030
+#: code:addons/stock/stock.py:2033
+#: code:addons/stock/stock.py:2036
+#: code:addons/stock/stock.py:2039
+#: code:addons/stock/stock.py:2361
#: code:addons/stock/wizard/stock_fill_inventory.py:47
#: code:addons/stock/wizard/stock_splitinto.py:49
#: code:addons/stock/wizard/stock_splitinto.py:53
@@ -3329,7 +3362,7 @@ msgid "Error!"
msgstr "¡Error!"
#. module: stock
-#: code:addons/stock/stock.py:2021
+#: code:addons/stock/stock.py:2039
#, python-format
msgid ""
"There is no inventory variation account defined on the product category: "
@@ -3363,10 +3396,10 @@ msgid "It specifies goods to be delivered all at once or by direct delivery"
msgstr "Indica si las mercancías se enviarán todas a la vez o directamente."
#. module: stock
-#: code:addons/stock/wizard/stock_invoice_onshipping.py:85
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:90
#, python-format
msgid "This picking list does not require invoicing."
-msgstr "Este albarán no requiere facturación."
+msgstr "Esta guía de despacho no requiere facturación."
#. module: stock
#: selection:report.stock.move,type:0
@@ -3389,6 +3422,16 @@ msgid ""
"* Fixed Location: The chained location is taken from the next field: Chained "
"Location if Fixed."
msgstr ""
+"Determina si esta ubicación está encadenada a otra, por ejemplo cualquier "
+"producto que entre en esta ubicación \n"
+"debe ir a la siguiente ubicación encadenada. La ubicación encadenada se "
+"determina en función del tipo: \n"
+"* Ninguna: No se encadena con ninguna.\n"
+"* Cliente: Se utiliza la ubicación encadenada definida en el campo Ubicación "
+"del Cliente del Formulario del Cliente especificado en la Guía de Despacho "
+"(albaran) de los productos entrantes.\n"
+"* Ubicación fija: Se utiliza la ubicación encadenada del campo: Ubicación "
+"Encadenada si es Fija."
#. module: stock
#: code:addons/stock/wizard/stock_inventory_merge.py:43
@@ -3398,8 +3441,8 @@ msgid "Warning"
msgstr "Advertencia"
#. module: stock
-#: code:addons/stock/stock.py:1318
-#: code:addons/stock/stock.py:2589
+#: code:addons/stock/stock.py:1338
+#: code:addons/stock/stock.py:2610
#, python-format
msgid "is done."
msgstr "está realizado."
@@ -3505,7 +3548,7 @@ msgid "Reporting"
msgstr "Informe"
#. module: stock
-#: code:addons/stock/stock.py:1313
+#: code:addons/stock/stock.py:1333
#, python-format
msgid " for the "
msgstr " para el "
@@ -3559,7 +3602,7 @@ msgid "Chaining Journal"
msgstr "Diario encadenamiento"
#. module: stock
-#: code:addons/stock/stock.py:732
+#: code:addons/stock/stock.py:746
#, python-format
msgid "Not enough stock, unable to reserve the products."
msgstr "No suficiente stock, no ha sido posible reservar los productos."
@@ -3570,7 +3613,7 @@ msgid "Customers"
msgstr "Clientes"
#. module: stock
-#: code:addons/stock/stock.py:1317
+#: code:addons/stock/stock.py:1337
#, python-format
msgid "is cancelled."
msgstr "está cancelado."
@@ -3581,7 +3624,7 @@ msgid "Stock Inventory Lines"
msgstr "Líneas regularización de inventario"
#. module: stock
-#: code:addons/stock/wizard/stock_partial_picking.py:97
+#: code:addons/stock/wizard/stock_partial_picking.py:98
#, python-format
msgid "Process Document"
msgstr "Procesar documento"
@@ -3775,7 +3818,7 @@ msgstr ""
"generados por los abastecimientos."
#. module: stock
-#: code:addons/stock/stock.py:1316
+#: code:addons/stock/stock.py:1336
#, python-format
msgid "is ready to process."
msgstr "preparado para procesar."
@@ -3791,7 +3834,7 @@ msgid "Set to zero"
msgstr "Inicializar a cero"
#. module: stock
-#: code:addons/stock/wizard/stock_invoice_onshipping.py:87
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:92
#, python-format
msgid "None of these picking lists require invoicing."
msgstr "Ninguno de estos albaranes requiere facturación."
@@ -3803,7 +3846,7 @@ msgstr "Noviembre"
#. module: stock
#: code:addons/stock/product.py:101
-#: code:addons/stock/stock.py:2018
+#: code:addons/stock/stock.py:2036
#, python-format
msgid "There is no journal defined on the product category: \"%s\" (id: %d)"
msgstr ""
@@ -3856,10 +3899,10 @@ msgid "Future Stock"
msgstr "Stock futuro"
#. module: stock
-#: code:addons/stock/stock.py:512
-#: code:addons/stock/stock.py:1120
-#: code:addons/stock/stock.py:1128
-#: code:addons/stock/wizard/stock_invoice_onshipping.py:101
+#: code:addons/stock/stock.py:525
+#: code:addons/stock/stock.py:1139
+#: code:addons/stock/stock.py:1147
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:106
#, python-format
msgid "Error"
msgstr "Error"
@@ -4124,10 +4167,11 @@ msgid "Invoiced date"
msgstr "Fecha facturado"
#. module: stock
-#: code:addons/stock/stock.py:732
+#: code:addons/stock/stock.py:746
#: code:addons/stock/wizard/stock_fill_inventory.py:106
-#: code:addons/stock/wizard/stock_invoice_onshipping.py:85
-#: code:addons/stock/wizard/stock_invoice_onshipping.py:87
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:65
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:90
+#: code:addons/stock/wizard/stock_invoice_onshipping.py:92
#: code:addons/stock/wizard/stock_return_picking.py:77
#: code:addons/stock/wizard/stock_return_picking.py:92
#: code:addons/stock/wizard/stock_return_picking.py:194
diff --git a/addons/stock/i18n/zh_TW.po b/addons/stock/i18n/zh_TW.po
index b59cc94b1b2..93cab1256ae 100644
--- a/addons/stock/i18n/zh_TW.po
+++ b/addons/stock/i18n/zh_TW.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2011-01-11 11:16+0000\n"
-"PO-Revision-Date: 2011-01-28 03:06+0000\n"
+"PO-Revision-Date: 2011-09-27 10:25+0000\n"
"Last-Translator: Walter Cheuk \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-09-05 04:57+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2011-09-28 05:19+0000\n"
+"X-Generator: Launchpad (build 14049)\n"
#. module: stock
#: field:product.product,track_outgoing:0
@@ -163,7 +163,7 @@ msgstr ""
#: view:report.stock.move:0
#: field:stock.change.standard.price,stock_journal:0
msgid "Stock journal"
-msgstr ""
+msgstr "庫存日誌"
#. module: stock
#: view:report.stock.move:0
@@ -475,7 +475,7 @@ msgstr "調動統計"
#. module: stock
#: view:stock.production.lot:0
msgid "Product Lots Filter"
-msgstr ""
+msgstr "生產批次篩選"
#. module: stock
#: report:lot.stock.overview:0
@@ -636,7 +636,7 @@ msgstr ""
#. module: stock
#: constraint:stock.move:0
msgid "You try to assign a lot which is not from the same product"
-msgstr ""
+msgstr "指定了不同產品的批次"
#. module: stock
#: view:res.partner:0
@@ -1152,7 +1152,7 @@ msgstr ""
#: code:addons/stock/stock.py:1319
#, python-format
msgid "is in draft state."
-msgstr "尚在草案階段"
+msgstr "尚在草案階段。"
#. module: stock
#: model:ir.actions.act_window,help:stock.action_tracking_form
@@ -1402,6 +1402,12 @@ msgid ""
"* Done: has been processed, can't be modified or cancelled anymore\n"
"* Cancelled: has been cancelled, can't be confirmed anymore"
msgstr ""
+"* 草案(Draft): 未確認,不會安排處理直至確認\n"
+"* 確認(Confirmed): 仍等候產品有貨供應\n"
+"* 供貨(Available): 已預留產品,只等候確認\n"
+"* 等待(Waiting): 自動供貨前要再等候下一步 (如於「接單生產(Make-To-Order)」流程)\n"
+"* 完成(Done): 已處理,無法再修改或取消\n"
+"* 取消(Cancelled): 已取消,無法再確認"
#. module: stock
#: help:stock.location,company_id:0
@@ -1440,6 +1446,11 @@ msgid ""
" When the picking is done the state is 'Done'. \n"
"The state is 'Waiting' if the move is waiting for another one."
msgstr ""
+"建立調動時先處於「草案(Draft)」狀態。\n"
+" 然後,如安排者找不到貨,設為「無貨(Not Available)」狀態。\n"
+" 當已預留貨物,變成「供貨(Available)」。\n"
+" 完成提貨後狀態為「完成(Done)」。 \n"
+"如調動正等候其他工作完成,狀態為「等待(Waiting)」。"
#. module: stock
#: selection:report.stock.inventory,location_type:0
@@ -1486,7 +1497,7 @@ msgstr "貨幣"
#. module: stock
#: field:product.product,track_production:0
msgid "Track Manufacturing Lots"
-msgstr ""
+msgstr "追蹤生產批次"
#. module: stock
#: code:addons/stock/wizard/stock_inventory_merge.py:44
@@ -1537,7 +1548,7 @@ msgstr "貨架 2"
#. module: stock
#: field:stock.report.tracklots,tracking_id:0
msgid "Tracking lot"
-msgstr ""
+msgstr "追蹤批次"
#. module: stock
#: view:stock.picking:0
@@ -1558,7 +1569,7 @@ msgstr "本地化"
#. module: stock
#: model:ir.model,name:stock.model_stock_report_tracklots
msgid "Stock report by tracking lots"
-msgstr ""
+msgstr "按追蹤批次庫存報告"
#. module: stock
#: code:addons/stock/product.py:370
@@ -2119,7 +2130,7 @@ msgstr ""
#: code:addons/stock/stock.py:2210
#, python-format
msgid "You can only delete draft moves."
-msgstr "不能刪除調動草案"
+msgstr "只能刪除調動草案。"
#. module: stock
#: code:addons/stock/wizard/stock_partial_picking.py:97
@@ -2542,7 +2553,7 @@ msgstr "數量(量度單位)"
#, python-format
msgid ""
"You are moving %.2f %s products but only %.2f %s available in this lot."
-msgstr ""
+msgstr "您正移動%.2f件 %s 產品,但此批次只有%.2f件 %s。"
#. module: stock
#: view:stock.move:0
@@ -3032,7 +3043,7 @@ msgstr ""
#. module: stock
#: view:stock.inventory:0
msgid "Lot Inventory"
-msgstr ""
+msgstr "批次存貨"
#. module: stock
#: view:stock.move:0
@@ -3501,6 +3512,11 @@ msgid ""
" When the picking it done the state is 'Done'. \n"
"The state is 'Waiting' if the move is waiting for another one."
msgstr ""
+"建立調動時先處於「草案(Draft)」狀態。\n"
+" 然後設為「確認(Confirmed)」狀態。\n"
+" 如庫存有貨,變成「供貨(Available)」。\n"
+" 完成提貨後狀態為「完成(Done)」。 \n"
+"如調動正等候其他工作完成,狀態為「等待(Waiting)」。"
#. module: stock
#: view:board.board:0
@@ -3720,7 +3736,7 @@ msgstr ""
#. module: stock
#: constraint:stock.move:0
msgid "You must assign a production lot for this product"
-msgstr "須為此產品分配生產批次"
+msgstr "須為此產品指定生產批次"
#. module: stock
#: view:stock.move:0
@@ -3817,7 +3833,7 @@ msgstr ""
#. module: stock
#: model:ir.model,name:stock.model_stock_report_prodlots
msgid "Stock report by production lots"
-msgstr "生產批次回報之庫存"
+msgstr "按生產批次庫存報告"
#. module: stock
#: view:stock.location:0
@@ -3878,7 +3894,7 @@ msgstr "輸出"
#. module: stock
#: selection:stock.move.split.lines,action:0
msgid "Keep in one lot"
-msgstr ""
+msgstr "保持為同一批次"
#. module: stock
#: view:product.product:0
diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml
index 80d7ed6efa0..a0059ce60d3 100644
--- a/addons/stock/product_view.xml
+++ b/addons/stock/product_view.xml
@@ -120,6 +120,67 @@
+
+
+ Product Kanban
+ product.product
+ kanban
+
+
+
+
+
+
+
+
+
+
+ []
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ No Stock
+
+
On Hand , Available
+
Public Price : , Cost :
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ product.normal.stock.property.form.inherit
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 2dbfc5105c1..d9debe6641b 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -664,8 +664,8 @@ class stock_picking(osv.osv):
def action_process(self, cr, uid, ids, context=None):
if context is None: context = {}
- partial_id = self.pool.get("stock.partial.picking").create(
- cr, uid, {}, context=dict(context, active_ids=ids))
+ context = dict(context, active_ids=ids, active_model=self._name)
+ partial_id = self.pool.get("stock.partial.picking").create(cr, uid, {}, context=context)
return {
'name':_("Products to Process"),
'view_mode': 'form',
@@ -677,7 +677,7 @@ class stock_picking(osv.osv):
'nodestroy': True,
'target': 'new',
'domain': '[]',
- 'context': dict(context, active_ids=ids)
+ 'context': context,
}
def copy(self, cr, uid, id, default=None, context=None):
@@ -1474,6 +1474,8 @@ class stock_move(osv.osv):
def action_partial_move(self, cr, uid, ids, context=None):
if context is None: context = {}
+ if context.get('active_model') != self._name:
+ context.update(active_ids=ids, active_model=self._name)
partial_id = self.pool.get("stock.partial.move").create(
cr, uid, {}, context=context)
return {
@@ -2127,14 +2129,9 @@ class stock_move(osv.osv):
""" Makes the move done and if all moves are done, it will finish the picking.
@return:
"""
- partial_datas=''
picking_ids = []
move_ids = []
- partial_obj=self.pool.get('stock.partial.picking')
wf_service = netsvc.LocalService("workflow")
- partial_id=partial_obj.search(cr,uid,[])
- if partial_id:
- partial_datas = partial_obj.read(cr, uid, partial_id, context=context)[0]
if context is None:
context = {}
@@ -2164,9 +2161,6 @@ class stock_move(osv.osv):
self.action_done(cr, uid, [move.move_dest_id.id], context=context)
self._create_product_valuation_moves(cr, uid, move, context=context)
- prodlot_id = partial_datas and partial_datas.get('move%s_prodlot_id' % (move.id), False)
- if prodlot_id:
- self.write(cr, uid, [move.id], {'prodlot_id': prodlot_id}, context=context)
if move.state not in ('confirmed','done','assigned'):
todo.append(move.id)
diff --git a/addons/stock/stock_data.xml b/addons/stock/stock_data.xml
index bcde818c78a..c0c872e99f2 100644
--- a/addons/stock/stock_data.xml
+++ b/addons/stock/stock_data.xml
@@ -2,12 +2,17 @@
+
+ Stock Journal Sequence
+
+ STJ/%(year)s/
+ Stock JournalSTJgeneral
-
+
diff --git a/addons/stock/stock_sequence.xml b/addons/stock/stock_sequence.xml
index cabf24dda5b..a8515c2f0df 100644
--- a/addons/stock/stock_sequence.xml
+++ b/addons/stock/stock_sequence.xml
@@ -29,6 +29,7 @@
stock.picking.inIN/5
+
@@ -36,6 +37,7 @@
stock.picking.outOUT/5
+
@@ -43,6 +45,7 @@
stock.picking.internalINT/5
+
+
+
+
+
+
diff --git a/addons/web_livechat/web/__init__.py b/addons/web_livechat/web/__init__.py
deleted file mode 100644
index ec026b194f1..00000000000
--- a/addons/web_livechat/web/__init__.py
+++ /dev/null
@@ -1,5 +0,0 @@
-##############################################################################
-# This file is part of the "web-livechatinc-odoo" OpenERP module.
-# See LICENCE file at the root of the module folder.
-##############################################################################
-import editors
diff --git a/addons/web_livechat/web/editors.py b/addons/web_livechat/web/editors.py
deleted file mode 100644
index bb3dd3da354..00000000000
--- a/addons/web_livechat/web/editors.py
+++ /dev/null
@@ -1,93 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Management Solution
-# Copyright (C) 2010-2011 OpenERP s.a. ().
-#
-# This program is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as
-# published by the Free Software Foundation, either version 3 of the
-# License, or (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU Affero General Public License for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with this program. If not, see .
-#
-##############################################################################
-
-import openobject.templating
-
-class BaseTemplateEditor(openobject.templating.TemplateEditor):
- templates = ['/openobject/controllers/templates/base.mako']
-
- def edit(self, template, template_text):
- output = super(BaseTemplateEditor, self).edit(template, template_text)
-
- end_head = output.index('')
-
- output = output[:end_head] + """
-
- <%
- cp.session['livechat'] = rpc.RPCProxy('publisher_warranty.contract').is_livechat_enable()
- %>
- % if cp.session['livechat']:
-
- % endif
- """ + output[end_head:]
-
- return output
-
-
-class HeaderTemplateEditor(openobject.templating.TemplateEditor):
- templates = ['/openerp/controllers/templates/header.mako']
-
-
- def edit(self, template, template_text):
- output = super(HeaderTemplateEditor, self).edit(template, template_text)
-
- PATTERN = '