[MERGE] Merge with lp:openobject-server

bzr revid: sbh@tinyerp.com-20120323064037-belgc637ugambnnw
This commit is contained in:
Sbh (Openerp) 2012-03-23 12:10:37 +05:30
commit 7d9cab896e
12 changed files with 327 additions and 136 deletions

View File

@ -1365,7 +1365,7 @@
<record id="INR" model="res.currency"> <record id="INR" model="res.currency">
<field name="name">INR</field> <field name="name">INR</field>
<field name="symbol">Rs</field> <field name="symbol"></field>
<field name="rounding">0.01</field> <field name="rounding">0.01</field>
<field name="accuracy">4</field> <field name="accuracy">4</field>
<field name="company_id" ref="main_company"/> <field name="company_id" ref="main_company"/>

View File

@ -27,8 +27,10 @@
parent="base.menu_custom" name="Reporting" sequence="30" parent="base.menu_custom" name="Reporting" sequence="30"
/> />
<menuitem id="base.menu_reporting" name="Reporting" parent="base.menu_administration" sequence="11" <menuitem id="base.menu_reporting" name="Reporting" sequence="45" groups="base.group_extended"/>
groups="base.group_extended"/> <menuitem id="base.menu_dasboard" name="Dashboards" sequence="0" parent="base.menu_reporting" groups="base.group_extended"/>
<menuitem id="menu_audit" name="Audit" parent="base.menu_reporting" sequence="50"/> <menuitem id="menu_audit" name="Audit" parent="base.menu_reporting" sequence="50"/>
<menuitem id="base.menu_reporting_config" name="Configuration" parent="base.menu_reporting" sequence="100"/>
</data> </data>
</openerp> </openerp>

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: openobject-server\n" "Project-Id-Version: openobject-server\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n" "Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:44+0000\n" "POT-Creation-Date: 2012-02-08 00:44+0000\n"
"PO-Revision-Date: 2012-02-28 16:02+0000\n" "PO-Revision-Date: 2012-03-23 02:33+0000\n"
"Last-Translator: Akira Hiyama <Unknown>\n" "Last-Translator: Akira Hiyama <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n" "Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-03-10 04:49+0000\n" "X-Launchpad-Export-Date: 2012-03-23 04:41+0000\n"
"X-Generator: Launchpad (build 14914)\n" "X-Generator: Launchpad (build 14996)\n"
#. module: base #. module: base
#: model:res.country,name:base.sh #: model:res.country,name:base.sh
@ -112,7 +112,7 @@ msgstr "ハンガリー語 / マジャール語"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (PY) / Español (PY)" msgid "Spanish (PY) / Español (PY)"
msgstr "スペイン語(パラグアイ)" msgstr "スペイン語(パラグアイ)/ Español (PY)"
#. module: base #. module: base
#: model:ir.module.category,description:base.module_category_project_management #: model:ir.module.category,description:base.module_category_project_management
@ -178,7 +178,7 @@ msgstr "参照"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba #: model:ir.module.module,shortdesc:base.module_l10n_be_invoice_bba
msgid "Belgium - Structured Communication" msgid "Belgium - Structured Communication"
msgstr "ベルギー-構造化されたコミュニケーション" msgstr "ベルギー-構造化された通信"
#. module: base #. module: base
#: field:ir.actions.act_window,target:0 #: field:ir.actions.act_window,target:0
@ -591,7 +591,7 @@ msgstr "受注のプリントレイアウト"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (VE) / Español (VE)" msgid "Spanish (VE) / Español (VE)"
msgstr "スペイン語(ベネズエラ)" msgstr "スペイン語(ベネズエラ)/ Español (VE)"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice #: model:ir.module.module,shortdesc:base.module_hr_timesheet_invoice
@ -970,7 +970,7 @@ msgstr "モジュール更新"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (UY) / Español (UY)" msgid "Spanish (UY) / Español (UY)"
msgstr "スペイン語(ウルグアイ)" msgstr "スペイン語(ウルグアイ)/ Español (UY)"
#. module: base #. module: base
#: field:res.partner,mobile:0 #: field:res.partner,mobile:0
@ -1208,7 +1208,7 @@ msgstr "スロバキア語"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (AR) / Español (AR)" msgid "Spanish (AR) / Español (AR)"
msgstr "スペイン語(アルゼンチン)" msgstr "スペイン語(アルゼンチン)/ Español (AR)"
#. module: base #. module: base
#: model:res.country,name:base.ug #: model:res.country,name:base.ug
@ -1248,7 +1248,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (GT) / Español (GT)" msgid "Spanish (GT) / Español (GT)"
msgstr "スペイン語(グアテマラ)" msgstr "スペイン語(グアテマラ)/ Español (GT)"
#. module: base #. module: base
#: field:ir.mail_server,smtp_port:0 #: field:ir.mail_server,smtp_port:0
@ -2247,7 +2247,7 @@ msgstr "スペイン語"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Korean (KP) / 한국어 (KP)" msgid "Korean (KP) / 한국어 (KP)"
msgstr "北朝鮮" msgstr "韓国語(北朝鮮 / 한국어 (KP)"
#. module: base #. module: base
#: view:base.module.update:0 #: view:base.module.update:0
@ -2451,7 +2451,7 @@ msgstr "グループ"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (CL) / Español (CL)" msgid "Spanish (CL) / Español (CL)"
msgstr "スペイン語(チリ)" msgstr "スペイン語(チリ) / Español (CL)"
#. module: base #. module: base
#: model:res.country,name:base.bz #: model:res.country,name:base.bz
@ -2608,7 +2608,7 @@ msgstr "請求書"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Portugese (BR) / Português (BR)" msgid "Portugese (BR) / Português (BR)"
msgstr "ポルトガル語(ブラジル)" msgstr "ポルトガル語(ブラジル)/ Português (BR)"
#. module: base #. module: base
#: model:res.country,name:base.bb #: model:res.country,name:base.bb
@ -2761,7 +2761,7 @@ msgstr "Eメールアドレス"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "French (BE) / Français (BE)" msgid "French (BE) / Français (BE)"
msgstr "フランス語(ベルギー)" msgstr "フランス語(ベルギー)/ Français (BE)"
#. module: base #. module: base
#: view:ir.actions.server:0 #: view:ir.actions.server:0
@ -3018,7 +3018,7 @@ msgstr "ノーフォーク島"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Korean (KR) / 한국어 (KR)" msgid "Korean (KR) / 한국어 (KR)"
msgstr "韓国" msgstr "韓国語(韓国)/ 한국어 (KR)"
#. module: base #. module: base
#: help:ir.model.fields,model:0 #: help:ir.model.fields,model:0
@ -3483,7 +3483,7 @@ msgstr "翻訳者がエクスポートする際に、ファイルのエンコー
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (DO) / Español (DO)" msgid "Spanish (DO) / Español (DO)"
msgstr "スペイン語(ドミニカ共和国)" msgstr "スペイン語(ドミニカ共和国)/ Español (DO)"
#. module: base #. module: base
#: model:res.country,name:base.na #: model:res.country,name:base.na
@ -4826,7 +4826,7 @@ msgstr "ギリシャ-会計"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (HN) / Español (HN)" msgid "Spanish (HN) / Español (HN)"
msgstr "スペイン語(ホンジュラス)" msgstr "スペイン語(ホンジュラス)/ Español (HN)"
#. module: base #. module: base
#: view:ir.sequence.type:0 #: view:ir.sequence.type:0
@ -5056,7 +5056,7 @@ msgstr "選択されたモジュールは更新あるいはインストールさ
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (PR) / Español (PR)" msgid "Spanish (PR) / Español (PR)"
msgstr "スペイン語(プエルトリコ)" msgstr "スペイン語(プエルトリコ)/ Español (PR)"
#. module: base #. module: base
#: model:res.country,name:base.gt #: model:res.country,name:base.gt
@ -5473,7 +5473,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (PA) / Español (PA)" msgid "Spanish (PA) / Español (PA)"
msgstr "スペイン語(パナマ)" msgstr "スペイン語(パナマ)/ Español (PA)"
#. module: base #. module: base
#: view:res.currency:0 #: view:res.currency:0
@ -6431,7 +6431,7 @@ msgstr "モジュール品質の分析"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (BO) / Español (BO)" msgid "Spanish (BO) / Español (BO)"
msgstr "スペイン語(ボリビア)" msgstr "スペイン語(ボリビア)/ Español (BO)"
#. module: base #. module: base
#: model:ir.actions.act_window,name:base.ir_access_act #: model:ir.actions.act_window,name:base.ir_access_act
@ -7053,7 +7053,7 @@ msgstr "非表示"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Serbian (Latin) / srpski" msgid "Serbian (Latin) / srpski"
msgstr "セルビア語" msgstr "セルビア語(ラテン)/ srpski"
#. module: base #. module: base
#: model:res.country,name:base.il #: model:res.country,name:base.il
@ -7924,7 +7924,7 @@ msgstr "閉じる"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (MX) / Español (MX)" msgid "Spanish (MX) / Español (MX)"
msgstr "スペイン語(メキシコ)" msgstr "スペイン語(メキシコ)/ Español (MX)"
#. module: base #. module: base
#: code:addons/base/publisher_warranty/publisher_warranty.py:145 #: code:addons/base/publisher_warranty/publisher_warranty.py:145
@ -8170,7 +8170,7 @@ msgstr "項目が定義されているモジュールのリスト"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Chinese (CN) / 简体中文" msgid "Chinese (CN) / 简体中文"
msgstr "中国語(简体中文)" msgstr "中国語 / 简体中文"
#. module: base #. module: base
#: field:res.bank,street:0 #: field:res.bank,street:0
@ -8310,11 +8310,14 @@ msgid ""
"interface, which has less features but is easier to use. You can switch to " "interface, which has less features but is easier to use. You can switch to "
"the other interface from the User/Preferences menu at any time." "the other interface from the User/Preferences menu at any time."
msgstr "" msgstr ""
"OpenERPは簡易 / "
"拡張の種類のユーザインタフェースを提供します。最初にOpenERPを使う場合は、機能は少ないながらも、使い易い簡易なユーザインタフェースを選択することを"
"強くお勧めします。なお、いつでも設定メニューから拡張インタフェースに変更できます。"
#. module: base #. module: base
#: model:res.country,name:base.cc #: model:res.country,name:base.cc
msgid "Cocos (Keeling) Islands" msgid "Cocos (Keeling) Islands"
msgstr "" msgstr "ココス諸島"
#. module: base #. module: base
#: selection:base.language.install,state:0 #: selection:base.language.install,state:0
@ -8326,22 +8329,22 @@ msgstr ""
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
msgid "11. %U or %W ==> 48 (49th week)" msgid "11. %U or %W ==> 48 (49th week)"
msgstr "" msgstr "11. %U or %W ==> 4849番目の週"
#. module: base #. module: base
#: model:ir.model,name:base.model_res_partner_bank_type_field #: model:ir.model,name:base.model_res_partner_bank_type_field
msgid "Bank type fields" msgid "Bank type fields"
msgstr "" msgstr "銀行タイプ項目"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Dutch / Nederlands" msgid "Dutch / Nederlands"
msgstr "" msgstr "オランダ"
#. module: base #. module: base
#: selection:res.company,paper_format:0 #: selection:res.company,paper_format:0
msgid "US Letter" msgid "US Letter"
msgstr "" msgstr "US レター"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_stock_location #: model:ir.module.module,description:base.module_stock_location
@ -8433,6 +8436,63 @@ msgid ""
"from Gate A\n" "from Gate A\n"
" " " "
msgstr "" msgstr ""
"\n"
"このモジュールはプッシュ / プル倉庫フローを効果的に実行する倉庫アプリケーションを補います。\n"
"============================================================================="
"===============================\n"
"\n"
"典型的な利用例:\n"
" * 製品製造チェーンの管理\n"
" * 製品ごとのデフォルトロケーションの管理\n"
" * 以下のようなビジネス要求による倉庫の中の経路の定義:\n"
" - 品質管理\n"
" - 販売サービスの後\n"
" - サプライヤ返品\n"
"\n"
" * レンタル製品の自動返品を生成することでレンタル管理を助けます。\n"
"\n"
"ひとたびこのモジュールがインストールされたら、製品フォームに追加タブが現れます。\n"
"そこで、プッシュとプルのフローの仕様を加えることができます。\n"
"CPU製品のプッシュとプルのデモデータ\n"
"\n"
"プッシュフロー\n"
"----------\n"
"プッシュフローは、一定の製品が常に必要に応じて他の場所に対応して動くように到着する時、\n"
"オプションとして一定の遅延がある時に役立ちます。\n"
"オリジナルの倉庫アプリケーションは既にそれ自身にプッシュフローの仕様をサポートしています。\n"
"しかし、これは製品ごとに改良されません。\n"
"\n"
"プッシュプローの仕様は、どの場所がどの場所と何のパラメータでつながれているかを示します。\n"
"製品の所定の量が供給元の場所で動きがあるや否や結び付けられた動作がフロー定義\n"
"(目的地の場所、遅延、移動の種類、ジャーナル他)でセットされたパラメータにしたがって\n"
"自動的に予測されます。\n"
"この新しい動きはパラメータにしたがって自動的に実行されるか、手動確認を要求します。\n"
"\n"
"プルフロー\n"
"----------\n"
"プルフローはプッシュフローとは少し異なっています。これは製品の動きの処理には関係せず、\n"
"むしろ調達した注文の処理に関係します。直接の商品ではなくニーズに依ります。\n"
"プルフローの古典的な例は、供給に責任を持つ親会社を持つアウトレット会社です。\n"
"\n"
" [ 顧客 ] <- A - [ アウトレット ] <- B - [ 親会社 ] <~ C ~ [ 供給者 ]\n"
"\n"
"新しい調達注文A例として注文の確認が来ますがアウトレットに到着すると、それは親会社から要求されたもう一つの調達注文に変換されますBプルフローのタ"
"イプは'move'。親会社により調達注文Bが処理される時、そしてその製品が在庫切れの時、それは供給者からの受注Cプルフローのタイプは購入に変換され"
"ます。結果として調達注文、ニーズは顧客と供給者の間の全てにプッシュされます。\n"
"\n"
"技術的には、プルフローは調達注文と別に処理することを許します。製品に対しての考慮に依存するのみならず、その製品のニーズを持つ場所(即ち調達注文の目的地)に"
"依存します。\n"
"\n"
"使用例\n"
"--------\n"
"\n"
"以下のデモデータを使います:\n"
" CPU1ショップ1からいくらかのCPU1を売り、スケジューラを走らせます。\n"
" - 倉庫配達注文ショップ1: 受付\n"
" CPU3:\n"
" - 商品を受け取る時、それは品質管理場所に行き、棚2に保管されます。\n"
" - 顧客に配達する時:ピックリスト -> 梱包 -> GateAから配達注文\n"
" "
#. module: base #. module: base
#: model:ir.module.module,description:base.module_marketing #: model:ir.module.module,description:base.module_marketing
@ -8444,21 +8504,27 @@ msgid ""
"Contains the installer for marketing-related modules.\n" "Contains the installer for marketing-related modules.\n"
" " " "
msgstr "" msgstr ""
"\n"
"マーケティングメニュー\n"
"===================\n"
"\n"
"マーケティング関連のモジュールのインストーラを含んでいます。\n"
" "
#. module: base #. module: base
#: model:ir.module.category,name:base.module_category_knowledge_management #: model:ir.module.category,name:base.module_category_knowledge_management
msgid "Knowledge Management" msgid "Knowledge Management"
msgstr "" msgstr "知識管理"
#. module: base #. module: base
#: model:ir.actions.act_window,name:base.bank_account_update #: model:ir.actions.act_window,name:base.bank_account_update
msgid "Company Bank Accounts" msgid "Company Bank Accounts"
msgstr "" msgstr "顧客銀行口座"
#. module: base #. module: base
#: help:ir.mail_server,smtp_pass:0 #: help:ir.mail_server,smtp_pass:0
msgid "Optional password for SMTP authentication" msgid "Optional password for SMTP authentication"
msgstr "" msgstr "SMTP認証のための任意のパスワード"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_project_mrp #: model:ir.module.module,description:base.module_project_mrp
@ -8491,6 +8557,25 @@ msgid ""
"task is completed.\n" "task is completed.\n"
"\n" "\n"
msgstr "" msgstr ""
"\n"
"自動的に調達ラインからプロジェクトタスクの生成します。\n"
"==========================================================\n"
"\n"
"対応する製品が以下の特徴を満たす場合、このモジュールはそれぞれの調達注文ライン\n"
"(例えば販売注文ライン)のための新しいタスクを作成します。\n"
"\n"
" ・ タイプ サービス\n"
" ・ 調達手法(注文実現) MTO受注生産\n"
" ・ 供給 / 調達手法 産物\n"
"\n"
"もし先頭のプロジェクトが製品フォーム(調達タブ)で定義されているなら、新しいタスクは\n"
"その特定のプロジェクトの中に作られます。\n"
"それ以外の場合は、新しいタスクはどんなプロジェクトにも属さず、後で手作業でプロジェクトに\n"
"追加されるかも知れません。\n"
"\n"
"プロジェクトのタスクが完了するか、中止される時、調達ラインに対応するワークフローはそれに応じて更新されます。\n"
"例えば、もしこの調達が受注ラインに対応するなら、仕事が完了する時に受注ラインは配達されたと考えられます。\n"
"\n"
#. module: base #. module: base
#: code:addons/base/res/res_config.py:348 #: code:addons/base/res/res_config.py:348
@ -8500,6 +8585,9 @@ msgid ""
"\n" "\n"
"This addon is already installed on your system" "This addon is already installed on your system"
msgstr "" msgstr ""
"\n"
"\n"
"このアドオンは既にシステムにインストール済みです。"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_check_writing #: model:ir.module.module,description:base.module_account_check_writing
@ -8508,11 +8596,14 @@ msgid ""
" Module for the Check writing and check printing \n" " Module for the Check writing and check printing \n"
" " " "
msgstr "" msgstr ""
"\n"
" チェックの作成と印刷のためのモジュール \n"
" "
#. module: base #. module: base
#: model:res.partner.bank.type,name:base.bank_normal #: model:res.partner.bank.type,name:base.bank_normal
msgid "Normal Bank Account" msgid "Normal Bank Account"
msgstr "" msgstr "通常の銀行口座"
#. module: base #. module: base
#: view:ir.actions.wizard:0 #: view:ir.actions.wizard:0
@ -8542,6 +8633,21 @@ msgid ""
"\n" "\n"
" " " "
msgstr "" msgstr ""
"\n"
"このモジュールは受信したEメールを元に自動的にプロジェクトタスクを生成します。\n"
"===========================================================================\n"
"\n"
"所定のメールボックスに到着した新しいEメールを元にタスクの生成を許します。\n"
"同様にCRMアプリケーションがリード / オポチュニティを持つもの。\n"
"メールボックス統合の設定のために2つの共通の選択肢があります:\n"
"\n"
" ・ fetchmailモジュールをインストールし、新しいメールボックスを設定し、それから\n"
"  受信EメールのためにProject Tasksをターゲットとして選んで下さい。\n"
" ・ mail gatewayスクリプトが提供したmailモジュールに基づいて、メールサーバを手作業で設定して、\n"
"  そしてproject.taskモデルにそれを接続して下さい。\n"
"\n"
"\n"
" "
#. module: base #. module: base
#: model:ir.module.module,description:base.module_membership #: model:ir.module.module,description:base.module_membership
@ -8561,6 +8667,18 @@ msgid ""
"invoice and send propositions for membership renewal.\n" "invoice and send propositions for membership renewal.\n"
" " " "
msgstr "" msgstr ""
"\n"
"このモジュールはメンバーシップの管理のために、全ての管理操作を許可します。\n"
"=========================================================================\n"
"\n"
"以下の異なった種類の会員をサポートします:\n"
"・ 無料会員\n"
"・ 関連会員(例:全ての子会社のメンバーシップのためのグループ加入)\n"
"・ 有料会員\n"
"・ 特別な会員価格など\n"
"\n"
"メンバーシップ更新のための請求書を作り、条件書を送付するために、これは販売と会計と統合されます。\n"
" "
#. module: base #. module: base
#: model:ir.module.module,description:base.module_hr_attendance #: model:ir.module.module,description:base.module_hr_attendance
@ -8573,46 +8691,52 @@ msgid ""
"actions(Sign in/Sign out) performed by them.\n" "actions(Sign in/Sign out) performed by them.\n"
" " " "
msgstr "" msgstr ""
"\n"
"このモジュールは従業員の出勤管理を目指しています。\n"
"==================================================\n"
"\n"
"従業員自身が行ったサインイン / サインアウトの行動をベースにして、従業員の出勤の根拠を保持します。\n"
" "
#. module: base #. module: base
#: field:ir.module.module,maintainer:0 #: field:ir.module.module,maintainer:0
msgid "Maintainer" msgid "Maintainer"
msgstr "" msgstr "保守担当者"
#. module: base #. module: base
#: field:ir.sequence,suffix:0 #: field:ir.sequence,suffix:0
msgid "Suffix" msgid "Suffix"
msgstr "" msgstr "サフィックス"
#. module: base #. module: base
#: model:res.country,name:base.mo #: model:res.country,name:base.mo
msgid "Macau" msgid "Macau"
msgstr "" msgstr "マカオ"
#. module: base #. module: base
#: model:ir.actions.report.xml,name:base.res_partner_address_report #: model:ir.actions.report.xml,name:base.res_partner_address_report
msgid "Labels" msgid "Labels"
msgstr "" msgstr "ラベル"
#. module: base #. module: base
#: field:partner.massmail.wizard,email_from:0 #: field:partner.massmail.wizard,email_from:0
msgid "Sender's email" msgid "Sender's email"
msgstr "" msgstr "送信者のEメール"
#. module: base #. module: base
#: field:ir.default,field_name:0 #: field:ir.default,field_name:0
msgid "Object Field" msgid "Object Field"
msgstr "" msgstr "オブジェクト項目"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (PE) / Español (PE)" msgid "Spanish (PE) / Español (PE)"
msgstr "" msgstr "スペイン語(ペルー)/ Español (PE)"
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "French (CH) / Français (CH)" msgid "French (CH) / Français (CH)"
msgstr "" msgstr "フランス語(スイス)/ Français (CH)"
#. module: base #. module: base
#: help:ir.actions.server,subject:0 #: help:ir.actions.server,subject:0
@ -8621,6 +8745,8 @@ msgid ""
"the same values as those available in the condition field, e.g. `Hello [[ " "the same values as those available in the condition field, e.g. `Hello [[ "
"object.partner_id.name ]]`" "object.partner_id.name ]]`"
msgstr "" msgstr ""
"電子メールの件名には条件項目で使用可能な同じ値を元にした二重括弧で囲まれた表現、例えば、‘こんにちは[[ object.partner_id.name "
"]]’を含むことができます。"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_account_sequence #: model:ir.module.module,description:base.module_account_sequence
@ -8639,11 +8765,24 @@ msgid ""
" * Number Padding\n" " * Number Padding\n"
" " " "
msgstr "" msgstr ""
"\n"
"このモジュールは会計項目のために内部の連続番号を維持管理します。\n"
"======================================================================\n"
"\n"
"あなたは会計の順序が維持されるように設定することができます。\n"
"\n"
"以下の順序の属性をカスタマイズできます:\n"
" ・ プレフィックス(接頭辞)\n"
" ・ サフィックス(接尾辞)\n"
" ・ 次の番号\n"
" ・ 増分番号\n"
" ・ 番号埋め文字\n"
" "
#. module: base #. module: base
#: model:res.country,name:base.to #: model:res.country,name:base.to
msgid "Tonga" msgid "Tonga"
msgstr "" msgstr "トンガ"
#. module: base #. module: base
#: help:ir.model.fields,serialization_field_id:0 #: help:ir.model.fields,serialization_field_id:0
@ -8652,35 +8791,37 @@ msgid ""
"serialization field, instead of having its own database column. This cannot " "serialization field, instead of having its own database column. This cannot "
"be changed after creation." "be changed after creation."
msgstr "" msgstr ""
"もしセットする場合、この項目は自身のデータベースのカラムの代わりに、シリアライズされた項目の疎な構造の中に保存されます。これを作成した後で、変更することは"
"できません。"
#. module: base #. module: base
#: view:res.partner.bank:0 #: view:res.partner.bank:0
msgid "Bank accounts belonging to one of your companies" msgid "Bank accounts belonging to one of your companies"
msgstr "" msgstr "銀行口座はあなたの会社の一つに属します。"
#. module: base #. module: base
#: help:res.users,action_id:0 #: help:res.users,action_id:0
msgid "" msgid ""
"If specified, this action will be opened at logon for this user, in addition " "If specified, this action will be opened at logon for this user, in addition "
"to the standard menu." "to the standard menu."
msgstr "" msgstr "もし指定された場合,このアクションは標準メニューに追加され、このユーザに対してログイン時に開かれます。"
#. module: base #. module: base
#: selection:ir.module.module,complexity:0 #: selection:ir.module.module,complexity:0
msgid "Easy" msgid "Easy"
msgstr "" msgstr "易しい"
#. module: base #. module: base
#: view:ir.values:0 #: view:ir.values:0
msgid "Client Actions" msgid "Client Actions"
msgstr "" msgstr "顧客アクション"
#. module: base #. module: base
#: help:ir.actions.server,trigger_obj_id:0 #: help:ir.actions.server,trigger_obj_id:0
msgid "" msgid ""
"The field on the current object that links to the target object record (must " "The field on the current object that links to the target object record (must "
"be a many2one, or an integer field with the record ID)" "be a many2one, or an integer field with the record ID)"
msgstr "" msgstr "現在のオブジェクトのその項目は、目的のオブジェクトレコードレコードIDを持ち多対の関係か、または整数項目であるにリンクします。"
#. module: base #. module: base
#: code:addons/base/module/module.py:423 #: code:addons/base/module/module.py:423
@ -8689,18 +8830,20 @@ msgid ""
"You try to upgrade a module that depends on the module: %s.\n" "You try to upgrade a module that depends on the module: %s.\n"
"But this module is not available in your system." "But this module is not available in your system."
msgstr "" msgstr ""
"あなたは次のモジュールに依存するモジュールをアップグレードしようとしています: %s.\n"
"しかし、そのモジュールはあなたのシステムでは使用できません。"
#. module: base #. module: base
#: field:workflow.transition,act_to:0 #: field:workflow.transition,act_to:0
msgid "Destination Activity" msgid "Destination Activity"
msgstr "" msgstr "目的地のアクティビティ"
#. module: base #. module: base
#: help:res.currency,position:0 #: help:res.currency,position:0
msgid "" msgid ""
"Determines where the currency symbol should be placed after or before the " "Determines where the currency symbol should be placed after or before the "
"amount." "amount."
msgstr "" msgstr "通貨記号が金額の前後、どちらに置かれるべきなのかを決定します。"
#. module: base #. module: base
#: model:ir.model,name:base.model_base_update_translations #: model:ir.model,name:base.model_base_update_translations
@ -8710,7 +8853,7 @@ msgstr ""
#. module: base #. module: base
#: field:res.partner.category,parent_id:0 #: field:res.partner.category,parent_id:0
msgid "Parent Category" msgid "Parent Category"
msgstr "" msgstr "親分類"
#. module: base #. module: base
#: selection:ir.property,type:0 #: selection:ir.property,type:0
@ -8721,12 +8864,12 @@ msgstr ""
#: selection:res.partner.address,type:0 #: selection:res.partner.address,type:0
#: selection:res.partner.title,domain:0 #: selection:res.partner.title,domain:0
msgid "Contact" msgid "Contact"
msgstr "" msgstr "コンタクト"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_at #: model:ir.module.module,shortdesc:base.module_l10n_at
msgid "Austria - Accounting" msgid "Austria - Accounting"
msgstr "" msgstr "オーストラリア-会計"
#. module: base #. module: base
#: model:ir.model,name:base.model_ir_ui_menu #: model:ir.model,name:base.model_ir_ui_menu
@ -8737,39 +8880,39 @@ msgstr ""
#: model:ir.module.category,name:base.module_category_project_management #: model:ir.module.category,name:base.module_category_project_management
#: model:ir.module.module,shortdesc:base.module_project #: model:ir.module.module,shortdesc:base.module_project
msgid "Project Management" msgid "Project Management"
msgstr "" msgstr "プロジェクト管理"
#. module: base #. module: base
#: model:res.country,name:base.us #: model:res.country,name:base.us
msgid "United States" msgid "United States"
msgstr "" msgstr "アメリカ合衆国"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_crm_fundraising #: model:ir.module.module,shortdesc:base.module_crm_fundraising
msgid "Fundraising" msgid "Fundraising"
msgstr "" msgstr "募金"
#. module: base #. module: base
#: view:ir.module.module:0 #: view:ir.module.module:0
msgid "Cancel Uninstall" msgid "Cancel Uninstall"
msgstr "" msgstr "アンインストールのキャンセル"
#. module: base #. module: base
#: view:res.bank:0 #: view:res.bank:0
#: view:res.partner:0 #: view:res.partner:0
#: view:res.partner.address:0 #: view:res.partner.address:0
msgid "Communication" msgid "Communication"
msgstr "" msgstr "通信"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_analytic #: model:ir.module.module,shortdesc:base.module_analytic
msgid "Analytic Accounting" msgid "Analytic Accounting"
msgstr "" msgstr "分析会計"
#. module: base #. module: base
#: view:ir.actions.report.xml:0 #: view:ir.actions.report.xml:0
msgid "RML Report" msgid "RML Report"
msgstr "" msgstr "RMLレポート"
#. module: base #. module: base
#: model:ir.model,name:base.model_ir_server_object_lines #: model:ir.model,name:base.model_ir_server_object_lines
@ -8779,23 +8922,23 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_be #: model:ir.module.module,shortdesc:base.module_l10n_be
msgid "Belgium - Accounting" msgid "Belgium - Accounting"
msgstr "" msgstr "ベルギー-会計"
#. module: base #. module: base
#: code:addons/base/module/module.py:622 #: code:addons/base/module/module.py:622
#, python-format #, python-format
msgid "Module %s: Invalid Quality Certificate" msgid "Module %s: Invalid Quality Certificate"
msgstr "" msgstr "モジュール %s 無効な品質証明書"
#. module: base #. module: base
#: model:res.country,name:base.kw #: model:res.country,name:base.kw
msgid "Kuwait" msgid "Kuwait"
msgstr "" msgstr "クウェート"
#. module: base #. module: base
#: field:workflow.workitem,inst_id:0 #: field:workflow.workitem,inst_id:0
msgid "Instance" msgid "Instance"
msgstr "" msgstr "インスタンス"
#. module: base #. module: base
#: help:ir.actions.report.xml,attachment:0 #: help:ir.actions.report.xml,attachment:0
@ -8804,23 +8947,25 @@ msgid ""
"Keep empty to not save the printed reports. You can use a python expression " "Keep empty to not save the printed reports. You can use a python expression "
"with the object and time variables." "with the object and time variables."
msgstr "" msgstr ""
"これは印刷結果を保存するために使われる添付ファイルのファイル名です。印刷レポートを保存しない場合は、空の状態にして下さい。オブジェクトと時間変数にはpyt"
"hon表現を使うことができます。"
#. module: base #. module: base
#: sql_constraint:ir.model.data:0 #: sql_constraint:ir.model.data:0
msgid "" msgid ""
"You cannot have multiple records with the same external ID in the same " "You cannot have multiple records with the same external ID in the same "
"module!" "module!"
msgstr "" msgstr "同じモジュールの中に、同じ外部IDで複数のレコードを持つことはできません。"
#. module: base #. module: base
#: selection:ir.property,type:0 #: selection:ir.property,type:0
msgid "Many2One" msgid "Many2One"
msgstr "" msgstr "多対1"
#. module: base #. module: base
#: model:res.country,name:base.ng #: model:res.country,name:base.ng
msgid "Nigeria" msgid "Nigeria"
msgstr "" msgstr "ナイジェリア"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_crm_caldav #: model:ir.module.module,description:base.module_crm_caldav
@ -8831,41 +8976,46 @@ msgid ""
"\n" "\n"
" * Share meeting with other calendar clients like sunbird\n" " * Share meeting with other calendar clients like sunbird\n"
msgstr "" msgstr ""
"\n"
"ミーティングにおけるCaldavの機能\n"
"===========================\n"
"\n"
" ・ Sunbirdなど他のカレンダークライアントとミーティング情報を共有できます。\n"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_base_iban #: model:ir.module.module,shortdesc:base.module_base_iban
msgid "IBAN Bank Accounts" msgid "IBAN Bank Accounts"
msgstr "" msgstr "IBAN銀行口座"
#. module: base #. module: base
#: field:res.company,user_ids:0 #: field:res.company,user_ids:0
msgid "Accepted Users" msgid "Accepted Users"
msgstr "" msgstr "受け入れられたユーザ"
#. module: base #. module: base
#: field:ir.ui.menu,web_icon_data:0 #: field:ir.ui.menu,web_icon_data:0
msgid "Web Icon Image" msgid "Web Icon Image"
msgstr "" msgstr "Webアイコンイメージ"
#. module: base #. module: base
#: field:ir.actions.server,wkf_model_id:0 #: field:ir.actions.server,wkf_model_id:0
msgid "Target Object" msgid "Target Object"
msgstr "" msgstr "目的のオブジェクト"
#. module: base #. module: base
#: selection:ir.model.fields,select_level:0 #: selection:ir.model.fields,select_level:0
msgid "Always Searchable" msgid "Always Searchable"
msgstr "" msgstr "常時検索可能"
#. module: base #. module: base
#: model:res.country,name:base.hk #: model:res.country,name:base.hk
msgid "Hong Kong" msgid "Hong Kong"
msgstr "" msgstr "香港"
#. module: base #. module: base
#: field:ir.default,ref_id:0 #: field:ir.default,ref_id:0
msgid "ID Ref." msgid "ID Ref."
msgstr "" msgstr "ID参照"
#. module: base #. module: base
#: model:ir.actions.act_window,help:base.action_partner_address_form #: model:ir.actions.act_window,help:base.action_partner_address_form
@ -9337,7 +9487,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (EC) / Español (EC)" msgid "Spanish (EC) / Español (EC)"
msgstr "" msgstr "スペイン語(エクアドル)/ Español (EC)"
#. module: base #. module: base
#: help:ir.ui.view,xml_id:0 #: help:ir.ui.view,xml_id:0
@ -9964,7 +10114,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Flemish (BE) / Vlaams (BE)" msgid "Flemish (BE) / Vlaams (BE)"
msgstr "" msgstr "フラマン語(ベルギー)/ Vlaams (BE)"
#. module: base #. module: base
#: field:ir.cron,interval_number:0 #: field:ir.cron,interval_number:0
@ -10817,7 +10967,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (CO) / Español (CO)" msgid "Spanish (CO) / Español (CO)"
msgstr "" msgstr "スペイン語(コロンビア)/ Español (CO)"
#. module: base #. module: base
#: view:base.module.configuration:0 #: view:base.module.configuration:0
@ -10935,7 +11085,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_cn #: model:ir.module.module,shortdesc:base.module_l10n_cn
msgid "中国会计科目表 - Accounting" msgid "中国会计科目表 - Accounting"
msgstr "" msgstr "中国-会計"
#. module: base #. module: base
#: view:ir.model.access:0 #: view:ir.model.access:0
@ -10964,7 +11114,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Chinese (TW) / 正體字" msgid "Chinese (TW) / 正體字"
msgstr "" msgstr "中国語(台湾)/ 正體字"
#. module: base #. module: base
#: model:ir.model,name:base.model_res_request #: model:ir.model,name:base.model_res_request
@ -11433,7 +11583,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (CR) / Español (CR)" msgid "Spanish (CR) / Español (CR)"
msgstr "" msgstr "スペイン語(コスタリカ)/ Español (CR)"
#. module: base #. module: base
#: view:ir.rule:0 #: view:ir.rule:0
@ -11653,7 +11803,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_br #: model:ir.module.module,shortdesc:base.module_l10n_br
msgid "Brazilian - Accounting" msgid "Brazilian - Accounting"
msgstr "" msgstr "ブラジル-会計"
#. module: base #. module: base
#: model:res.country,name:base.pk #: model:res.country,name:base.pk
@ -12328,7 +12478,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (NI) / Español (NI)" msgid "Spanish (NI) / Español (NI)"
msgstr "" msgstr "スペイン語(ニカラグア)/ Español (NI)"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_product_visible_discount #: model:ir.module.module,description:base.module_product_visible_discount
@ -12666,7 +12816,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_uk #: model:ir.module.module,shortdesc:base.module_l10n_uk
msgid "UK - Accounting" msgid "UK - Accounting"
msgstr "" msgstr "イギリス-会計"
#. module: base #. module: base
#: model:ir.module.module,description:base.module_project_scrum #: model:ir.module.module,description:base.module_project_scrum
@ -12737,7 +12887,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_in #: model:ir.module.module,shortdesc:base.module_l10n_in
msgid "India - Accounting" msgid "India - Accounting"
msgstr "" msgstr "インド-会計"
#. module: base #. module: base
#: field:ir.actions.server,expression:0 #: field:ir.actions.server,expression:0
@ -12752,7 +12902,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_gt #: model:ir.module.module,shortdesc:base.module_l10n_gt
msgid "Guatemala - Accounting" msgid "Guatemala - Accounting"
msgstr "" msgstr "グアテマラ-会計"
#. module: base #. module: base
#: help:ir.cron,args:0 #: help:ir.cron,args:0
@ -13713,7 +13863,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_th #: model:ir.module.module,shortdesc:base.module_l10n_th
msgid "Thailand - Accounting" msgid "Thailand - Accounting"
msgstr "" msgstr "タイ-会計"
#. module: base #. module: base
#: view:res.lang:0 #: view:res.lang:0
@ -14334,7 +14484,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_es #: model:ir.module.module,shortdesc:base.module_l10n_es
msgid "Spanish - Accounting (PGCE 2008)" msgid "Spanish - Accounting (PGCE 2008)"
msgstr "" msgstr "スペイン会計PGCE 2008"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_stock_no_autopicking #: model:ir.module.module,shortdesc:base.module_stock_no_autopicking
@ -14429,7 +14579,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_nl #: model:ir.module.module,shortdesc:base.module_l10n_nl
msgid "Netherlands - Accounting" msgid "Netherlands - Accounting"
msgstr "" msgstr "オランダ-会計"
#. module: base #. module: base
#: field:res.bank,bic:0 #: field:res.bank,bic:0
@ -14743,7 +14893,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Serbian (Cyrillic) / српски" msgid "Serbian (Cyrillic) / српски"
msgstr "" msgstr "セルビア語(キリル文字)/ српски"
#. module: base #. module: base
#: code:addons/orm.py:2527 #: code:addons/orm.py:2527
@ -15137,7 +15287,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_de #: model:ir.module.module,shortdesc:base.module_l10n_de
msgid "Deutschland - Accounting" msgid "Deutschland - Accounting"
msgstr "" msgstr "ドイツ-会計"
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_auction #: model:ir.module.module,shortdesc:base.module_auction
@ -15391,7 +15541,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_fr #: model:ir.module.module,shortdesc:base.module_l10n_fr
msgid "France - Accounting" msgid "France - Accounting"
msgstr "" msgstr "フランス-会計"
#. module: base #. module: base
#: view:ir.actions.todo:0 #: view:ir.actions.todo:0
@ -15720,7 +15870,7 @@ msgstr ""
#. module: base #. module: base
#: selection:base.language.install,lang:0 #: selection:base.language.install,lang:0
msgid "Spanish (SV) / Español (SV)" msgid "Spanish (SV) / Español (SV)"
msgstr "" msgstr "スペイン語(エルサルバドル)/ Español (SV)"
#. module: base #. module: base
#: help:res.lang,grouping:0 #: help:res.lang,grouping:0
@ -15803,7 +15953,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ca #: model:ir.module.module,shortdesc:base.module_l10n_ca
msgid "Canada - Accounting" msgid "Canada - Accounting"
msgstr "" msgstr "カナダ-会計"
#. module: base #. module: base
#: model:ir.actions.act_window,name:base.act_ir_actions_todo_form #: model:ir.actions.act_window,name:base.act_ir_actions_todo_form
@ -15842,7 +15992,7 @@ msgstr ""
#. module: base #. module: base
#: model:ir.module.module,shortdesc:base.module_l10n_ve #: model:ir.module.module,shortdesc:base.module_l10n_ve
msgid "Venezuela - Accounting" msgid "Venezuela - Accounting"
msgstr "" msgstr "ベネズエラ-会計"
#. module: base #. module: base
#: model:res.country,name:base.cl #: model:res.country,name:base.cl

View File

@ -22,6 +22,7 @@
from email.MIMEText import MIMEText from email.MIMEText import MIMEText
from email.MIMEBase import MIMEBase from email.MIMEBase import MIMEBase
from email.MIMEMultipart import MIMEMultipart from email.MIMEMultipart import MIMEMultipart
from email.Charset import Charset
from email.Header import Header from email.Header import Header
from email.Utils import formatdate, make_msgid, COMMASPACE from email.Utils import formatdate, make_msgid, COMMASPACE
from email import Encoders from email import Encoders
@ -97,6 +98,26 @@ def encode_header(header_text):
return header_text_ascii if header_text_ascii\ return header_text_ascii if header_text_ascii\
else Header(header_text_utf8, 'utf-8') else Header(header_text_utf8, 'utf-8')
def encode_header_param(param_text):
"""Returns an appropriate RFC2047 encoded representation of the given
header parameter value, suitable for direct assignation as the
param value (e.g. via Message.set_param() or Message.add_header())
RFC2822 assumes that headers contain only 7-bit characters,
so we ensure it is the case, using RFC2047 encoding when needed.
:param param_text: unicode or utf-8 encoded string with header value
:rtype: string
:return: if ``param_text`` represents a plain ASCII string,
return the same 7-bit string, otherwise returns an
ASCII string containing the RFC2047 encoded text.
"""
# For details see the encode_header() method that uses the same logic
if not param_text: return ""
param_text_utf8 = tools.ustr(param_text).encode('utf-8')
param_text_ascii = try_coerce_ascii(param_text_utf8)
return param_text_ascii if param_text_ascii\
else Charset('utf8').header_encode(param_text_utf8)
name_with_email_pattern = re.compile(r'("[^<@>]+")\s*<([^ ,<@]+@[^> ,]+)>') name_with_email_pattern = re.compile(r'("[^<@>]+")\s*<([^ ,<@]+@[^> ,]+)>')
address_pattern = re.compile(r'([^ ,<@]+@[^> ,]+)') address_pattern = re.compile(r'([^ ,<@]+@[^> ,]+)')
@ -309,7 +330,7 @@ class ir_mail_server(osv.osv):
msg['Cc'] = encode_rfc2822_address_header(COMMASPACE.join(email_cc)) msg['Cc'] = encode_rfc2822_address_header(COMMASPACE.join(email_cc))
if email_bcc: if email_bcc:
msg['Bcc'] = encode_rfc2822_address_header(COMMASPACE.join(email_bcc)) msg['Bcc'] = encode_rfc2822_address_header(COMMASPACE.join(email_bcc))
msg['Date'] = formatdate(localtime=True) msg['Date'] = formatdate()
# Custom headers may override normal headers or provide additional ones # Custom headers may override normal headers or provide additional ones
for key, value in headers.iteritems(): for key, value in headers.iteritems():
msg[ustr(key).encode('utf-8')] = encode_header(value) msg[ustr(key).encode('utf-8')] = encode_header(value)
@ -334,14 +355,16 @@ class ir_mail_server(osv.osv):
if attachments: if attachments:
for (fname, fcontent) in attachments: for (fname, fcontent) in attachments:
filename_utf8 = ustr(fname).encode('utf-8') filename_rfc2047 = encode_header_param(fname)
part = MIMEBase('application', "octet-stream") part = MIMEBase('application', "octet-stream")
# The default RFC2231 encoding of Message.add_header() works in Thunderbird but not GMail
# so we fix it by using RFC2047 encoding for the filename instead.
part.set_param('name', filename_rfc2047)
part.add_header('Content-Disposition', 'attachment', filename=filename_rfc2047)
part.set_payload(fcontent) part.set_payload(fcontent)
Encoders.encode_base64(part) Encoders.encode_base64(part)
# Force RFC2231 encoding for attachment filename
# See email.message.Message.add_header doc
part.add_header('Content-Disposition', 'attachment',
filename=('utf-8',None,filename_utf8))
msg.attach(part) msg.attach(part)
return msg return msg

View File

@ -404,7 +404,7 @@ class ir_values(osv.osv):
results[action['name']] = (action['id'], action['name'], action_def) results[action['name']] = (action['id'], action['name'], action_def)
except except_orm, e: except except_orm, e:
continue continue
return results.values() return sorted(results.values())
def _map_legacy_model_list(self, model_list, map_fn, merge_results=False): def _map_legacy_model_list(self, model_list, map_fn, merge_results=False):
"""Apply map_fn to the various models passed, according to """Apply map_fn to the various models passed, according to

View File

@ -452,6 +452,7 @@ class module(osv.osv):
'sequence': terp.get('sequence', 100), 'sequence': terp.get('sequence', 100),
'application': terp.get('application', False), 'application': terp.get('application', False),
'auto_install': terp.get('auto_install', False), 'auto_install': terp.get('auto_install', False),
'icon': terp.get('icon', False),
} }
# update the list of available packages # update the list of available packages

View File

@ -380,6 +380,7 @@ class res_partner(osv.osv):
).res_id ).res_id
def _display_address(self, cr, uid, address, type, context=None): def _display_address(self, cr, uid, address, type, context=None):
''' '''
The purpose of this function is to build and return an address formatted accordingly to the The purpose of this function is to build and return an address formatted accordingly to the
standards of the country where it belongs. standards of the country where it belongs.

View File

@ -6,7 +6,11 @@
web_icon_hover="data/sales-hover.png" web_icon_hover="data/sales-hover.png"
groups="base.group_sale_salesman"/> groups="base.group_sale_salesman"/>
<menuitem id="menu_address_book" name="Address Book" parent="menu_base_partner" sequence="2"/> <menuitem id="base.menu_sales" name="Sales"
parent="base.menu_base_partner" sequence="1"
/>
<!-- <menuitem id="menu_address_book" name="Address Book" parent="menu_base_partner" sequence="2"/> -->
<menuitem id="menu_base_config" name="Configuration" parent="menu_base_partner" sequence="30" <menuitem id="menu_base_config" name="Configuration" parent="menu_base_partner" sequence="30"
groups="group_system"/> groups="group_system"/>
@ -175,7 +179,7 @@
</kanban> </kanban>
</field> </field>
</record> </record>
<record id="action_partner_address_form" model="ir.actions.act_window"> <record id="action_partner_address_form" model="ir.actions.act_window">
<field name="name">Addresses</field> <field name="name">Addresses</field>
<field name="type">ir.actions.act_window</field> <field name="type">ir.actions.act_window</field>
@ -605,8 +609,8 @@
<menuitem <menuitem
action="action_partner_form" action="action_partner_form"
id="menu_partner_form" id="menu_partner_form"
parent="base.menu_address_book" parent="base.menu_sales"
sequence="2"/> sequence="8"/>
<record id="action_partner_customer_form" model="ir.actions.act_window"> <record id="action_partner_customer_form" model="ir.actions.act_window">
<field name="name">Customers</field> <field name="name">Customers</field>

View File

@ -35,8 +35,8 @@
<field name="name">user rule</field> <field name="name">user rule</field>
<field model="ir.model" name="model_id" ref="model_res_users"/> <field model="ir.model" name="model_id" ref="model_res_users"/>
<field eval="True" name="global"/> <field eval="True" name="global"/>
<field name="domain_force">['|',('company_id.child_ids','child_of',[user.company_id.id]),('company_id','child_of',[user.company_id.id])]</field> <field name="domain_force">[('company_ids','child_of',[user.company_id.id])]</field>
</record> </record>
</data> </data>
</openerp> </openerp>

View File

@ -34,6 +34,9 @@ from service import security
from tools.translate import _ from tools.translate import _
import openerp import openerp
import openerp.exceptions import openerp.exceptions
from lxml import etree
from lxml.builder import E
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
@ -743,29 +746,27 @@ class groups_view(osv.osv):
# and introduces the reified group fields # and introduces the reified group fields
view = self.get_user_groups_view(cr, uid, context) view = self.get_user_groups_view(cr, uid, context)
if view: if view:
xml = u"""<?xml version="1.0" encoding="utf-8"?>
<!-- GENERATED AUTOMATICALLY BY GROUPS -->
<field name="groups_id" position="replace">
%s
%s
</field>
"""
xml1, xml2 = [], [] xml1, xml2 = [], []
xml1.append('<separator string="%s" colspan="4"/>' % _('Applications')) xml1.append(E.separator(string=_('Application'), colspan="4"))
for app, kind, gs in self.get_groups_by_application(cr, uid, context): for app, kind, gs in self.get_groups_by_application(cr, uid, context):
if kind == 'selection': if kind == 'selection':
# application name with a selection field # application name with a selection field
field_name = name_selection_groups(map(int, gs)) field_name = name_selection_groups(map(int, gs))
xml1.append('<field name="%s"/>' % field_name) xml1.append(E.field(name=field_name))
xml1.append('<newline/>') xml1.append(E.newline())
else: else:
# application separator with boolean fields # application separator with boolean fields
app_name = app and app.name or _('Other') app_name = app and app.name or _('Other')
xml2.append('<separator string="%s" colspan="4"/>' % app_name) xml2.append(E.separator(string=app_name, colspan="4"))
for g in gs: for g in gs:
field_name = name_boolean_group(g.id) field_name = name_boolean_group(g.id)
xml2.append('<field name="%s"/>' % field_name) xml2.append(E.field(name=field_name))
view.write({'arch': xml % ('\n'.join(xml1), '\n'.join(xml2))})
xml = E.field(*(xml1 + xml2), name="groups_id", position="replace")
xml.addprevious(etree.Comment("GENERATED AUTOMATICALLY BY GROUPS"))
xml_content = etree.tostring(xml, pretty_print=True, xml_declaration=True, encoding="utf-8")
view.write({'arch': xml_content})
return True return True
def get_user_groups_view(self, cr, uid, context=None): def get_user_groups_view(self, cr, uid, context=None):

View File

@ -173,6 +173,8 @@ class db(netsvc.ExportService):
raise Exception, e raise Exception, e
def exp_drop(self, db_name): def exp_drop(self, db_name):
if not self.exp_db_exist(db_name):
return False
openerp.modules.registry.RegistryManager.delete(db_name) openerp.modules.registry.RegistryManager.delete(db_name)
sql_db.close_db(db_name) sql_db.close_db(db_name)
@ -180,6 +182,17 @@ class db(netsvc.ExportService):
cr = db.cursor() cr = db.cursor()
cr.autocommit(True) # avoid transaction block cr.autocommit(True) # avoid transaction block
try: try:
# Try to terminate all other connections that might prevent
# dropping the database
try:
cr.execute("""SELECT pg_terminate_backend(procpid)
FROM pg_stat_activity
WHERE datname = %s AND
procpid != pg_backend_pid()""",
(db_name,))
except Exception:
pass
try: try:
cr.execute('DROP DATABASE "%s"' % db_name) cr.execute('DROP DATABASE "%s"' % db_name)
except Exception, e: except Exception, e:

View File

@ -313,7 +313,8 @@ class graph(object):
self.order[level] = self.order[level]+1 self.order[level] = self.order[level]+1
for sec_end in self.transitions.get(node, []): for sec_end in self.transitions.get(node, []):
self.init_order(sec_end, self.result[sec_end]['x']) if node!=sec_end:
self.init_order(sec_end, self.result[sec_end]['x'])
def order_heuristic(self): def order_heuristic(self):
@ -438,33 +439,27 @@ class graph(object):
l.reverse() l.reverse()
no = len(l) no = len(l)
if no%2==0: rest = no%2
first_half = l[no/2:] first_half = l[no/2+rest:]
factor = 1
else:
first_half = l[no/2+1:]
factor = 0
last_half = l[:no/2] last_half = l[:no/2]
i=1 for i, child in enumerate(first_half):
for child in first_half: self.result[child]['y'] = mid_pos - (i+1 - (0 if rest else 0.5))
self.result[child]['y'] = mid_pos - (i - (factor * 0.5))
i += 1
if self.transitions.get(child, False): if self.transitions.get(child, False):
if last: if last:
self.result[child]['y'] = last + len(self.transitions[child])/2 + 1 self.result[child]['y'] = last + len(self.transitions[child])/2 + 1
last = self.tree_order(child, last) last = self.tree_order(child, last)
if no%2: if rest:
mid_node = l[no/2] mid_node = l[no/2]
self.result[mid_node]['y'] = mid_pos self.result[mid_node]['y'] = mid_pos
if self.transitions.get((mid_node), False): if self.transitions.get((mid_node), False):
if last: if last:
self.result[mid_node]['y'] = last + len(self.transitions[mid_node])/2 + 1 self.result[mid_node]['y'] = last + len(self.transitions[mid_node])/2 + 1
last = self.tree_order(mid_node) if node!=mid_node:
last = self.tree_order(mid_node)
else: else:
if last: if last:
self.result[mid_node]['y'] = last + 1 self.result[mid_node]['y'] = last + 1
@ -474,13 +469,14 @@ class graph(object):
i=1 i=1
last_child = None last_child = None
for child in last_half: for child in last_half:
self.result[child]['y'] = mid_pos + (i - (factor * 0.5)) self.result[child]['y'] = mid_pos + (i - (0 if rest else 0.5))
last_child = child last_child = child
i += 1 i += 1
if self.transitions.get(child, False): if self.transitions.get(child, False):
if last: if last:
self.result[child]['y'] = last + len(self.transitions[child])/2 + 1 self.result[child]['y'] = last + len(self.transitions[child])/2 + 1
last = self.tree_order(child, last) if node!=child:
last = self.tree_order(child, last)
if last_child: if last_child:
last = self.result[last_child]['y'] last = self.result[last_child]['y']