merge trunk

bzr revid: nicolas.vanhoren@openerp.com-20130215113134-1ypwgmtvje0r2pi6
This commit is contained in:
niv-openerp
2013-02-15 12:31:34 +01:00
306 changed files with 20792 additions and 15625 deletions
@@ -39,6 +39,8 @@ class account_financial_report(osv.osv):
_description = "Account Report"
def _get_level(self, cr, uid, ids, field_name, arg, context=None):
'''Returns a dictionary with key=the ID of a record and value = the level of this
record in the tree structure.'''
res = {}
for report in self.browse(cr, uid, ids, context=context):
level = 0
@@ -48,6 +50,8 @@ class account_financial_report(osv.osv):
return res
def _get_children_by_order(self, cr, uid, ids, context=None):
'''returns a dictionary with the key= the ID of a record and value = all its children,
computed recursively, and sorted by sequence. Ready for the printing'''
res = []
for id in ids:
res.append(id)
@@ -56,6 +60,12 @@ class account_financial_report(osv.osv):
return res
def _get_balance(self, cr, uid, ids, field_names, args, context=None):
'''returns a dictionary with key=the ID of a record and value=the balance amount
computed for this record. If the record is of type :
'accounts' : it's the sum of the linked accounts
'account_type' : it's the sum of leaf accoutns with such an account_type
'account_report' : it's the amount of the related report
'sum' : it's the sum of the children of this record (aka a 'view' record)'''
account_obj = self.pool.get('account.account')
res = {}
for report in self.browse(cr, uid, ids, context=context):
+9 -8
View File
@@ -23,7 +23,6 @@ import time
from lxml import etree
import openerp.addons.decimal_precision as dp
from openerp import netsvc
from openerp import pooler
from openerp.osv import fields, osv, orm
from openerp.tools.translate import _
@@ -80,11 +79,10 @@ class account_invoice(osv.osv):
def _reconciled(self, cr, uid, ids, name, args, context=None):
res = {}
wf_service = netsvc.LocalService("workflow")
for inv in self.browse(cr, uid, ids, context=context):
res[inv.id] = self.test_paid(cr, uid, [inv.id])
if not res[inv.id] and inv.state == 'paid':
wf_service.trg_validate(uid, 'account.invoice', inv.id, 'open_test', cr)
self.signal_open_test(cr, uid, [inv.id])
return res
def _get_reference_type(self, cr, uid, context=None):
@@ -638,10 +636,8 @@ class account_invoice(osv.osv):
# go from canceled state to draft state
def action_cancel_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state':'draft'})
wf_service = netsvc.LocalService("workflow")
for inv_id in ids:
wf_service.trg_delete(uid, 'account.invoice', inv_id, cr)
wf_service.trg_create(uid, 'account.invoice', inv_id, cr)
self.delete_workflow(cr, uid, ids)
self.create_workflow(cr, uid, ids)
return True
# Workflow stuff
@@ -1394,7 +1390,12 @@ class account_invoice_line(osv.osv):
# XXX this gets the default account for the user's company,
# it should get the default account for the invoice's company
# however, the invoice's company does not reach this point
prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context)
if context is None:
context = {}
if context.get('type') in ('out_invoice','out_refund'):
prop = self.pool.get('ir.property').get(cr, uid, 'property_account_income_categ', 'product.category', context=context)
else:
prop = self.pool.get('ir.property').get(cr, uid, 'property_account_expense_categ', 'product.category', context=context)
return prop and prop.id or False
_defaults = {
+272 -197
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -151,12 +151,12 @@ class account_config_settings(osv.osv_memory):
self.write(cr, uid, [id], vals, context)
return id
def onchange_company_id(self, cr, uid, ids, company_id):
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
# update related fields
values = {}
values['currency_id'] = False
if company_id:
company = self.pool.get('res.company').browse(cr, uid, company_id)
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
has_chart_of_accounts = company_id not in self.pool.get('account.installer').get_unconfigured_cmp(cr, uid)
fiscalyear_count = self.pool.get('account.fiscalyear').search_count(cr, uid,
[('date_start', '<=', time.strftime('%Y-%m-%d')), ('date_stop', '>=', time.strftime('%Y-%m-%d')),
+1 -1
View File
@@ -33,7 +33,7 @@
<label for="company_id" string="Select Company"/>
<field name="company_id"
widget="selection"
on_change="onchange_company_id(company_id)"
on_change="onchange_company_id(company_id, context)"
class="oe_inline"/>
</div>
<div>
+21 -19
View File
@@ -13,7 +13,8 @@
In order to test the PDF reports defined on an invoice, we will print an Invoice Report
-
!python {model: account.invoice}: |
import netsvc, tools, os
import os
from openerp import netsvc, tools
(data, format) = netsvc.LocalService('report.account.invoice').create(cr, uid, [ref('account.account_invoice_customer0')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-invoice.'+format), 'wb+').write(data)
@@ -22,7 +23,8 @@
In order to test the PDF reports defined on a partner, we will print the Overdue Report
-
!python {model: res.partner}: |
import netsvc, tools, os
import os
from openerp import netsvc, tools
(data, format) = netsvc.LocalService('report.account.overdue').create(cr, uid, [ref('base.res_partner_1'),ref('base.res_partner_2'),ref('base.res_partner_12')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account-report_overdue.'+format), 'wb+').write(data)
@@ -32,7 +34,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_aged_balance_view',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Sheet in Normal mode
@@ -40,7 +42,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0'), 'account_report_id': ref('account_financial_report_balancesheet0')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Account Balance Report in Normal mode through the wizard - From Account Chart
@@ -48,7 +50,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_balance_menu',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Central Journal Report - From Account
@@ -58,7 +60,7 @@
ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
ctx={}
data_dict = {'chart_account_id':ref('account.chart0')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_central_journal',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the General Journal Report - From Journal
@@ -68,7 +70,7 @@
ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
ctx={}
data_dict = {'chart_account_id':ref('account.chart0')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_general_journal',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the General Ledger Report in Normal Mode
@@ -76,7 +78,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0'),'landscape':False}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the General Ledger Report in Landscape Mode
@@ -84,7 +86,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0'),'landscape':True}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_general_ledger_menu',wiz_data=data_dict, context=ctx, our_module='account')
-
Print Journal Report - From Model
@@ -93,7 +95,7 @@
journal_ids = [ref('account.sales_journal'),ref('account.refund_sales_journal'),ref('account.expenses_journal'),ref('account.refund_expenses_journal'),ref('account.bank_journal'),ref('account.check_journal'),ref('account.cash_journal')]
ctx={}
data_dict = {'chart_account_id':ref('account.chart0'), 'period_from':ref('period_1'), 'period_to':ref('period_12')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_print_journal',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Partner Balance Report
@@ -101,7 +103,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_partner_balance',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Partner Ledger Report
@@ -109,7 +111,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0'),'page_split': True}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_partner_ledger',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Partner Ledger-Other Report
@@ -117,7 +119,7 @@
!python {model: res.partner}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0'),'page_split': False}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_partner_ledger',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Profit-Loss Report in Normal Mode
@@ -125,7 +127,7 @@
!python {model: account.account}: |
ctx={}
data_dict = {'chart_account_id':ref('account.chart0'), 'target_move': 'all', 'account_report_id': ref('account_financial_report_balancesheet0')}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_report',wiz_data=data_dict, context=ctx, our_module='account')
-
Print the Analytic Balance Report through the wizard
@@ -134,7 +136,7 @@
ctx={}
ctx.update({'model': 'account.analytic.account','active_ids': [ref('account.analytic_root')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_analytic_balance',wiz_data=data_dict, context=ctx, our_module='account')
-
@@ -144,7 +146,7 @@
ctx={}
ctx.update({'model': 'account.analytic.account','active_ids': [ref('account.analytic_root'),ref('account.analytic_absences'),ref('account.analytic_internal'),ref('account.analytic_our_super_product')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_analytic_cost',wiz_data=data_dict, context=ctx, our_module='account')
-
@@ -154,7 +156,7 @@
ctx={}
ctx.update({'model': 'account.analytic.account','active_ids': [ref('account.analytic_root'),ref('account.analytic_absences'),ref('account.analytic_internal'),ref('account.analytic_our_super_product')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_analytic_cost_ledger_journal',wiz_data=data_dict, context=ctx, our_module='account')
-
@@ -164,7 +166,7 @@
ctx={}
ctx.update({'model': 'account.analytic.journal','active_ids': [ref('account.cose_journal_sale'), ref('account.exp'), ref('account.sit')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_analytic_journal',wiz_data=data_dict, context=ctx, our_module='account')
-
@@ -174,5 +176,5 @@
ctx={}
ctx.update({'model': 'account.analytic.account','active_ids': [ref('account.analytic_root')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_analytic_invert_balance',wiz_data=data_dict, context=ctx, our_module='account')
@@ -23,7 +23,6 @@ import time
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp import netsvc
class account_invoice_refund(osv.osv_memory):
@@ -90,7 +89,6 @@ class account_invoice_refund(osv.osv_memory):
account_m_line_obj = self.pool.get('account.move.line')
mod_obj = self.pool.get('ir.model.data')
act_obj = self.pool.get('ir.actions.act_window')
wf_service = netsvc.LocalService('workflow')
inv_tax_obj = self.pool.get('account.invoice.tax')
inv_line_obj = self.pool.get('account.invoice.line')
res_users_obj = self.pool.get('res.users')
@@ -161,8 +159,7 @@ class account_invoice_refund(osv.osv_memory):
to_reconcile_ids[line.account_id.id] = [line.id]
if type(line.reconcile_id) != osv.orm.browse_null:
reconcile_obj.unlink(cr, uid, line.reconcile_id.id)
wf_service.trg_validate(uid, 'account.invoice', \
refund.id, 'invoice_open', cr)
inv_obj.signal_invoice_open(cr, uid, [refund.id])
refund = inv_obj.browse(cr, uid, refund_id[0], context=context)
for tmpline in refund.move_id.line_id:
if tmpline.account_id.id == inv.account_id.id:
@@ -21,7 +21,6 @@
from openerp.osv import osv
from openerp.tools.translate import _
from openerp import netsvc
from openerp import pooler
class account_invoice_confirm(osv.osv_memory):
@@ -33,16 +32,16 @@ class account_invoice_confirm(osv.osv_memory):
_description = "Confirm the selected invoices"
def invoice_confirm(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService('workflow')
if context is None:
context = {}
pool_obj = pooler.get_pool(cr.dbname)
data_inv = pool_obj.get('account.invoice').read(cr, uid, context['active_ids'], ['state'], context=context)
account_invoice_obj = pool_obj.get('account.invoice')
data_inv = account_invoice_obj.read(cr, uid, context['active_ids'], ['state'], context=context)
for record in data_inv:
if record['state'] not in ('draft','proforma','proforma2'):
raise osv.except_osv(_('Warning!'), _("Selected invoice(s) cannot be confirmed as they are not in 'Draft' or 'Pro-Forma' state."))
wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_open', cr)
account_invoice_obj.signal_invoice_open(cr, uid, [ record['id'] ])
return {'type': 'ir.actions.act_window_close'}
account_invoice_confirm()
@@ -59,14 +58,13 @@ class account_invoice_cancel(osv.osv_memory):
def invoice_cancel(self, cr, uid, ids, context=None):
if context is None:
context = {}
wf_service = netsvc.LocalService('workflow')
pool_obj = pooler.get_pool(cr.dbname)
data_inv = pool_obj.get('account.invoice').read(cr, uid, context['active_ids'], ['state'], context=context)
account_invoice_obj = pool_obj.get('account.invoice')
data_inv = account_invoice_obj.read(cr, uid, context['active_ids'], ['state'], context=context)
for record in data_inv:
if record['state'] in ('cancel','paid'):
raise osv.except_osv(_('Warning!'), _("Selected invoice(s) cannot be cancelled as they are already in 'Cancelled' or 'Done' state."))
wf_service.trg_validate(uid, 'account.invoice', record['id'], 'invoice_cancel', cr)
account_invoice_obj.signal_invoice_cancel(cr , uid, [record['id']])
return {'type': 'ir.actions.act_window_close'}
account_invoice_cancel()
+1 -2
View File
@@ -35,8 +35,7 @@ class account_state_open(osv.osv_memory):
data_inv = obj_invoice.browse(cr, uid, context['active_ids'][0], context=context)
if data_inv.reconciled:
raise osv.except_osv(_('Warning!'), _('Invoice is already reconciled.'))
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', context['active_ids'][0], 'open_test', cr)
obj_invoice.signal_open_test(cr, uid, context['active_ids'][0])
return {'type': 'ir.actions.act_window_close'}
account_state_open()
+453
View File
@@ -0,0 +1,453 @@
# English (United Kingdom) 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-07 18:41+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account4_ids:0
msgid "Account4 Id"
msgstr "Account4 Id"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
#: view:account.crossovered.analytic:0
#: model:ir.actions.act_window,name:account_analytic_plans.action_account_crossovered_analytic
#: model:ir.actions.report.xml,name:account_analytic_plans.account_analytic_account_crossovered_analytic
msgid "Crossovered Analytic"
msgstr "Crossovered Analytic"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account5_ids:0
msgid "Account5 Id"
msgstr "Account5 Id"
#. module: account_analytic_plans
#: field:account.crossovered.analytic,date2:0
msgid "End Date"
msgstr "End Date"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,rate:0
msgid "Rate (%)"
msgstr "Rate (%)"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:234
#, python-format
msgid "The total should be between %s and %s."
msgstr "The total should be between %s and %s."
#. module: account_analytic_plans
#: view:account.analytic.plan:0
#: field:account.analytic.plan,name:0
#: field:account.analytic.plan.line,plan_id:0
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_form_action
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_plan_action
msgid "Analytic Plan"
msgstr "Analytic Plan"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid ""
"This distribution model has been saved.You will be able to reuse it later."
msgstr ""
"This distribution model has been saved.You will be able to reuse it later."
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance_line
msgid "Analytic Instance Line"
msgstr "Analytic Instance Line"
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
msgid "Analytic Distribution Lines"
msgstr "Analytic Distribution Lines"
#. module: account_analytic_plans
#: view:account.crossovered.analytic:0
msgid "Print"
msgstr "Print"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "To Date"
msgstr "To Date"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,plan_id:0
msgid "Plan Id"
msgstr "Plan Id"
#. module: account_analytic_plans
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_plan_instance_action
msgid "Analytic Distribution's Models"
msgstr "Analytic Distribution's Models"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Account Name"
msgstr "Account Name"
#. module: account_analytic_plans
#: view:account.analytic.plan.instance.line:0
msgid "Analytic Distribution Line"
msgstr "Analytic Distribution Line"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,code:0
msgid "Distribution Code"
msgstr "Distribution Code"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
#: field:account.analytic.line,percentage:0
msgid "Percentage"
msgstr "Percentage"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Printing date"
msgstr "Printing date"
#. module: account_analytic_plans
#: field:account.crossovered.analytic,empty_line:0
msgid "Dont show empty lines"
msgstr "Dont show empty lines"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:61
#, python-format
msgid "There are no analytic lines related to account %s."
msgstr "There are no analytic lines related to account %s."
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account3_ids:0
msgid "Account3 Id"
msgstr "Account3 Id"
#. module: account_analytic_plans
#: view:account.crossovered.analytic:0
#: view:analytic.plan.create.model:0
msgid "or"
msgstr "or"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_line
msgid "Analytic Line"
msgstr "Analytic Line"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "100.00%"
msgstr "100.00%"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Currency"
msgstr "Currency"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Analytic Account :"
msgstr "Analytic Account :"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid "Save This Distribution as a Model"
msgstr "Save This Distribution as a Model"
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_line
msgid "Analytic Plan Line"
msgstr "Analytic Plan Line"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Analytic Account Reference:"
msgstr "Analytic Account Reference:"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,name:0
msgid "Plan Name"
msgstr "Plan Name"
#. module: account_analytic_plans
#: field:account.analytic.plan,default_instance_id:0
msgid "Default Entries"
msgstr "Default Entries"
#. module: account_analytic_plans
#: view:account.analytic.plan:0
#: field:account.analytic.plan,plan_ids:0
#: field:account.journal,plan_id:0
msgid "Analytic Plans"
msgstr "Analytic Plans"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Perc(%)"
msgstr "Perc(%)"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_move_line
msgid "Journal Items"
msgstr "Journal Items"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_analytic_plan_create_model
msgid "analytic.plan.create.model"
msgstr "analytic.plan.create.model"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account1_ids:0
msgid "Account1 Id"
msgstr "Account1 Id"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,max_required:0
msgid "Maximum Allowed (%)"
msgstr "Maximum Allowed (%)"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,root_analytic_id:0
msgid "Root Account"
msgstr "Root Account"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:47
#: view:analytic.plan.create.model:0
#, python-format
msgid "Distribution Model Saved"
msgstr "Distribution Model Saved"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_analytic_plan_instance
msgid "Analytic Plan Instance"
msgstr "Analytic Plan Instance"
#. module: account_analytic_plans
#: model:ir.actions.act_window,name:account_analytic_plans.account_analytic_instance_model_open
msgid "Distribution Models"
msgstr "Distribution Models"
#. module: account_analytic_plans
#: view:analytic.plan.create.model:0
msgid "Ok"
msgstr "Ok"
#. module: account_analytic_plans
#: view:account.analytic.plan.line:0
msgid "Analytic Plan Lines"
msgstr "Analytic Plan Lines"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,min_required:0
msgid "Minimum Allowed (%)"
msgstr "Minimum Allowed (%)"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,plan_id:0
msgid "Model's Plan"
msgstr "Model's Plan"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account2_ids:0
msgid "Account2 Id"
msgstr "Account2 Id"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Bank Statement Line"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:221
#: code:addons/account_analytic_plans/account_analytic_plans.py:234
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
#, python-format
msgid "Error!"
msgstr "Error!"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Amount"
msgstr "Amount"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_crossovered_analytic
msgid "Print Crossovered Analytic"
msgstr "Print Crossovered Analytic"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/account_crossovered_analytic.py:61
#, python-format
msgid "User Error!"
msgstr "User Error!"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account6_ids:0
msgid "Account6 Id"
msgstr "Account6 Id"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,journal_id:0
#: view:account.crossovered.analytic:0
#: field:account.crossovered.analytic,journal_ids:0
msgid "Analytic Journal"
msgstr "Analytic Journal"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:38
#, python-format
msgid "Please put a name and a code before saving the model."
msgstr "Please put a name and a code before saving the model."
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Quantity"
msgstr "Quantity"
#. module: account_analytic_plans
#: model:ir.ui.menu,name:account_analytic_plans.menu_account_analytic_multi_plan_action
msgid "Multi Plans"
msgstr "Multi Plans"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance,account_ids:0
msgid "Account Id"
msgstr "Account Id"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Code"
msgstr "Code"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_journal
msgid "Journal"
msgstr "Journal"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:342
#: code:addons/account_analytic_plans/account_analytic_plans.py:486
#, python-format
msgid "You have to define an analytic journal on the '%s' journal."
msgstr "You have to define an analytic journal on the '%s' journal."
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:342
#: code:addons/account_analytic_plans/account_analytic_plans.py:486
#, python-format
msgid "No Analytic Journal !"
msgstr "No Analytic Journal !"
#. module: account_analytic_plans
#: model:ir.actions.act_window,name:account_analytic_plans.action_analytic_plan_create_model
msgid "analytic.plan.create.model.action"
msgstr "analytic.plan.create.model.action"
#. module: account_analytic_plans
#: field:account.analytic.plan.line,sequence:0
msgid "Sequence"
msgstr "Sequence"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_invoice_line
msgid "Invoice Line"
msgstr "Invoice Line"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/wizard/analytic_plan_create_model.py:41
#, python-format
msgid "There is no analytic plan defined."
msgstr "There is no analytic plan defined."
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_bank_statement
msgid "Bank Statement"
msgstr "Bank Statement"
#. module: account_analytic_plans
#: field:account.analytic.plan.instance.line,analytic_account_id:0
msgid "Analytic Account"
msgstr "Analytic Account"
#. module: account_analytic_plans
#: field:account.analytic.default,analytics_id:0
#: view:account.analytic.plan.instance:0
#: field:account.analytic.plan.instance,name:0
#: field:account.bank.statement.line,analytics_id:0
#: field:account.invoice.line,analytics_id:0
#: field:account.move.line,analytics_id:0
#: model:ir.model,name:account_analytic_plans.model_account_analytic_default
msgid "Analytic Distribution"
msgstr "Analytic Distribution"
#. module: account_analytic_plans
#: code:addons/account_analytic_plans/account_analytic_plans.py:221
#, python-format
msgid "A model with this name and code already exists."
msgstr "A model with this name and code already exists."
#. module: account_analytic_plans
#: help:account.analytic.plan.line,root_analytic_id:0
msgid "Root account of this plan."
msgstr "Root account of this plan."
#. module: account_analytic_plans
#: field:account.crossovered.analytic,ref:0
msgid "Analytic Account Reference"
msgstr "Analytic Account Reference"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_account_invoice
msgid "Invoice"
msgstr "Invoice"
#. module: account_analytic_plans
#: view:account.crossovered.analytic:0
#: view:analytic.plan.create.model:0
msgid "Cancel"
msgstr "Cancel"
#. module: account_analytic_plans
#: field:account.crossovered.analytic,date1:0
msgid "Start Date"
msgstr "Start Date"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "at"
msgstr "at"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "Company"
msgstr "Company"
#. module: account_analytic_plans
#: model:ir.model,name:account_analytic_plans.model_sale_order_line
msgid "Sales Order Line"
msgstr "Sales Order Line"
#. module: account_analytic_plans
#: report:account.analytic.account.crossovered.analytic:0
msgid "From Date"
msgstr "From Date"
@@ -2,7 +2,8 @@
Print the Crossovered Analytic Report in Normal mode
-
!python {model: account.analytic.account}: |
import netsvc, tools, os, time
import os, time
from openerp import netsvc, tools
data_dict = {'model': 'account.analytic.account', 'form': {'date1':time.strftime("%Y-01-01"),'date2':time.strftime('%Y-%m-%d'),'journal_ids':[6,0,(ref('account.cose_journal_sale'))],'ref':ref('account.analytic_root'),'empty_line':True,'id':ref('account.analytic_root'),'context':{}}}
(data, format) = netsvc.LocalService('report.account.analytic.account.crossovered.analytic').create(cr, uid, [ref('account.analytic_root')], data_dict, {})
if tools.config['test_report_directory']:
+4 -1
View File
@@ -331,6 +331,9 @@ class account_asset_asset(osv.osv):
depreciation_obj = self.pool.get('account.asset.depreciation.line')
period = period_obj.browse(cr, uid, period_id, context=context)
depreciation_ids = depreciation_obj.search(cr, uid, [('asset_id', 'in', ids), ('depreciation_date', '<=', period.date_stop), ('depreciation_date', '>=', period.date_start), ('move_check', '=', False)], context=context)
if context is None:
context = {}
context.update({'depreciation_date':period.date_stop})
return depreciation_obj.create_move(cr, uid, depreciation_ids, context=context)
def create(self, cr, uid, vals, context=None):
@@ -388,7 +391,7 @@ class account_asset_depreciation_line(osv.osv):
created_move_ids = []
asset_ids = []
for line in self.browse(cr, uid, ids, context=context):
depreciation_date = time.strftime('%Y-%m-%d')
depreciation_date = context.get('depreciation_date') or time.strftime('%Y-%m-%d')
period_ids = period_obj.find(cr, uid, depreciation_date, context=context)
company_currency = line.asset_id.company_id.currency_id.id
current_currency = line.asset_id.currency_id.id
+776
View File
@@ -0,0 +1,776 @@
# English (United Kingdom) 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:04+0000\n"
"PO-Revision-Date: 2013-02-07 19:27+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Assets in draft and open states"
msgstr "Assets in draft and open states"
#. module: account_asset
#: field:account.asset.category,method_end:0
#: field:account.asset.history,method_end:0
#: field:asset.modify,method_end:0
msgid "Ending date"
msgstr "Ending date"
#. module: account_asset
#: field:account.asset.asset,value_residual:0
msgid "Residual Value"
msgstr "Residual Value"
#. module: account_asset
#: field:account.asset.category,account_expense_depreciation_id:0
msgid "Depr. Expense Account"
msgstr "Depr. Expense Account"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Group By..."
msgstr "Group By..."
#. module: account_asset
#: field:asset.asset.report,gross_value:0
msgid "Gross Amount"
msgstr "Gross Amount"
#. module: account_asset
#: view:account.asset.asset:0
#: field:account.asset.depreciation.line,asset_id:0
#: field:account.asset.history,asset_id:0
#: field:account.move.line,asset_id:0
#: view:asset.asset.report:0
#: field:asset.asset.report,asset_id:0
#: model:ir.model,name:account_asset.model_account_asset_asset
msgid "Asset"
msgstr "Asset"
#. module: account_asset
#: help:account.asset.asset,prorata:0
#: help:account.asset.category,prorata:0
msgid ""
"Indicates that the first depreciation entry for this asset have to be done "
"from the purchase date instead of the first January"
msgstr ""
"Indicates that the first depreciation entry for this asset have to be done "
"from the purchase date instead of the first January"
#. module: account_asset
#: selection:account.asset.asset,method:0
#: selection:account.asset.category,method:0
msgid "Linear"
msgstr "Linear"
#. module: account_asset
#: field:account.asset.asset,company_id:0
#: field:account.asset.category,company_id:0
#: view:asset.asset.report:0
#: field:asset.asset.report,company_id:0
msgid "Company"
msgstr "Company"
#. module: account_asset
#: view:asset.modify:0
msgid "Modify"
msgstr "Modify"
#. module: account_asset
#: selection:account.asset.asset,state:0
#: view:asset.asset.report:0
#: selection:asset.asset.report,state:0
msgid "Running"
msgstr "Running"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Set to Draft"
msgstr "Set to Draft"
#. module: account_asset
#: view:asset.asset.report:0
#: model:ir.actions.act_window,name:account_asset.action_asset_asset_report
#: model:ir.model,name:account_asset.model_asset_asset_report
#: model:ir.ui.menu,name:account_asset.menu_action_asset_asset_report
msgid "Assets Analysis"
msgstr "Assets Analysis"
#. module: account_asset
#: field:asset.modify,name:0
msgid "Reason"
msgstr "Reason"
#. module: account_asset
#: field:account.asset.asset,method_progress_factor:0
#: field:account.asset.category,method_progress_factor:0
msgid "Degressive Factor"
msgstr "Degressive Factor"
#. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_list_normal
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_list_normal
msgid "Asset Categories"
msgstr "Asset Categories"
#. module: account_asset
#: view:account.asset.asset:0
#: field:account.asset.asset,account_move_line_ids:0
#: field:account.move.line,entry_ids:0
#: model:ir.actions.act_window,name:account_asset.act_entries_open
msgid "Entries"
msgstr "Entries"
#. module: account_asset
#: view:account.asset.asset:0
#: field:account.asset.asset,depreciation_line_ids:0
msgid "Depreciation Lines"
msgstr "Depreciation Lines"
#. module: account_asset
#: help:account.asset.asset,salvage_value:0
msgid "It is the amount you plan to have that you cannot depreciate."
msgstr "It is the amount you plan to have that you cannot depreciate."
#. module: account_asset
#: help:account.asset.asset,method_period:0
msgid "The amount of time between two depreciations, in months"
msgstr "The amount of time between two depreciations, in months"
#. module: account_asset
#: field:account.asset.depreciation.line,depreciation_date:0
#: view:asset.asset.report:0
#: field:asset.asset.report,depreciation_date:0
msgid "Depreciation Date"
msgstr "Depreciation Date"
#. module: account_asset
#: constraint:account.asset.asset:0
msgid "Error ! You cannot create recursive assets."
msgstr "Error ! You cannot create recursive assets."
#. module: account_asset
#: field:asset.asset.report,posted_value:0
msgid "Posted Amount"
msgstr "Posted Amount"
#. module: account_asset
#: view:account.asset.asset:0
#: view:asset.asset.report:0
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_form
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_form
#: model:ir.ui.menu,name:account_asset.menu_finance_assets
#: model:ir.ui.menu,name:account_asset.menu_finance_config_assets
msgid "Assets"
msgstr "Assets"
#. module: account_asset
#: field:account.asset.category,account_depreciation_id:0
msgid "Depreciation Account"
msgstr "Depreciation Account"
#. module: account_asset
#: view:account.asset.asset:0
#: view:account.asset.category:0
#: view:account.asset.history:0
#: view:asset.modify:0
#: field:asset.modify,note:0
msgid "Notes"
msgstr "Notes"
#. module: account_asset
#: field:account.asset.depreciation.line,move_id:0
msgid "Depreciation Entry"
msgstr "Depreciation Entry"
#. module: account_asset
#: view:asset.asset.report:0
#: field:asset.asset.report,nbr:0
msgid "# of Depreciation Lines"
msgstr "# of Depreciation Lines"
#. module: account_asset
#: field:account.asset.asset,method_period:0
msgid "Number of Months in a Period"
msgstr "Number of Months in a Period"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Assets in draft state"
msgstr "Assets in draft state"
#. module: account_asset
#: field:account.asset.asset,method_end:0
#: selection:account.asset.asset,method_time:0
#: selection:account.asset.category,method_time:0
#: selection:account.asset.history,method_time:0
msgid "Ending Date"
msgstr "Ending Date"
#. module: account_asset
#: field:account.asset.asset,code:0
msgid "Reference"
msgstr "Reference"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Account Asset"
msgstr "Account Asset"
#. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_asset_depreciation_confirmation_wizard
#: model:ir.ui.menu,name:account_asset.menu_asset_depreciation_confirmation_wizard
msgid "Compute Assets"
msgstr "Compute Assets"
#. module: account_asset
#: field:account.asset.category,method_period:0
#: field:account.asset.history,method_period:0
#: field:asset.modify,method_period:0
msgid "Period Length"
msgstr "Period Length"
#. module: account_asset
#: selection:account.asset.asset,state:0
#: view:asset.asset.report:0
#: selection:asset.asset.report,state:0
msgid "Draft"
msgstr "Draft"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Date of asset purchase"
msgstr "Date of asset purchase"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Change Duration"
msgstr "Change Duration"
#. module: account_asset
#: help:account.asset.asset,method_number:0
#: help:account.asset.category,method_number:0
#: help:account.asset.history,method_number:0
msgid "The number of depreciations needed to depreciate your asset"
msgstr "The number of depreciations needed to depreciate your asset"
#. module: account_asset
#: view:account.asset.category:0
msgid "Analytic Information"
msgstr "Analytic Information"
#. module: account_asset
#: field:account.asset.category,account_analytic_id:0
msgid "Analytic account"
msgstr "Analytic account"
#. module: account_asset
#: field:account.asset.asset,method:0
#: field:account.asset.category,method:0
msgid "Computation Method"
msgstr "Computation Method"
#. module: account_asset
#: constraint:account.asset.asset:0
msgid ""
"Prorata temporis can be applied only for time method \"number of "
"depreciations\"."
msgstr ""
"Prorata temporis can be applied only for time method \"number of "
"depreciations\"."
#. module: account_asset
#: field:account.asset.depreciation.line,remaining_value:0
msgid "Next Period Depreciation"
msgstr "Next Period Depreciation"
#. module: account_asset
#: help:account.asset.history,method_period:0
msgid "Time in month between two depreciations"
msgstr "Time in month between two depreciations"
#. module: account_asset
#: view:asset.modify:0
#: model:ir.actions.act_window,name:account_asset.action_asset_modify
#: model:ir.model,name:account_asset.model_asset_modify
msgid "Modify Asset"
msgstr "Modify Asset"
#. module: account_asset
#: field:account.asset.asset,salvage_value:0
msgid "Salvage Value"
msgstr "Salvage Value"
#. module: account_asset
#: field:account.asset.asset,category_id:0
#: view:account.asset.category:0
#: field:account.invoice.line,asset_category_id:0
#: view:asset.asset.report:0
msgid "Asset Category"
msgstr "Asset Category"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Assets in closed state"
msgstr "Assets in closed state"
#. module: account_asset
#: field:account.asset.asset,parent_id:0
msgid "Parent Asset"
msgstr "Parent Asset"
#. module: account_asset
#: view:account.asset.history:0
#: model:ir.model,name:account_asset.model_account_asset_history
msgid "Asset history"
msgstr "Asset history"
#. module: account_asset
#: view:account.asset.category:0
msgid "Search Asset Category"
msgstr "Search Asset Category"
#. module: account_asset
#: view:asset.modify:0
msgid "months"
msgstr "months"
#. module: account_asset
#: model:ir.model,name:account_asset.model_account_invoice_line
msgid "Invoice Line"
msgstr "Invoice Line"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Depreciation Board"
msgstr "Depreciation Board"
#. module: account_asset
#: field:asset.asset.report,unposted_value:0
msgid "Unposted Amount"
msgstr "Unposted Amount"
#. module: account_asset
#: field:account.asset.asset,method_time:0
#: field:account.asset.category,method_time:0
#: field:account.asset.history,method_time:0
msgid "Time Method"
msgstr "Time Method"
#. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0
#: view:asset.modify:0
msgid "or"
msgstr "or"
#. module: account_asset
#: field:account.asset.asset,note:0
#: field:account.asset.category,note:0
#: field:account.asset.history,note:0
msgid "Note"
msgstr "Note"
#. module: account_asset
#: help:account.asset.history,method_time:0
msgid ""
"The method to use to compute the dates and number of depreciation lines.\n"
"Number of Depreciations: Fix the number of depreciation lines and the time "
"between 2 depreciations.\n"
"Ending Date: Choose the time between 2 depreciations and the date the "
"depreciations won't go beyond."
msgstr ""
"The method to use to compute the dates and number of depreciation lines.\n"
"Number of Depreciations: Fix the number of depreciation lines and the time "
"between 2 depreciations.\n"
"Ending Date: Choose the time between 2 depreciations and the date the "
"depreciations won't go beyond."
#. module: account_asset
#: help:account.asset.asset,method_time:0
#: help:account.asset.category,method_time:0
msgid ""
"Choose the method to use to compute the dates and number of depreciation "
"lines.\n"
" * Number of Depreciations: Fix the number of depreciation lines and the "
"time between 2 depreciations.\n"
" * Ending Date: Choose the time between 2 depreciations and the date the "
"depreciations won't go beyond."
msgstr ""
"Choose the method to use to compute the dates and number of depreciation "
"lines.\n"
" * Number of Depreciations: Fix the number of depreciation lines and the "
"time between 2 depreciations.\n"
" * Ending Date: Choose the time between 2 depreciations and the date the "
"depreciations won't go beyond."
#. module: account_asset
#: view:asset.asset.report:0
msgid "Assets in running state"
msgstr "Assets in running state"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Closed"
msgstr "Closed"
#. module: account_asset
#: help:account.asset.asset,state:0
msgid ""
"When an asset is created, the status is 'Draft'.\n"
"If the asset is confirmed, the status goes in 'Running' and the depreciation "
"lines can be posted in the accounting.\n"
"You can manually close an asset when the depreciation is over. If the last "
"line of depreciation is posted, the asset automatically goes in that status."
msgstr ""
"When an asset is created, the status is 'Draft'.\n"
"If the asset is confirmed, the status goes in 'Running' and the depreciation "
"lines can be posted in the accounting.\n"
"You can manually close an asset when the depreciation is over. If the last "
"line of depreciation is posted, the asset automatically goes in that status."
#. module: account_asset
#: field:account.asset.asset,state:0
#: field:asset.asset.report,state:0
msgid "Status"
msgstr "Status"
#. module: account_asset
#: field:account.asset.asset,partner_id:0
#: field:asset.asset.report,partner_id:0
msgid "Partner"
msgstr "Partner"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Posted depreciation lines"
msgstr "Posted depreciation lines"
#. module: account_asset
#: field:account.asset.asset,child_ids:0
msgid "Children Assets"
msgstr "Children Assets"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Date of depreciation"
msgstr "Date of depreciation"
#. module: account_asset
#: field:account.asset.history,user_id:0
msgid "User"
msgstr "User"
#. module: account_asset
#: field:account.asset.category,account_asset_id:0
msgid "Asset Account"
msgstr "Asset Account"
#. module: account_asset
#: view:asset.asset.report:0
msgid "Extended Filters..."
msgstr "Extended Filters..."
#. module: account_asset
#: view:account.asset.asset:0
#: view:asset.depreciation.confirmation.wizard:0
msgid "Compute"
msgstr "Compute"
#. module: account_asset
#: view:account.asset.history:0
msgid "Asset History"
msgstr "Asset History"
#. module: account_asset
#: model:ir.model,name:account_asset.model_asset_depreciation_confirmation_wizard
msgid "asset.depreciation.confirmation.wizard"
msgstr "asset.depreciation.confirmation.wizard"
#. module: account_asset
#: field:account.asset.asset,active:0
msgid "Active"
msgstr "Active"
#. module: account_asset
#: field:account.asset.depreciation.line,parent_state:0
msgid "State of Asset"
msgstr "State of Asset"
#. module: account_asset
#: field:account.asset.depreciation.line,name:0
msgid "Depreciation Name"
msgstr "Depreciation Name"
#. module: account_asset
#: view:account.asset.asset:0
#: field:account.asset.asset,history_ids:0
msgid "History"
msgstr "History"
#. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0
msgid "Compute Asset"
msgstr "Compute Asset"
#. module: account_asset
#: field:asset.depreciation.confirmation.wizard,period_id:0
msgid "Period"
msgstr "Period"
#. module: account_asset
#: view:account.asset.asset:0
msgid "General"
msgstr "General"
#. module: account_asset
#: field:account.asset.asset,prorata:0
#: field:account.asset.category,prorata:0
msgid "Prorata Temporis"
msgstr "Prorata Temporis"
#. module: account_asset
#: model:ir.model,name:account_asset.model_account_invoice
msgid "Invoice"
msgstr "Invoice"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Set to Close"
msgstr "Set to Close"
#. module: account_asset
#: view:asset.depreciation.confirmation.wizard:0
#: view:asset.modify:0
msgid "Cancel"
msgstr "Cancel"
#. module: account_asset
#: selection:account.asset.asset,state:0
#: selection:asset.asset.report,state:0
msgid "Close"
msgstr "Close"
#. module: account_asset
#: model:ir.model,name:account_asset.model_account_move_line
msgid "Journal Items"
msgstr "Journal Items"
#. module: account_asset
#: view:asset.modify:0
msgid "Asset Durations to Modify"
msgstr "Asset Durations to Modify"
#. module: account_asset
#: field:account.asset.asset,purchase_date:0
#: view:asset.asset.report:0
#: field:asset.asset.report,purchase_date:0
msgid "Purchase Date"
msgstr "Purchase Date"
#. module: account_asset
#: selection:account.asset.asset,method:0
#: selection:account.asset.category,method:0
msgid "Degressive"
msgstr "Degressive"
#. module: account_asset
#: help:asset.depreciation.confirmation.wizard,period_id:0
msgid ""
"Choose the period for which you want to automatically post the depreciation "
"lines of running assets"
msgstr ""
"Choose the period for which you want to automatically post the depreciation "
"lines of running assets"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Current"
msgstr "Current"
#. module: account_asset
#: view:account.asset.category:0
msgid "Depreciation Method"
msgstr "Depreciation Method"
#. module: account_asset
#: field:account.asset.depreciation.line,amount:0
msgid "Current Depreciation"
msgstr "Current Depreciation"
#. module: account_asset
#: field:account.asset.asset,name:0
msgid "Asset Name"
msgstr "Asset Name"
#. module: account_asset
#: field:account.asset.category,open_asset:0
msgid "Skip Draft State"
msgstr "Skip Draft State"
#. module: account_asset
#: view:account.asset.category:0
msgid "Depreciation Dates"
msgstr "Depreciation Dates"
#. module: account_asset
#: field:account.asset.asset,currency_id:0
msgid "Currency"
msgstr "Currency"
#. module: account_asset
#: field:account.asset.category,journal_id:0
msgid "Journal"
msgstr "Journal"
#. module: account_asset
#: field:account.asset.history,name:0
msgid "History name"
msgstr "History name"
#. module: account_asset
#: field:account.asset.depreciation.line,depreciated_value:0
msgid "Amount Already Depreciated"
msgstr "Amount Already Depreciated"
#. module: account_asset
#: help:account.asset.asset,method:0
#: help:account.asset.category,method:0
msgid ""
"Choose the method to use to compute the amount of depreciation lines.\n"
" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n"
" * Degressive: Calculated on basis of: Residual Value * Degressive Factor"
msgstr ""
"Choose the method to use to compute the amount of depreciation lines.\n"
" * Linear: Calculated on basis of: Gross Value / Number of Depreciations\n"
" * Degressive: Calculated on basis of: Residual Value * Degressive Factor"
#. module: account_asset
#: field:account.asset.depreciation.line,move_check:0
#: view:asset.asset.report:0
#: field:asset.asset.report,move_check:0
msgid "Posted"
msgstr "Posted"
#. module: account_asset
#: model:ir.actions.act_window,help:account_asset.action_asset_asset_report
msgid ""
"<p>\n"
" From this report, you can have an overview on all depreciation. "
"The\n"
" tool search can also be used to personalise your Assets reports "
"and\n"
" so, match this analysis to your needs;\n"
" </p>\n"
" "
msgstr ""
"<p>\n"
" From this report, you can have an overview on all depreciation. "
"The\n"
" tool search can also be used to personalise your Assets reports "
"and\n"
" so, match this analysis to your needs;\n"
" </p>\n"
" "
#. module: account_asset
#: field:account.asset.asset,purchase_value:0
msgid "Gross Value"
msgstr "Gross Value"
#. module: account_asset
#: field:account.asset.category,name:0
msgid "Name"
msgstr "Name"
#. module: account_asset
#: help:account.asset.category,open_asset:0
msgid ""
"Check this if you want to automatically confirm the assets of this category "
"when created by invoices."
msgstr ""
"Check this if you want to automatically confirm the assets of this category "
"when created by invoices."
#. module: account_asset
#: field:asset.asset.report,name:0
msgid "Year"
msgstr "Year"
#. module: account_asset
#: model:ir.model,name:account_asset.model_account_asset_depreciation_line
msgid "Asset depreciation line"
msgstr "Asset depreciation line"
#. module: account_asset
#: view:account.asset.category:0
#: field:asset.asset.report,asset_category_id:0
#: model:ir.model,name:account_asset.model_account_asset_category
msgid "Asset category"
msgstr "Asset category"
#. module: account_asset
#: view:asset.asset.report:0
#: field:asset.asset.report,depreciation_value:0
msgid "Amount of Depreciation Lines"
msgstr "Amount of Depreciation Lines"
#. module: account_asset
#: code:addons/account_asset/wizard/wizard_asset_compute.py:49
#, python-format
msgid "Created Asset Moves"
msgstr "Created Asset Moves"
#. module: account_asset
#: field:account.asset.depreciation.line,sequence:0
msgid "Sequence"
msgstr "Sequence"
#. module: account_asset
#: help:account.asset.category,method_period:0
msgid "State here the time between 2 depreciations, in months"
msgstr "State here the time between 2 depreciations, in months"
#. module: account_asset
#: field:account.asset.history,date:0
msgid "Date"
msgstr "Date"
#. module: account_asset
#: field:account.asset.asset,method_number:0
#: selection:account.asset.asset,method_time:0
#: field:account.asset.category,method_number:0
#: selection:account.asset.category,method_time:0
#: field:account.asset.history,method_number:0
#: selection:account.asset.history,method_time:0
#: field:asset.modify,method_number:0
msgid "Number of Depreciations"
msgstr "Number of Depreciations"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Create Move"
msgstr "Create Move"
#. module: account_asset
#: view:account.asset.asset:0
msgid "Confirm Asset"
msgstr "Confirm Asset"
#. module: account_asset
#: model:ir.actions.act_window,name:account_asset.action_account_asset_asset_tree
#: model:ir.ui.menu,name:account_asset.menu_action_account_asset_asset_tree
msgid "Asset Hierarchy"
msgstr "Asset Hierarchy"
@@ -0,0 +1,361 @@
# English (United Kingdom) 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-07 19:19+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_bank_statement_extensions
#: help:account.bank.statement.line.global,name:0
msgid "Originator to Beneficiary Information"
msgstr "Originator to Beneficiary Information"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
#: selection:account.bank.statement.line,state:0
msgid "Confirmed"
msgstr "Confirmed"
#. module: account_bank_statement_extensions
#: view:account.bank.statement:0
#: view:account.bank.statement.line:0
msgid "Glob. Id"
msgstr "Glob. Id"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "CODA"
msgstr "CODA"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,parent_id:0
msgid "Parent Code"
msgstr "Parent Code"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Debit"
msgstr "Debit"
#. module: account_bank_statement_extensions
#: view:cancel.statement.line:0
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line
#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line
msgid "Cancel selected statement lines"
msgstr "Cancel selected statement lines"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,val_date:0
msgid "Value Date"
msgstr "Value Date"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Group By..."
msgstr "Group By..."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
#: selection:account.bank.statement.line,state:0
msgid "Draft"
msgstr "Draft"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement"
msgstr "Statement"
#. module: account_bank_statement_extensions
#: view:confirm.statement.line:0
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
msgid "Confirm selected statement lines"
msgstr "Confirm selected statement lines"
#. module: account_bank_statement_extensions
#: report:bank.statement.balance.report:0
#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report
msgid "Bank Statement Balances Report"
msgstr "Bank Statement Balances Report"
#. module: account_bank_statement_extensions
#: view:cancel.statement.line:0
msgid "Cancel Lines"
msgstr "Cancel Lines"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line.global:0
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global
msgid "Batch Payment Info"
msgstr "Batch Payment Info"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,state:0
msgid "Status"
msgstr "Status"
#. module: account_bank_statement_extensions
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
#, python-format
msgid ""
"Delete operation not allowed. Please go to the associated bank "
"statement in order to delete and/or modify bank statement line."
msgstr ""
"Delete operation not allowed. Please go to the associated bank "
"statement in order to delete and/or modify bank statement line."
#. module: account_bank_statement_extensions
#: view:confirm.statement.line:0
msgid "or"
msgstr "or"
#. module: account_bank_statement_extensions
#: view:confirm.statement.line:0
msgid "Confirm Lines"
msgstr "Confirm Lines"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line.global:0
msgid "Transactions"
msgstr "Transactions"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,type:0
msgid "Type"
msgstr "Type"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
#: report:bank.statement.balance.report:0
msgid "Journal"
msgstr "Journal"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Confirmed Statement Lines."
msgstr "Confirmed Statement Lines."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Credit Transactions."
msgstr "Credit Transactions."
#. module: account_bank_statement_extensions
#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line
msgid "cancel selected statement lines."
msgstr "cancel selected statement lines."
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_number:0
msgid "Counterparty Number"
msgstr "Counterparty Number"
#. module: account_bank_statement_extensions
#: report:bank.statement.balance.report:0
msgid "Closing Balance"
msgstr "Closing Balance"
#. module: account_bank_statement_extensions
#: report:bank.statement.balance.report:0
msgid "Date"
msgstr "Date"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
#: field:account.bank.statement.line,globalisation_amount:0
msgid "Glob. Amount"
msgstr "Glob. Amount"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Debit Transactions."
msgstr "Debit Transactions."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Extended Filters..."
msgstr "Extended Filters..."
#. module: account_bank_statement_extensions
#: view:confirm.statement.line:0
msgid "Confirmed lines cannot be changed anymore."
msgstr "Confirmed lines cannot be changed anymore."
#. module: account_bank_statement_extensions
#: view:cancel.statement.line:0
msgid "Are you sure you want to cancel the selected Bank Statement lines ?"
msgstr "Are you sure you want to cancel the selected Bank Statement lines ?"
#. module: account_bank_statement_extensions
#: report:bank.statement.balance.report:0
msgid "Name"
msgstr "Name"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,name:0
msgid "OBI"
msgstr "OBI"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "ISO 20022"
msgstr "ISO 20022"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Notes"
msgstr "Notes"
#. module: account_bank_statement_extensions
#: selection:account.bank.statement.line.global,type:0
msgid "Manual"
msgstr "Manual"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Bank Transaction"
msgstr "Bank Transaction"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Credit"
msgstr "Credit"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,amount:0
msgid "Amount"
msgstr "Amount"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Fin.Account"
msgstr "Fin.Account"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_currency:0
msgid "Counterparty Currency"
msgstr "Counterparty Currency"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_bic:0
msgid "Counterparty BIC"
msgstr "Counterparty BIC"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,child_ids:0
msgid "Child Codes"
msgstr "Child Codes"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Search Bank Transactions"
msgstr "Search Bank Transactions"
#. module: account_bank_statement_extensions
#: view:confirm.statement.line:0
msgid "Are you sure you want to confirm the selected Bank Statement lines ?"
msgstr "Are you sure you want to confirm the selected Bank Statement lines ?"
#. module: account_bank_statement_extensions
#: help:account.bank.statement.line,globalisation_id:0
msgid ""
"Code to identify transactions belonging to the same globalisation level "
"within a batch payment"
msgstr ""
"Code to identify transactions belonging to the same globalisation level "
"within a batch payment"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Draft Statement Lines."
msgstr "Draft Statement Lines."
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Glob. Am."
msgstr "Glob. Am."
#. module: account_bank_statement_extensions
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
msgid "Bank Statement Line"
msgstr "Bank Statement Line"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,code:0
msgid "Code"
msgstr "Code"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,counterparty_name:0
msgid "Counterparty Name"
msgstr "Counterparty Name"
#. module: account_bank_statement_extensions
#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank
msgid "Bank Accounts"
msgstr "Bank Accounts"
#. module: account_bank_statement_extensions
#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement
msgid "Bank Statement"
msgstr "Bank Statement"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement Line"
msgstr "Statement Line"
#. module: account_bank_statement_extensions
#: sql_constraint:account.bank.statement.line.global:0
msgid "The code must be unique !"
msgstr "The code must be unique !"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line.global,bank_statement_line_ids:0
#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line
#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line
msgid "Bank Statement Lines"
msgstr "Bank Statement Lines"
#. module: account_bank_statement_extensions
#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
#, python-format
msgid "Warning!"
msgstr "Warning!"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line.global:0
msgid "Child Batch Payments"
msgstr "Child Batch Payments"
#. module: account_bank_statement_extensions
#: view:confirm.statement.line:0
msgid "Cancel"
msgstr "Cancel"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Statement Lines"
msgstr "Statement Lines"
#. module: account_bank_statement_extensions
#: view:account.bank.statement.line:0
msgid "Total Amount"
msgstr "Total Amount"
#. module: account_bank_statement_extensions
#: field:account.bank.statement.line,globalisation_id:0
msgid "Globalisation ID"
msgstr "Globalisation ID"
@@ -2,32 +2,35 @@
Print the Analytic Budget Report through wizard
-
!python {model: account.analytic.account}: |
import netsvc, tools, os, time
import os, time
from openerp import netsvc, tools
ctx={}
ctx.update({'model': 'account.analytic.account','active_ids': [ref('account.analytic_root')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_budget_analytic',wiz_data=data_dict, context=ctx, our_module='account_budget')
-
Print the Budget Report through wizard
-
!python {model: account.budget.post}: |
import netsvc, tools, os, time
import os, time
from openerp import netsvc, tools
ctx={}
ctx.update({'model': 'account.budget.post','active_ids': [ref('account_budget.account_budget_post_sales0')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_budget_report',wiz_data=data_dict, context=ctx, our_module='account_budget')
-
Print the CrossOvered Budget Report mode through wizard
-
!python {model: crossovered.budget}: |
import netsvc, tools, os, time
import os, time
from openerp import netsvc, tools
ctx={}
ctx.update({'model': 'account.budget.post','active_ids': [ref('account_budget.crossovered_budget_budgetoptimistic0')]})
data_dict = {}
from tools import test_reports
from openerp.tools import test_reports
test_reports.try_report_action(cr, uid, 'action_account_budget_crossvered_report',wiz_data=data_dict, context=ctx, our_module='account_budget')
+245
View File
@@ -0,0 +1,245 @@
# English (United Kingdom) 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-07 17:11+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_check_writing
#: selection:res.company,check_layout:0
msgid "Check on Top"
msgstr "Check on Top"
#. module: account_check_writing
#: report:account.print.check.top:0
msgid "Open Balance"
msgstr "Open Balance"
#. module: account_check_writing
#: view:account.check.write:0
#: view:account.voucher:0
msgid "Print Check"
msgstr "Print Check"
#. module: account_check_writing
#: selection:res.company,check_layout:0
msgid "Check in middle"
msgstr "Check in middle"
#. module: account_check_writing
#: help:res.company,check_layout:0
msgid ""
"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. "
"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on "
"bottom is compatible with Peachtree, ACCPAC and DacEasy only"
msgstr ""
"Check on top is compatible with Quicken, QuickBooks and Microsoft Money. "
"Check in middle is compatible with Peachtree, ACCPAC and DacEasy. Check on "
"bottom is compatible with Peachtree, ACCPAC and DacEasy only"
#. module: account_check_writing
#: selection:res.company,check_layout:0
msgid "Check on bottom"
msgstr "Check on bottom"
#. module: account_check_writing
#: model:ir.actions.act_window,name:account_check_writing.action_account_check_write
msgid "Print Check in Batch"
msgstr "Print Check in Batch"
#. module: account_check_writing
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
#, python-format
msgid "One of the printed check already got a number."
msgstr "One of the printed check already got a number."
#. module: account_check_writing
#: help:account.journal,allow_check_writing:0
msgid "Check this if the journal is to be used for writing checks."
msgstr "Check this if the journal is to be used for writing checks."
#. module: account_check_writing
#: field:account.journal,allow_check_writing:0
msgid "Allow Check writing"
msgstr "Allow Check writing"
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Description"
msgstr "Description"
#. module: account_check_writing
#: model:ir.model,name:account_check_writing.model_account_journal
msgid "Journal"
msgstr "Journal"
#. module: account_check_writing
#: model:ir.actions.act_window,name:account_check_writing.action_write_check
#: model:ir.ui.menu,name:account_check_writing.menu_action_write_check
msgid "Write Checks"
msgstr "Write Checks"
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Discount"
msgstr "Discount"
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Original Amount"
msgstr "Original Amount"
#. module: account_check_writing
#: field:res.company,check_layout:0
msgid "Check Layout"
msgstr "Check Layout"
#. module: account_check_writing
#: field:account.voucher,allow_check:0
msgid "Allow Check Writing"
msgstr "Allow Check Writing"
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Payment"
msgstr "Payment"
#. module: account_check_writing
#: field:account.journal,use_preprint_check:0
msgid "Use Preprinted Check"
msgstr "Use Preprinted Check"
#. module: account_check_writing
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_bottom
msgid "Print Check (Bottom)"
msgstr "Print Check (Bottom)"
#. module: account_check_writing
#: model:ir.actions.act_window,help:account_check_writing.action_write_check
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new check. \n"
" </p><p>\n"
" The check payment form allows you to track the payment you "
"do\n"
" to your suppliers using checks. When you select a supplier, "
"the\n"
" payment method and an amount for the payment, OpenERP will\n"
" propose to reconcile your payment with the open supplier\n"
" invoices or bills.\n"
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a new check. \n"
" </p><p>\n"
" The check payment form allows you to track the payment you "
"do\n"
" to your suppliers using checks. When you select a supplier, "
"the\n"
" payment method and an amount for the payment, OpenERP will\n"
" propose to reconcile your payment with the open supplier\n"
" invoices or bills.\n"
" </p>\n"
" "
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Due Date"
msgstr "Due Date"
#. module: account_check_writing
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_middle
msgid "Print Check (Middle)"
msgstr "Print Check (Middle)"
#. module: account_check_writing
#: model:ir.model,name:account_check_writing.model_res_company
msgid "Companies"
msgstr "Companies"
#. module: account_check_writing
#: code:addons/account_check_writing/wizard/account_check_batch_printing.py:59
#, python-format
msgid "Error!"
msgstr "Error!"
#. module: account_check_writing
#: help:account.check.write,check_number:0
msgid "The number of the next check number to be printed."
msgstr "The number of the next check number to be printed."
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
msgid "Balance Due"
msgstr "Balance Due"
#. module: account_check_writing
#: model:ir.actions.report.xml,name:account_check_writing.account_print_check_top
msgid "Print Check (Top)"
msgstr "Print Check (Top)"
#. module: account_check_writing
#: report:account.print.check.bottom:0
#: report:account.print.check.middle:0
#: report:account.print.check.top:0
msgid "Check Amount"
msgstr "Check Amount"
#. module: account_check_writing
#: model:ir.model,name:account_check_writing.model_account_voucher
msgid "Accounting Voucher"
msgstr "Accounting Voucher"
#. module: account_check_writing
#: view:account.check.write:0
msgid "or"
msgstr "or"
#. module: account_check_writing
#: field:account.voucher,amount_in_word:0
msgid "Amount in Word"
msgstr "Amount in Word"
#. module: account_check_writing
#: model:ir.model,name:account_check_writing.model_account_check_write
msgid "Prin Check in Batch"
msgstr "Prin Check in Batch"
#. module: account_check_writing
#: view:account.check.write:0
msgid "Cancel"
msgstr "Cancel"
#. module: account_check_writing
#: field:account.check.write,check_number:0
msgid "Next Check Number"
msgstr "Next Check Number"
#. module: account_check_writing
#: view:account.check.write:0
msgid "Check"
msgstr "Check"
+36 -12
View File
@@ -238,7 +238,12 @@ class res_partner(osv.osv):
from report import account_followup_print
assert len(ids) == 1
if context is None:
context = {}
partner = self.browse(cr, uid, ids[0], context=context)
#copy the context to not change global context. Overwrite it because _() looks for the lang in local variable 'context'.
#Set the language to use = the partner language
context = dict(context, lang=partner.lang)
followup_table = ''
if partner.unreconciled_aml_ids:
company = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id
@@ -251,13 +256,14 @@ class res_partner(osv.osv):
followup_table += '''
<table border="2" width=100%%>
<tr>
<td>Invoice date</td>
<td>Reference</td>
<td>Due date</td>
<td>Amount (%s)</td>
<td>Lit.</td>
<td>''' + _("Invoice Date") + '''</td>
<td>''' + _("Description") + '''</td>
<td>''' + _("Reference") + '''</td>
<td>''' + _("Due Date") + '''</td>
<td>''' + _("Amount") + " (%s)" % (currency.symbol) + '''</td>
<td>''' + _("Lit.") + '''</td>
</tr>
''' % (currency.symbol)
'''
total = 0
for aml in currency_dict['line']:
block = aml['blocked'] and 'X' or ' '
@@ -268,13 +274,28 @@ class res_partner(osv.osv):
if date <= current_date and aml['balance'] > 0:
strbegin = "<TD><B>"
strend = "</B></TD>"
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
followup_table +="<TR>" + strbegin + str(aml['date']) + strend + strbegin + aml['name'] + strend + strbegin + aml['ref'] + strend + strbegin + str(date) + strend + strbegin + str(aml['balance']) + strend + strbegin + block + strend + "</TR>"
total = rml_parse.formatLang(total, dp='Account', currency_obj=currency)
followup_table += '''<tr> </tr>
</table>
<center>Amount due: %s </center>''' % (total)
<center>''' + _("Amount due") + ''' : %s </center>''' % (total)
return followup_table
def write(self, cr, uid, ids, vals, context=None):
if vals.get("payment_responsible_id", False):
for part in self.browse(cr, uid, ids, context=context):
if part.payment_responsible_id <> vals["payment_responsible_id"]:
#Find partner_id of user put as responsible
responsible_partner_id = self.pool.get("res.users").browse(cr, uid, vals['payment_responsible_id'], context=context).partner_id.id
self.pool.get("mail.thread").message_post(cr, uid, 0,
body = _("You became responsible to do the next action for the payment follow-up of") + " <b><a href='#id=" + str(part.id) + "&view_type=form&model=res.partner'> " + part.name + " </a></b>",
type = 'comment',
subtype = "mail.mt_comment", context = context,
model = 'res.partner', res_id = part.id,
notified_partner_ids = [(6, 0, [responsible_partner_id])],
partner_ids = [(6, 0, [responsible_partner_id])])
return super(res_partner, self).write(cr, uid, ids, vals, context=context)
def action_done(self, cr, uid, ids, context=None):
return self.write(cr, uid, ids, {'payment_next_action_date': False, 'payment_next_action':'', 'payment_responsible_id': False}, context=context)
@@ -408,13 +429,16 @@ class res_partner(osv.osv):
_inherit = "res.partner"
_columns = {
'payment_responsible_id':fields.many2one('res.users', ondelete='set null', string='Follow-up Responsible',
help="Optionally you can assign a user to this field, which will make him responsible for the action."),
'payment_note':fields.text('Customer Payment Promise', help="Payment Note"),
help="Optionally you can assign a user to this field, which will make him responsible for the action.",
track_visibility="onchange"),
'payment_note':fields.text('Customer Payment Promise', help="Payment Note", track_visibility="onchange"),
'payment_next_action':fields.text('Next Action',
help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. "),
help="This is the next action to be taken. It will automatically be set when the partner gets a follow-up level that requires a manual action. ",
track_visibility="onchange"),
'payment_next_action_date':fields.date('Next Action Date',
help="This is when the manual follow-up is needed. " \
"The date will be set to the current date when the partner gets a follow-up level that requires a manual action. Can be practical to set manually e.g. to see if he keeps his promises."),
"The date will be set to the current date when the partner gets a follow-up level that requires a manual action. "\
"Can be practical to set manually e.g. to see if he keeps his promises."),
'unreconciled_aml_ids':fields.one2many('account.move.line', 'partner_id', domain=['&', ('reconcile_id', '=', False), '&',
('account_id.active','=', True), '&', ('account_id.type', '=', 'receivable'), ('state', '!=', 'draft')]),
'latest_followup_date':fields.function(_get_latest, method=True, type='date', string="Latest Follow-up Date",
@@ -35,10 +35,10 @@
<filter string="Follow-ups To Do" domain="[('payment_next_action_date', '&lt;=', time.strftime('%%Y-%%m-%%d')), ('payment_amount_overdue', '>', 0.0)]" name="todo"/>
<separator/>
<filter string="No Responsible" domain="[('payment_responsible_id', '=', False)]"/>
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]"/>
<filter string="My Follow-ups" domain="[('payment_responsible_id','=', uid)]" name="my"/>
</group>
<group expand="1" string="Group By...">
<filter string="Responsible" context="{'group_by':'payment_responsible_id'}"/>
<filter string="Follow-up Responsible" context="{'group_by':'payment_responsible_id'}"/>
</group>
</search>
</field>
@@ -132,6 +132,18 @@
<!-- Menus about followup of customers -->
<menuitem id="account_followup_s" action="action_customer_followup"
parent="menu_finance_followup" name="Do Manual Follow-Ups" sequence="3"/>
<record id="action_customer_my_followup" model="ir.actions.act_window">
<field name="name">My Follow-Ups</field>
<field name="view_id" ref="customer_followup_tree"/>
<field name="res_model">res.partner</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
<field name="domain">[('payment_amount_due', '>', 0.0)]</field>
<field name="context">{'Followupfirst':True, 'search_default_todo': True, 'search_default_my': True} </field>
<field name="search_view_id" ref="customer_followup_search_view"/>
</record>
<menuitem id="base.menu_sales_followup" parent="base.menu_base_partner" name="Payment Follow-up" groups="account.group_account_invoice" sequence="2"/>
<menuitem id="menu_sale_followup" parent="base.menu_sales_followup" sequence="10"
action="action_customer_my_followup" groups="account.group_account_invoice"/>
</data>
</openerp>
File diff suppressed because it is too large Load Diff
+47 -37
View File
@@ -8,14 +8,14 @@ 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: 2010-08-11 05:36+0000\n"
"Last-Translator: ub121 <ubs121@gmail.com>\n"
"PO-Revision-Date: 2013-02-07 10:41+0000\n"
"Last-Translator: gobi <Unknown>\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: 2012-12-22 05:27+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_followup
#: model:email.template,subject:account_followup.email_template_account_followup_default
@@ -34,12 +34,12 @@ msgstr ""
#: view:account_followup.stat:0
#: view:res.partner:0
msgid "Group By..."
msgstr ""
msgstr "Бүлэглэвэл..."
#. module: account_followup
#: field:account_followup.print,followup_id:0
msgid "Follow-Up"
msgstr ""
msgstr "Мөрөөр хийх ажил"
#. module: account_followup
#: view:account_followup.followup.line:0
@@ -49,7 +49,7 @@ msgstr ""
#. module: account_followup
#: field:res.partner,payment_next_action_date:0
msgid "Next Action Date"
msgstr ""
msgstr "Дараа үйлдэл хийх огноо"
#. module: account_followup
#: view:account_followup.followup.line:0
@@ -60,7 +60,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.sending.results,needprinting:0
msgid "Needs Printing"
msgstr ""
msgstr "Хэвлэх шаардлагатай"
#. module: account_followup
#: view:res.partner:0
@@ -88,7 +88,7 @@ msgstr "Нэхэмжилсэн Огноо"
#. module: account_followup
#: field:account_followup.print,email_subject:0
msgid "Email Subject"
msgstr ""
msgstr "Имэйлийн гарчиг"
#. module: account_followup
#: view:account_followup.followup.line:0
@@ -108,7 +108,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.print,email_body:0
msgid "Email Body"
msgstr ""
msgstr "Имэйлийн агуулга"
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
@@ -118,7 +118,7 @@ msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Amount"
msgstr ""
msgstr "Дүн"
#. module: account_followup
#: help:res.partner,payment_next_action:0
@@ -206,12 +206,12 @@ msgstr "Нийт дебит"
#. module: account_followup
#: field:res.partner,payment_next_action:0
msgid "Next Action"
msgstr ""
msgstr "Дараагийн үйлдэл"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid ": Partner Name"
msgstr ""
msgstr ": Харилцагчийн нэр"
#. module: account_followup
#: field:account_followup.followup.line,manual_action_responsible_id:0
@@ -287,7 +287,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat:0
msgid "Not Litigation"
msgstr ""
msgstr "Зарга биш"
#. module: account_followup
#: view:account_followup.print:0
@@ -302,7 +302,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(partner_name)s"
msgstr ""
msgstr "%(partner_name)s"
#. module: account_followup
#: model:email.template,body_html:account_followup.email_template_account_followup_level1
@@ -379,13 +379,13 @@ msgstr ""
#. module: account_followup
#: view:account_followup.followup.line:0
msgid ": User's Company Name"
msgstr ""
msgstr ": Хэрэглэгчийн Компанийн нэр"
#. module: account_followup
#: view:account_followup.followup.line:0
#: field:account_followup.followup.line,send_letter:0
msgid "Send a Letter"
msgstr ""
msgstr "Захидал илгээх"
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
@@ -427,7 +427,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.print,email_conf:0
msgid "Send Email Confirmation"
msgstr ""
msgstr "Батламжлах имэйл илгээх"
#. module: account_followup
#: view:account_followup.stat:0
@@ -442,7 +442,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.print,partner_lang:0
msgid "Send Email in Partner Language"
msgstr ""
msgstr "Имэйлийг Харилцагчийн хэлээр илгээх"
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:169
@@ -464,7 +464,7 @@ msgstr ""
#: code:addons/account_followup/wizard/account_followup_print.py:155
#, python-format
msgid "Anybody"
msgstr ""
msgstr "Хэн нэгэн"
#. module: account_followup
#: help:account_followup.followup.line,send_email:0
@@ -474,7 +474,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.stat.by.partner:0
msgid "Partner to Remind"
msgstr ""
msgstr "Сануулах Харилцагч"
#. module: account_followup
#: view:res.partner:0
@@ -526,7 +526,7 @@ msgstr ""
#. module: account_followup
#: view:res.partner:0
msgid "Search Partner"
msgstr ""
msgstr "Харилцагч хайх"
#. module: account_followup
#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
@@ -552,7 +552,7 @@ msgstr ""
#. module: account_followup
#: view:account_followup.print:0
msgid "or"
msgstr ""
msgstr "эсвэл"
#. module: account_followup
#: view:res.partner:0
@@ -693,7 +693,7 @@ msgstr ""
#: field:account_followup.print,company_id:0
#: field:res.partner,unreconciled_aml_ids:0
msgid "unknown"
msgstr ""
msgstr "тодорхой бус"
#. module: account_followup
#: code:addons/account_followup/account_followup.py:283
@@ -732,17 +732,17 @@ msgstr ""
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_move_line
msgid "Journal Items"
msgstr ""
msgstr "Журналын бичилтүүд"
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Total:"
msgstr ""
msgstr "Нийт:"
#. module: account_followup
#: field:account_followup.followup.line,email_template_id:0
msgid "Email Template"
msgstr ""
msgstr "Э-мэйл загвар"
#. module: account_followup
#: field:account_followup.print,summary:0
@@ -859,7 +859,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.stat,period_id:0
msgid "Period"
msgstr ""
msgstr "Мөчлөг"
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:228
@@ -887,12 +887,12 @@ msgstr "Цуцлах"
#. module: account_followup
#: view:account_followup.sending.results:0
msgid "Close"
msgstr ""
msgstr "Хаах"
#. module: account_followup
#: view:account_followup.stat:0
msgid "Litigation"
msgstr ""
msgstr "Маргаантай"
#. module: account_followup
#: field:account_followup.stat.by.partner,max_followup_id:0
@@ -953,17 +953,17 @@ msgstr ""
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Ref"
msgstr ""
msgstr "Сурвалж"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "After"
msgstr ""
msgstr "Дараа"
#. module: account_followup
#: view:account_followup.stat:0
msgid "This Fiscal year"
msgstr ""
msgstr "Энэ санхүүгийн жил"
#. module: account_followup
#: field:res.partner,latest_followup_level_id_without_lit:0
@@ -978,11 +978,15 @@ msgid ""
" </p>\n"
" "
msgstr ""
"<p>\n"
" Журналын бичилт олдсонгүй.\n"
" </p>\n"
" "
#. module: account_followup
#: view:account.move.line:0
msgid "Partner entries"
msgstr ""
msgstr "Харилцагчийн бичилт"
#. module: account_followup
#: view:account_followup.stat:0
@@ -1143,7 +1147,7 @@ msgstr ""
#. module: account_followup
#: field:account_followup.print,test_print:0
msgid "Test Print"
msgstr ""
msgstr "Тест хэвлэх"
#. module: account_followup
#: view:account_followup.followup.line:0
@@ -1153,12 +1157,12 @@ msgstr ""
#. module: account_followup
#: view:res.partner:0
msgid "Accounting"
msgstr ""
msgstr "Санхүү"
#. module: account_followup
#: field:account_followup.stat,blocked:0
msgid "Blocked"
msgstr ""
msgstr "Хоригдсон"
#. module: account_followup
#: field:res.partner,payment_note:0
@@ -1225,3 +1229,9 @@ msgstr ""
#~ msgid "Type of Term"
#~ msgstr "Төрөлийн хугацаа"
#~ msgid "Send email confirmation"
#~ msgstr "Баталгаажуулалтын имэйлийг илгээх"
#~ msgid "Select Partners to Remind"
#~ msgstr "Сануулга өгөх харилцагчдыг сонгох"
@@ -44,8 +44,7 @@ class TestAccountFollowup(TransactionCase):
'quantity': 5,
'price_unit':200
})]})
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.invoice', self.invoice_id, 'invoice_open', cr)
self.registry('account.invoice').signal_invoice_open(cr, uid, [self.invoice_id])
self.voucher = self.registry("account.voucher")
@@ -26,6 +26,8 @@ from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
from openerp import SUPERUSER_ID
class account_followup_stat_by_partner(osv.osv):
_name = "account_followup.stat.by.partner"
_description = "Follow-up Statistics by Partner"
@@ -127,7 +129,7 @@ class account_followup_print(osv.osv_memory):
'email_body': fields.text('Email Body'),
'summary': fields.text('Summary', readonly=True),
'test_print': fields.boolean('Test Print',
help='Check if you want to print follow-ups without changing follow-ups level.'),
help='Check if you want to print follow-ups without changing follow-up level.'),
}
def _get_followup(self, cr, uid, context=None):
@@ -204,7 +206,7 @@ class account_followup_print(osv.osv_memory):
if not part.unreconciled_aml_ids:
partners_to_clear.append(part.id)
self.pool.get('res.partner').action_done(cr, uid, partners_to_clear, context=context)
return len(ids)
return len(partners_to_clear)
def do_process(self, cr, uid, ids, context=None):
if context is None:
@@ -313,6 +315,13 @@ class account_followup_print(osv.osv_memory):
if stat_line_id not in partner_list:
partner_list.append(stat_line_id)
to_update[str(id)]= {'level': fups[followup_line_id][1], 'partner_id': stat_line_id}
#Remove partners that are other companies in OpenERP
comp_obj = self.pool.get("res.company")
comp_ids = comp_obj.search(cr, SUPERUSER_ID, [], context=context)
for comp in comp_obj.browse(cr, SUPERUSER_ID, comp_ids, context=context):
company_partner_wiz_id = comp.partner_id.id * 10000 + company_id
if company_partner_wiz_id in partner_list:
partner_list.remove(company_partner_wiz_id)
return {'partner_ids': partner_list, 'to_update': to_update}
account_followup_print()
+2 -6
View File
@@ -23,7 +23,6 @@ import logging
import time
from openerp.osv import fields, osv
from openerp import netsvc
_logger = logging.getLogger(__name__)
@@ -120,9 +119,7 @@ class payment_order(osv.osv):
def set_to_draft(self, cr, uid, ids, *args):
self.write(cr, uid, ids, {'state': 'draft'})
wf_service = netsvc.LocalService("workflow")
for id in ids:
wf_service.trg_create(uid, 'payment.order', id, cr)
self.create_workflow(cr, uid, ids)
return True
def action_open(self, cr, uid, ids, *args):
@@ -135,9 +132,8 @@ class payment_order(osv.osv):
return True
def set_done(self, cr, uid, ids, *args):
wf_service = netsvc.LocalService("workflow")
self.write(cr, uid, ids, {'date_done': time.strftime('%Y-%m-%d')})
wf_service.trg_validate(uid, 'payment.order', ids[0], 'done', cr)
self.signal_done(cr, uid, [ids[0]])
return True
def copy(self, cr, uid, id, default=None, context=None):
+707
View File
@@ -0,0 +1,707 @@
# English (United Kingdom) 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-07 18:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_payment
#: model:ir.actions.act_window,help:account_payment.action_payment_order_tree
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a payment order.\n"
" </p><p>\n"
" A payment order is a payment request from your company to "
"pay a\n"
" supplier invoice or a customer refund.\n"
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create a payment order.\n"
" </p><p>\n"
" A payment order is a payment request from your company to "
"pay a\n"
" supplier invoice or a customer refund.\n"
" </p>\n"
" "
#. module: account_payment
#: field:payment.line,currency:0
msgid "Partner Currency"
msgstr "Partner Currency"
#. module: account_payment
#: view:payment.order:0
msgid "Set to draft"
msgstr "Set to draft"
#. module: account_payment
#: help:payment.order,mode:0
msgid "Select the Payment Mode to be applied."
msgstr "Select the Payment Mode to be applied."
#. module: account_payment
#: view:payment.mode:0
#: view:payment.order:0
msgid "Group By..."
msgstr "Group By..."
#. module: account_payment
#: field:payment.order,line_ids:0
msgid "Payment lines"
msgstr "Payment lines"
#. module: account_payment
#: view:payment.line:0
#: field:payment.line,info_owner:0
#: view:payment.order:0
msgid "Owner Account"
msgstr "Owner Account"
#. module: account_payment
#: help:account.invoice,amount_to_pay:0
msgid ""
"The amount which should be paid at the current date\n"
"minus the amount which is already in payment order"
msgstr ""
"The amount which should be paid at the current date\n"
"minus the amount which is already in payment order"
#. module: account_payment
#: field:payment.line,company_id:0
#: field:payment.mode,company_id:0
#: field:payment.order,company_id:0
msgid "Company"
msgstr "Company"
#. module: account_payment
#: model:res.groups,name:account_payment.group_account_payment
msgid "Accounting / Payments"
msgstr "Accounting / Payments"
#. module: account_payment
#: selection:payment.line,state:0
msgid "Free"
msgstr "Free"
#. module: account_payment
#: view:payment.order.create:0
#: field:payment.order.create,entries:0
msgid "Entries"
msgstr "Entries"
#. module: account_payment
#: report:payment.order:0
msgid "Used Account"
msgstr "Used Account"
#. module: account_payment
#: field:payment.line,ml_maturity_date:0
#: field:payment.order.create,duedate:0
msgid "Due Date"
msgstr "Due Date"
#. module: account_payment
#: view:payment.order.create:0
msgid "_Add to payment order"
msgstr "_Add to payment order"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_account_payment_populate_statement
#: model:ir.actions.act_window,name:account_payment.action_account_populate_statement_confirm
msgid "Payment Populate statement"
msgstr "Payment Populate statement"
#. module: account_payment
#: code:addons/account_payment/account_invoice.py:43
#, python-format
msgid ""
"You cannot cancel an invoice which has already been imported in a payment "
"order. Remove it from the following payment order : %s."
msgstr ""
"You cannot cancel an invoice which has already been imported in a payment "
"order. Remove it from the following payment order : %s."
#. module: account_payment
#: code:addons/account_payment/account_invoice.py:43
#: code:addons/account_payment/account_move_line.py:110
#, python-format
msgid "Error!"
msgstr "Error!"
#. module: account_payment
#: report:payment.order:0
#: view:payment.order:0
msgid "Amount"
msgstr "Amount"
#. module: account_payment
#: view:payment.order:0
msgid "Total in Company Currency"
msgstr "Total in Company Currency"
#. module: account_payment
#: selection:payment.order,state:0
msgid "Cancelled"
msgstr "Cancelled"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree_new
msgid "New Payment Order"
msgstr "New Payment Order"
#. module: account_payment
#: report:payment.order:0
#: field:payment.order,reference:0
msgid "Reference"
msgstr "Reference"
#. module: account_payment
#: sql_constraint:payment.line:0
msgid "The payment line name must be unique!"
msgstr "The payment line name must be unique!"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_order_tree
#: model:ir.ui.menu,name:account_payment.menu_action_payment_order_form
msgid "Payment Orders"
msgstr "Payment Orders"
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Directly"
msgstr "Directly"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_line_form
#: model:ir.model,name:account_payment.model_payment_line
#: view:payment.line:0
#: view:payment.order:0
msgid "Payment Line"
msgstr "Payment Line"
#. module: account_payment
#: view:payment.line:0
msgid "Amount Total"
msgstr "Amount Total"
#. module: account_payment
#: help:payment.order,state:0
msgid ""
"When an order is placed the status is 'Draft'.\n"
" Once the bank is confirmed the status is set to 'Confirmed'.\n"
" Then the order is paid the status is 'Done'."
msgstr ""
"When an order is placed the status is 'Draft'.\n"
" Once the bank is confirmed the status is set to 'Confirmed'.\n"
" Then the order is paid the status is 'Done'."
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Confirmed"
msgstr "Confirmed"
#. module: account_payment
#: help:payment.line,ml_date_created:0
msgid "Invoice Effective Date"
msgstr "Invoice Effective Date"
#. module: account_payment
#: report:payment.order:0
msgid "Execution Type"
msgstr "Execution Type"
#. module: account_payment
#: selection:payment.line,state:0
msgid "Structured"
msgstr "Structured"
#. module: account_payment
#: view:account.bank.statement:0
msgid "Import Payment Lines"
msgstr "Import Payment Lines"
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Transaction Information"
msgstr "Transaction Information"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_payment_mode_form
#: model:ir.model,name:account_payment.model_payment_mode
#: model:ir.ui.menu,name:account_payment.menu_action_payment_mode_form
#: view:payment.mode:0
#: view:payment.order:0
#: field:payment.order,mode:0
msgid "Payment Mode"
msgstr "Payment Mode"
#. module: account_payment
#: field:payment.line,ml_date_created:0
msgid "Effective Date"
msgstr "Effective Date"
#. module: account_payment
#: field:payment.line,ml_inv_ref:0
msgid "Invoice Ref."
msgstr "Invoice Ref."
#. module: account_payment
#: help:payment.order,date_prefered:0
msgid ""
"Choose an option for the Payment Order:'Fixed' stands for a date specified "
"by you.'Directly' stands for the direct execution.'Due date' stands for the "
"scheduled date of execution."
msgstr ""
"Choose an option for the Payment Order:'Fixed' stands for a date specified "
"by you.'Directly' stands for the direct execution.'Due date' stands for the "
"scheduled date of execution."
#. module: account_payment
#: field:payment.order,date_created:0
msgid "Creation Date"
msgstr "Creation Date"
#. module: account_payment
#: help:payment.mode,journal:0
msgid "Bank or Cash Journal for the Payment Mode"
msgstr "Bank or Cash Journal for the Payment Mode"
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Fixed date"
msgstr "Fixed date"
#. module: account_payment
#: field:payment.line,info_partner:0
#: view:payment.order:0
msgid "Destination Account"
msgstr "Destination Account"
#. module: account_payment
#: view:payment.line:0
msgid "Desitination Account"
msgstr "Destination Account"
#. module: account_payment
#: view:payment.order:0
msgid "Search Payment Orders"
msgstr "Search Payment Orders"
#. module: account_payment
#: field:payment.line,create_date:0
msgid "Created"
msgstr "Created"
#. module: account_payment
#: view:payment.order:0
msgid "Select Invoices to Pay"
msgstr "Select Invoices to Pay"
#. module: account_payment
#: view:payment.line:0
msgid "Currency Amount Total"
msgstr "Currency Amount Total"
#. module: account_payment
#: view:payment.order:0
msgid "Make Payments"
msgstr "Make Payments"
#. module: account_payment
#: field:payment.line,state:0
msgid "Communication Type"
msgstr "Communication Type"
#. module: account_payment
#: field:payment.line,partner_id:0
#: field:payment.mode,partner_id:0
#: report:payment.order:0
msgid "Partner"
msgstr "Partner"
#. module: account_payment
#: field:payment.line,bank_statement_line_id:0
msgid "Bank statement line"
msgstr "Bank statement line"
#. module: account_payment
#: selection:payment.order,date_prefered:0
msgid "Due date"
msgstr "Due date"
#. module: account_payment
#: field:account.invoice,amount_to_pay:0
msgid "Amount to be paid"
msgstr "Amount to be paid"
#. module: account_payment
#: report:payment.order:0
msgid "Currency"
msgstr "Currency"
#. module: account_payment
#: view:account.payment.make.payment:0
msgid "Yes"
msgstr "Yes"
#. module: account_payment
#: help:payment.line,info_owner:0
msgid "Address of the Main Partner"
msgstr "Address of the Main Partner"
#. module: account_payment
#: help:payment.line,date:0
msgid ""
"If no payment date is specified, the bank will treat this payment line "
"directly"
msgstr ""
"If no payment date is specified, the bank will treat this payment line "
"directly"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_payment_populate_statement
msgid "Account Payment Populate Statement"
msgstr "Account Payment Populate Statement"
#. module: account_payment
#: code:addons/account_payment/account_move_line.py:110
#, python-format
msgid "There is no partner defined on the entry line."
msgstr "There is no partner defined on the entry line."
#. module: account_payment
#: help:payment.mode,name:0
msgid "Mode of Payment"
msgstr "Mode of Payment"
#. module: account_payment
#: report:payment.order:0
msgid "Value Date"
msgstr "Value Date"
#. module: account_payment
#: report:payment.order:0
msgid "Payment Type"
msgstr "Payment Type"
#. module: account_payment
#: help:payment.line,amount_currency:0
msgid "Payment amount in the partner currency"
msgstr "Payment amount in the partner currency"
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Draft"
msgstr "Draft"
#. module: account_payment
#: view:payment.order:0
#: field:payment.order,state:0
msgid "Status"
msgstr "Status"
#. module: account_payment
#: help:payment.line,communication2:0
msgid "The successor message of Communication."
msgstr "The successor message of Communication."
#. module: account_payment
#: help:payment.line,info_partner:0
msgid "Address of the Ordering Customer."
msgstr "Address of the Ordering Customer."
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "Populate Statement:"
msgstr "Populate Statement:"
#. module: account_payment
#: help:payment.order,date_scheduled:0
msgid "Select a date if you have chosen Preferred Date to be fixed."
msgstr "Select a date if you have chosen Preferred Date to be fixed."
#. module: account_payment
#: field:account.payment.populate.statement,lines:0
msgid "Payment Lines"
msgstr "Payment Lines"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_move_line
msgid "Journal Items"
msgstr "Journal Items"
#. module: account_payment
#: help:payment.line,move_line_id:0
msgid ""
"This Entry Line will be referred for the information of the ordering "
"customer."
msgstr ""
"This Entry Line will be referred for the information of the ordering "
"customer."
#. module: account_payment
#: view:payment.order.create:0
msgid "Search"
msgstr "Search"
#. module: account_payment
#: field:payment.order,user_id:0
msgid "Responsible"
msgstr "Responsible"
#. module: account_payment
#: field:payment.line,date:0
msgid "Payment Date"
msgstr "Payment Date"
#. module: account_payment
#: report:payment.order:0
msgid "Total:"
msgstr "Total:"
#. module: account_payment
#: field:payment.order,date_done:0
msgid "Execution Date"
msgstr "Execution Date"
#. module: account_payment
#: view:account.payment.populate.statement:0
msgid "ADD"
msgstr "ADD"
#. module: account_payment
#: model:ir.actions.act_window,name:account_payment.action_create_payment_order
msgid "Populate Payment"
msgstr "Populate Payment"
#. module: account_payment
#: field:account.move.line,amount_to_pay:0
msgid "Amount to pay"
msgstr "Amount to pay"
#. module: account_payment
#: field:payment.line,amount:0
msgid "Amount in Company Currency"
msgstr "Amount in Company Currency"
#. module: account_payment
#: help:payment.line,partner_id:0
msgid "The Ordering Customer"
msgstr "The Ordering Customer"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_payment_make_payment
msgid "Account make payment"
msgstr "Account make payment"
#. module: account_payment
#: report:payment.order:0
msgid "Invoice Ref"
msgstr "Invoice Ref"
#. module: account_payment
#: field:payment.line,name:0
msgid "Your Reference"
msgstr "Your Reference"
#. module: account_payment
#: view:payment.order:0
msgid "Payment order"
msgstr "Payment order"
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "General Information"
msgstr "General Information"
#. module: account_payment
#: view:payment.order:0
#: selection:payment.order,state:0
msgid "Done"
msgstr "Done"
#. module: account_payment
#: model:ir.model,name:account_payment.model_account_invoice
msgid "Invoice"
msgstr "Invoice"
#. module: account_payment
#: field:payment.line,communication:0
msgid "Communication"
msgstr "Communication"
#. module: account_payment
#: view:account.payment.make.payment:0
#: view:account.payment.populate.statement:0
#: view:payment.order:0
#: view:payment.order.create:0
msgid "Cancel"
msgstr "Cancel"
#. module: account_payment
#: field:payment.line,bank_id:0
msgid "Destination Bank Account"
msgstr "Destination Bank Account"
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Information"
msgstr "Information"
#. module: account_payment
#: model:ir.actions.report.xml,name:account_payment.payment_order1
#: model:ir.model,name:account_payment.model_payment_order
#: view:payment.order:0
msgid "Payment Order"
msgstr "Payment Order"
#. module: account_payment
#: help:payment.line,amount:0
msgid "Payment amount in the company currency"
msgstr "Payment amount in the company currency"
#. module: account_payment
#: view:payment.order.create:0
msgid "Search Payment lines"
msgstr "Search Payment lines"
#. module: account_payment
#: field:payment.line,amount_currency:0
msgid "Amount in Partner Currency"
msgstr "Amount in Partner Currency"
#. module: account_payment
#: field:payment.line,communication2:0
msgid "Communication 2"
msgstr "Communication 2"
#. module: account_payment
#: field:payment.order,date_scheduled:0
msgid "Scheduled Date"
msgstr "Scheduled Date"
#. module: account_payment
#: view:account.payment.make.payment:0
msgid "Are you sure you want to make payment?"
msgstr "Are you sure you want to make payment?"
#. module: account_payment
#: view:payment.mode:0
#: field:payment.mode,journal:0
msgid "Journal"
msgstr "Journal"
#. module: account_payment
#: field:payment.mode,bank_id:0
msgid "Bank account"
msgstr "Bank account"
#. module: account_payment
#: view:payment.order:0
msgid "Confirm Payments"
msgstr "Confirm Payments"
#. module: account_payment
#: field:payment.line,company_currency:0
#: report:payment.order:0
msgid "Company Currency"
msgstr "Company Currency"
#. module: account_payment
#: model:ir.ui.menu,name:account_payment.menu_main_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Payment"
msgstr "Payment"
#. module: account_payment
#: report:payment.order:0
msgid "Payment Order / Payment"
msgstr "Payment Order / Payment"
#. module: account_payment
#: field:payment.line,move_line_id:0
msgid "Entry line"
msgstr "Entry line"
#. module: account_payment
#: help:payment.line,communication:0
msgid ""
"Used as the message between ordering customer and current company. Depicts "
"'What do you want to say to the recipient about this order ?'"
msgstr ""
"Used as the message between ordering customer and current company. Depicts "
"'What do you want to say to the recipient about this order ?'"
#. module: account_payment
#: field:payment.mode,name:0
msgid "Name"
msgstr "Name"
#. module: account_payment
#: report:payment.order:0
msgid "Bank Account"
msgstr "Bank Account"
#. module: account_payment
#: view:payment.line:0
#: view:payment.order:0
msgid "Entry Information"
msgstr "Entry Information"
#. module: account_payment
#: model:ir.model,name:account_payment.model_payment_order_create
msgid "payment.order.create"
msgstr "payment.order.create"
#. module: account_payment
#: field:payment.line,order_id:0
msgid "Order"
msgstr "Order"
#. module: account_payment
#: field:payment.order,total:0
msgid "Total"
msgstr "Total"
#. module: account_payment
#: view:account.payment.make.payment:0
#: model:ir.actions.act_window,name:account_payment.action_account_payment_make_payment
msgid "Make Payment"
msgstr "Make Payment"
#. module: account_payment
#: field:payment.order,date_prefered:0
msgid "Preferred Date"
msgstr "Preferred Date"
#. module: account_payment
#: view:account.payment.make.payment:0
#: view:account.payment.populate.statement:0
#: view:payment.order.create:0
msgid "or"
msgstr "or"
#. module: account_payment
#: help:payment.mode,bank_id:0
msgid "Bank Account for the Payment Mode"
msgstr "Bank Account for the Payment Mode"
@@ -2,7 +2,8 @@
In order to test the PDF reports defined on Account Payment, I print a Payment Order report.
-
!python {model: payment.order}: |
import netsvc, tools, os
import os
from openerp import netsvc, tools
(data, format) = netsvc.LocalService('report.payment.order').create(cr, uid, [ref('payment_order_1')], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account_payment-payment_order_report.'+format), 'wb+').write(data)
+154
View File
@@ -0,0 +1,154 @@
# English (United Kingdom) 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-07 18:36+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_sequence
#: view:account.sequence.installer:0
#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
msgid "Account Sequence Application Configuration"
msgstr "Account Sequence Application Configuration"
#. module: account_sequence
#: help:account.move,internal_sequence_number:0
#: help:account.move.line,internal_sequence_number:0
msgid "Internal Sequence Number"
msgstr "Internal Sequence Number"
#. module: account_sequence
#: help:account.sequence.installer,number_next:0
msgid "Next number of this sequence"
msgstr "Next number of this sequence"
#. module: account_sequence
#: field:account.sequence.installer,number_next:0
msgid "Next Number"
msgstr "Next Number"
#. module: account_sequence
#: field:account.sequence.installer,number_increment:0
msgid "Increment Number"
msgstr "Increment Number"
#. module: account_sequence
#: help:account.sequence.installer,number_increment:0
msgid "The next number of the sequence will be incremented by this number"
msgstr "The next number of the sequence will be incremented by this number"
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure Your Account Sequence Application"
msgstr "Configure Your Account Sequence Application"
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure"
msgstr "Configure"
#. module: account_sequence
#: help:account.sequence.installer,suffix:0
msgid "Suffix value of the record for the sequence"
msgstr "Suffix value of the record for the sequence"
#. module: account_sequence
#: field:account.sequence.installer,company_id:0
msgid "Company"
msgstr "Company"
#. module: account_sequence
#: field:account.sequence.installer,padding:0
msgid "Number padding"
msgstr "Number padding"
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move_line
msgid "Journal Items"
msgstr "Journal Items"
#. module: account_sequence
#: field:account.move,internal_sequence_number:0
#: field:account.move.line,internal_sequence_number:0
msgid "Internal Number"
msgstr "Internal Number"
#. module: account_sequence
#: help:account.sequence.installer,padding:0
msgid ""
"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
"get the required padding size."
msgstr ""
"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
"get the required padding size."
#. module: account_sequence
#: field:account.sequence.installer,name:0
msgid "Name"
msgstr "Name"
#. module: account_sequence
#: field:account.journal,internal_sequence_id:0
msgid "Internal Sequence"
msgstr "Internal Sequence"
#. module: account_sequence
#: help:account.sequence.installer,prefix:0
msgid "Prefix value of the record for the sequence"
msgstr "Prefix value of the record for the sequence"
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move
msgid "Account Entry"
msgstr "Account Entry"
#. module: account_sequence
#: field:account.sequence.installer,suffix:0
msgid "Suffix"
msgstr "Suffix"
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "title"
msgstr "title"
#. module: account_sequence
#: field:account.sequence.installer,prefix:0
msgid "Prefix"
msgstr "Prefix"
#. module: account_sequence
#: help:account.journal,internal_sequence_id:0
msgid ""
"This sequence will be used to maintain the internal number for the journal "
"entries related to this journal."
msgstr ""
"This sequence will be used to maintain the internal number for the journal "
"entries related to this journal."
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_sequence_installer
msgid "account.sequence.installer"
msgstr "account.sequence.installer"
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_journal
msgid "Journal"
msgstr "Journal"
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "You can enhance the Account Sequence Application by installing ."
msgstr "You can enhance the Account Sequence Application by installing ."
+150
View File
@@ -0,0 +1,150 @@
# 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:05+0000\n"
"PO-Revision-Date: 2013-02-07 10:46+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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_sequence
#: view:account.sequence.installer:0
#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
msgid "Account Sequence Application Configuration"
msgstr ""
#. module: account_sequence
#: help:account.move,internal_sequence_number:0
#: help:account.move.line,internal_sequence_number:0
msgid "Internal Sequence Number"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,number_next:0
msgid "Next number of this sequence"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,number_next:0
msgid "Next Number"
msgstr "Дараагийн дугаар"
#. module: account_sequence
#: field:account.sequence.installer,number_increment:0
msgid "Increment Number"
msgstr "Өсөх тоон утга"
#. module: account_sequence
#: help:account.sequence.installer,number_increment:0
msgid "The next number of the sequence will be incremented by this number"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure Your Account Sequence Application"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "Configure"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,suffix:0
msgid "Suffix value of the record for the sequence"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,company_id:0
msgid "Company"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,padding:0
msgid "Number padding"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move_line
msgid "Journal Items"
msgstr ""
#. module: account_sequence
#: field:account.move,internal_sequence_number:0
#: field:account.move.line,internal_sequence_number:0
msgid "Internal Number"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,padding:0
msgid ""
"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
"get the required padding size."
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,name:0
msgid "Name"
msgstr ""
#. module: account_sequence
#: field:account.journal,internal_sequence_id:0
msgid "Internal Sequence"
msgstr ""
#. module: account_sequence
#: help:account.sequence.installer,prefix:0
msgid "Prefix value of the record for the sequence"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_move
msgid "Account Entry"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,suffix:0
msgid "Suffix"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "title"
msgstr ""
#. module: account_sequence
#: field:account.sequence.installer,prefix:0
msgid "Prefix"
msgstr ""
#. module: account_sequence
#: help:account.journal,internal_sequence_id:0
msgid ""
"This sequence will be used to maintain the internal number for the journal "
"entries related to this journal."
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_sequence_installer
msgid "account.sequence.installer"
msgstr ""
#. module: account_sequence
#: model:ir.model,name:account_sequence.model_account_journal
msgid "Journal"
msgstr ""
#. module: account_sequence
#: view:account.sequence.installer:0
msgid "You can enhance the Account Sequence Application by installing ."
msgstr ""
+1 -6
View File
@@ -28,12 +28,7 @@
#
##############################################################################
from openerp.osv import fields,osv
import pooler
import netsvc
import time
from xml import dom
from openerp.osv import fields, osv
CODE_EXEC_DEFAULT = '''\
res = []
+282
View File
@@ -0,0 +1,282 @@
# English (United Kingdom) 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-07 19:56+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: account_test
#: view:accounting.assert.test:0
msgid ""
"Code should always set a variable named `result` with the result of your "
"test, that can be a list or\n"
"a dictionary. If `result` is an empty list, it means that the test was "
"succesful. Otherwise it will\n"
"try to translate and print what is inside `result`.\n"
"\n"
"If the result of your test is a dictionary, you can set a variable named "
"`column_order` to choose in\n"
"what order you want to print `result`'s content.\n"
"\n"
"Should you need them, you can also use the following variables into your "
"code:\n"
" * cr: cursor to the database\n"
" * uid: ID of the current user\n"
"\n"
"In any ways, the code must be legal python statements with correct "
"indentation (if needed).\n"
"\n"
"Example: \n"
" sql = '''SELECT id, name, ref, date\n"
" FROM account_move_line \n"
" WHERE account_id IN (SELECT id FROM account_account WHERE type "
"= 'view')\n"
" '''\n"
" cr.execute(sql)\n"
" result = cr.dictfetchall()"
msgstr ""
"Code should always set a variable named `result` with the result of your "
"test, that can be a list or\n"
"a dictionary. If `result` is an empty list, it means that the test was "
"succesful. Otherwise it will\n"
"try to translate and print what is inside `result`.\n"
"\n"
"If the result of your test is a dictionary, you can set a variable named "
"`column_order` to choose in\n"
"what order you want to print `result`'s content.\n"
"\n"
"Should you need them, you can also use the following variables into your "
"code:\n"
" * cr: cursor to the database\n"
" * uid: ID of the current user\n"
"\n"
"In any ways, the code must be legal python statements with correct "
"indentation (if needed).\n"
"\n"
"Example: \n"
" sql = '''SELECT id, name, ref, date\n"
" FROM account_move_line \n"
" WHERE account_id IN (SELECT id FROM account_account WHERE type "
"= 'view')\n"
" '''\n"
" cr.execute(sql)\n"
" result = cr.dictfetchall()"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_02
msgid "Test 2: Opening a fiscal year"
msgstr "Test 2: Opening a fiscal year"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_05
msgid ""
"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
"Payable and Receivable Accounts"
msgstr ""
"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
"Payable and Receivable Accounts"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_03
msgid ""
"Check if movement lines are balanced and have the same date and period"
msgstr ""
"Check if movement lines are balanced and have the same date and period"
#. module: account_test
#: field:accounting.assert.test,name:0
msgid "Test Name"
msgstr "Test Name"
#. module: account_test
#: report:account.test.assert.print:0
msgid "Accouting tests on"
msgstr "Accouting tests on"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_01
msgid "Test 1: General balance"
msgstr "Test 1: General balance"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_06
msgid "Check that paid/reconciled invoices are not in 'Open' state"
msgstr "Check that paid/reconciled invoices are not in 'Open' state"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_05_2
msgid ""
"Check that reconciled account moves, that define Payable and Receivable "
"accounts, are belonging to reconciled invoices"
msgstr ""
"Check that reconciled account moves, that define Payable and Receivable "
"accounts, are belonging to reconciled invoices"
#. module: account_test
#: view:accounting.assert.test:0
msgid "Tests"
msgstr "Tests"
#. module: account_test
#: field:accounting.assert.test,desc:0
msgid "Test Description"
msgstr "Test Description"
#. module: account_test
#: view:accounting.assert.test:0
msgid "Description"
msgstr "Description"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_06_1
msgid "Check that there's no move for any account with « View » account type"
msgstr ""
"Check that there's no move for any account with « View » account type"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_08
msgid "Test 9 : Accounts and partners on account moves"
msgstr "Test 9 : Accounts and partners on account moves"
#. module: account_test
#: model:ir.actions.act_window,name:account_test.action_accounting_assert
#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
#: model:ir.ui.menu,name:account_test.menu_action_license
msgid "Accounting Tests"
msgstr "Accounting Tests"
#. module: account_test
#: code:addons/account_test/report/account_test_report.py:74
#, python-format
msgid "The test was passed successfully"
msgstr "The test was passed successfully"
#. module: account_test
#: field:accounting.assert.test,active:0
msgid "Active"
msgstr "Active"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_06
msgid "Test 6 : Invoices status"
msgstr "Test 6 : Invoices status"
#. module: account_test
#: model:ir.model,name:account_test.model_accounting_assert_test
msgid "accounting.assert.test"
msgstr "accounting.assert.test"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_05
msgid ""
"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
msgstr ""
"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
#. module: account_test
#: field:accounting.assert.test,code_exec:0
msgid "Python code"
msgstr "Python code"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_07
msgid ""
"Check on bank statement that the Closing Balance = Starting Balance + sum of "
"statement lines"
msgstr ""
"Check on bank statement that the Closing Balance = Starting Balance + sum of "
"statement lines"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_07
msgid "Test 8 : Closing balance on bank statements"
msgstr "Test 8 : Closing balance on bank statements"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_03
msgid "Test 3: Movement lines"
msgstr "Test 3: Movement lines"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_05_2
msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
msgstr "Test 5.2 : Reconciled invoices and Payable/Receivable accounts"
#. module: account_test
#: view:accounting.assert.test:0
msgid "Expression"
msgstr "Expression"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_04
msgid "Test 4: Totally reconciled mouvements"
msgstr "Test 4: Totally reconciled movements"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_04
msgid "Check if the totally reconciled movements are balanced"
msgstr "Check if the totally reconciled movements are balanced"
#. module: account_test
#: field:accounting.assert.test,sequence:0
msgid "Sequence"
msgstr "Sequence"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_02
msgid ""
"Check if the balance of the new opened fiscal year matches with last year's "
"balance"
msgstr ""
"Check if the balance of the new opened fiscal year matches with last year's "
"balance"
#. module: account_test
#: view:accounting.assert.test:0
msgid "Python Code"
msgstr "Python Code"
#. module: account_test
#: model:ir.actions.act_window,help:account_test.action_accounting_assert
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create Accounting Test.\n"
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create Accounting Test.\n"
" </p>\n"
" "
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_01
msgid "Check the balance: Debit sum = Credit sum"
msgstr "Check the balance: Debit sum = Credit sum"
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_08
msgid "Check that general accounts and partners on account moves are active"
msgstr "Check that general accounts and partners on account moves are active"
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_06_1
msgid "Test 7: « View  » account type"
msgstr "Test 7: « View  » account type"
#. module: account_test
#: view:accounting.assert.test:0
msgid "Code Help"
msgstr "Code Help"
+241
View File
@@ -0,0 +1,241 @@
# Turkish 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-11 08:26+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Turkish <tr@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-12 04:43+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: account_test
#: view:accounting.assert.test:0
msgid ""
"Code should always set a variable named `result` with the result of your "
"test, that can be a list or\n"
"a dictionary. If `result` is an empty list, it means that the test was "
"succesful. Otherwise it will\n"
"try to translate and print what is inside `result`.\n"
"\n"
"If the result of your test is a dictionary, you can set a variable named "
"`column_order` to choose in\n"
"what order you want to print `result`'s content.\n"
"\n"
"Should you need them, you can also use the following variables into your "
"code:\n"
" * cr: cursor to the database\n"
" * uid: ID of the current user\n"
"\n"
"In any ways, the code must be legal python statements with correct "
"indentation (if needed).\n"
"\n"
"Example: \n"
" sql = '''SELECT id, name, ref, date\n"
" FROM account_move_line \n"
" WHERE account_id IN (SELECT id FROM account_account WHERE type "
"= 'view')\n"
" '''\n"
" cr.execute(sql)\n"
" result = cr.dictfetchall()"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_02
msgid "Test 2: Opening a fiscal year"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_05
msgid ""
"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
"Payable and Receivable Accounts"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_03
msgid ""
"Check if movement lines are balanced and have the same date and period"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,name:0
msgid "Test Name"
msgstr "Test Adı"
#. module: account_test
#: report:account.test.assert.print:0
msgid "Accouting tests on"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_01
msgid "Test 1: General balance"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_06
msgid "Check that paid/reconciled invoices are not in 'Open' state"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_05_2
msgid ""
"Check that reconciled account moves, that define Payable and Receivable "
"accounts, are belonging to reconciled invoices"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Tests"
msgstr "Testler"
#. module: account_test
#: field:accounting.assert.test,desc:0
msgid "Test Description"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Description"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_06_1
msgid "Check that there's no move for any account with « View » account type"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_08
msgid "Test 9 : Accounts and partners on account moves"
msgstr ""
#. module: account_test
#: model:ir.actions.act_window,name:account_test.action_accounting_assert
#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
#: model:ir.ui.menu,name:account_test.menu_action_license
msgid "Accounting Tests"
msgstr ""
#. module: account_test
#: code:addons/account_test/report/account_test_report.py:74
#, python-format
msgid "The test was passed successfully"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,active:0
msgid "Active"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_06
msgid "Test 6 : Invoices status"
msgstr ""
#. module: account_test
#: model:ir.model,name:account_test.model_accounting_assert_test
msgid "accounting.assert.test"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_05
msgid ""
"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,code_exec:0
msgid "Python code"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_07
msgid ""
"Check on bank statement that the Closing Balance = Starting Balance + sum of "
"statement lines"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_07
msgid "Test 8 : Closing balance on bank statements"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_03
msgid "Test 3: Movement lines"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_05_2
msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Expression"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_04
msgid "Test 4: Totally reconciled mouvements"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_04
msgid "Check if the totally reconciled movements are balanced"
msgstr ""
#. module: account_test
#: field:accounting.assert.test,sequence:0
msgid "Sequence"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_02
msgid ""
"Check if the balance of the new opened fiscal year matches with last year's "
"balance"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Python Code"
msgstr ""
#. module: account_test
#: model:ir.actions.act_window,help:account_test.action_accounting_assert
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to create Accounting Test.\n"
" </p>\n"
" "
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_01
msgid "Check the balance: Debit sum = Credit sum"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,desc:account_test.account_test_08
msgid "Check that general accounts and partners on account moves are active"
msgstr ""
#. module: account_test
#: model:accounting.assert.test,name:account_test.account_test_06_1
msgid "Test 7: « View  » account type"
msgstr ""
#. module: account_test
#: view:accounting.assert.test:0
msgid "Code Help"
msgstr ""
@@ -22,8 +22,10 @@
import datetime
import time
from report import report_sxw
from openerp.report import report_sxw
from openerp.tools.translate import _
#
# Use period and Journal for selection or resources
#
+17 -12
View File
@@ -22,7 +22,6 @@
import time
from lxml import etree
from openerp import netsvc
from openerp.osv import fields, osv
import openerp.addons.decimal_precision as dp
from openerp.tools.translate import _
@@ -50,13 +49,25 @@ class account_config_settings(osv.osv_memory):
'company_id', 'income_currency_exchange_account_id',
type='many2one',
relation='account.account',
string="Gain Exchange Rate Account"),
string="Gain Exchange Rate Account",
domain="[('type', '=', 'other')]"),
'expense_currency_exchange_account_id': fields.related(
'company_id', 'expense_currency_exchange_account_id',
type="many2one",
relation='account.account',
string="Loss Exchange Rate Account"),
string="Loss Exchange Rate Account",
domain="[('type', '=', 'other')]"),
}
def onchange_company_id(self, cr, uid, ids, company_id, context=None):
res = super(account_config_settings, self).onchange_company_id(cr, uid, ids, company_id, context=context)
if company_id:
company = self.pool.get('res.company').browse(cr, uid, company_id, context=context)
res['value'].update({'income_currency_exchange_account_id': company.income_currency_exchange_account_id and company.income_currency_exchange_account_id.id or False,
'expense_currency_exchange_account_id': company.expense_currency_exchange_account_id and company.expense_currency_exchange_account_id.id or False})
else:
res['value'].update({'income_currency_exchange_account_id': False,
'expense_currency_exchange_account_id': False})
return res
class account_voucher(osv.osv):
def _check_paid(self, cr, uid, ids, name, args, context=None):
@@ -820,10 +831,7 @@ class account_voucher(osv.osv):
return vals
def button_proforma_voucher(self, cr, uid, ids, context=None):
context = context or {}
wf_service = netsvc.LocalService("workflow")
for vid in ids:
wf_service.trg_validate(uid, 'account.voucher', vid, 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, ids)
return {'type': 'ir.actions.act_window_close'}
def proforma_voucher(self, cr, uid, ids, context=None):
@@ -831,9 +839,7 @@ class account_voucher(osv.osv):
return True
def action_cancel_draft(self, cr, uid, ids, context=None):
wf_service = netsvc.LocalService("workflow")
for voucher_id in ids:
wf_service.trg_create(uid, 'account.voucher', voucher_id, cr)
self.create_workflow(cr, uid, ids)
self.write(cr, uid, ids, {'state':'draft'})
return True
@@ -1508,7 +1514,6 @@ class account_bank_statement(osv.osv):
def create_move_from_st_line(self, cr, uid, st_line_id, company_currency_id, next_number, context=None):
voucher_obj = self.pool.get('account.voucher')
wf_service = netsvc.LocalService("workflow")
move_line_obj = self.pool.get('account.move.line')
bank_st_line_obj = self.pool.get('account.bank.statement.line')
st_line = bank_st_line_obj.browse(cr, uid, st_line_id, context=context)
@@ -1516,7 +1521,7 @@ class account_bank_statement(osv.osv):
voucher_obj.write(cr, uid, [st_line.voucher_id.id], {'number': next_number}, context=context)
if st_line.voucher_id.state == 'cancel':
voucher_obj.action_cancel_draft(cr, uid, [st_line.voucher_id.id], context=context)
wf_service.trg_validate(uid, 'account.voucher', st_line.voucher_id.id, 'proforma_voucher', cr)
voucher_obj.signal_proforma_voucher(cr, uid, [st_line.voucher_id.id])
v = voucher_obj.browse(cr, uid, st_line.voucher_id.id, context=context)
bank_st_line_obj.write(cr, uid, [st_line_id], {
File diff suppressed because it is too large Load Diff
@@ -19,7 +19,8 @@
In order to test the PDF reports defined on a account_voucher, we will print account voucher Report
-
!python {model: account.voucher}: |
import netsvc, tools, os
import os
from openerp import netsvc, tools
(data, format) = netsvc.LocalService('report.voucher.cash_receipt.drcr').create(cr, uid, [ref("account_voucher_voucheraxelor0again")], {}, {})
if tools.config['test_report_directory']:
file(os.path.join(tools.config['test_report_directory'], 'account_voucher-report.'+format), 'wb+').write(data)
@@ -159,7 +159,6 @@
I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case1'))
data = []
@@ -182,10 +181,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 1 USD/USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my first voucher is valid
-
@@ -256,7 +253,6 @@
I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case1'))
data = []
@@ -279,10 +275,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 1'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my second voucher is valid
-
@@ -131,7 +131,6 @@
I fill amounts 180 for the invoice of 200$ and 70 for the invoice of 100$
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2_suppl'))
data = []
@@ -161,10 +160,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -236,7 +233,6 @@
I fill amounts 20 for the invoice of 200$ and 30 for the invoice of 100$>
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2_suppl'))
data = []
@@ -266,10 +262,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
@@ -163,7 +163,8 @@
I fill amounts 130 for the invoice of 200$ and 70 for the invoice of 100$
-
!python {model: account.voucher}: |
import netsvc, time
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2a'))
data = []
@@ -179,10 +180,9 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -231,7 +231,8 @@
and I fully reconcile the 2 previous invoices
-
!python {model: account.voucher}: |
import netsvc, time
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2a'))
data = []
@@ -254,10 +255,9 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR EUR'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
@@ -163,7 +163,6 @@
I fill amounts 130 for the invoice of 200$ and 70 for the invoice of 100$>
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case2b'))
data = []
@@ -179,10 +178,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 2 USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -246,7 +243,6 @@
and I fully reconcil the 2 previous invoices
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case2b'))
data = []
@@ -269,10 +265,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 2 SUPPL USD/EUR DR USD'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that my voucher state is posted
-
@@ -118,7 +118,6 @@
I fill amounts 100 for the invoice of 150€ and 20 for the invoice of 80€
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case3'))
data = []
@@ -141,10 +140,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 3'),('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my first voucher is valid
-
@@ -208,7 +205,6 @@
I fill amounts 50 for the invoice of 150€ and 70 for the invoice of 80€
-
!python {model: account.voucher}: |
import netsvc, time
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_2_case3'))
data = []
@@ -231,10 +227,8 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
voucher = self.search(cr, uid, [('name', '=', 'Second payment: Case 3'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my second voucher is valid
-
@@ -118,7 +118,8 @@
I completly pay the invoice of 200 CAD
-
!python {model: account.voucher}: |
import netsvc, time
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_1_case4'))
data = []
@@ -141,10 +142,9 @@
I confirm the voucher
-
!python {model: account.voucher}: |
import netsvc
from openerp import netsvc
voucher = self.search(cr, uid, [('name', '=', 'First payment: Case 4'), ('partner_id', '=', ref('base.res_partner_19'))])
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher[0], 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, voucher)
-
I check that the move of my voucher is valid
-
@@ -124,7 +124,8 @@
I fill $1000 for the previously encoded invoice
-
!python {model: account.voucher}: |
import netsvc, time
import time
from openerp import netsvc
vals = {}
voucher_id = self.browse(cr, uid, ref('account_voucher_case_5_supplier_flow'))
for item in voucher_id.line_dr_ids:
@@ -37,7 +37,7 @@
I will create and post an account voucher of amount 450.0 for the partner Seagate.
-
!python {model: account.voucher}: |
import netsvc
from openerp import netsvc
vals = {}
journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None)
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False)
@@ -61,8 +61,7 @@
id = self.create(cr, uid, vals)
voucher_id = self.browse(cr, uid, id)
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, [voucher_id.id])
-
Finally i will Confirm the state of the invoice is paid
@@ -45,7 +45,7 @@
I create and post a voucher payment of amount 30000.0 for the partner Seagate
-
!python {model: account.voucher}: |
import netsvc
from openerp import netsvc
vals = {}
journal_id = self.default_get(cr, uid, ['journal_id']).get('journal_id',None)
res = self.onchange_partner_id(cr, uid, [], ref("base.res_partner_19"), journal_id, 0.0, 1, ttype='receipt', date=False)
@@ -65,8 +65,7 @@
id = self.create(cr, uid, vals)
voucher_id = self.browse(cr, uid, id)
assert (voucher_id.state=='draft'), "Voucher is not in draft state"
wf_service = netsvc.LocalService("workflow")
wf_service.trg_validate(uid, 'account.voucher', voucher_id.id, 'proforma_voucher', cr)
self.signal_proforma_voucher(cr, uid, [voucher_id.id])
-
I check that move lines are reconciled meaning voucher is paid
-
@@ -307,8 +307,9 @@
</group>
<group>
<field name="date" invisible="context.get('line_type', False)" on_change="onchange_date(date, currency_id, payment_rate_currency_id, amount, company_id, context)"/>
<field name="period_id"/>
<field name="reference" invisible="context.get('line_type', False)" string="Payment Ref" placeholder="e.g. 003/10"/>
<field name="name" colspan="2" invisible="context.get('line_type', False)" placeholder="e.g. Invoice SAJ/0042"/>
<field name="name" invisible="context.get('line_type', False)" placeholder="e.g. Invoice SAJ/0042"/>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
<field name="account_id"
+405
View File
@@ -0,0 +1,405 @@
# English (United Kingdom) 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-08 19:37+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-09 04:55+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: analytic
#: field:account.analytic.account,child_ids:0
msgid "Child Accounts"
msgstr "Child Accounts"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "In Progress"
msgstr "In Progress"
#. module: analytic
#: code:addons/analytic/analytic.py:229
#, python-format
msgid "Contract: "
msgstr "Contract: "
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Template"
msgstr "Template"
#. module: analytic
#: view:account.analytic.account:0
msgid "End Date"
msgstr "End Date"
#. module: analytic
#: help:account.analytic.line,unit_amount:0
msgid "Specifies the amount of quantity to count."
msgstr "Specifies the amount of quantity to count."
#. module: analytic
#: field:account.analytic.account,debit:0
msgid "Debit"
msgstr "Debit"
#. module: analytic
#: help:account.analytic.account,type:0
msgid ""
"If you select the View Type, it means you won't allow to create journal "
"entries using that account.\n"
"The type 'Analytic account' stands for usual accounts that you only want to "
"use in accounting.\n"
"If you select Contract or Project, it offers you the possibility to manage "
"the validity and the invoicing options for this account.\n"
"The special type 'Template of Contract' allows you to define a template with "
"default data that you can reuse easily."
msgstr "I"
#. module: analytic
#: view:account.analytic.account:0
msgid ""
"Once the end date of the contract is\n"
" passed or the maximum number of "
"service\n"
" units (e.g. support contract) is\n"
" reached, the account manager is "
"notified \n"
" by email to renew the contract with "
"the\n"
" customer."
msgstr ""
"Once the end date of the contract is\n"
" passed or the maximum number of "
"service\n"
" units (e.g. support contract) is\n"
" reached, the account manager is "
"notified \n"
" by email to renew the contract with "
"the\n"
" customer."
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "Contract or Project"
msgstr "Contract or Project"
#. module: analytic
#: field:account.analytic.account,name:0
msgid "Account/Contract Name"
msgstr "Account/Contract Name"
#. module: analytic
#: field:account.analytic.account,manager_id:0
msgid "Account Manager"
msgstr "Account Manager"
#. module: analytic
#: field:account.analytic.account,message_follower_ids:0
msgid "Followers"
msgstr "Followers"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Closed"
msgstr "Closed"
#. module: analytic
#: model:mail.message.subtype,name:analytic.mt_account_pending
msgid "Contract to Renew"
msgstr "Contract to Renew"
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "New"
msgstr "New"
#. module: analytic
#: field:account.analytic.account,user_id:0
msgid "Project Manager"
msgstr "Project Manager"
#. module: analytic
#: field:account.analytic.account,state:0
msgid "Status"
msgstr "Status"
#. module: analytic
#: code:addons/analytic/analytic.py:268
#, python-format
msgid "%s (copy)"
msgstr "%s (copy)"
#. module: analytic
#: model:ir.model,name:analytic.model_account_analytic_line
msgid "Analytic Line"
msgstr "Analytic Line"
#. module: analytic
#: field:account.analytic.account,description:0
#: field:account.analytic.line,name:0
msgid "Description"
msgstr "Description"
#. module: analytic
#: field:account.analytic.account,message_unread:0
msgid "Unread Messages"
msgstr "Unread Messages"
#. module: analytic
#: constraint:account.analytic.account:0
msgid "Error! You cannot create recursive analytic accounts."
msgstr "Error! You cannot create recursive analytic accounts."
#. module: analytic
#: field:account.analytic.account,company_id:0
#: field:account.analytic.line,company_id:0
msgid "Company"
msgstr "Company"
#. module: analytic
#: view:account.analytic.account:0
msgid "Renewal"
msgstr "Renewal"
#. module: analytic
#: help:account.analytic.account,message_ids:0
msgid "Messages and communication history"
msgstr "Messages and communication history"
#. module: analytic
#: model:mail.message.subtype,description:analytic.mt_account_opened
msgid "Stage <b>opened</b>"
msgstr "Stage <b>opened</b>"
#. module: analytic
#: help:account.analytic.account,quantity_max:0
msgid ""
"Sets the higher limit of time to work on the contract, based on the "
"timesheet. (for instance, number of hours in a limited support contract.)"
msgstr ""
"Sets the higher limit of time to work on the contract, based on the "
"timesheet. (for instance, number of hours in a limited support contract.)"
#. module: analytic
#: code:addons/analytic/analytic.py:160
#, python-format
msgid ""
"If you set a company, the currency selected has to be the same as it's "
"currency. \n"
"You can remove the company belonging, and thus change the currency, only on "
"analytic account of type 'view'. This can be really usefull for "
"consolidation purposes of several companies charts with different "
"currencies, for example."
msgstr ""
"If you set a company, the currency selected has to be the same as it's "
"currency. \n"
"You can remove the company belonging, and thus change the currency, only on "
"analytic account of type 'view'. This can be really usefull for "
"consolidation purposes of several companies charts with different "
"currencies, for example."
#. module: analytic
#: field:account.analytic.account,message_is_follower:0
msgid "Is a Follower"
msgstr ""
#. module: analytic
#: field:account.analytic.line,user_id:0
msgid "User"
msgstr ""
#. module: analytic
#: model:mail.message.subtype,description:analytic.mt_account_pending
msgid "Contract <b>pending</b>"
msgstr ""
#. module: analytic
#: field:account.analytic.line,date:0
msgid "Date"
msgstr ""
#. module: analytic
#: model:mail.message.subtype,name:analytic.mt_account_closed
msgid "Contract Finished"
msgstr ""
#. module: analytic
#: view:account.analytic.account:0
msgid "Terms and Conditions"
msgstr ""
#. module: analytic
#: help:account.analytic.line,amount:0
msgid ""
"Calculated by multiplying the quantity and the price given in the Product's "
"cost price. Always expressed in the company main currency."
msgstr ""
#. module: analytic
#: field:account.analytic.account,partner_id:0
msgid "Customer"
msgstr ""
#. module: analytic
#: field:account.analytic.account,child_complete_ids:0
msgid "Account Hierarchy"
msgstr ""
#. module: analytic
#: field:account.analytic.account,message_ids:0
msgid "Messages"
msgstr ""
#. module: analytic
#: field:account.analytic.account,parent_id:0
msgid "Parent Analytic Account"
msgstr ""
#. module: analytic
#: view:account.analytic.account:0
msgid "Contract Information"
msgstr ""
#. module: analytic
#: field:account.analytic.account,template_id:0
#: selection:account.analytic.account,type:0
msgid "Template of Contract"
msgstr ""
#. module: analytic
#: field:account.analytic.account,message_summary:0
msgid "Summary"
msgstr ""
#. module: analytic
#: field:account.analytic.account,quantity_max:0
msgid "Prepaid Service Units"
msgstr ""
#. module: analytic
#: field:account.analytic.account,credit:0
msgid "Credit"
msgstr ""
#. module: analytic
#: model:mail.message.subtype,name:analytic.mt_account_opened
msgid "Contract Opened"
msgstr ""
#. module: analytic
#: model:mail.message.subtype,description:analytic.mt_account_closed
msgid "Contract <b>closed</b>"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "Cancelled"
msgstr ""
#. module: analytic
#: selection:account.analytic.account,type:0
msgid "Analytic View"
msgstr ""
#. module: analytic
#: field:account.analytic.account,balance:0
msgid "Balance"
msgstr ""
#. module: analytic
#: help:account.analytic.account,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
#. module: analytic
#: selection:account.analytic.account,state:0
msgid "To Renew"
msgstr ""
#. module: analytic
#: field:account.analytic.account,quantity:0
#: field:account.analytic.line,unit_amount:0
msgid "Quantity"
msgstr ""
#. module: analytic
#: field:account.analytic.account,date:0
msgid "Date End"
msgstr ""
#. module: analytic
#: field:account.analytic.account,code:0
msgid "Reference"
msgstr ""
#. module: analytic
#: code:addons/analytic/analytic.py:160
#, python-format
msgid "Error!"
msgstr ""
#. module: analytic
#: model:res.groups,name:analytic.group_analytic_accounting
msgid "Analytic Accounting"
msgstr ""
#. module: analytic
#: field:account.analytic.line,amount:0
msgid "Amount"
msgstr ""
#. module: analytic
#: field:account.analytic.account,complete_name:0
msgid "Full Account Name"
msgstr ""
#. module: analytic
#: view:account.analytic.account:0
#: selection:account.analytic.account,type:0
#: field:account.analytic.line,account_id:0
#: model:ir.model,name:analytic.model_account_analytic_account
msgid "Analytic Account"
msgstr ""
#. module: analytic
#: field:account.analytic.account,currency_id:0
msgid "Currency"
msgstr ""
#. module: analytic
#: help:account.analytic.account,message_summary:0
msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
#. module: analytic
#: field:account.analytic.account,type:0
msgid "Type of Account"
msgstr ""
#. module: analytic
#: field:account.analytic.account,date_start:0
msgid "Start Date"
msgstr ""
#. module: analytic
#: constraint:account.analytic.line:0
msgid "You cannot create analytic line on view account."
msgstr ""
#. module: analytic
#: field:account.analytic.account,line_ids:0
msgid "Analytic Entries"
msgstr ""
@@ -0,0 +1,72 @@
# English (United Kingdom) 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-07 18:38+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: analytic_contract_hr_expense
#: view:account.analytic.account:0
msgid "or view"
msgstr "or view"
#. module: analytic_contract_hr_expense
#: view:account.analytic.account:0
msgid "Nothing to invoice, create"
msgstr "Nothing to invoice, create"
#. module: analytic_contract_hr_expense
#: view:account.analytic.account:0
msgid "expenses"
msgstr "expenses"
#. module: analytic_contract_hr_expense
#: model:ir.model,name:analytic_contract_hr_expense.model_account_analytic_account
msgid "Analytic Account"
msgstr "Analytic Account"
#. module: analytic_contract_hr_expense
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:129
#, python-format
msgid "Expenses to Invoice of %s"
msgstr "Expenses to Invoice of %s"
#. module: analytic_contract_hr_expense
#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:121
#, python-format
msgid "Expenses of %s"
msgstr "Expenses of %s"
#. module: analytic_contract_hr_expense
#: field:account.analytic.account,expense_invoiced:0
#: field:account.analytic.account,expense_to_invoice:0
#: field:account.analytic.account,remaining_expense:0
msgid "unknown"
msgstr "unknown"
#. module: analytic_contract_hr_expense
#: field:account.analytic.account,est_expenses:0
msgid "Estimation of Expenses to Invoice"
msgstr "Estimation of Expenses to Invoice"
#. module: analytic_contract_hr_expense
#: field:account.analytic.account,charge_expenses:0
msgid "Charge Expenses"
msgstr "Charge Expenses"
#. module: analytic_contract_hr_expense
#: view:account.analytic.account:0
msgid "⇒ Invoice"
msgstr "⇒ Invoice"
+336
View File
@@ -0,0 +1,336 @@
# English (United Kingdom) 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-08 19:44+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-09 04:55+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
msgid "ir.model.fields.anonymize.wizard"
msgstr "ir.model.fields.anonymize.wizard"
#. module: anonymization
#: field:ir.model.fields.anonymization,model_id:0
msgid "Object"
msgstr "Object"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_migration_fix
msgid "ir.model.fields.anonymization.migration.fix"
msgstr "ir.model.fields.anonymization.migration.fix"
#. module: anonymization
#: field:ir.model.fields.anonymization.migration.fix,target_version:0
msgid "Target Version"
msgstr "Target Version"
#. module: anonymization
#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
msgid "sql"
msgstr "sql"
#. module: anonymization
#: code:addons/anonymization/anonymization.py:91
#, python-format
msgid ""
"The database anonymization is currently in an unstable state. Some fields "
"are anonymized, while some fields are not anonymized. You should try to "
"solve this problem before trying to create, write or delete fields."
msgstr ""
"The database anonymization is currently in an unstable state. Some fields "
"are anonymized, while some fields are not anonymized. You should try to "
"solve this problem before trying to create, write or delete fields."
#. module: anonymization
#: field:ir.model.fields.anonymization,field_name:0
msgid "Field Name"
msgstr "Field Name"
#. module: anonymization
#: field:ir.model.fields.anonymization,field_id:0
#: field:ir.model.fields.anonymization.migration.fix,field_name:0
msgid "Field"
msgstr "Field"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
msgid "New"
msgstr "New"
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_import:0
msgid "Import"
msgstr "Import"
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
msgid "ir.model.fields.anonymization"
msgstr "ir.model.fields.anonymization"
#. module: anonymization
#: code:addons/anonymization/anonymization.py:300
#, python-format
msgid ""
"Before executing the anonymization process, you should make a backup of your "
"database."
msgstr ""
"Before executing the anonymization process, you should make a backup of your "
"database."
#. module: anonymization
#: field:ir.model.fields.anonymization.history,state:0
#: field:ir.model.fields.anonymize.wizard,state:0
msgid "Status"
msgstr "Status"
#. module: anonymization
#: field:ir.model.fields.anonymization.history,direction:0
msgid "Direction"
msgstr "Direction"
#. module: anonymization
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
#: view:ir.model.fields.anonymization:0
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
msgid "Anonymized Fields"
msgstr "Anonymized Fields"
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
msgid "Database anonymization"
msgstr "Database anonymization"
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "clear -> anonymized"
msgstr "clear -> anonymized"
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Anonymized"
msgstr "Anonymized"
#. module: anonymization
#: field:ir.model.fields.anonymization,state:0
msgid "unknown"
msgstr "unknown"
#. module: anonymization
#: code:addons/anonymization/anonymization.py:448
#, python-format
msgid "Anonymized value is None. This cannot happens."
msgstr "Anonymized value is None. This cannot happens."
#. module: anonymization
#: field:ir.model.fields.anonymization.history,filepath:0
msgid "File path"
msgstr ""
#. module: anonymization
#: help:ir.model.fields.anonymize.wizard,file_import:0
msgid ""
"This is the file created by the anonymization process. It should have the "
"'.pickle' extention."
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.history,date:0
msgid "Date"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,file_export:0
msgid "Export"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Reverse the Database Anonymization"
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:444
#, python-format
msgid ""
"Cannot anonymize fields of these types: binary, many2many, many2one, "
"one2many, reference."
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymize.wizard:0
msgid "Database Anonymization"
msgstr ""
#. module: anonymization
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
msgid "Anonymize database"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
msgid "python"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymization.history:0
#: field:ir.model.fields.anonymization.history,field_ids:0
msgid "Fields"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Clear"
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:533
#, python-format
msgid ""
"It is not possible to reverse the anonymization process without supplying "
"the anonymization export file."
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,summary:0
msgid "Summary"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymization:0
msgid "Anonymized Field"
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:391
#: code:addons/anonymization/anonymization.py:526
#, python-format
msgid ""
"The database anonymization is currently in an unstable state. Some fields "
"are anonymized, while some fields are not anonymized. You should try to "
"solve this problem before trying to do anything."
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymize.wizard,state:0
msgid "Unstable"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Exception occured"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization,state:0
msgid "Not Existing"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization,model_name:0
msgid "Object Name"
msgstr ""
#. module: anonymization
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
#: view:ir.model.fields.anonymization.history:0
#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
msgid "Anonymization History"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.migration.fix,model_name:0
msgid "Model"
msgstr ""
#. module: anonymization
#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
msgid "ir.model.fields.anonymization.history"
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:358
#, python-format
msgid ""
"The database anonymization is currently in an unstable state. Some fields "
"are anonymized, while some fields are not anonymized. You should try to "
"solve this problem before trying to do anything else."
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:389
#: code:addons/anonymization/anonymization.py:448
#, python-format
msgid "Error !"
msgstr ""
#. module: anonymization
#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
#: view:ir.model.fields.anonymize.wizard:0
msgid "Anonymize Database"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymize.wizard,name:0
msgid "File Name"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.migration.fix,sequence:0
msgid "Sequence"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,direction:0
msgid "anonymized -> clear"
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Started"
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:389
#, python-format
msgid "The database is currently anonymized, you cannot anonymize it again."
msgstr ""
#. module: anonymization
#: selection:ir.model.fields.anonymization.history,state:0
msgid "Done"
msgstr ""
#. module: anonymization
#: field:ir.model.fields.anonymization.migration.fix,query:0
#: field:ir.model.fields.anonymization.migration.fix,query_type:0
msgid "Query"
msgstr ""
#. module: anonymization
#: view:ir.model.fields.anonymization.history:0
#: field:ir.model.fields.anonymization.history,msg:0
#: field:ir.model.fields.anonymize.wizard,msg:0
msgid "Message"
msgstr ""
#. module: anonymization
#: code:addons/anonymization/anonymization.py:65
#: sql_constraint:ir.model.fields.anonymization:0
#, python-format
msgid "You cannot have two fields with the same name on the same object!"
msgstr ""
+326 -321
View File
@@ -20,7 +20,7 @@
##############################################################################
from openerp.osv import fields, osv
from openerp.osv.osv import object_proxy
import openerp.service.model
from openerp.tools.translate import _
from openerp import pooler
import time
@@ -171,355 +171,360 @@ class audittrail_log_line(osv.osv):
'field_description': fields.char('Field Description', size=64),
}
class audittrail_objects_proxy(object_proxy):
""" Uses Object proxy for auditing changes on object of subscribed Rules"""
# Monkeypatch the model RPC endpoint for auditing changes.
def get_value_text(self, cr, uid, pool, resource_pool, method, field, value):
"""
Gets textual values for the fields.
If the field is a many2one, it returns the name.
If it's a one2many or a many2many, it returns a list of name.
In other cases, it just returns the value.
:param cr: the current row, from the database cursor,
:param uid: the current user’s ID for security checks,
:param pool: current db's pooler object.
:param resource_pool: pooler object of the model which values are being changed.
:param field: for which the text value is to be returned.
:param value: value of the field.
:param recursive: True or False, True will repeat the process recursively
:return: string value or a list of values(for O2M/M2M)
"""
def get_value_text(cr, uid, pool, resource_pool, method, field, value):
"""
Gets textual values for the fields.
If the field is a many2one, it returns the name.
If it's a one2many or a many2many, it returns a list of name.
In other cases, it just returns the value.
:param cr: the current row, from the database cursor,
:param uid: the current user’s ID for security checks,
:param pool: current db's pooler object.
:param resource_pool: pooler object of the model which values are being changed.
:param field: for which the text value is to be returned.
:param value: value of the field.
:param recursive: True or False, True will repeat the process recursively
:return: string value or a list of values(for O2M/M2M)
"""
field_obj = (resource_pool._all_columns.get(field)).column
if field_obj._type in ('one2many','many2many'):
data = pool.get(field_obj._obj).name_get(cr, uid, value)
#return the modifications on x2many fields as a list of names
res = map(lambda x:x[1], data)
elif field_obj._type == 'many2one':
#return the modifications on a many2one field as its value returned by name_get()
res = value and value[1] or value
else:
res = value
return res
field_obj = (resource_pool._all_columns.get(field)).column
if field_obj._type in ('one2many','many2many'):
data = pool.get(field_obj._obj).name_get(cr, uid, value)
#return the modifications on x2many fields as a list of names
res = map(lambda x:x[1], data)
elif field_obj._type == 'many2one':
#return the modifications on a many2one field as its value returned by name_get()
res = value and value[1] or value
else:
res = value
return res
def create_log_line(self, cr, uid, log_id, model, lines=None):
"""
Creates lines for changed fields with its old and new values
def create_log_line(cr, uid, log_id, model, lines=None):
"""
Creates lines for changed fields with its old and new values
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param model: Object which values are being changed
@param lines: List of values for line is to be created
"""
if lines is None:
lines = []
pool = pooler.get_pool(cr.dbname)
obj_pool = pool.get(model.model)
model_pool = pool.get('ir.model')
field_pool = pool.get('ir.model.fields')
log_line_pool = pool.get('audittrail.log.line')
for line in lines:
field_obj = obj_pool._all_columns.get(line['name'])
assert field_obj, _("'%s' field does not exist in '%s' model" %(line['name'], model.model))
field_obj = field_obj.column
old_value = line.get('old_value', '')
new_value = line.get('new_value', '')
search_models = [model.id]
if obj_pool._inherits:
search_models += model_pool.search(cr, uid, [('model', 'in', obj_pool._inherits.keys())])
field_id = field_pool.search(cr, uid, [('name', '=', line['name']), ('model_id', 'in', search_models)])
if field_obj._type == 'many2one':
old_value = old_value and old_value[0] or old_value
new_value = new_value and new_value[0] or new_value
vals = {
"log_id": log_id,
"field_id": field_id and field_id[0] or False,
"old_value": old_value,
"new_value": new_value,
"old_value_text": line.get('old_value_text', ''),
"new_value_text": line.get('new_value_text', ''),
"field_description": field_obj.string
}
line_id = log_line_pool.create(cr, uid, vals)
return True
def log_fct(self, cr, uid_orig, model, method, fct_src, *args, **kw):
"""
Logging function: This function is performing the logging operation
@param model: Object whose values are being changed
@param method: method to log: create, read, write, unlink, action or workflow action
@param fct_src: execute method of Object proxy
@return: Returns result as per method of Object proxy
"""
pool = pooler.get_pool(cr.dbname)
resource_pool = pool.get(model)
model_pool = pool.get('ir.model')
model_ids = model_pool.search(cr, SUPERUSER_ID, [('model', '=', model)])
model_id = model_ids and model_ids[0] or False
assert model_id, _("'%s' Model does not exist..." %(model))
model = model_pool.browse(cr, SUPERUSER_ID, model_id)
# fields to log. currently only used by log on read()
field_list = []
old_values = new_values = {}
if method == 'create':
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
if res:
res_ids = [res]
new_values = self.get_data(cr, uid_orig, pool, res_ids, model, method)
elif method == 'read':
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
# build the res_ids and the old_values dict. Here we don't use get_data() to
# avoid performing an additional read()
res_ids = []
for record in res:
res_ids.append(record['id'])
old_values[(model.id, record['id'])] = {'value': record, 'text': record}
# log only the fields read
field_list = args[1]
elif method == 'unlink':
res_ids = args[0]
old_values = self.get_data(cr, uid_orig, pool, res_ids, model, method)
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
else: # method is write, action or workflow action
res_ids = []
if args:
res_ids = args[0]
if isinstance(res_ids, (long, int)):
res_ids = [res_ids]
if res_ids:
# store the old values into a dictionary
old_values = self.get_data(cr, uid_orig, pool, res_ids, model, method)
# process the original function, workflow trigger...
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
if method == 'copy':
res_ids = [res]
if res_ids:
# check the new values and store them into a dictionary
new_values = self.get_data(cr, uid_orig, pool, res_ids, model, method)
# compare the old and new values and create audittrail log if needed
self.process_data(cr, uid_orig, pool, res_ids, model, method, old_values, new_values, field_list)
return res
def get_data(self, cr, uid, pool, res_ids, model, method):
"""
This function simply read all the fields of the given res_ids, and also recurisvely on
all records of a x2m fields read that need to be logged. Then it returns the result in
convenient structure that will be used as comparison basis.
:param cr: the current row, from the database cursor,
:param uid: the current user’s ID. This parameter is currently not used as every
operation to get data is made as super admin. Though, it could be usefull later.
:param pool: current db's pooler object.
:param res_ids: Id's of resource to be logged/compared.
:param model: Object whose values are being changed
:param method: method to log: create, read, unlink, write, actions, workflow actions
:return: dict mapping a tuple (model_id, resource_id) with its value and textual value
{ (model_id, resource_id): { 'value': ...
'textual_value': ...
},
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID for security checks,
@param model: Object which values are being changed
@param lines: List of values for line is to be created
"""
if lines is None:
lines = []
pool = pooler.get_pool(cr.dbname)
obj_pool = pool.get(model.model)
model_pool = pool.get('ir.model')
field_pool = pool.get('ir.model.fields')
log_line_pool = pool.get('audittrail.log.line')
for line in lines:
field_obj = obj_pool._all_columns.get(line['name'])
assert field_obj, _("'%s' field does not exist in '%s' model" %(line['name'], model.model))
field_obj = field_obj.column
old_value = line.get('old_value', '')
new_value = line.get('new_value', '')
search_models = [model.id]
if obj_pool._inherits:
search_models += model_pool.search(cr, uid, [('model', 'in', obj_pool._inherits.keys())])
field_id = field_pool.search(cr, uid, [('name', '=', line['name']), ('model_id', 'in', search_models)])
if field_obj._type == 'many2one':
old_value = old_value and old_value[0] or old_value
new_value = new_value and new_value[0] or new_value
vals = {
"log_id": log_id,
"field_id": field_id and field_id[0] or False,
"old_value": old_value,
"new_value": new_value,
"old_value_text": line.get('old_value_text', ''),
"new_value_text": line.get('new_value_text', ''),
"field_description": field_obj.string
}
"""
data = {}
resource_pool = pool.get(model.model)
# read all the fields of the given resources in super admin mode
for resource in resource_pool.read(cr, SUPERUSER_ID, res_ids):
values = {}
values_text = {}
resource_id = resource['id']
# loop on each field on the res_ids we just have read
for field in resource:
if field in ('__last_update', 'id'):
continue
values[field] = resource[field]
# get the textual value of that field for this record
values_text[field] = self.get_value_text(cr, SUPERUSER_ID, pool, resource_pool, method, field, resource[field])
line_id = log_line_pool.create(cr, uid, vals)
return True
field_obj = resource_pool._all_columns.get(field).column
if field_obj._type in ('one2many','many2many'):
# check if an audittrail rule apply in super admin mode
if self.check_rules(cr, SUPERUSER_ID, field_obj._obj, method):
# check if the model associated to a *2m field exists, in super admin mode
x2m_model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', field_obj._obj)])
x2m_model_id = x2m_model_ids and x2m_model_ids[0] or False
assert x2m_model_id, _("'%s' Model does not exist..." %(field_obj._obj))
x2m_model = pool.get('ir.model').browse(cr, SUPERUSER_ID, x2m_model_id)
field_resource_ids = list(set(resource[field]))
if model.model == x2m_model.model:
# we need to remove current resource_id from the many2many to prevent an infinit loop
if resource_id in field_resource_ids:
field_resource_ids.remove(resource_id)
data.update(self.get_data(cr, SUPERUSER_ID, pool, field_resource_ids, x2m_model, method))
data[(model.id, resource_id)] = {'text':values_text, 'value': values}
return data
def log_fct(cr, uid_orig, model, method, fct_src, *args, **kw):
"""
Logging function: This function is performing the logging operation
@param model: Object whose values are being changed
@param method: method to log: create, read, write, unlink, action or workflow action
@param fct_src: execute method of Object proxy
def prepare_audittrail_log_line(self, cr, uid, pool, model, resource_id, method, old_values, new_values, field_list=None):
"""
This function compares the old data (i.e before the method was executed) and the new data
(after the method was executed) and returns a structure with all the needed information to
log those differences.
@return: Returns result as per method of Object proxy
"""
pool = pooler.get_pool(cr.dbname)
resource_pool = pool.get(model)
model_pool = pool.get('ir.model')
model_ids = model_pool.search(cr, SUPERUSER_ID, [('model', '=', model)])
model_id = model_ids and model_ids[0] or False
assert model_id, _("'%s' Model does not exist..." %(model))
model = model_pool.browse(cr, SUPERUSER_ID, model_id)
# fields to log. currently only used by log on read()
field_list = []
old_values = new_values = {}
if method == 'create':
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
if res:
res_ids = [res]
new_values = get_data(cr, uid_orig, pool, res_ids, model, method)
elif method == 'read':
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
# build the res_ids and the old_values dict. Here we don't use get_data() to
# avoid performing an additional read()
res_ids = []
for record in res:
res_ids.append(record['id'])
old_values[(model.id, record['id'])] = {'value': record, 'text': record}
# log only the fields read
field_list = args[1]
elif method == 'unlink':
res_ids = args[0]
old_values = get_data(cr, uid_orig, pool, res_ids, model, method)
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
else: # method is write, action or workflow action
res_ids = []
if args:
res_ids = args[0]
if isinstance(res_ids, (long, int)):
res_ids = [res_ids]
if res_ids:
# store the old values into a dictionary
old_values = get_data(cr, uid_orig, pool, res_ids, model, method)
# process the original function, workflow trigger...
res = fct_src(cr, uid_orig, model.model, method, *args, **kw)
if method == 'copy':
res_ids = [res]
if res_ids:
# check the new values and store them into a dictionary
new_values = get_data(cr, uid_orig, pool, res_ids, model, method)
# compare the old and new values and create audittrail log if needed
process_data(cr, uid_orig, pool, res_ids, model, method, old_values, new_values, field_list)
return res
def get_data(cr, uid, pool, res_ids, model, method):
"""
This function simply read all the fields of the given res_ids, and also recurisvely on
all records of a x2m fields read that need to be logged. Then it returns the result in
convenient structure that will be used as comparison basis.
:param cr: the current row, from the database cursor,
:param uid: the current user’s ID. This parameter is currently not used as every
operation to get data is made as super admin. Though, it could be usefull later.
:param pool: current db's pooler object.
:param model: model object which values are being changed
:param resource_id: ID of record to which values are being changed
:param res_ids: Id's of resource to be logged/compared.
:param model: Object whose values are being changed
:param method: method to log: create, read, unlink, write, actions, workflow actions
:param old_values: dict of values read before execution of the method
:param new_values: dict of values read after execution of the method
:param field_list: optional argument containing the list of fields to log. Currently only
used when performing a read, it could be usefull later on if we want to log the write
on specific fields only.
:return: dictionary with
* keys: tuples build as ID of model object to log and ID of resource to log
* values: list of all the changes in field values for this couple (model, resource)
return {
(model.id, resource_id): []
}
The reason why the structure returned is build as above is because when modifying an existing
record, we may have to log a change done in a x2many field of that object
"""
if field_list is None:
field_list = []
key = (model.id, resource_id)
lines = {
key: []
}
# loop on all the fields
for field_name, field_definition in pool.get(model.model)._all_columns.items():
if field_name in ('__last_update', 'id'):
:return: dict mapping a tuple (model_id, resource_id) with its value and textual value
{ (model_id, resource_id): { 'value': ...
'textual_value': ...
},
}
"""
data = {}
resource_pool = pool.get(model.model)
# read all the fields of the given resources in super admin mode
for resource in resource_pool.read(cr, SUPERUSER_ID, res_ids):
values = {}
values_text = {}
resource_id = resource['id']
# loop on each field on the res_ids we just have read
for field in resource:
if field in ('__last_update', 'id'):
continue
#if the field_list param is given, skip all the fields not in that list
if field_list and field_name not in field_list:
continue
field_obj = field_definition.column
values[field] = resource[field]
# get the textual value of that field for this record
values_text[field] = get_value_text(cr, SUPERUSER_ID, pool, resource_pool, method, field, resource[field])
field_obj = resource_pool._all_columns.get(field).column
if field_obj._type in ('one2many','many2many'):
# checking if an audittrail rule apply in super admin mode
if self.check_rules(cr, SUPERUSER_ID, field_obj._obj, method):
# checking if the model associated to a *2m field exists, in super admin mode
# check if an audittrail rule apply in super admin mode
if check_rules(cr, SUPERUSER_ID, field_obj._obj, method):
# check if the model associated to a *2m field exists, in super admin mode
x2m_model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', field_obj._obj)])
x2m_model_id = x2m_model_ids and x2m_model_ids[0] or False
assert x2m_model_id, _("'%s' Model does not exist..." %(field_obj._obj))
x2m_model = pool.get('ir.model').browse(cr, SUPERUSER_ID, x2m_model_id)
# the resource_ids that need to be checked are the sum of both old and previous values (because we
# need to log also creation or deletion in those lists).
x2m_old_values_ids = old_values.get(key, {'value': {}})['value'].get(field_name, [])
x2m_new_values_ids = new_values.get(key, {'value': {}})['value'].get(field_name, [])
# We use list(set(...)) to remove duplicates.
res_ids = list(set(x2m_old_values_ids + x2m_new_values_ids))
field_resource_ids = list(set(resource[field]))
if model.model == x2m_model.model:
# we need to remove current resource_id from the many2many to prevent an infinit loop
if resource_id in res_ids:
res_ids.remove(resource_id)
for res_id in res_ids:
lines.update(self.prepare_audittrail_log_line(cr, SUPERUSER_ID, pool, x2m_model, res_id, method, old_values, new_values, field_list))
# if the value value is different than the old value: record the change
if key not in old_values or key not in new_values or old_values[key]['value'][field_name] != new_values[key]['value'][field_name]:
data = {
'name': field_name,
'new_value': key in new_values and new_values[key]['value'].get(field_name),
'old_value': key in old_values and old_values[key]['value'].get(field_name),
'new_value_text': key in new_values and new_values[key]['text'].get(field_name),
'old_value_text': key in old_values and old_values[key]['text'].get(field_name)
}
lines[key].append(data)
return lines
if resource_id in field_resource_ids:
field_resource_ids.remove(resource_id)
data.update(get_data(cr, SUPERUSER_ID, pool, field_resource_ids, x2m_model, method))
def process_data(self, cr, uid, pool, res_ids, model, method, old_values=None, new_values=None, field_list=None):
"""
This function processes and iterates recursively to log the difference between the old
data (i.e before the method was executed) and the new data and creates audittrail log
accordingly.
data[(model.id, resource_id)] = {'text':values_text, 'value': values}
return data
:param cr: the current row, from the database cursor,
:param uid: the current user’s ID,
:param pool: current db's pooler object.
:param res_ids: Id's of resource to be logged/compared.
:param model: model object which values are being changed
:param method: method to log: create, read, unlink, write, actions, workflow actions
:param old_values: dict of values read before execution of the method
:param new_values: dict of values read after execution of the method
:param field_list: optional argument containing the list of fields to log. Currently only
used when performing a read, it could be usefull later on if we want to log the write
on specific fields only.
:return: True
"""
if field_list is None:
field_list = []
# loop on all the given ids
for res_id in res_ids:
# compare old and new values and get audittrail log lines accordingly
lines = self.prepare_audittrail_log_line(cr, uid, pool, model, res_id, method, old_values, new_values, field_list)
def prepare_audittrail_log_line(cr, uid, pool, model, resource_id, method, old_values, new_values, field_list=None):
"""
This function compares the old data (i.e before the method was executed) and the new data
(after the method was executed) and returns a structure with all the needed information to
log those differences.
# if at least one modification has been found
for model_id, resource_id in lines:
name = pool.get(model.model).name_get(cr, uid, [resource_id])[0][1]
vals = {
'method': method,
'object_id': model_id,
'user_id': uid,
'res_id': resource_id,
'name': name,
}
if (model_id, resource_id) not in old_values and method not in ('copy', 'read'):
# the resource was not existing so we are forcing the method to 'create'
# (because it could also come with the value 'write' if we are creating
# new record through a one2many field)
vals.update({'method': 'create'})
if (model_id, resource_id) not in new_values and method not in ('copy', 'read'):
# the resource is not existing anymore so we are forcing the method to 'unlink'
# (because it could also come with the value 'write' if we are deleting the
# record through a one2many field)
vals.update({'method': 'unlink'})
# create the audittrail log in super admin mode, only if a change has been detected
if lines[(model_id, resource_id)]:
log_id = pool.get('audittrail.log').create(cr, SUPERUSER_ID, vals)
model = pool.get('ir.model').browse(cr, uid, model_id)
self.create_log_line(cr, SUPERUSER_ID, log_id, model, lines[(model_id, resource_id)])
return True
:param cr: the current row, from the database cursor,
:param uid: the current user’s ID. This parameter is currently not used as every
operation to get data is made as super admin. Though, it could be usefull later.
:param pool: current db's pooler object.
:param model: model object which values are being changed
:param resource_id: ID of record to which values are being changed
:param method: method to log: create, read, unlink, write, actions, workflow actions
:param old_values: dict of values read before execution of the method
:param new_values: dict of values read after execution of the method
:param field_list: optional argument containing the list of fields to log. Currently only
used when performing a read, it could be usefull later on if we want to log the write
on specific fields only.
def check_rules(self, cr, uid, model, method):
"""
Checks if auditrails is installed for that db and then if one rule match
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID,
@param model: value of _name of the object which values are being changed
@param method: method to log: create, read, unlink,write,actions,workflow actions
@return: True or False
"""
pool = pooler.get_pool(cr.dbname)
if 'audittrail.rule' in pool.models:
model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', model)])
model_id = model_ids and model_ids[0] or False
if model_id:
rule_ids = pool.get('audittrail.rule').search(cr, SUPERUSER_ID, [('object_id', '=', model_id), ('state', '=', 'subscribed')])
for rule in pool.get('audittrail.rule').read(cr, SUPERUSER_ID, rule_ids, ['user_id','log_read','log_write','log_create','log_unlink','log_action','log_workflow']):
if len(rule['user_id']) == 0 or uid in rule['user_id']:
if rule.get('log_'+method,0):
:return: dictionary with
* keys: tuples build as ID of model object to log and ID of resource to log
* values: list of all the changes in field values for this couple (model, resource)
return {
(model.id, resource_id): []
}
The reason why the structure returned is build as above is because when modifying an existing
record, we may have to log a change done in a x2many field of that object
"""
if field_list is None:
field_list = []
key = (model.id, resource_id)
lines = {
key: []
}
# loop on all the fields
for field_name, field_definition in pool.get(model.model)._all_columns.items():
if field_name in ('__last_update', 'id'):
continue
#if the field_list param is given, skip all the fields not in that list
if field_list and field_name not in field_list:
continue
field_obj = field_definition.column
if field_obj._type in ('one2many','many2many'):
# checking if an audittrail rule apply in super admin mode
if check_rules(cr, SUPERUSER_ID, field_obj._obj, method):
# checking if the model associated to a *2m field exists, in super admin mode
x2m_model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', field_obj._obj)])
x2m_model_id = x2m_model_ids and x2m_model_ids[0] or False
assert x2m_model_id, _("'%s' Model does not exist..." %(field_obj._obj))
x2m_model = pool.get('ir.model').browse(cr, SUPERUSER_ID, x2m_model_id)
# the resource_ids that need to be checked are the sum of both old and previous values (because we
# need to log also creation or deletion in those lists).
x2m_old_values_ids = old_values.get(key, {'value': {}})['value'].get(field_name, [])
x2m_new_values_ids = new_values.get(key, {'value': {}})['value'].get(field_name, [])
# We use list(set(...)) to remove duplicates.
res_ids = list(set(x2m_old_values_ids + x2m_new_values_ids))
if model.model == x2m_model.model:
# we need to remove current resource_id from the many2many to prevent an infinit loop
if resource_id in res_ids:
res_ids.remove(resource_id)
for res_id in res_ids:
lines.update(prepare_audittrail_log_line(cr, SUPERUSER_ID, pool, x2m_model, res_id, method, old_values, new_values, field_list))
# if the value value is different than the old value: record the change
if key not in old_values or key not in new_values or old_values[key]['value'][field_name] != new_values[key]['value'][field_name]:
data = {
'name': field_name,
'new_value': key in new_values and new_values[key]['value'].get(field_name),
'old_value': key in old_values and old_values[key]['value'].get(field_name),
'new_value_text': key in new_values and new_values[key]['text'].get(field_name),
'old_value_text': key in old_values and old_values[key]['text'].get(field_name)
}
lines[key].append(data)
return lines
def process_data(cr, uid, pool, res_ids, model, method, old_values=None, new_values=None, field_list=None):
"""
This function processes and iterates recursively to log the difference between the old
data (i.e before the method was executed) and the new data and creates audittrail log
accordingly.
:param cr: the current row, from the database cursor,
:param uid: the current user’s ID,
:param pool: current db's pooler object.
:param res_ids: Id's of resource to be logged/compared.
:param model: model object which values are being changed
:param method: method to log: create, read, unlink, write, actions, workflow actions
:param old_values: dict of values read before execution of the method
:param new_values: dict of values read after execution of the method
:param field_list: optional argument containing the list of fields to log. Currently only
used when performing a read, it could be usefull later on if we want to log the write
on specific fields only.
:return: True
"""
if field_list is None:
field_list = []
# loop on all the given ids
for res_id in res_ids:
# compare old and new values and get audittrail log lines accordingly
lines = prepare_audittrail_log_line(cr, uid, pool, model, res_id, method, old_values, new_values, field_list)
# if at least one modification has been found
for model_id, resource_id in lines:
name = pool.get(model.model).name_get(cr, uid, [resource_id])[0][1]
vals = {
'method': method,
'object_id': model_id,
'user_id': uid,
'res_id': resource_id,
'name': name,
}
if (model_id, resource_id) not in old_values and method not in ('copy', 'read'):
# the resource was not existing so we are forcing the method to 'create'
# (because it could also come with the value 'write' if we are creating
# new record through a one2many field)
vals.update({'method': 'create'})
if (model_id, resource_id) not in new_values and method not in ('copy', 'read'):
# the resource is not existing anymore so we are forcing the method to 'unlink'
# (because it could also come with the value 'write' if we are deleting the
# record through a one2many field)
vals.update({'method': 'unlink'})
# create the audittrail log in super admin mode, only if a change has been detected
if lines[(model_id, resource_id)]:
log_id = pool.get('audittrail.log').create(cr, SUPERUSER_ID, vals)
model = pool.get('ir.model').browse(cr, uid, model_id)
create_log_line(cr, SUPERUSER_ID, log_id, model, lines[(model_id, resource_id)])
return True
def check_rules(cr, uid, model, method):
"""
Checks if auditrails is installed for that db and then if one rule match
@param cr: the current row, from the database cursor,
@param uid: the current user’s ID,
@param model: value of _name of the object which values are being changed
@param method: method to log: create, read, unlink,write,actions,workflow actions
@return: True or False
"""
pool = pooler.get_pool(cr.dbname)
if 'audittrail.rule' in pool.models:
model_ids = pool.get('ir.model').search(cr, SUPERUSER_ID, [('model', '=', model)])
model_id = model_ids and model_ids[0] or False
if model_id:
rule_ids = pool.get('audittrail.rule').search(cr, SUPERUSER_ID, [('object_id', '=', model_id), ('state', '=', 'subscribed')])
for rule in pool.get('audittrail.rule').read(cr, SUPERUSER_ID, rule_ids, ['user_id','log_read','log_write','log_create','log_unlink','log_action','log_workflow']):
if len(rule['user_id']) == 0 or uid in rule['user_id']:
if rule.get('log_'+method,0):
return True
elif method not in ('default_get','read','fields_view_get','fields_get','search','search_count','name_search','name_get','get','request_get', 'get_sc', 'unlink', 'write', 'create', 'read_group', 'import_data'):
if rule['log_action']:
return True
elif method not in ('default_get','read','fields_view_get','fields_get','search','search_count','name_search','name_get','get','request_get', 'get_sc', 'unlink', 'write', 'create', 'read_group', 'import_data'):
if rule['log_action']:
return True
def execute_cr(self, cr, uid, model, method, *args, **kw):
fct_src = super(audittrail_objects_proxy, self).execute_cr
if self.check_rules(cr,uid,model,method):
return self.log_fct(cr, uid, model, method, fct_src, *args, **kw)
return fct_src(cr, uid, model, method, *args, **kw)
# Replace the openerp.service.model functions.
def exec_workflow_cr(self, cr, uid, model, method, *args, **kw):
fct_src = super(audittrail_objects_proxy, self).exec_workflow_cr
if self.check_rules(cr,uid,model,'workflow'):
return self.log_fct(cr, uid, model, method, fct_src, *args, **kw)
return fct_src(cr, uid, model, method, *args, **kw)
original_execute_cr = openerp.service.model.execute_cr
original_exec_workflow_cr = openerp.service.model.exec_workflow_cr
audittrail_objects_proxy()
def execute_cr(cr, uid, model, method, *args, **kw):
fct_src = original_execute_cr
if check_rules(cr,uid,model,method):
return log_fct(cr, uid, model, method, fct_src, *args, **kw)
return fct_src(cr, uid, model, method, *args, **kw)
def exec_workflow_cr(cr, uid, model, method, *args, **kw):
fct_src = original_exec_workflow_cr
if check_rules(cr,uid,model,'workflow'):
return log_fct(cr, uid, model, method, fct_src, *args, **kw)
return fct_src(cr, uid, model, method, *args, **kw)
openerp.service.model.execute_cr = execute_cr
openerp.service.model.exec_workflow_cr = exec_workflow_cr
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+13 -22
View File
@@ -1,37 +1,28 @@
# Mongolian translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# 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>, 2012.
# 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-03 16:03+0000\n"
"PO-Revision-Date: 2012-06-19 09:29+0000\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-07 10:14+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: 2012-12-04 05:53+0000\n"
"X-Generator: Launchpad (build 16335)\n"
"X-Launchpad-Export-Date: 2013-02-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users
msgid "Users"
#. module: auth_crypt
#: field:res.users,password_crypt:0
msgid "Encrypted Password"
msgstr ""
#~ msgid "You can not have two users with the same login !"
#~ msgstr "Ижил нэвтрэх кодтой хоёр хэрэглэгч байж болохгүй!"
#, python-format
#~ msgid "Error"
#~ msgstr "Алдаа"
#~ msgid "The chosen company is not in the allowed companies for this user"
#~ msgstr ""
#~ "Энэ хэрэглэгчийн сонгосон компани зөвшөөрөгдсөн компаниуд дунд алга байна."
#~ msgid "res.users"
#~ msgstr "Хэрэглэгч"
#. module: auth_crypt
#: model:ir.model,name:auth_crypt.model_res_users
msgid "Users"
msgstr "Хэрэглэгчид"
+14 -61
View File
@@ -1,75 +1,28 @@
# Russian translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# 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>, 2011.
# 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-03 16:03+0000\n"
"PO-Revision-Date: 2011-03-15 23:59+0000\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
"PO-Revision-Date: 2013-02-13 09:46+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian <ru@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-04 05:53+0000\n"
"X-Generator: Launchpad (build 16335)\n"
"X-Launchpad-Export-Date: 2013-02-14 04:37+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: base_crypt
#: model:ir.model,name:base_crypt.model_res_users
#. module: auth_crypt
#: field:res.users,password_crypt:0
msgid "Encrypted Password"
msgstr "Зашифрованный пароль"
#. module: auth_crypt
#: model:ir.model,name:auth_crypt.model_res_users
msgid "Users"
msgstr ""
#~ msgid "res.users"
#~ msgstr "res.users"
#, python-format
#~ msgid "Error"
#~ msgstr "Error"
#, python-format
#~ msgid "Please specify the password !"
#~ msgstr "Необходимо указать пароль!"
#~ msgid "The chosen company is not in the allowed companies for this user"
#~ msgstr ""
#~ "Выбранная организация отсутствует в списке разрешённых для этого пользователя"
#~ msgid "You can not have two users with the same login !"
#~ msgstr "Не может быть двух пользователей с одинаковым именем пользователя!"
#~ msgid "Base - Password Encryption"
#~ msgstr "Основной - Шифрование паролей"
#~ msgid ""
#~ "This module replaces the cleartext password in the database with a password "
#~ "hash,\n"
#~ "preventing anyone from reading the original password.\n"
#~ "For your existing user base, the removal of the cleartext passwords occurs "
#~ "the first time\n"
#~ "a user logs into the database, after installing base_crypt.\n"
#~ "After installing this module it won't be possible to recover a forgotten "
#~ "password for your\n"
#~ "users, the only solution is for an admin to set a new password.\n"
#~ "\n"
#~ "Note: installing this module does not mean you can ignore basic security "
#~ "measures,\n"
#~ "as the password is still transmitted unencrypted on the network (by the "
#~ "client),\n"
#~ "unless you are using a secure protocol such as XML-RPCS.\n"
#~ " "
#~ msgstr ""
#~ "Этот модуль заменяет текстовые пароли в базе данных на их хэши,\n"
#~ "предотвращая хищение оригинальных паролей.\n"
#~ "Для существующей базы пользователей, удаление текстового пароля происходит "
#~ "при\n"
#~ "первом входе пользователя после установки base_crypt.\n"
#~ "После установки этого модуля станет невозможно восстановление пароля \n"
#~ "пользователя. Возможна будет только замена пароля.\n"
#~ "\n"
#~ "Прим.: установка этого модуля не избавляет от необходимости соблюдать\n"
#~ "базовые меры безопасности, поскольку пароли всё ещё передаются открытым\n"
#~ "текстом по сети, если не используется безопасный протокол вроде XML-RPCS.\n"
#~ " "
msgstr "Пользователи"
+168
View File
@@ -0,0 +1,168 @@
# English (United Kingdom) 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-07 19:49+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: auth_ldap
#: field:res.company.ldap,user:0
msgid "Template User"
msgstr "Template User"
#. module: auth_ldap
#: help:res.company.ldap,ldap_tls:0
msgid ""
"Request secure TLS/SSL encryption when connecting to the LDAP server. This "
"option requires a server with STARTTLS enabled, otherwise all authentication "
"attempts will fail."
msgstr ""
"Request secure TLS/SSL encryption when connecting to the LDAP server. This "
"option requires a server with STARTTLS enabled, otherwise all authentication "
"attempts will fail."
#. module: auth_ldap
#: view:res.company:0
#: view:res.company.ldap:0
msgid "LDAP Configuration"
msgstr "LDAP Configuration"
#. module: auth_ldap
#: field:res.company.ldap,ldap_binddn:0
msgid "LDAP binddn"
msgstr "LDAP binddn"
#. module: auth_ldap
#: field:res.company.ldap,company:0
msgid "Company"
msgstr "Company"
#. module: auth_ldap
#: field:res.company.ldap,ldap_server:0
msgid "LDAP Server address"
msgstr "LDAP Server address"
#. module: auth_ldap
#: field:res.company.ldap,ldap_server_port:0
msgid "LDAP Server port"
msgstr "LDAP Server port"
#. module: auth_ldap
#: help:res.company.ldap,create_user:0
msgid ""
"Automatically create local user accounts for new users authenticating via "
"LDAP"
msgstr ""
"Automatically create local user accounts for new users authenticating via "
"LDAP"
#. module: auth_ldap
#: field:res.company.ldap,ldap_base:0
msgid "LDAP base"
msgstr "LDAP base"
#. module: auth_ldap
#: view:res.company.ldap:0
msgid "User Information"
msgstr "User Information"
#. module: auth_ldap
#: field:res.company.ldap,ldap_password:0
msgid "LDAP password"
msgstr "LDAP password"
#. module: auth_ldap
#: model:ir.model,name:auth_ldap.model_res_company
msgid "Companies"
msgstr "Companies"
#. module: auth_ldap
#: view:res.company.ldap:0
msgid "Process Parameter"
msgstr "Process Parameter"
#. module: auth_ldap
#: model:ir.model,name:auth_ldap.model_res_company_ldap
msgid "res.company.ldap"
msgstr "res.company.ldap"
#. module: auth_ldap
#: help:res.company.ldap,user:0
msgid "User to copy when creating new users"
msgstr "User to copy when creating new users"
#. module: auth_ldap
#: field:res.company.ldap,ldap_tls:0
msgid "Use TLS"
msgstr "Use TLS"
#. module: auth_ldap
#: field:res.company.ldap,sequence:0
msgid "Sequence"
msgstr "Sequence"
#. module: auth_ldap
#: view:res.company.ldap:0
msgid "Login Information"
msgstr "Login Information"
#. module: auth_ldap
#: view:res.company.ldap:0
msgid "Server Information"
msgstr "Server Information"
#. module: auth_ldap
#: model:ir.actions.act_window,name:auth_ldap.action_ldap_installer
msgid "Setup your LDAP Server"
msgstr "Setup your LDAP Server"
#. module: auth_ldap
#: view:res.company:0
#: field:res.company,ldaps:0
msgid "LDAP Parameters"
msgstr "LDAP Parameters"
#. module: auth_ldap
#: help:res.company.ldap,ldap_password:0
msgid ""
"The password of the user account on the LDAP server that is used to query "
"the directory."
msgstr ""
"The password of the user account on the LDAP server that is used to query "
"the directory."
#. module: auth_ldap
#: help:res.company.ldap,ldap_binddn:0
msgid ""
"The user account on the LDAP server that is used to query the directory. "
"Leave empty to connect anonymously."
msgstr ""
"The user account on the LDAP server that is used to query the directory. "
"Leave empty to connect anonymously."
#. module: auth_ldap
#: model:ir.model,name:auth_ldap.model_res_users
msgid "Users"
msgstr "Users"
#. module: auth_ldap
#: field:res.company.ldap,ldap_filter:0
msgid "LDAP filter"
msgstr "LDAP filter"
#. module: auth_ldap
#: field:res.company.ldap,create_user:0
msgid "Create user"
msgstr "Create user"
+9
View File
@@ -2,8 +2,10 @@ import functools
import logging
import simplejson
import werkzeug.utils
from werkzeug.exceptions import BadRequest
import openerp
from openerp import SUPERUSER_ID
import openerp.addons.web.http as oeweb
from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect
@@ -69,6 +71,13 @@ class OAuthController(oeweb.Controller):
# auth_signup is not installed
_logger.error("auth_signup not installed on database %s: oauth sign up cancelled." % (dbname,))
url = "/#action=login&oauth_error=1"
except openerp.exceptions.AccessDenied:
# oauth credentials not valid, user could be on a temporary session
_logger.info('OAuth2: access denied, redirect to main page in case a valid session exists, without setting cookies')
url = "/#action=login&oauth_error=3"
redirect = werkzeug.utils.redirect(url, 303)
redirect.autocorrect_location_header = False
return redirect
except Exception, e:
# signup error
_logger.exception("OAuth2: %s" % str(e))
+135
View File
@@ -0,0 +1,135 @@
# English (United Kingdom) 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-07 19:24+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: auth_oauth
#: field:auth.oauth.provider,validation_endpoint:0
msgid "Validation URL"
msgstr "Validation URL"
#. module: auth_oauth
#: field:auth.oauth.provider,auth_endpoint:0
msgid "Authentication URL"
msgstr "Authentication URL"
#. module: auth_oauth
#: model:ir.model,name:auth_oauth.model_base_config_settings
msgid "base.config.settings"
msgstr "base.config.settings"
#. module: auth_oauth
#: field:auth.oauth.provider,name:0
msgid "Provider name"
msgstr "Provider name"
#. module: auth_oauth
#: field:auth.oauth.provider,scope:0
msgid "Scope"
msgstr "Scope"
#. module: auth_oauth
#: field:res.users,oauth_provider_id:0
msgid "OAuth Provider"
msgstr "OAuth Provider"
#. module: auth_oauth
#: field:auth.oauth.provider,css_class:0
msgid "CSS class"
msgstr "CSS class"
#. module: auth_oauth
#: field:auth.oauth.provider,body:0
msgid "Body"
msgstr "Body"
#. module: auth_oauth
#: model:ir.model,name:auth_oauth.model_res_users
msgid "Users"
msgstr "Users"
#. module: auth_oauth
#: field:auth.oauth.provider,sequence:0
msgid "unknown"
msgstr "unknown"
#. module: auth_oauth
#: field:res.users,oauth_access_token:0
msgid "OAuth Access Token"
msgstr "OAuth Access Token"
#. module: auth_oauth
#: field:auth.oauth.provider,client_id:0
#: field:base.config.settings,auth_oauth_facebook_client_id:0
#: field:base.config.settings,auth_oauth_google_client_id:0
msgid "Client ID"
msgstr "Client ID"
#. module: auth_oauth
#: model:ir.ui.menu,name:auth_oauth.menu_oauth_providers
msgid "OAuth Providers"
msgstr "OAuth Providers"
#. module: auth_oauth
#: model:ir.model,name:auth_oauth.model_auth_oauth_provider
msgid "OAuth2 provider"
msgstr "OAuth2 provider"
#. module: auth_oauth
#: field:res.users,oauth_uid:0
msgid "OAuth User ID"
msgstr "OAuth User ID"
#. module: auth_oauth
#: field:base.config.settings,auth_oauth_facebook_enabled:0
msgid "Allow users to sign in with Facebook"
msgstr "Allow users to sign in with Facebook"
#. module: auth_oauth
#: sql_constraint:res.users:0
msgid "OAuth UID must be unique per provider"
msgstr "OAuth UID must be unique per provider"
#. module: auth_oauth
#: help:res.users,oauth_uid:0
msgid "Oauth Provider user_id"
msgstr "Oauth Provider user_id"
#. module: auth_oauth
#: field:auth.oauth.provider,data_endpoint:0
msgid "Data URL"
msgstr "Data URL"
#. module: auth_oauth
#: view:auth.oauth.provider:0
msgid "arch"
msgstr "arch"
#. module: auth_oauth
#: model:ir.actions.act_window,name:auth_oauth.action_oauth_provider
msgid "Providers"
msgstr "Providers"
#. module: auth_oauth
#: field:base.config.settings,auth_oauth_google_enabled:0
msgid "Allow users to sign in with Google"
msgstr "Allow users to sign in with Google"
#. module: auth_oauth
#: field:auth.oauth.provider,enabled:0
msgid "Allowed"
msgstr "Allowed"
+23
View File
@@ -0,0 +1,23 @@
# Russian 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-13 09:46+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Russian <ru@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-14 04:37+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: auth_oauth_signup
#: model:ir.model,name:auth_oauth_signup.model_res_users
msgid "Users"
msgstr "Пользователи"
+2
View File
@@ -36,6 +36,8 @@ class res_users(osv.Model):
login = super(res_users, self)._auth_oauth_signin(cr, uid, provider, validation, params, context=context)
except openerp.exceptions.AccessDenied:
if context and context.get('no_user_creation'):
return None
state = simplejson.loads(params['state'])
token = state.get('t')
oauth_uid = validation['user_id']
+97
View File
@@ -0,0 +1,97 @@
# English (United Kingdom) 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-07 18:48+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:24
#, python-format
msgid "Username"
msgstr "Username"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:12
#: view:res.users:0
#, python-format
msgid "OpenID"
msgstr "OpenID"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:30
#: field:res.users,openid_url:0
#, python-format
msgid "OpenID URL"
msgstr "OpenID URL"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:9
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
#, python-format
msgid "Google"
msgstr "Google"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:11
#, python-format
msgid "Launchpad"
msgstr "Launchpad"
#. module: auth_openid
#: help:res.users,openid_email:0
msgid "Used for disambiguation in case of a shared OpenID URL"
msgstr "Used for disambiguation in case of a shared OpenID URL"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:18
#, python-format
msgid "Google Apps Domain"
msgstr "Google Apps Domain"
#. module: auth_openid
#: field:res.users,openid_email:0
msgid "OpenID Email"
msgstr "OpenID Email"
#. module: auth_openid
#: field:res.users,openid_key:0
msgid "OpenID Key"
msgstr "OpenID Key"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:8
#, python-format
msgid "Password"
msgstr "Password"
#. module: auth_openid
#. openerp-web
#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
#, python-format
msgid "Google Apps"
msgstr "Google Apps"
#. module: auth_openid
#: model:ir.model,name:auth_openid.model_res_users
msgid "Users"
msgstr "Users"
+277
View File
@@ -0,0 +1,277 @@
# English (United Kingdom) 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-07 20:26+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: auth_signup
#: field:res.partner,signup_type:0
msgid "Signup Token Type"
msgstr "Signup Token Type"
#. module: auth_signup
#: field:base.config.settings,auth_signup_uninvited:0
msgid "Allow external users to sign up"
msgstr "Allow external users to sign up"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:16
#, python-format
msgid "Confirm Password"
msgstr "Confirm Password"
#. module: auth_signup
#: help:base.config.settings,auth_signup_uninvited:0
msgid "If unchecked, only invited users may sign up."
msgstr "If unchecked, only invited users may sign up."
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_base_config_settings
msgid "base.config.settings"
msgstr "base.config.settings"
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:252
#, python-format
msgid "Cannot send email: user has no email address."
msgstr "Cannot send email: user has no email address."
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:25
#, python-format
msgid "Reset password"
msgstr "Reset password"
#. module: auth_signup
#: field:base.config.settings,auth_signup_template_user_id:0
msgid "Template user for new users created through signup"
msgstr "Template user for new users created through signup"
#. module: auth_signup
#: model:email.template,subject:auth_signup.reset_password_email
msgid "Password reset"
msgstr "Password reset"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:125
#, python-format
msgid "Please enter a password and confirm it."
msgstr "Please enter a password and confirm it."
#. module: auth_signup
#: view:res.users:0
msgid "Send an email to the user to (re)set their password."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:23
#, python-format
msgid "Sign Up"
msgstr ""
#. module: auth_signup
#: selection:res.users,state:0
msgid "New"
msgstr ""
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:258
#, python-format
msgid "Mail sent to:"
msgstr ""
#. module: auth_signup
#: field:res.users,state:0
msgid "Status"
msgstr ""
#. module: auth_signup
#: model:email.template,body_html:auth_signup.reset_password_email
msgid ""
"\n"
"<p>A password reset was requested for the OpenERP account linked to this "
"email.</p>\n"
"\n"
"<p>You may change your password by following <a "
"href=\"${object.signup_url}\">this link</a>.</p>\n"
"\n"
"<p>Note: If you do not expect this, you can safely ignore this email.</p>"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:119
#, python-format
msgid "Please enter a name."
msgstr ""
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_users
msgid "Users"
msgstr ""
#. module: auth_signup
#: field:res.partner,signup_url:0
msgid "Signup URL"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:122
#, python-format
msgid "Please enter a username."
msgstr ""
#. module: auth_signup
#: selection:res.users,state:0
msgid "Active"
msgstr ""
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:256
#, python-format
msgid ""
"Cannot send email: no outgoing email server configured.\n"
"You can configure it under Settings/General Settings."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12
#, python-format
msgid "Username"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8
#, python-format
msgid "Name"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:165
#, python-format
msgid "Please enter a username or email address."
msgstr ""
#. module: auth_signup
#: selection:res.users,state:0
msgid "Resetting Password"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13
#, python-format
msgid "Username (Email)"
msgstr ""
#. module: auth_signup
#: field:res.partner,signup_expiration:0
msgid "Signup Expiration"
msgstr ""
#. module: auth_signup
#: help:base.config.settings,auth_signup_reset_password:0
msgid "This allows users to trigger a password reset from the Login page."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:21
#, python-format
msgid "Log in"
msgstr ""
#. module: auth_signup
#: field:res.partner,signup_valid:0
msgid "Signup Token is Valid"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:116
#: code:addons/auth_signup/static/src/js/auth_signup.js:119
#: code:addons/auth_signup/static/src/js/auth_signup.js:122
#: code:addons/auth_signup/static/src/js/auth_signup.js:125
#: code:addons/auth_signup/static/src/js/auth_signup.js:128
#: code:addons/auth_signup/static/src/js/auth_signup.js:162
#: code:addons/auth_signup/static/src/js/auth_signup.js:165
#, python-format
msgid "Login"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:99
#, python-format
msgid "Invalid signup token"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:128
#, python-format
msgid "Passwords do not match; please retype them."
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:116
#: code:addons/auth_signup/static/src/js/auth_signup.js:162
#, python-format
msgid "No database selected !"
msgstr ""
#. module: auth_signup
#: view:res.users:0
msgid "Reset Password"
msgstr ""
#. module: auth_signup
#: field:base.config.settings,auth_signup_reset_password:0
msgid "Enable password reset from Login page"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:24
#, python-format
msgid "Back to Login"
msgstr ""
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
#, python-format
msgid "Sign up"
msgstr ""
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_partner
msgid "Partner"
msgstr ""
#. module: auth_signup
#: field:res.partner,signup_token:0
msgid "Signup Token"
msgstr ""
+289
View File
@@ -0,0 +1,289 @@
# 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:05+0000\n"
"PO-Revision-Date: 2013-02-09 13:23+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-10 04:49+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: auth_signup
#: field:res.partner,signup_type:0
msgid "Signup Token Type"
msgstr "Бүртгүүлэх Жетоны төрөл"
#. module: auth_signup
#: field:base.config.settings,auth_signup_uninvited:0
msgid "Allow external users to sign up"
msgstr "Гадаад хэрэглэгчид бүртгүүлэхийг зөвшөөрөх"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:16
#, python-format
msgid "Confirm Password"
msgstr "Нууц үгийг баталгаажуулах"
#. module: auth_signup
#: help:base.config.settings,auth_signup_uninvited:0
msgid "If unchecked, only invited users may sign up."
msgstr ""
"Хэрэв тэмдэглээгүй бол зөвхөн уригдсан хэрэглэгчид л бүртгүүлэх боломжтой"
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_base_config_settings
msgid "base.config.settings"
msgstr "base.config.settings"
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:252
#, python-format
msgid "Cannot send email: user has no email address."
msgstr "Имэйлийг илгээх боломжгүй: хэрэглэгчид имэйл хаяг алга"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:25
#, python-format
msgid "Reset password"
msgstr "Нууц үгийг шинэчлэх"
#. module: auth_signup
#: field:base.config.settings,auth_signup_template_user_id:0
msgid "Template user for new users created through signup"
msgstr "Бүртгүүлэхээр үүссэн шинэ хэрэглэгчид зориулсан үлгэр хэрэглэгч"
#. module: auth_signup
#: model:email.template,subject:auth_signup.reset_password_email
msgid "Password reset"
msgstr "Нууц үгийг шинэчлэх"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:125
#, python-format
msgid "Please enter a password and confirm it."
msgstr "Нууц үгийг оруулж баталгаажуул"
#. module: auth_signup
#: view:res.users:0
msgid "Send an email to the user to (re)set their password."
msgstr "Хэрэглэгчид нууц үгээ шинэчлэх имэйл илгээнэ."
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:23
#, python-format
msgid "Sign Up"
msgstr "Бүртгүүлэх"
#. module: auth_signup
#: selection:res.users,state:0
msgid "New"
msgstr "Шинэ"
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:258
#, python-format
msgid "Mail sent to:"
msgstr "Мэйлийг хэнд илгээх"
#. module: auth_signup
#: field:res.users,state:0
msgid "Status"
msgstr "Төлөв"
#. module: auth_signup
#: model:email.template,body_html:auth_signup.reset_password_email
msgid ""
"\n"
"<p>A password reset was requested for the OpenERP account linked to this "
"email.</p>\n"
"\n"
"<p>You may change your password by following <a "
"href=\"${object.signup_url}\">this link</a>.</p>\n"
"\n"
"<p>Note: If you do not expect this, you can safely ignore this email.</p>"
msgstr ""
"\n"
"<p>Энэ имэйлтэй холбогдсон OpenERP дансны нууц үгийг шинэчлэхийг хүссэн "
"байна.</p>\n"
"\n"
"<p>Нууц үгээ <a href=\"${object.signup_url}\">энэ холбоосоор</a> орж "
"шинэчлэх боломжтой.</p>\n"
"\n"
"<p>Санамж: Хэрэв үүнийг таамаглаагүй байсан бол энэ имэйлийг хэрэгсэхгүй "
"байж болно.</p>"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:119
#, python-format
msgid "Please enter a name."
msgstr "Нэр оруулна уу."
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_users
msgid "Users"
msgstr "Хэрэглэгчид"
#. module: auth_signup
#: field:res.partner,signup_url:0
msgid "Signup URL"
msgstr "Бүртгүүлэх URL"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:122
#, python-format
msgid "Please enter a username."
msgstr "Хэрэглэгчийн нэрийг оруулна уу"
#. module: auth_signup
#: selection:res.users,state:0
msgid "Active"
msgstr "Идэвхтэй"
#. module: auth_signup
#: code:addons/auth_signup/res_users.py:256
#, python-format
msgid ""
"Cannot send email: no outgoing email server configured.\n"
"You can configure it under Settings/General Settings."
msgstr ""
"Имэйл илгээх боломжгүй: гарах имэйл сервер тохируулагдаагүй байна.\n"
"Тохиргоо/Ерөнхий тохиргоо дотор үүнийг тохируулах боломжтой."
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12
#, python-format
msgid "Username"
msgstr "Хэрэглэгчийн нэр"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8
#, python-format
msgid "Name"
msgstr "Нэр"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:165
#, python-format
msgid "Please enter a username or email address."
msgstr "Хэрэглэгчийн нэр эсвэл имэйл хаягийг оруулна уу."
#. module: auth_signup
#: selection:res.users,state:0
msgid "Resetting Password"
msgstr "Нууц үгийг шинэчлэж байна"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13
#, python-format
msgid "Username (Email)"
msgstr "Хэрэглэгчийн нэр (Имэйл)"
#. module: auth_signup
#: field:res.partner,signup_expiration:0
msgid "Signup Expiration"
msgstr "Бүртгэлт хугацаа хэтрэх"
#. module: auth_signup
#: help:base.config.settings,auth_signup_reset_password:0
msgid "This allows users to trigger a password reset from the Login page."
msgstr "Энэ нь Нэвтрэх хуудаснаас нууц үгээ шинэчлэх боломжийг олгодог."
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:21
#, python-format
msgid "Log in"
msgstr "Нэвтрэх"
#. module: auth_signup
#: field:res.partner,signup_valid:0
msgid "Signup Token is Valid"
msgstr "Бүртгүүлэх Жетон Хүчинтэй"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:116
#: code:addons/auth_signup/static/src/js/auth_signup.js:119
#: code:addons/auth_signup/static/src/js/auth_signup.js:122
#: code:addons/auth_signup/static/src/js/auth_signup.js:125
#: code:addons/auth_signup/static/src/js/auth_signup.js:128
#: code:addons/auth_signup/static/src/js/auth_signup.js:162
#: code:addons/auth_signup/static/src/js/auth_signup.js:165
#, python-format
msgid "Login"
msgstr "Нэвтрэх"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:99
#, python-format
msgid "Invalid signup token"
msgstr "Бүртгүүлэх жетон хүчингүй"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:128
#, python-format
msgid "Passwords do not match; please retype them."
msgstr "Нууц үгүүд таарахгүй байна; дахин бичнэ үү."
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/js/auth_signup.js:116
#: code:addons/auth_signup/static/src/js/auth_signup.js:162
#, python-format
msgid "No database selected !"
msgstr "Өгөгдлийн бааз сонгогдоогүй байна!"
#. module: auth_signup
#: view:res.users:0
msgid "Reset Password"
msgstr "Нууц шинэчлэх"
#. module: auth_signup
#: field:base.config.settings,auth_signup_reset_password:0
msgid "Enable password reset from Login page"
msgstr "Нэвтрэх хуудаснаас нууц үг шинэчлэхийг зөвшөөрөх"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:24
#, python-format
msgid "Back to Login"
msgstr "Дахин нэвтрэх"
#. module: auth_signup
#. openerp-web
#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
#, python-format
msgid "Sign up"
msgstr "Бүртгүүлэх"
#. module: auth_signup
#: model:ir.model,name:auth_signup.model_res_partner
msgid "Partner"
msgstr "Харилцагч"
#. module: auth_signup
#: field:res.partner,signup_token:0
msgid "Signup Token"
msgstr "Бүртгүүлэх Жетон"
+1 -1
View File
@@ -1,4 +1,4 @@
from osv import osv, fields
from openerp.osv import fields, osv
AVAILABLE_STATES = [
('draft', 'New'),
+19 -20
View File
@@ -24,12 +24,13 @@ from dateutil import parser
from dateutil import rrule
from dateutil.relativedelta import relativedelta
from openerp.osv import fields, osv
from openerp.service import web_services
from openerp.tools.translate import _
import pytz
import re
import time
from openerp import tools, SUPERUSER_ID
import openerp.service.report
months = {
1: "January", 2: "February", 3: "March", 4: "April", \
@@ -1729,27 +1730,25 @@ class ir_model(osv.osv):
ir_model()
class virtual_report_spool(web_services.report_spool):
original_exp_report = openerp.service.report.exp_report
def exp_report(self, db, uid, object, ids, data=None, context=None):
"""
Export Report
@param self: The object pointer
@param db: get the current database,
@param uid: the current user's ID for security checks,
@param context: A standard dictionary for contextual values
"""
def exp_report(db, uid, object, ids, data=None, context=None):
"""
Export Report
@param db: get the current database,
@param uid: the current user's ID for security checks,
@param context: A standard dictionary for contextual values
"""
if object == 'printscreen.list':
return super(virtual_report_spool, self).exp_report(db, uid, \
object, ids, data, context)
new_ids = []
for id in ids:
new_ids.append(base_calendar_id2real_id(id))
if data.get('id', False):
data['id'] = base_calendar_id2real_id(data['id'])
return super(virtual_report_spool, self).exp_report(db, uid, object, new_ids, data, context)
if object == 'printscreen.list':
original_exp_report(db, uid, object, ids, data, context)
new_ids = []
for id in ids:
new_ids.append(base_calendar_id2real_id(id))
if data.get('id', False):
data['id'] = base_calendar_id2real_id(data['id'])
return original_exp_report(db, uid, object, new_ids, data, context)
virtual_report_spool()
openerp.service.report.exp_report = exp_report
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+4 -3
View File
@@ -234,11 +234,12 @@
<field name="arch" type="xml">
<search string="Search Meetings">
<field name="name" string="Meeting" filter_domain="[('name','ilike',self)]"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
<field name="partner_ids"/>
<field name="categ_ids"/>
<field name="user_id"/>
<separator/>
<filter string="My Meetings" help="My Meetings" domain="[('user_id','=',uid)]"/>
<field name="user_id"/>
<field name="partner_ids"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]"/>
</search>
</field>
</record>
+249
View File
@@ -0,0 +1,249 @@
# 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:05+0000\n"
"PO-Revision-Date: 2013-02-07 14:36+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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: base_gengo
#: view:res.company:0
msgid "Comments for Translator"
msgstr ""
#. module: base_gengo
#: field:ir.translation,job_id:0
msgid "Gengo Job ID"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
#, python-format
msgid "This language is not supported by the Gengo translation services."
msgstr ""
#. module: base_gengo
#: field:res.company,gengo_comment:0
msgid "Comments"
msgstr ""
#. module: base_gengo
#: field:res.company,gengo_private_key:0
msgid "Gengo Private Key"
msgstr ""
#. module: base_gengo
#: model:ir.model,name:base_gengo.model_base_gengo_translations
msgid "base.gengo.translations"
msgstr ""
#. module: base_gengo
#: help:res.company,gengo_auto_approve:0
msgid "Jobs are Automatically Approved by Gengo."
msgstr ""
#. module: base_gengo
#: field:base.gengo.translations,lang_id:0
msgid "Language"
msgstr ""
#. module: base_gengo
#: field:ir.translation,gengo_comment:0
msgid "Comments & Activity Linked to Gengo"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:124
#, python-format
msgid "Gengo Sync Translation (Response)"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:72
#, python-format
msgid ""
"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo "
"authentication parameters under `Settings > Companies > Gengo Parameters`."
msgstr ""
#. module: base_gengo
#: selection:ir.translation,gengo_translation:0
msgid "Translation By Machine"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:155
#, python-format
msgid ""
"%s\n"
"\n"
"--\n"
" Commented on %s by %s."
msgstr ""
#. module: base_gengo
#: field:ir.translation,gengo_translation:0
msgid "Gengo Translation Service Level"
msgstr ""
#. module: base_gengo
#: constraint:ir.translation:0
msgid ""
"The Gengo translation service selected is not supported for this language."
msgstr ""
#. module: base_gengo
#: selection:ir.translation,gengo_translation:0
msgid "Standard"
msgstr ""
#. module: base_gengo
#: help:ir.translation,gengo_translation:0
msgid ""
"You can select here the service level you want for an automatic translation "
"using Gengo."
msgstr ""
#. module: base_gengo
#: field:base.gengo.translations,restart_send_job:0
msgid "Restart Sending Job"
msgstr ""
#. module: base_gengo
#: view:ir.translation:0
msgid "To Approve In Gengo"
msgstr ""
#. module: base_gengo
#: view:res.company:0
msgid "Private Key"
msgstr ""
#. module: base_gengo
#: view:res.company:0
msgid "Public Key"
msgstr ""
#. module: base_gengo
#: field:res.company,gengo_public_key:0
msgid "Gengo Public Key"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:123
#, python-format
msgid "Gengo Sync Translation (Request)"
msgstr ""
#. module: base_gengo
#: view:ir.translation:0
msgid "Translations"
msgstr ""
#. module: base_gengo
#: field:res.company,gengo_auto_approve:0
msgid "Auto Approve Translation ?"
msgstr ""
#. module: base_gengo
#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations
#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations
msgid "Gengo: Manual Request of Translation"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/ir_translation.py:62
#: code:addons/base_gengo/wizard/base_gengo_translations.py:109
#, python-format
msgid "Gengo Authentication Error"
msgstr ""
#. module: base_gengo
#: model:ir.model,name:base_gengo.model_res_company
msgid "Companies"
msgstr ""
#. module: base_gengo
#: view:ir.translation:0
msgid ""
"Note: If the translation state is 'In Progress', it means that the "
"translation has to be approved to be uploaded in this system. You are "
"supposed to do that directly by using your Gengo Account"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:82
#, python-format
msgid ""
"Gengo connection failed with this message:\n"
"``%s``"
msgstr ""
#. module: base_gengo
#: view:res.company:0
msgid "Gengo Parameters"
msgstr ""
#. module: base_gengo
#: view:base.gengo.translations:0
msgid "Send"
msgstr ""
#. module: base_gengo
#: selection:ir.translation,gengo_translation:0
msgid "Ultra"
msgstr ""
#. module: base_gengo
#: model:ir.model,name:base_gengo.model_ir_translation
msgid "ir.translation"
msgstr ""
#. module: base_gengo
#: view:ir.translation:0
msgid "Gengo Translation Service"
msgstr ""
#. module: base_gengo
#: selection:ir.translation,gengo_translation:0
msgid "Pro"
msgstr ""
#. module: base_gengo
#: view:base.gengo.translations:0
msgid "Gengo Request Form"
msgstr ""
#. module: base_gengo
#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
#, python-format
msgid "Warning"
msgstr ""
#. module: base_gengo
#: help:res.company,gengo_comment:0
msgid ""
"This comment will be automatically be enclosed in each an every request sent "
"to Gengo"
msgstr ""
#. module: base_gengo
#: view:base.gengo.translations:0
msgid "Cancel"
msgstr ""
#. module: base_gengo
#: view:base.gengo.translations:0
msgid "or"
msgstr ""
+180 -31
View File
@@ -8,14 +8,14 @@ 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: 2012-12-14 22:33+0000\n"
"Last-Translator: Goran Kliska <gkliska@gmail.com>\n"
"PO-Revision-Date: 2013-02-12 22:11+0000\n"
"Last-Translator: Davor Bojkić <bole@dajmi5.com>\n"
"Language-Team: Croatian <hr@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:07+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-13 04:36+0000\n"
"X-Generator: Launchpad (build 16491)\n"
#. module: base_import
#. openerp-web
@@ -29,7 +29,7 @@ msgstr "Dohvati sve moguće vrijednosti"
#: code:addons/base_import/static/src/xml/import.xml:71
#, python-format
msgid "Need to import data from an other application?"
msgstr ""
msgstr "Potreban je uvoz podataka iz druge aplikacije?"
#. module: base_import
#. openerp-web
@@ -47,6 +47,15 @@ msgid ""
"give \n"
" you an example for Products and their Categories."
msgstr ""
"Kada koristite vanjske ID-eve, možete uvesti csv datoteke \n"
" sa kolonom \"External ID\" "
"definirate vanjski ID svakog zapisa \n"
" koji uvozite. Tada ćete biti "
"u mogućnosti napraviti referencu \n"
" na taj zapis sa kolonama tipa "
"\"polje/External ID\". Sljedeća dvije \n"
" csv datoteke daju primjer za "
"proizvode i njihove kategorije."
#. module: base_import
#. openerp-web
@@ -56,13 +65,16 @@ msgid ""
"How to export/import different tables from an SQL \n"
" application to OpenERP?"
msgstr ""
"Kako izvesti/uvesti različite tablice iz SQL \n"
" "
"programa u OpenERP"
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/js/import.js:310
#, python-format
msgid "Relation Fields"
msgstr ""
msgstr "Relacijska polja"
#. module: base_import
#. openerp-web
@@ -72,6 +84,9 @@ msgid ""
"Country/Database ID: the unique OpenERP ID for a \n"
" record, defined by the ID postgresql column"
msgstr ""
"Država/ID baze: jedinstveni OpenERP ID za \n"
" "
" zapis, definran kolonom postgres kolonom ID"
#. module: base_import
#. openerp-web
@@ -87,6 +102,16 @@ msgid ""
"\n"
" have a unique Database ID)"
msgstr ""
"Korištenje \n"
" Država/ID "
"BAze : ovo bi trebali rijetko koristiti\n"
" za "
"označavanje. Ovo je većinom korišteno od strane programera\n"
" jer je "
"glavna prednost ovoga to što nikad nema konflikata \n"
" (možete "
"imati više zapisa istog naziva, ali uvjek sa jedinstvenim IDentifikatorom u "
"Bazi)"
#. module: base_import
#. openerp-web
@@ -96,6 +121,9 @@ msgid ""
"For the country \n"
" Belgium, you can use one of these 3 ways to import:"
msgstr ""
"Za državu \n"
" "
" Belgiju, možete koristiti jedan od ova 3 načina uza uvoz:"
#. module: base_import
#. openerp-web
@@ -121,13 +149,20 @@ msgid ""
"companies) TO \n"
" '/tmp/company.csv' with CSV HEADER;"
msgstr ""
"kopirajte \n"
" (select "
"'company_'||id as \"External ID\",company_name\n"
" as "
"\"Name\",'True' as \"Is a Company\" from companies) TO\n"
" "
"'/tmp/company.csv' with CSV HEADER;"
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/xml/import.xml:206
#, python-format
msgid "CSV file for Manufacturer, Retailer"
msgstr ""
msgstr "CSV datoteka za Proizvođače, Veletrgovce"
#. module: base_import
#. openerp-web
@@ -139,6 +174,11 @@ msgid ""
"\n"
" data from a third party application."
msgstr ""
"Koristi \n"
" Država/Vanjski ID. "
"koristite vanjski ID kad uvozite \n"
" podatke iz drugih "
"aplikacija."
#. module: base_import
#. openerp-web
@@ -152,7 +192,7 @@ msgstr ""
#: code:addons/base_import/static/src/xml/import.xml:80
#, python-format
msgid "XXX/External ID"
msgstr ""
msgstr "XXX/Vanjski ID"
#. module: base_import
#. openerp-web
@@ -181,6 +221,14 @@ msgid ""
"\n"
" See the following question."
msgstr ""
"Primjetite da vaša csv datoteka \n"
" ima tabulator za "
"odvajanje, a OpenERP neće \n"
" primjetiti ta odvajanja. "
"Morate promjineiti format \n"
" zapisa u vašem tabličnom "
"kalkulatoru. \n"
" Vidi sljedeće pitanje."
#. module: base_import
#. openerp-web
@@ -199,7 +247,7 @@ msgstr ""
#: code:addons/base_import/static/src/xml/import.xml:239
#, python-format
msgid "Can I import several times the same record?"
msgstr ""
msgstr "Mogu li isti zapis uvesti nekoliko puta?"
#. module: base_import
#. openerp-web
@@ -213,7 +261,7 @@ msgstr "Potvrdi"
#: code:addons/base_import/static/src/xml/import.xml:55
#, python-format
msgid "Map your data to OpenERP"
msgstr ""
msgstr "Mapirajte vaše podatke na OpenERP"
#. module: base_import
#. openerp-web
@@ -224,6 +272,10 @@ msgid ""
" the easiest way when your data come from CSV files \n"
" that have been created manually."
msgstr ""
"Korištenje Države: ovo je \n"
" najlakši način kada vaši "
"podaci dolaze iz csv datoteka\n"
" koje su sastavljene ručno."
#. module: base_import
#. openerp-web
@@ -233,6 +285,8 @@ msgid ""
"What's the difference between Database ID and \n"
" External ID?"
msgstr ""
"Koja je razlika izmeži ID Baze i \n"
" vanjski ID?"
#. module: base_import
#. openerp-web
@@ -244,25 +298,30 @@ msgid ""
"\n"
" you 3 different fields to import:"
msgstr ""
"Na primjer, \n"
" referenciranje države "
"kontakta, OpenERP predlaže \n"
" 3 različita polja za "
"uvoz :"
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/xml/import.xml:175
#, python-format
msgid "What can I do if I have multiple matches for a field?"
msgstr ""
msgstr "Što da radim ako imam više istih zapisa za polje?"
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/xml/import.xml:302
#, python-format
msgid "External ID,Name,Is a Company"
msgstr ""
msgstr "Vanjski ID , Naziv, Je Tvrtka"
#. module: base_import
#: field:base_import.tests.models.preview,somevalue:0
msgid "Some Value"
msgstr ""
msgstr "Neka vrijednost"
#. module: base_import
#. openerp-web
@@ -272,6 +331,9 @@ msgid ""
"The following CSV file shows how to import \n"
" suppliers and their respective contacts"
msgstr ""
"Sljedeća csv datoteka pokazuje kako uvesti \n"
" "
" dobavljače i njihove pripadne kontakte"
#. module: base_import
#. openerp-web
@@ -281,6 +343,9 @@ msgid ""
"How can I change the CSV file format options when \n"
" saving in my spreadsheet application?"
msgstr ""
"Kako da promijenim opcije csv formata \n"
" "
"kada spremam datoteku u tabličnom kalkulatoru?"
#. module: base_import
#. openerp-web
@@ -301,6 +366,21 @@ msgid ""
"orignial \n"
" database)."
msgstr ""
"kako možete vidjeti iz ove datoteke, Fabien i Laurence \n"
" "
" rade za organizaciju Biggies (company_1), a \n"
" "
" Eric radi za Organi. Pozezivanje osoba i "
"organizacija se radi \n"
" "
" korištenjem Vanjskog ID-a organizacije. Morali smo "
"staviti prefix \n"
" "
" naziva tablice na Vanjski ID da izbjegnemo konflikt "
"istog ID-a osobe \n"
" "
" i organizacije (osoba_1 i organizacija_1 koji dijele "
"isti ID u originalnoj bazi)."
#. module: base_import
#. openerp-web
@@ -315,13 +395,20 @@ msgid ""
"\n"
" '/tmp/person.csv' with CSV"
msgstr ""
"kopirajte \n"
" (select'person_'||id as \"External ID\",person_name "
"as\n"
" \"Name\",'False' as \"Is a "
"Company\",'company_'||company_id\n"
" as \"Related Company/External ID\" from persons) TO\n"
" '/tmp/person.csv' with CSV"
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/xml/import.xml:148
#, python-format
msgid "Country: Belgium"
msgstr ""
msgstr "Država : Belgija"
#. module: base_import
#: model:ir.model,name:base_import.model_base_import_tests_models_char_stillreadonly
@@ -342,7 +429,7 @@ msgstr ""
#: code:addons/base_import/static/src/xml/import.xml:233
#, python-format
msgid "Suppliers and their respective contacts"
msgstr ""
msgstr "Dobavljači i njihovi pripadni kontakti"
#. module: base_import
#. openerp-web
@@ -375,6 +462,11 @@ msgid ""
"\n"
" PSQL:"
msgstr ""
"Za stvaranje csv datoteke za osobe povezane sa \n"
" "
" organizacijama, koristimo ljedeću SQL naredbu u \n"
" "
" PSQL:"
#. module: base_import
#. openerp-web
@@ -386,6 +478,13 @@ msgid ""
" (in 'Save As' dialog box > click 'Tools' dropdown \n"
" list > Encoding tab)."
msgstr ""
"Microsoft Excell će vam omogućiti \n"
" da promjenite kodnu stranu "
"jedino kod snimanja \n"
" (U 'Save as' dijalogu > "
"kliknite na 'Tools' padajući izbornik > \n"
" odaberite 'Encoding' "
"karticu)"
#. module: base_import
#: field:base_import.tests.models.preview,othervalue:0
@@ -402,6 +501,13 @@ msgid ""
" later, it's thus good practice to specify it\n"
" whenever possible"
msgstr ""
"će također biti korišteno za ažuriranje originalnog \n"
" "
"uvoza, ako kasnije trebate ponovo uvesti \n"
" "
"izmjenjene podatke, zato se smatra dobrom praksom \n"
" "
"koristiti kad god je moguće"
#. module: base_import
#. openerp-web
@@ -411,6 +517,9 @@ msgid ""
"file to import. If you need a sample importable file, you\n"
" can use the export tool to generate one."
msgstr ""
"datoteka za uvoz. Ako trebate uzorak datoteke koja se može uvesti,\n"
" možete koristiti "
"alat za izvoz da napravite jednu."
#. module: base_import
#. openerp-web
@@ -419,7 +528,7 @@ msgstr ""
msgid ""
"Country/Database \n"
" ID: 21"
msgstr ""
msgstr "Država/Baza"
#. module: base_import
#: model:ir.model,name:base_import.model_base_import_tests_models_char
@@ -429,14 +538,14 @@ msgstr ""
#. module: base_import
#: help:base_import.import,file:0
msgid "File to check and/or import, raw binary (not base64)"
msgstr ""
msgstr "Datoteke za provjeru i/ili uvoz, raw binary ( ne base64)"
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/xml/import.xml:230
#, python-format
msgid "Purchase orders with their respective purchase order lines"
msgstr ""
msgstr "Narudžbe i njihove pripadne stavke"
#. module: base_import
#. openerp-web
@@ -448,6 +557,14 @@ msgid ""
" field corresponding to the column. This makes imports\n"
" simpler especially when the file has many columns."
msgstr ""
"Ako datoteka sadrži\n"
" nazive kolona, OpenERP može "
"pokušati \n"
" automatski odrediti polja koja "
"odgovaraju kolonama. \n"
" Ovo čini uvoz jednostavnijim "
"pogotovo ako datoteka ima \n"
" mnogo kolona."
#. module: base_import
#. openerp-web
@@ -464,6 +581,8 @@ msgid ""
". The issue is\n"
" usually an incorrect file encoding."
msgstr ""
". Problem je \n"
" obično netočna kodna strana."
#. module: base_import
#: model:ir.model,name:base_import.model_base_import_tests_models_m2o_required
@@ -519,7 +638,7 @@ msgstr "ID baze podataka"
#: code:addons/base_import/static/src/xml/import.xml:313
#, python-format
msgid "It will produce the following CSV file:"
msgstr ""
msgstr "Će napraviti sljedeću csv datoteku:"
#. module: base_import
#. openerp-web
@@ -548,7 +667,7 @@ msgstr ""
#: code:addons/base_import/static/src/xml/import.xml:360
#, python-format
msgid "Import preview failed due to:"
msgstr ""
msgstr "Predpregled uvoza nije uspio zbog:"
#. module: base_import
#. openerp-web
@@ -643,7 +762,7 @@ msgstr "Uvezi CSV datoteku"
#: code:addons/base_import/static/src/js/import.js:74
#, python-format
msgid "Quoting:"
msgstr ""
msgstr "Navođenje:"
#. module: base_import
#: model:ir.model,name:base_import.model_base_import_tests_models_m2o_required_related
@@ -670,7 +789,7 @@ msgstr "Uvoz"
#: code:addons/base_import/static/src/js/import.js:407
#, python-format
msgid "Here are the possible values:"
msgstr ""
msgstr "Evo mogućih vrijednosti:"
#. module: base_import
#. openerp-web
@@ -687,13 +806,15 @@ msgid ""
"A single column was found in the file, this often means the file separator "
"is incorrect"
msgstr ""
"U datoteci je nađena samo jedna kolona, to često znači da je format "
"razdjelnika neispravan."
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/xml/import.xml:293
#, python-format
msgid "dump of such a PostgreSQL database"
msgstr ""
msgstr "dump takve PostgereSQL baze"
#. module: base_import
#. openerp-web
@@ -710,6 +831,9 @@ msgid ""
"The following CSV file shows how to import purchase \n"
" orders with their respective purchase order lines:"
msgstr ""
"Sljedeća csv datoteka pokazuje kako uvesti \n"
" naloge za nabavu sa "
"njihovm pripadnim stavkama :"
#. module: base_import
#. openerp-web
@@ -719,6 +843,9 @@ msgid ""
"What can I do when the Import preview table isn't \n"
" displayed correctly?"
msgstr ""
"Što mogu uraditi kada se tablice Predpregleda za uvoz\n"
" "
" ne prikazuju ispravno?"
#. module: base_import
#: field:base_import.tests.models.char,value:0
@@ -770,7 +897,7 @@ msgstr ""
#: code:addons/base_import/static/src/js/import.js:396
#, python-format
msgid "(%d more)"
msgstr ""
msgstr "(%d više)"
#. module: base_import
#. openerp-web
@@ -829,7 +956,7 @@ msgstr ""
#: code:addons/base_import/static/src/js/import.js:373
#, python-format
msgid "Everything seems valid."
msgstr ""
msgstr "Sve se čini u redu."
#. module: base_import
#. openerp-web
@@ -914,6 +1041,15 @@ msgid ""
" will set the EMPTY value in the field, instead of \n"
" assigning the default value."
msgstr ""
"Ako ne postavite sva polja u vašoj csv datoteci, \n"
" OpenERP će "
"dodijeliti zadane vrijednosti za svako \n"
" nedefinirano "
"polje, ali ako postavite polja sa praznim virjenostima u csv-u \n"
" OpenERP će "
"postaviti vrijednost tih polja na \"PRAZNO\", umjesto da im \n"
" dodijeli zadane "
"vrijednosti"
#. module: base_import
#. openerp-web
@@ -930,6 +1066,9 @@ msgid ""
"What happens if I do not provide a value for a \n"
" specific field?"
msgstr ""
"Što se dešava ako ne dajem vrijednost za \n"
" "
"pojedino polje?"
#. module: base_import
#. openerp-web
@@ -957,6 +1096,11 @@ msgid ""
"spreadsheet \n"
" application."
msgstr ""
"Ovo vam \n"
" omogućuje da "
"koristite alat za Uvoz/Izvoz OpenERP-a \n"
" za izmjenu serija "
"zapisa u vašem omiljenom tabličnom kalkulatoru"
#. module: base_import
#. openerp-web
@@ -993,14 +1137,14 @@ msgstr ""
#: code:addons/base_import/static/src/xml/import.xml:169
#, python-format
msgid "CSV file for categories"
msgstr ""
msgstr "CSV datoteka za kategorije"
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/js/import.js:309
#, python-format
msgid "Normal Fields"
msgstr ""
msgstr "Normalna polja"
#. module: base_import
#. openerp-web
@@ -1012,6 +1156,11 @@ msgid ""
" identifier from the original application and\n"
" map it to the"
msgstr ""
"kako bi ponovo napravili relacije između\n"
" "
"različitih zapisa, trebali bi koristiti jedinstveni\n"
" "
"identifikator iz originalnog zapisa i njega mapirati na"
#. module: base_import
#. openerp-web
@@ -1054,7 +1203,7 @@ msgstr "Naziv"
#: code:addons/base_import/static/src/xml/import.xml:80
#, python-format
msgid "to the original unique identifier."
msgstr ""
msgstr "originalni jedinstveni identifikator"
#. module: base_import
#. openerp-web
@@ -1131,14 +1280,14 @@ msgstr "Vanjski ID"
#: code:addons/base_import/static/src/xml/import.xml:39
#, python-format
msgid "File Format Options…"
msgstr ""
msgstr "Opcije Formata datoteka..."
#. module: base_import
#. openerp-web
#: code:addons/base_import/static/src/js/import.js:392
#, python-format
msgid "between rows %d and %d"
msgstr ""
msgstr "između reda %d i %d"
#. module: base_import
#. openerp-web
@@ -1163,4 +1312,4 @@ msgstr ""
#. module: base_import
#: field:base_import.import,file:0
msgid "File"
msgstr ""
msgstr "Datoteka"
File diff suppressed because it is too large Load Diff
+193
View File
@@ -0,0 +1,193 @@
# English (United Kingdom) 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-07 20:23+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: base_report_designer
#: model:ir.model,name:base_report_designer.model_base_report_sxw
msgid "base.report.sxw"
msgstr "base.report.sxw"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid "OpenERP Report Designer Configuration"
msgstr "OpenERP Report Designer Configuration"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid ""
"This plug-in allows you to create/modify OpenERP Reports into OpenOffice "
"Writer."
msgstr ""
"This plug-in allows you to create/modify OpenERP Reports into OpenOffice "
"Writer."
#. module: base_report_designer
#: view:base.report.sxw:0
msgid "Upload the modified report"
msgstr "Upload the modified report"
#. module: base_report_designer
#: view:base.report.file.sxw:0
msgid "The .SXW report"
msgstr "The .SXW report"
#. module: base_report_designer
#: model:ir.model,name:base_report_designer.model_base_report_designer_installer
msgid "base_report_designer.installer"
msgstr "base_report_designer.installer"
#. module: base_report_designer
#: model:ir.model,name:base_report_designer.model_base_report_rml_save
msgid "base.report.rml.save"
msgstr "base.report.rml.save"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid "Configure"
msgstr "Configure"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid "title"
msgstr "title"
#. module: base_report_designer
#: field:base.report.file.sxw,report_id:0
#: field:base.report.sxw,report_id:0
msgid "Report"
msgstr "Report"
#. module: base_report_designer
#: view:base.report.rml.save:0
msgid "The RML Report"
msgstr "The RML Report"
#. module: base_report_designer
#: model:ir.ui.menu,name:base_report_designer.menu_action_report_designer_wizard
msgid "Report Designer"
msgstr "Report Designer"
#. module: base_report_designer
#: field:base_report_designer.installer,name:0
msgid "File name"
msgstr "File name"
#. module: base_report_designer
#: view:base.report.file.sxw:0
#: view:base.report.sxw:0
msgid "Get a report"
msgstr "Get a report"
#. module: base_report_designer
#: view:base_report_designer.installer:0
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_wizard
msgid "OpenERP Report Designer"
msgstr "OpenERP Report Designer"
#. module: base_report_designer
#: view:base.report.sxw:0
msgid "Continue"
msgstr "Continue"
#. module: base_report_designer
#: field:base.report.rml.save,file_rml:0
msgid "Save As"
msgstr "Save As"
#. module: base_report_designer
#: help:base_report_designer.installer,plugin_file:0
msgid ""
"OpenObject Report Designer plug-in file. Save as this file and install this "
"plug-in in OpenOffice."
msgstr ""
"OpenObject Report Designer plug-in file. Save as this file and install this "
"plug-in in OpenOffice."
#. module: base_report_designer
#: view:base.report.rml.save:0
msgid "Save RML FIle"
msgstr "Save RML FIle"
#. module: base_report_designer
#: field:base.report.file.sxw,file_sxw:0
#: field:base.report.file.sxw,file_sxw_upload:0
msgid "Your .SXW file"
msgstr "Your .SXW file"
#. module: base_report_designer
#: view:base_report_designer.installer:0
msgid "Installation and Configuration Steps"
msgstr "Installation and Configuration Steps"
#. module: base_report_designer
#: field:base_report_designer.installer,description:0
msgid "Description"
msgstr "Description"
#. module: base_report_designer
#: view:base.report.file.sxw:0
msgid ""
"This is the template of your requested report.\n"
"Save it as a .SXW file and open it with OpenOffice.\n"
"Don't forget to install the OpenERP SA OpenOffice package to modify it.\n"
"Once it is modified, re-upload it in OpenERP using this wizard."
msgstr ""
"This is the template of your requested report.\n"
"Save it as a .SXW file and open it with OpenOffice.\n"
"Don't forget to install the OpenERP SA OpenOffice package to modify it.\n"
"Once it is modified, re-upload it in OpenERP using this wizard."
#. module: base_report_designer
#: model:ir.actions.act_window,name:base_report_designer.action_view_base_report_sxw
msgid "Base Report sxw"
msgstr "Base Report sxw"
#. module: base_report_designer
#: model:ir.model,name:base_report_designer.model_base_report_file_sxw
msgid "base.report.file.sxw"
msgstr "base.report.file.sxw"
#. module: base_report_designer
#: field:base_report_designer.installer,plugin_file:0
msgid "OpenObject Report Designer Plug-in"
msgstr "OpenObject Report Designer Plug-in"
#. module: base_report_designer
#: model:ir.actions.act_window,name:base_report_designer.action_report_designer_installer
msgid "OpenERP Report Designer Installation"
msgstr "OpenERP Report Designer Installation"
#. module: base_report_designer
#: view:base.report.sxw:0
msgid "Cancel"
msgstr "Cancel"
#. module: base_report_designer
#: view:base.report.sxw:0
msgid "or"
msgstr "or"
#. module: base_report_designer
#: model:ir.model,name:base_report_designer.model_ir_actions_report_xml
msgid "ir.actions.report.xml"
msgstr "ir.actions.report.xml"
#. module: base_report_designer
#: view:base.report.sxw:0
msgid "Select your report"
msgstr "Select your report"
+181
View File
@@ -0,0 +1,181 @@
# English (United Kingdom) 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-07 20:03+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: board
#: model:ir.actions.act_window,name:board.action_board_create
#: model:ir.ui.menu,name:board.menu_board_create
msgid "Create Board"
msgstr "Create Board"
#. module: board
#: view:board.create:0
msgid "Create"
msgstr "Create"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:4
#, python-format
msgid "Reset Layout.."
msgstr "Reset Layout.."
#. module: board
#: view:board.create:0
msgid "Create New Dashboard"
msgstr "Create New Dashboard"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:40
#, python-format
msgid "Choose dashboard layout"
msgstr "Choose dashboard layout"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:70
#, python-format
msgid "Add"
msgstr "Add"
#. module: board
#. openerp-web
#: code:addons/board/static/src/js/dashboard.js:139
#, python-format
msgid "Are you sure you want to remove this item ?"
msgstr "Are you sure you want to remove this item ?"
#. module: board
#: model:ir.model,name:board.model_board_board
msgid "Board"
msgstr "Board"
#. module: board
#: view:board.board:0
#: model:ir.actions.act_window,name:board.open_board_my_dash_action
#: model:ir.ui.menu,name:board.menu_board_my_dash
msgid "My Dashboard"
msgstr "My Dashboard"
#. module: board
#: field:board.create,name:0
msgid "Board Name"
msgstr "Board Name"
#. module: board
#: model:ir.model,name:board.model_board_create
msgid "Board Creation"
msgstr "Board Creation"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:67
#, python-format
msgid "Add to Dashboard"
msgstr "Add to Dashboard"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:28
#, python-format
msgid "&nbsp;"
msgstr "&nbsp;"
#. module: board
#: model:ir.actions.act_window,help:board.open_board_my_dash_action
msgid ""
"<div class=\"oe_empty_custom_dashboard\">\n"
" <p>\n"
" <b>Your personal dashboard is empty.</b>\n"
" </p><p>\n"
" To add your first report into this dashboard, go to any\n"
" menu, switch to list or graph view, and click <i>'Add "
"to\n"
" Dashboard'</i> in the extended search options.\n"
" </p><p>\n"
" You can filter and group data before inserting into the\n"
" dashboard using the search options.\n"
" </p>\n"
" </div>\n"
" "
msgstr ""
"<div class=\"oe_empty_custom_dashboard\">\n"
" <p>\n"
" <b>Your personal dashboard is empty.</b>\n"
" </p><p>\n"
" To add your first report into this dashboard, go to any\n"
" menu, switch to list or graph view, and click <i>'Add "
"to\n"
" Dashboard'</i> in the extended search options.\n"
" </p><p>\n"
" You can filter and group data before inserting into the\n"
" dashboard using the search options.\n"
" </p>\n"
" </div>\n"
" "
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:6
#, python-format
msgid "Reset"
msgstr "Reset"
#. module: board
#: field:board.create,menu_parent_id:0
msgid "Parent Menu"
msgstr "Parent Menu"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:8
#, python-format
msgid "Change Layout.."
msgstr "Change Layout.."
#. module: board
#. openerp-web
#: code:addons/board/static/src/js/dashboard.js:93
#, python-format
msgid "Edit Layout"
msgstr "Edit Layout"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:10
#, python-format
msgid "Change Layout"
msgstr "Change Layout"
#. module: board
#: view:board.create:0
msgid "Cancel"
msgstr "Cancel"
#. module: board
#: view:board.create:0
msgid "or"
msgstr "or"
#. module: board
#. openerp-web
#: code:addons/board/static/src/xml/board.xml:69
#, python-format
msgid "Title of new dashboard item"
msgstr "Title of new dashboard item"
+45
View File
@@ -0,0 +1,45 @@
# English (United Kingdom) 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-07 19:25+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English (United Kingdom) <en_GB@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-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: contacts
#: model:ir.actions.act_window,help:contacts.action_contacts
msgid ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a contact in your address book.\n"
" </p><p>\n"
" OpenERP helps you easily track all activities related to\n"
" a customer; discussions, history of business opportunities,\n"
" documents, etc.\n"
" </p>\n"
" "
msgstr ""
"<p class=\"oe_view_nocontent_create\">\n"
" Click to add a contact in your address book.\n"
" </p><p>\n"
" OpenERP helps you easily track all activities related to\n"
" a customer; discussions, history of business opportunities,\n"
" documents, etc.\n"
" </p>\n"
" "
#. module: contacts
#: model:ir.actions.act_window,name:contacts.action_contacts
#: model:ir.ui.menu,name:contacts.menu_contacts
msgid "Contacts"
msgstr "Contacts"
+9 -4
View File
@@ -567,7 +567,8 @@ class crm_lead(base_stage, format_address, osv.osv):
for opportunity in opportunities:
subject.append(opportunity.name)
title = "%s : %s" % (opportunity.type == 'opportunity' and _('Merged opportunity') or _('Merged lead'), opportunity.name)
details.append(self._mail_body(cr, uid, opportunity, CRM_LEAD_FIELDS_TO_MERGE, title=title, context=context))
fields = list(CRM_LEAD_FIELDS_TO_MERGE)
details.append(self._mail_body(cr, uid, opportunity, fields, title=title, context=context))
# Chatter message's subject
subject = subject[0] + ": " + ", ".join(subject[1:])
@@ -627,7 +628,10 @@ class crm_lead(base_stage, format_address, osv.osv):
opportunities = self.browse(cr, uid, ids, context=context)
sequenced_opps = []
for opportunity in opportunities:
sequenced_opps.append((opportunity.stage_id and opportunity.stage_id.state != 'cancel' and opportunity.stage_id.sequence or 0, opportunity))
if opportunity.stage_id and opportunity.stage_id.state != 'cancel':
sequenced_opps.append((opportunity.stage_id.sequence, opportunity))
else:
sequenced_opps.append((-1, opportunity))
sequenced_opps.sort(key=lambda tup: tup[0], reverse=True)
opportunities = [opportunity for sequence, opportunity in sequenced_opps]
ids = [opportunity.id for opportunity in opportunities]
@@ -636,7 +640,8 @@ class crm_lead(base_stage, format_address, osv.osv):
tail_opportunities = opportunities_rest
merged_data = self._merge_data(cr, uid, ids, highest, CRM_LEAD_FIELDS_TO_MERGE, context=context)
fields = list(CRM_LEAD_FIELDS_TO_MERGE)
merged_data = self._merge_data(cr, uid, ids, highest, fields, context=context)
# Merge messages and attachements into the first opportunity
self._merge_opportunity_history(cr, uid, highest.id, tail_opportunities, context=context)
@@ -651,7 +656,7 @@ class crm_lead(base_stage, format_address, osv.osv):
section_stages = self.pool.get('crm.case.section').read(cr, uid, merged_data['section_id'], ['stage_ids'], context=context)
if merged_data.get('stage_id') not in section_stages['stage_ids']:
stages_sequences = self.pool.get('crm.case.stage').search(cr, uid, [('id','in',section_stages['stage_ids'])], order='sequence', limit=1, context=context)
merged_data['stage_id'] = stages_sequences[0]
merged_data['stage_id'] = stages_sequences and stages_sequences[0] or False
# Write merged data into first opportunity
self.write(cr, uid, [highest.id], merged_data, context=context)
# Delete tail opportunities
+1
View File
@@ -327,6 +327,7 @@
<field name="categ_ids" string="Category" filter_domain="[('categ_ids','ilike',self)]"/>
<field name="section_id" context="{'invisible_section': False, 'default_section_id': self}"/>
<field name="user_id"/>
<field name="partner_id"/>
<field name="create_date"/>
<field name="country_id" context="{'invisible_country': False}"/>
<separator/>
+32 -30
View File
@@ -8,14 +8,14 @@ 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: 2012-05-10 17:56+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"PO-Revision-Date: 2013-02-07 09:22+0000\n"
"Last-Translator: Enkh-Orkhon <oogii.anu@gmail.com>\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: 2012-12-22 05:25+0000\n"
"X-Generator: Launchpad (build 16378)\n"
"X-Launchpad-Export-Date: 2013-02-08 04:36+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: crm
#: view:crm.lead.report:0
@@ -38,7 +38,7 @@ msgstr ""
#: selection:crm.lead.report,type:0
#, python-format
msgid "Lead"
msgstr "Сэжим"
msgstr "Удирдах"
#. module: crm
#: field:crm.lead,title:0
@@ -59,12 +59,12 @@ msgstr ""
#: field:crm.opportunity2phonecall,action:0
#: field:crm.phonecall2phonecall,action:0
msgid "Action"
msgstr "Үйлдэл"
msgstr "Vйлдэл"
#. module: crm
#: model:ir.actions.server,name:crm.action_set_team_sales_department
msgid "Set team to Sales Department"
msgstr ""
msgstr "Борлуулалтын хэсэгт багийг томилох"
#. module: crm
#: view:crm.lead2opportunity.partner.mass:0
@@ -75,7 +75,7 @@ msgstr "Боломж Сонгох"
#: model:res.groups,name:crm.group_fund_raising
#: field:sale.config.settings,group_fund_raising:0
msgid "Manage Fund Raising"
msgstr ""
msgstr "Сан бүрдүүлэлт зохицуулах"
#. module: crm
#: view:crm.lead.report:0
@@ -95,7 +95,7 @@ msgstr "Үеийн нэр"
#: view:crm.lead.report:0
#: view:crm.phonecall.report:0
msgid "Salesperson"
msgstr ""
msgstr "Худалдагч"
#. module: crm
#: model:ir.model,name:crm.model_crm_lead_report
@@ -112,18 +112,18 @@ msgstr "Өдөр"
#. module: crm
#: view:crm.lead:0
msgid "Company Name"
msgstr ""
msgstr "Компанийн нэр"
#. module: crm
#: model:crm.case.categ,name:crm.categ_oppor6
msgid "Training"
msgstr ""
msgstr "Сургалт"
#. module: crm
#: model:ir.actions.act_window,name:crm.crm_lead_categ_action
#: model:ir.ui.menu,name:crm.menu_crm_lead_categ
msgid "Sales Tags"
msgstr ""
msgstr "Худалдааны шошго"
#. module: crm
#: view:crm.lead.report:0
@@ -135,7 +135,7 @@ msgstr "Хуг.Хэт. Хааж байна"
#: help:crm.lead,message_unread:0
#: help:crm.phonecall,message_unread:0
msgid "If checked new messages require your attention."
msgstr ""
msgstr "Хэрэв тэмдэглэгдсэн бол шинэ зурвас нь анхаарал татахыг шаардана."
#. module: crm
#: help:crm.lead.report,creation_day:0
@@ -151,7 +151,7 @@ msgstr "Дүрмийн нэр"
#: code:addons/crm/crm_phonecall.py:280
#, python-format
msgid "It's only possible to convert one phonecall at a time."
msgstr ""
msgstr "Энэ бол тухайн цагт нэг л утасны дуудлагыг хөрвүүлэх боломжтой"
#. module: crm
#: view:crm.case.resource.type:0
@@ -166,7 +166,7 @@ msgstr "Компанит ажил"
#. module: crm
#: view:crm.lead:0
msgid "Search Opportunities"
msgstr "Боломж хайх"
msgstr "Боломжуудыг хайх"
#. module: crm
#: help:crm.lead.report,deadline_month:0
@@ -181,13 +181,15 @@ msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
"Чаатлагчийн хураангуйг агуулна (зурвасын тоо,...). Энэ хураангуй нь шууд "
"html форматтай бөгөөд канбан харагдацад шууд орж харагдах боломжтой."
#. module: crm
#: code:addons/crm/crm_lead.py:632
#: code:addons/crm/crm_phonecall.py:280
#, python-format
msgid "Warning!"
msgstr "Сануулга!"
msgstr "Анхааруулга!"
#. module: crm
#: view:crm.lead:0
@@ -202,7 +204,7 @@ msgstr "Сануулга!"
#: model:ir.model,name:crm.model_res_partner
#: model:process.node,name:crm.process_node_partner0
msgid "Partner"
msgstr "Харилцагч"
msgstr "Түнш"
#. module: crm
#: view:crm.phonecall:0
@@ -230,12 +232,12 @@ msgstr "Төлөв"
#. module: crm
#: field:res.partner,meeting_count:0
msgid "# Meetings"
msgstr ""
msgstr "# Уулзалтууд"
#. module: crm
#: model:ir.actions.server,name:crm.action_email_reminder_lead
msgid "Reminder to User"
msgstr ""
msgstr "Хэрэглэгчид сануулах"
#. module: crm
#: field:crm.segmentation,segmentation_line:0
@@ -250,7 +252,7 @@ msgstr "Ялгагдсан Хариултууд :"
#. module: crm
#: model:ir.model,name:crm.model_crm_merge_opportunity
msgid "Merge opportunities"
msgstr ""
msgstr "Боломжуудыг нэгтгэх"
#. module: crm
#: view:crm.lead.report:0
@@ -388,7 +390,7 @@ msgstr ""
#: field:crm.lead,message_unread:0
#: field:crm.phonecall,message_unread:0
msgid "Unread Messages"
msgstr ""
msgstr "Уншаагүй зурвасууд"
#. module: crm
#: view:crm.segmentation:0
@@ -402,7 +404,7 @@ msgstr "Сегментчлэл"
#: selection:crm.lead2opportunity.partner.mass,action:0
#: selection:crm.partner.binding,action:0
msgid "Link to an existing customer"
msgstr ""
msgstr "Байгаа захиалагчид холбох"
#. module: crm
#: field:crm.lead,write_date:0
@@ -436,14 +438,14 @@ msgstr "Ангилал"
#. module: crm
#: view:crm.lead.report:0
msgid "#Opportunities"
msgstr "#"
msgstr "#Боломжууд"
#. module: crm
#: code:addons/crm/crm_lead.py:632
#, python-format
msgid ""
"Please select more than one element (lead or opportunity) from the list view."
msgstr ""
msgstr "Нээлттэй жагсаалтнаас нэгээс илүү елемент сонгоно уу."
#. module: crm
#: view:crm.lead:0
@@ -480,7 +482,7 @@ msgstr "Болмжийн энгийн эсвэл утасны уулзалт"
#: view:crm.phonecall.report:0
#: field:crm.phonecall.report,state:0
msgid "Status"
msgstr ""
msgstr "Төлөв"
#. module: crm
#: view:crm.lead2opportunity.partner:0
@@ -490,7 +492,7 @@ msgstr "Боломж үүсгэх"
#. module: crm
#: view:sale.config.settings:0
msgid "Configure"
msgstr ""
msgstr "Тохируулга"
#. module: crm
#: view:crm.lead:0
@@ -561,7 +563,7 @@ msgstr "Дүгнэлт"
#. module: crm
#: view:crm.merge.opportunity:0
msgid "Merge"
msgstr ""
msgstr "Нэгтгэх"
#. module: crm
#: model:email.template,subject:crm.email_template_opportunity_mail
@@ -668,7 +670,7 @@ msgstr "Харилцагчийн хуваалт"
#. module: crm
#: field:crm.lead,company_currency:0
msgid "Currency"
msgstr ""
msgstr "Валют"
#. module: crm
#: field:crm.lead.report,probable_revenue:0
@@ -742,7 +744,7 @@ msgstr "Зогсоох"
#. module: crm
#: field:crm.case.section,alias_id:0
msgid "Alias"
msgstr ""
msgstr "Өөр нэр"
#. module: crm
#: view:crm.phonecall:0
@@ -783,7 +785,7 @@ msgstr ""
#: view:crm.opportunity2phonecall:0
#: view:crm.phonecall2phonecall:0
msgid "or"
msgstr ""
msgstr "эсвэл"
#. module: crm
#: field:crm.lead.report,create_date:0
@@ -4,7 +4,7 @@
Mail script will fetch his request from mail server. Then I process that mail after read EML file.
-
!python {model: mail.thread}: |
import addons
from openerp import addons
request_file = open(addons.get_module_resource('crm','test', 'customer_request.eml'),'rb')
request_message = request_file.read()
self.message_process(cr, uid, 'crm.lead', request_message)
+2 -2
View File
@@ -58,11 +58,11 @@ class crm_lead2opportunity_partner(osv.osv_memory):
if partner_id:
# Search for opportunities that have the same partner and that arent done or cancelled
ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id)])
ids = lead_obj.search(cr, uid, [('partner_id', '=', partner_id), ('state', '!=', 'done')])
for id in ids:
tomerge.add(id)
if email:
ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0])])
ids = lead_obj.search(cr, uid, [('email_from', 'ilike', email[0]), ('state', '!=', 'done')])
for id in ids:
tomerge.add(id)
@@ -21,7 +21,7 @@
<field name="email_from"/>
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="user_id"/>
<field name="section_id"/>
</tree>
</field>
@@ -67,7 +67,7 @@
<field name="email_from"/>
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="user_id"/>
<field name="section_id"/>
</tree>
</field>
@@ -18,7 +18,7 @@
<field name="email_from"/>
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="user_id"/>
<field name="section_id"/>
</tree>
</field>
+1 -1
View File
@@ -4,7 +4,7 @@
Mail script will be fetched him request from mail server. so I process that mail after read EML file
-
!python {model: mail.thread}: |
import addons
from openerp import addons
request_file = open(addons.get_module_resource('crm_claim','test', 'customer_claim.eml'),'rb')
request_message = request_file.read()
self.message_process(cr, uid, 'crm.claim', request_message)
@@ -4,7 +4,7 @@
Mail script will be fetched him request from mail server. so I process that mail after read EML file
-
!python {model: mail.thread}: |
import addons
from openerp import addons
request_file = open(addons.get_module_resource('crm_helpdesk','test', 'customer_question.eml'),'rb')
request_message = request_file.read()
self.message_process(cr, uid, 'crm.helpdesk', request_message)
@@ -62,5 +62,66 @@
</field>
</record>
<record id="view_crm_lead_geo_assign_form" model="ir.ui.view">
<field name="name">crm.lead.lead.geo_assign.inherit</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_form_view_leads"/>
<field name="arch" type="xml">
<data>
<xpath expr="//notebook/page[@string='Extra Info']" position="after">
<page string="Assignation">
<group name="partner_assign_group">
<group string="Partner Assignation">
<field name="partner_assigned_id" on_change="onchange_assign_id(partner_assigned_id)" domain="[('grade_id','&lt;&gt;',False)]"/>
<label for="date_assign"/>
<div>
<field name="date_assign"/>
<button string="Forward"
attrs="{'invisible':[('partner_assigned_id','=',False)]}"
name="%(crm_lead_forward_to_partner_act)d"
icon="terp-mail-forward" type="action"
context="{'default_composition_mode': 'forward', 'default_partner_ids': [partner_assigned_id]}"/>
</div>
</group>
<group string="Geo Assignation">
<field name="partner_latitude"/>
<field name="partner_longitude"/>
<span/>
<button string="Geo Assign" name="action_assign_partner" type="object" colspan="1"
icon="gtk-apply"/>
</group>
</group>
</page>
</xpath>
</data>
</field>
</record>
<record id="view_crm_lead_geo_assign_tree" model="ir.ui.view">
<field name="name">crm.lead.lead.geo_assign.tree.inherit</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.crm_case_tree_view_leads"/>
<field name="arch" type="xml">
<field name="partner_id" position="after">
<field name="partner_assigned_id"/>
</field>
</field>
</record>
<record model="ir.ui.view" id="crm_lead_partner_filter">
<field name="name">crm.lead.partner.filter.assigned</field>
<field name="model">crm.lead</field>
<field name="inherit_id" ref="crm.view_crm_case_leads_filter"/>
<field name="arch" type="xml">
<filter string="Team" position="after">
<filter string="Assigned Partner" icon="terp-personal" domain="[]" context="{'group_by':'partner_assigned_id'}"/>
</filter>
<field name="partner_id" position="after">
<field name="partner_assigned_id"/>
</field>
</field>
</record>
</data>
</openerp>
+2 -1
View File
@@ -31,7 +31,8 @@
I print a Delivery Order report.
-
!python {model: stock.picking}: |
import netsvc, tools, os
import os
from openerp import netsvc, tools
sale = self.pool.get('sale.order')
sale_order = sale.browse(cr, uid, ref("sale.sale_order_6"))
ship_ids = [x.id for x in sale_order.picking_ids]
+2 -2
View File
@@ -31,11 +31,11 @@ from StringIO import StringIO
import psycopg2
import openerp
from openerp import netsvc
from openerp import pooler
from openerp import tools
from openerp.osv import fields, osv
from openerp.osv.orm import except_orm
import openerp.report.interface
from openerp.tools.misc import ustr
from openerp.tools.translate import _
from openerp.tools.safe_eval import safe_eval
@@ -456,7 +456,7 @@ class document_directory_content(osv.osv):
if node.extension != '.pdf':
raise Exception("Invalid content: %s" % node.extension)
report = self.pool.get('ir.actions.report.xml').browse(cr, uid, node.report_id, context=context)
srv = netsvc.Service._services['report.'+report.report_name]
srv = openerp.report.interface.report_int._reports['report.'+report.report_name]
ctx = node.context.context.copy()
ctx.update(node.dctx)
pdf,pdftype = srv.create(cr, uid, [node.act_id,], {}, context=ctx)
@@ -10,6 +10,7 @@ import glob
import fnmatch
from openerp import pooler, netsvc, sql_db
import openerp.service
from openerp.service import security
from openerp.osv import osv
@@ -60,7 +61,7 @@ class abstracted_fs(object):
def db_list(self):
"""Get the list of available databases, with FTPd support
"""
s = netsvc.ExportService.getService('db')
s = openerp.service.db
result = s.exp_list(document=True)
self.db_name_list = []
for db_name in result:
@@ -42,8 +42,8 @@
-
!python {model: ir.attachment}: |
from ftplib import FTP
from tools.misc import detect_ip_addr
from tools import config
from openerp.tools.misc import detect_ip_addr
from openerp.tools import config
ftp = FTP()
if detect_ip_addr:
host = config.get('ftp_server_host', detect_ip_addr())
@@ -71,8 +71,8 @@
-
!python {model: ir.attachment}: |
from ftplib import FTP
from tools.misc import detect_ip_addr
from tools import config
from openerp.tools.misc import detect_ip_addr
from openerp.tools import config
ftp = FTP()
if detect_ip_addr:
host = config.get('ftp_server_host', detect_ip_addr())
+2 -1
View File
@@ -38,6 +38,7 @@ except ImportError:
import openerp
from openerp import pooler, sql_db, netsvc
import openerp.service
from openerp.tools import misc
from cache import memoize
@@ -372,7 +373,7 @@ class openerp_dav_handler(dav_interface):
@memoize(4)
def _all_db_list(self):
"""return all databases who have module document_webdav installed"""
s = netsvc.ExportService.getService('db')
s = openerp.service.db
result = s.exp_list()
self.db_name_list=[]
for db_name in result:
+2 -2
View File
@@ -35,6 +35,7 @@
import logging
import openerp
from openerp import netsvc
from dav_fs import openerp_dav_handler
from openerp.tools.config import config
@@ -56,7 +57,6 @@ import urllib
import re
import time
from string import atoi
import addons
import socket
# from DAV.constants import DAV_VERSION_1, DAV_VERSION_2
from xml.dom import minidom
@@ -609,7 +609,7 @@ try:
if base_path and base_path == '/':
dir_path = config.get_misc('static-http', 'dir_path', False)
else:
dir_path = addons.get_module_resource('document_webdav','public_html')
dir_path = openerp.addons.get_module_resource('document_webdav','public_html')
# an _ugly_ hack: we put that dir back in tools.config.misc, so that
# the StaticHttpHandler can find its dir_path.
config.misc.setdefault('static-http',{})['dir_path'] = dir_path
+6 -1
View File
@@ -1,4 +1,5 @@
import simplejson
import urllib
import openerp.addons.web.http as openerpweb
import openerp.addons.web.controllers.main as webmain
@@ -14,11 +15,15 @@ class EDI(openerpweb.Controller):
modules_json = simplejson.dumps(modules)
js = "\n ".join('<script type="text/javascript" src="%s"></script>' % i for i in webmain.manifest_list(req, modules_str, 'js'))
css = "\n ".join('<link rel="stylesheet" href="%s">' % i for i in webmain.manifest_list(req, modules_str, 'css'))
# `url` may contain a full URL with a valid query string, we basically want to watch out for XML brackets and double-quotes
safe_url = urllib.quote_plus(url,':/?&;=')
return webmain.html_template % {
'js': js,
'css': css,
'modules': modules_json,
'init': 's.edi.edi_import("%s");' % url,
'init': 's.edi.edi_import("%s");' % safe_url,
}
@openerpweb.jsonrequest
+34 -33
View File
@@ -21,45 +21,46 @@
import logging
import openerp
import openerp.netsvc as netsvc
_logger = logging.getLogger(__name__)
class edi(netsvc.ExportService):
# TODO this is not needed anymore:
# - the exposed new service just forward to the model service
# - the service is called by the web controller, which can
# now directly call into openerp as the web server is always
# embedded in openerp.
def __init__(self, name="edi"):
netsvc.ExportService.__init__(self, name)
def _edi_dispatch(db_name, method_name, *method_args):
try:
registry = openerp.modules.registry.RegistryManager.get(db_name)
assert registry, 'Unknown database %s' % db_name
edi = registry['edi.edi']
cr = registry.db.cursor()
res = None
res = getattr(edi, method_name)(cr, *method_args)
cr.commit()
except Exception, e:
_logger.exception('Failed to execute EDI method %s with args %r.',
method_name, method_args)
raise
finally:
cr.close()
return res
def _edi_dispatch(self, db_name, method_name, *method_args):
try:
registry = openerp.modules.registry.RegistryManager.get(db_name)
assert registry, 'Unknown database %s' % db_name
edi = registry['edi.edi']
cr = registry.db.cursor()
res = None
res = getattr(edi, method_name)(cr, *method_args)
cr.commit()
except Exception:
_logger.exception('Failed to execute EDI method %s with args %r.', method_name, method_args)
raise
finally:
cr.close()
return res
def exp_import_edi_document(db_name, uid, passwd, edi_document, context=None):
return _edi_dispatch(db_name, 'import_edi', uid, edi_document, None)
def exp_import_edi_document(self, db_name, uid, passwd, edi_document, context=None):
return self._edi_dispatch(db_name, 'import_edi', uid, edi_document, None)
def exp_import_edi_url(db_name, uid, passwd, edi_url, context=None):
return _edi_dispatch(db_name, 'import_edi', uid, None, edi_url)
def exp_import_edi_url(self, db_name, uid, passwd, edi_url, context=None):
return self._edi_dispatch(db_name, 'import_edi', uid, None, edi_url)
@openerp.http.rpc('edi')
def dispatch(method, params):
if method in ['import_edi_document', 'import_edi_url']:
(db, uid, passwd) = params[0:3]
openerp.service.security.check(db, uid, passwd)
else:
raise KeyError("Method not found: %s." % method)
fn = globals()['exp_' + method]
return fn(*params)
def dispatch(self, method, params):
if method in ['import_edi_document', 'import_edi_url']:
(db, uid, passwd ) = params[0:3]
openerp.service.security.check(db, uid, passwd)
else:
raise KeyError("Method not found: %s." % method)
fn = getattr(self, 'exp_'+method)
return fn(*params)
edi()
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
+87
View File
@@ -0,0 +1,87 @@
# Malayalam 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-08 15:46+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Malayalam <ml@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-09 04:55+0000\n"
"X-Generator: Launchpad (build 16482)\n"
#. module: edi
#. openerp-web
#: code:addons/edi/static/src/js/edi.js:67
#, python-format
msgid "Reason:"
msgstr ""
#. module: edi
#. openerp-web
#: code:addons/edi/static/src/js/edi.js:60
#, python-format
msgid "The document has been successfully imported!"
msgstr ""
#. module: edi
#. openerp-web
#: code:addons/edi/static/src/js/edi.js:65
#, python-format
msgid "Sorry, the document could not be imported."
msgstr ""
#. module: edi
#: model:ir.model,name:edi.model_res_company
msgid "Companies"
msgstr ""
#. module: edi
#: model:ir.model,name:edi.model_res_currency
msgid "Currency"
msgstr ""
#. module: edi
#. openerp-web
#: code:addons/edi/static/src/js/edi.js:71
#, python-format
msgid "Document Import Notification"
msgstr ""
#. module: edi
#: code:addons/edi/models/edi.py:130
#, python-format
msgid "Missing application."
msgstr ""
#. module: edi
#: code:addons/edi/models/edi.py:131
#, python-format
msgid ""
"The document you are trying to import requires the OpenERP `%s` application. "
"You can install it by connecting as the administrator and opening the "
"configuration assistant."
msgstr ""
#. module: edi
#: code:addons/edi/models/edi.py:47
#, python-format
msgid "'%s' is an invalid external ID"
msgstr ""
#. module: edi
#: model:ir.model,name:edi.model_res_partner
msgid "Partner"
msgstr ""
#. module: edi
#: model:ir.model,name:edi.model_edi_edi
msgid "EDI Subsystem"
msgstr ""
-125
View File
@@ -1,125 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:15+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "حدث المشروع"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "تاريخ الإنتهاء"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "تم"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"يكون هذا قالب المشروع. يُكرر حدث المشروع لهذا القالب. بعد الضغط على ‘انشأ "
"خطة رجعية‘, سيكرر المشروع الجديد من مشروع هذا القالب."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "خطة رجعية"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "خطأ ! لايمكن وضع تاريخ الغلق قبل تاريخ الابتداء."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "مشروع"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "قالب المشروع"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "كافة المهام"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "مهام"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "خطأ ! لايمكنك انشاء تنفيذ عودي."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "مهام المشروع"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "إغلاق"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "تاريخ البدء"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "انشأ خطة رجعية"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "حدث"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "إدارة المهام"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "تنظيم و إدارة الأحداث.\n"
#~ "\n"
#~ " هذا البرنامج يساعدك علي عمل تخطيط مبدئي للأحداث.\n"
#~ msgid "Tasks management"
#~ msgstr "إدارة المهام"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr "تنفيذ المشروع - انشأ خطة رجعية ألى مدير تنفيذك"
-123
View File
@@ -1,123 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.4\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:49+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Проект на събитие"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Крайна дата"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "ОК"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Това е шаблонен Проект. Проект на събитието е копие на този шаблон. След "
"като щракнете върху \"Създаване на Ретро-планиране\", Нов проект ще бъде "
"дублиран от този шаблонен проект."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Ретро-планиране"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Грешка! Крайната дата е преди началнта."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Проект"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Шаблон на проект"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Всички задачи"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Задачи"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Грешка! Не можете да създавата рекурсивно събитие!"
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Задачи по проекта"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Затвори"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Начална дата"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Създаване на ретро-планиране"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Събитие"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Управление на задачи"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Невалиден XML за преглед на архитектурата"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr "Организиране и управление на събития\n"
#~ msgid "Tasks management"
#~ msgstr "Управление на задачи"
-145
View File
@@ -1,145 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:34+0000\n"
"Last-Translator: Fabien (Open ERP) <fp@tinyerp.com>\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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr ""
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr ""
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "U redu"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr ""
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projekat"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr ""
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Zadaci"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr ""
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Projektni zadaci"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr ""
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Kreiraj Retro-Planiranje"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Događaj"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Kontrola zadataka"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Neodgovarajući XML za arhitekturu prikaza!"
#~ msgid "Cancel"
#~ msgstr "Poništi"
#, python-format
#~ msgid "Error !"
#~ msgstr "Greška !"
#~ msgid "Tasks management"
#~ msgstr "Kontrola zadataka"
#~ msgid "Event - Project"
#~ msgstr "Događaj - Projekat"
#~ msgid "Remaining Tasks"
#~ msgstr "Preostali Zadaci"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Nema definisanog projekta za ovaj događaj.\n"
#~ "Možete ga kreirati uz pomoć dugmeta za retro-planiranje!"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organizacija i kontrola događaja.\n"
#~ "\n"
#~ " Ovaj modul vam dozvoljava da kreirate retro planiranje za kontrolu vaših "
#~ "događaja.\n"
-164
View File
@@ -1,164 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:37+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Projecte d'esdeveniment"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Data final"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "D'acord"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Aquesta és la plantilla del projecte. El projecte d'esdeveniment és un "
"duplicat d'aquesta plantilla. Després de fer clic a 'Crea retro-"
"planificació', el projecte nou serà duplicat a partir d'aquesta plantilla."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-planificació"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Error! La data de tancament no es pot definir abans de la d'inici."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projecte"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Plantilla de projecte"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Totes les tasques"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tasques"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Error! No podeu crear esdeveniments recursius."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tasques del projecte"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Tanca"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Data d'inici"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crea retro-planificació"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Esdeveniment"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Gestió de tasques"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML invàlid per a la definició de la vista!"
#~ msgid "Remaining Tasks"
#~ msgstr "Tasques pendents"
#~ msgid "Cancel"
#~ msgstr "Cancel·la"
#~ msgid "Tasks management"
#~ msgstr "Gestió de tasques"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "No existeix cap projecte definit per aquest esdeveniment.\n"
#~ "Podeu crear un amb el botó de retro-planificació!"
#, python-format
#~ msgid "Error !"
#~ msgstr "Error !"
#~ msgid "Event - Project"
#~ msgstr "Projectes - Esdeveniments"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organització i gestió d'esdeveniments.\n"
#~ "\n"
#~ " Aquest mòdul us permet crear retro planificació per a la gestió dels "
#~ "vostres esdeveniments.\n"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organització i gestió d'esdeveniments.\n"
#~ "\n"
#~ " Aquest mòdul us permet crear retro planificacions per gestionar els "
#~ "esdeveniments.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Projecte d'esdeveniment - Crea retro-planificació per gestionar els "
#~ "esdeveniments"
-148
View File
@@ -1,148 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:47+0000\n"
"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"X-Poedit-Language: Czech\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Projekt události"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Datum ukončení"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "OK"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Toto je Šablona projektu. Projekt události je duplikát této Šablony. Po "
"kliknutí na 'Vytvořit Zpětné-plánování', bude vytvořen Nový projekt z této "
"šablony projektu."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Zpětné-plánování"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Chyba ! Datum uzavření nemůže být nastaven přes datum zahájení."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projekt"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Šablona projektu"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Všechny úkoly"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Úlohy"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Chyba ! Nemůžete vytvořit rekurzivní událost."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Úkoly projektu"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Zavřít"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Počáteční datum"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Vytvořit zpětné-plánování"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Událost"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Správa úloh"
#~ msgid "Remaining Tasks"
#~ msgstr "Zbývající akce"
#~ msgid "Cancel"
#~ msgstr "Zrušit"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr "Organizace a management akcí\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "Chyba !"
#~ msgid "Tasks management"
#~ msgstr "Správa úloh"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Invalidní XML pro zobrazení architektury!"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organizace a správa událostí.\n"
#~ "\n"
#~ " Tento modul vám umožní zpětné plánování pro správu událostí.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Projekt události - Vytvořte Zpětné-plánování ke správě vašich událostí"
-108
View File
@@ -1,108 +0,0 @@
# Danish translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-01-27 08:46+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Danish <da@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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr ""
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr ""
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr ""
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr ""
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr ""
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr ""
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr ""
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr ""
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr ""
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr ""
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr ""
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr ""
-163
View File
@@ -1,163 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:20+0000\n"
"Last-Translator: Thorsten Vocks (OpenBig.org) <thorsten.vocks@big-"
"consulting.net>\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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Event - Projekt"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Enddatum"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "OK"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Dieses ist eine Projektvorlage. Das Projektmanagement von Veranstaltungen "
"ist ein Duplikat der Veranstaltung selbst. Durch Klick auf 'Erzeuge Retro-"
"Planung' wird ein neues Projekt auf Basis dieser Vorlage erzeugt."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Projekt Retro Planung"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Fehler ! Ende der Veranstaltung kann nicht vor Beginn sein."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projekt"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Projektvorlage"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Alle Aufgaben"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Aufgaben"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Fehler ! Sie können keine rekursiven Veranstaltungen definieren."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Projektaufgaben"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Beenden"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Startdatum"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Erzeuge Retro Planung"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Veranstaltung"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Aufgabenmanagement"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Fehlerhafter xml Code für diese Ansicht!"
#~ msgid "Remaining Tasks"
#~ msgstr "Verbleibende Aufgaben"
#~ msgid "Cancel"
#~ msgstr "Abbrechen"
#~ msgid "Tasks management"
#~ msgstr "Aufgabenmanagement"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Kein Projekt für diesen Event definiert.\n"
#~ "Sie können eines mit dem \"retro-planning\" Schaltfläche erstellen !"
#~ msgid "Event - Project"
#~ msgstr "Event - Projekt"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organisation und Management von Events.\n"
#~ "\n"
#~ " Dieses Modul erlaubt Rückwärtsplanung für das Management von Events.\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "Fehler!"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organisation und Management von Events.\n"
#~ "\n"
#~ " Dieses Modul erlaubt Rückwärtsplanung für das Management von Events.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Projektmanagement für Veranstaltung - Erzeuge Retro-Planung für die "
#~ "Organisation Ihrer Veranstaltung"
-134
View File
@@ -1,134 +0,0 @@
# Greek translation for openobject-addons
# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2010.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 18:08+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"Language-Team: Greek <el@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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr ""
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr ""
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Εντάξει"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr ""
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Έργο"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr ""
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Εργασίες"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr ""
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Εργασίες Έργου"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr ""
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Δημιουργία προγραμματισμού"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Συμβάν"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Διαχείριση εργασιών"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Λανθασμένο XML για προβολή αρχιτεκτονικής!"
#~ msgid "Remaining Tasks"
#~ msgstr "Εργασίες που παραμένουν"
#~ msgid "Cancel"
#~ msgstr "Ακύρωση"
#~ msgid "Event - Project"
#~ msgstr "Συμβάν - Έργο"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Οργάνωση και διαχείριση συμβάντων.\n"
#~ "\n"
#~ " Αυτή το τμήμα του προγράμματος σας επιτρέπει να κάνετε ανασχεδιασμό για "
#~ "τη διαχείριση των συμβάντων σας.\n"
#~ msgid "Tasks management"
#~ msgstr "Διαχείριση εργασιών"
-162
View File
@@ -1,162 +0,0 @@
# English (United Kingdom) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:33+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"Language-Team: English (United Kingdom) <en_GB@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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Event Project"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Date End"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Ok"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-Planning"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Error ! Closing Date cannot be before Beginning Date."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Project"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Template of Project"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "All tasks"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tasks"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Error ! You cannot create recursive event."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Project tasks"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Close"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Date Start"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Create Retro-Planning"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Event"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Tasks Management"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organisation and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgid "Tasks management"
#~ msgstr "Tasks management"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr "Event Project - Create Retro-Planning to manage your Events"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Invalid XML for View Architecture!"
#~ msgid "Remaining Tasks"
#~ msgstr "Remaining Tasks"
#~ msgid "Cancel"
#~ msgstr "Cancel"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgid "Event - Project"
#~ msgstr "Event - Project"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organisation and management of events.\n"
#~ "\n"
#~ " This module lets you create retro planning to manage your events.\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "Error !"
-164
View File
@@ -1,164 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 17:58+0000\n"
"Last-Translator: Raimon Esteve (www.zikzakmedia.com) "
"<resteve@zikzakmedia.com>\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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Proyecto de evento"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Fecha final"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Aceptar"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Esta es la plantilla de proyecto. El proyecto de evento es un duplicado de "
"esta plantilla. Tras hacer clic en 'Crear retro-planificación', el nuevo "
"proyecto será duplicado a partir de esta plantilla."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-planificación"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "¡Error! La fecha final no puede ser anterior a la inicial."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Proyecto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Plantilla de proyecto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Todas las tareas"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tareas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "¡Error! No puede crear eventos recursivos."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tareas del proyecto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Cerrar"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Fecha inicial"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crear retro-planificación"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Evento"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Gestión de tareas"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid "Remaining Tasks"
#~ msgstr "Tareas pendientes"
#~ msgid "Cancel"
#~ msgstr "Cancelar"
#~ msgid "Tasks management"
#~ msgstr "Gestión de tareas"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro planificaciones para gestionar sus "
#~ "eventos.\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "¡ Error !"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Ningún proyecto definido para este evento.\n"
#~ "¡Puede crear uno con el botón retro-planificación!"
#~ msgid "Event - Project"
#~ msgstr "Evento - Proyecto"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro planificaciones para gestionar sus "
#~ "eventos.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Proyecto de evento - Crea retro-planificación para gestionar sus eventos"
-145
View File
@@ -1,145 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 5.0.0\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2009-09-15 19:47+0000\n"
"Last-Translator: Silvana Herrera <sherrera@thymbra.com>\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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr ""
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr ""
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Aceptar"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr ""
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Proyecto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr ""
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tareas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr ""
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tareas del proyecto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr ""
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr ""
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crear retro-planificación"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Evento"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr ""
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML inválido para la definición de la vista!"
#~ msgid "Remaining Tasks"
#~ msgstr "Tareas restantes"
#~ msgid "Cancel"
#~ msgstr "Cancelar"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "No existe ningún proyecto definido para este evento.\n"
#~ "¡Puede crear uno con el botón de retro-planificación!"
#~ msgid "Event - Project"
#~ msgstr "Evento - Proyecto"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro-planificación para la gestión de sus "
#~ "eventos.\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "¡Error!"
#~ msgid "Tasks management"
#~ msgstr "Gestión de tareas"
-165
View File
@@ -1,165 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-02-13 19:21+0000\n"
"Last-Translator: Carlos Vásquez (CLEARCORP) "
"<carlos.vasquez@clearcorp.co.cr>\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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
"Language: \n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Proyecto de evento"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Fecha final"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Aceptar"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Esta es la plantilla de proyecto. El proyecto de evento es un duplicado de "
"esta plantilla. Tras hacer clic en 'Crear retro-planificación', el nuevo "
"proyecto será duplicado a partir de esta plantilla."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-planificación"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "¡Error! La fecha final no puede ser anterior a la inicial."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Proyecto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Plantilla de proyecto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Todas las tareas"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tareas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "¡Error! No puede crear eventos recursivos."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tareas del proyecto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Cerrar"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Fecha inicial"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crear retro-planificación"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Evento"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr ""
#~ msgid "Tasks management"
#~ msgstr "Gestión de tareas"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid "Remaining Tasks"
#~ msgstr "Tareas pendientes"
#~ msgid "Cancel"
#~ msgstr "Cancelar"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro planificaciones para gestionar sus "
#~ "eventos.\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "¡ Error !"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Ningún proyecto definido para este evento.\n"
#~ "¡Puede crear uno con el botón retro-planificación!"
#~ msgid "Event - Project"
#~ msgstr "Evento - Proyecto"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro planificaciones para gestionar sus "
#~ "eventos.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Proyecto de evento - Crea retro-planificación para gestionar sus eventos"
-151
View File
@@ -1,151 +0,0 @@
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
msgid ""
msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2011-01-13 04:29+0000\n"
"Last-Translator: Cristian Salamea (Gnuthink) <ovnicraft@gmail.com>\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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Evento de Proyecto"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Fecha Final"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Aceptar"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Esta es la plantilla de proyecto. El proyecto de evento es un duplicado de "
"esta plantilla. Tras hacer clic en 'Crear retro-planificación', el nuevo "
"proyecto será duplicado a partir de esta plantilla."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-planificación"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "¡Error! La fecha final no puede ser anterior a la inicial."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Proyecto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Plantilla de proyecto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Todas las tareas"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tareas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "¡Error! No puede crear eventos recursivos."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tareas del proyecto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Cerrar"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Fecha inicial"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crear retro-planificación"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Evento"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr ""
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML inválido para la definición de la vista!"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro planificaciones para gestionar sus "
#~ "eventos.\n"
#~ msgid "Remaining Tasks"
#~ msgstr "Tareas pendientes"
#~ msgid "Event - Project"
#~ msgstr "Evento - Proyecto"
#~ msgid "Cancel"
#~ msgstr "Cancelar"
#~ msgid "Tasks management"
#~ msgstr "Gestión de tareas"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro planificaciones para gestionar sus "
#~ "eventos.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Evento de Proyecto - Crea retro-planificación para gestionar sus eventos"
-129
View File
@@ -1,129 +0,0 @@
# Spanish (Paraguay) translation for openobject-addons
# Copyright (c) 2011 Rosetta Contributors and Canonical Ltd 2011
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2011.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2011-03-21 16:16+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Spanish (Paraguay) <es_PY@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-10-30 05:20+0000\n"
"X-Generator: Launchpad (build 16206)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Proyecto de evento"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Fecha final"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Aceptar"
#. module: event_project
#: help:event.project,project_id:0
msgid ""
"This is Template Project. Project of event is a duplicate of this Template. "
"After click on 'Create Retro-planning', New Project will be duplicated from "
"this template project."
msgstr ""
"Esta es la plantilla de proyecto. El proyecto de evento es un duplicado de "
"esta plantilla. Tras hacer clic en 'Crear retro-planificación', el nuevo "
"proyecto será duplicado a partir de esta plantilla."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-planificación"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "¡Error! La fecha final no puede ser anterior a la inicial."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Proyecto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Plantilla de proyecto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Todas las tareas"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tareas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "¡Error! No puede crear eventos recursivos."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tareas del proyecto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Cerrado"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Fecha inicial"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crear retro-planificación"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Evento"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr ""
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización y gestión de eventos.\n"
#~ "\n"
#~ " Este módulo le permite crear retro planificaciones para gestionar sus "
#~ "eventos.\n"
#~ msgid "Tasks management"
#~ msgstr "Gestión de tareas"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Proyecto de evento - Crea retro-planificación para gestionar sus eventos"

Some files were not shown because too many files have changed in this diff Show More