[MERGE]sync with trunk

bzr revid: sgo@tinyerp.com-20130215054550-w5v6m86ca8udhfs7
This commit is contained in:
sgo@tinyerp.com 2013-02-15 11:15:50 +05:30
commit ab69ff4f24
280 changed files with 13097 additions and 15339 deletions

View File

@ -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):

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 = {

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')),

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>

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')

View File

@ -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:

View File

@ -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()

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()

View File

@ -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']:

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

View File

@ -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')

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",

View File

@ -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>

View File

@ -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")

View File

@ -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()

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):

View File

@ -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)

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 = []

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 ""

View File

@ -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
#

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

View File

@ -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)

View File

@ -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
-

View File

@ -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
-

View File

@ -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
-

View File

@ -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
-

View File

@ -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
-

View File

@ -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
-

View File

@ -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:

View File

@ -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

View File

@ -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
-

View File

@ -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"

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 ""

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 ""

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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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 users 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:

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: 2012-12-07 08:15+0000\n"
"Last-Translator: Denis Karataev <dskarataev@gmail.com>\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-08 04:59+0000\n"
"X-Generator: Launchpad (build 16341)\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"
#~ " "

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))

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 "Пользователи"

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']

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 "Бүртгүүлэх Жетон"

View File

@ -1,4 +1,4 @@
from osv import osv, fields
from openerp.osv import fields, osv
AVAILABLE_STATES = [
('draft', 'New'),

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:

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>

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"

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

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/>

View File

@ -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)

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)

View File

@ -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>

View File

@ -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>

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)

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_helpdesk','test', 'customer_question.eml'),'rb')
request_message = request_file.read()
self.message_process(cr, uid, 'crm.helpdesk', request_message)

View File

@ -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>

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]

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)

View File

@ -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:

View File

@ -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())

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:

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

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

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
addons/edi/i18n/ml.po Normal file
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 ""

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 "تنفيذ المشروع - انشأ خطة رجعية ألى مدير تنفيذك"

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 "Управление на задачи"

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"

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"

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í"

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 ""

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"

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 "Διαχείριση εργασιών"

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 !"

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"

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"

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"

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"

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"

View File

@ -1,122 +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 18:19+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 "Olgu"
#. 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 "Projekt"
#. 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 "Ülesanded"
#. 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 "Projekti ülesanded"
#. 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 "Loo retro-planeerimine"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Sündmus"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Ülesannete juhtimine"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Vigane XML vaate arhitektuurile!"
#~ msgid "Cancel"
#~ msgstr "Tühista"
#~ msgid "Remaining Tasks"
#~ msgstr "Järelejäänud ülesanded"
#~ msgid "Tasks management"
#~ msgstr "Ülesannete juhtimine"
#~ msgid "Event - Project"
#~ msgstr "Sündmus - Projekt"

View File

@ -1,114 +0,0 @@
# Finnish 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:18+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"Language-Team: Finnish <fi@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 "Tapahtumaprojekti"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Loppupäiväys"
#. 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 ""
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro suunnittelu"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Virhe ! Päättymispäivä ei voi olla aikaisempi kuin alkupäivä"
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projekti"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Projektin mallipohja"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Kaikki tehtävät"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tehtävät"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Virhe ! et voi luoda rekursiivisia tapahtumia."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Projektin tehtävät"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Sulje"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Aloituspäivämäärä"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Luo retrosuunnitelma"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Tapahtuma"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Tehtävienhallinta"
#~ msgid "Tasks management"
#~ msgstr "Tehtävienhallinta"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr "Tapahtumaprojekti - luo retro suunitelma tapahtumien hallintaan"

View File

@ -1,152 +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:41+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 "Projet d'événement"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Date de fin"
#. 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 ""
"Ceci est le modèle de projet. Le projet d'un événement est une copie de ce "
"modèle. Après avoir cliqué sur 'Créer rétro-planning', le nouveau projet "
"sera copié à partir de ce modèle."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Rétro-Planning"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Erreur ! La date de fermeture ne peut pas précéder la date de début."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projet"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Modèle du projet"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Toutes les tâches"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tâches"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Erreur, vous ne pouvez pas créer d'événement récursif !"
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tâches du projet"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Fermer"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Date de début"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Générer le retro planning"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Évènement"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Gestion des Tâches"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML non valide pour l'architecture de la vue"
#~ msgid "Remaining Tasks"
#~ msgstr "Tâches Restantes"
#~ msgid "Cancel"
#~ msgstr "Annuler"
#~ msgid "Tasks management"
#~ msgstr "Gestion des Tâches"
#~ msgid "Event - Project"
#~ msgstr "Évènement - Projet"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organisation et gestion des évènements.\n"
#~ "\n"
#~ " Ce module vous autorise à créer un rétro-planning pour gérer vos "
#~ "évènements.\n"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Gestion et organisation d'événements.\n"
#~ "\n"
#~ " Ce module vous permet de créer des rétro-plannings pour gérer vos "
#~ "événements.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Projet d'un événement - Ce module permet de créer des rétro-plannings pour "
#~ "gérer vos événements"

View File

@ -1,165 +0,0 @@
# translation of event-project-es.po to Galego
# Translation of OpenERP Server.
# This file contains the translation of the following modules:
# * event_project
#
# Frco. Javier Rial Rodríguez <fjrial@cesga.es>, 2009.
msgid ""
msgstr ""
"Project-Id-Version: event-project-es\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:48+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"Language-Team: Galego <g11n@mancomun.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 "Proxecto de evento"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Data de Fin"
#. 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 ""
"Esta é unha Proxeto Plantilla. Proxecto de evento é un duplicado desta "
"Plantilla. Despois de pinchar en 'Crear Planificación-Retro', un Novo "
"proxecto será duplicado dende este proxecto plantilla."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Planificación-Retro"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
"¡Erro! A Data de Peche non poder ser establecida antes da Data de Comezo."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Proxecto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Plantilla do Proxecto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Todas as tarefas"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tarefas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "¡Erro! Non pode crear evento recursivo."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tarefas do proxecto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Pechar"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Data de inicio"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crear planificación inversa"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Actividade"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Xestión de tarefas"
#~ msgid "Cancel"
#~ msgstr "Cancelar"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Non se definiu un proxecto para esta actividade.\n"
#~ "Pode crear unha no botón de planificación inversa!"
#~ msgid "Event - Project"
#~ msgstr "Actividade - Proxecto"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización e xestión de actividades.\n"
#~ "\n"
#~ " Este módulo permítelle crear planificacións inversas para xestionar as "
#~ "súas actividades.\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "Erro !"
#~ msgid "Tasks management"
#~ msgstr "Xestión de tarefas"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "¡XML non válido para a definición da vista!"
#~ msgid "Remaining Tasks"
#~ msgstr "Tarefas pendentes"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organización e xestión de eventos.\n"
#~ " Este módulo permite crear planificación retro para a xestión dos seus "
#~ "eventos.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Proxecto de Evento - Crear Planificación-Retro para xestionar os seus Eventos"

View File

@ -1,133 +0,0 @@
# Hindi 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:13+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"Language-Team: Hindi <hi@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 "Event"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "कार्य प्रबंधन"
#~ 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"
#~ msgid "Tasks management"
#~ msgstr "कार्य प्रबंधन"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "संरचना देखने के लिए अमान्य XML"

View File

@ -1,114 +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 18:18+0000\n"
"Last-Translator: Goran Kliska <gkliska@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 ""
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Datum završetka"
#. 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 "Projekt"
#. 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 "Svi zadaci"
#. 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 ""
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Zatvori"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Datum početka"
#. 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 "Event"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Upravljanje zadacima"
#, python-format
#~ msgid "Error !"
#~ msgstr "Greška !"
#~ msgid "Tasks management"
#~ msgstr "Upravljanje zadacima"

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 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: NOVOTRADE RENDSZERHÁZ ( novotrade.hu ) "
"<openerp@novotrade.hu>\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 "Rendezvényprojekt"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Záró dátum"
#. 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 ""
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Újratervezés"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
"Hiba ! A befejezés időpontja nem lehet előbb mint a kezdés időpontja."
#. 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 "Projekt sablon"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Összes feladat"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Feladatok"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Hiba ! Nem hozhat létre rekurzív rendezvényt."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Projekt feladatok"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Zárás"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Kezdő dátum"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Újratervezés létrehozása"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Rendezvény"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Feladatok irányítása"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Rendezvények szervezése és lebonyolítása\n"
#~ "\n"
#~ " Ez a modul lehetővé teszi, a rendezvények létrehozását, újratervezését "
#~ "és irányítását.\n"
#~ msgid "Tasks management"
#~ msgstr "Feladatok irányítása"

View File

@ -1,107 +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: 2009-11-09 13:49+0000\n"
"Last-Translator: <>\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 ""

View File

@ -1,130 +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-12-15 14:35+0000\n"
"Last-Translator: Davide Corio - agilebg.com <davide.corio@agilebg.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-12-16 04:48+0000\n"
"X-Generator: Launchpad (build 16372)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Progetto Evento"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Data Fine"
#. 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 ""
"Questo è un modello di progetto. Il progetto dell'evento è un duplicato di "
"questo template. Dopo aver cliccato su 'Crea retro-pianificazione', un nuovo "
"progetto verrà creato duplicando questo modello."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-pianificazione"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
"Errore! La data di chiusura non può essere antecedente a quella di apertura."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Progetto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Template del progetto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Tutte le attività"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Attivita'"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Errore! Non è possibile creare un evento ricorsivo."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Attività Progetto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Chiudi"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Data Inizio"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Crea Retro-Pianificazione"
#. 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 "Gestione Attività"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML non valido per Visualizzazione Architettura!"
#~ msgid "Remaining Tasks"
#~ msgstr "Attività Rimanenti"
#~ msgid "Cancel"
#~ msgstr "Annulla"
#~ msgid "Tasks management"
#~ msgstr "Gestione Attività"
#~ msgid "Event - Project"
#~ msgstr "Evento - Progetto"
#, python-format
#~ msgid "Error !"
#~ msgstr "Errore!"

View File

@ -1,111 +0,0 @@
# Japanese translation for openobject-addons
# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
"POT-Creation-Date: 2012-02-08 00:36+0000\n"
"PO-Revision-Date: 2012-05-10 18:14+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"Language-Team: Japanese <ja@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"X-Launchpad-Export-Date: 2012-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 "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 "これはプロジェクトのテンプレートです。「計画を複成」をクリックすると、このテンプレートから新しいプロジェクトが複成されます。"
#. 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 "Tasks management"
#~ msgstr "作業管理"

View File

@ -1,142 +0,0 @@
# Korean translation for openobject-addons
# Copyright (c) 2009 Rosetta Contributors and Canonical Ltd 2009
# This file is distributed under the same license as the openobject-addons package.
# FIRST AUTHOR <EMAIL@ADDRESS>, 2009.
#
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:47+0000\n"
"Last-Translator: ekodaq <ceo@ekosdaq.com>\n"
"Language-Team: Korean <ko@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 "Cancel"
#~ msgstr "취소"
#~ msgid "Remaining Tasks"
#~ msgstr "남아있는 과제들"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "이 이벤트에 정의된 프로젝트가 없습니다.\n"
#~ "아래 계획 버튼으로 하나 생성하십시오."
#~ 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"
#, python-format
#~ msgid "Error !"
#~ msgstr "에러 !"
#~ msgid "Tasks management"
#~ msgstr "과제 관리"

View File

@ -1,107 +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: 2009-02-03 06:26+0000\n"
"Last-Translator: <>\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 ""

View File

@ -1,111 +0,0 @@
# Latvian 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 18:03+0000\n"
"Last-Translator: Raphael Collet (OpenERP) <Unknown>\n"
"Language-Team: Latvian <lv@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 "Pasākumi projektos"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Beigu datums"
#. module: event_project
#: view:event.project:0
msgid "Ok"
msgstr "Labi"
#. 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 "Retro-plānošana"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Kļūda! Beigu datums nevar būt pirms sākuma datuma!"
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projekts"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Projekta sagatave"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Visi uzdevumi"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Uzdevumi"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Kļūda! Nedrīkst veidot rekursīvus pasākumus."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Projekta Uzdevumi"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Aizvērt"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Sākuma datums"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Veidot retro-plānošanu"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Pasākums"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Uzdevumu vadība"
#~ msgid "Tasks management"
#~ msgstr "Uzdevumu vadība"

View File

@ -1,113 +0,0 @@
# Mongolian 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-08-24 06:37+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-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 "Tasks management"
#~ msgstr "Даалгаврын менежмент"

View File

@ -1,114 +0,0 @@
# Norwegian Bokmal 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-09-07 17:58+0000\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Norwegian Bokmal <nb@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 "Arrangement Prosjekt"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Sluttdato"
#. 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 ""
"Dette er ett mal Prosjekt. Prosjektet av arrangementet er en dublett av "
"denne malen. Etter klikk på \"Create Retro-planlegging\", vil New Project "
"dupliseres fra denne malen prosjektet."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-Planlegging"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Feil ! Sluttdato kan ikke settes før startdato."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Prosjekt"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Mal av prosjekt"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Alle oppgaver"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Oppgaver"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Feil! Du kan ikke opprette rekursive hendelse."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Prosjektoppgaver"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Lukke"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Startdato"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Opprett Retro - planlegging."
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Arrangement"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr ""
#~ msgid "Tasks management"
#~ msgstr "Oppgaver ledelse"

View File

@ -1,161 +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 18:17+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 "Evenement project"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Einddatum"
#. 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 ""
"DIt is een sjabloon project. Project van evenement is een duplicaat van dit "
"sjabloon. Na klikken van 'Retro-planning maken', wordt het nieuwe project "
"gedupliceerd van dit sjabloon 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 "Fout ! Sluitingsdatum kan niet voor startdatum liggen."
#. 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 "Projectsjabloon"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Alle taken"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Taken"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Fout ! U kunt geen recursief evenement maken."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Projecttaken"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Afsluiten"
#. 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 "Retro-planning maken"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Evenement"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Taakbeheer"
#~ msgid "Cancel"
#~ msgstr "Annuleren"
#~ msgid "Tasks management"
#~ msgstr "Taakbeheer"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Ongeldige XML voor weergave!"
#~ msgid "Remaining Tasks"
#~ msgstr "Resterende taken"
#~ msgid "Event - Project"
#~ msgstr "Evenement - Project"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organisatie en management van evenementen.\n"
#~ "\n"
#~ " Deze module stelt u in staat om evenementen achterwaarts te plannen.\n"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Geen project gedefinieërd voor dit evenement.\n"
#~ "U kunt een nieuw project creëren middels de retro-planning button!"
#, python-format
#~ msgid "Error !"
#~ msgstr "Fout!"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organisatie en beheer van evenementen.\n"
#~ "\n"
#~ " Deze module laat u een retro-planning maken voor uw evenementen.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Evenement project - Retro-planning maken om uw evenementen te beheren."

View File

@ -1,107 +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-04-24 14:57+0000\n"
"Last-Translator: <>\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 ""

View File

@ -1,141 +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 18:07+0000\n"
"Last-Translator: Grzegorz Grzelak (OpenGLOBE.pl) <grzegorz@openglobe.pl>\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 "Projekt wydarzenia"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Data końcowa"
#. 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 ""
#. 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 "Błąd ! Data końcowa nie może być przed datą początkową."
#. 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 "Szablon projektu"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Wszystkie zadania"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Zadania"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Błąd ! Nie możesz tworzyć rekurencyjnych wydarzeń."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Zadania projektów"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Zamknij"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Data rozpoczęcia"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Utwórz planowanie wsteczne"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Wydarzenie"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Zarządzanie zadaniami"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML niewłaściwy dla tej architektury wyświetlania!"
#~ msgid "Remaining Tasks"
#~ msgstr "Pozostałe zadania"
#~ msgid "Cancel"
#~ msgstr "Anuluj"
#~ msgid "Tasks management"
#~ msgstr "Zarządzanie zadaniami"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Nie zdefiniowano żadnego projektu dla tego zderzenia. Możesz to zrobić "
#~ "klikając przycisk \"Retro-planning\""
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr "Organizacja i zarządzanie zdarzeniami.\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "Błąd!"
#~ msgid "Event - Project"
#~ msgstr "Projekt zdarzeń"

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: 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 18:07+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 "Rascunho do evento"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Data Final"
#. 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 ""
"Este é o Template do projeto. O projeto do evento é um duplicado desse "
"template. Depois clique em 'Criar planeamento Retro ', um novo projeto será "
"duplicado a partir deste projeto do template."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Planeamento Retro"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Erro! A data de fim não pode ser anterior à data de início."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projeto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Template do projeto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Todas as tarefas"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tarefas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Erro! Não pode criar eventos recursivos."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tarefas do Projeto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Fechar"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Data Inicial"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Criar Retro-Planeamento"
#. 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 "Gestão de Tarefas"
#~ msgid "Cancel"
#~ msgstr "Cancelar"
#~ msgid "Event - Project"
#~ msgstr "Evento - Projecto"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "XML Inválido para a Arquitectura de Vista!"
#, python-format
#~ msgid "Error !"
#~ msgstr "Erro !"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organização e gestão de eventos.\n"
#~ "\n"
#~ " Este modulo permite-lhe criar criar retro-planeamento para gerir os seus "
#~ "eventos.\n"
#~ msgid "Remaining Tasks"
#~ msgstr "Tarefas Restantes"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Nenhum projecto foi definido para este evento.\n"
#~ "Pode criar um com o botão retro-planeamento !"
#~ msgid "Tasks management"
#~ msgstr "Gestão de Tarefas"

View File

@ -1,156 +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-12-24 18:22+0000\n"
"Last-Translator: Fábio Martinelli - http://zupy.com.br "
"<webmaster@guaru.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-12-25 04:48+0000\n"
"X-Generator: Launchpad (build 16378)\n"
#. module: event_project
#: model:ir.model,name:event_project.model_event_project
msgid "Event Project"
msgstr "Projeto de Evento"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Data de Término"
#. 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 ""
"Este é um Modelo de Projeto. O Projeto de Evento é uma duplicação deste "
"Modelo. Após clicar em 'Criar Retro-Planejamento', o Novo Projeto será "
"duplicado deste modelo de projeto."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Retro-Planejamento"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr "Erro! A Data de Encerramento não pode ser anterior a Data de Início."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Projeto"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Modelo de Projeto"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Todas as Tarefas"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Tarefas"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Erro! Você não pode criar um evento recursivo."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Tarefas do Projeto"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Fechar"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Data de Início"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Criar Retro-Planejamento"
#. 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 "Gerenciamento de Tarefas"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Invalido XML para Arquitetura da View"
#~ msgid "Remaining Tasks"
#~ msgstr "Tarefas Restantes"
#~ msgid "Event - Project"
#~ msgstr "Evento - Projeto"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organização e gerência dos eventos.\n"
#~ "\n"
#~ " Este módulo permite que você crie um planejamento retroativo para "
#~ "controlar seus eventos\n"
#, python-format
#~ msgid "Error !"
#~ msgstr "Erro!"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organização e Gerenciamento de Eventos.\n"
#~ "\n"
#~ " Este módulo permite que você crie retro planejamento para gerenciar seus "
#~ "eventos.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Evento de Projeto - Cria Retro-Planejamento para gerenciar seus Eventos"
#~ msgid "Tasks management"
#~ msgstr "Gerenciamento de Tarefas"
#~ msgid "Cancel"
#~ msgstr "Cancelar"

View File

@ -1,130 +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:13+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 "Eveniment Proiect"
#. module: event_project
#: field:event.project,date:0
msgid "Date End"
msgstr "Data de sfarsit"
#. 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 ""
"Acesta este Sablonul de proiect. Proiectul evenimentului este o copie a "
"acestui Sablon. Dupa ce faceti click pe 'Creeaza Planificarea-retro', "
"Proiectul Nou va fi copiat din acest sablon de proiect."
#. module: event_project
#: view:event.project:0
#: model:ir.actions.act_window,name:event_project.action_event_project
msgid "Retro-Planning"
msgstr "Planificare-retro"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! Closing Date cannot be set before Beginning Date."
msgstr ""
"Eroare ! Data de inchidere nu poate fi setata inaintea Datei de incepere."
#. module: event_project
#: field:event.event,project_id:0
msgid "Project"
msgstr "Proiect"
#. module: event_project
#: field:event.project,project_id:0
msgid "Template of Project"
msgstr "Sablon proiect"
#. module: event_project
#: view:event.event:0
msgid "All tasks"
msgstr "Toate sarcinile"
#. module: event_project
#: view:event.event:0
#: model:ir.actions.act_window,name:event_project.act_event_task
msgid "Tasks"
msgstr "Sarcini"
#. module: event_project
#: constraint:event.event:0
msgid "Error ! You cannot create recursive event."
msgstr "Eroare ! Nu puteti crea un eveniment recursiv."
#. module: event_project
#: field:event.event,task_ids:0
msgid "Project tasks"
msgstr "Sarcini proiect"
#. module: event_project
#: view:event.project:0
msgid "Close"
msgstr "Inchide"
#. module: event_project
#: field:event.project,date_start:0
msgid "Date Start"
msgstr "Data de inceput"
#. module: event_project
#: view:event.event:0
msgid "Create Retro-Planning"
msgstr "Creeaza Planificarea-retro"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Eveniment"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Gestionarea sarcinilor"
#~ msgid "Tasks management"
#~ msgstr "Gestionarea sarcinilor"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allows you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organizarea si gestionarea evenimentelor.\n"
#~ "\n"
#~ " Acest modul va permite sa creati planificare retro pentru gestionarea "
#~ "evenimentelor dumneavoastra.\n"
#~ msgid "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Proiect Eveniment - Creeaza Planificarea-retro pentru gestionarea "
#~ "evenimentelor dumneavoastra"

View File

@ -1,162 +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:24+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 "Remaining Tasks"
#~ msgstr "Оставшиеся задания"
#~ msgid "Cancel"
#~ msgstr "Отмена"
#~ msgid "Tasks management"
#~ 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"
#~ msgid "Event - Project"
#~ msgstr "Событие - Проект"
#, python-format
#~ msgid "Error !"
#~ msgstr "Ошибка !"
#, python-format
#~ msgid ""
#~ "No project defined for this event.\n"
#~ "You can create one with the retro-planning button !"
#~ msgstr ""
#~ "Для этого события не определен проект.\n"
#~ "Вы можете создать его нажав на кнопку ретро-планирования"
#~ 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 "Event Project - Create Retro-Planning to manage your Events"
#~ msgstr ""
#~ "Проект мероприятия — создавайте ретро-планы для управления мероприятиями"

View File

@ -1,137 +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 18:18+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 "V 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 "Projekt"
#. 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 "Opravila"
#. 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 "Naloge projekta"
#. 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 "Izdelaj vzvratno planiranje"
#. module: event_project
#: model:ir.model,name:event_project.model_event_event
msgid "Event"
msgstr "Dogodek"
#. module: event_project
#: view:event.event:0
msgid "Tasks Management"
msgstr "Upravljanje nalog"
#~ msgid "Invalid XML for View Architecture!"
#~ msgstr "Neveljaven XML za arhitekturo pogleda."
#, python-format
#~ msgid "Error !"
#~ msgstr "Napaka!"
#~ msgid "Remaining Tasks"
#~ msgstr "Preostale naloge"
#~ msgid "Cancel"
#~ msgstr "Prekliči"
#~ msgid "Tasks management"
#~ msgstr "Upravljanje nalog"
#~ msgid "Event - Project"
#~ msgstr "Dogodek - projekt"
#~ msgid ""
#~ "Organization and management of events.\n"
#~ "\n"
#~ " This module allow you to create retro planning for managing your "
#~ "events.\n"
#~ msgstr ""
#~ "Organizacija in upravljanje dogodkov.\n"
#~ "\n"
#~ " Ta modul vam omogoča ustvarjanje vzvratnega planiranja fa urpavljanje "
#~ "vaših dogodkov.\n"

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