[MERGE] merge with trunk addons
bzr revid: mva@openerp.com-20120410143450-5nb8w9t49y3x0tqg
This commit is contained in:
@@ -178,6 +178,7 @@ class account_invoice(osv.osv):
|
||||
return invoice_ids
|
||||
|
||||
_name = "account.invoice"
|
||||
_inherit = ['mail.thread']
|
||||
_description = 'Invoice'
|
||||
_order = "id desc"
|
||||
|
||||
@@ -355,12 +356,8 @@ class account_invoice(osv.osv):
|
||||
context = {}
|
||||
try:
|
||||
res = super(account_invoice, self).create(cr, uid, vals, context)
|
||||
for inv_id, name in self.name_get(cr, uid, [res], context=context):
|
||||
ctx = context.copy()
|
||||
if vals.get('type', 'in_invoice') in ('out_invoice', 'out_refund'):
|
||||
ctx = self.get_log_context(cr, uid, context=ctx)
|
||||
message = _("Invoice '%s' is waiting for validation.") % name
|
||||
self.log(cr, uid, inv_id, message, context=ctx)
|
||||
if res:
|
||||
self.create_send_note(cr, uid, [res], context=context)
|
||||
return res
|
||||
except Exception, e:
|
||||
if '"journal_id" viol' in e.args[0]:
|
||||
@@ -373,9 +370,7 @@ class account_invoice(osv.osv):
|
||||
if context is None:
|
||||
context = {}
|
||||
self.write(cr, uid, ids, {'state':'paid'}, context=context)
|
||||
for inv_id, name in self.name_get(cr, uid, ids, context=context):
|
||||
message = _("Invoice '%s' is paid.") % name
|
||||
self.log(cr, uid, inv_id, message)
|
||||
self.confirm_paid_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def unlink(self, cr, uid, ids, context=None):
|
||||
@@ -943,6 +938,11 @@ class account_invoice(osv.osv):
|
||||
move_obj.post(cr, uid, [move_id], context=ctx)
|
||||
self._log_event(cr, uid, ids)
|
||||
return True
|
||||
|
||||
def invoice_validate(self, cr, uid, ids, context=None):
|
||||
self.write(cr, uid, ids, {'state':'open'}, context=context)
|
||||
self.invoice_validate_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
def line_get_convert(self, cr, uid, x, part, date, context=None):
|
||||
return {
|
||||
@@ -1033,6 +1033,7 @@ class account_invoice(osv.osv):
|
||||
# will be automatically deleted too
|
||||
account_move_obj.unlink(cr, uid, move_ids, context=context)
|
||||
self._log_event(cr, uid, ids, -1.0, 'Cancel Invoice')
|
||||
self.invoice_cancel_send_note(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
###################
|
||||
@@ -1240,7 +1241,36 @@ class account_invoice(osv.osv):
|
||||
# Update the stored value (fields.function), so we write to trigger recompute
|
||||
self.pool.get('account.invoice').write(cr, uid, ids, {}, context=context)
|
||||
return True
|
||||
|
||||
|
||||
# -----------------------------------------
|
||||
# OpenChatter notifications and need_action
|
||||
# -----------------------------------------
|
||||
|
||||
def _get_document_type(self, type):
|
||||
type_dict = {
|
||||
'out_invoice': 'Customer invoice',
|
||||
'in_invoice': 'Supplier invoice',
|
||||
'out_refund': 'Customer Refund',
|
||||
'in_refund': 'Supplier Refund',
|
||||
}
|
||||
return type_dict.get(type, 'Invoice')
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
self.message_append_note(cr, uid, [obj.id],body=_("%s <b>created</b>.") % (self._get_document_type(obj.type)), context=context)
|
||||
|
||||
def invoice_validate_send_note(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>validated</b>.") % (self._get_document_type(obj.type)), context=context)
|
||||
|
||||
def confirm_paid_send_note(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>paid</b>.") % (self._get_document_type(obj.type)), context=context)
|
||||
|
||||
def invoice_cancel_send_note(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
self.message_append_note(cr, uid, [obj.id], body=_("%s <b>cancelled</b>.") % (self._get_document_type(obj.type)), context=context)
|
||||
|
||||
account_invoice()
|
||||
|
||||
class account_invoice_line(osv.osv):
|
||||
|
||||
@@ -243,6 +243,7 @@
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -338,6 +339,7 @@
|
||||
</field>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<field name="action">action_date_assign()
|
||||
action_move_create()
|
||||
action_number()
|
||||
write({'state':'open'})</field>
|
||||
invoice_validate()</field>
|
||||
<field name="kind">function</field>
|
||||
</record>
|
||||
<record model="workflow.activity" id="act_open_test">
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2012-01-11 09:11+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 04:57+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <openerp-i18n-czech@lists.launchpad.net>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 07:10+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: account_asset
|
||||
@@ -401,6 +401,8 @@ msgid ""
|
||||
"currency. You should remove the secondary currency on the account or select "
|
||||
"a multi-currency view on the journal."
|
||||
msgstr ""
|
||||
"Vybraný účet vašeho záznamu deníku vynucuje použití druhotné měny. Měli "
|
||||
"byste odstranit druhotnou měnu z účtu nebo vybrat více-měny."
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
@@ -445,6 +447,8 @@ msgid ""
|
||||
"The date of your Journal Entry is not in the defined period! You should "
|
||||
"change the date or remove this constraint from the journal."
|
||||
msgstr ""
|
||||
"Datum vašeho záznamu deníku není v určeném období! Měli byste změnit datum "
|
||||
"nebo odstranit omezení z deníku."
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,note:0 field:account.asset.category,note:0
|
||||
@@ -507,7 +511,7 @@ msgstr "Zaúčtované řádky odpisů"
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid "Company must be the same for its related account and period."
|
||||
msgstr ""
|
||||
msgstr "Společnost musí být stejná pro své vztažené účty a období."
|
||||
|
||||
#. module: account_asset
|
||||
#: field:account.asset.asset,child_ids:0
|
||||
@@ -537,7 +541,7 @@ msgstr "Majetek zakoupený v tomto měsíci"
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid "You can not create journal items on an account of type view."
|
||||
msgstr ""
|
||||
msgstr "Nemůžete vytvořit položky deníku v účtu typu pohled."
|
||||
|
||||
#. module: account_asset
|
||||
#: view:asset.asset.report:0
|
||||
@@ -769,7 +773,7 @@ msgstr "Vytvořit pohyby majetku"
|
||||
#. module: account_asset
|
||||
#: constraint:account.move.line:0
|
||||
msgid "You can not create journal items on closed account."
|
||||
msgstr ""
|
||||
msgstr "Nemůžete vytvořit položky deníku v uzavřeném účtu."
|
||||
|
||||
#. module: account_asset
|
||||
#: model:ir.actions.act_window,help:account_asset.action_asset_asset_report
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
# Czech translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 04:54+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: account_cancel
|
||||
#: view:account.invoice:0
|
||||
msgid "Cancel"
|
||||
msgstr "Zrušit"
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-06 04:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: account_check_writing
|
||||
|
||||
@@ -356,7 +356,7 @@
|
||||
</group>
|
||||
<group col="2" colspan="1">
|
||||
<group col="4" colspan="1" attrs="{'invisible':[('currency_id','=',False),('is_multi_currency','=',False)]}">
|
||||
<separator string="Currency Options" colspan="4"/>
|
||||
<separator string="Currency Options" colspan="4" groups='base.group_extended'/>
|
||||
<field name="is_multi_currency" invisible="1"/>
|
||||
<field name="payment_rate" required="1" on_change="onchange_rate(payment_rate, amount, currency_id, payment_rate_currency_id, company_id, context)" groups='base.group_extended' colspan="3"/>
|
||||
<field name="payment_rate_currency_id" groups='base.group_extended' colspan="1" nolabel="1" on_change="onchange_payment_rate_currency(currency_id, payment_rate, payment_rate_currency_id, date, amount, company_id, context)"/>
|
||||
|
||||
@@ -0,0 +1,79 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:35+0000\n"
|
||||
"PO-Revision-Date: 2012-04-08 05:16+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-09 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,product_id:0
|
||||
msgid "Product"
|
||||
msgstr "商品"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: model:ir.model,name:analytic_user_function.model_analytic_user_funct_grid
|
||||
msgid "Relation table between users and products on a analytic account"
|
||||
msgstr "分析アカウントのユーザと商品の関係テーブル"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: constraint:hr.analytic.timesheet:0
|
||||
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
|
||||
msgstr "確認済みのタイムシートの項目を変更することはできません。"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,account_id:0
|
||||
#: model:ir.model,name:analytic_user_function.model_account_analytic_account
|
||||
msgid "Analytic Account"
|
||||
msgstr "分析アカウント"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:account.analytic.account:0
|
||||
#: field:account.analytic.account,user_product_ids:0
|
||||
msgid "Users/Products Rel."
|
||||
msgstr "ユーザ・商品の関係"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: field:analytic.user.funct.grid,user_id:0
|
||||
msgid "User"
|
||||
msgstr "ユーザ"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:96
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:131
|
||||
#, python-format
|
||||
msgid "There is no expense account define for this product: \"%s\" (id:%d)"
|
||||
msgstr "商品 \"%s\" (id:%d) のアカウントが定義されていません。"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:95
|
||||
#: code:addons/analytic_user_function/analytic_user_function.py:130
|
||||
#, python-format
|
||||
msgid "Error !"
|
||||
msgstr "エラー"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: constraint:account.analytic.account:0
|
||||
msgid "Error! You can not create recursive analytic accounts."
|
||||
msgstr "エラー。反復した分析アカウントを作ることはできません"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: model:ir.model,name:analytic_user_function.model_hr_analytic_timesheet
|
||||
msgid "Timesheet Line"
|
||||
msgstr "タイムシートの行"
|
||||
|
||||
#. module: analytic_user_function
|
||||
#: view:analytic.user.funct.grid:0
|
||||
msgid "User's Product for this Analytic Account"
|
||||
msgstr "この分析アカウントのユーザの商品"
|
||||
@@ -0,0 +1,135 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2012-04-08 06:15+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-09 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: association
|
||||
#: field:profile.association.config.install_modules_wizard,wiki:0
|
||||
msgid "Wiki"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: view:profile.association.config.install_modules_wizard:0
|
||||
msgid "Event Management"
|
||||
msgstr "イベント管理"
|
||||
|
||||
#. module: association
|
||||
#: field:profile.association.config.install_modules_wizard,project_gtd:0
|
||||
msgid "Getting Things Done"
|
||||
msgstr "物事を完了"
|
||||
|
||||
#. module: association
|
||||
#: model:ir.module.module,description:association.module_meta_information
|
||||
msgid "This module is to create Profile for Associates"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: field:profile.association.config.install_modules_wizard,progress:0
|
||||
msgid "Configuration Progress"
|
||||
msgstr "設定を進行中"
|
||||
|
||||
#. module: association
|
||||
#: view:profile.association.config.install_modules_wizard:0
|
||||
msgid ""
|
||||
"Here are specific applications related to the Association Profile you "
|
||||
"selected."
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: view:profile.association.config.install_modules_wizard:0
|
||||
msgid "title"
|
||||
msgstr "タイトル"
|
||||
|
||||
#. module: association
|
||||
#: help:profile.association.config.install_modules_wizard,event_project:0
|
||||
msgid "Helps you to manage and organize your events."
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: field:profile.association.config.install_modules_wizard,config_logo:0
|
||||
msgid "Image"
|
||||
msgstr "画像"
|
||||
|
||||
#. module: association
|
||||
#: help:profile.association.config.install_modules_wizard,hr_expense:0
|
||||
msgid ""
|
||||
"Tracks and manages employee expenses, and can automatically re-invoice "
|
||||
"clients if the expenses are project-related."
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: help:profile.association.config.install_modules_wizard,project_gtd:0
|
||||
msgid ""
|
||||
"GTD is a methodology to efficiently organise yourself and your tasks. This "
|
||||
"module fully integrates GTD principle with OpenERP's project management."
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: view:profile.association.config.install_modules_wizard:0
|
||||
msgid "Resources Management"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: model:ir.module.module,shortdesc:association.module_meta_information
|
||||
msgid "Association profile"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: field:profile.association.config.install_modules_wizard,hr_expense:0
|
||||
msgid "Expenses Tracking"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: model:ir.actions.act_window,name:association.action_config_install_module
|
||||
#: view:profile.association.config.install_modules_wizard:0
|
||||
msgid "Association Application Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: help:profile.association.config.install_modules_wizard,wiki:0
|
||||
msgid ""
|
||||
"Lets you create wiki pages and page groups in order to keep track of "
|
||||
"business knowledge and share it with and between your employees."
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: help:profile.association.config.install_modules_wizard,project:0
|
||||
msgid ""
|
||||
"Helps you manage your projects and tasks by tracking them, generating "
|
||||
"plannings, etc..."
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: model:ir.model,name:association.model_profile_association_config_install_modules_wizard
|
||||
msgid "profile.association.config.install_modules_wizard"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: field:profile.association.config.install_modules_wizard,event_project:0
|
||||
msgid "Events"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: view:profile.association.config.install_modules_wizard:0
|
||||
#: field:profile.association.config.install_modules_wizard,project:0
|
||||
msgid "Project Management"
|
||||
msgstr ""
|
||||
|
||||
#. module: association
|
||||
#: view:profile.association.config.install_modules_wizard:0
|
||||
msgid "Configure"
|
||||
msgstr ""
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-06 04:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. #-#-#-#-# auth_openid.pot (OpenERP Server 6.1rc1) #-#-#-#-#
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# Czech translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 05:20+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: base_crypt
|
||||
#: model:ir.model,name:base_crypt.model_res_users
|
||||
msgid "res.users"
|
||||
msgstr "res.users"
|
||||
|
||||
#. module: base_crypt
|
||||
#: sql_constraint:res.users:0
|
||||
msgid "You can not have two users with the same login !"
|
||||
msgstr "Nemůžete mít dva uživatele se stejným přihlašovacím jménem !"
|
||||
|
||||
#. module: base_crypt
|
||||
#: constraint:res.users:0
|
||||
msgid "The chosen company is not in the allowed companies for this user"
|
||||
msgstr ""
|
||||
"Vybraná společnost není v povolených společnostech pro tohoto uživatele"
|
||||
|
||||
#. module: base_crypt
|
||||
#: code:addons/base_crypt/crypt.py:140
|
||||
#, python-format
|
||||
msgid "Please specify the password !"
|
||||
msgstr "Prosíme zadejte heslo!"
|
||||
|
||||
#. module: base_crypt
|
||||
#: code:addons/base_crypt/crypt.py:140
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Chyba"
|
||||
+16
-13
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2010-08-03 01:50+0000\n"
|
||||
"Last-Translator: Mantavya Gajjar (Open ERP) <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:16+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\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: 2012-02-09 06:01+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: base_iban
|
||||
#: constraint:res.partner.bank:0
|
||||
@@ -23,27 +23,30 @@ msgid ""
|
||||
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
|
||||
"valid payments"
|
||||
msgstr ""
|
||||
"\n"
|
||||
"Prosíme určete kód BIC/Swift u banky pro IBAN účet bankovního typu k ověření "
|
||||
"plateb"
|
||||
|
||||
#. module: base_iban
|
||||
#: code:addons/base_iban/base_iban.py:139
|
||||
#, python-format
|
||||
msgid "This IBAN does not pass the validation check, please verify it"
|
||||
msgstr ""
|
||||
msgstr "Tento IBAN neprošel testem ověření, prosíme zkontrolujte jej"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type,format_layout:base_iban.bank_iban
|
||||
msgid "%(bank_name)s: IBAN %(acc_number)s - BIC %(bank_bic)s"
|
||||
msgstr ""
|
||||
msgstr "%(bank_name)s: IBAN %(acc_number)s - BIC %(bank_bic)s"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_swift_field
|
||||
msgid "bank_bic"
|
||||
msgstr ""
|
||||
msgstr "bank_bic"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_zip_field
|
||||
msgid "zip"
|
||||
msgstr "zip"
|
||||
msgstr "psč"
|
||||
|
||||
#. module: base_iban
|
||||
#: help:res.partner.bank,iban:0
|
||||
@@ -53,12 +56,12 @@ msgstr "Mezinárodní Bankovní Číslo Účtu"
|
||||
#. module: base_iban
|
||||
#: model:ir.model,name:base_iban.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr ""
|
||||
msgstr "Bankovní účty"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_country_field
|
||||
msgid "country_id"
|
||||
msgstr "id_státu"
|
||||
msgstr "country_id"
|
||||
|
||||
#. module: base_iban
|
||||
#: code:addons/base_iban/base_iban.py:136
|
||||
@@ -66,7 +69,7 @@ msgstr "id_státu"
|
||||
msgid ""
|
||||
"The IBAN does not seem to be correct. You should have entered something like "
|
||||
"this %s"
|
||||
msgstr ""
|
||||
msgstr "IBAN nevypadá jako správný. Měli byste zadat něco jako toto %s"
|
||||
|
||||
#. module: base_iban
|
||||
#: field:res.partner.bank,iban:0
|
||||
@@ -77,7 +80,7 @@ msgstr "IBAN"
|
||||
#: code:addons/base_iban/base_iban.py:140
|
||||
#, python-format
|
||||
msgid "The IBAN is invalid, it should begin with the country code"
|
||||
msgstr ""
|
||||
msgstr "IBAN je neplatný, měl by začínat kódem země"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type,name:base_iban.bank_iban
|
||||
@@ -87,7 +90,7 @@ msgstr "Účet IBAN"
|
||||
#. module: base_iban
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid "The RIB and/or IBAN is not valid"
|
||||
msgstr ""
|
||||
msgstr "RIB a/nebo IBAN není platný"
|
||||
|
||||
#~ msgid "Invalid XML for View Architecture!"
|
||||
#~ msgstr "Invalidní XML pro zobrazení architektury!"
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-08 06:11+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-09 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: base_iban
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid ""
|
||||
"\n"
|
||||
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
|
||||
"valid payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: code:addons/base_iban/base_iban.py:139
|
||||
#, python-format
|
||||
msgid "This IBAN does not pass the validation check, please verify it"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type,format_layout:base_iban.bank_iban
|
||||
msgid "%(bank_name)s: IBAN %(acc_number)s - BIC %(bank_bic)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_swift_field
|
||||
msgid "bank_bic"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_zip_field
|
||||
msgid "zip"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: help:res.partner.bank,iban:0
|
||||
msgid "International Bank Account Number"
|
||||
msgstr "国際銀行口座番号"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:ir.model,name:base_iban.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr "銀行口座"
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type.field,name:base_iban.bank_country_field
|
||||
msgid "country_id"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: code:addons/base_iban/base_iban.py:136
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The IBAN does not seem to be correct. You should have entered something like "
|
||||
"this %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: field:res.partner.bank,iban:0
|
||||
msgid "IBAN"
|
||||
msgstr "国際銀行口座番号"
|
||||
|
||||
#. module: base_iban
|
||||
#: code:addons/base_iban/base_iban.py:140
|
||||
#, python-format
|
||||
msgid "The IBAN is invalid, it should begin with the country code"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: model:res.partner.bank.type,name:base_iban.bank_iban
|
||||
msgid "IBAN Account"
|
||||
msgstr ""
|
||||
|
||||
#. module: base_iban
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid "The RIB and/or IBAN is not valid"
|
||||
msgstr "銀行情報のRIBまたはIBANが正しくありません。"
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-09-09 10:24+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 05:26+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:14+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: base_module_record
|
||||
@@ -90,6 +90,9 @@ msgid ""
|
||||
"publish it on http://www.openerp.com, in the 'Modules' section. You can do "
|
||||
"it through the website or using features of the 'base_module_publish' module."
|
||||
msgstr ""
|
||||
"Pokud myslíte, že váš modul může zajímat jiné lidi, byli bychom rádi, abyste "
|
||||
"jej zveřejnili v sekci 'Moduly' na http://www.openerp.com. Můžete to provést "
|
||||
"přes webové stránky nebo použitím schopnosti modulu 'base_module_publish'."
|
||||
|
||||
#. module: base_module_record
|
||||
#: wizard_field:base_module_record.module_record_data,init,check_date:0
|
||||
|
||||
@@ -0,0 +1,32 @@
|
||||
# Czech translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-01-11 11:14+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:17+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: base_tools
|
||||
#: model:ir.module.module,shortdesc:base_tools.module_meta_information
|
||||
msgid "Common base for tools modules"
|
||||
msgstr "Obecný základ pro nástrojové moduly"
|
||||
|
||||
#. module: base_tools
|
||||
#: model:ir.module.module,description:base_tools.module_meta_information
|
||||
msgid ""
|
||||
"\n"
|
||||
" "
|
||||
msgstr ""
|
||||
"\n"
|
||||
" "
|
||||
+16
-10
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-08-07 19:04+0000\n"
|
||||
"Last-Translator: Jan B. Krejčí <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:22+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\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: 2012-02-09 06:15+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: base_vat
|
||||
#: code:addons/base_vat/base_vat.py:141
|
||||
@@ -23,31 +23,33 @@ msgid ""
|
||||
"This VAT number does not seem to be valid.\n"
|
||||
"Note: the expected format is %s"
|
||||
msgstr ""
|
||||
"Toto DIČ nevypadá jako platné.\n"
|
||||
"Poznámka: očekávaný formát je %s"
|
||||
|
||||
#. module: base_vat
|
||||
#: sql_constraint:res.company:0
|
||||
msgid "The company name must be unique !"
|
||||
msgstr ""
|
||||
msgstr "Jméno společnosti musí být jedinečné !"
|
||||
|
||||
#. module: base_vat
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error ! You cannot create recursive associated members."
|
||||
msgstr ""
|
||||
msgstr "Chyba ! Nemůžete vytvořit rekurzivní přidružené členy."
|
||||
|
||||
#. module: base_vat
|
||||
#: field:res.company,vat_check_vies:0
|
||||
msgid "VIES VAT Check"
|
||||
msgstr ""
|
||||
msgstr "Kontrola DIČ přes VIES"
|
||||
|
||||
#. module: base_vat
|
||||
#: model:ir.model,name:base_vat.model_res_company
|
||||
msgid "Companies"
|
||||
msgstr ""
|
||||
msgstr "Společnosti"
|
||||
|
||||
#. module: base_vat
|
||||
#: constraint:res.company:0
|
||||
msgid "Error! You can not create recursive companies."
|
||||
msgstr ""
|
||||
msgstr "Chyba! Nemůžete vytvořit rekurzivní společnosti."
|
||||
|
||||
#. module: base_vat
|
||||
#: help:res.partner,vat_subjected:0
|
||||
@@ -55,11 +57,13 @@ msgid ""
|
||||
"Check this box if the partner is subjected to the VAT. It will be used for "
|
||||
"the VAT legal statement."
|
||||
msgstr ""
|
||||
"Zaškrtněte toto políčko, pokud partner podléhá DPH. Toto bude použito pro "
|
||||
"přiznání k DPH."
|
||||
|
||||
#. module: base_vat
|
||||
#: model:ir.model,name:base_vat.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: base_vat
|
||||
#: help:res.company,vat_check_vies:0
|
||||
@@ -67,6 +71,8 @@ msgid ""
|
||||
"If checked, Partners VAT numbers will be fully validated against EU's VIES "
|
||||
"service rather than via a simple format validation (checksum)."
|
||||
msgstr ""
|
||||
"Pokud je zaškrtnuto, DIČ partnera bude plně ověřeno proti službě VIES EU "
|
||||
"raději než přes jednoduché ověření formátu (kontrolní součet)."
|
||||
|
||||
#. module: base_vat
|
||||
#: field:res.partner,vat_subjected:0
|
||||
|
||||
@@ -186,45 +186,4 @@ class board_line(osv.osv):
|
||||
'position': lambda *args: 'left'
|
||||
}
|
||||
|
||||
class res_log_report(osv.osv):
|
||||
""" Log Report """
|
||||
_name = "res.log.report"
|
||||
_auto = False
|
||||
_description = "Log Report"
|
||||
_columns = {
|
||||
'name': fields.char('Year', size=64, required=False, readonly=True),
|
||||
'month':fields.selection([('01', 'January'), ('02', 'February'), \
|
||||
('03', 'March'), ('04', 'April'),\
|
||||
('05', 'May'), ('06', 'June'), \
|
||||
('07', 'July'), ('08', 'August'),\
|
||||
('09', 'September'), ('10', 'October'),\
|
||||
('11', 'November'), ('12', 'December')], 'Month', readonly=True),
|
||||
'day': fields.char('Day', size=128, readonly=True),
|
||||
'creation_date': fields.date('Creation Date', readonly=True),
|
||||
'res_model': fields.char('Object', size=128),
|
||||
'nbr': fields.integer('# of Entries', readonly=True)
|
||||
}
|
||||
|
||||
def init(self, cr):
|
||||
"""
|
||||
Log Report
|
||||
@param cr: the current row, from the database cursor
|
||||
"""
|
||||
tools.drop_view_if_exists(cr,'res_log_report')
|
||||
cr.execute("""
|
||||
CREATE OR REPLACE VIEW res_log_report AS (
|
||||
SELECT
|
||||
l.id as id,
|
||||
1 as nbr,
|
||||
to_char(l.create_date, 'YYYY') as name,
|
||||
to_char(l.create_date, 'MM') as month,
|
||||
to_char(l.create_date, 'YYYY-MM-DD') as day,
|
||||
to_char(l.create_date, 'YYYY-MM-DD') as creation_date,
|
||||
l.res_model as res_model,
|
||||
date_trunc('day',l.create_date) as create_date
|
||||
FROM
|
||||
res_log l
|
||||
)""")
|
||||
res_log_report()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<data>
|
||||
|
||||
<!-- User Connection -->
|
||||
<record model="ir.ui.view" id="view_user_connection_tree">
|
||||
<field name="name">user.connection.tree</field>
|
||||
@@ -21,115 +22,11 @@
|
||||
<field name="view_id" ref="view_user_connection_tree"></field>
|
||||
</record>
|
||||
|
||||
<!-- Latest Activities -->
|
||||
<record model="ir.actions.act_window" id="action_latest_activities_tree">
|
||||
<field name="name">Latest Activities</field>
|
||||
<field name="res_model">res.log</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
</record>
|
||||
|
||||
<!-- Log report search view -->
|
||||
<record id="view_res_log_report_filter" model="ir.ui.view">
|
||||
<field name="name">res.log.report.select</field>
|
||||
<field name="model">res.log.report</field>
|
||||
<field name="type">search</field>
|
||||
<field name="arch" type="xml">
|
||||
<search string="Log Analysis">
|
||||
<group>
|
||||
<filter icon="terp-go-year" string=" Year "
|
||||
domain="[('create_date','<=', time.strftime('%%Y-%%m-%%d')),('create_date','>=',time.strftime('%%Y-01-01'))]"
|
||||
help="Log created in current year"/>
|
||||
<filter icon="terp-go-month" string=" Month "
|
||||
name="month"
|
||||
domain="[('create_date','<=',(datetime.date.today()+relativedelta(day=31)).strftime('%%Y-%%m-%%d')),('create_date','>=',(datetime.date.today()-relativedelta(day=1)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Log created in current month"/>
|
||||
<filter icon="terp-go-month"
|
||||
string=" Month-1 "
|
||||
domain="[('create_date','<=', (datetime.date.today() - relativedelta(day=31, months=1)).strftime('%%Y-%%m-%%d')),('create_date','>=',(datetime.date.today() - relativedelta(day=1,months=1)).strftime('%%Y-%%m-%%d'))]"
|
||||
help="Log created in last month"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<group expand="1" string="Group By...">
|
||||
<filter string="Model" icon="terp-go-home" context="{'group_by':'res_model'}" />
|
||||
<separator orientation="vertical"/>
|
||||
<filter string="Day" icon="terp-go-today"
|
||||
domain="[]" context="{'group_by':'day'}"/>
|
||||
<filter string="Month" icon="terp-go-month"
|
||||
domain="[]" context="{'group_by':'month'}" />
|
||||
<filter string="Year" icon="terp-go-year"
|
||||
domain="[]" context="{'group_by':'name'}" />
|
||||
</group>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Log report Tree view -->
|
||||
<record id="view_res_log_report_tree" model="ir.ui.view">
|
||||
<field name="name">res.log.report.tree</field>
|
||||
<field name="model">res.log.report</field>
|
||||
<field name="type">tree</field>
|
||||
<field name="arch" type="xml">
|
||||
<tree string="Log Analysis">
|
||||
<field name="name" invisible="1"/>
|
||||
<field name="month" invisible="1"/>
|
||||
<field name="day" invisible="1"/>
|
||||
<field name="res_model" invisible="1"/>
|
||||
<field name="nbr" />
|
||||
<field name="creation_date" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="board_config_overview" model="ir.actions.client">
|
||||
<field name="name">Configuration Overview</field>
|
||||
<field name="tag">board.config.overview</field>
|
||||
</record>
|
||||
|
||||
<!-- Monthly Activity per Document -->
|
||||
<record id="board_res_log_report_graph" model="ir.ui.view">
|
||||
<field name="name">board.res.log.report.graph</field>
|
||||
<field name="model">res.log.report</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Monthly Activity per Document" type="bar">
|
||||
<field name="res_model"/>
|
||||
<field name="nbr" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<record id="board_monthly_res_log_report_action" model="ir.actions.act_window">
|
||||
<field name="name">Monthly Activity per Document</field>
|
||||
<field name="res_model">res.log.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('create_date','>',(datetime.date.today()-datetime.timedelta(days=30)).strftime('%Y-%m-%d'))]</field>
|
||||
<field name="context">{'group_by':['res_model'],'group_by_no_leaf':1}</field>
|
||||
<field name="view_id" ref="board_res_log_report_graph"></field>
|
||||
</record>
|
||||
|
||||
<!-- Weekly Global Activity -->
|
||||
<record id="board_weekly_res_log_report_graph" model="ir.ui.view">
|
||||
<field name="name">board.weekly.res.log.report.graph</field>
|
||||
<field name="model">res.log.report</field>
|
||||
<field name="type">graph</field>
|
||||
<field name="arch" type="xml">
|
||||
<graph string="Weekly Global Activity" type="bar">
|
||||
<field name="day"/>
|
||||
<field name="nbr" operator="+"/>
|
||||
</graph>
|
||||
</field>
|
||||
</record>
|
||||
<record id="board_weekly_res_log_report_action" model="ir.actions.act_window">
|
||||
<field name="name">Weekly Global Activity</field>
|
||||
<field name="res_model">res.log.report</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">graph,tree</field>
|
||||
<field name="domain">[('create_date','>',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%Y-%m-%d'))]</field>
|
||||
<field name="context">{'group_by':['day'],'group_by_no_leaf':1}</field>
|
||||
<field name="view_id" ref="board_weekly_res_log_report_graph"></field>
|
||||
</record>
|
||||
|
||||
<record id="board_administration_form" model="ir.ui.view">
|
||||
<field name="name">board.administration.form</field>
|
||||
<field name="model">board.board</field>
|
||||
@@ -164,5 +61,5 @@
|
||||
<menuitem id="base.menu_dashboard" name="Dashboards" parent="base.menu_reporting_board" sequence="0"/>
|
||||
<menuitem id="base.menu_dashboard_admin" action="open_board_administration_form" parent="base.menu_dashboard" icon="terp-graph"/>
|
||||
|
||||
</data>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+11
-11
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2009-12-23 20:43+0000\n"
|
||||
"Last-Translator: Kuvaly [LCT] <kuvaly@seznam.cz>\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:15+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\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: 2012-02-09 06:40+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: board
|
||||
@@ -40,13 +40,13 @@ msgstr "Poslední spojení"
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Log created in last month"
|
||||
msgstr ""
|
||||
msgstr "Záznam vytvořený minulý měsíc"
|
||||
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
#: model:ir.actions.act_window,name:board.open_board_administration_form
|
||||
msgid "Administration Dashboard"
|
||||
msgstr "Správa nástěnky"
|
||||
msgstr "Nástěnka správy"
|
||||
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
@@ -56,7 +56,7 @@ msgstr "Seskupit podle..."
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Log created in current year"
|
||||
msgstr ""
|
||||
msgstr "Záznam vytvořený v tomto roce"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model,name:board.model_board_board
|
||||
@@ -93,7 +93,7 @@ msgstr "Měsíc"
|
||||
#. module: board
|
||||
#: view:res.log.report:0
|
||||
msgid "Log created in current month"
|
||||
msgstr ""
|
||||
msgstr "Záznam vytvořený v tomto měsíci"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.board_monthly_res_log_report_action
|
||||
@@ -104,7 +104,7 @@ msgstr "Měsíční činnosti dle dokumentu"
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
msgid "Configuration Overview"
|
||||
msgstr ""
|
||||
msgstr "Přehled nastavení"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_view_board_list_form
|
||||
@@ -212,7 +212,7 @@ msgstr "Leden"
|
||||
#. module: board
|
||||
#: view:board.board:0
|
||||
msgid "Users"
|
||||
msgstr ""
|
||||
msgstr "Uživatelé"
|
||||
|
||||
#. module: board
|
||||
#: selection:res.log.report,month:0
|
||||
@@ -265,7 +265,7 @@ msgstr "Model"
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.board_homepage_action
|
||||
msgid "Home Page"
|
||||
msgstr ""
|
||||
msgstr "Domovská stránka"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.actions.act_window,name:board.action_latest_activities_tree
|
||||
|
||||
@@ -3,4 +3,3 @@ access_board_board all,board.board,model_board_board,,1,0,0,0
|
||||
access_board_board_line all,board.board.line,model_board_board_line,,1,0,0,0
|
||||
access_board_board system,board.board system,model_board_board,base.group_system,1,1,1,1
|
||||
access_board_board_line system,board.board.line system,model_board_board_line,base.group_system,1,1,1,1
|
||||
access_res_log_report all,res.log.report,model_res_log_report,,1,0,0,0
|
||||
|
||||
|
@@ -0,0 +1,23 @@
|
||||
# Czech translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 04:57+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: claim_from_delivery
|
||||
#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
|
||||
msgid "Claim"
|
||||
msgstr "Pohledávka"
|
||||
+73
-29
@@ -127,7 +127,7 @@ class crm_case_section(osv.osv):
|
||||
|
||||
def name_get(self, cr, uid, ids, context=None):
|
||||
"""Overrides orm name_get method"""
|
||||
if not isinstance(ids, list) :
|
||||
if not isinstance(ids, list) :
|
||||
ids = [ids]
|
||||
res = []
|
||||
if not ids:
|
||||
@@ -256,7 +256,40 @@ class crm_base(object):
|
||||
data.update(self.onchange_partner_address_id(cr, uid, ids, addr['contact'])['value'])
|
||||
return {'value': data}
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return ''
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>opened</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>closed</b>.'% (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_cancel_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>canceled</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_pending_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s is now <b>pending</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_reset_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
msg = '%s has been <b>renewed</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=msg, context=context)
|
||||
return True
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Opens Case
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
@@ -265,12 +298,13 @@ class crm_base(object):
|
||||
data = {'state': 'open', 'active': True}
|
||||
if not case.user_id:
|
||||
data['user_id'] = uid
|
||||
self.write(cr, uid, case.id, data)
|
||||
|
||||
self.write(cr, uid, [case.id], data)
|
||||
self.case_open_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'open')
|
||||
|
||||
return True
|
||||
|
||||
def case_close(self, cr, uid, ids, *args):
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
"""Closes Case
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
@@ -278,10 +312,11 @@ class crm_base(object):
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'done', 'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'), })
|
||||
# We use the cache of cases to keep the old case state
|
||||
self.case_close_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'done')
|
||||
return True
|
||||
|
||||
def case_cancel(self, cr, uid, ids, *args):
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
"""Cancels Case
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
@@ -289,26 +324,29 @@ class crm_base(object):
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'cancel', 'active': True})
|
||||
# We use the cache of cases to keep the old case state
|
||||
self.case_cancel_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'cancel')
|
||||
return True
|
||||
|
||||
def case_pending(self, cr, uid, ids, *args):
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
"""Marks case as pending
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'pending', 'active': True})
|
||||
self.case_pending_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'pending')
|
||||
return True
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Resets case as draft
|
||||
:param ids: List of case Ids
|
||||
"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.write(cr, uid, ids, {'state': 'draft', 'active': True})
|
||||
self.case_reset_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'draft')
|
||||
return True
|
||||
|
||||
@@ -323,12 +361,12 @@ class crm_base(object):
|
||||
return rule_obj._action(cr, uid, rule_ids, cases, scrit=scrit, context=context)
|
||||
|
||||
class crm_case(crm_base):
|
||||
""" A simple python class to be used for common functions
|
||||
""" A simple python class to be used for common functions
|
||||
Object that inherit from this class should inherit from mailgate.thread
|
||||
And need a stage_id field
|
||||
And object that inherit (orm inheritance) from a class the overwrite copy
|
||||
And object that inherit (orm inheritance) from a class the overwrite copy
|
||||
"""
|
||||
|
||||
|
||||
def stage_find(self, cr, uid, section_id, domain=[], order='sequence'):
|
||||
domain = list(domain)
|
||||
if section_id:
|
||||
@@ -387,34 +425,45 @@ class crm_case(crm_base):
|
||||
default.update({ 'date_open': False })
|
||||
return super(crm_case, self).copy(cr, uid, id, default, context=context)
|
||||
|
||||
def case_escalate_send_note(self, cr, uid, ids, new_section=None, context=None):
|
||||
for id in ids:
|
||||
if new_section:
|
||||
msg = '%s has been <b>escalated</b> to <b>%s</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context), new_section.name)
|
||||
else:
|
||||
msg = '%s has been <b>escalated</b>.' % (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], 'System Notification', msg, context=context)
|
||||
return True
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return ''
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Opens Case"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
self.message_append(cr, uid, cases, _('Open'))
|
||||
for case in cases:
|
||||
data = {'state': 'open', 'active': True }
|
||||
if not case.user_id:
|
||||
data['user_id'] = uid
|
||||
self.write(cr, uid, case.id, data)
|
||||
self.write(cr, uid, [case.id], data)
|
||||
self.case_open_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'open')
|
||||
return True
|
||||
|
||||
def case_close(self, cr, uid, ids, *args):
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
"""Closes Case"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.message_append(cr, uid, cases, _('Close'))
|
||||
self.write(cr, uid, ids, {'state': 'done',
|
||||
'date_closed': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
})
|
||||
#
|
||||
# We use the cache of cases to keep the old case state
|
||||
#
|
||||
self.case_close_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'done')
|
||||
return True
|
||||
|
||||
def case_escalate(self, cr, uid, ids, *args):
|
||||
def case_escalate(self, cr, uid, ids, context=None):
|
||||
"""Escalates case to parent level"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
for case in cases:
|
||||
@@ -427,42 +476,37 @@ class crm_case(crm_base):
|
||||
else:
|
||||
raise osv.except_osv(_('Error !'), _('You can not escalate, you are already at the top level regarding your sales-team category.'))
|
||||
self.write(cr, uid, [case.id], data)
|
||||
case.case_escalate_send_note(case.section_id.parent_id)
|
||||
cases = self.browse(cr, uid, ids)
|
||||
self.message_append(cr, uid, cases, _('Escalate'))
|
||||
self._action(cr, uid, cases, 'escalate')
|
||||
return True
|
||||
|
||||
def case_cancel(self, cr, uid, ids, *args):
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
"""Cancels Case"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.message_append(cr, uid, cases, _('Cancel'))
|
||||
self.write(cr, uid, ids, {'state': 'cancel',
|
||||
'active': True})
|
||||
self.case_cancel_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'cancel')
|
||||
for case in cases:
|
||||
message = _("The case '%s' has been cancelled.") % (case.name,)
|
||||
self.log(cr, uid, case.id, message)
|
||||
return True
|
||||
|
||||
def case_pending(self, cr, uid, ids, *args):
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
"""Marks case as pending"""
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.message_append(cr, uid, cases, _('Pending'))
|
||||
self.write(cr, uid, ids, {'state': 'pending', 'active': True})
|
||||
self.case_pending_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, 'pending')
|
||||
return True
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Resets case as draft"""
|
||||
state = 'draft'
|
||||
if 'crm.phonecall' in args:
|
||||
state = 'open'
|
||||
cases = self.browse(cr, uid, ids)
|
||||
cases[0].state # to fill the browse record cache
|
||||
self.message_append(cr, uid, cases, _('Draft'))
|
||||
self.write(cr, uid, ids, {'state': state, 'active': True})
|
||||
self.case_reset_send_note(cr, uid, ids, context=context)
|
||||
self._action(cr, uid, cases, state)
|
||||
return True
|
||||
|
||||
|
||||
+99
-68
@@ -40,7 +40,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
_name = "crm.lead"
|
||||
_description = "Lead/Opportunity"
|
||||
_order = "priority,date_action,id desc"
|
||||
_inherit = ['mail.thread','res.partner']
|
||||
_inherit = ['ir.needaction_mixin', 'mail.thread','res.partner']
|
||||
|
||||
def _read_group_stage_ids(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None):
|
||||
access_rights_uid = access_rights_uid or uid
|
||||
@@ -183,7 +183,6 @@ class crm_lead(crm_case, osv.osv):
|
||||
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
'subjects': fields.function(_get_email_subject, fnct_search=_history_search, string='Subject of Email', type='char', size=64),
|
||||
|
||||
|
||||
# Only used for type opportunity
|
||||
'probability': fields.float('Probability (%)',group_operator="avg"),
|
||||
'planned_revenue': fields.float('Expected Revenue'),
|
||||
@@ -215,6 +214,19 @@ class crm_lead(crm_case, osv.osv):
|
||||
'color': 0,
|
||||
}
|
||||
|
||||
def get_needaction_user_ids(self, cr, uid, ids, context=None):
|
||||
result = dict.fromkeys(ids, [])
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
# salesman must perform an action when in draft mode
|
||||
if obj.state == 'draft' and obj.user_id:
|
||||
result[obj.id] = [obj.user_id.id]
|
||||
return result
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(crm_lead, self).create(cr, uid, vals, context)
|
||||
self.create_send_note(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
|
||||
def on_change_optin(self, cr, uid, ids, optin):
|
||||
return {'value':{'optin':optin,'optout':False}}
|
||||
|
||||
@@ -248,75 +260,58 @@ class crm_lead(crm_case, osv.osv):
|
||||
def stage_find_won(self, cr, uid, section_id):
|
||||
return self.stage_find_percent(cr, uid, 100.0, section_id)
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
for l in self.browse(cr, uid, ids):
|
||||
# When coming from draft override date and stage otherwise just set state
|
||||
if l.state == 'draft':
|
||||
if l.type == 'lead':
|
||||
message = _("The lead '%s' has been opened.") % l.name
|
||||
elif l.type == 'opportunity':
|
||||
message = _("The opportunity '%s' has been opened.") % l.name
|
||||
else:
|
||||
message = _("The case '%s' has been opened.") % l.name
|
||||
self.log(cr, uid, l.id, message)
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
for lead in self.browse(cr, uid, ids, context=context):
|
||||
if lead.state == 'draft':
|
||||
value = {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')}
|
||||
self.write(cr, uid, [l.id], value)
|
||||
if l.type == 'opportunity' and not l.stage_id:
|
||||
stage_id = self.stage_find(cr, uid, l.section_id.id or False, [('sequence','>',0)])
|
||||
self.write(cr, uid, [lead.id], value)
|
||||
if lead.type == 'opportunity' and not lead.stage_id:
|
||||
stage_id = self.stage_find(cr, uid, lead.section_id.id or False, [('sequence','>',0)])
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [l.id], stage_id)
|
||||
res = super(crm_lead, self).case_open(cr, uid, ids, *args)
|
||||
self.stage_set(cr, uid, [lead.id], stage_id)
|
||||
res = super(crm_lead, self).case_open(cr, uid, ids, context)
|
||||
return res
|
||||
|
||||
def case_close(self, cr, uid, ids, *args):
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, *args)
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'date_closed': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
for case in self.browse(cr, uid, ids):
|
||||
if case.type == 'lead':
|
||||
message = _("The lead '%s' has been closed.") % case.name
|
||||
else:
|
||||
message = _("The case '%s' has been closed.") % case.name
|
||||
self.log(cr, uid, case.id, message)
|
||||
return res
|
||||
|
||||
def case_cancel(self, cr, uid, ids, *args):
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
"""Overrides cancel for crm_case for setting probability
|
||||
"""
|
||||
res = super(crm_lead, self).case_cancel(cr, uid, ids, args)
|
||||
res = super(crm_lead, self).case_cancel(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0})
|
||||
return res
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Overrides reset as draft in order to set the stage field as empty
|
||||
"""
|
||||
res = super(crm_lead, self).case_reset(cr, uid, ids, *args)
|
||||
res = super(crm_lead, self).case_reset(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'stage_id': False, 'probability': 0.0})
|
||||
return res
|
||||
|
||||
def case_mark_lost(self, cr, uid, ids, *args):
|
||||
def case_mark_lost(self, cr, uid, ids, context=None):
|
||||
"""Mark the case as lost: state = done and probability = 0%
|
||||
"""
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, *args)
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0})
|
||||
for l in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find_lost(cr, uid, l.section_id.id or False)
|
||||
for lead in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find_lost(cr, uid, lead.section_id.id or False)
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [l.id], stage_id)
|
||||
message = _("The opportunity '%s' has been marked as lost.") % l.name
|
||||
self.log(cr, uid, l.id, message)
|
||||
self.stage_set(cr, uid, [lead.id], stage_id)
|
||||
return res
|
||||
|
||||
def case_mark_won(self, cr, uid, ids, *args):
|
||||
def case_mark_won(self, cr, uid, ids, context=None):
|
||||
"""Mark the case as lost: state = done and probability = 0%
|
||||
"""
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, *args)
|
||||
res = super(crm_lead, self).case_close(cr, uid, ids, context=None)
|
||||
self.write(cr, uid, ids, {'probability' : 100.0})
|
||||
for l in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find_won(cr, uid, l.section_id.id or False)
|
||||
for lead in self.browse(cr, uid, ids):
|
||||
stage_id = self.stage_find_won(cr, uid, lead.section_id.id or False)
|
||||
if stage_id:
|
||||
self.stage_set(cr, uid, [l.id], stage_id)
|
||||
message = _("The opportunity '%s' has been been won.") % l.name
|
||||
self.log(cr, uid, l.id, message)
|
||||
self.stage_set(cr, uid, [lead.id], stage_id)
|
||||
self.case_mark_won_send_note(cr, uid, [lead.id], context=context)
|
||||
return res
|
||||
|
||||
def set_priority(self, cr, uid, ids, priority):
|
||||
@@ -324,12 +319,12 @@ class crm_lead(crm_case, osv.osv):
|
||||
"""
|
||||
return self.write(cr, uid, ids, {'priority' : priority})
|
||||
|
||||
def set_high_priority(self, cr, uid, ids, *args):
|
||||
def set_high_priority(self, cr, uid, ids, context=None):
|
||||
"""Set lead priority to high
|
||||
"""
|
||||
return self.set_priority(cr, uid, ids, '1')
|
||||
|
||||
def set_normal_priority(self, cr, uid, ids, *args):
|
||||
def set_normal_priority(self, cr, uid, ids, context=None):
|
||||
"""Set lead priority to normal
|
||||
"""
|
||||
return self.set_priority(cr, uid, ids, '3')
|
||||
@@ -422,7 +417,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
|
||||
subject = subject[0] + ", ".join(subject[1:])
|
||||
details = "\n\n".join(details)
|
||||
return self.message_append(cr, uid, [opportunity_id], subject, body_text=details, context=context)
|
||||
return self.message_append_note(cr, uid, [opportunity_id], subject=subject, body=details)
|
||||
|
||||
def _merge_opportunity_history(self, cr, uid, opportunity_id, opportunities, context=None):
|
||||
message = self.pool.get('mail.message')
|
||||
@@ -529,13 +524,6 @@ class crm_lead(crm_case, osv.osv):
|
||||
'date_open': time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
}
|
||||
|
||||
def _convert_opportunity_notification(self, cr, uid, lead, context=None):
|
||||
success_message = _("Lead '%s' has been converted to an opportunity.") % lead.name
|
||||
self.message_append(cr, uid, [lead.id], success_message, body_text=success_message, context=context)
|
||||
self.log(cr, uid, lead.id, success_message)
|
||||
self._send_mail_to_salesman(cr, uid, lead, context=context)
|
||||
return True
|
||||
|
||||
def convert_opportunity(self, cr, uid, ids, partner_id, user_ids=False, section_id=False, context=None):
|
||||
partner = self.pool.get('res.partner')
|
||||
mail_message = self.pool.get('mail.message')
|
||||
@@ -551,7 +539,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
vals = self._convert_opportunity_data(cr, uid, lead, customer, section_id, context=context)
|
||||
self.write(cr, uid, [lead.id], vals, context=context)
|
||||
|
||||
self._convert_opportunity_notification(cr, uid, lead, context=context)
|
||||
self.convert_opportunity_send_note(cr, uid, lead, context=context)
|
||||
#TOCHECK: why need to change partner details in all messages of lead ?
|
||||
if lead.partner_id:
|
||||
msg_ids = [ x.id for x in lead.message_ids]
|
||||
@@ -605,6 +593,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
res_partner.write(cr, uid, partner_id, {'section_id': lead.section_id.id or False})
|
||||
contact_id = res_partner.address_get(cr, uid, [partner_id])['default']
|
||||
res = lead.write({'partner_id' : partner_id, }, context=context)
|
||||
self._lead_set_partner_send_note(cr, uid, [lead.id], context)
|
||||
return res
|
||||
|
||||
def convert_partner(self, cr, uid, ids, action='create', partner_id=False, context=None):
|
||||
@@ -684,12 +673,12 @@ class crm_lead(crm_case, osv.osv):
|
||||
'partner_mobile' : lead.partner_id and lead.partner_id.mobile or False,
|
||||
'priority': lead.priority,
|
||||
}
|
||||
|
||||
new_id = phonecall.create(cr, uid, vals, context=context)
|
||||
phonecall.case_open(cr, uid, [new_id])
|
||||
phonecall.case_open(cr, uid, [new_id], context=context)
|
||||
if action == 'log':
|
||||
phonecall.case_close(cr, uid, [new_id])
|
||||
phonecall.case_close(cr, uid, [new_id], context=context)
|
||||
phonecall_dict[lead.id] = new_id
|
||||
self.schedule_phonecall_send_note(cr, uid, [lead.id], new_id, action, context=context)
|
||||
return phonecall_dict
|
||||
|
||||
|
||||
@@ -767,7 +756,7 @@ class crm_lead(crm_case, osv.osv):
|
||||
#re-open
|
||||
values.update(state=crm.AVAILABLE_STATES[1][0])
|
||||
if not case.date_open:
|
||||
values['date_open'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
values['date_open'] = time.strftime(tools.DEFAULT_SERVER_DATETIME_FORMAT)
|
||||
res = self.write(cr, uid, [case.id], values, context=context)
|
||||
return res
|
||||
|
||||
@@ -831,17 +820,59 @@ class crm_lead(crm_case, osv.osv):
|
||||
# change probability of lead(s) if required by stage
|
||||
if not vals.get('probability') and stage.on_change:
|
||||
vals['probability'] = stage.probability
|
||||
text = _("Changed Stage to: %s") % stage.name
|
||||
self.message_append(cr, uid, ids, text, body_text=text, context=context)
|
||||
for case in self.browse(cr, uid, ids, context=context):
|
||||
if case.type == 'lead' or context.get('stage_type') == 'lead':
|
||||
message = _("The stage of lead '%s' has been changed to '%s'.") % (case.name, stage.name)
|
||||
self.log(cr, uid, case.id, message)
|
||||
elif case.type == 'opportunity':
|
||||
message = _("The stage of opportunity '%s' has been changed to '%s'.") % (case.name, stage.name)
|
||||
self.log(cr, uid, case.id, message)
|
||||
|
||||
message = _("Stage changed to <b>%s</b>.") % (stage.name)
|
||||
case.message_append_note(body=message)
|
||||
return super(crm_lead,self).write(cr, uid, ids, vals, context)
|
||||
|
||||
# ----------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# ----------------------------------------
|
||||
|
||||
def message_get_subscribers(self, cr, uid, ids, context=None):
|
||||
sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context)
|
||||
# add salesman to the subscribers
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if obj.user_id:
|
||||
sub_ids.append(obj.user_id.id)
|
||||
return self.pool.get('res.users').read(cr, uid, sub_ids, context=context)
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, lead, context=None):
|
||||
if isinstance(lead, (int, long)):
|
||||
lead = self.browse(cr, uid, [lead], context=context)[0]
|
||||
return ('Opportunity' if lead.type == 'opportunity' else 'Lead')
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
for id in ids:
|
||||
message = _("%s has been <b>created</b>.")% (self.case_get_note_msg_prefix(cr, uid, id, context=context))
|
||||
self.message_append_note(cr, uid, [id], body=message, context=context)
|
||||
return True
|
||||
|
||||
def case_mark_lost_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Opportunity has been <b>lost</b>.")
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def case_mark_won_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Opportunity has been <b>won</b>.")
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def schedule_phonecall_send_note(self, cr, uid, ids, phonecall_id, action, context=None):
|
||||
phonecall = self.pool.get('crm.phonecall').browse(cr, uid, [phonecall_id], context=context)[0]
|
||||
if action == 'log': prefix = 'Logged'
|
||||
else: prefix = 'Scheduled'
|
||||
message = _("<b>%s a call</b> for the <em>%s</em>.") % (prefix, phonecall.date)
|
||||
return self. message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def _lead_set_partner_send_note(self, cr, uid, ids, context=None):
|
||||
for lead in self.browse(cr, uid, ids, context=context):
|
||||
message = _("%s <b>partner</b> is now set to <em>%s</em>." % (self.case_get_note_msg_prefix(cr, uid, lead, context=context), lead.partner_id.name))
|
||||
lead.message_append_note(body=message)
|
||||
return True
|
||||
|
||||
def convert_opportunity_send_note(self, cr, uid, lead, context=None):
|
||||
message = _("Lead has been <b>converted to an opportunity</b>.")
|
||||
lead.message_append_note(body=message)
|
||||
return True
|
||||
|
||||
crm_lead()
|
||||
|
||||
|
||||
@@ -220,21 +220,21 @@
|
||||
</record>
|
||||
|
||||
<!-- Call Function to Open the leads-->
|
||||
<function model="crm.lead" name="case_open">
|
||||
<value eval="[ref('crm_case_electonicgoodsdealer0'), ref('crm_case_company_partnership0'), ref('crm_case_webvisitor0'), ref('crm_case_business_card0'), ref('crm.crm_case_employee0')]"/>
|
||||
</function>
|
||||
<function model="crm.lead" name="case_open"
|
||||
eval="[ref('crm_case_electonicgoodsdealer0'), ref('crm_case_company_partnership0'), ref('crm_case_webvisitor0'), ref('crm_case_business_card0'), ref('crm.crm_case_employee0')], {'install_mode': True}"
|
||||
/>
|
||||
<!-- Call Function to mark the lead as Pending-->
|
||||
<function model="crm.lead" name="case_pending">
|
||||
<value eval="[ref('crm_case_itdeveloper0')]"/>
|
||||
</function>
|
||||
<function model="crm.lead" name="case_pending"
|
||||
eval="[ref('crm_case_itdeveloper0')], {'install_mode': True}"
|
||||
/>
|
||||
<!-- Call Function to Close the leads-->
|
||||
<function model="crm.lead" name="case_close">
|
||||
<value eval="[ref('crm_case_vpoperations0'), ref('crm_case_developingwebapplications0'), ref('crm_case_webvisitor0')]"/>
|
||||
</function>
|
||||
<function model="crm.lead" name="case_close"
|
||||
eval="[ref('crm_case_vpoperations0'), ref('crm_case_developingwebapplications0'), ref('crm_case_webvisitor0')], {'install_mode': True}"
|
||||
/>
|
||||
<!-- Call Function to Cancel the leads-->
|
||||
<function model="crm.lead" name="case_cancel">
|
||||
<value eval="[ref('crm_case_mgroperations0'), ref('crm_case_imported_contact0')]"/>
|
||||
</function>
|
||||
<function model="crm.lead" name="case_cancel"
|
||||
eval="[ref('crm_case_mgroperations0'), ref('crm_case_imported_contact0')], {'install_mode': True}"
|
||||
/>
|
||||
|
||||
<!-- Demo Opportunities -->
|
||||
<record id="crm_case_construstazunits0" model="crm.lead">
|
||||
|
||||
@@ -143,29 +143,6 @@
|
||||
type="object" icon="gtk-convert" />
|
||||
</group>
|
||||
</page>
|
||||
<page string="Communication & History" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" widget="char" size="512"/>
|
||||
</group>
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1">
|
||||
<tree string="History">
|
||||
<field name="display_text" string="History Information"/>
|
||||
<field name="email_from" invisible="1"/>
|
||||
<button
|
||||
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
</field>
|
||||
<button string="Add Internal Note"
|
||||
name="%(crm.action_crm_add_note)d"
|
||||
context="{'model': 'crm.lead' }"
|
||||
icon="terp-document-new" type="action" />
|
||||
<button string="Send New Email"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" type="action"/>
|
||||
</page>
|
||||
<page string="Extra Info" groups="base.group_extended">
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Categorization" colspan="2" col="2"/>
|
||||
@@ -176,13 +153,6 @@
|
||||
<field name="channel_id" select="1" widget="selection"/>
|
||||
<field name="referred"/>
|
||||
</group>
|
||||
<group colspan="2" col="2" groups="base.group_no_one">
|
||||
<separator string="Dates" colspan="2" col="2"/>
|
||||
<field name="create_date"/>
|
||||
<field name="write_date"/>
|
||||
<field name="date_open"/>
|
||||
<field name="date_closed"/>
|
||||
</group>
|
||||
<group colspan="2" col="2">
|
||||
<separator string="Mailings" colspan="2" col="2"/>
|
||||
<field name="optin" on_change="on_change_optin(optin)"/>
|
||||
@@ -195,6 +165,7 @@
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
@@ -545,37 +516,7 @@
|
||||
<field name="optout" on_change="on_change_optout(optout)"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Communication & History" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" widget="char" size="512"/>
|
||||
</group>
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1">
|
||||
<tree string="History">
|
||||
<field name="display_text" string="History Information"/>
|
||||
<field name="email_from" invisible="1"/>
|
||||
<button
|
||||
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
</field>
|
||||
<button string="Add Internal Note"
|
||||
name="%(crm.action_crm_add_note)d"
|
||||
context="{'model': 'crm.lead' }"
|
||||
icon="terp-document-new" type="action" />
|
||||
<button string="Send New Email"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" type="action"/>
|
||||
</page>
|
||||
<page string="Extra Info" groups="base.group_extended">
|
||||
<group col="2" colspan="2" groups="base.group_no_one">
|
||||
<separator string="Dates" colspan="2"/>
|
||||
<field name="create_date"/>
|
||||
<field name="write_date"/>
|
||||
<field name="date_closed"/>
|
||||
<field name="date_open"/>
|
||||
</group>
|
||||
<group col="2" colspan="2">
|
||||
<separator string="Misc" colspan="2"/>
|
||||
<field name="active"/>
|
||||
@@ -588,6 +529,7 @@
|
||||
<field name="ref2"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -42,7 +42,7 @@ class crm_meeting(crm_base, osv.osv):
|
||||
_name = 'crm.meeting'
|
||||
_description = "Meeting"
|
||||
_order = "id desc"
|
||||
_inherit = "calendar.event"
|
||||
_inherit = ["calendar.event", 'ir.needaction_mixin', "mail.thread"]
|
||||
_columns = {
|
||||
# From crm.case
|
||||
'name': fields.char('Summary', size=124, required=True, states={'done': [('readonly', True)]}),
|
||||
@@ -78,7 +78,55 @@ class crm_meeting(crm_base, osv.osv):
|
||||
'user_id': lambda self, cr, uid, ctx: uid,
|
||||
}
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(crm_meeting, self).create(cr, uid, vals, context=context)
|
||||
self.create_send_note(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
|
||||
def get_needaction_user_ids(self, cr, uid, ids, context=None):
|
||||
result = dict.fromkeys(ids, [])
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if (obj.state == 'draft' and obj.user_id):
|
||||
result[obj.id] = [obj.user_id.id]
|
||||
return result
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Meeting'
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
# update context: if come from phonecall, default state values can make the message_append_note crash
|
||||
context.pop('default_state', False)
|
||||
for meeting in self.browse(cr, uid, ids, context=context):
|
||||
message = _("A meeting has been <b>scheduled</b> on <em>%s</em>.") % (meeting.date)
|
||||
if meeting.opportunity_id: # meeting can be create from phonecalls or opportunities, therefore checking for the parent
|
||||
lead = meeting.opportunity_id
|
||||
parent_message = _("Meeting linked to the opportunity <em>%s</em> has been <b>created</b> and <b>cscheduled</b> on <em>%s</em>.") % (lead.name, meeting.date)
|
||||
lead.message_append_note(_('System Notification'), message)
|
||||
elif meeting.phonecall_id:
|
||||
phonecall = meeting.phonecall_id
|
||||
parent_message = _("Meeting linked to the phonecall <em>%s</em> has been <b>created</b> and <b>cscheduled</b> on <em>%s</em>.") % (phonecall.name, meeting.date)
|
||||
phonecall.message_append_note(body=message)
|
||||
else:
|
||||
parent_message = message
|
||||
if parent_message:
|
||||
meeting.message_append_note(body=parent_message)
|
||||
return True
|
||||
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Meeting has been <b>done</b>.")
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
for meeting in self.browse(cr, uid, ids, context=context):
|
||||
if meeting.state != 'draft':
|
||||
return False
|
||||
message = _("Meeting has been <b>confirmed</b>.")
|
||||
meeting.message_append_note(body=message)
|
||||
return True
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Confirms meeting
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@@ -86,11 +134,9 @@ class crm_meeting(crm_base, osv.osv):
|
||||
@param ids: List of Meeting Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
"""
|
||||
res = super(crm_meeting, self).case_open(cr, uid, ids, args)
|
||||
res = super(crm_meeting, self).case_open(cr, uid, ids, context)
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _("The meeting '%s' has been confirmed.") % name
|
||||
id=base_calendar.base_calendar_id2real_id(id)
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
crm_meeting()
|
||||
|
||||
@@ -212,6 +212,7 @@
|
||||
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
+64
-21
@@ -32,6 +32,7 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
_name = "crm.phonecall"
|
||||
_description = "Phonecall"
|
||||
_order = "id desc"
|
||||
_inherit = ['ir.needaction_mixin', 'mail.thread']
|
||||
_columns = {
|
||||
# From crm.case
|
||||
'id': fields.integer('ID', readonly=True),
|
||||
@@ -47,12 +48,12 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
'company_id': fields.many2one('res.company', 'Company'),
|
||||
'description': fields.text('Description'),
|
||||
'state': fields.selection([
|
||||
('draft', 'Draft'),
|
||||
('open', 'Todo'),
|
||||
('cancel', 'Cancelled'),
|
||||
('done', 'Held'),
|
||||
('draft', 'Draft'),
|
||||
('open', 'Todo'),
|
||||
('cancel', 'Cancelled'),
|
||||
('done', 'Held'),
|
||||
('pending', 'Not Held'),
|
||||
], 'State', size=16, readonly=True,
|
||||
], 'State', size=16, readonly=True,
|
||||
help='The state is set to \'Todo\', when a case is created.\
|
||||
\nIf the case is in progress the state is set to \'Open\'.\
|
||||
\nWhen the call is over, the state is set to \'Held\'.\
|
||||
@@ -67,9 +68,9 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
'partner_phone': fields.char('Phone', size=32),
|
||||
'partner_mobile': fields.char('Mobile', size=32),
|
||||
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date': fields.datetime('Date'),
|
||||
'opportunity_id': fields.many2one ('crm.lead', 'Lead/Opportunity'),
|
||||
'date_closed': fields.datetime('Closed', readonly=True),
|
||||
'date': fields.datetime('Date'),
|
||||
'opportunity_id': fields.many2one ('crm.lead', 'Lead/Opportunity'),
|
||||
'message_ids': fields.one2many('mail.message', 'res_id', 'Messages', domain=[('model','=',_name)]),
|
||||
}
|
||||
|
||||
@@ -80,13 +81,20 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
|
||||
_defaults = {
|
||||
'date': lambda *a: time.strftime('%Y-%m-%d %H:%M:%S'),
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'state': _get_default_state,
|
||||
'priority': crm.AVAILABLE_PRIORITIES[2][0],
|
||||
'state': _get_default_state,
|
||||
'user_id': lambda self,cr,uid,ctx: uid,
|
||||
'active': 1,
|
||||
}
|
||||
|
||||
def case_close(self, cr, uid, ids, *args):
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(crm_phonecall, self).create(cr, uid, vals, context)
|
||||
for phonecall in self.browse(cr, uid, [obj_id], context=context):
|
||||
if not phonecall.opportunity_id:
|
||||
self.case_open_send_note(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
"""Overrides close for crm_case for setting close date
|
||||
"""
|
||||
res = True
|
||||
@@ -96,22 +104,22 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
if phone.duration <=0:
|
||||
duration = datetime.now() - datetime.strptime(phone.date, '%Y-%m-%d %H:%M:%S')
|
||||
data.update({'duration': duration.seconds/float(60)})
|
||||
res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], args)
|
||||
res = super(crm_phonecall, self).case_close(cr, uid, [phone_id], context)
|
||||
self.write(cr, uid, [phone_id], data)
|
||||
return res
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Resets case as Todo
|
||||
"""
|
||||
res = super(crm_phonecall, self).case_reset(cr, uid, ids, args, 'crm.phonecall')
|
||||
res = super(crm_phonecall, self).case_reset(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'duration': 0.0, 'state':'open'})
|
||||
return res
|
||||
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""Overrides cancel for crm_case for setting Open Date
|
||||
"""
|
||||
res = super(crm_phonecall, self).case_open(cr, uid, ids, *args)
|
||||
res = super(crm_phonecall, self).case_open(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S')})
|
||||
return res
|
||||
|
||||
@@ -143,9 +151,7 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
'partner_mobile' : call.partner_mobile,
|
||||
'priority': call.priority,
|
||||
}
|
||||
|
||||
new_id = self.create(cr, uid, vals, context=context)
|
||||
self.case_open(cr, uid, [new_id])
|
||||
if action == 'log':
|
||||
self.case_close(cr, uid, [new_id])
|
||||
phonecall_dict[call.id] = new_id
|
||||
@@ -162,7 +168,9 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
return partner_id
|
||||
|
||||
def _call_set_partner(self, cr, uid, ids, partner_id, context=None):
|
||||
return self.write(cr, uid, ids, {'partner_id' : partner_id}, context=context)
|
||||
write_res = self.write(cr, uid, ids, {'partner_id' : partner_id}, context=context)
|
||||
self._call_set_partner_send_note(cr, uid, ids, context)
|
||||
return write_res
|
||||
|
||||
def _call_create_partner_address(self, cr, uid, phonecall, partner_id, context=None):
|
||||
address = self.pool.get('res.partner')
|
||||
@@ -231,7 +239,7 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
'section_id': call.section_id and call.section_id.id or False,
|
||||
'description': call.description or False,
|
||||
'priority': call.priority,
|
||||
'type': 'opportunity',
|
||||
'type': 'opportunity',
|
||||
'phone': call.partner_phone or False,
|
||||
'email_from': default_contact and default_contact.email,
|
||||
})
|
||||
@@ -243,7 +251,7 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
self.case_close(cr, uid, [call.id])
|
||||
opportunity.case_open(cr, uid, [opportunity_id])
|
||||
opportunity_dict[call.id] = opportunity_id
|
||||
return opportunity_dict
|
||||
return opportunity_dict
|
||||
|
||||
def action_make_meeting(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
@@ -289,6 +297,41 @@ class crm_phonecall(crm_base, osv.osv):
|
||||
}
|
||||
|
||||
return value
|
||||
|
||||
# ----------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# ----------------------------------------
|
||||
|
||||
def get_needaction_user_ids(self, cr, uid, ids, context=None):
|
||||
result = dict.fromkeys(ids)
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
result[obj.id] = []
|
||||
if (obj.state == 'draft' and obj.user_id):
|
||||
result[obj.id] = [obj.user_id.id]
|
||||
return result
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Phonecall'
|
||||
|
||||
def case_reset_send_note(self, cr, uid, ids, context=None):
|
||||
message = _('Phonecall has been <b>reset and set as open</b>.')
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
lead_obj = self.pool.get('crm.lead')
|
||||
for phonecall in self.browse(cr, uid, ids, context=context):
|
||||
phonecall.message_subscribe([phonecall.user_id.id], context=context)
|
||||
if phonecall.opportunity_id:
|
||||
lead = phonecall.opportunity_id
|
||||
message = _("Phonecall linked to the opportunity <em>%s</em> has been <b>created</b> and <b>scheduled</b> on <em>%s</em>.") % (lead.name, phonecall.date)
|
||||
else:
|
||||
message = _("Phonecall has been <b>created and opened</b>.")
|
||||
phonecall.message_append_note(body=message)
|
||||
return True
|
||||
|
||||
def _call_set_partner_send_note(self, cr, uid, ids, context=None):
|
||||
return self.message_append_note(cr, uid, ids, body=_("Partner has been <b>created</b>"), context=context)
|
||||
|
||||
|
||||
crm_phonecall()
|
||||
|
||||
|
||||
@@ -120,6 +120,7 @@
|
||||
states="cancel" type="object"
|
||||
icon="gtk-convert" />
|
||||
</group>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<menuitem icon="terp-partner" id="base.menu_base_partner" name="Sales" sequence="0"
|
||||
<menuitem icon="terp-partner" id="base.menu_base_partner" name="Sales" sequence="1"
|
||||
groups="base.group_sale_manager,base.group_sale_salesman"/>
|
||||
|
||||
<menuitem id="base.menu_crm_config_lead" name="Leads & Opportunities"
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
# Czech translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 07:00+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: crm_caldav
|
||||
#: model:ir.actions.act_window,name:crm_caldav.action_caldav_browse
|
||||
msgid "Caldav Browse"
|
||||
msgstr "Procházet Caldav"
|
||||
|
||||
#. module: crm_caldav
|
||||
#: model:ir.ui.menu,name:crm_caldav.menu_caldav_browse
|
||||
msgid "Synchronize This Calendar"
|
||||
msgstr "Synchronizovat tento kalendář"
|
||||
|
||||
#. module: crm_caldav
|
||||
#: model:ir.model,name:crm_caldav.model_crm_meeting
|
||||
msgid "Meeting"
|
||||
msgstr "Setkání"
|
||||
@@ -95,6 +95,9 @@ class crm_claim(crm.crm_case, osv.osv):
|
||||
'active': lambda *a: 1
|
||||
}
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Claim'
|
||||
|
||||
def onchange_partner_id(self, cr, uid, ids, part, email=False):
|
||||
"""This function returns value of partner address based on partner
|
||||
:param part: Partner's id
|
||||
|
||||
@@ -125,7 +125,7 @@ class crm_lead_forward_to_partner(osv.osv_memory):
|
||||
if email_to not in new_cc:
|
||||
new_cc.append(to)
|
||||
update_vals = {'email_cc' : ', '.join(new_cc) }
|
||||
lead.write(cr, uid, case.id, update_vals, context=context)
|
||||
lead.write(cr, uid, [case.id], update_vals, context=context)
|
||||
return res
|
||||
|
||||
def _get_info_body_text(self, cr, uid, lead, context=None):
|
||||
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-06 04:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: crm_todo
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
# Czech translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 05:28+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: field:decimal.precision,digits:0
|
||||
msgid "Digits"
|
||||
msgstr "Číslice"
|
||||
|
||||
#. 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"
|
||||
msgstr "Desetinná přesnost"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: field:decimal.precision,name:0
|
||||
msgid "Usage"
|
||||
msgstr "Použití"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: sql_constraint:decimal.precision:0
|
||||
msgid "Only one value can be defined for each given usage!"
|
||||
msgstr "Pro každé dané použití může být zadána jen jedna hodnota."
|
||||
|
||||
#. module: decimal_precision
|
||||
#: view:decimal.precision:0
|
||||
msgid "Decimal Precision"
|
||||
msgstr "Desetinná přesnost"
|
||||
|
||||
#. module: decimal_precision
|
||||
#: model:ir.model,name:decimal_precision.model_decimal_precision
|
||||
msgid "decimal.precision"
|
||||
msgstr "decimal.precision"
|
||||
+17
-11
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-09-05 17:16+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:26+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:48+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: document
|
||||
@@ -152,7 +152,7 @@ msgstr "Název adresáře musí být unikátní!"
|
||||
#. module: document
|
||||
#: view:ir.attachment:0
|
||||
msgid "Filter on my documents"
|
||||
msgstr ""
|
||||
msgstr "Filtr nad mými dokumenty"
|
||||
|
||||
#. module: document
|
||||
#: field:ir.attachment,index_content:0
|
||||
@@ -171,7 +171,7 @@ msgstr ""
|
||||
#. module: document
|
||||
#: model:ir.actions.todo.category,name:document.category_knowledge_mgmt_config
|
||||
msgid "Knowledge Management"
|
||||
msgstr ""
|
||||
msgstr "Správa znalostí"
|
||||
|
||||
#. module: document
|
||||
#: view:document.directory:0
|
||||
@@ -385,6 +385,8 @@ msgid ""
|
||||
"When executing this wizard, it will configure your directories automatically "
|
||||
"according to modules installed."
|
||||
msgstr ""
|
||||
"Když je tento průvodce vykonán, nastaví automaticky vaše adresáře podle "
|
||||
"instalovaných modulů."
|
||||
|
||||
#. module: document
|
||||
#: field:document.directory.content,directory_id:0
|
||||
@@ -520,7 +522,7 @@ msgstr ""
|
||||
#: view:document.configuration:0
|
||||
#: model:ir.actions.act_window,name:document.action_config_auto_directory
|
||||
msgid "Configure Directories"
|
||||
msgstr ""
|
||||
msgstr "Nastavit adresáře"
|
||||
|
||||
#. module: document
|
||||
#: field:document.directory.content,include_name:0
|
||||
@@ -674,7 +676,7 @@ msgstr "Pouze ke čtení"
|
||||
#. module: document
|
||||
#: model:ir.actions.act_window,name:document.action_document_directory_form
|
||||
msgid "Document Directory"
|
||||
msgstr ""
|
||||
msgstr "Adresář dokumentů"
|
||||
|
||||
#. module: document
|
||||
#: sql_constraint:document.directory:0
|
||||
@@ -700,6 +702,10 @@ msgid ""
|
||||
"attached to the document, or to print and download any report. This tool "
|
||||
"will create directories automatically according to modules installed."
|
||||
msgstr ""
|
||||
"Systém správy dokumentů OpenERP podporuje mapování virtuálních složek s "
|
||||
"dokumenty. Virtuální složka dokumentů může být použita pro správu souborů "
|
||||
"přiložených k dokumentům nebo k vytištění a stažení jakéhokoliv výkazu. "
|
||||
"Tento nástroj vytvoří automaticky adresář podle instalovaných modulů."
|
||||
|
||||
#. module: document
|
||||
#: view:board.board:0
|
||||
@@ -793,7 +799,7 @@ msgstr "Měsíc"
|
||||
#. module: document
|
||||
#: view:report.document.user:0
|
||||
msgid "This Months Files"
|
||||
msgstr ""
|
||||
msgstr "Soubory za tyto měsíce"
|
||||
|
||||
#. module: document
|
||||
#: model:ir.ui.menu,name:document.menu_reporting
|
||||
@@ -859,7 +865,7 @@ msgstr "Soubory podle partnerů"
|
||||
#. module: document
|
||||
#: view:ir.attachment:0
|
||||
msgid "Indexed Content - experimental"
|
||||
msgstr ""
|
||||
msgstr "Indexovaný obsah - pokusné"
|
||||
|
||||
#. module: document
|
||||
#: view:report.document.user:0
|
||||
@@ -874,7 +880,7 @@ msgstr "Poznámky"
|
||||
#. module: document
|
||||
#: model:ir.model,name:document.model_document_configuration
|
||||
msgid "Directory Configuration"
|
||||
msgstr ""
|
||||
msgstr "Nastavení adresáře"
|
||||
|
||||
#. module: document
|
||||
#: help:document.directory,type:0
|
||||
@@ -977,7 +983,7 @@ msgstr "MIME typ"
|
||||
#. module: document
|
||||
#: view:report.document.user:0
|
||||
msgid "All Months Files"
|
||||
msgstr ""
|
||||
msgstr "Soubory za všechny měsíce"
|
||||
|
||||
#. module: document
|
||||
#: field:document.directory.content,name:0
|
||||
|
||||
@@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-05-09 08:15+0000\n"
|
||||
"Last-Translator: Jan B. Krejčí <Unknown>\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:13+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 07:06+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.model,name:document_ftp.model_document_ftp_configuration
|
||||
@@ -31,6 +31,10 @@ msgid ""
|
||||
"format is HOST:PORT and the default host (localhost) is only suitable for "
|
||||
"access from the server machine itself.."
|
||||
msgstr ""
|
||||
"Značí adresu sítě, na které by měl být pro koncové uživatel dostupný váš "
|
||||
"OpenERP server. To závisí na vaší síťové topologii a nastavení a ovlivní to "
|
||||
"pouze odkazy zobrazené uživatelům. Formát je POĆÍTAČ:PORT a výchozí počítač "
|
||||
"(localhost) je vhodný pouze pro přístup ze samotného serveru."
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.url,name:document_ftp.action_document_browse
|
||||
@@ -67,6 +71,8 @@ msgstr "_Procházet"
|
||||
msgid ""
|
||||
"Server address or IP and port to which users should connect to for DMS access"
|
||||
msgstr ""
|
||||
"Adresa serveru nebo IP a port, ke kterému by se měli uživatelé připojit pro "
|
||||
"přístup DMS"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.ui.menu,name:document_ftp.menu_document_browse
|
||||
@@ -91,27 +97,27 @@ msgstr "název"
|
||||
#. module: document_ftp
|
||||
#: model:ir.model,name:document_ftp.model_document_ftp_browse
|
||||
msgid "Document FTP Browse"
|
||||
msgstr ""
|
||||
msgstr "Procházení FTP dokumentů"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "Knowledge Application Configuration"
|
||||
msgstr ""
|
||||
msgstr "Nastavení aplikace znalostí"
|
||||
|
||||
#. module: document_ftp
|
||||
#: model:ir.actions.act_window,name:document_ftp.action_ftp_browse
|
||||
msgid "Document Browse"
|
||||
msgstr ""
|
||||
msgstr "Procházení dokumentů"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.browse:0
|
||||
msgid "Browse Document"
|
||||
msgstr ""
|
||||
msgstr "Procházet dokument"
|
||||
|
||||
#. module: document_ftp
|
||||
#: view:document.ftp.configuration:0
|
||||
msgid "res_config_contents"
|
||||
msgstr ""
|
||||
msgstr "res_config_contents"
|
||||
|
||||
#~ msgid "Integrated FTP Server with Document Management System"
|
||||
#~ msgstr "FTP server integrovaný s Document Management Systémem"
|
||||
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-06 04:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: edi
|
||||
|
||||
@@ -387,6 +387,7 @@
|
||||
</group>
|
||||
</page>
|
||||
<page string="Emails" groups="base.group_extended">
|
||||
<!--
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="tree">
|
||||
<tree string="History">
|
||||
<field name="display_text" string="History Information"/>
|
||||
@@ -398,6 +399,7 @@
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
</field>
|
||||
-->
|
||||
<button string="Send New Email"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" context= '{"default_email_to":email}' type="action"/>
|
||||
|
||||
@@ -105,6 +105,7 @@
|
||||
action="action_email_server_tree"
|
||||
name="Incoming Mail Servers"
|
||||
sequence="14"
|
||||
groups="base.group_no_one"
|
||||
/>
|
||||
|
||||
<record model="ir.ui.view" id="email_message_tree_view">
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-08 05:43+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-09 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: fetchmail_crm_claim
|
||||
#: model:ir.actions.act_window,help:fetchmail_crm_claim.action_create_crm_claims_from_email_account
|
||||
msgid ""
|
||||
"You can connect your email account with claims in OpenERP. A new email sent "
|
||||
"to this account (example: support@mycompany.com) will automatically create a "
|
||||
"claim for the followup in OpenERP. The whole communication by email will be "
|
||||
"attached to the claim automatically to keep track of the history."
|
||||
msgstr ""
|
||||
"あなたのEメールアカウントをOpenERPのクレームに関連づけることはできません。このアカウントに送られた新しいEメールはOpenERPのフォローアップの"
|
||||
"ためのクレームを自動的に作成します。Eメールによる全てのコミュニケーションは、履歴を記録するために、自動的にクレームに関連づけられます。"
|
||||
|
||||
#. module: fetchmail_crm_claim
|
||||
#: model:ir.actions.act_window,name:fetchmail_crm_claim.action_create_crm_claims_from_email_account
|
||||
msgid "Create Claims from Email Account"
|
||||
msgstr "Eメールアカウントからクレームを作成"
|
||||
@@ -1,41 +0,0 @@
|
||||
#-*- coding:utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Management Solution
|
||||
# Copyright (C) 2011 OpenERP S.A. (<http://www.openerp.com>). All Rights Reserved
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
{
|
||||
"name" : "eMail Gateway for Applicants",
|
||||
"version" : "1.0",
|
||||
"depends" : ["fetchmail", "hr_recruitment"],
|
||||
"author" : "OpenERP SA",
|
||||
"category": "Hidden",
|
||||
"description": """
|
||||
""",
|
||||
'website': 'http://www.openerp.com',
|
||||
'init_xml': [],
|
||||
'update_xml': [
|
||||
"installer.xml",
|
||||
],
|
||||
'demo_xml': [
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': True,
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -1,35 +0,0 @@
|
||||
# German translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-02-09 15:13+0000\n"
|
||||
"Last-Translator: Ferdinand @ Camptocamp <Unknown>\n"
|
||||
"Language-Team: German <de@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-10 04:50+0000\n"
|
||||
"X-Generator: Launchpad (build 14771)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
"Sie können Bewerbungen die auf diesem Konto (job@your.company.com) eingehen "
|
||||
"automatisch mit Bewerbungen in OpenERP verbinden. Die Anhänge (zB CV) werden "
|
||||
"automatisch im Dokumentenmanagement von OpenERP gespeichert und indiziert."
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr "Erzeuge Bewerbungen von diesem EMail Konto"
|
||||
@@ -1,37 +0,0 @@
|
||||
# Spanish (Costa Rica) translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-02-15 22:01+0000\n"
|
||||
"Last-Translator: Freddy Gonzalez <freddy.gonzalez@clearcorp.co.cr>\n"
|
||||
"Language-Team: Spanish (Costa Rica) <es_CR@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-16 05:07+0000\n"
|
||||
"X-Generator: Launchpad (build 14781)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
"Puede sincronizar la cuenta de correo electrónico de trabajo (por ejemplo, "
|
||||
"job@yourcompany.com) con OpenERP para que los nuevos solicitantes se crean "
|
||||
"automáticamente en OpenERP para el seguimiento del proceso de contratación. "
|
||||
"Los archivos adjuntos se almacenan automáticamente en el DMS de OpenERP para "
|
||||
"que usted obtenga una indexación de todos los CV recibidos."
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr "Crear solicitantes de la cuenta de correo electrónico"
|
||||
@@ -1,27 +0,0 @@
|
||||
# Translation of OpenERP Server.
|
||||
# This file contains the translation of the following modules:
|
||||
# * fetchmail_hr_recruitment
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.1rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-02-08 00:36+0000\n"
|
||||
"Last-Translator: <>\n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: \n"
|
||||
"Plural-Forms: \n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "You can synchronize the job email account (e.g. job@yourcompany.com) with OpenERP so that new applicants are created automatically in OpenERP for the followup of the recruitment process. Attachments are automatically stored in the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr ""
|
||||
|
||||
@@ -1,32 +0,0 @@
|
||||
# French translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-03-05 21:49+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: French <fr@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-03-06 04:48+0000\n"
|
||||
"X-Generator: Launchpad (build 14900)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr ""
|
||||
@@ -1,32 +0,0 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-01 05:45+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-02 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 15032)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr "Eメールアカウントから応募者を作成"
|
||||
@@ -1,37 +0,0 @@
|
||||
# Dutch translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-02-13 14:18+0000\n"
|
||||
"Last-Translator: Erwin <Unknown>\n"
|
||||
"Language-Team: Dutch <nl@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-14 05:46+0000\n"
|
||||
"X-Generator: Launchpad (build 14781)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
"Het is mogelijk het vacature e-mail account (bijvoorbeeld: "
|
||||
"vacature@mijnbedrijf.nl) te synchroniseren met OpenERP zo dat nieuwe "
|
||||
"kandidaten automatisch worden aangemaakt in OpenERP voor het vervolgproces "
|
||||
"van de wervingsproces. Bijlagen worden automatisch opgeslagen in de DMS van "
|
||||
"OpenERP zo dat alle ontvangen CV's automatisch worden geïndexeerd."
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr "Maak kandidaten van een E-mail"
|
||||
@@ -1,32 +0,0 @@
|
||||
# Portuguese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-02-29 22:48+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-03-02 04:36+0000\n"
|
||||
"X-Generator: Launchpad (build 14886)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr ""
|
||||
@@ -1,36 +0,0 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-03-19 11:54+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-03-20 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 14969)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
"Možete sinhronizovati svoj radni email nalog (npr:job@yourcompany.com) sa "
|
||||
"OpenERP-om, tako da se novi kandidati prave automatski u OpenERP-u za "
|
||||
"nstavak procesa zapošljavanja. Vezane stavke su automatski sačuvane u DMS-u "
|
||||
"OpenERP-a, tako da imate indeksaciju svih primljenih CV-a."
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr "Napravi kandidate preko email naloga"
|
||||
@@ -1,35 +0,0 @@
|
||||
# Chinese (Simplified) translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-02-16 12:51+0000\n"
|
||||
"Last-Translator: Jeff Wang <wjfonhand@hotmail.com>\n"
|
||||
"Language-Team: Chinese (Simplified) <zh_CN@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-17 05:01+0000\n"
|
||||
"X-Generator: Launchpad (build 14814)\n"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,help:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid ""
|
||||
"You can synchronize the job email account (e.g. job@yourcompany.com) with "
|
||||
"OpenERP so that new applicants are created automatically in OpenERP for the "
|
||||
"followup of the recruitment process. Attachments are automatically stored in "
|
||||
"the DMS of OpenERP so that you get an indexation of all the CVs received."
|
||||
msgstr ""
|
||||
"你可以让这个招聘邮件帐号(例如 "
|
||||
"job@yourcompany.com)与OpenERP同步。这样用于追踪后续流程的新应聘者就会在OpenERP中自动创建。附件会自动存在文档管理系统中,"
|
||||
"这样你就有了所有收到过的简历的一个索引。"
|
||||
|
||||
#. module: fetchmail_hr_recruitment
|
||||
#: model:ir.actions.act_window,name:fetchmail_hr_recruitment.action_link_applicant_to_email_account
|
||||
msgid "Create Applicants from Email Account"
|
||||
msgstr "从邮件帐号创建应聘者"
|
||||
@@ -1,19 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record model="ir.actions.act_window" id="action_link_applicant_to_email_account">
|
||||
<field name="name">Create Applicants from Email Account</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">fetchmail.server</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="context" eval="{'default_name': 'Recruitment Applicants', 'default_object_id': ref('hr_recruitment.model_hr_applicant')}"/>
|
||||
<field name="help">You can synchronize the job email account (e.g. job@yourcompany.com) with OpenERP so that new applicants are created automatically in OpenERP for the followup of the recruitment process. Attachments are automatically stored in the DMS of OpenERP so that you get an indexation of all the CVs received.</field>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.todo" id="config_wizard_action_link_applicant_to_email_account">
|
||||
<field name="action_id" ref="action_link_applicant_to_email_account" />
|
||||
<field name="category_id" ref="hr.category_hr_management_config" />
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -14,7 +14,7 @@ msgstr ""
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-06 04:37+0000\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: google_base_account
|
||||
|
||||
@@ -24,5 +24,6 @@ import hr
|
||||
|
||||
import report
|
||||
import wizard
|
||||
import res_config
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -50,6 +50,7 @@ You can manage:
|
||||
'hr_installer.xml',
|
||||
'hr_data.xml',
|
||||
'hr_board.xml',
|
||||
'res_config_view.xml',
|
||||
],
|
||||
'demo_xml': [
|
||||
'hr_demo.xml',
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
<field name="name">Minh Tran</field>
|
||||
<field name="user_id" ref="base.user_mit"/>
|
||||
<field name="department_id" ref="dep_rd"/>
|
||||
<field name="parent_id" ref="employee_al"/>
|
||||
<field name="job_id" ref="hr.job_developer"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -202,6 +203,7 @@
|
||||
<field name="name">Nicolas Vanhoren</field>
|
||||
<field name="user_id" ref="base.user_niv"/>
|
||||
<field name="department_id" ref="dep_rd"/>
|
||||
<field name="parent_id" ref="employee_al"/>
|
||||
<field name="job_id" ref="hr.job_developer"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -214,6 +216,7 @@
|
||||
<field name="name">Stéphane Wirtel</field>
|
||||
<field name="user_id" ref="base.user_stw"/>
|
||||
<field name="department_id" ref="dep_rd"/>
|
||||
<field name="parent_id" ref="employee_al"/>
|
||||
<field name="job_id" ref="hr.job_developer"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -226,6 +229,7 @@
|
||||
<field name="name">Christophe Simonis</field>
|
||||
<field name="user_id" ref="base.user_chs"/>
|
||||
<field name="department_id" ref="dep_rd"/>
|
||||
<field name="parent_id" ref="employee_al"/>
|
||||
<field name="job_id" ref="hr.job_developer"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -238,6 +242,7 @@
|
||||
<field name="name">Quentin De Paoli</field>
|
||||
<field name="user_id" ref="base.user_qdp"/>
|
||||
<field name="department_id" ref="dep_rd"/>
|
||||
<field name="parent_id" ref="employee_al"/>
|
||||
<field name="job_id" ref="hr.job_developer"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -249,6 +254,7 @@
|
||||
<field name="name">Fabien Meghazi</field>
|
||||
<field name="user_id" ref="base.user_fme"/>
|
||||
<field name="department_id" ref="dep_rd"/>
|
||||
<field name="parent_id" ref="employee_al"/>
|
||||
<field name="job_id" ref="hr.job_developer"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -260,6 +266,7 @@
|
||||
<field name="name">Francois Pietquin</field>
|
||||
<field name="user_id" ref="base.user_fpi"/>
|
||||
<field name="department_id" ref="dep_ps"/>
|
||||
<field name="parent_id" ref="employee_fp"/>
|
||||
<field name="job_id" ref="hr.job_consultant"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -272,6 +279,7 @@
|
||||
<field name="name">Julien Thewys</field>
|
||||
<field name="user_id" ref="base.user_jth"/>
|
||||
<field name="department_id" ref="dep_ps"/>
|
||||
<field name="parent_id" ref="employee_fp"/>
|
||||
<field name="job_id" ref="hr.job_consultant"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
@@ -284,6 +292,7 @@
|
||||
<field name="name">Nicoleta Gherlea</field>
|
||||
<field name="user_id" ref="base.user_ngh"/>
|
||||
<field name="department_id" ref="dep_sales"/>
|
||||
<field name="parent_id" ref="employee_fp"/>
|
||||
<field name="job_id" ref="hr.job_marketing"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Auderghem</field>
|
||||
@@ -296,6 +305,7 @@
|
||||
<field name="name">Valérie Descamps</field>
|
||||
<field name="user_id" ref="base.user_vad"/>
|
||||
<field name="department_id" ref="dep_administration"/>
|
||||
<field name="parent_id" ref="employee_fp"/>
|
||||
<field name="job_id" ref="hr.job_hrm"/>
|
||||
<field name="category_ids" eval="[(6, 0, [ref('category_employee')])]"/>
|
||||
<field name="work_location">Grand-Rosière</field>
|
||||
|
||||
@@ -1,28 +1,11 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
|
||||
<record id="category_hr_management_config" model="ir.actions.todo.category">
|
||||
<field name="name">HR Management</field>
|
||||
<field name="sequence">5</field>
|
||||
</record>
|
||||
|
||||
<!-- employee configure action -->
|
||||
<record id="action_create_hr_employee_installer" model="ir.actions.act_window">
|
||||
<field name="name">Create your Employees</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
<field name="res_model">hr.employee</field>
|
||||
<field name="view_type">form</field>
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="view_id" eval="False"/>
|
||||
<field name="help">Create employees form and link them to an OpenERP user if you want them to access this instance. Categories can be set on employees to perform massive operations on all the employees of the same category, i.e. allocating holidays.</field>
|
||||
</record>
|
||||
|
||||
<record id="config_wizard_action_create_hr_employee_installer" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_create_hr_employee_installer"/>
|
||||
<field name="category_id" ref="category_hr_management_config"/>
|
||||
</record>
|
||||
|
||||
<record model="ir.actions.act_window" id="view_department_form_installer">
|
||||
<field name="name">Create Your Departments</field>
|
||||
<field name="type">ir.actions.act_window</field>
|
||||
@@ -33,11 +16,5 @@
|
||||
<field name="help">Your departments structure is used to manage all documents related to employees by departments: expenses and timesheet validation, leaves management, recruitments, etc.</field>
|
||||
</record>
|
||||
|
||||
<record id="view_department_form_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="view_department_form_installer"/>
|
||||
<field name="category_id" ref="hr.category_hr_management_config"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="groups_id" eval="[(6, 0, [ref('base.group_extended')])]" />
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
+10
-10
@@ -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: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2011-09-16 16:27+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:28+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\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: 2012-02-09 06:42+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: hr
|
||||
@@ -57,7 +57,7 @@ msgstr "Seskupit podle..."
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.view_department_form_installer
|
||||
msgid "Create Your Departments"
|
||||
msgstr ""
|
||||
msgstr "Vytvořit vaše oddělení"
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,help:hr.action_hr_job
|
||||
@@ -109,7 +109,7 @@ msgstr "Očekáván v náboru"
|
||||
#. module: hr
|
||||
#: model:ir.actions.todo.category,name:hr.category_hr_management_config
|
||||
msgid "HR Management"
|
||||
msgstr ""
|
||||
msgstr "Správa lidských zdrojů"
|
||||
|
||||
#. module: hr
|
||||
#: help:hr.employee,partner_id:0
|
||||
@@ -162,7 +162,7 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: field:hr.employee,color:0
|
||||
msgid "Color Index"
|
||||
msgstr ""
|
||||
msgstr "Index barvy"
|
||||
|
||||
#. module: hr
|
||||
#: model:process.transition,note:hr.process_transition_employeeuser0
|
||||
@@ -191,12 +191,12 @@ msgstr "Žena"
|
||||
#. module: hr
|
||||
#: help:hr.job,expected_employees:0
|
||||
msgid "Required number of employees in total for that job."
|
||||
msgstr ""
|
||||
msgstr "Celkový požadovaný počet zaměstnanců pro úlohu."
|
||||
|
||||
#. module: hr
|
||||
#: model:ir.ui.menu,name:hr.menu_open_view_attendance_reason_new_config
|
||||
msgid "Attendance"
|
||||
msgstr ""
|
||||
msgstr "Docházka"
|
||||
|
||||
#. module: hr
|
||||
#: view:hr.employee:0
|
||||
@@ -349,7 +349,7 @@ msgstr "hr.department"
|
||||
#. module: hr
|
||||
#: model:ir.actions.act_window,name:hr.action_create_hr_employee_installer
|
||||
msgid "Create your Employees"
|
||||
msgstr ""
|
||||
msgstr "Vytvořit vaše zaměstnance"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee.category,name:0
|
||||
@@ -431,7 +431,7 @@ msgstr "neznámé"
|
||||
#. module: hr
|
||||
#: help:hr.job,no_of_employee:0
|
||||
msgid "Number of employees with that job."
|
||||
msgstr ""
|
||||
msgstr "Počet zaměstnanců v této úlože"
|
||||
|
||||
#. module: hr
|
||||
#: field:hr.employee,ssnid:0
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Business Applications
|
||||
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import fields, osv
|
||||
|
||||
class hr_config_settings(osv.osv_memory):
|
||||
_name = 'hr.config.settings'
|
||||
_inherit = 'res.config.settings'
|
||||
|
||||
_columns = {
|
||||
'module_hr_timesheet_sheet': fields.boolean('Manage Timesheets and Attendances',
|
||||
help ="""This installs the module hr_timesheet_sheet."""),
|
||||
'module_hr_holidays': fields.boolean('Manage Holidays',
|
||||
help ="""This installs the module hr_holidays."""),
|
||||
'module_hr_expense': fields.boolean('Manage Employees Expenses',
|
||||
help ="""This installs the module hr_expense."""),
|
||||
'module_hr_recruitment': fields.boolean('Manage Recruitment Process',
|
||||
help ="""This installs the module hr_recruitment."""),
|
||||
'module_hr_contract': fields.boolean('Manage Employees Contracts',
|
||||
help ="""This installs the module hr_contract."""),
|
||||
'module_hr_evaluation': fields.boolean('Manage Appraisals Process',
|
||||
help ="""This installs the module hr_evaluation."""),
|
||||
}
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
@@ -0,0 +1,74 @@
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<record id="open_payroll1_modules" model="ir.actions.act_window">
|
||||
<field name="name">Payroll</field>
|
||||
<field name="res_model">ir.module.module</field>
|
||||
<field name="view_mode">kanban,tree,form</field>
|
||||
<field name="domain">[('state','=','uninstalled'), ('name','ilike','payroll'), ('name','!=','hr_payroll_account')]</field>
|
||||
</record>
|
||||
|
||||
<record id="view_human_resources_configuration" model="ir.ui.view">
|
||||
<field name="name">hr settings</field>
|
||||
<field name="model">hr.config.settings</field>
|
||||
<field name="type">form</field>
|
||||
<field name="arch" type="xml">
|
||||
<form string ="HR Application">
|
||||
<separator string="Human Resources" colspan="4"/>
|
||||
<label string="Departments :"/>
|
||||
<label colspan="1"/>
|
||||
<group colspan="2">
|
||||
<button name="%(view_department_form_installer)d" string="Create Your Departments"
|
||||
type="action" icon="terp-personal+"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<label string="Employees :" />
|
||||
<label colspan="1"/>
|
||||
<group colspan="2">
|
||||
<button name="%(open_view_employee_list_my)d" string="Create Your Employees"
|
||||
type="action" icon="terp-personal"/>
|
||||
</group>
|
||||
<newline/>
|
||||
<field name="module_hr_timesheet_sheet"/>
|
||||
<newline/>
|
||||
<field name="module_hr_holidays"/>
|
||||
<newline/>
|
||||
<label string="Salary Rules :"/>
|
||||
<label colspan="1"/>
|
||||
<group colspan="2">
|
||||
<button string="Configure Your Salary Rules" icon="gtk-go-forward"
|
||||
name="%(open_payroll1_modules)d" type="action" />
|
||||
</group>
|
||||
|
||||
<separator string="Additional Features" colspan="4"/>
|
||||
<field name="module_hr_expense"/>
|
||||
<newline/>
|
||||
<field name="module_hr_recruitment"/>
|
||||
<newline/>
|
||||
<field name="module_hr_evaluation"/>
|
||||
<newline/>
|
||||
<field name="module_hr_contract"/>
|
||||
|
||||
<group name="config_timesheets" colspan="4"/>
|
||||
<group name="config_payroll" colspan="4"/>
|
||||
<group name="config_recruitment" colspan="4"/>
|
||||
|
||||
<label colspan="2"/>
|
||||
<button string="Cancel" icon="gtk-cancel" special="cancel"/>
|
||||
<button string="Apply" icon="gtk-apply" type="object" name="execute"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_human_resources_configuration" model="ir.actions.act_window">
|
||||
<field name="name">Configure Human Resources Application</field>
|
||||
<field name="res_model">hr.config.settings</field>
|
||||
<field name="view_id" ref="view_human_resources_configuration"/>
|
||||
<field name="view_mode">form</field>
|
||||
<field name="target">inline</field>
|
||||
</record>
|
||||
|
||||
<menuitem id="menu_human_resources_configuration" name="Human Resources" parent="base.menu_config" sequence="8" action="action_human_resources_configuration"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-09-16 09:10+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 04:58+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <openerp-i18n-czech@lists.launchpad.net >\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:45+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: czech\n"
|
||||
|
||||
#. module: hr_attendance
|
||||
@@ -197,7 +197,7 @@ msgstr "Vyhledávání v docházce"
|
||||
#. module: hr_attendance
|
||||
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_week
|
||||
msgid "Attendances By Week"
|
||||
msgstr ""
|
||||
msgstr "Docházka podle týdne"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: constraint:hr.attendance:0
|
||||
@@ -263,7 +263,7 @@ msgstr "Měsíc"
|
||||
#. module: hr_attendance
|
||||
#: field:hr.action.reason,action_type:0
|
||||
msgid "Action Type"
|
||||
msgstr ""
|
||||
msgstr "Typ akce"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: report:report.hr.timesheet.attendance.error:0
|
||||
@@ -275,7 +275,7 @@ msgstr ""
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance:0
|
||||
msgid "My Attendance"
|
||||
msgstr ""
|
||||
msgstr "Moje docházka"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: help:hr.attendance,action_desc:0
|
||||
@@ -312,7 +312,7 @@ msgstr "hr.sign.out.ask"
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.week:0
|
||||
msgid "Print Attendance Report Weekly"
|
||||
msgstr ""
|
||||
msgstr "Tisknout týdenní výkaz docházky"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: selection:hr.attendance.month,month:0
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openeobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-09-20 07:48+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 05:09+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <openerp-i18n-czech@lists.launchpad.net >\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:38+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: hr_contract
|
||||
@@ -25,7 +25,7 @@ msgstr "Mzda"
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
msgstr "Informace"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
@@ -87,7 +87,7 @@ msgstr "Hledat smlouvu"
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Contracts in progress"
|
||||
msgstr ""
|
||||
msgstr "Smlouvy v běhu"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,vehicle_distance:0
|
||||
@@ -111,7 +111,7 @@ msgstr "Osobní informace"
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Contracts whose end date already passed"
|
||||
msgstr ""
|
||||
msgstr "Smlouvy jejichž datum ukončení již uplynul"
|
||||
|
||||
#. module: hr_contract
|
||||
#: help:hr.employee,contract_id:0
|
||||
@@ -163,7 +163,7 @@ msgstr "Datum ukončení"
|
||||
#. module: hr_contract
|
||||
#: help:hr.contract,wage:0
|
||||
msgid "Basic Salary of the employee"
|
||||
msgstr ""
|
||||
msgstr "Základní plat zaměstnance"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,name:0
|
||||
@@ -184,7 +184,7 @@ msgstr "Poznámky"
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,permit_no:0
|
||||
msgid "Work Permit No"
|
||||
msgstr ""
|
||||
msgstr "Č. pracovního povolení"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
@@ -217,7 +217,7 @@ msgstr "Pracovní informace"
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,visa_expire:0
|
||||
msgid "Visa Expire Date"
|
||||
msgstr ""
|
||||
msgstr "Datum vypršení víza"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,job_id:0
|
||||
@@ -242,7 +242,7 @@ msgstr "Chyba! Počáteční datum smlouvy musí být nižší než konečné da
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,visa_no:0
|
||||
msgid "Visa No"
|
||||
msgstr ""
|
||||
msgstr "Č. víza"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,place_of_birth:0
|
||||
|
||||
@@ -10,9 +10,21 @@
|
||||
<field name="help">You can define appraisal plans (ex: first interview after 6 months, then every year). Then, each employee can be linked to an appraisal plan so that OpenERP can automatically generate interview requests to managers and/or subordinates.</field>
|
||||
</record>
|
||||
|
||||
<record id="todo_evaluation_plans_installer" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_evaluation_plans_installer" />
|
||||
<field name="category_id" ref="hr.category_hr_management_config" />
|
||||
<!-- Hr Configuration wizard -->
|
||||
<record id="view_evaluation_config_wizard_inherit" model="ir.ui.view">
|
||||
<field name="name">hr settings for evaluations</field>
|
||||
<field name="model">hr.config.settings</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_human_resources_configuration"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="module_hr_evaluation" position="after">
|
||||
<group colspan="2">
|
||||
<button name="%(action_evaluation_plans_installer)d" string="Review Appraisal Plans"
|
||||
type="action" icon="terp-stock_align_left_24"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -27,10 +27,21 @@
|
||||
<field name="help">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.</field>
|
||||
</record>
|
||||
|
||||
<record id="product_normal_form_view_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="product_normal_form_view_installer"/>
|
||||
<field name="category_id" ref="hr.category_hr_management_config"/>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
<!-- Hr Configuration wizard -->
|
||||
<record id="view_expenseconfig_wizard_inherit" model="ir.ui.view">
|
||||
<field name="name">hr settings for expenses</field>
|
||||
<field name="model">hr.config.settings</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_human_resources_configuration"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="module_hr_expense" position="after">
|
||||
<group colspan="2">
|
||||
<button name="%(product_normal_form_view_installer)d" string="Review Expenses Products"
|
||||
type="action" icon="terp-accessories-archiver"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -93,6 +93,7 @@ class hr_holidays(osv.osv):
|
||||
_name = "hr.holidays"
|
||||
_description = "Leave"
|
||||
_order = "type desc, date_from asc"
|
||||
_inherit = ['ir.needaction_mixin', 'mail.thread']
|
||||
|
||||
def _employee_get(self, cr, uid, context=None):
|
||||
ids = self.pool.get('hr.employee').search(cr, uid, [('user_id', '=', uid)], context=context)
|
||||
@@ -150,7 +151,12 @@ class hr_holidays(osv.osv):
|
||||
('date_check2', "CHECK ( (type='add') OR (date_from <= date_to))", "The start date must be before the end date !"),
|
||||
('date_check', "CHECK ( number_of_days_temp >= 0 )", "The number of days must be greater than 0 !"),
|
||||
]
|
||||
|
||||
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(hr_holidays, self).create(cr, uid, vals, context=context)
|
||||
self.create_notificate(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
|
||||
def _create_resource_leave(self, cr, uid, leaves, context=None):
|
||||
'''This method will create entry in resource calendar leave object at the time of holidays validated '''
|
||||
obj_res_leave = self.pool.get('resource.calendar.leaves')
|
||||
@@ -250,6 +256,7 @@ class hr_holidays(osv.osv):
|
||||
obj_emp = self.pool.get('hr.employee')
|
||||
ids2 = obj_emp.search(cr, uid, [('user_id', '=', uid)])
|
||||
manager = ids2 and ids2[0] or False
|
||||
self.holidays_validate_notificate(cr, uid, ids, context=context)
|
||||
return self.write(cr, uid, ids, {'state':'validate1', 'manager_id': manager})
|
||||
|
||||
def holidays_validate2(self, cr, uid, ids, context=None):
|
||||
@@ -301,11 +308,13 @@ class hr_holidays(osv.osv):
|
||||
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'validate', cr)
|
||||
wf_service.trg_validate(uid, 'hr.holidays', leave_id, 'second_validate', cr)
|
||||
if holiday_ids:
|
||||
self.holidays_valid2_notificate(self, cr, uid, [holiday_ids], context=context)
|
||||
self.write(cr, uid, holiday_ids, {'manager_id2': manager})
|
||||
return True
|
||||
|
||||
def holidays_confirm(self, cr, uid, ids, context=None):
|
||||
self.check_holidays(cr, uid, ids, context=context)
|
||||
self.holidays_confirm_notificate(cr, uid, ids, context=context)
|
||||
return self.write(cr, uid, ids, {'state':'confirm'})
|
||||
|
||||
def holidays_refuse(self, cr, uid, ids, approval, context=None):
|
||||
@@ -316,6 +325,7 @@ class hr_holidays(osv.osv):
|
||||
self.write(cr, uid, ids, {'state': 'refuse', 'manager_id': manager})
|
||||
else:
|
||||
self.write(cr, uid, ids, {'state': 'refuse', 'manager_id2': manager})
|
||||
self.holidays_refuse_notificate(cr, uid, ids, approval, context=context)
|
||||
self.holidays_cancel(cr, uid, ids, context=context)
|
||||
return True
|
||||
|
||||
@@ -343,6 +353,69 @@ class hr_holidays(osv.osv):
|
||||
if leaves_rest < record.number_of_days_temp:
|
||||
raise osv.except_osv(_('Warning!'),_('You cannot validate leaves for employee %s: too few remaining days (%s).') % (record.employee_id.name, leaves_rest))
|
||||
return True
|
||||
|
||||
# -----------------------------
|
||||
# OpenChatter and notifications
|
||||
# -----------------------------
|
||||
|
||||
def get_needaction_user_ids(self, cr, uid, ids, context=None):
|
||||
result = dict.fromkeys(ids, [])
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if obj.state == 'confirm' and obj.employee_id.parent_id:
|
||||
result[obj.id] = [obj.employee_id.parent_id.user_id.id]
|
||||
elif obj.state == 'validate1':
|
||||
# get group_hr_manager: everyone will be warned of second validation
|
||||
res = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'base', 'group_hr_manager') or False
|
||||
obj_id = res and res[1] or False
|
||||
if obj_id:
|
||||
hr_manager_group = self.pool.get('res.groups').read(cr, uid, [obj_id], ['users'], context=context)[0]
|
||||
result[obj.id] = hr_manager_group['users']
|
||||
return result
|
||||
|
||||
def message_get_subscribers(self, cr, uid, ids, context=None):
|
||||
sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context);
|
||||
# add the employee and its manager if specified to the subscribed users
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if obj.employee_id.parent_id:
|
||||
sub_ids.append(obj.employee_id.parent_id.user_id.id)
|
||||
return self.pool.get('res.users').read(cr, uid, sub_ids, context=context)
|
||||
|
||||
def create_notificate(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
self.message_append_note(cr, uid, ids, _('System notification'),
|
||||
_("The %s request has been <b>created</b> and is waiting confirmation")
|
||||
% ('leave' if obj.type == 'remove' else 'allocation',), type='notification', context=context)
|
||||
return True
|
||||
|
||||
def holidays_confirm_notificate(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids):
|
||||
self.message_append_note(cr, uid, [obj.id], _('System notification'),
|
||||
_("The %s request has been <b>confirmed</b> and is waiting for validation by the manager.")
|
||||
% ('leave' if obj.type == 'remove' else 'allocation',), type='notification')
|
||||
|
||||
def holidays_validate_notificate(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids):
|
||||
if obj.holiday_status_id.double_validation:
|
||||
self.message_append_note(cr, uid, [obj.id], _('System notification'),
|
||||
_("The %s request has been <b>validated</b>. A second validation is necessary and is now pending.")
|
||||
% ('leave' if obj.type == 'remove' else 'allocation',), type='notification', context=context)
|
||||
else:
|
||||
self.message_append_note(cr, uid, [obj.id], _('System notification'),
|
||||
_("The %s request has been <b>validated</b>. The validation process is now over.")
|
||||
% ('leave' if obj.type == 'remove' else 'allocation',), type='notification', context=context)
|
||||
|
||||
def holidays_valid2_notificate(self, cr, uid, ids, context=None):
|
||||
for obj in self.browse(cr, uid, ids):
|
||||
self.message_append_note(cr, uid, [obj.id], _('System notification'),
|
||||
_("The %s request has been <b>double validated</b>. The validation process is now over.")
|
||||
% ('leave' if obj.type == 'remove' else 'allocation',), type='notification', context=context)
|
||||
|
||||
def holidays_refuse_notificate(self, cr, uid, ids, approval, context=None):
|
||||
for obj in self.browse(cr, uid, ids):
|
||||
self.message_append_note(cr, uid, [obj.id], _('System notification'),
|
||||
_("The %s request has been <b>refused</b>. The validation process is now over.")
|
||||
% ('leave' if obj.type == 'remove' else 'allocation',), type='notification', context=context)
|
||||
|
||||
hr_holidays()
|
||||
|
||||
class resource_calendar_leaves(osv.osv):
|
||||
|
||||
@@ -95,6 +95,7 @@
|
||||
<button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
|
||||
<button string="Set to Draft" name="set_to_draft" states="refuse,validate" type="object" icon="gtk-convert" groups="base.group_hr_user"/>
|
||||
</group>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -137,6 +138,7 @@
|
||||
<button string="Approved" name="second_validate" states="validate1" type="workflow" icon="gtk-apply" groups="base.group_hr_user"/>
|
||||
<button string="Set to Draft" name="set_to_draft" states="cancel,validate,refuse" type="object" icon="gtk-convert" groups="base.group_hr_user"/>
|
||||
</group>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</page>
|
||||
</notebook>
|
||||
</form>
|
||||
@@ -483,10 +485,21 @@
|
||||
<field name="help">You can assign remaining Legal Leaves for each employee, OpenERP will automatically create and validate allocation requests.</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_holidays_leaves_assign_form_view_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="hr_holidays_leaves_assign_legal"/>
|
||||
<field name="category_id" ref="hr.category_hr_management_config"/>
|
||||
</record>
|
||||
<!-- Hr Configuration wizard -->
|
||||
<record id="view_config_wizard_inherit" model="ir.ui.view">
|
||||
<field name="name">hr settings for holidays</field>
|
||||
<field name="model">hr.config.settings</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_human_resources_configuration"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="module_hr_holidays" position="after">
|
||||
<group colspan="2">
|
||||
<button name="%(hr_holidays.hr_holidays_leaves_assign_legal)d" string="Allocate Leaves"
|
||||
type="action" icon="gtk-apply"/>
|
||||
</group>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<!-- Hr employee inherit Legal Leaves -->
|
||||
|
||||
|
||||
@@ -24,4 +24,6 @@ import hr_payroll
|
||||
import report
|
||||
import wizard
|
||||
|
||||
import res_config
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -59,6 +59,7 @@ Generic Payroll system.
|
||||
'hr_payroll_data.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'wizard/hr_payroll_contribution_register_report.xml',
|
||||
'res_config_view.xml',
|
||||
],
|
||||
'test': [
|
||||
'test/payslip.yml',
|
||||
|
||||
@@ -0,0 +1,29 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Business Applications
|
||||
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class human_resources_configuration(osv.osv_memory):
|
||||
_inherit = 'hr.config.settings'
|
||||
_columns = {
|
||||
'module_hr_payroll_account': fields.boolean('Manage Account Payroll',
|
||||
help ="""This installs the module hr_payroll_account."""),
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_hr_config_inherit" model="ir.ui.view">
|
||||
<field name="name">hr settings for payroll</field>
|
||||
<field name="model">hr.config.settings</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_human_resources_configuration"/>
|
||||
<field name="arch" type="xml">
|
||||
<group name="config_payroll" position="after">
|
||||
<separator string="Account Payroll" colspan="4"/>
|
||||
<field name="module_hr_payroll_account"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -0,0 +1,140 @@
|
||||
# Japanese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-08 06:04+0000\n"
|
||||
"Last-Translator: Masaki Yamaya <Unknown>\n"
|
||||
"Language-Team: Japanese <ja@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-09 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,move_id:0
|
||||
msgid "Accounting Entry"
|
||||
msgstr ""
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.salary.rule,account_tax_id:0
|
||||
msgid "Tax Code"
|
||||
msgstr "税金コード"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,journal_id:0
|
||||
#: field:hr.payslip.run,journal_id:0
|
||||
msgid "Expense Journal"
|
||||
msgstr "経費仕訳"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:157
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:173
|
||||
#, python-format
|
||||
msgid "Adjustment Entry"
|
||||
msgstr "調整項目"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contract,analytic_account_id:0
|
||||
#: field:hr.salary.rule,analytic_account_id:0
|
||||
msgid "Analytic Account"
|
||||
msgstr "分析アカウント"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_salary_rule
|
||||
msgid "hr.salary.rule"
|
||||
msgstr "hr.salary.rule"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run
|
||||
msgid "Payslip Batches"
|
||||
msgstr "給与明細書の束"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.contract,journal_id:0
|
||||
msgid "Salary Journal"
|
||||
msgstr "給与仕訳"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip
|
||||
msgid "Pay Slip"
|
||||
msgstr "給与明細書"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: constraint:hr.payslip:0
|
||||
msgid "Payslip 'Date From' must be before 'Date To'."
|
||||
msgstr "給与明細書の「開始日付」は「終了日付」の前でなければいけません。"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: help:hr.payslip,period_id:0
|
||||
msgid "Keep empty to use the period of the validation(Payslip) date."
|
||||
msgstr "給与明細書の発効日の期間を使うために、空白にしておいてください。"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The Expense Journal \"%s\" has not properly configured the Debit Account!"
|
||||
msgstr "経費仕訳 %s は、借方勘定科目を正しく設定していません。"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The Expense Journal \"%s\" has not properly configured the Credit Account!"
|
||||
msgstr "経費仕訳 %s は与信アカウントを正しく設定してありません。"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.salary.rule,account_debit:0
|
||||
msgid "Debit Account"
|
||||
msgstr "借方勘定科目"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:102
|
||||
#, python-format
|
||||
msgid "Payslip of %s"
|
||||
msgstr "%s の給与明細書"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr "契約"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! contract start-date must be lower then contract end-date."
|
||||
msgstr "エラー。契約開始日は契約終了日の前でなければいけません。"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.payslip,period_id:0
|
||||
msgid "Force Period"
|
||||
msgstr "強制期間"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: field:hr.salary.rule,account_credit:0
|
||||
msgid "Credit Account"
|
||||
msgstr "貸方勘定科目"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees
|
||||
msgid "Generate payslips for all selected employees"
|
||||
msgstr "選択した全ての従業員の給与明細書を作成する。"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:155
|
||||
#: code:addons/hr_payroll_account/hr_payroll_account.py:171
|
||||
#, python-format
|
||||
msgid "Configuration Error!"
|
||||
msgstr "設定エラー"
|
||||
|
||||
#. module: hr_payroll_account
|
||||
#: view:hr.contract:0
|
||||
#: view:hr.salary.rule:0
|
||||
msgid "Accounting"
|
||||
msgstr "会計"
|
||||
@@ -22,5 +22,6 @@
|
||||
import hr_recruitment
|
||||
import report
|
||||
import wizard
|
||||
import res_config
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -49,7 +49,8 @@ system to store and search in your CV base.
|
||||
'security/ir.model.access.csv',
|
||||
'report/hr_recruitment_report_view.xml',
|
||||
'board_hr_recruitment_statistical_view.xml',
|
||||
'hr_recruitment_installer_view.xml'
|
||||
'hr_recruitment_installer_view.xml',
|
||||
'res_config_view.xml',
|
||||
],
|
||||
'init_xml': [
|
||||
'hr_recruitment_data.xml'
|
||||
|
||||
@@ -96,7 +96,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
_name = "hr.applicant"
|
||||
_description = "Applicant"
|
||||
_order = "id desc"
|
||||
_inherit = ['mail.thread']
|
||||
_inherit = ['ir.needaction_mixin', 'mail.thread']
|
||||
|
||||
def _compute_day(self, cr, uid, ids, fields, args, context=None):
|
||||
"""
|
||||
@@ -179,6 +179,7 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
'day_close': fields.function(_compute_day, string='Days to Close', \
|
||||
multi='day_close', type="float", store=True),
|
||||
'color': fields.integer('Color Index'),
|
||||
'emp_id': fields.many2one('hr.employee', 'employee'),
|
||||
'user_email': fields.related('user_id', 'user_email', type='char', string='User Email', readonly=True),
|
||||
}
|
||||
|
||||
@@ -389,36 +390,33 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
self.message_append_dict(cr, uid, ids, msg, context=context)
|
||||
return res
|
||||
|
||||
def case_open(self, cr, uid, ids, *args):
|
||||
def create(self, cr, uid, vals, context=None):
|
||||
obj_id = super(hr_applicant, self).create(cr, uid, vals, context=context)
|
||||
self.create_send_note(cr, uid, [obj_id], context=context)
|
||||
return obj_id
|
||||
|
||||
def case_open(self, cr, uid, ids, context=None):
|
||||
"""
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case's Ids
|
||||
@param *args: Give Tuple Value
|
||||
open Request of the applicant for the hr_recruitment
|
||||
"""
|
||||
res = super(hr_applicant, self).case_open(cr, uid, ids, *args)
|
||||
res = super(hr_applicant, self).case_open(cr, uid, ids, context)
|
||||
date = self.read(cr, uid, ids, ['date_open'])[0]
|
||||
if not date['date_open']:
|
||||
self.write(cr, uid, ids, {'date_open': time.strftime('%Y-%m-%d %H:%M:%S'),})
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _("The job request '%s' has been set 'in progress'.") % name
|
||||
self.log(cr, uid, id, message)
|
||||
return res
|
||||
|
||||
def case_close(self, cr, uid, ids, *args):
|
||||
res = super(hr_applicant, self).case_close(cr, uid, ids, *args)
|
||||
for (id, name) in self.name_get(cr, uid, ids):
|
||||
message = _("Applicant '%s' is being hired.") % name
|
||||
self.log(cr, uid, id, message)
|
||||
def case_close(self, cr, uid, ids, context=None):
|
||||
res = super(hr_applicant, self).case_close(cr, uid, ids, context)
|
||||
return res
|
||||
|
||||
def case_close_with_emp(self, cr, uid, ids, *args):
|
||||
def case_close_with_emp(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
hr_employee = self.pool.get('hr.employee')
|
||||
model_data = self.pool.get('ir.model.data')
|
||||
act_window = self.pool.get('ir.actions.act_window')
|
||||
emp_id = False
|
||||
for applicant in self.browse(cr, uid, ids):
|
||||
for applicant in self.browse(cr, uid, ids, context=context):
|
||||
address_id = False
|
||||
if applicant.partner_id:
|
||||
address_id = applicant.partner_id.address_get(['contact'])['contact']
|
||||
@@ -429,7 +427,8 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
'address_home_id': address_id,
|
||||
'department_id': applicant.department_id.id
|
||||
})
|
||||
self.case_close(cr, uid, [applicant.id], *args)
|
||||
self.write(cr, uid, [applicant.id], {'emp_id': emp_id}, context=context)
|
||||
self.case_close(cr, uid, [applicant.id], context)
|
||||
else:
|
||||
raise osv.except_osv(_('Warning!'),_('You must define Applied Job for this applicant.'))
|
||||
|
||||
@@ -440,16 +439,23 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
dict_act_window['view_mode'] = 'form,tree'
|
||||
return dict_act_window
|
||||
|
||||
def case_reset(self, cr, uid, ids, *args):
|
||||
"""Resets case as draft
|
||||
@param self: The object pointer
|
||||
@param cr: the current row, from the database cursor,
|
||||
@param uid: the current user’s ID for security checks,
|
||||
@param ids: List of case Ids
|
||||
@param *args: Tuple Value for additional Params
|
||||
def case_cancel(self, cr, uid, ids, context=None):
|
||||
"""Overrides cancel for crm_case for setting probability
|
||||
"""
|
||||
res = super(hr_applicant, self).case_cancel(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0})
|
||||
return res
|
||||
|
||||
res = super(hr_applicant, self).case_reset(cr, uid, ids, *args)
|
||||
def case_pending(self, cr, uid, ids, context=None):
|
||||
"""Marks case as pending"""
|
||||
res = super(hr_applicant, self).case_pending(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'probability' : 0.0})
|
||||
return res
|
||||
|
||||
def case_reset(self, cr, uid, ids, context=None):
|
||||
"""Resets case as draft
|
||||
"""
|
||||
res = super(hr_applicant, self).case_reset(cr, uid, ids, context)
|
||||
self.write(cr, uid, ids, {'date_open': False, 'date_closed': False})
|
||||
return res
|
||||
|
||||
@@ -471,10 +477,58 @@ class hr_applicant(crm.crm_case, osv.osv):
|
||||
def write(self, cr, uid, ids, vals, context=None):
|
||||
if 'stage_id' in vals and vals['stage_id']:
|
||||
stage = self.pool.get('hr.recruitment.stage').browse(cr, uid, vals['stage_id'], context=context)
|
||||
text = _("Changed Stage to: %s") % stage.name
|
||||
self.message_append(cr, uid, ids, text, body_text=text, context=context)
|
||||
self.message_append_note(cr, uid, ids, body=_("Stage changed to <b>%s</b>.") % stage.name, context=context)
|
||||
return super(hr_applicant,self).write(cr, uid, ids, vals, context=context)
|
||||
|
||||
# -------------------------------------------------------
|
||||
# OpenChatter methods and notifications
|
||||
# -------------------------------------------------------
|
||||
|
||||
def message_get_subscribers(self, cr, uid, ids, context=None):
|
||||
sub_ids = self.message_get_subscribers_ids(cr, uid, ids, context=context);
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if obj.user_id:
|
||||
sub_ids.append(obj.user_id.id)
|
||||
return self.pool.get('res.users').read(cr, uid, sub_ids, context=context)
|
||||
|
||||
def get_needaction_user_ids(self, cr, uid, ids, context=None):
|
||||
result = dict.fromkeys(ids, [])
|
||||
for obj in self.browse(cr, uid, ids, context=context):
|
||||
if obj.state == 'draft' and obj.user_id:
|
||||
result[obj.id] = [obj.user_id.id]
|
||||
return result
|
||||
|
||||
def case_get_note_msg_prefix(self, cr, uid, id, context=None):
|
||||
return 'Applicant'
|
||||
|
||||
def case_open_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Applicant has been set <b>in progress</b>.")
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def case_close_send_note(self, cr, uid, ids, context=None):
|
||||
if context is None:
|
||||
context = {}
|
||||
for applicant in self.browse(cr, uid, ids, context=context):
|
||||
if applicant.emp_id:
|
||||
message = _("Applicant has been <b>hired</b> and created as an employee.")
|
||||
self.message_append_note(cr, uid, [applicant.id], body=message, context=context)
|
||||
else:
|
||||
message = _("Applicant has been <b>hired</b>.")
|
||||
self.message_append_note(cr, uid, [applicant.id], body=message, context=context)
|
||||
return True
|
||||
|
||||
def case_cancel_send_note(self, cr, uid, ids, context=None):
|
||||
msg = 'Applicant <b>refused</b>.'
|
||||
return self.message_append_note(cr, uid, ids, body=msg, context=context)
|
||||
|
||||
def case_reset_send_note(self, cr, uid, ids, context=None):
|
||||
message =_("Applicant has been set as <b>new</b>.")
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
def create_send_note(self, cr, uid, ids, context=None):
|
||||
message = _("Applicant has been <b>created</b>.")
|
||||
return self.message_append_note(cr, uid, ids, body=message, context=context)
|
||||
|
||||
hr_applicant()
|
||||
|
||||
class hr_job(osv.osv):
|
||||
|
||||
@@ -9,11 +9,5 @@
|
||||
<field name="help">Check if the following stages are matching your recruitment process. Don't forget to specify the department if your recruitment process is different according to the job position.</field>
|
||||
<field name="view_id" ref="hr_recruitment.hr_recruitment_stage_tree"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_recruitment_stage_form_todo" model="ir.actions.todo">
|
||||
<field name="action_id" ref="hr_recruitment_stage_form_installer"/>
|
||||
<field name="category_id" ref="hr.category_hr_management_config"/>
|
||||
<field name="sequence">3</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -79,6 +79,9 @@
|
||||
<field name="partner_name"/>
|
||||
<field name="job_id" on_change="onchange_job(job_id)"/>
|
||||
<button name="action_makeMeeting" type="object" string="Meeting" icon="gtk-index"/>
|
||||
<button string="Send New Email"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" type="action"/>
|
||||
<newline/>
|
||||
<field name="department_id" widget="selection" on_change="onchange_department_id(department_id)"/>
|
||||
<group colspan="2" col="4">
|
||||
@@ -123,13 +126,6 @@
|
||||
<field name="source_id"/>
|
||||
<field name="reference"/>
|
||||
</group>
|
||||
<group col="2" colspan="2" groups="base.group_no_one">
|
||||
<separator colspan="2" string="Dates"/>
|
||||
<field name="create_date"/>
|
||||
<field name="write_date"/>
|
||||
<field name="date_closed"/>
|
||||
<field name="date_open"/>
|
||||
</group>
|
||||
<separator colspan="4" string="Status"/>
|
||||
<group col="8" colspan="4">
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,open,done" statusbar_colors='{"pending":"blue"}'/>
|
||||
@@ -140,33 +136,11 @@
|
||||
<button name="case_reset" string="Reset to New" states="done,cancel" type="object" icon="gtk-convert"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Communication & History" groups="base.group_extended">
|
||||
<group colspan="4">
|
||||
<field colspan="4" name="email_cc" string="Global CC" widget="char"/>
|
||||
</group>
|
||||
<field name="message_ids" colspan="4" nolabel="1" mode="tree" readonly="1">
|
||||
<tree string="History">
|
||||
<field name="display_text" string="History Information"/>
|
||||
<field name="email_from" invisible="1"/>
|
||||
<button
|
||||
string="Reply" attrs="{'invisible': [('email_from', '=', False)]}"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
context="{'mail.compose.message.mode':'reply', 'message_id':active_id}"
|
||||
icon="terp-mail-replied" type="action" />
|
||||
</tree>
|
||||
</field>
|
||||
<button string="Add Internal Note"
|
||||
name="%(crm.action_crm_add_note)d"
|
||||
context="{'model': 'crm.lead' }"
|
||||
icon="terp-document-new" type="action" />
|
||||
<button string="Send New Email"
|
||||
name="%(mail.action_email_compose_message_wizard)d"
|
||||
icon="terp-mail-message-new" type="action"/>
|
||||
</page>
|
||||
<page string="Notes">
|
||||
<field name="description" nolabel="1" colspan="4"/>
|
||||
</page>
|
||||
</notebook>
|
||||
<field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -0,0 +1,52 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Business Applications
|
||||
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class hr_applicant_settings(osv.osv_memory):
|
||||
_name = 'hr.config.settings'
|
||||
_inherit = ['hr.config.settings', 'fetchmail.config.settings']
|
||||
|
||||
_columns = {
|
||||
'module_document_ftp': fields.boolean('Index & Track Documents',
|
||||
help="""Manage your CV's and motivation letter related to all applicants.
|
||||
This installs the module document_ftp."""),
|
||||
'fetchmail_applicants': fields.boolean('Create Applicants from an Email Account',
|
||||
fetchmail_model='hr.applicant', fetchmail_name='Incoming HR Applications',
|
||||
help ="""Allow applicants to send their job application to an email address (jobs@mycompany.com),
|
||||
and create automatically application documents in the system."""),
|
||||
'applicants_server': fields.char('Server', size=256),
|
||||
'applicants_port': fields.integer('Port'),
|
||||
'applicants_type': fields.selection([
|
||||
('pop', 'POP Server'),
|
||||
('imap', 'IMAP Server'),
|
||||
('local', 'Local Server'),
|
||||
], 'Type'),
|
||||
'applicants_is_ssl': fields.boolean('SSL/TLS',
|
||||
help="Connections are encrypted with SSL/TLS through a dedicated port (default: IMAPS=993, POP=995)"),
|
||||
'applicants_user': fields.char('Username', size=256),
|
||||
'applicants_password': fields.char('Password', size=1024),
|
||||
}
|
||||
|
||||
_defaults = {
|
||||
'applicants_type': 'pop',
|
||||
}
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_hr_apll_config_settings" model="ir.ui.view">
|
||||
<field name="name">hr settings for recruitment</field>
|
||||
<field name="model">hr.config.settings</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_human_resources_configuration"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="module_hr_recruitment" position="after">
|
||||
<group colspan="2">
|
||||
<button name="%(hr_recruitment_stage_form_installer)d" string="Review Recruitment Stages"
|
||||
type="action" icon="terp-stage"/>
|
||||
</group>
|
||||
</field>
|
||||
<group name="config_recruitment" position="after">
|
||||
<separator string="Recruitment" colspan="4"/>
|
||||
<field name="module_document_ftp"/>
|
||||
<newline/>
|
||||
<field name="fetchmail_applicants"/>
|
||||
<group colspan="2" attrs="{'invisible': [('fetchmail_applicants','=',False)]}">
|
||||
<field name="applicants_server" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
|
||||
<field name="applicants_type" attrs="{'required': [('fetchmail_applicants','=',True)]}"
|
||||
on_change="onchange_fetchmail('applicants', applicants_type, applicants_is_ssl)"/>
|
||||
<field name="applicants_port" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
|
||||
<field name="applicants_is_ssl" attrs="{'required': [('fetchmail_applicants','=',True)]}"
|
||||
on_change="onchange_fetchmail('applicants', applicants_type, applicants_is_ssl)"/>
|
||||
<field name="applicants_user" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
|
||||
<field name="applicants_password" password="True" attrs="{'required': [('fetchmail_applicants','=',True)]}"/>
|
||||
</group>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -63,7 +63,7 @@ class hr_recruitment_partner_create(osv.osv_memory):
|
||||
'email': case.email_from
|
||||
}, context=context)
|
||||
|
||||
case_obj.write(cr, uid, case.id, {
|
||||
case_obj.write(cr, uid, [case.id], {
|
||||
'partner_id': partner_id,
|
||||
}, context=context)
|
||||
if data['close']:
|
||||
@@ -82,4 +82,4 @@ class hr_recruitment_partner_create(osv.osv_memory):
|
||||
|
||||
hr_recruitment_partner_create()
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -9,10 +9,5 @@
|
||||
<field name="view_mode">tree,form</field>
|
||||
<field name="help">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.</field>
|
||||
</record>
|
||||
|
||||
<record id="todo_define_analytic_structure" model="ir.actions.todo">
|
||||
<field name="action_id" ref="action_define_analytic_structure" />
|
||||
<field name="category_id" ref="hr.category_hr_management_config" />
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
|
||||
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-09-20 08:48+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 05:13+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <openerp-i18n-czech@lists.launchpad.net >\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:31+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: hr_timesheet
|
||||
@@ -107,7 +107,7 @@ msgstr "Pá"
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.employee,uom_id:0
|
||||
msgid "UoM"
|
||||
msgstr ""
|
||||
msgstr "MJ"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
@@ -152,7 +152,7 @@ msgstr "Jméno zaměstnance"
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.out.project,account_id:0
|
||||
msgid "Project / Analytic Account"
|
||||
msgstr ""
|
||||
msgstr "Projekt / Analytický účet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.model,name:hr_timesheet.model_hr_analytical_timesheet_users
|
||||
@@ -195,7 +195,7 @@ msgstr "Varování"
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytic.timesheet,partner_id:0
|
||||
msgid "Partner"
|
||||
msgstr ""
|
||||
msgstr "Partner"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
@@ -220,7 +220,7 @@ msgstr "Ne"
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytic.timesheet:0
|
||||
msgid "Analytic account"
|
||||
msgstr ""
|
||||
msgstr "Analytický účet"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.analytical.timesheet.employee:0
|
||||
@@ -263,7 +263,7 @@ msgstr "Kategorie"
|
||||
#. module: hr_timesheet
|
||||
#: constraint:hr.analytic.timesheet:0
|
||||
msgid "You cannot modify an entry in a Confirmed/Done timesheet !."
|
||||
msgstr ""
|
||||
msgstr "Nemůžete změnit údaj v Potvrzeném/Dokončeném časovém záznamu !."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: help:hr.employee,product_id:0
|
||||
@@ -314,7 +314,7 @@ msgstr "Popis práce"
|
||||
#. module: hr_timesheet
|
||||
#: view:account.analytic.account:0
|
||||
msgid "Invoice Analysis"
|
||||
msgstr ""
|
||||
msgstr "Analýza faktury"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.report.xml,name:hr_timesheet.report_user_timesheet
|
||||
@@ -330,7 +330,7 @@ msgstr "Přihlášení / Odhlášení podle projektu"
|
||||
#. module: hr_timesheet
|
||||
#: model:ir.actions.act_window,name:hr_timesheet.action_define_analytic_structure
|
||||
msgid "Define your Analytic Structure"
|
||||
msgstr ""
|
||||
msgstr "Určit vaši analytickou strukturu"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: view:hr.sign.in.project:0
|
||||
@@ -364,11 +364,14 @@ msgid ""
|
||||
"analyse costs and revenues. In OpenERP, analytic accounts are also used to "
|
||||
"track customer contracts."
|
||||
msgstr ""
|
||||
"Měli byste vytvořit strukturu analytických účtů závisejících na vašich "
|
||||
"potřebách k analýze cen a výnosů. Analytické účty jsou v OpenERP také "
|
||||
"použity pro sledování smluv zákazníků."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.analytic.timesheet,line_id:0
|
||||
msgid "Analytic Line"
|
||||
msgstr ""
|
||||
msgstr "Analytický řádek"
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: code:addons/hr_timesheet/report/user_timesheet.py:40
|
||||
@@ -515,6 +518,8 @@ msgid ""
|
||||
"Through this menu you can register and follow your workings hours by project "
|
||||
"every day."
|
||||
msgstr ""
|
||||
"Pomocí této nabídky můžete každý den registrovat a následovat vaše pracovní "
|
||||
"hodiny podle projektu."
|
||||
|
||||
#. module: hr_timesheet
|
||||
#: field:hr.sign.in.project,server_date:0
|
||||
|
||||
@@ -22,5 +22,6 @@
|
||||
import hr_timesheet_sheet
|
||||
import wizard
|
||||
import report
|
||||
import res_config
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
|
||||
@@ -61,7 +61,8 @@ The validation can be configured in the company:
|
||||
'report/hr_timesheet_report_view.xml',
|
||||
'report/timesheet_report_view.xml',
|
||||
'wizard/hr_timesheet_current_view.xml',
|
||||
'hr_timesheet_sheet_data.xml'
|
||||
'hr_timesheet_sheet_data.xml',
|
||||
'res_config_view.xml',
|
||||
],
|
||||
'demo_xml': ['hr_timesheet_sheet_demo.xml',
|
||||
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
##############################################################################
|
||||
#
|
||||
# OpenERP, Open Source Business Applications
|
||||
# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
|
||||
#
|
||||
# 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 <http://www.gnu.org/licenses/>.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
from osv import osv, fields
|
||||
|
||||
class hr_timesheet_settings(osv.osv_memory):
|
||||
_inherit = 'hr.config.settings'
|
||||
|
||||
_columns = {
|
||||
'timesheet_range': fields.selection([('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."""),
|
||||
}
|
||||
|
||||
def get_default_timesheet(self, cr, uid, fields, context=None):
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
return {
|
||||
'timesheet_range': user.company_id.timesheet_range,
|
||||
'timesheet_max_difference': user.company_id.timesheet_max_difference,
|
||||
}
|
||||
|
||||
def set_default_timesheet(self, cr, uid, ids, context=None):
|
||||
config = self.browse(cr, uid, ids[0], context)
|
||||
user = self.pool.get('res.users').browse(cr, uid, uid, context)
|
||||
user.company_id.write({
|
||||
'timesheet_range': config.timesheet_range,
|
||||
'timesheet_max_difference': config.timesheet_max_difference,
|
||||
})
|
||||
@@ -0,0 +1,24 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
<record id="view_hr_timehseet_config_settings" model="ir.ui.view">
|
||||
<field name="name">hr settings for timesheets</field>
|
||||
<field name="model">hr.config.settings</field>
|
||||
<field name="type">form</field>
|
||||
<field name="inherit_id" ref="hr.view_human_resources_configuration"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="module_hr_timesheet_sheet" position="after">
|
||||
<group colspan="2">
|
||||
<button name="%(hr_timesheet.action_define_analytic_structure)d" string="Create Your Timesheet Accounts"
|
||||
type="action" icon="terp-folder-green"/>
|
||||
</group>
|
||||
</field>
|
||||
<group name="config_timesheets" position="after">
|
||||
<separator string="Timesheets" colspan="4"/>
|
||||
<field name="timesheet_range"/>
|
||||
<field name="timesheet_max_difference"/>
|
||||
</group>
|
||||
</field>
|
||||
</record>
|
||||
</data>
|
||||
</openerp>
|
||||
+19
-19
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2011-10-17 08:27+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:33+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: openerp-i18n-czech <openerp-i18n-czech@lists.launchpad.net >\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 06:29+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: idea
|
||||
@@ -26,7 +26,7 @@ msgstr ""
|
||||
#. module: idea
|
||||
#: view:idea.idea:0
|
||||
msgid "By States"
|
||||
msgstr ""
|
||||
msgstr "Podle stavů"
|
||||
|
||||
#. module: idea
|
||||
#: model:ir.actions.act_window,name:idea.action_idea_select
|
||||
@@ -73,7 +73,7 @@ msgstr "Březen"
|
||||
#. module: idea
|
||||
#: view:idea.idea:0
|
||||
msgid "Accepted Ideas"
|
||||
msgstr ""
|
||||
msgstr "Schválené nápady"
|
||||
|
||||
#. module: idea
|
||||
#: code:addons/idea/wizard/idea_post_vote.py:94
|
||||
@@ -84,7 +84,7 @@ msgstr "Nápad musí být ve stavu 'Otevřený' přes hlasováním pro tento ná
|
||||
#. module: idea
|
||||
#: view:report.vote:0
|
||||
msgid "Open Date"
|
||||
msgstr ""
|
||||
msgstr "Datum otevření"
|
||||
|
||||
#. module: idea
|
||||
#: view:report.vote:0
|
||||
@@ -239,7 +239,7 @@ msgstr "Stav"
|
||||
#: view:idea.idea:0
|
||||
#: selection:idea.idea,state:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
msgstr "Nový"
|
||||
|
||||
#. module: idea
|
||||
#: selection:idea.idea,my_vote:0
|
||||
@@ -273,12 +273,12 @@ msgstr ""
|
||||
#. module: idea
|
||||
#: view:idea.idea:0
|
||||
msgid "New Ideas"
|
||||
msgstr ""
|
||||
msgstr "Nové nápady"
|
||||
|
||||
#. module: idea
|
||||
#: view:report.vote:0
|
||||
msgid "Idea Vote created last month"
|
||||
msgstr ""
|
||||
msgstr "Hlas nápadu vytvořený v posledním měsíci"
|
||||
|
||||
#. module: idea
|
||||
#: field:idea.category,visibility:0
|
||||
@@ -289,7 +289,7 @@ msgstr "Otevřít nápad?"
|
||||
#. module: idea
|
||||
#: view:report.vote:0
|
||||
msgid "Idea Vote created in current month"
|
||||
msgstr ""
|
||||
msgstr "Hlas nápadu vytvořený v tomto měsíci"
|
||||
|
||||
#. module: idea
|
||||
#: selection:report.vote,month:0
|
||||
@@ -406,7 +406,7 @@ msgstr "Hlasy nápadů"
|
||||
#. module: idea
|
||||
#: view:idea.idea:0
|
||||
msgid "By Idea Category"
|
||||
msgstr ""
|
||||
msgstr "Podle kategorie nápadů"
|
||||
|
||||
#. module: idea
|
||||
#: view:idea.idea:0
|
||||
@@ -543,7 +543,7 @@ msgstr "Nastavte na jedničku, pokud požadujete pouze jeden hlas na uživatele"
|
||||
#. module: idea
|
||||
#: view:idea.idea:0
|
||||
msgid "By Creators"
|
||||
msgstr ""
|
||||
msgstr "Podle tvůrce"
|
||||
|
||||
#. module: idea
|
||||
#: view:idea.post.vote:0
|
||||
@@ -564,7 +564,7 @@ msgstr "Otevřít"
|
||||
#: view:idea.idea:0
|
||||
#: view:report.vote:0
|
||||
msgid "In Progress"
|
||||
msgstr ""
|
||||
msgstr "V běhu"
|
||||
|
||||
#. module: idea
|
||||
#: view:report.vote:0
|
||||
@@ -594,7 +594,7 @@ msgstr "Skóre"
|
||||
#. module: idea
|
||||
#: view:idea.idea:0
|
||||
msgid "Votes Statistics"
|
||||
msgstr ""
|
||||
msgstr "Statistika hlasů"
|
||||
|
||||
#. module: idea
|
||||
#: view:idea.vote:0
|
||||
@@ -632,7 +632,7 @@ msgstr "Únor"
|
||||
#. module: idea
|
||||
#: field:idea.category,complete_name:0
|
||||
msgid "Name"
|
||||
msgstr ""
|
||||
msgstr "Jméno"
|
||||
|
||||
#. module: idea
|
||||
#: field:idea.vote.stat,nbr:0
|
||||
@@ -642,7 +642,7 @@ msgstr "Počet hlasů"
|
||||
#. module: idea
|
||||
#: view:report.vote:0
|
||||
msgid "Month-1"
|
||||
msgstr ""
|
||||
msgstr "Měsíc -1"
|
||||
|
||||
#. module: idea
|
||||
#: selection:report.vote,month:0
|
||||
@@ -662,7 +662,7 @@ msgstr "Stav hlasu"
|
||||
#. module: idea
|
||||
#: view:report.vote:0
|
||||
msgid "Idea Vote created in current year"
|
||||
msgstr ""
|
||||
msgstr "Hlasy nápadu vytvořené v tomto roce"
|
||||
|
||||
#. module: idea
|
||||
#: field:idea.idea,vote_avg:0
|
||||
@@ -672,7 +672,7 @@ msgstr "Průměrné skóre"
|
||||
#. module: idea
|
||||
#: constraint:idea.category:0
|
||||
msgid "Error ! You cannot create recursive categories."
|
||||
msgstr ""
|
||||
msgstr "Chyba ! Nemůžete vytvořit rekurzivní Kategorie."
|
||||
|
||||
#. module: idea
|
||||
#: field:idea.comment,idea_id:0
|
||||
@@ -706,7 +706,7 @@ msgstr "Rok"
|
||||
#: code:addons/idea/idea.py:274
|
||||
#, python-format
|
||||
msgid "You can not vote on a Draft/Accepted/Cancelled ideas."
|
||||
msgstr ""
|
||||
msgstr "Nemůžete hlasovat pro rozpracované/schválené/zrušené nápady."
|
||||
|
||||
#. module: idea
|
||||
#: view:idea.select:0
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
# Arabic translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 07:49+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:434
|
||||
#, python-format
|
||||
msgid "Import failed due to an unexpected error"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:461
|
||||
#, python-format
|
||||
msgid "started at %s and finished at %s \n"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:448
|
||||
#, python-format
|
||||
msgid "Import of your data finished at %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"but failed, in consequence no data were imported to keep database "
|
||||
"consistency \n"
|
||||
" error : \n"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The import of data \n"
|
||||
" instance name : %s \n"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:470
|
||||
#, python-format
|
||||
msgid "%s has been successfully imported from %s %s, %s \n"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:447
|
||||
#, python-format
|
||||
msgid "Data Import failed at %s due to an unexpected error"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:436
|
||||
#, python-format
|
||||
msgid "Import finished, notification email sended"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:190
|
||||
#, python-format
|
||||
msgid "%s is not a valid model name"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: model:ir.ui.menu,name:import_base.menu_import_crm
|
||||
msgid "Import"
|
||||
msgstr "إستيراد"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:467
|
||||
#, python-format
|
||||
msgid "with no warning"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:469
|
||||
#, python-format
|
||||
msgid "with warning : %s"
|
||||
msgstr ""
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:191
|
||||
#, python-format
|
||||
msgid " fields imported : "
|
||||
msgstr ""
|
||||
@@ -0,0 +1,105 @@
|
||||
# Portuguese translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-09 13:46+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Portuguese <pt@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-10 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15070)\n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:434
|
||||
#, python-format
|
||||
msgid "Import failed due to an unexpected error"
|
||||
msgstr "A importação falhou devido a um erro inesperado"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:461
|
||||
#, python-format
|
||||
msgid "started at %s and finished at %s \n"
|
||||
msgstr "começado em %s e finalizado em %s \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:448
|
||||
#, python-format
|
||||
msgid "Import of your data finished at %s"
|
||||
msgstr "Importação de dados terminou em %s"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:463
|
||||
#, python-format
|
||||
msgid ""
|
||||
"but failed, in consequence no data were imported to keep database "
|
||||
"consistency \n"
|
||||
" error : \n"
|
||||
msgstr ""
|
||||
"mas não conseguiu, em consequência da não existência de dados, foram "
|
||||
"importados para manter a consistência do banco de dados \n"
|
||||
" erro: \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:477
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The import of data \n"
|
||||
" instance name : %s \n"
|
||||
msgstr ""
|
||||
"Importação de dados \n"
|
||||
" nome da instância: %s \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:470
|
||||
#, python-format
|
||||
msgid "%s has been successfully imported from %s %s, %s \n"
|
||||
msgstr "%s foi importado com sucesso para %s %s,%s \n"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:447
|
||||
#, python-format
|
||||
msgid "Data Import failed at %s due to an unexpected error"
|
||||
msgstr "Importação de dados falhada em %s devido a um erro inesperado"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:436
|
||||
#, python-format
|
||||
msgid "Import finished, notification email sended"
|
||||
msgstr "Importação concluída, notificação enviada para o email"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:190
|
||||
#, python-format
|
||||
msgid "%s is not a valid model name"
|
||||
msgstr "%s não é um nome de modelo válido"
|
||||
|
||||
#. module: import_base
|
||||
#: model:ir.ui.menu,name:import_base.menu_import_crm
|
||||
msgid "Import"
|
||||
msgstr "Importação"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:467
|
||||
#, python-format
|
||||
msgid "with no warning"
|
||||
msgstr "Sem avisos"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:469
|
||||
#, python-format
|
||||
msgid "with warning : %s"
|
||||
msgstr "com aviso: %s"
|
||||
|
||||
#. module: import_base
|
||||
#: code:addons/import_base/import_framework.py:191
|
||||
#, python-format
|
||||
msgid " fields imported : "
|
||||
msgstr " campos importados: "
|
||||
@@ -0,0 +1,223 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 13:42+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: import_google
|
||||
#: help:synchronize.google.import,group_name:0
|
||||
msgid "Choose which group to import, By default it takes all."
|
||||
msgstr "Izaberite grupu za uvoz, po defaultu, uzima ih sve"
|
||||
|
||||
#. module: import_google
|
||||
#: view:synchronize.google.import:0
|
||||
msgid "Import Google Calendar Events"
|
||||
msgstr "Uvezi događaje iz Google-ovog kalendara"
|
||||
|
||||
#. module: import_google
|
||||
#: view:synchronize.google.import:0
|
||||
msgid "_Import Events"
|
||||
msgstr "_Uvezi događaje"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google_data.py:71
|
||||
#, python-format
|
||||
msgid ""
|
||||
"No Google Username or password Defined for user.\n"
|
||||
"Please define in user view"
|
||||
msgstr ""
|
||||
"Nema određenog korisničkog imena ili lozinke za korisnika.\n"
|
||||
"Molimo odredite ih u korisničkom pregledu"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google_data.py:127
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Invalid login detail !\n"
|
||||
" Specify Username/Password."
|
||||
msgstr ""
|
||||
"Nevažeći detalji prijave !\n"
|
||||
" Odredite korisničko ime/ lozinku."
|
||||
|
||||
#. module: import_google
|
||||
#: field:synchronize.google.import,supplier:0
|
||||
msgid "Supplier"
|
||||
msgstr "Dobavljač"
|
||||
|
||||
#. module: import_google
|
||||
#: view:synchronize.google.import:0
|
||||
msgid "Import Options"
|
||||
msgstr "Opcije uvoza"
|
||||
|
||||
#. module: import_google
|
||||
#: field:synchronize.google.import,group_name:0
|
||||
msgid "Group Name"
|
||||
msgstr "Ime grupe"
|
||||
|
||||
#. module: import_google
|
||||
#: model:ir.model,name:import_google.model_crm_case_categ
|
||||
msgid "Category of Case"
|
||||
msgstr "Kategorija slučaja"
|
||||
|
||||
#. module: import_google
|
||||
#: model:ir.actions.act_window,name:import_google.act_google_login_contact_form
|
||||
#: model:ir.ui.menu,name:import_google.menu_sync_contact
|
||||
msgid "Import Google Contacts"
|
||||
msgstr "Uvezi Google kontakte"
|
||||
|
||||
#. module: import_google
|
||||
#: view:google.import.message:0
|
||||
msgid "Import Google Data"
|
||||
msgstr "Uvezi Google podatke"
|
||||
|
||||
#. module: import_google
|
||||
#: view:crm.meeting:0
|
||||
msgid "Meeting Type"
|
||||
msgstr "Tip sastanka"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google.py:38
|
||||
#: code:addons/import_google/wizard/import_google_data.py:28
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Please install gdata-python-client from http://code.google.com/p/gdata-"
|
||||
"python-client/downloads/list"
|
||||
msgstr ""
|
||||
"Molimo instalirajte gdata-python-client from http://code.google.com/p/gdata-"
|
||||
"python-client/downloads/list"
|
||||
|
||||
#. module: import_google
|
||||
#: model:ir.model,name:import_google.model_google_login
|
||||
msgid "Google Contact"
|
||||
msgstr "Google kontakt"
|
||||
|
||||
#. module: import_google
|
||||
#: view:synchronize.google.import:0
|
||||
msgid "Import contacts from a google account"
|
||||
msgstr "Uvezi kontakte s Google naloga"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google_data.py:133
|
||||
#, python-format
|
||||
msgid "Please specify correct user and password !"
|
||||
msgstr "Molimo odredite tačnog korisnika i lozinku !"
|
||||
|
||||
#. module: import_google
|
||||
#: field:synchronize.google.import,customer:0
|
||||
msgid "Customer"
|
||||
msgstr "Mušterija"
|
||||
|
||||
#. module: import_google
|
||||
#: view:synchronize.google.import:0
|
||||
msgid "_Cancel"
|
||||
msgstr "_Otkaži"
|
||||
|
||||
#. module: import_google
|
||||
#: model:ir.model,name:import_google.model_synchronize_google_import
|
||||
msgid "synchronize.google.import"
|
||||
msgstr "synchronize.google.import"
|
||||
|
||||
#. module: import_google
|
||||
#: view:synchronize.google.import:0
|
||||
msgid "_Import Contacts"
|
||||
msgstr "_Uvezi kontakte"
|
||||
|
||||
#. module: import_google
|
||||
#: model:ir.actions.act_window,name:import_google.act_google_login_form
|
||||
#: model:ir.ui.menu,name:import_google.menu_sync_calendar
|
||||
msgid "Import Google Calendar"
|
||||
msgstr "Uvezi Google-ov kalendar"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google_data.py:50
|
||||
#, python-format
|
||||
msgid "Import google"
|
||||
msgstr "Uvezi Google"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google_data.py:127
|
||||
#: code:addons/import_google/wizard/import_google_data.py:133
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "Greška"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google_data.py:71
|
||||
#, python-format
|
||||
msgid "Warning !"
|
||||
msgstr "Upozorenje !"
|
||||
|
||||
#. module: import_google
|
||||
#: field:synchronize.google.import,create_partner:0
|
||||
msgid "Options"
|
||||
msgstr "Opcije"
|
||||
|
||||
#. module: import_google
|
||||
#: view:google.import.message:0
|
||||
msgid "_Ok"
|
||||
msgstr "_Ok"
|
||||
|
||||
#. module: import_google
|
||||
#: code:addons/import_google/wizard/import_google.py:38
|
||||
#: code:addons/import_google/wizard/import_google_data.py:28
|
||||
#, python-format
|
||||
msgid "Google Contacts Import Error!"
|
||||
msgstr "Greška u uvozu kontakata s Google-a"
|
||||
|
||||
#. module: import_google
|
||||
#: model:ir.model,name:import_google.model_google_import_message
|
||||
msgid "Import Message"
|
||||
msgstr "Uvezi poruku"
|
||||
|
||||
#. module: import_google
|
||||
#: field:synchronize.google.import,calendar_name:0
|
||||
msgid "Calendar Name"
|
||||
msgstr "Ime kalendara"
|
||||
|
||||
#. module: import_google
|
||||
#: help:synchronize.google.import,supplier:0
|
||||
msgid "Check this box to set newly created partner as Supplier."
|
||||
msgstr "Označite ovu kućicu da biste novog partnera odredili kao Dobavljača."
|
||||
|
||||
#. module: import_google
|
||||
#: selection:synchronize.google.import,create_partner:0
|
||||
msgid "Import only address"
|
||||
msgstr "Uvezi samo adrese"
|
||||
|
||||
#. module: import_google
|
||||
#: field:crm.case.categ,user_id:0
|
||||
msgid "User"
|
||||
msgstr "Korisnik"
|
||||
|
||||
#. module: import_google
|
||||
#: view:synchronize.google.import:0
|
||||
msgid "Partner status for this group:"
|
||||
msgstr "Stanje partnera za ovu grupu:"
|
||||
|
||||
#. module: import_google
|
||||
#: field:google.import.message,name:0
|
||||
msgid "Message"
|
||||
msgstr "Poruka"
|
||||
|
||||
#. module: import_google
|
||||
#: selection:synchronize.google.import,create_partner:0
|
||||
msgid "Create partner for each contact"
|
||||
msgstr "Napravi partnera za svaki kontakt"
|
||||
|
||||
#. module: import_google
|
||||
#: help:synchronize.google.import,customer:0
|
||||
msgid "Check this box to set newly created partner as Customer."
|
||||
msgstr "Označite ovu kućicu da biste novog partnera odredili kao Mušteriju."
|
||||
@@ -0,0 +1,158 @@
|
||||
# Serbian Latin translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 13:53+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian Latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: help:hr.employee,disabled_spouse_bool:0
|
||||
msgid "if recipient spouse is declared disabled by law"
|
||||
msgstr "Ako je primalac supružnik određen nevažeći po zakonu"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: help:hr.employee,disabled_children_bool:0
|
||||
msgid "if recipient children is/are declared disabled by law"
|
||||
msgstr "Ako je/su primalac/oci dete/deca određen/i nevažeći po zakonu"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,misc_onss_deduction:0
|
||||
msgid "Miscellaneous exempt ONSS "
|
||||
msgstr "Razni ONSS izuzeci "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_employee
|
||||
msgid "Employee"
|
||||
msgstr "Zaposleni"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,disabled_spouse_bool:0
|
||||
msgid "Disabled Spouse"
|
||||
msgstr "Nevažeći supružnik"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,retained_net_amount:0
|
||||
msgid "Net retained "
|
||||
msgstr "Neto zadržano "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,resident_bool:0
|
||||
msgid "Nonresident"
|
||||
msgstr "Neboraveći"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: help:hr.employee,resident_bool:0
|
||||
msgid "if recipient lives in a foreign country"
|
||||
msgstr "Ako primalac živi u stranoj zemlji"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: view:hr.employee:0
|
||||
msgid "if spouse has professionnel income or not"
|
||||
msgstr "Ako supružnik ima prihod ili ne"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "Miscellaneous"
|
||||
msgstr "Razno"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,insurance_employee_deduction:0
|
||||
msgid "Insurance Group - by worker "
|
||||
msgstr "Osiguranička grupa - po radniku "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: selection:hr.employee,spouse_fiscal_status:0
|
||||
msgid "With Income"
|
||||
msgstr "Sa primanjima"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: selection:hr.employee,spouse_fiscal_status:0
|
||||
msgid "Without Income"
|
||||
msgstr "Bez primanja"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,disabled_children_number:0
|
||||
msgid "Number of disabled children"
|
||||
msgstr "Broj nevažeće dece"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,additional_net_amount:0
|
||||
msgid "Net supplements"
|
||||
msgstr "Neto dodaci"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: constraint:hr.employee:0
|
||||
msgid "Error ! You cannot create recursive Hierarchy of Employees."
|
||||
msgstr "Greška ! Ne možete praviti rekurzivnu hijerarhiju zaposlenih."
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,car_company_amount:0
|
||||
msgid "Company car employer"
|
||||
msgstr "Nadređeni za vozila preduzeća"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,misc_advantage_amount:0
|
||||
msgid "Benefits of various nature "
|
||||
msgstr "Prihodi razne prirode "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,car_employee_deduction:0
|
||||
msgid "Company Car Deduction for Worker"
|
||||
msgstr "Odšteta preduzeća za vozila za radnika"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,disabled_children_bool:0
|
||||
msgid "Disabled Children"
|
||||
msgstr "Nevažeća deca"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: model:ir.model,name:l10n_be_hr_payroll.model_hr_contract
|
||||
msgid "Contract"
|
||||
msgstr "Ugovor"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,meal_voucher_amount:0
|
||||
msgid "Check Value Meal "
|
||||
msgstr "Vrednost toplog obroka "
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,travel_reimbursement_amount:0
|
||||
msgid "Reimbursement of travel expenses"
|
||||
msgstr "Refundacija putnih troškova"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! contract start-date must be lower then contract end-date."
|
||||
msgstr "Greška! datum početka ugovora mora da bude pre datuma završetka."
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.employee,spouse_fiscal_status:0
|
||||
msgid "Tax status for spouse"
|
||||
msgstr "stanje poreza za supružnika"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: view:hr.contract:0
|
||||
msgid "by Worker"
|
||||
msgstr "po radniku"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: view:hr.employee:0
|
||||
msgid "number of dependent children declared as disabled"
|
||||
msgstr "broj zavisne dece proglašene nevažećim"
|
||||
|
||||
#. module: l10n_be_hr_payroll
|
||||
#: field:hr.contract,meal_voucher_employee_deduction:0
|
||||
msgid "Check Value Meal - by worker "
|
||||
msgstr "Vrednost toplog obroka - po radniku "
|
||||
@@ -0,0 +1,141 @@
|
||||
# Arabic translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 07:45+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: sql_constraint:account.invoice:0
|
||||
msgid "Invoice Number must be unique per Company!"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: model:ir.model,name:l10n_be_invoice_bba.model_account_invoice
|
||||
msgid "Invoice"
|
||||
msgstr "فاتورة"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: constraint:res.partner:0
|
||||
msgid "Error ! You cannot create recursive associated members."
|
||||
msgstr "خطأ ! لا يمكنك إنشاء أعضاء مرتبطين و متداخلين."
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: constraint:account.invoice:0
|
||||
msgid "Invalid BBA Structured Communication !"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Random"
|
||||
msgstr "عشوائي"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: help:res.partner,out_inv_comm_type:0
|
||||
msgid "Select Default Communication Type for Outgoing Invoices."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: help:res.partner,out_inv_comm_algorithm:0
|
||||
msgid ""
|
||||
"Select Algorithm to generate the Structured Communication on Outgoing "
|
||||
"Invoices."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:114
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:140
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The daily maximum of outgoing invoices with an automatically generated BBA "
|
||||
"Structured Communications has been exceeded!\n"
|
||||
"Please create manually a unique BBA Structured Communication."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:155
|
||||
#, python-format
|
||||
msgid "Error!"
|
||||
msgstr "خطأ!"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:126
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The Partner should have a 3-7 digit Reference Number for the generation of "
|
||||
"BBA Structured Communications!\n"
|
||||
"Please correct the Partner record."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:113
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:125
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:139
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:167
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:177
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:202
|
||||
#, python-format
|
||||
msgid "Warning!"
|
||||
msgstr "تحذير!"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Customer Reference"
|
||||
msgstr "مرجع العميل"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: field:res.partner,out_inv_comm_type:0
|
||||
msgid "Communication Type"
|
||||
msgstr "نوع الاتصال"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:178
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:203
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The BBA Structured Communication has already been used!\n"
|
||||
"Please create manually a unique BBA Structured Communication."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: selection:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Date"
|
||||
msgstr "التاريخ"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: model:ir.model,name:l10n_be_invoice_bba.model_res_partner
|
||||
msgid "Partner"
|
||||
msgstr "الشريك"
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:156
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Unsupported Structured Communication Type Algorithm '%s' !\n"
|
||||
"Please contact your OpenERP support channel."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: field:res.partner,out_inv_comm_algorithm:0
|
||||
msgid "Communication Algorithm"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_be_invoice_bba
|
||||
#: code:addons/l10n_be_invoice_bba/invoice.py:168
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Empty BBA Structured Communication!\n"
|
||||
"Please fill in a unique BBA Structured Communication."
|
||||
msgstr ""
|
||||
@@ -8,45 +8,45 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2010-08-02 21:08+0000\n"
|
||||
"PO-Revision-Date: 2010-12-10 17:50+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 13:59+0000\n"
|
||||
"Last-Translator: Milan Milosevic <Unknown>\n"
|
||||
"Language-Team: Serbian latin <sr@latin@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2011-11-05 05:56+0000\n"
|
||||
"X-Generator: Launchpad (build 14231)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_receivable
|
||||
msgid "Receivable"
|
||||
msgstr ""
|
||||
msgstr "Potraživanja"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.acct_type_asset_view
|
||||
msgid "Asset View"
|
||||
msgstr ""
|
||||
msgstr "Pregled sredstava"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:ir.module.module,description:l10n_ca.module_meta_information
|
||||
msgid ""
|
||||
"This is the module to manage the canadian accounting chart in OpenERP."
|
||||
msgstr ""
|
||||
msgstr "Ovo je modul za podešavanja kanadske obračunske tabele u OpenERP-u."
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.acct_type_expense_view
|
||||
msgid "Expense View"
|
||||
msgstr ""
|
||||
msgstr "Pregled troškova"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: constraint:account.account.template:0
|
||||
msgid "Error ! You can not create recursive account templates."
|
||||
msgstr ""
|
||||
msgstr "Greška ! Ne možete praviti rekurzivne obrasce naloga."
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.acct_type_income_view
|
||||
msgid "Income View"
|
||||
msgstr ""
|
||||
msgstr "Pregled prihoda"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:ir.module.module,shortdesc:l10n_ca.module_meta_information
|
||||
@@ -56,17 +56,17 @@ msgstr "Kanada - Tabela Nalogâ"
|
||||
#. module: l10n_ca
|
||||
#: constraint:account.account.type:0
|
||||
msgid "Error ! You can not create recursive types."
|
||||
msgstr ""
|
||||
msgstr "Greška ! Ne možete praviti rekurzivne tipove."
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_tax
|
||||
msgid "Tax"
|
||||
msgstr ""
|
||||
msgstr "Porez"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_cash
|
||||
msgid "Cash"
|
||||
msgstr ""
|
||||
msgstr "Gotovina"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:ir.actions.todo,note:l10n_ca.config_call_account_template_ca
|
||||
@@ -79,43 +79,50 @@ msgid ""
|
||||
"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"
|
||||
"\tTo 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_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_payable
|
||||
msgid "Payable"
|
||||
msgstr ""
|
||||
msgstr "Plativo"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_asset
|
||||
msgid "Asset"
|
||||
msgstr ""
|
||||
msgstr "Sredstvo"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_equity
|
||||
msgid "Equity"
|
||||
msgstr ""
|
||||
msgstr "Kapital"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: constraint:account.tax.code.template:0
|
||||
msgid "Error ! You can not create recursive Tax Codes."
|
||||
msgstr ""
|
||||
msgstr "Greška ! Ne možete praviti rekurzivne porezne kodove."
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.acct_type_liability_view
|
||||
msgid "Liability View"
|
||||
msgstr ""
|
||||
msgstr "Pregled odgovornosti"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_expense
|
||||
msgid "Expense"
|
||||
msgstr ""
|
||||
msgstr "Trošak"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_income
|
||||
msgid "Income"
|
||||
msgstr ""
|
||||
msgstr "Prihod"
|
||||
|
||||
#. module: l10n_ca
|
||||
#: model:account.account.type,name:l10n_ca.account_type_view
|
||||
msgid "View"
|
||||
msgstr ""
|
||||
msgstr "Pregled"
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
# Arabic translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 07:35+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:56+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid ""
|
||||
"\n"
|
||||
"Please define BIC/Swift code on bank for bank type IBAN Account to make "
|
||||
"valid payments"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type,name:l10n_fr_rib.bank_rib
|
||||
msgid "RIB and optional IBAN"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,rib_acc_number:0
|
||||
msgid "RIB account number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,bank_code:0
|
||||
msgid "Bank Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: code:addons/l10n_fr_rib/bank.py:54
|
||||
#, python-format
|
||||
msgid "The RIB key %s does not correspond to the other codes: %s %s %s."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_office_field
|
||||
msgid "office"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.bank,rib_code:0
|
||||
msgid "RIB Bank Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: code:addons/l10n_fr_rib/bank.py:58
|
||||
#, python-format
|
||||
msgid "The IBAN %s is not valid."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:ir.model,name:l10n_fr_rib.model_res_partner_bank
|
||||
msgid "Bank Accounts"
|
||||
msgstr "الحسابات المصرفية"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,office:0
|
||||
msgid "Office Code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bic_field
|
||||
msgid "bank_bic"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_bank_code_field
|
||||
msgid "bank_code"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_key_field
|
||||
msgid "key"
|
||||
msgstr "مفتاح"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_rib_acc_number_field
|
||||
msgid "rib_acc_number"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: help:res.partner.bank,key:0
|
||||
msgid ""
|
||||
"The key is a number allowing to check the correctness of the other codes."
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: field:res.partner.bank,key:0
|
||||
msgid "Key"
|
||||
msgstr "مفتاح"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: code:addons/l10n_fr_rib/bank.py:53
|
||||
#: code:addons/l10n_fr_rib/bank.py:58
|
||||
#, python-format
|
||||
msgid "Error"
|
||||
msgstr "خطأ"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type,format_layout:l10n_fr_rib.bank_rib
|
||||
msgid "%(bank_name)s: %(bank_code)s %(office)s %(rib_acc_number)s %(key)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: constraint:res.partner.bank:0
|
||||
msgid "The RIB and/or IBAN is not valid"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:ir.model,name:l10n_fr_rib.model_res_bank
|
||||
msgid "Bank"
|
||||
msgstr "مصرف"
|
||||
|
||||
#. module: l10n_fr_rib
|
||||
#: model:res.partner.bank.type.field,name:l10n_fr_rib.rib_acc_number_field
|
||||
msgid "acc_number"
|
||||
msgstr "acc_number"
|
||||
@@ -0,0 +1,115 @@
|
||||
# Arabic translation for openobject-addons
|
||||
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2011-12-23 09:56+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 07:46+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Arabic <ar@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_receivable
|
||||
msgid "Receivable"
|
||||
msgstr "الدائنون"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stocks
|
||||
msgid "Actif circulant"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_commitment
|
||||
msgid "Engagements"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_expense
|
||||
msgid "Expense"
|
||||
msgstr "مصروف"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_stock
|
||||
msgid "Stocks"
|
||||
msgstr "الأسهم"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_provision
|
||||
msgid "Provisions"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_income
|
||||
msgid "Income"
|
||||
msgstr "الدخل"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_tax
|
||||
msgid "Tax"
|
||||
msgstr "ضريبة"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cash
|
||||
msgid "Cash"
|
||||
msgstr "نقدي"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_immobilisations
|
||||
msgid "Immobilisations"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_special
|
||||
msgid "Comptes spéciaux"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_payable
|
||||
msgid "Payable"
|
||||
msgstr "مدفوعات"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_asset
|
||||
msgid "Asset"
|
||||
msgstr "أصل"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_view
|
||||
msgid "View"
|
||||
msgstr "عرض"
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_equity
|
||||
msgid "Equity"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_cloture
|
||||
msgid "Cloture"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:account.account.type,name:l10n_syscohada.account_type_dettes
|
||||
msgid "Dettes long terme"
|
||||
msgstr ""
|
||||
|
||||
#. module: l10n_syscohada
|
||||
#: model:ir.actions.todo,note:l10n_syscohada.config_call_account_template_syscohada
|
||||
msgid ""
|
||||
"Generate Chart of Accounts from a SYSCOHADA 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"
|
||||
"\tThis is the same wizard that runs from Financial "
|
||||
"Management/Configuration/Financial Accounting/Financial Accounts/Generate "
|
||||
"Chart of Accounts from a Chart Template."
|
||||
msgstr ""
|
||||
+19
-13
@@ -7,14 +7,14 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-02-08 01:37+0100\n"
|
||||
"PO-Revision-Date: 2011-09-05 06:39+0000\n"
|
||||
"PO-Revision-Date: 2012-04-06 06:39+0000\n"
|
||||
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
|
||||
"Language-Team: Czech <cs@li.org>\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"X-Launchpad-Export-Date: 2012-02-09 07:07+0000\n"
|
||||
"X-Generator: Launchpad (build 14763)\n"
|
||||
"X-Launchpad-Export-Date: 2012-04-07 04:55+0000\n"
|
||||
"X-Generator: Launchpad (build 15060)\n"
|
||||
"X-Poedit-Language: Czech\n"
|
||||
|
||||
#. module: lunch
|
||||
@@ -25,7 +25,7 @@ msgstr "Nulovat pokladnu"
|
||||
#. module: lunch
|
||||
#: view:report.lunch.amount:0
|
||||
msgid "Box amount in current year"
|
||||
msgstr ""
|
||||
msgstr "Částka pokladny v aktuálním roce"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_order_form
|
||||
@@ -96,6 +96,8 @@ msgid ""
|
||||
"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."
|
||||
msgstr ""
|
||||
"Můžete vytvořit pokladu podle zaměstnance, pokud chcete udržet přehled o "
|
||||
"dlužených částkách podle zaměstnance podle toho co si objednal."
|
||||
|
||||
#. module: lunch
|
||||
#: field:lunch.cashmove,amount:0 field:report.lunch.amount,amount:0
|
||||
@@ -151,7 +153,7 @@ msgstr "Stav"
|
||||
#. module: lunch
|
||||
#: selection:lunch.order,state:0
|
||||
msgid "New"
|
||||
msgstr ""
|
||||
msgstr "Nový"
|
||||
|
||||
#. module: lunch
|
||||
#: field:report.lunch.order,price_total:0
|
||||
@@ -181,7 +183,7 @@ msgstr "Popis objednávky"
|
||||
#. module: lunch
|
||||
#: view:report.lunch.amount:0
|
||||
msgid "Box amount in last month"
|
||||
msgstr ""
|
||||
msgstr "Částka pokladny v minulém měsíci"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_lunch_order_confirm
|
||||
@@ -233,7 +235,7 @@ msgstr "Pohyb hotovosti"
|
||||
#. module: lunch
|
||||
#: view:report.lunch.order:0
|
||||
msgid "Tasks performed in last 365 days"
|
||||
msgstr ""
|
||||
msgstr "Úkoly vykonané v posledních 365 dnech"
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0
|
||||
@@ -306,6 +308,10 @@ msgid ""
|
||||
"by supplier. It will be easier for the lunch manager to filter lunch orders "
|
||||
"by categories."
|
||||
msgstr ""
|
||||
"Určuje všechny výrobky, které zaměstnanci mohou objednat pro obědový čas. "
|
||||
"Pokud si objednáte oběd na více místech, můžete použít kategorie výrobků pro "
|
||||
"rozdělení dodavatelů. Bude pak jednodušší pro správce obědů filtrovat "
|
||||
"objednávky obědů podle kategorie."
|
||||
|
||||
#. module: lunch
|
||||
#: selection:report.lunch.amount,month:0 selection:report.lunch.order,month:0
|
||||
@@ -398,7 +404,7 @@ msgstr "Nastavit pokladnu na nulu"
|
||||
#. module: lunch
|
||||
#: view:lunch.product:0
|
||||
msgid "General Information"
|
||||
msgstr ""
|
||||
msgstr "Obecné informace"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.order.confirm:0
|
||||
@@ -480,7 +486,7 @@ msgstr "Celková částka"
|
||||
#. module: lunch
|
||||
#: view:report.lunch.order:0
|
||||
msgid "Tasks performed in last 30 days"
|
||||
msgstr ""
|
||||
msgstr "Úkoly vykonané v posledních 30 dnech"
|
||||
|
||||
#. module: lunch
|
||||
#: view:lunch.category:0
|
||||
@@ -507,17 +513,17 @@ msgstr "Obědnávka obědu"
|
||||
#. module: lunch
|
||||
#: view:report.lunch.amount:0
|
||||
msgid "Box amount in current month"
|
||||
msgstr ""
|
||||
msgstr "Obsah pokladny v aktuálním měsíci"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.view_lunch_product_form_installer
|
||||
msgid "Define Your Lunch Products"
|
||||
msgstr ""
|
||||
msgstr "Určete vaše obědové výrobky"
|
||||
|
||||
#. module: lunch
|
||||
#: view:report.lunch.order:0
|
||||
msgid "Tasks during last 7 days"
|
||||
msgstr ""
|
||||
msgstr "Úkoly během posledních 7 dní"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_report_lunch_amount_tree
|
||||
@@ -549,7 +555,7 @@ msgstr "Rok"
|
||||
#. module: lunch
|
||||
#: model:ir.actions.act_window,name:lunch.action_create_cashbox
|
||||
msgid "Create Lunch Cash Boxes"
|
||||
msgstr ""
|
||||
msgstr "Vytvořit obědové pokladny"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
|
||||
@@ -21,7 +21,11 @@
|
||||
|
||||
import mail_message
|
||||
import mail_thread
|
||||
import mail_group
|
||||
import mail_subscription
|
||||
import res_users
|
||||
import res_partner
|
||||
import report
|
||||
import wizard
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -56,16 +56,41 @@ The main features are:
|
||||
'website': 'http://www.openerp.com',
|
||||
'depends': ['base', 'base_tools'],
|
||||
'data': [
|
||||
"wizard/mail_compose_message_view.xml",
|
||||
"mail_message_view.xml",
|
||||
"mail_thread_view.xml",
|
||||
"res_partner_view.xml",
|
||||
'wizard/mail_compose_message_view.xml',
|
||||
'mail_message_view.xml',
|
||||
'mail_subscription_view.xml',
|
||||
'mail_thread_view.xml',
|
||||
'mail_group_view.xml',
|
||||
'res_partner_view.xml',
|
||||
'report/mail_message_report_view.xml',
|
||||
'security/mail_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'mail_data.xml',
|
||||
'res_users_view.xml',
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'certificate': '001056784984222247309',
|
||||
'images': ['images/customer_history.jpeg','images/messages_form.jpeg','images/messages_list.jpeg'],
|
||||
'images': [
|
||||
'images/customer_history.jpeg',
|
||||
'images/messages_form.jpeg',
|
||||
'images/messages_list.jpeg',
|
||||
'static/src/img/email_icong.png',
|
||||
'static/src/img/_al.png',
|
||||
'static/src/img/_pincky.png',
|
||||
'static/src/img/feeds.png',
|
||||
'static/src/img/feeds-hover.png',
|
||||
'static/src/img/groupdefault.png',
|
||||
],
|
||||
'css': [
|
||||
'static/src/css/mail.css',
|
||||
'static/src/css/mail_group.css',
|
||||
],
|
||||
'js': [
|
||||
'static/src/js/mail.js',
|
||||
],
|
||||
'qweb': [
|
||||
'static/src/xml/mail.xml',
|
||||
],
|
||||
}
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
:orphan:
|
||||
|
||||
Mail module documentation
|
||||
=========================
|
||||
|
||||
.. include:: index.rst.inc
|
||||
@@ -0,0 +1,8 @@
|
||||
|
||||
Mail Module
|
||||
'''''''''''
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
mail_thread
|
||||
@@ -0,0 +1,23 @@
|
||||
.. _mail_thread:
|
||||
|
||||
OpenChatter
|
||||
===========
|
||||
|
||||
TODO
|
||||
|
||||
mail.group
|
||||
++++++++++
|
||||
|
||||
A mail_group is a collection of users sharing messages in a discussion group. Group users are users that follow the mail group, using the subscription/follow mechanism of OpenSocial. A mail group has nothing in common wih res.users.group.
|
||||
Additional information on fields:
|
||||
- ``member_ids``: user member of the groups are calculated with ``message_get_subscribers`` method from mail.thread
|
||||
- ``member_count``: calculated with member_ids
|
||||
- ``is_subscriber``: calculated with member_ids
|
||||
|
||||
res.users
|
||||
+++++++++
|
||||
|
||||
OpenChatter updates the res.users class:
|
||||
- it adds a preference about sending emails when receiving a notification
|
||||
- make a new user follow itself automatically
|
||||
- create a welcome message when creating a new user, to make his arrival in OpenERP more friendly
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user