[Merge]Merge lp:openobject-addons

bzr revid: vja@tinyerp.com-20130226045258-r9hlkxm6p59yq4fk
bzr revid: vja@tinyerp.com-20130227091843-711xoqi8hhkzheoa
This commit is contained in:
Vishmita
2013-02-27 14:48:43 +05:30
23 changed files with 758 additions and 105 deletions
+5 -5
View File
@@ -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"
+1 -1
View File
@@ -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>
+188
View File
@@ -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 ""
+42 -30
View File
@@ -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"
+13 -11
View File
@@ -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
+8
View File
@@ -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>
+1 -1
View File
@@ -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')
}
+5 -1
View File
@@ -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
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
21 access_resource_calendar project.resource_calendar manager resource.model_resource_calendar project.group_project_manager 1 0 0 0
22 access_project_category project.project_category model_project_category 1 0 0 0
23 access_project_category_manager project.project_category model_project_category project.group_project_manager 1 1 1 1
24 access_mail_alias mail.alias mail.model_mail_alias project.group_project_manager 1 1 1 1
+7 -1
View File
@@ -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"/>
+1 -1
View File
@@ -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",
+318
View File
@@ -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 ""
+1
View File
@@ -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:
+3
View File
@@ -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'],
+6 -6
View File
@@ -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"/>
+2 -2
View File
@@ -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 -5
View File
@@ -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>
+2
View File
@@ -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>
+8
View File
@@ -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:
+97 -41
View File
@@ -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')