[Merge]Merge lp:openobject-addons
bzr revid: vja@tinyerp.com-20130226045258-r9hlkxm6p59yq4fk bzr revid: vja@tinyerp.com-20130227091843-711xoqi8hhkzheoa
This commit is contained in:
@@ -8,19 +8,19 @@ msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
|
||||
"PO-Revision-Date: 2011-05-06 12:05+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"PO-Revision-Date: 2013-02-25 14:55+0000\n"
|
||||
"Last-Translator: Софче Димитријева <Unknown>\n"
|
||||
"Language-Team: Macedonian <mk@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-12-22 06:02+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-26 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16506)\n"
|
||||
|
||||
#. module: account_accountant
|
||||
#: model:ir.actions.client,name:account_accountant.action_client_account_menu
|
||||
msgid "Open Accounting Menu"
|
||||
msgstr ""
|
||||
msgstr "Отвори го менито за сметководство"
|
||||
|
||||
#~ msgid ""
|
||||
#~ "\n"
|
||||
|
||||
@@ -152,7 +152,7 @@
|
||||
name="action_button_convert2opportunity"
|
||||
states="open,pending"
|
||||
icon="gtk-index"
|
||||
type="action" attrs="{'invisible':[('opportunity_id','!=',False)]}"/>
|
||||
type="object" attrs="{'invisible':[('opportunity_id','!=',False)]}"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -0,0 +1,188 @@
|
||||
# Arabic translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2013-02-25 21: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: 2013-02-26 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16506)\n"
|
||||
|
||||
#. module: google_docs
|
||||
#: code:addons/google_docs/google_docs.py:139
|
||||
#, python-format
|
||||
msgid "Key Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: view:google.docs.config:0
|
||||
msgid ""
|
||||
"for a presentation (slide show) document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
|
||||
".p`, the ID is `presentation:123456789`"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: view:google.docs.config:0
|
||||
msgid ""
|
||||
"for a text document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
|
||||
"`document:123456789`"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: field:google.docs.config,gdocs_resource_id:0
|
||||
msgid "Google Resource ID to Use as Template"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: view:google.docs.config:0
|
||||
msgid ""
|
||||
"for a drawing document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
|
||||
"`drawings:123456789`"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#. openerp-web
|
||||
#: code:addons/google_docs/static/src/xml/gdocs.xml:6
|
||||
#, python-format
|
||||
msgid "Add Google Doc..."
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: view:google.docs.config:0
|
||||
msgid ""
|
||||
"This is the id of the template document, on google side. You can find it "
|
||||
"thanks to its URL:"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: model:ir.model,name:google_docs.model_google_docs_config
|
||||
msgid "Google Docs templates config"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#. openerp-web
|
||||
#: code:addons/google_docs/static/src/js/gdocs.js:25
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The user google credentials are not set yet. Contact your administrator for "
|
||||
"help."
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: view:google.docs.config:0
|
||||
msgid ""
|
||||
"for a spreadsheet document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
|
||||
"the ID is `spreadsheet:123456789`"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: code:addons/google_docs/google_docs.py:101
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Your resource id is not correct. You can find the id in the google docs URL."
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: code:addons/google_docs/google_docs.py:125
|
||||
#, python-format
|
||||
msgid "Creating google docs may only be done by one at a time."
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: code:addons/google_docs/google_docs.py:56
|
||||
#: code:addons/google_docs/google_docs.py:101
|
||||
#: code:addons/google_docs/google_docs.py:125
|
||||
#, python-format
|
||||
msgid "Google Docs Error!"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: code:addons/google_docs/google_docs.py:56
|
||||
#, python-format
|
||||
msgid "Check your google configuration in Users/Users/Synchronization tab."
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: model:ir.ui.menu,name:google_docs.menu_gdocs_config
|
||||
msgid "Google Docs configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config
|
||||
#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config
|
||||
msgid "Models configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: field:google.docs.config,model_id:0
|
||||
msgid "Model"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#. openerp-web
|
||||
#: code:addons/google_docs/static/src/js/gdocs.js:28
|
||||
#, python-format
|
||||
msgid "User Google credentials are not yet set."
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: code:addons/google_docs/google_docs.py:139
|
||||
#, python-format
|
||||
msgid "Your Google Doc Name Pattern's key does not found in object."
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: help:google.docs.config,name_template:0
|
||||
msgid ""
|
||||
"Choose how the new google docs will be named, on google side. Eg. "
|
||||
"gdoc_%(field_name)s"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: view:google.docs.config:0
|
||||
msgid "Google Docs Configuration"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: help:google.docs.config,gdocs_resource_id:0
|
||||
msgid ""
|
||||
"\n"
|
||||
"This is the id of the template document, on google side. You can find it "
|
||||
"thanks to its URL: \n"
|
||||
"*for a text document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
|
||||
"`document:123456789`\n"
|
||||
"*for a spreadsheet document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
|
||||
"the ID is `spreadsheet:123456789`\n"
|
||||
"*for a presentation (slide show) document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
|
||||
".p`, the ID is `presentation:123456789`\n"
|
||||
"*for a drawing document with url like "
|
||||
"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
|
||||
"`drawings:123456789`\n"
|
||||
"...\n"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: model:ir.model,name:google_docs.model_ir_attachment
|
||||
msgid "ir.attachment"
|
||||
msgstr ""
|
||||
|
||||
#. module: google_docs
|
||||
#: field:google.docs.config,name_template:0
|
||||
msgid "Google Doc Name Pattern"
|
||||
msgstr ""
|
||||
@@ -7,29 +7,29 @@ msgstr ""
|
||||
"Project-Id-Version: OpenERP Server 6.0dev\n"
|
||||
"Report-Msgid-Bugs-To: support@openerp.com\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2011-02-03 16:53+0000\n"
|
||||
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
|
||||
"PO-Revision-Date: 2013-02-26 16:00+0000\n"
|
||||
"Last-Translator: krnkris <Unknown>\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-12-22 05:51+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-27 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 16506)\n"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: model:ir.model,name:hr_attendance.model_hr_attendance_month
|
||||
msgid "Print Monthly Attendance Report"
|
||||
msgstr ""
|
||||
msgstr "Havi jelenléti ív nyomtatása"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance:0
|
||||
msgid "Hr Attendance Search"
|
||||
msgstr ""
|
||||
msgstr "Emberi erőforrás jelenlét keresés"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: field:hr.employee,last_sign:0
|
||||
msgid "Last Sign"
|
||||
msgstr ""
|
||||
msgstr "Utoljára bejelentkezve"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance:0
|
||||
@@ -44,22 +44,27 @@ msgstr "Jelenlét"
|
||||
#, python-format
|
||||
msgid "Last sign in: %s,<br />%s.<br />Click to sign out."
|
||||
msgstr ""
|
||||
"Utoljára bejelentkezve ebbe: %s,<br />%s.<br />Kattintson kijelentkezéshez."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: constraint:hr.attendance:0
|
||||
msgid "Error ! Sign in (resp. Sign out) must follow Sign out (resp. Sign in)"
|
||||
msgstr ""
|
||||
"Hiba! Bejelentkezést (v. Kijelentkezést) egy Kijelentkezésnek (v. "
|
||||
"Bejelentkezésnek)kell követnie."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: help:hr.action.reason,name:0
|
||||
msgid "Specifies the reason for Signing In/Signing Out."
|
||||
msgstr ""
|
||||
msgstr "Meghatározza a Bejelentkezés/Kijelentkezés okát."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: report:report.hr.timesheet.attendance.error:0
|
||||
msgid ""
|
||||
"(*) A positive delay means that the employee worked less than recorded."
|
||||
msgstr ""
|
||||
"(*) Egy pozitív késleltetés azt jelenti, hogy az alkalamazott kevesebbet "
|
||||
"dolgozott mint ami rögzítve van."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.month:0
|
||||
@@ -70,7 +75,7 @@ msgstr "Havi jelenléti ív nyomtatása"
|
||||
#: code:addons/hr_attendance/report/timesheet.py:120
|
||||
#, python-format
|
||||
msgid "Attendances by Week"
|
||||
msgstr ""
|
||||
msgstr "Hetenkénti jelenlétek"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: selection:hr.action.reason,action_type:0
|
||||
@@ -95,7 +100,7 @@ msgstr "Október"
|
||||
#. module: hr_attendance
|
||||
#: field:hr.employee,attendance_access:0
|
||||
msgid "Attendance Access"
|
||||
msgstr ""
|
||||
msgstr "Hozzáférések a jelenlétekhez"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: code:addons/hr_attendance/hr_attendance.py:154
|
||||
@@ -109,7 +114,7 @@ msgstr "Kijelentkezés"
|
||||
#: code:addons/hr_attendance/wizard/hr_attendance_error.py:49
|
||||
#, python-format
|
||||
msgid "No records are found for your selection!"
|
||||
msgstr ""
|
||||
msgstr "Nem találhatók rekordok a lekérdezéséhez!"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.error:0
|
||||
@@ -175,12 +180,12 @@ msgstr "Figyelmeztetés"
|
||||
#. module: hr_attendance
|
||||
#: help:hr.config.settings,group_hr_attendance:0
|
||||
msgid "Allocates attendance group to all users."
|
||||
msgstr ""
|
||||
msgstr "Jelenléti csoportok hozzárendelése csoportokhoz."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance:0
|
||||
msgid "My Attendance"
|
||||
msgstr ""
|
||||
msgstr "Jelenléti ívem"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: selection:hr.attendance.month,month:0
|
||||
@@ -191,17 +196,17 @@ msgstr "Június"
|
||||
#: code:addons/hr_attendance/report/attendance_by_month.py:190
|
||||
#, python-format
|
||||
msgid "Attendances by Month"
|
||||
msgstr ""
|
||||
msgstr "Havi jelenléti ív"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_week
|
||||
msgid "Attendances By Week"
|
||||
msgstr ""
|
||||
msgstr "Heti jelenléti ív"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: model:ir.model,name:hr_attendance.model_hr_attendance_error
|
||||
msgid "Print Error Attendance Report"
|
||||
msgstr ""
|
||||
msgstr "Jelenléti ív napló nyomtatási hiba"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: report:report.hr.timesheet.attendance.error:0
|
||||
@@ -216,7 +221,7 @@ msgstr "Ok"
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.error:0
|
||||
msgid "Print Attendance Report Error"
|
||||
msgstr ""
|
||||
msgstr "Jelenléti ív napló hiba nyomtatás"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: model:ir.actions.act_window,help:hr_attendance.open_view_attendance
|
||||
@@ -225,6 +230,9 @@ msgid ""
|
||||
"Sign in/Sign out actions. You can also link this feature to an attendance "
|
||||
"device using OpenERP's web service features."
|
||||
msgstr ""
|
||||
"Az idő követési funkció irányítja az alkalmazottak ki/be jelentkezés "
|
||||
"műveleteknek a kezelését. Ezt a tulajdonságot egy jelenléti készülékhez "
|
||||
"lehet rendelni az OpenERP segítségével, web szolgáltató tulajdonságokhoz."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance:0
|
||||
@@ -234,7 +242,7 @@ msgstr "Ma"
|
||||
#. module: hr_attendance
|
||||
#: report:report.hr.timesheet.attendance.error:0
|
||||
msgid "Date Signed"
|
||||
msgstr ""
|
||||
msgstr "Aláírás dátuma"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: field:hr.attendance,name:0
|
||||
@@ -244,7 +252,7 @@ msgstr "Dátum"
|
||||
#. module: hr_attendance
|
||||
#: field:hr.config.settings,group_hr_attendance:0
|
||||
msgid "Track attendances for all employees"
|
||||
msgstr ""
|
||||
msgstr "Minden alkalamzott jelenléti ívének követése"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: selection:hr.attendance.month,month:0
|
||||
@@ -255,7 +263,7 @@ msgstr "Július"
|
||||
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_error
|
||||
#: model:ir.actions.report.xml,name:hr_attendance.attendance_error_report
|
||||
msgid "Attendance Error Report"
|
||||
msgstr ""
|
||||
msgstr "Jelenlétek hiba lista nyomtatása"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance:0
|
||||
@@ -312,7 +320,7 @@ msgstr "Bejelentkezés"
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.error:0
|
||||
msgid "Analysis Information"
|
||||
msgstr ""
|
||||
msgstr "Elemzési információ"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: model:ir.actions.act_window,name:hr_attendance.action_hr_attendance_month
|
||||
@@ -328,7 +336,7 @@ msgstr "Január"
|
||||
#: code:addons/hr_attendance/wizard/hr_attendance_error.py:49
|
||||
#, python-format
|
||||
msgid "No Data Available !"
|
||||
msgstr ""
|
||||
msgstr "Nem található adat!"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: selection:hr.attendance.month,month:0
|
||||
@@ -338,7 +346,7 @@ msgstr "Április"
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.week:0
|
||||
msgid "Print Attendance Report Weekly"
|
||||
msgstr ""
|
||||
msgstr "Jelenléti ív heti nyomtatása"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: report:report.hr.timesheet.attendance.error:0
|
||||
@@ -354,7 +362,7 @@ msgstr "Művelet"
|
||||
#. module: hr_attendance
|
||||
#: model:ir.ui.menu,name:hr_attendance.menu_hr_time_tracking
|
||||
msgid "Time Tracking"
|
||||
msgstr ""
|
||||
msgstr "Idő követés"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: model:ir.actions.act_window,name:hr_attendance.open_view_attendance_reason
|
||||
@@ -370,7 +378,7 @@ msgstr "November"
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.error:0
|
||||
msgid "Bellow this delay, the error is considered to be voluntary"
|
||||
msgstr ""
|
||||
msgstr "Itt az alábbi késleltetés, a hiba megfontolt szándékra utal"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: field:hr.attendance.error,max_delay:0
|
||||
@@ -401,19 +409,19 @@ msgstr "Heti jelenléti ív nyomtatása"
|
||||
#. module: hr_attendance
|
||||
#: model:ir.model,name:hr_attendance.model_hr_config_settings
|
||||
msgid "hr.config.settings"
|
||||
msgstr ""
|
||||
msgstr "hr.config.settings"
|
||||
|
||||
#. module: hr_attendance
|
||||
#. openerp-web
|
||||
#: code:addons/hr_attendance/static/src/js/attendance.js:36
|
||||
#, python-format
|
||||
msgid "Click to Sign In at %s."
|
||||
msgstr ""
|
||||
msgstr "Kattintson, hogy Belépjen ekkor %s."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: field:hr.action.reason,action_type:0
|
||||
msgid "Action Type"
|
||||
msgstr ""
|
||||
msgstr "Művelet típusa"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: selection:hr.attendance.month,month:0
|
||||
@@ -427,6 +435,8 @@ msgid ""
|
||||
"You tried to %s with a date anterior to another event !\n"
|
||||
"Try to contact the HR Manager to correct attendances."
|
||||
msgstr ""
|
||||
"Próbált erre %s egy korábbi dátummal egy másik eseményre !\n"
|
||||
"Vegye fel a kapcsolatot egy HE vezetővel a jelenlét kijavításához."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: selection:hr.attendance.month,month:0
|
||||
@@ -450,19 +460,21 @@ msgstr "Művelet"
|
||||
msgid ""
|
||||
"(*) A negative delay means that the employee worked more than encoded."
|
||||
msgstr ""
|
||||
"(*) Egy negatív késleltetés azt jelenti, hogy az alkalmazott többet "
|
||||
"dolgozott mint ami rögzítve lett."
|
||||
|
||||
#. module: hr_attendance
|
||||
#: view:hr.attendance.error:0
|
||||
#: view:hr.attendance.month:0
|
||||
#: view:hr.attendance.week:0
|
||||
msgid "or"
|
||||
msgstr ""
|
||||
msgstr "vagy"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: help:hr.attendance,action_desc:0
|
||||
msgid ""
|
||||
"Specifies the reason for Signing In/Signing Out in case of extra hours."
|
||||
msgstr ""
|
||||
msgstr "Meghatározza az extra órákra való Belépés/Kilépés okát."
|
||||
|
||||
#~ msgid "Employees name"
|
||||
#~ msgstr "Alkalmazottak neve"
|
||||
|
||||
@@ -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-12-21 17:05+0000\n"
|
||||
"PO-Revision-Date: 2011-02-03 17:24+0000\n"
|
||||
"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
|
||||
"PO-Revision-Date: 2013-02-26 15:37+0000\n"
|
||||
"Last-Translator: krnkris <Unknown>\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-12-22 05:45+0000\n"
|
||||
"X-Generator: Launchpad (build 16378)\n"
|
||||
"X-Launchpad-Export-Date: 2013-02-27 04:37+0000\n"
|
||||
"X-Generator: Launchpad (build 16506)\n"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,wage:0
|
||||
@@ -24,7 +24,7 @@ msgstr "Bér"
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Information"
|
||||
msgstr ""
|
||||
msgstr "Információ"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,trial_date_start:0
|
||||
@@ -102,7 +102,7 @@ msgstr "Szerződéstípusok"
|
||||
#. module: hr_contract
|
||||
#: view:hr.employee:0
|
||||
msgid "Medical Exam"
|
||||
msgstr ""
|
||||
msgstr "Orvosi vizsgálat"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,date_end:0
|
||||
@@ -112,7 +112,7 @@ msgstr "Befejezés dátuma"
|
||||
#. module: hr_contract
|
||||
#: help:hr.contract,wage:0
|
||||
msgid "Basic Salary of the employee"
|
||||
msgstr ""
|
||||
msgstr "alklamazott alap fizetése"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,name:0
|
||||
@@ -133,7 +133,7 @@ msgstr "Megjegyzések"
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,permit_no:0
|
||||
msgid "Work Permit No"
|
||||
msgstr ""
|
||||
msgstr "Munkavállalási engedély száma"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
@@ -162,7 +162,7 @@ msgstr "Munkabeosztás"
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Salary and Advantages"
|
||||
msgstr ""
|
||||
msgstr "Fizetés és juttatások"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.contract,job_id:0
|
||||
@@ -173,6 +173,8 @@ msgstr "Beosztás"
|
||||
#: constraint:hr.contract:0
|
||||
msgid "Error! Contract start-date must be less than contract end-date."
|
||||
msgstr ""
|
||||
"Hiba! Szerződés induló dátuma előbb kell legyen a szerződés befejezése "
|
||||
"dátumánál."
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,manager:0
|
||||
@@ -192,7 +194,7 @@ msgstr ""
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,vehicle_distance:0
|
||||
msgid "Home-Work Dist."
|
||||
msgstr ""
|
||||
msgstr "Lakhely és munkahely távolsága"
|
||||
|
||||
#. module: hr_contract
|
||||
#: field:hr.employee,place_of_birth:0
|
||||
@@ -202,7 +204,7 @@ msgstr "Születés helye"
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
msgid "Trial Period Duration"
|
||||
msgstr ""
|
||||
msgstr "Próbaidő hossza"
|
||||
|
||||
#. module: hr_contract
|
||||
#: view:hr.contract:0
|
||||
|
||||
@@ -27,6 +27,14 @@
|
||||
<li> MS Outlook 2005 or above.</li>
|
||||
<li> MS .Net Framework 3.5 or above.</li>
|
||||
</ol>
|
||||
<p>Outlook plug-in installation:</p>
|
||||
<ol>
|
||||
<li>Save the outlook plugin corresponding to your Office version (Office x86 or Office x64).</li>
|
||||
<li>Double-click on the executable file and install the plugin.</li>
|
||||
<li>Open Outlook (close it and open it again if it is already closed).</li>
|
||||
<li>From the Outlook menubar: OpenERP -> Configuration.</li>
|
||||
<li>Configure your openerp server.</li>
|
||||
</ol>
|
||||
</xpath>
|
||||
<separator string="title" position="attributes">
|
||||
<attribute name="string"></attribute>
|
||||
|
||||
@@ -267,7 +267,7 @@ class project(osv.osv):
|
||||
"with Tasks (or optionally Issues if the Issue Tracker module is installed)."),
|
||||
'alias_model': fields.selection(_alias_models, "Alias Model", select=True, required=True,
|
||||
help="The kind of document created when an email is received on this project's email alias"),
|
||||
'privacy_visibility': fields.selection([('public','Public'), ('followers','Followers Only')], 'Privacy / Visibility', required=True),
|
||||
'privacy_visibility': fields.selection([('public','All Users'), ('followers','Followers Only')], 'Privacy / Visibility', required=True),
|
||||
'state': fields.selection([('template', 'Template'),('draft','New'),('open','In Progress'), ('cancelled', 'Cancelled'),('pending','Pending'),('close','Closed')], 'Status', required=True,),
|
||||
'doc_count':fields.function(_get_attached_docs, string="Number of documents attached", type='int')
|
||||
}
|
||||
|
||||
@@ -372,7 +372,11 @@
|
||||
</header>
|
||||
<sheet string="Task">
|
||||
<h1>
|
||||
<field name="name" placeholder="Task summary..."/>
|
||||
<field name="name" placeholder="Task summary..." class="oe_inline"/>
|
||||
<field name="kanban_state" invisible='1'/>
|
||||
<button name="set_kanban_state_done" help="In Progress" attrs="{'invisible': [('kanban_state', 'in', ['done','blocked'])]}" type="object" icon="gtk-normal" class="oe_link oe_right"/>
|
||||
<button name="set_kanban_state_blocked" help="Ready for Next Stage" attrs="{'invisible': [('kanban_state', 'in', ['normal','blocked'])]}" type="object" icon="gtk-yes" class="oe_link oe_right"/>
|
||||
<button name="set_kanban_state_normal" help="Blocked" attrs="{'invisible': [('kanban_state', 'in', ['done','normal'])]}" type="object" icon="gtk-no" class="oe_link oe_right"/>
|
||||
</h1>
|
||||
<group>
|
||||
<group>
|
||||
|
||||
@@ -21,3 +21,4 @@ access_project_task_history_cumulative,project.task.history project,project.mode
|
||||
access_resource_calendar,project.resource_calendar manager,resource.model_resource_calendar,project.group_project_manager,1,0,0,0
|
||||
access_project_category,project.project_category,model_project_category,,1,0,0,0
|
||||
access_project_category_manager,project.project_category,model_project_category,project.group_project_manager,1,1,1,1
|
||||
access_mail_alias,mail.alias,mail.model_mail_alias,project.group_project_manager,1,1,1,1
|
||||
|
||||
|
@@ -68,7 +68,13 @@
|
||||
</header>
|
||||
<sheet string="Issue">
|
||||
<label for="name" class="oe_edit_only"/>
|
||||
<h1><field name="name"/></h1>
|
||||
<h1>
|
||||
<field name="name" class="oe_inline"/>
|
||||
<field name="kanban_state" invisible='1'/>
|
||||
<button name="set_kanban_state_done" help="In Progress" attrs="{'invisible': [('kanban_state', 'in', ['done','blocked'])]}" type="object" icon="gtk-normal" class="oe_link oe_right"/>
|
||||
<button name="set_kanban_state_blocked" help="Ready for Next Stage" attrs="{'invisible': [('kanban_state', 'in', ['normal','blocked'])]}" type="object" icon="gtk-yes" class="oe_link oe_right"/>
|
||||
<button name="set_kanban_state_normal" help="Blocked" attrs="{'invisible': [('kanban_state', 'in', ['done','normal'])]}" type="object" icon="gtk-no" class="oe_link oe_right"/>
|
||||
</h1>
|
||||
<group>
|
||||
<group groups="base.group_user">
|
||||
<field name="user_id"/>
|
||||
|
||||
@@ -30,7 +30,7 @@ class purchase_config_settings(osv.osv_memory):
|
||||
_columns = {
|
||||
'default_invoice_method': fields.selection(
|
||||
[('manual', 'Based on purchase order lines'),
|
||||
('picking', 'Based on receptions'),
|
||||
('picking', 'Based on incoming shipments'),
|
||||
('order', 'Pre-generate draft invoices based on purchase orders'),
|
||||
], 'Default invoicing control method', required=True, default_model='purchase.order'),
|
||||
'group_purchase_pricelist':fields.boolean("Manage pricelist per supplier",
|
||||
|
||||
@@ -0,0 +1,318 @@
|
||||
# Mongolian translation for openobject-addons
|
||||
# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
|
||||
# This file is distributed under the same license as the openobject-addons package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: openobject-addons\n"
|
||||
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"POT-Creation-Date: 2012-12-21 17:06+0000\n"
|
||||
"PO-Revision-Date: 2013-02-25 09:32+0000\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: Mongolian <mn@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: 2013-02-26 05:09+0000\n"
|
||||
"X-Generator: Launchpad (build 16506)\n"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Cancelled Invoice"
|
||||
msgstr "Цуцлагдсан нэхэмжлэл"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Total (inclu. taxes):"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Disc. (%)"
|
||||
msgstr "Хөнгөлөлт. (%)"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Supplier Invoice"
|
||||
msgstr "Нийлүүлэгчийн Нэхэмжлэл"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Unit Price"
|
||||
msgstr "Нэгжийн үнэ"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,type:0
|
||||
msgid "Import"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
#: field:report.intrastat.code,description:0
|
||||
msgid "Description"
|
||||
msgstr "Тайлбар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "VAT :"
|
||||
msgstr "НӨАТ :"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Document"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "PRO-FORMA"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Taxes:"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "March"
|
||||
msgstr "3-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "August"
|
||||
msgstr "8-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "May"
|
||||
msgstr "5-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,type:0
|
||||
msgid "Type"
|
||||
msgstr "Төрөл"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: model:ir.actions.report.xml,name:report_intrastat.invoice_intrastat_id
|
||||
msgid "Invoice Intrastat"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Invoice Date"
|
||||
msgstr "Нэхэмлэлийн Огноо"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "June"
|
||||
msgstr "6-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Tel. :"
|
||||
msgstr "Утас:"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Base"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "January"
|
||||
msgstr "1-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "July"
|
||||
msgstr "7-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Quantity"
|
||||
msgstr "Тоо хэмжээ"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Partner Ref."
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "February"
|
||||
msgstr "2-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "October"
|
||||
msgstr "10-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: model:ir.model,name:report_intrastat.model_report_intrastat
|
||||
msgid "Intrastat report"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Invoice"
|
||||
msgstr "Нэхэмжлэл"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: model:ir.model,name:report_intrastat.model_res_country
|
||||
msgid "Country"
|
||||
msgstr "Улс"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "September"
|
||||
msgstr "9-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Taxes"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "April"
|
||||
msgstr "4-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Amount"
|
||||
msgstr "Дүн"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: view:report.intrastat:0
|
||||
msgid "Intrastat Data"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,value:0
|
||||
msgid "Value"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
#: model:ir.actions.act_window,name:report_intrastat.action_report_intrastat_tree_all
|
||||
#: model:ir.ui.menu,name:report_intrastat.menu_report_intrastat_all
|
||||
msgid "Intrastat"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Draft Invoice"
|
||||
msgstr "Ноорог нэхэмжлэл"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,supply_units:0
|
||||
msgid "Supply Units"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "November"
|
||||
msgstr "11-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: model:ir.model,name:report_intrastat.model_report_intrastat_code
|
||||
#: field:product.template,intrastat_id:0
|
||||
#: field:report.intrastat,intrastat_id:0
|
||||
#: view:report.intrastat.code:0
|
||||
msgid "Intrastat code"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Refund"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,ref:0
|
||||
msgid "Source document"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Fiscal Position Remark :"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
#: field:report.intrastat,weight:0
|
||||
msgid "Weight"
|
||||
msgstr "Жин"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: model:ir.model,name:report_intrastat.model_product_template
|
||||
msgid "Product Template"
|
||||
msgstr "Барааны үлгэр"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:res.country,intrastat:0
|
||||
msgid "Intrastat member"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,month:0
|
||||
msgid "December"
|
||||
msgstr "12-р сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Tax"
|
||||
msgstr "Татвар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,code:0
|
||||
msgid "Country code"
|
||||
msgstr "Улсын код"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,month:0
|
||||
msgid "Month"
|
||||
msgstr "Сар"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,currency_id:0
|
||||
msgid "Currency"
|
||||
msgstr "Валют"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: selection:report.intrastat,type:0
|
||||
msgid "Export"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Fax :"
|
||||
msgstr "Факс :"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: field:report.intrastat,name:0
|
||||
msgid "Year"
|
||||
msgstr "Жил"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Supplier Refund"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Total (excl. taxes):"
|
||||
msgstr ""
|
||||
|
||||
#. module: report_intrastat
|
||||
#: report:account.invoice.intrastat:0
|
||||
msgid "Price"
|
||||
msgstr "Үнэ"
|
||||
|
||||
#. module: report_intrastat
|
||||
#: model:ir.actions.act_window,name:report_intrastat.action_report_intrastat_code_tree
|
||||
#: model:ir.ui.menu,name:report_intrastat.menu_report_intrastat_code
|
||||
#: view:report.intrastat.code:0
|
||||
#: field:report.intrastat.code,name:0
|
||||
msgid "Intrastat Code"
|
||||
msgstr ""
|
||||
@@ -36,5 +36,6 @@ import webkit_report
|
||||
import ir_report
|
||||
import wizard
|
||||
import convert
|
||||
import report
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -89,6 +89,9 @@ TODO:
|
||||
'header_view.xml',
|
||||
'ir_report_view.xml',
|
||||
],
|
||||
'demo': [
|
||||
"report/webkit_report_demo.xml",
|
||||
],
|
||||
'installable': True,
|
||||
'auto_install': False,
|
||||
'images': ['images/companies_webkit.jpeg','images/header_html.jpeg','images/header_img.jpeg'],
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
<body style="border:0; margin: 0;" onload="subst()">
|
||||
<table class="header" style="border-bottom: 0px solid black; width: 100%">
|
||||
<tr>
|
||||
<td>${helper.embed_logo_by_name('camptocamp_logo')|n}</td>
|
||||
<td>${helper.embed_company_logo()|safe}</td>
|
||||
<td style="text-align:right"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -63,21 +63,21 @@
|
||||
<td style="text-align:right"> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>${company.partner_id.name |entity}</td>
|
||||
<td>${company.partner_id.name}</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td >${company.partner_id.street or ''|entity}</td>
|
||||
<td >${company.partner_id.street or ''}</td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Phone: ${company.partner_id.phone or ''|entity} </td>
|
||||
<td>Phone: ${company.partner_id.phone or ''} </td>
|
||||
<td/>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Mail: ${company.partner_id.email or ''|entity}<br/></td>
|
||||
<td>Mail: ${company.partner_id.email or ''}<br/></td>
|
||||
</tr>
|
||||
</table> ${_debug or ''|n} </body>
|
||||
</table> ${_debug or ''|safe} </body>
|
||||
</html>]]>
|
||||
</field>
|
||||
<field eval="55.0" name="margin_top"/>
|
||||
|
||||
@@ -39,13 +39,13 @@ def register_report(name, model, tmpl_path, parser=rml_parse):
|
||||
"""Register the report into the services"""
|
||||
name = 'report.%s' % name
|
||||
if name in openerp.report.interface.report_int._reports:
|
||||
service = openerp.report.interface.report_int[name]
|
||||
service = openerp.report.interface.report_int._reports[name]
|
||||
if isinstance(service, WebKitParser):
|
||||
#already instantiated properly, skip it
|
||||
return
|
||||
if hasattr(service, 'parser'):
|
||||
parser = service.parser
|
||||
del openerp.report.interface.report_int[name]
|
||||
del openerp.report.interface.report_int._reports[name]
|
||||
WebKitParser(name, model, tmpl_path, parser=parser)
|
||||
|
||||
|
||||
|
||||
@@ -7,11 +7,13 @@
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//page[@string='Security']" position="before" >
|
||||
<page string="Webkit" attrs="{'invisible':[('report_type','!=','webkit')]}">
|
||||
<field name="webkit_header"/>
|
||||
<field name="webkit_debug"/>
|
||||
<field name="precise_mode"/>
|
||||
<separator string="Webkit Template (used if Report File is not found)" colspan="4"/>
|
||||
<field name="report_webkit_data" colspan="4" nolabel="1"/>
|
||||
<group>
|
||||
<field name="webkit_header"/>
|
||||
<field name="webkit_debug"/>
|
||||
<field name="precise_mode"/>
|
||||
<separator string="Webkit Template (used if Report File is not found)" colspan="4"/>
|
||||
<field name="report_webkit_data" colspan="4" nolabel="1"/>
|
||||
</group>
|
||||
</page>
|
||||
</xpath>
|
||||
</field>
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
|
||||
import webkit_report_demo
|
||||
@@ -0,0 +1,18 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style type="text_css">${css}</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1>List of reports:</h1>
|
||||
<ul>
|
||||
% for report in objects:
|
||||
<li>${report.name}</li>
|
||||
% endfor
|
||||
</ul>
|
||||
|
||||
<p>The administrator name is: ${admin_name}</p>
|
||||
<p>If this report does not contain headers, it is because you have a badly compiled wkhtmltopdf. Consider installing
|
||||
the static version distributed on the official web site: <a href="https://code.google.com/p/wkhtmltopdf/">https://code.google.com/p/wkhtmltopdf/</a>.</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,11 @@
|
||||
|
||||
|
||||
from openerp.addons.report_webkit.webkit_report import webkit_report_extender
|
||||
from openerp import SUPERUSER_ID
|
||||
|
||||
@webkit_report_extender("report_webkit.webkit_demo_report")
|
||||
def extend_demo(pool, cr, uid, localcontext, context):
|
||||
admin = pool.get("res.users").browse(cr, uid, SUPERUSER_ID, context)
|
||||
localcontext.update({
|
||||
"admin_name": admin.name,
|
||||
})
|
||||
@@ -0,0 +1,13 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<openerp>
|
||||
<data>
|
||||
|
||||
<report string="Report on reports"
|
||||
id="webkit_demo_report"
|
||||
model="ir.actions.report.xml"
|
||||
name="webkit.ir.actions.report.xml"
|
||||
file="report_webkit/report/webkit_report_demo.mako"
|
||||
report_type="webkit"/>
|
||||
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -39,6 +39,7 @@ class WebKitHelper(object):
|
||||
self.uid = uid
|
||||
self.pool = pooler.get_pool(self.cursor.dbname)
|
||||
self.report_id = report_id
|
||||
self.context = context
|
||||
|
||||
def embed_image(self, type, img, width=0, height=0) :
|
||||
"Transform a DB image into an embedded HTML image"
|
||||
@@ -79,6 +80,13 @@ class WebKitHelper(object):
|
||||
"""Return HTML embedded logo by name"""
|
||||
img, type = self.get_logo_by_name(name)
|
||||
return self.embed_image(type, img, width, height)
|
||||
|
||||
def embed_company_logo(self, width=0, height=0):
|
||||
cr, uid, context = self.cursor, self.uid, self.context
|
||||
my_user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
|
||||
logo = my_user.company_id.logo_web
|
||||
return self.embed_image("png", logo, width, height)
|
||||
|
||||
|
||||
|
||||
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
|
||||
|
||||
@@ -38,10 +38,6 @@ import tempfile
|
||||
import time
|
||||
import logging
|
||||
|
||||
from mako.template import Template
|
||||
from mako.lookup import TemplateLookup
|
||||
from mako import exceptions
|
||||
|
||||
from openerp import netsvc
|
||||
from openerp import pooler
|
||||
from report_helper import WebKitHelper
|
||||
@@ -50,16 +46,72 @@ from openerp import addons
|
||||
from openerp import tools
|
||||
from openerp.tools.translate import _
|
||||
from openerp.osv.osv import except_osv
|
||||
from urllib import urlencode, quote as quote
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
try:
|
||||
# We use a jinja2 sandboxed environment to render mako templates.
|
||||
# Note that the rendering does not cover all the mako syntax, in particular
|
||||
# arbitrary Python statements are not accepted, and not all expressions are
|
||||
# allowed: only "public" attributes (not starting with '_') of objects may
|
||||
# be accessed.
|
||||
# This is done on purpose: it prevents incidental or malicious execution of
|
||||
# Python code that may break the security of the server.
|
||||
from jinja2.sandbox import SandboxedEnvironment
|
||||
mako_template_env = SandboxedEnvironment(
|
||||
block_start_string="<%",
|
||||
block_end_string="%>",
|
||||
variable_start_string="${",
|
||||
variable_end_string="}",
|
||||
comment_start_string="<%doc>",
|
||||
comment_end_string="</%doc>",
|
||||
line_statement_prefix="%",
|
||||
line_comment_prefix="##",
|
||||
trim_blocks=True, # do not output newline after blocks
|
||||
autoescape=True, # XML/HTML automatic escaping
|
||||
)
|
||||
mako_template_env.globals.update({
|
||||
'str': str,
|
||||
'quote': quote,
|
||||
'urlencode': urlencode,
|
||||
})
|
||||
except ImportError:
|
||||
_logger.warning("jinja2 not available, templating features will not work!")
|
||||
|
||||
def mako_template(text):
|
||||
"""Build a Mako template.
|
||||
|
||||
This template uses UTF-8 encoding
|
||||
"""
|
||||
tmp_lookup = TemplateLookup() #we need it in order to allow inclusion and inheritance
|
||||
return Template(text, input_encoding='utf-8', output_encoding='utf-8', lookup=tmp_lookup)
|
||||
|
||||
return mako_template_env.from_string(text)
|
||||
|
||||
_extender_functions = {}
|
||||
|
||||
def webkit_report_extender(report_name):
|
||||
"""
|
||||
A decorator to define functions to extend the context used in a template rendering.
|
||||
report_name must be the xml id of the desired report (it is mandatory to indicate the
|
||||
module in that xml id).
|
||||
|
||||
The given function will be called at the creation of the report. The following arguments
|
||||
will be passed to it (in this order):
|
||||
- pool The model pool.
|
||||
- cr The cursor.
|
||||
- uid The user id.
|
||||
- localcontext The context given to the template engine to render the templates for the
|
||||
current report. This is the context that should be modified.
|
||||
- context The OpenERP context.
|
||||
"""
|
||||
def fct1(fct):
|
||||
lst = _extender_functions.get(report_name)
|
||||
if not lst:
|
||||
lst = []
|
||||
_extender_functions[report_name] = lst
|
||||
lst.append(fct)
|
||||
return fct
|
||||
return fct1
|
||||
|
||||
class WebKitParser(report_sxw):
|
||||
"""Custom class that use webkit to render HTML reports
|
||||
@@ -201,6 +253,17 @@ class WebKitParser(report_sxw):
|
||||
def create_single_pdf(self, cursor, uid, ids, data, report_xml, context=None):
|
||||
"""generate the PDF"""
|
||||
|
||||
# just try to find an xml id for the report
|
||||
cr = cursor
|
||||
import openerp.pooler as pooler
|
||||
pool = pooler.get_pool(cr.dbname)
|
||||
found_xml_ids = pool.get("ir.model.data").search(cr, uid, [["model", "=", "ir.actions.report.xml"], \
|
||||
["res_id", "=", report_xml.id]], context=context)
|
||||
xml_id = None
|
||||
if found_xml_ids:
|
||||
xml_id = pool.get("ir.model.data").read(cr, uid, found_xml_ids[0], ["module", "name"])
|
||||
xml_id = "%s.%s" % (xml_id["module"], xml_id["name"])
|
||||
|
||||
if context is None:
|
||||
context={}
|
||||
htmls = []
|
||||
@@ -242,64 +305,57 @@ class WebKitParser(report_sxw):
|
||||
if not css :
|
||||
css = ''
|
||||
|
||||
#default_filters=['unicode', 'entity'] can be used to set global filter
|
||||
body_mako_tpl = mako_template(template)
|
||||
helper = WebKitHelper(cursor, uid, report_xml.id, context)
|
||||
self.parser_instance.localcontext['helper'] = helper
|
||||
self.parser_instance.localcontext['css'] = css
|
||||
self.parser_instance.localcontext['_'] = self.translate_call
|
||||
|
||||
# apply extender functions
|
||||
additional = {}
|
||||
if xml_id in _extender_functions:
|
||||
for fct in _extender_functions[xml_id]:
|
||||
fct(pool, cr, uid, self.parser_instance.localcontext, context)
|
||||
|
||||
if report_xml.precise_mode:
|
||||
for obj in objs:
|
||||
self.parser_instance.localcontext['objects'] = [obj]
|
||||
ctx = dict(self.parser_instance.localcontext)
|
||||
for obj in self.parser_instance.localcontext['objects']:
|
||||
ctx['objects'] = [obj]
|
||||
try :
|
||||
html = body_mako_tpl.render(helper=helper,
|
||||
css=css,
|
||||
_=self.translate_call,
|
||||
**self.parser_instance.localcontext)
|
||||
html = body_mako_tpl.render(dict(ctx))
|
||||
htmls.append(html)
|
||||
except Exception:
|
||||
msg = exceptions.text_error_template().render()
|
||||
except Exception, e:
|
||||
msg = u"%s" % e
|
||||
_logger.error(msg)
|
||||
raise except_osv(_('Webkit render!'), msg)
|
||||
else:
|
||||
try :
|
||||
html = body_mako_tpl.render(helper=helper,
|
||||
css=css,
|
||||
_=self.translate_call,
|
||||
**self.parser_instance.localcontext)
|
||||
html = body_mako_tpl.render(dict(self.parser_instance.localcontext))
|
||||
htmls.append(html)
|
||||
except Exception:
|
||||
msg = exceptions.text_error_template().render()
|
||||
msg = u"%s" % e
|
||||
_logger.error(msg)
|
||||
raise except_osv(_('Webkit render!'), msg)
|
||||
head_mako_tpl = mako_template(header)
|
||||
try :
|
||||
head = head_mako_tpl.render(helper=helper,
|
||||
css=css,
|
||||
_=self.translate_call,
|
||||
_debug=False,
|
||||
**self.parser_instance.localcontext)
|
||||
except Exception:
|
||||
raise except_osv(_('Webkit render!'),
|
||||
exceptions.text_error_template().render())
|
||||
head = head_mako_tpl.render(dict(self.parser_instance.localcontext, _debug=False))
|
||||
except Exception, e:
|
||||
raise except_osv(_('Webkit render!'), u"%s" % e)
|
||||
foot = False
|
||||
if footer :
|
||||
foot_mako_tpl = mako_template(footer)
|
||||
try :
|
||||
foot = foot_mako_tpl.render(helper=helper,
|
||||
css=css,
|
||||
_=self.translate_call,
|
||||
**self.parser_instance.localcontext)
|
||||
except:
|
||||
msg = exceptions.text_error_template().render()
|
||||
foot = foot_mako_tpl.render(dict({},
|
||||
**self.parser_instance.localcontext))
|
||||
except Exception, e:
|
||||
msg = u"%s" % e
|
||||
_logger.error(msg)
|
||||
raise except_osv(_('Webkit render!'), msg)
|
||||
if report_xml.webkit_debug :
|
||||
try :
|
||||
deb = head_mako_tpl.render(helper=helper,
|
||||
css=css,
|
||||
_debug=tools.ustr("\n".join(htmls)),
|
||||
_=self.translate_call,
|
||||
**self.parser_instance.localcontext)
|
||||
except Exception:
|
||||
msg = exceptions.text_error_template().render()
|
||||
deb = head_mako_tpl.render(dict(self.parser_instance.localcontext, _debug=tools.ustr("\n".join(htmls))))
|
||||
except Exception, e:
|
||||
msg = u"%s" % e
|
||||
_logger.error(msg)
|
||||
raise except_osv(_('Webkit render!'), msg)
|
||||
return (deb, 'html')
|
||||
|
||||
Reference in New Issue
Block a user