summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2013-10-28 17:33:21 +0100
committerThibault Delavallée <tde@openerp.com>2013-10-28 17:33:21 +0100
commit5bb4fa2b4347a99b5c1a5722d5591c06f7032d4c (patch)
treeba5127daf27cc553ebc8683a39b68ebec379f4e9
parent0db0f20bda410bd6601c266026363fc95b21c9c4 (diff)
parenta7ff75f94a168e26b9e9a208167b07d45dc751cb (diff)
[MERGE] Sync with trunk
bzr revid: tde@openerp.com-20131028163321-5o81wa1m7rzdp1dz
-rw-r--r--addons/account/__openerp__.py3
-rw-r--r--addons/account/account.py68
-rw-r--r--addons/account/account_invoice_view.xml2
-rw-r--r--addons/account/partner.py3
-rw-r--r--addons/account/static/src/js/account_move_line_quickadd.js2
-rw-r--r--addons/account/test/account_fiscalyear_close.yml66
-rw-r--r--addons/account/test/account_fiscalyear_close_state.yml19
-rw-r--r--addons/account_analytic_analysis/i18n/zh_CN.po25
-rw-r--r--addons/account_anglo_saxon/i18n/bs.po64
-rw-r--r--addons/account_bank_statement_extensions/i18n/da.po2
-rw-r--r--addons/account_followup/account_followup.py2
-rw-r--r--addons/account_followup/wizard/account_followup_print.py9
-rw-r--r--addons/account_voucher/account_voucher_view.xml2
-rw-r--r--addons/account_voucher/voucher_payment_receipt_view.xml4
-rw-r--r--addons/account_voucher/voucher_sales_purchase_view.xml4
-rw-r--r--addons/auth_oauth/controllers/main.py4
-rw-r--r--addons/auth_openid/controllers/main.py4
-rw-r--r--addons/auth_signup/auth_signup_data.xml4
-rw-r--r--addons/auth_signup/controllers/main.py4
-rw-r--r--addons/base_action_rule/base_action_rule.py13
-rw-r--r--addons/base_gengo/i18n/bs.po257
-rw-r--r--addons/base_import/controllers.py2
-rw-r--r--addons/base_import/i18n/bs.po1471
-rw-r--r--addons/board/controllers.py12
-rw-r--r--addons/claim_from_delivery/i18n/bs.po33
-rw-r--r--addons/contacts/i18n/bs.po46
-rw-r--r--addons/contacts/i18n/ja.po37
-rw-r--r--addons/contacts/i18n/lv.po37
-rw-r--r--addons/crm/base_partner_merge.py9
-rw-r--r--addons/crm/crm_lead.py15
-rw-r--r--addons/crm_claim/i18n/bs.po923
-rw-r--r--addons/crm_helpdesk/i18n/bs.po742
-rw-r--r--addons/crm_partner_assign/crm_lead_view.xml4
-rw-r--r--addons/crm_partner_assign/crm_portal_view.xml8
-rw-r--r--addons/crm_partner_assign/i18n/bs.po943
-rw-r--r--addons/crm_partner_assign/res_partner_view.xml4
-rw-r--r--addons/crm_todo/i18n/bs.po85
-rw-r--r--addons/decimal_precision/i18n/bs.po49
-rw-r--r--addons/edi/controllers/main.py17
-rw-r--r--addons/edi/edi_service.py3
-rw-r--r--addons/google_base_account/google_base_account.py29
-rw-r--r--addons/google_drive/google_drive.py47
-rw-r--r--addons/google_spreadsheet/google_spreadsheet.py2
-rw-r--r--addons/hr/hr_view.xml1
-rw-r--r--addons/hr_holidays/hr_holidays.py18
-rw-r--r--addons/hr_holidays/hr_holidays_workflow.xml3
-rw-r--r--addons/hr_holidays/tests/test_holidays_flow.py3
-rw-r--r--addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml16
-rw-r--r--addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml16
-rw-r--r--addons/im/im.py16
-rw-r--r--addons/im_livechat/im_livechat.py9
-rw-r--r--addons/l10n_br/data/account_tax_template.xml64
-rw-r--r--addons/l10n_fr/fr_fiscal_templates.xml149
-rw-r--r--addons/l10n_fr/fr_pcg_taxes.xml200
-rw-r--r--addons/l10n_fr/fr_tax.xml419
-rw-r--r--addons/l10n_fr/plan_comptable_general.xml12
-rw-r--r--addons/l10n_it/data/account.tax.code.template.csv18
-rw-r--r--addons/l10n_it/data/account.tax.template.csv30
-rw-r--r--addons/mail/controllers/main.py9
-rw-r--r--addons/mail/mail_mail.py6
-rw-r--r--addons/mail/mail_thread.py44
-rw-r--r--addons/mail/static/src/js/mail_followers.js2
-rw-r--r--addons/mail/tests/test_mail_features.py108
-rw-r--r--addons/mail/update.py31
-rw-r--r--addons/mail/wizard/mail_compose_message_view.xml11
-rw-r--r--addons/mass_mailing/controllers/main.py5
-rw-r--r--addons/mrp/security/mrp_security.xml5
-rw-r--r--addons/mrp_repair/mrp_repair.py3
-rw-r--r--addons/note/note.py20
-rw-r--r--addons/note/tests/__init__.py27
-rw-r--r--addons/note/tests/test_note.py43
-rw-r--r--addons/point_of_sale/controllers/main.py4
-rw-r--r--addons/point_of_sale/point_of_sale.py2
-rw-r--r--addons/portal/mail_message.py2
-rw-r--r--addons/portal/tests/test_portal.py4
-rw-r--r--addons/portal_hr_employees/hr_employee_view.xml3
-rw-r--r--addons/procurement/i18n/bs.po1089
-rw-r--r--addons/procurement/procurement.py17
-rw-r--r--addons/product/product_view.xml2
-rw-r--r--addons/project_issue/project_issue.py10
-rw-r--r--addons/project_issue/project_issue_view.xml2
-rw-r--r--addons/project_issue_sheet/i18n/sl.po72
-rw-r--r--addons/project_long_term/i18n/es_MX.po707
-rw-r--r--addons/purchase/purchase.py25
-rw-r--r--addons/purchase_double_validation/i18n/bs.po49
-rw-r--r--addons/purchase_requisition/i18n/bs.po497
-rw-r--r--addons/resource/i18n/bs.po364
-rw-r--r--addons/sale/security/sale_security.xml1
-rw-r--r--addons/sale_margin/i18n/bs.po48
-rw-r--r--addons/sale_mrp/i18n/bs.po43
-rw-r--r--addons/sale_order_dates/i18n/bs.po58
-rw-r--r--addons/stock/product_view.xml4
-rw-r--r--addons/stock/stock.py19
-rw-r--r--addons/web_linkedin/web_linkedin.py9
-rw-r--r--addons/web_shortcuts/i18n/bs.po25
95 files changed, 8632 insertions, 791 deletions
diff --git a/addons/account/__openerp__.py b/addons/account/__openerp__.py
index e06e41cf001..17c0a77c30f 100644
--- a/addons/account/__openerp__.py
+++ b/addons/account/__openerp__.py
@@ -154,12 +154,11 @@ for a particular financial year and for preparation of vouchers there is a modul
'test/account_period_close.yml',
'test/account_use_model.yml',
'test/account_validate_account_move.yml',
- 'test/account_fiscalyear_close.yml',
#'test/account_bank_statement.yml',
#'test/account_cash_statement.yml',
'test/test_edi_invoice.yml',
'test/account_report.yml',
- 'test/account_fiscalyear_close_state.yml', #last test, as it will definitively close the demo fiscalyear
+ 'test/account_fiscalyear_close.yml', #last test, as it will definitively close the demo fiscalyear
],
'installable': True,
'auto_install': False,
diff --git a/addons/account/account.py b/addons/account/account.py
index 21a5ce992d7..75936320e58 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -3047,6 +3047,20 @@ class wizard_multi_charts_accounts(osv.osv_memory):
'complete_tax_set': fields.boolean('Complete Set of Taxes', help='This boolean helps you to choose if you want to propose to the user to encode the sales and purchase rates or use the usual m2o fields. This last choice assumes that the set of tax defined for the chosen template is complete'),
}
+
+ def _get_chart_parent_ids(self, cr, uid, chart_template, context=None):
+ """ Returns the IDs of all ancestor charts, including the chart itself.
+ (inverse of child_of operator)
+
+ :param browse_record chart_template: the account.chart.template record
+ :return: the IDS of all ancestor charts, including the chart itself.
+ """
+ result = [chart_template.id]
+ while chart_template.parent_id:
+ chart_template = chart_template.parent_id
+ result.append(chart_template.id)
+ return result
+
def onchange_tax_rate(self, cr, uid, ids, rate=False, context=None):
return {'value': {'purchase_tax_rate': rate or False}}
@@ -3060,12 +3074,17 @@ class wizard_multi_charts_accounts(osv.osv_memory):
res['value'].update({'complete_tax_set': data.complete_tax_set, 'currency_id': currency_id})
if data.complete_tax_set:
# default tax is given by the lowest sequence. For same sequence we will take the latest created as it will be the case for tax created while isntalling the generic chart of account
- sale_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id"
- , "=", chart_template_id), ('type_tax_use', 'in', ('sale','all'))], order="sequence, id desc")
- purchase_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id"
- , "=", chart_template_id), ('type_tax_use', 'in', ('purchase','all'))], order="sequence, id desc")
- res['value'].update({'sale_tax': sale_tax_ids and sale_tax_ids[0] or False, 'purchase_tax': purchase_tax_ids and purchase_tax_ids[0] or False})
-
+ chart_ids = self._get_chart_parent_ids(cr, uid, data, context=context)
+ base_tax_domain = [("chart_template_id", "in", chart_ids), ('parent_id', '=', False)]
+ sale_tax_domain = base_tax_domain + [('type_tax_use', 'in', ('sale','all'))]
+ purchase_tax_domain = base_tax_domain + [('type_tax_use', 'in', ('purchase','all'))]
+ sale_tax_ids = tax_templ_obj.search(cr, uid, sale_tax_domain, order="sequence, id desc")
+ purchase_tax_ids = tax_templ_obj.search(cr, uid, purchase_tax_domain, order="sequence, id desc")
+ res['value'].update({'sale_tax': sale_tax_ids and sale_tax_ids[0] or False,
+ 'purchase_tax': purchase_tax_ids and purchase_tax_ids[0] or False})
+ res.setdefault('domain', {})
+ res['domain']['sale_tax'] = repr(sale_tax_domain)
+ res['domain']['purchase_tax'] = repr(purchase_tax_domain)
if data.code_digits:
res['value'].update({'code_digits': data.code_digits})
return res
@@ -3073,6 +3092,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
def default_get(self, cr, uid, fields, context=None):
res = super(wizard_multi_charts_accounts, self).default_get(cr, uid, fields, context=context)
tax_templ_obj = self.pool.get('account.tax.template')
+ account_chart_template = self.pool['account.chart.template']
if 'bank_accounts_id' in fields:
res.update({'bank_accounts_id': [{'acc_name': _('Cash'), 'account_type': 'cash'},{'acc_name': _('Bank'), 'account_type': 'bank'}]})
@@ -3086,23 +3106,28 @@ class wizard_multi_charts_accounts(osv.osv_memory):
currency_id = company_obj.on_change_country(cr, uid, company_id, country_id, context=context)['value']['currency_id']
res.update({'currency_id': currency_id})
- ids = self.pool.get('account.chart.template').search(cr, uid, [('visible', '=', True)], context=context)
+ ids = account_chart_template.search(cr, uid, [('visible', '=', True)], context=context)
if ids:
+ #in order to set default chart which was last created set max of ids.
+ chart_id = max(ids)
+ if context.get("default_charts"):
+ model_data = self.pool.get('ir.model.data').search_read(cr, uid, [('model','=','account.chart.template'),('module','=',context.get("default_charts"))], ['res_id'], context=context)
+ if model_data:
+ chart_id = model_data[0]['res_id']
+ chart = account_chart_template.browse(cr, uid, chart_id, context=context)
+ chart_hierarchy_ids = self._get_chart_parent_ids(cr, uid, chart, context=context)
if 'chart_template_id' in fields:
- #in order to get set default chart which was last created set max of ids.
- chart_id = max(ids)
- if context.get("default_charts"):
- model_data = self.pool.get('ir.model.data').search_read(cr, uid, [('model','=','account.chart.template'),('module','=',context.get("default_charts"))], ['res_id'], context=context)
- if model_data:
- chart_id = model_data[0]['res_id']
- res.update({'only_one_chart_template': len(ids) == 1, 'chart_template_id': chart_id})
+ res.update({'only_one_chart_template': len(ids) == 1,
+ 'chart_template_id': chart_id})
if 'sale_tax' in fields:
- sale_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id"
- , "=", ids[0]), ('type_tax_use', 'in', ('sale','all'))], order="sequence")
+ sale_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id", "in", chart_hierarchy_ids),
+ ('type_tax_use', 'in', ('sale','all'))],
+ order="sequence")
res.update({'sale_tax': sale_tax_ids and sale_tax_ids[0] or False})
if 'purchase_tax' in fields:
- purchase_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id"
- , "=", ids[0]), ('type_tax_use', 'in', ('purchase','all'))], order="sequence")
+ purchase_tax_ids = tax_templ_obj.search(cr, uid, [("chart_template_id", "in", chart_hierarchy_ids),
+ ('type_tax_use', 'in', ('purchase','all'))],
+ order="sequence")
res.update({'purchase_tax': purchase_tax_ids and purchase_tax_ids[0] or False})
res.update({
'purchase_tax_rate': 15.0,
@@ -3370,12 +3395,7 @@ class wizard_multi_charts_accounts(osv.osv_memory):
obj_tax_temp = self.pool.get('account.tax.template')
chart_template = obj_wizard.chart_template_id
vals = {}
- # get the ids of all the parents of the selected account chart template
- current_chart_template = chart_template
- all_parents = [current_chart_template.id]
- while current_chart_template.parent_id:
- current_chart_template = current_chart_template.parent_id
- all_parents.append(current_chart_template.id)
+ all_parents = self._get_chart_parent_ids(cr, uid, chart_template, context=context)
# create tax templates and tax code templates from purchase_tax_rate and sale_tax_rate fields
if not chart_template.complete_tax_set:
value = obj_wizard.sale_tax_rate
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 1b7bd658faf..3cf10f477e2 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -463,7 +463,7 @@
<separator/>
<filter domain="[('user_id','=',uid)]" help="My Invoices"/>
<group expand="0" string="Group By...">
- <filter name="partner_id" string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
+ <filter name="group_by_partner_id" string="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter name="commercial_partner_id" string="Commercial Partner" domain="[]" context="{'group_by':'commercial_partner_id'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Journal" icon="terp-folder-orange" domain="[]" context="{'group_by':'journal_id'}"/>
diff --git a/addons/account/partner.py b/addons/account/partner.py
index a7df31b2f32..d0db2ed4f6c 100644
--- a/addons/account/partner.py
+++ b/addons/account/partner.py
@@ -113,7 +113,8 @@ class res_partner(osv.osv):
LEFT JOIN account_account a ON (l.account_id=a.id)
WHERE a.type IN ('receivable','payable')
AND l.partner_id IN %s
- AND l.reconcile_id IS NULL
+ AND (l.reconcile_id IS NULL OR
+ reconcile_id in (SELECT id FROM account_move_reconcile WHERE opening_reconciliation is TRUE))
AND """ + query + """
GROUP BY l.partner_id, a.type
""",
diff --git a/addons/account/static/src/js/account_move_line_quickadd.js b/addons/account/static/src/js/account_move_line_quickadd.js
index 0b904e19da6..997b2b03bb6 100644
--- a/addons/account/static/src/js/account_move_line_quickadd.js
+++ b/addons/account/static/src/js/account_move_line_quickadd.js
@@ -84,7 +84,7 @@ openerp.account.quickadd = function (instance) {
},
search_by_journal_period: function() {
var self = this;
- var domain = ['|',['debit', '!=', 0], ['credit', '!=', 0]];
+ var domain = [];
if (self.current_journal !== null) domain.push(["journal_id", "=", self.current_journal]);
if (self.current_period !== null) domain.push(["period_id", "=", self.current_period]);
self.last_context["journal_id"] = self.current_journal === null ? false : self.current_journal;
diff --git a/addons/account/test/account_fiscalyear_close.yml b/addons/account/test/account_fiscalyear_close.yml
index 1c3547ccefd..cc683ca8d46 100644
--- a/addons/account/test/account_fiscalyear_close.yml
+++ b/addons/account/test/account_fiscalyear_close.yml
@@ -4,20 +4,29 @@
!record {model: account.fiscalyear, id: account_fiscalyear_fiscalyear0}:
code: !eval "'FY%s'% (datetime.now().year+1)"
company_id: base.main_company
- date_start: !eval "'%s-01-01' %(datetime.now().year+1)"
- date_stop: !eval "'%s-12-31' %(datetime.now().year+1)"
- name: !eval "'Fiscal Year %s' %(datetime.now().year+1)"
+ date_start: !eval "'%s-01-01' %(datetime.now().year-1)"
+ date_stop: !eval "'%s-12-31' %(datetime.now().year-1)"
+ name: !eval "'Fiscal Year %s' %(datetime.now().year-1)"
-
- I create a period for the opening entries for the new fiscalyear
+ I generate periods for the new fiscalyear
-
- !record {model: account.period, id: account_period_jan11}:
- company_id: base.main_company
- date_start: !eval "'%s-01-01'% (datetime.now().year+1)"
- date_stop: !eval "'%s-01-01'% (datetime.now().year+1)"
- fiscalyear_id: account_fiscalyear_fiscalyear0
- name: !eval "'OP %s' %(datetime.now().year+1)"
- special: 1
-
+ !python {model: account.fiscalyear}: |
+ self.create_period(cr, uid, [ref("account_fiscalyear_fiscalyear0")])
+-
+ I create a new account invoice in the created fiscalyear
+-
+ !record {model: account.invoice, id: account_invoice_current1}:
+ partner_id: base.res_partner_2
+ date_invoice: !eval "'%s-01-02' %(datetime.now().year-1)"
+ invoice_line:
+ - partner_id: base.res_partner_2
+ quantity: 1.0
+ price_unit: 15.00
+ name: Bying stuff
+-
+ I validate the invoice
+-
+ !workflow {model: account.invoice, action: invoice_open, ref: account.account_invoice_current1}
-
I made modification in journal so it can move entries
-
@@ -31,19 +40,40 @@
company_id: base.main_company
centralisation: 1
-
- I called the Generate Fiscalyear Opening Entries wizard
+ I call the Generate Fiscalyear Opening Entries wizard
-
!record {model: account.fiscalyear.close, id: account_fiscalyear_close_0}:
- fy2_id: account_fiscalyear_fiscalyear0
- fy_id: account.data_fiscalyear
+ fy2_id: account.data_fiscalyear
+ fy_id: account_fiscalyear_fiscalyear0
journal_id: account.close_journal
- period_id: account_period_jan11
+ period_id: account.period_1
report_name: End of Fiscal Year Entry
-
I clicked on create Button
-
-
!python {model: account.fiscalyear.close}: |
self.data_save(cr, uid, [ref("account_fiscalyear_close_0")], {"lang": 'en_US',
"active_model": "ir.ui.menu", "active_ids": [ref("account.menu_wizard_fy_close")],
- "tz": False, "active_id": ref("account.menu_wizard_fy_close"), }) \ No newline at end of file
+ "tz": False, "active_id": ref("account.menu_wizard_fy_close"), })
+-
+ I close the previous fiscalyear
+-
+ !record {model: account.fiscalyear.close.state, id: account_fiscalyear_close_state_0}:
+ fy_id: account_fiscalyear_fiscalyear0
+-
+ I clicked on Close States Button to close fiscalyear
+-
+ !python {model: account.fiscalyear.close.state}: |
+ self.data_save(cr, uid, [ref("account_fiscalyear_close_state_0")], {"lang": 'en_US',
+ "active_model": "ir.ui.menu", "active_ids": [ref("account.menu_wizard_fy_close_state")],
+ "tz": False, "active_id": ref("account.menu_wizard_fy_close_state"), })
+-
+ I check that the fiscalyear state is now "Done"
+-
+ !assert {model: account.fiscalyear, id: account_fiscalyear_fiscalyear0, string: Fiscal Year is in Done state}:
+ - state == 'done'
+-
+ I check that the past accounts are taken into account in partner credit
+-
+ !assert {model: res.partner, id: base.res_partner_2, string: Total Receivable does not takes unreconciled moves of previous years}:
+ - credit == 15.0
diff --git a/addons/account/test/account_fiscalyear_close_state.yml b/addons/account/test/account_fiscalyear_close_state.yml
deleted file mode 100644
index 18c7dd570ed..00000000000
--- a/addons/account/test/account_fiscalyear_close_state.yml
+++ /dev/null
@@ -1,19 +0,0 @@
--
- I run the Close a Fiscalyear wizard to close the demo fiscalyear
--
- !record {model: account.fiscalyear.close.state, id: account_fiscalyear_close_state_0}:
- fy_id: data_fiscalyear
--
- I clicked on Close States Button to close fiscalyear
-
--
- !python {model: account.fiscalyear.close.state}: |
- self.data_save(cr, uid, [ref("account_fiscalyear_close_state_0")], {"lang": 'en_US',
- "active_model": "ir.ui.menu", "active_ids": [ref("account.menu_wizard_fy_close_state")],
- "tz": False, "active_id": ref("account.menu_wizard_fy_close_state"), })
--
- I check that the fiscalyear state is now "Done"
--
- !assert {model: account.fiscalyear, id: data_fiscalyear, string: Fiscal Year is in Done state}:
- - state == 'done'
-
diff --git a/addons/account_analytic_analysis/i18n/zh_CN.po b/addons/account_analytic_analysis/i18n/zh_CN.po
index 7df872756b7..3bcf3f4406b 100644
--- a/addons/account_analytic_analysis/i18n/zh_CN.po
+++ b/addons/account_analytic_analysis/i18n/zh_CN.po
@@ -7,14 +7,14 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:04+0000\n"
-"PO-Revision-Date: 2013-01-30 03:58+0000\n"
-"Last-Translator: Wei \"oldrev\" Li <oldrev@gmail.com>\n"
+"PO-Revision-Date: 2013-10-18 02:59+0000\n"
+"Last-Translator: padola <padola@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: 2013-09-12 05:47+0000\n"
-"X-Generator: Launchpad (build 16761)\n"
+"X-Launchpad-Export-Date: 2013-10-19 04:59+0000\n"
+"X-Generator: Launchpad (build 16807)\n"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -67,6 +67,10 @@ msgid ""
"to\n"
" define the customer invoice price rate."
msgstr ""
+"当发票符合计工单,OpenERP将使用\n"
+" 合同使用价目表价格\n"
+" 产品设置应用到每个员工\n"
+" 指定客户发票价格率。"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -144,6 +148,15 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" 点击以确立一个新合同\n"
+" </p><p>\n"
+" 你将发现合同已经更新,由于已过期或者工作流\n"
+" 授权超过最大数\n"
+" </p><p>\n"
+" OpenERP会自动更新挂起状态的合同,商谈结束,\n"
+" 销售员必须关闭或更新挂起的合同.\n"
+" "
#. module: account_analytic_analysis
#: view:account.analytic.account:0
@@ -153,7 +166,7 @@ msgstr "截止日期"
#. module: account_analytic_analysis
#: view:account.analytic.account:0
msgid "Account Manager"
-msgstr "会计经理"
+msgstr "分管会计"
#. module: account_analytic_analysis
#: help:account.analytic.account,remaining_hours_to_invoice:0
@@ -595,7 +608,7 @@ msgstr "总时间"
#: model:res.groups,comment:account_analytic_analysis.group_template_required
msgid ""
"the field template of the analytic accounts and contracts will be required."
-msgstr ""
+msgstr "这个分析账户和合同的字段模板是必填的"
#. module: account_analytic_analysis
#: field:account.analytic.account,invoice_on_timesheets:0
diff --git a/addons/account_anglo_saxon/i18n/bs.po b/addons/account_anglo_saxon/i18n/bs.po
new file mode 100644
index 00000000000..69cca6cfe70
--- /dev/null
+++ b/addons/account_anglo_saxon/i18n/bs.po
@@ -0,0 +1,64 @@
+# Bosnian 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-10-26 01:22+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_product_category
+msgid "Product Category"
+msgstr "Kategorija proizvoda"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_account_invoice_line
+msgid "Invoice Line"
+msgstr "Stavka fakture"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_purchase_order
+msgid "Purchase Order"
+msgstr "Nabavna narudžba"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_product_template
+msgid "Product Template"
+msgstr "Šablon proizvoda"
+
+#. module: account_anglo_saxon
+#: field:product.category,property_account_creditor_price_difference_categ:0
+#: field:product.template,property_account_creditor_price_difference:0
+msgid "Price Difference Account"
+msgstr "Konto razlike u cijeni"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_account_invoice
+msgid "Invoice"
+msgstr "Faktura"
+
+#. module: account_anglo_saxon
+#: model:ir.model,name:account_anglo_saxon.model_stock_picking
+msgid "Picking List"
+msgstr "Lista prikupljanja proizvoda"
+
+#. module: account_anglo_saxon
+#: help:product.category,property_account_creditor_price_difference_categ:0
+#: help:product.template,property_account_creditor_price_difference:0
+msgid ""
+"This account will be used to value price difference between purchase price "
+"and cost price."
+msgstr ""
+"Ovaj konto biti će korišćen da vrednuje razliku u cijeni između nabavne i "
+"prodajne cijene."
diff --git a/addons/account_bank_statement_extensions/i18n/da.po b/addons/account_bank_statement_extensions/i18n/da.po
index 40ad8a9cab9..0c6d05c076b 100644
--- a/addons/account_bank_statement_extensions/i18n/da.po
+++ b/addons/account_bank_statement_extensions/i18n/da.po
@@ -14,7 +14,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-10-15 04:41+0000\n"
+"X-Launchpad-Export-Date: 2013-10-16 04:37+0000\n"
"X-Generator: Launchpad (build 16799)\n"
#. module: account_bank_statement_extensions
diff --git a/addons/account_followup/account_followup.py b/addons/account_followup/account_followup.py
index 715860cab83..9237282ad80 100644
--- a/addons/account_followup/account_followup.py
+++ b/addons/account_followup/account_followup.py
@@ -185,7 +185,7 @@ class res_partner(osv.osv):
return {}
data['partner_ids'] = wizard_partner_ids
datas = {
- 'ids': [],
+ 'ids': wizard_partner_ids,
'model': 'account_followup.followup',
'form': data
}
diff --git a/addons/account_followup/wizard/account_followup_print.py b/addons/account_followup/wizard/account_followup_print.py
index c14b5c071f6..00ecab7b860 100644
--- a/addons/account_followup/wizard/account_followup_print.py
+++ b/addons/account_followup/wizard/account_followup_print.py
@@ -50,9 +50,9 @@ class account_followup_stat_by_partner(osv.osv):
# to send him follow-ups separately . An assumption that the number of companies will not
# reach 10 000 records is made, what should be enough for a time.
cr.execute("""
- create or replace view account_followup_stat_by_partner as (
+ create view account_followup_stat_by_partner as (
SELECT
- l.partner_id * 10000 + l.company_id as id,
+ l.partner_id * 10000::bigint + l.company_id as id,
l.partner_id AS partner_id,
min(l.date) AS date_move,
max(l.date) AS date_move_last,
@@ -67,11 +67,10 @@ class account_followup_stat_by_partner(osv.osv):
a.active AND
a.type = 'receivable' AND
l.reconcile_id is NULL AND
- l.partner_id IS NOT NULL AND
- (l.blocked = False)
+ l.partner_id IS NOT NULL
GROUP BY
l.partner_id, l.company_id
- )""") #Blocked is to take into account litigation
+ )""")
class account_followup_sending_results(osv.osv_memory):
diff --git a/addons/account_voucher/account_voucher_view.xml b/addons/account_voucher/account_voucher_view.xml
index 4674d62b6a0..41d3c6fc1f6 100644
--- a/addons/account_voucher/account_voucher_view.xml
+++ b/addons/account_voucher/account_voucher_view.xml
@@ -130,7 +130,7 @@
<separator/>
<filter icon="terp-gtk-jump-to-ltr" string="To Review" domain="[('state','=','posted'), ('audit','=',False)]" help="To Review"/>
<field name="partner_id" filter_domain="[('partner_id', 'child_of', self)]"/>
- <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" />
+ <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" /> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
<group expand="0" string="Group By...">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
diff --git a/addons/account_voucher/voucher_payment_receipt_view.xml b/addons/account_voucher/voucher_payment_receipt_view.xml
index 5d259772363..1169d5ef7c3 100644
--- a/addons/account_voucher/voucher_payment_receipt_view.xml
+++ b/addons/account_voucher/voucher_payment_receipt_view.xml
@@ -12,7 +12,7 @@
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
<filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
<field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/>
- <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/>
+ <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
<group expand="0" string="Group By...">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
@@ -35,7 +35,7 @@
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
<filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
<field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/>
- <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/>
+ <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('bank','cash'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
<group expand="0" string="Group By...">
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
diff --git a/addons/account_voucher/voucher_sales_purchase_view.xml b/addons/account_voucher/voucher_sales_purchase_view.xml
index dc732129803..e35061e1836 100644
--- a/addons/account_voucher/voucher_sales_purchase_view.xml
+++ b/addons/account_voucher/voucher_sales_purchase_view.xml
@@ -11,7 +11,7 @@
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
<filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
<field name="partner_id" string="Supplier" filter_domain="[('partner_id','child_of',self)]"/>
- <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('purchase','purchase_refund'))]"/>
+ <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('purchase','purchase_refund'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
<group expand="0" string="Group By...">
<filter string="Supplier" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
@@ -33,7 +33,7 @@
<filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]" help="Draft Vouchers"/>
<filter icon="terp-camera_test" string="Posted" domain="[('state','=','posted')]" help="Posted Vouchers"/>
<field name="partner_id" string="Customer" filter_domain="[('partner_id','child_of',self)]"/>
- <field name="journal_id" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('sale','sale_refund'))]"/>
+ <field name="journal_id" widget="selection" context="{'journal_id': self, 'set_visible':False}" domain="[('type','in',('sale','sale_refund'))]"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="period_id"/>
<group expand="0" string="Group By...">
<filter string="Customer" icon="terp-personal" domain="[]" context="{'group_by':'partner_id'}"/>
diff --git a/addons/auth_oauth/controllers/main.py b/addons/auth_oauth/controllers/main.py
index 35a06871696..bedf32ae776 100644
--- a/addons/auth_oauth/controllers/main.py
+++ b/addons/auth_oauth/controllers/main.py
@@ -7,8 +7,8 @@ from werkzeug.exceptions import BadRequest
import openerp
from openerp import SUPERUSER_ID
-import openerp.addons.web.http as http
-from openerp.addons.web.http import request
+from openerp import http
+from openerp.http import request
from openerp.addons.web.controllers.main import db_monodb, set_cookie_and_redirect, login_and_redirect
from openerp.modules.registry import RegistryManager
diff --git a/addons/auth_openid/controllers/main.py b/addons/auth_openid/controllers/main.py
index a4ef1bfa07b..534d1b01a9c 100644
--- a/addons/auth_openid/controllers/main.py
+++ b/addons/auth_openid/controllers/main.py
@@ -38,8 +38,8 @@ import openerp
from openerp import SUPERUSER_ID
from openerp.modules.registry import RegistryManager
from openerp.addons.web.controllers.main import login_and_redirect, set_cookie_and_redirect
-import openerp.addons.web.http as http
-from openerp.addons.web.http import request
+import openerp.http as http
+from openerp.http import request
from .. import utils
diff --git a/addons/auth_signup/auth_signup_data.xml b/addons/auth_signup/auth_signup_data.xml
index 31e3b61a9f6..1b4e3e05502 100644
--- a/addons/auth_signup/auth_signup_data.xml
+++ b/addons/auth_signup/auth_signup_data.xml
@@ -22,7 +22,7 @@
<record id="reset_password_email" model="email.template">
<field name="name">Reset Password</field>
<field name="model_id" ref="base.model_res_users"/>
- <field name="email_from"><![CDATA[${object.company_id.name} <${object.company_id.email}>]]></field>
+ <field name="email_from"><![CDATA[${object.company_id.name} <${object.company_id.email or user.email}>]]></field>
<field name="email_to">${object.email}</field>
<field name="subject">Password reset</field>
<field name="body_html"><![CDATA[
@@ -37,7 +37,7 @@
<record id="set_password_email" model="email.template">
<field name="name">OpenERP Enterprise Connection</field>
<field name="model_id" ref="base.model_res_users"/>
- <field name="email_from"><![CDATA[${object.company_id.name} <${object.company_id.email}>]]></field>
+ <field name="email_from"><![CDATA[${object.company_id.name} <${object.company_id.email or user.email}>]]></field>
<field name="email_to">${object.email}</field>
<field name="subject"><![CDATA[${object.company_id.name} invitation to connect on OpenERP]]></field>
<field name="body_html">
diff --git a/addons/auth_signup/controllers/main.py b/addons/auth_signup/controllers/main.py
index e42dc64151f..a778cbcf061 100644
--- a/addons/auth_signup/controllers/main.py
+++ b/addons/auth_signup/controllers/main.py
@@ -21,10 +21,10 @@
import logging
import openerp
+from openerp import http
+from openerp.http import request
from openerp.modules.registry import RegistryManager
from ..res_users import SignupError
-import openerp.addons.web.http as http
-from openerp.addons.web.http import request
_logger = logging.getLogger(__name__)
diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py
index 3497255fa76..59d61ba5b67 100644
--- a/addons/base_action_rule/base_action_rule.py
+++ b/addons/base_action_rule/base_action_rule.py
@@ -63,7 +63,10 @@ class base_action_rule(osv.osv):
'sequence': fields.integer('Sequence',
help="Gives the sequence order when displaying a list of rules."),
'kind': fields.selection(
- [('on_create', 'On Creation'), ('on_write', 'On Update'), ('on_time', 'Based on Timed Condition')],
+ [('on_create', 'On Creation'),
+ ('on_write', 'On Update'),
+ ('on_create_or_write', 'On Creation & Update'),
+ ('on_time', 'Based on Timed Condition')],
string='When to Run'),
'trg_date_id': fields.many2one('ir.model.fields', string='Trigger Date',
help="When should the condition be triggered. If present, will be checked by the scheduler. If empty, will be checked at creation and update.",
@@ -97,9 +100,9 @@ class base_action_rule(osv.osv):
def onchange_kind(self, cr, uid, ids, kind, context=None):
clear_fields = []
- if kind == 'on_create':
+ if kind in ['on_create', 'on_create_or_write']:
clear_fields = ['filter_pre_id', 'trg_date_id', 'trg_date_range', 'trg_date_range_type']
- elif kind == 'on_write':
+ elif kind in ['on_write', 'on_create_or_write']:
clear_fields = ['trg_date_id', 'trg_date_range', 'trg_date_range_type']
elif kind == 'on_time':
clear_fields = ['filter_pre_id']
@@ -156,7 +159,7 @@ class base_action_rule(osv.osv):
new_id = old_create(cr, uid, vals, context=context)
# retrieve the action rules to run on creation
- action_dom = [('model', '=', model), ('kind', '=', 'on_create')]
+ action_dom = [('model', '=', model), ('kind', 'in', ['on_create', 'on_create_or_write'])]
action_ids = self.search(cr, uid, action_dom, context=context)
# check postconditions, and execute actions on the records that satisfy them
@@ -180,7 +183,7 @@ class base_action_rule(osv.osv):
ids = [ids] if isinstance(ids, (int, long, str)) else ids
# retrieve the action rules to run on update
- action_dom = [('model', '=', model), ('kind', '=', 'on_write')]
+ action_dom = [('model', '=', model), ('kind', 'in', ['on_write', 'on_create_or_write'])]
action_ids = self.search(cr, uid, action_dom, context=context)
actions = self.browse(cr, uid, action_ids, context=context)
diff --git a/addons/base_gengo/i18n/bs.po b/addons/base_gengo/i18n/bs.po
new file mode 100644
index 00000000000..3d4f1b58474
--- /dev/null
+++ b/addons/base_gengo/i18n/bs.po
@@ -0,0 +1,257 @@
+# Bosnian 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-10-25 23:23+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-26 05:46+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Comments for Translator"
+msgstr "Komentari za prevodioca"
+
+#. module: base_gengo
+#: field:ir.translation,job_id:0
+msgid "Gengo Job ID"
+msgstr "Id Gengo zadatka"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "This language is not supported by the Gengo translation services."
+msgstr "Ovaj jezik nije podržan od strane Gengo prevodilačkog servisa."
+
+#. module: base_gengo
+#: field:res.company,gengo_comment:0
+msgid "Comments"
+msgstr "Komentari"
+
+#. module: base_gengo
+#: field:res.company,gengo_private_key:0
+msgid "Gengo Private Key"
+msgstr "Gengo privatni ključ"
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_base_gengo_translations
+msgid "base.gengo.translations"
+msgstr "base.gengo.translations"
+
+#. module: base_gengo
+#: help:res.company,gengo_auto_approve:0
+msgid "Jobs are Automatically Approved by Gengo."
+msgstr "Zadatci su automatski odobreni od strane Gengo"
+
+#. module: base_gengo
+#: field:base.gengo.translations,lang_id:0
+msgid "Language"
+msgstr "Jezik"
+
+#. module: base_gengo
+#: field:ir.translation,gengo_comment:0
+msgid "Comments & Activity Linked to Gengo"
+msgstr "Komentari i Aktivnosti povezani na Gengo"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:124
+#, python-format
+msgid "Gengo Sync Translation (Response)"
+msgstr "Gengo sinhronizacija prevoda (Odgovor)"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:72
+#, python-format
+msgid ""
+"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo "
+"authentication parameters under `Settings > Companies > Gengo Parameters`."
+msgstr ""
+"Gengo `Javni ključ` ili `Privatni ključ` nedostaje. Podesite svoju Gengo "
+"prijavu pod `Postavke > Kompanije > Gengo parametri`."
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Translation By Machine"
+msgstr "Prevod od strane mašine"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:155
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"--\n"
+" Commented on %s by %s."
+msgstr ""
+"%s\n"
+"\n"
+"--\n"
+"Komentirano %s od strane %s."
+
+#. module: base_gengo
+#: field:ir.translation,gengo_translation:0
+msgid "Gengo Translation Service Level"
+msgstr "Nivo Gengo prevodilačkog servisa"
+
+#. module: base_gengo
+#: constraint:ir.translation:0
+msgid ""
+"The Gengo translation service selected is not supported for this language."
+msgstr "Odabrani Gengo prevodilački servis nije podržan za ovaj jezik."
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Standard"
+msgstr "Standardno"
+
+#. module: base_gengo
+#: help:ir.translation,gengo_translation:0
+msgid ""
+"You can select here the service level you want for an automatic translation "
+"using Gengo."
+msgstr ""
+"Ovdje možete odabrati nivo servisa koji želite za automatski prevod "
+"koristeći Gengo."
+
+#. module: base_gengo
+#: field:base.gengo.translations,restart_send_job:0
+msgid "Restart Sending Job"
+msgstr "Ponovno pokreni posao slanja"
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "To Approve In Gengo"
+msgstr "Za odobrenje u Gengo"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Private Key"
+msgstr "Privatni ključ"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Public Key"
+msgstr "Javni ključ"
+
+#. module: base_gengo
+#: field:res.company,gengo_public_key:0
+msgid "Gengo Public Key"
+msgstr "Gengo javno ključ"
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:123
+#, python-format
+msgid "Gengo Sync Translation (Request)"
+msgstr "Gengo sinhronizacija prevoda (Zahtjev)"
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Translations"
+msgstr "Prevodi"
+
+#. module: base_gengo
+#: field:res.company,gengo_auto_approve:0
+msgid "Auto Approve Translation ?"
+msgstr "Automatski odobri prevode?"
+
+#. module: base_gengo
+#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations
+#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations
+msgid "Gengo: Manual Request of Translation"
+msgstr "Gengo: ručni zahtjevi prevoda"
+
+#. module: base_gengo
+#: code:addons/base_gengo/ir_translation.py:62
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:109
+#, python-format
+msgid "Gengo Authentication Error"
+msgstr "Gerška u autentifikaciji Gengo"
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_res_company
+msgid "Companies"
+msgstr "Kompanije"
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid ""
+"Note: If the translation state is 'In Progress', it means that the "
+"translation has to be approved to be uploaded in this system. You are "
+"supposed to do that directly by using your Gengo Account"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:82
+#, python-format
+msgid ""
+"Gengo connection failed with this message:\n"
+"``%s``"
+msgstr ""
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Gengo Parameters"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Send"
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Ultra"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_ir_translation
+msgid "ir.translation"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Gengo Translation Service"
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Pro"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Gengo Request Form"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: base_gengo
+#: help:res.company,gengo_comment:0
+msgid ""
+"This comment will be automatically be enclosed in each an every request sent "
+"to Gengo"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Cancel"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "or"
+msgstr ""
diff --git a/addons/base_import/controllers.py b/addons/base_import/controllers.py
index cb41d27f44a..afaf06e99e0 100644
--- a/addons/base_import/controllers.py
+++ b/addons/base_import/controllers.py
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
import simplejson
-from openerp.addons.web.http import Controller, route
+from openerp.http import Controller, route
class ImportController(Controller):
@route('/base_import/set_file')
diff --git a/addons/base_import/i18n/bs.po b/addons/base_import/i18n/bs.po
new file mode 100644
index 00000000000..23dfaba47fc
--- /dev/null
+++ b/addons/base_import/i18n/bs.po
@@ -0,0 +1,1471 @@
+# Bosnian 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-10-25 23:38+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-26 05:46+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:451
+#, python-format
+msgid "Get all possible values"
+msgstr "Dohvati sve moguće vrijednosti"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:71
+#, python-format
+msgid "Need to import data from an other application?"
+msgstr "Potreban je uvoz podataka iz druge aplikacije?"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:163
+#, python-format
+msgid ""
+"When you use External IDs, you can import CSV files \n"
+" with the \"External ID\" column to define the "
+"External \n"
+" ID of each record you import. Then, you will be able "
+"\n"
+" to make a reference to that record with columns like "
+"\n"
+" \"Field/External ID\". The following two CSV files "
+"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
+#: code:addons/base_import/static/src/xml/import.xml:271
+#, python-format
+msgid ""
+"How to export/import different tables from an SQL \n"
+" application to OpenERP?"
+msgstr ""
+"Kako izvesti/uvesti različite tabele iz SQL \n"
+" "
+"programa u OpenERP"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:331
+#, python-format
+msgid "Relation Fields"
+msgstr "Relacijska polja"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:142
+#, python-format
+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
+#: code:addons/base_import/static/src/xml/import.xml:155
+#, python-format
+msgid ""
+"Use \n"
+" Country/Database ID: You should rarely use this \n"
+" notation. It's mostly used by developers as it's "
+"main \n"
+" advantage is to never have conflicts (you may have \n"
+" several records with the same name, but they always "
+"\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
+#: code:addons/base_import/static/src/xml/import.xml:146
+#, python-format
+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
+#: code:addons/base_import/static/src/xml/import.xml:303
+#, python-format
+msgid "company_1,Bigees,True"
+msgstr ""
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_m2o
+msgid "base_import.tests.models.m2o"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:297
+#, python-format
+msgid ""
+"copy \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;"
+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 "CSV datoteka za Proizvođače, Trgovce"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:160
+#, python-format
+msgid ""
+"Use \n"
+" Country/External ID: Use External ID when you import "
+"\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
+#: code:addons/base_import/static/src/xml/import.xml:316
+#, python-format
+msgid "person_1,Fabien,False,company_1"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:80
+#, python-format
+msgid "XXX/External ID"
+msgstr "XXX/Vanjski ID"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:351
+#, python-format
+msgid "Don't Import"
+msgstr "Ne uvozi"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:24
+#, python-format
+msgid "Select the"
+msgstr "Odaberite"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:100
+#, python-format
+msgid ""
+"Note that if your CSV file \n"
+" has a tabulation as separator, OpenERP will not \n"
+" detect the separations. You will need to change the "
+"\n"
+" file format options in your spreadsheet application. "
+"\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 promjeniti format \n"
+" zapisa u vašem tabličnom "
+"kalkulatoru. \n"
+" Vidi sljedeće pitanje."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:141
+#, python-format
+msgid "Country: the name or code of the country"
+msgstr "Država: Naziv ili šifra države"
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_o2m_child
+msgid "base_import.tests.models.o2m.child"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:239
+#, python-format
+msgid "Can I import several times the same record?"
+msgstr "Mogu li isti zapis uvesti nekoliko puta?"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:15
+#, python-format
+msgid "Validate"
+msgstr "Ovjeri"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:55
+#, python-format
+msgid "Map your data to OpenERP"
+msgstr "Mapirajte vaše podatke na OpenERP"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:153
+#, python-format
+msgid ""
+"Use Country: This is \n"
+" 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
+#: code:addons/base_import/static/src/xml/import.xml:127
+#, python-format
+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
+#: code:addons/base_import/static/src/xml/import.xml:138
+#, python-format
+msgid ""
+"For example, to \n"
+" reference the country of a contact, OpenERP proposes "
+"\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 "Š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 "Vanjski ID , Naziv, Je kompanija"
+
+#. module: base_import
+#: field:base_import.tests.models.preview,somevalue:0
+msgid "Some Value"
+msgstr "Neka vrijednost"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:231
+#, python-format
+msgid ""
+"The following CSV file shows how to import \n"
+" suppliers and their respective contacts"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:109
+#, python-format
+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
+#: code:addons/base_import/static/src/xml/import.xml:320
+#, python-format
+msgid ""
+"As you can see in this file, Fabien and Laurence \n"
+" are working for the Bigees company (company_1) and \n"
+" Eric is working for the Organi company. The relation "
+"\n"
+" between persons and companies is done using the \n"
+" External ID of the companies. We had to prefix the \n"
+" \"External ID\" by the name of the table to avoid a "
+"\n"
+" conflict of ID between persons and companies "
+"(person_1 \n"
+" and company_1 who shared the same ID 1 in the "
+"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
+#: code:addons/base_import/static/src/xml/import.xml:308
+#, python-format
+msgid ""
+"copy (select \n"
+" '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"
+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 "Država : Belgija"
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_char_stillreadonly
+msgid "base_import.tests.models.char.stillreadonly"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:314
+#, python-format
+msgid ""
+"External ID,Name,Is a \n"
+" Company,Related Company/External ID"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:233
+#, python-format
+msgid "Suppliers and their respective contacts"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:179
+#, python-format
+msgid ""
+"If for example you have two product categories \n"
+" with the child name \"Sellable\" (ie. \"Misc. \n"
+" Products/Sellable\" & \"Other Products/Sellable\"),\n"
+" your validation is halted but you may still import \n"
+" your data. However, we recommend you do not import "
+"the \n"
+" data because they will all be linked to the first \n"
+" 'Sellable' category found in the Product Category "
+"list \n"
+" (\"Misc. Products/Sellable\"). We recommend you "
+"modify \n"
+" one of the duplicates' values or your product "
+"category \n"
+" hierarchy."
+msgstr ""
+"Ako na primjer imate dvije kategorije proizvoda \n"
+" "
+" sa podređenim nazivom \"za prodaju\" (npr. \"razno/proizvodi /za "
+"prodaju\"\n"
+" "
+" i \"ostali proizvodi/za prodaju\" vaša validacija je zadržana, ali još "
+"uvijek možete\n"
+" "
+" uvesti vaše podatke. Pazite, ne preporučamo vam da uvozite podatke jer\n"
+" "
+" će oni biti povezani na prvu kategoriju \"za prodaju\" pronađenu u "
+"popisu \n"
+" "
+" kategorija (\"razno/proizvodi/za prodaju\"). Preporučujemo Vam da "
+"izmjenite \n"
+" "
+" jednu od dvostrukih vrijednosti ili hijerarhiju vaših kategorija."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:306
+#, python-format
+msgid ""
+"To create the CSV file for persons, linked to \n"
+" companies, we will use the following SQL command in "
+"\n"
+" PSQL:"
+msgstr ""
+"Za stvaranje csv datoteke za osobe povezane sa \n"
+" "
+" kompanijama, koristimo ljedeću SQL naredbu u \n"
+" "
+" PSQL:"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:119
+#, python-format
+msgid ""
+"Microsoft Excel will allow \n"
+" you to modify only the encoding when saving \n"
+" (in 'Save As' dialog box > click 'Tools' dropdown \n"
+" list > Encoding tab)."
+msgstr ""
+"Microsoft Excel će Vam omogućiti \n"
+" da promjenite kodnu stranu "
+"jedino kod snimanja \n"
+" (U 'Sačuvaj kao' dijalogu > "
+"kliknite na 'Alati' padajući izbornik > \n"
+" odaberite 'Enkodiranje' "
+"karticu)"
+
+#. module: base_import
+#: field:base_import.tests.models.preview,othervalue:0
+msgid "Other Variable"
+msgstr "Druga varijabla"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:82
+#, python-format
+msgid ""
+"will also be used to update the original\n"
+" import if you need to re-import modified data\n"
+" 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
+#: code:addons/base_import/static/src/xml/import.xml:26
+#, python-format
+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
+#: code:addons/base_import/static/src/xml/import.xml:148
+#, python-format
+msgid ""
+"Country/Database \n"
+" ID: 21"
+msgstr "Država/Baza"
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_char
+msgid "base_import.tests.models.char"
+msgstr ""
+
+#. module: base_import
+#: help:base_import.import,file:0
+msgid "File to check and/or import, raw binary (not base64)"
+msgstr "Datoteke za provjeru i/ili uvoz, sirovi binarni ( 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 "Nabavne Narudžbe i njihove pripadne stavke"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:60
+#, python-format
+msgid ""
+"If the file contains\n"
+" the column names, OpenERP can try auto-detecting the\n"
+" 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
+#: code:addons/base_import/static/src/xml/import.xml:26
+#, python-format
+msgid ".CSV"
+msgstr ".CSV"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:360
+#, python-format
+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
+msgid "base_import.tests.models.m2o.required"
+msgstr ""
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_char_noreadonly
+msgid "base_import.tests.models.char.noreadonly"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:113
+#, python-format
+msgid ""
+"If you edit and save CSV files in speadsheet \n"
+" applications, your computer's regional settings will "
+"\n"
+" be applied for the separator and delimiter. \n"
+" We suggest you use OpenOffice or LibreOffice Calc \n"
+" as they will allow you to modify all three options \n"
+" (in 'Save As' dialog box > Check the box 'Edit "
+"filter \n"
+" settings' > Save)."
+msgstr ""
+"Ako uređujete i premate CSV datoteku u tabličnom kalkulatoru \n"
+" "
+" vaše regionalne postavke sa računala će biti\n"
+" "
+" primjenjene na separatore i odvajanja. \n"
+" "
+" Preporučamo da koristite OpenOffice ili LibreOffice kalkulator\n"
+" "
+" jer vam oni omogućuju izmjene sve tri postavke\n"
+" "
+" (u 'Spremi kao' dijalogu > označite 'uredi postavke filtera' \n"
+" "
+" > Spremi)"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:30
+#, python-format
+msgid "CSV File:"
+msgstr "CSV datoteka:"
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_preview
+msgid "base_import.tests.models.preview"
+msgstr ""
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_char_required
+msgid "base_import.tests.models.char.required"
+msgstr ""
+
+#. module: base_import
+#: code:addons/base_import/models.py:112
+#, python-format
+msgid "Database ID"
+msgstr "ID baze podataka"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:313
+#, python-format
+msgid "It will produce the following CSV file:"
+msgstr "Će napraviti sljedeću csv datoteku:"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:362
+#, python-format
+msgid "Here is the start of the file we could not import:"
+msgstr "Ovo je početni dio datoteke koju nismo uspjeli uvesti:"
+
+#. module: base_import
+#: field:base_import.import,file_type:0
+msgid "File Type"
+msgstr "Tip datoteke"
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_import
+msgid "base_import.import"
+msgstr ""
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_o2m
+msgid "base_import.tests.models.o2m"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:360
+#, python-format
+msgid "Import preview failed due to:"
+msgstr "Predpregled uvoza nije uspio zbog:"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:144
+#, python-format
+msgid ""
+"Country/External ID: the ID of this record \n"
+" referenced in another application (or the .XML file "
+"\n"
+" that imported it)"
+msgstr ""
+"Područje/Vanjski ID : ID ovog zapisa \n"
+" je "
+"referenciran u drugoj aplikaciji (ili XML datoteci \n"
+" iz "
+"koje je uvezen)"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:35
+#, python-format
+msgid "Reload data to check changes."
+msgstr "Ponovno učitaj podatke da provjerite promjene."
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_char_readonly
+msgid "base_import.tests.models.char.readonly"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:131
+#, python-format
+msgid ""
+"Some fields define a relationship with another \n"
+" object. For example, the country of a contact is a \n"
+" link to a record of the 'Country' object. When you \n"
+" want to import such fields, OpenERP will have to \n"
+" recreate links between the different records. \n"
+" To help you import such fields, OpenERP provides 3 \n"
+" mechanisms. You must use one and only one mechanism "
+"\n"
+" per field you want to import."
+msgstr ""
+"Neka polja definišu poveznice sa drugim \n"
+" "
+" objektima. na primjer, područje kontakta je veza \n"
+" "
+" na zapis objekta 'područje'. Kad želite uvesti ovakva polja, \n"
+" "
+" OpenERP će ponovo stvoriti veze između različitih zapisa.\n"
+" "
+" Da bi vam pomogao uvesti takva polja, OpenERP pruža 3 \n"
+" "
+" mehanizma. Možete koristiti jedan i samo jedan mehanizam \n"
+" "
+" po polju koje želite uvesti."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:201
+#, python-format
+msgid ""
+"The tags should be separated by a comma without any \n"
+" spacing. For example, if you want you customer to be "
+"\n"
+" lined to both tags 'Manufacturer' and 'Retailer' \n"
+" then you will encode it as follow \"Manufacturer,\n"
+" Retailer\" in the same column of your CSV file."
+msgstr ""
+"Podaci bi trebali biti odvojeni sa zarezima bez ikakvih \n"
+" "
+" razmaka. Na primjer. ako želite da Vaš partner bude \n"
+" "
+" označen kao 'kupac' i kao 'dobavljač' tada u vašem CSV-u \n"
+" "
+" unosite \"kupac, dobavljač\" u istoj koloni."
+
+#. module: base_import
+#: code:addons/base_import/models.py:264
+#, python-format
+msgid "You must configure at least one field to import"
+msgstr "Definirajte barem jedno polje za uvoz"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:304
+#, python-format
+msgid "company_2,Organi,True"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:58
+#, python-format
+msgid ""
+"The first row of the\n"
+" file contains the label of the column"
+msgstr ""
+"Prvi red u datoteci\n"
+" sadrži naslove kolona"
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_char_states
+msgid "base_import.tests.models.char.states"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:7
+#, python-format
+msgid "Import a CSV File"
+msgstr "Uvezi CSV datoteku"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:74
+#, python-format
+msgid "Quoting:"
+msgstr "Navođenje:"
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_m2o_required_related
+msgid "base_import.tests.models.m2o.required.related"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:293
+#, python-format
+msgid ")."
+msgstr ")."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:18
+#: code:addons/base_import/static/src/xml/import.xml:396
+#, python-format
+msgid "Import"
+msgstr "Uvoz"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:438
+#, python-format
+msgid "Here are the possible values:"
+msgstr "Evo mogućih vrijednosti:"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:82
+#, python-format
+msgid "The"
+msgstr "!"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:248
+#, python-format
+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 "dump takve PostgereSQL baze"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:301
+#, python-format
+msgid "This SQL command will create the following CSV file:"
+msgstr "Ova SQL naredba će kreirati CSV datoteku sadržaja:"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:228
+#, python-format
+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"
+" nabavne narudžbe sa "
+"njihovm pripadnim stavkama :"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:91
+#, python-format
+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
+#: field:base_import.tests.models.char.noreadonly,value:0
+#: field:base_import.tests.models.char.readonly,value:0
+#: field:base_import.tests.models.char.required,value:0
+#: field:base_import.tests.models.char.states,value:0
+#: field:base_import.tests.models.char.stillreadonly,value:0
+#: field:base_import.tests.models.m2o,value:0
+#: field:base_import.tests.models.m2o.related,value:0
+#: field:base_import.tests.models.m2o.required,value:0
+#: field:base_import.tests.models.m2o.required.related,value:0
+#: field:base_import.tests.models.o2m,value:0
+#: field:base_import.tests.models.o2m.child,parent_id:0
+#: field:base_import.tests.models.o2m.child,value:0
+msgid "unknown"
+msgstr "nepoznato"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:317
+#, python-format
+msgid "person_2,Laurence,False,company_1"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:149
+#, python-format
+msgid "Country/External ID: base.be"
+msgstr "Područje/Vanjski ID : base.be"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:288
+#, python-format
+msgid ""
+"As an example, suppose you have a SQL database \n"
+" with two tables you want to import: companies and \n"
+" persons. Each person belong to one company, so you \n"
+" will have to recreate the link between a person and "
+"\n"
+" the company he work for. (If you want to test this \n"
+" example, here is a"
+msgstr ""
+"Kao primjer, pretpostavimo da imate SQL bazu \n"
+" "
+" sa dvije tabele koje želite uvesti: kompanije i \n"
+" "
+" osobe. Svaka osoba pripada jednoj kompaniji, tako da \n"
+" "
+" ćete morati ponovo stvoriti poveznicu između osobe \n"
+" "
+" i kompanije za koju radi. (Ako želite probati ovaj primjer, ovdje je"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:427
+#, python-format
+msgid "(%d more)"
+msgstr "(%d više)"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:227
+#, python-format
+msgid "File for some Quotations"
+msgstr "Dadoteka sa nekim predračunima"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:72
+#, python-format
+msgid "Encoding:"
+msgstr "Šifriranje:"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:280
+#, python-format
+msgid ""
+"To manage relations between tables, \n"
+" you can use the \"External ID\" facilities of "
+"OpenERP. \n"
+" The \"External ID\" of a record is the unique "
+"identifier \n"
+" of this record in another application. This "
+"\"External \n"
+" ID\" must be unique accoss all the records of all \n"
+" objects, so it's a good practice to prefix this \n"
+" \"External ID\" with the name of the application or "
+"\n"
+" table. (like 'company_1', 'person_1' instead of '1')"
+msgstr ""
+"Za upravljanje relacijama između tabela, \n"
+" "
+"možete koristiti \"Vanjski ID\" mogućnosti OpenERP-a. \n"
+" "
+"\"Vanjski ID\" zapisa je jedinstveni identifikator ovog zapisa\n"
+" u "
+"drugoj aplikaciji. Ovaj \"Vanjski ID\" mora biti jedinstven u\n"
+" u "
+"svim zapisima i svim objektima, pa je uobičajena dobra praksa\n"
+" "
+"dati prefiks tom \"Vanjskom ID\" po nazivu aplikacije ili tablice. \n"
+" "
+"(npr. 'company_1', 'osoba_1' umjesto '1')"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:295
+#, python-format
+msgid ""
+"We will first export all companies and their \n"
+" \"External ID\". In PSQL, write the following "
+"command:"
+msgstr ""
+"Prvo ćemo izvesti sve kompanije i njihove \n"
+" "
+" \"Vanjske ID\". U PSQL, napišite sljedeću narebu:"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:212
+#, python-format
+msgid ""
+"How can I import a one2many relationship (e.g. several \n"
+" Order Lines of a Sales Order)?"
+msgstr ""
+"Kako da uvezem one2many relaciju (npr. nekoliko \n"
+" "
+" stavki prodajnog maloga)?"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:404
+#, python-format
+msgid "Everything seems valid."
+msgstr "Čini se da je sve u redu."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:188
+#, python-format
+msgid ""
+"However if you do not wish to change your \n"
+" configuration of product categories, we recommend "
+"you \n"
+" use make use of the external ID for this field \n"
+" 'Category'."
+msgstr ""
+"Međutim ukoliko ne želite mijenjati vaše \n"
+" "
+"postavke kategorija proizvoda, preporučamo vam da \n"
+" "
+"koristite vanjski ID za ovo polje \n"
+" "
+"'Kagtegorija'."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:421
+#, python-format
+msgid "at row %d"
+msgstr "u redu %d"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:197
+#, python-format
+msgid ""
+"How can I import a many2many relationship field \n"
+" (e.g. a customer that has multiple tags)?"
+msgstr ""
+"Kako mogu uvesti many2many relacijsko polje \n"
+" "
+" (npr, kupac koji ima višestruke oznake)?"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:80
+#, python-format
+msgid "XXX/ID"
+msgstr "XXX/ID"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:275
+#, python-format
+msgid ""
+"If you need to import data from different tables, \n"
+" you will have to recreate relations between records "
+"\n"
+" belonging to different tables. (e.g. if you import \n"
+" companies and persons, you will have to recreate the "
+"\n"
+" link between each person and the company they work \n"
+" for)."
+msgstr ""
+"Ako trebate uvesti podatke iz različitih tabela, \n"
+" "
+" morate ponovo kreirati relacije između zapisa \n"
+" "
+" koji pripadaju različitim tablicama. (npr. ako uvozite\n"
+" "
+" kompanije i osobe, morate ponovo kreirati poveznicu\n"
+" "
+" između između svake osobe i kompanije za koju osoba radi)."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:150
+#, python-format
+msgid ""
+"According to your need, you should use \n"
+" one of these 3 ways to reference records in "
+"relations. \n"
+" Here is when you should use one or the other, \n"
+" according to your need:"
+msgstr ""
+"Sukladno vašim potrebama trebali bi koristiti \n"
+" "
+"jedan od 3 načina referenciranja zapisa u relacijama.\n"
+" "
+"Ovdje trebate koristiti jedan raspoloživih prema, \n"
+" "
+"vašim potrebama :"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:319
+#, python-format
+msgid "person_4,Ramsy,False,company_3"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:261
+#, python-format
+msgid ""
+"If you do not set all fields in your CSV file, \n"
+" OpenERP will assign the default value for every non "
+"\n"
+" defined fields. But if you\n"
+" set fields with empty values in your CSV file, "
+"OpenERP \n"
+" 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
+#: code:addons/base_import/static/src/xml/import.xml:20
+#, python-format
+msgid "Cancel"
+msgstr "Otkaži"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:257
+#, python-format
+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
+#: code:addons/base_import/static/src/xml/import.xml:68
+#, python-format
+msgid "Frequently Asked Questions"
+msgstr "Često postavljana pitanja"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:305
+#, python-format
+msgid "company_3,Boum,True"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:249
+#, python-format
+msgid ""
+"This feature \n"
+" allows you to use the Import/Export tool of OpenERP "
+"to \n"
+" modify a batch of records in your favorite "
+"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 tabelarnom kalkulatoru"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:77
+#, python-format
+msgid ""
+"column in OpenERP. When you\n"
+" import an other record that links to the first\n"
+" one, use"
+msgstr ""
+"kolona u OpenERP-u. Kada \n"
+" uvozite drugi zapis "
+"koji se referencira na prvi\n"
+" koristite"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:242
+#, python-format
+msgid ""
+"If you import a file that contains one of the \n"
+" column \"External ID\" or \"Database ID\", records "
+"that \n"
+" have already been imported will be modified instead "
+"of \n"
+" being created. This is very usefull as it allows you "
+"\n"
+" to import several times the same CSV file while "
+"having \n"
+" made some changes in between two imports. OpenERP "
+"will \n"
+" take care of creating or modifying each record \n"
+" depending if it's new or not."
+msgstr ""
+"Ako uvozite datoteku koja sadži jednu od \n"
+" "
+"kolona \"Vanjski ID\" ili \"ID Baze\", zapisi koje ste već\n"
+" "
+"uvezli će biti izmjenjeni umjesto stvorenih. Ovo je \n"
+" "
+"veoma korisno i dozvoljava Vam da uvozite nekoliko puta \n"
+" "
+"istu CSV datoteku, upisujući neke izmjene između dva\n"
+" "
+"uvoza. OpenERP će se pobrinuti o stvaranju ili izmjeni \n"
+" "
+"svakog zapisa ovisno o tome da li je novi ili postojeći."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:169
+#, python-format
+msgid "CSV file for categories"
+msgstr "CSV datoteka za kategorije"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:330
+#, python-format
+msgid "Normal Fields"
+msgstr "Normalna polja"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:74
+#, python-format
+msgid ""
+"In order to re-create relationships between\n"
+" different records, you should use the unique\n"
+" 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
+#: code:addons/base_import/static/src/xml/import.xml:170
+#, python-format
+msgid "CSV file for Products"
+msgstr "CSV datoteka za proizvode"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:216
+#, python-format
+msgid ""
+"If you want to import sales order having several \n"
+" order lines; for each order line, you need to "
+"reserve \n"
+" a specific row in the CSV file. The first order line "
+"\n"
+" will be imported on the same row as the information "
+"\n"
+" relative to order. Any additional lines will need an "
+"\n"
+" addtional row that does not have any information in "
+"\n"
+" the fields relative to the order."
+msgstr ""
+"Ako želite uvesti prodajne narudžbe koji sadrže nekoliko \n"
+" "
+" stavki, za svaku stavku morate rezervirati\n"
+" "
+" njezin red u CSV datoteci. Prva stavka naloga \n"
+" "
+" će biti uvezena ako informacija vezana za taj \n"
+" "
+" nalog. Svaka dodatna stavka će trebati svoj\n"
+" "
+" dodatni red koji nema nikakve podatke u poljima\n"
+" "
+" vezanim za taj nalog."
+
+#. module: base_import
+#: model:ir.model,name:base_import.model_base_import_tests_models_m2o_related
+msgid "base_import.tests.models.m2o.related"
+msgstr ""
+
+#. module: base_import
+#: field:base_import.tests.models.preview,name:0
+msgid "Name"
+msgstr "Naziv"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:80
+#, python-format
+msgid "to the original unique identifier."
+msgstr "originalni jedinstveni identifikator"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:318
+#, python-format
+msgid "person_3,Eric,False,company_2"
+msgstr ""
+
+#. module: base_import
+#: field:base_import.import,res_model:0
+msgid "Model"
+msgstr "Model"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:77
+#: code:addons/base_import/static/src/xml/import.xml:82
+#, python-format
+msgid "ID"
+msgstr "ID"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:329
+#, python-format
+msgid ""
+"The two files produced are ready to be imported in \n"
+" OpenERP without any modifications. After having \n"
+" imported these two CSV files, you will have 4 "
+"contacts \n"
+" and 3 companies. (the firsts two contacts are linked "
+"\n"
+" to the first company). You must first import the \n"
+" companies and then the persons."
+msgstr ""
+"Dvije dobijene datoteke su spremne da budu uvežene u \n"
+" "
+" OpenERP bez ikakvih izmjena. Nakon uvoza\n"
+" "
+" ove dvije CSV datoteke, imaćete 4 kontakta \n"
+" "
+" i 3 organizacije. (prva dva kontakta su povezana na\n"
+" "
+" prvu kompaniju). Prvo morate uvesti kompanije\n"
+" "
+" a potom kontakte."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:95
+#, python-format
+msgid ""
+"By default the Import preview is set on commas as \n"
+" field separators and quotation marks as text \n"
+" delimiters. If your csv file does not have these \n"
+" settings, you can modify the File Format Options \n"
+" (displayed under the Browse CSV file bar after you \n"
+" select your file)."
+msgstr ""
+"Zadane postavke predpogleda za uvoz su zarezi \n"
+" "
+" za razdvajanje polja, i navodnici kao oznaka teksta. \n"
+" "
+" Ako vaša CSV datoteka nema ove postavke, možete ih \n"
+" "
+" izmjeniti u Opcijama postavki formata. (prikazanim u traci\n"
+" "
+" Potraži CSV datoteku nakon što odaberete jednu)."
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:73
+#, python-format
+msgid "Separator:"
+msgstr "Separator:"
+
+#. module: base_import
+#: field:base_import.import,file_name:0
+msgid "File Name"
+msgstr "Naziv Datoteke"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/models.py:80
+#: code:addons/base_import/models.py:111
+#: code:addons/base_import/static/src/xml/import.xml:77
+#: code:addons/base_import/static/src/xml/import.xml:82
+#, python-format
+msgid "External ID"
+msgstr "Vanjski ID"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:39
+#, python-format
+msgid "File Format Options…"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:423
+#, python-format
+msgid "between rows %d and %d"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:19
+#, python-format
+msgid "or"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:223
+#, python-format
+msgid ""
+"As an example, here is \n"
+" purchase.order_functional_error_line_cant_adpat.CSV "
+"\n"
+" file of some quotations you can import, based on "
+"demo \n"
+" data."
+msgstr ""
+
+#. module: base_import
+#: field:base_import.import,file:0
+msgid "File"
+msgstr ""
diff --git a/addons/board/controllers.py b/addons/board/controllers.py
index 3bdebe1ef26..50148977216 100644
--- a/addons/board/controllers.py
+++ b/addons/board/controllers.py
@@ -4,14 +4,12 @@ from xml.etree import ElementTree
import openerp
from openerp.addons.web.controllers.main import load_actions_from_ir_values
-class Board(openerp.addons.web.http.Controller):
- _cp_path = '/board'
-
- @openerp.addons.web.http.jsonrequest
- def add_to_dashboard(self, req, menu_id, action_id, context_to_save, domain, view_mode, name=''):
+class Board(openerp.http.Controller):
+ @openerp.http.route('/board/add_to_dashboard', type='json', auth='user')
+ def add_to_dashboard(self, menu_id, action_id, context_to_save, domain, view_mode, name=''):
+ req = openerp.http.request
# FIXME move this method to board.board model
- dashboard_action = load_actions_from_ir_values(
- req, 'action', 'tree_but_open', [('ir.ui.menu', menu_id)], False)
+ dashboard_action = load_actions_from_ir_values('action', 'tree_but_open', [('ir.ui.menu', menu_id)], False)
if dashboard_action:
action = dashboard_action[0][2]
diff --git a/addons/claim_from_delivery/i18n/bs.po b/addons/claim_from_delivery/i18n/bs.po
new file mode 100644
index 00000000000..d5a2d53d810
--- /dev/null
+++ b/addons/claim_from_delivery/i18n/bs.po
@@ -0,0 +1,33 @@
+# Bosnian 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-10-26 00:35+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: claim_from_delivery
+#: view:stock.picking.out:0
+msgid "Claims"
+msgstr "Prigovori"
+
+#. module: claim_from_delivery
+#: model:res.request.link,name:claim_from_delivery.request_link_claim_from_delivery
+msgid "Delivery Order"
+msgstr "Nalog isporuke"
+
+#. module: claim_from_delivery
+#: model:ir.actions.act_window,name:claim_from_delivery.action_claim_from_delivery
+msgid "Claim From Delivery"
+msgstr "Prigovori isporuke"
diff --git a/addons/contacts/i18n/bs.po b/addons/contacts/i18n/bs.po
new file mode 100644
index 00000000000..80a914816f4
--- /dev/null
+++ b/addons/contacts/i18n/bs.po
@@ -0,0 +1,46 @@
+# Bosnian 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-10-26 00:38+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:50+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: contacts
+#: model:ir.actions.act_window,help:contacts.action_contacts
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a contact in your address book.\n"
+" </p><p>\n"
+" OpenERP helps you easily track all activities related to\n"
+" a customer; discussions, history of business opportunities,\n"
+" documents, etc.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kliknite da dodate kontakt u adresar.\n"
+" </p><p>\n"
+" OpenERP Vam pomaže da na jednostavan način pratite sve "
+"aktivnosti \n"
+" vezane za kupca; diskusije, istoriju poslovnih prilika,\n"
+" dokumente, itd.\n"
+" </p>\n"
+" "
+
+#. module: contacts
+#: model:ir.actions.act_window,name:contacts.action_contacts
+#: model:ir.ui.menu,name:contacts.menu_contacts
+msgid "Contacts"
+msgstr "Kontakti"
diff --git a/addons/contacts/i18n/ja.po b/addons/contacts/i18n/ja.po
new file mode 100644
index 00000000000..20c79674f9b
--- /dev/null
+++ b/addons/contacts/i18n/ja.po
@@ -0,0 +1,37 @@
+# Japanese 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-10-22 03:49+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2013-10-23 04:34+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: contacts
+#: model:ir.actions.act_window,help:contacts.action_contacts
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a contact in your address book.\n"
+" </p><p>\n"
+" OpenERP helps you easily track all activities related to\n"
+" a customer; discussions, history of business opportunities,\n"
+" documents, etc.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: contacts
+#: model:ir.actions.act_window,name:contacts.action_contacts
+#: model:ir.ui.menu,name:contacts.menu_contacts
+msgid "Contacts"
+msgstr "連絡先"
diff --git a/addons/contacts/i18n/lv.po b/addons/contacts/i18n/lv.po
new file mode 100644
index 00000000000..2e1850ece7a
--- /dev/null
+++ b/addons/contacts/i18n/lv.po
@@ -0,0 +1,37 @@
+# Latvian 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-10-16 19:12+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\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: 2013-10-17 05:33+0000\n"
+"X-Generator: Launchpad (build 16799)\n"
+
+#. module: contacts
+#: model:ir.actions.act_window,help:contacts.action_contacts
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a contact in your address book.\n"
+" </p><p>\n"
+" OpenERP helps you easily track all activities related to\n"
+" a customer; discussions, history of business opportunities,\n"
+" documents, etc.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: contacts
+#: model:ir.actions.act_window,name:contacts.action_contacts
+#: model:ir.ui.menu,name:contacts.menu_contacts
+msgid "Contacts"
+msgstr "Kontakti"
diff --git a/addons/crm/base_partner_merge.py b/addons/crm/base_partner_merge.py
index 42e1ab7c7ec..c73b5fdf599 100644
--- a/addons/crm/base_partner_merge.py
+++ b/addons/crm/base_partner_merge.py
@@ -235,9 +235,12 @@ class MergePartnerAutomatic(osv.TransientModel):
record_ids = proxy.search(cr, openerp.SUPERUSER_ID, domain, context=context)
for record in proxy.browse(cr, openerp.SUPERUSER_ID, record_ids, context=context):
- proxy_model = self.pool[record.model]
-
- field_type = proxy_model._columns.get(record.name).__class__._type
+ try:
+ proxy_model = self.pool[record.model]
+ field_type = proxy_model._columns[record.name].__class__._type
+ except KeyError:
+ # unknown model or field => skip
+ continue
if field_type == 'function':
continue
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index bb080a95399..c580fd728e2 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -352,10 +352,14 @@ class crm_lead(format_address, osv.osv):
"""
if isinstance(cases, (int, long)):
cases = self.browse(cr, uid, cases, context=context)
+ if context is None:
+ context = {}
+ # check whether we should try to add a condition on type
+ avoid_add_type_term = any([term for term in domain if len(term) == 3 if term[0] == 'type'])
# collect all section_ids
section_ids = set()
types = ['both']
- if not cases:
+ if not cases and context.get('default_type'):
ctx_type = context.get('default_type')
types += [ctx_type]
if section_id:
@@ -373,7 +377,8 @@ class crm_lead(format_address, osv.osv):
search_domain.append(('section_ids', '=', section_id))
search_domain.append(('case_default', '=', True))
# AND with cases types
- search_domain.append(('type', 'in', types))
+ if not avoid_add_type_term:
+ search_domain.append(('type', 'in', types))
# AND with the domain in parameter
search_domain += list(domain)
# perform search, return the first found
@@ -607,10 +612,12 @@ class crm_lead(format_address, osv.osv):
opportunities = self.browse(cr, uid, ids, context=context)
sequenced_opps = []
+ # Sorting the leads/opps according to the confidence level of its stage, which relates to the probability of winning it
+ # The confidence level increases with the stage sequence, except when the stage probability is 0.0 (Lost cases)
+ # An Opportunity always has higher confidence level than a lead, unless its stage probability is 0.0
for opportunity in opportunities:
sequence = -1
- # TDE: was "if opportunity.stage_id and opportunity.stage_id.state != 'cancel':"
- if opportunity.probability == 0 and opportunity.stage_id and opportunity.stage_id.sequence != 1 and opportunity.stage_id.fold:
+ if opportunity.stage_id and (opportunity.stage_id.probability != 0 or opportunity.stage_id.sequence == 1):
sequence = opportunity.stage_id.sequence
sequenced_opps.append(((int(sequence != -1 and opportunity.type == 'opportunity'), sequence, -opportunity.id), opportunity))
diff --git a/addons/crm_claim/i18n/bs.po b/addons/crm_claim/i18n/bs.po
new file mode 100644
index 00000000000..cc08d021bef
--- /dev/null
+++ b/addons/crm_claim/i18n/bs.po
@@ -0,0 +1,923 @@
+# Bosnian 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-10-26 09:17+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: crm_claim
+#: help:crm.claim.stage,fold:0
+msgid ""
+"This stage is not visible, for example in status bar or kanban view, when "
+"there are no records in that stage to display."
+msgstr ""
+"Ova faza nije vidljiva, na primjer u statusnoj liniji ili kanban pogledu, "
+"kada nema zapisa u toj fazi za prikaz."
+
+#. module: crm_claim
+#: field:crm.claim.report,nbr:0
+msgid "# of Cases"
+msgstr "# Slučajeva"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Group By..."
+msgstr "Grupiši po..."
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Responsibilities"
+msgstr "Odgovornosti"
+
+#. module: crm_claim
+#: help:sale.config.settings,fetchmail_claim:0
+msgid ""
+"Allows you to configure your incoming mail server, and create claims from "
+"incoming emails."
+msgstr ""
+"Dozvoljava Vam da konfigurišete vaše dolazne mail servere, i da kreirate "
+"prigovore iz dolaznih poruka."
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim_stage
+msgid "Claim stages"
+msgstr "Faze prigovora"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "March"
+msgstr "Mart"
+
+#. module: crm_claim
+#: field:crm.claim.report,delay_close:0
+msgid "Delay to close"
+msgstr "Odgodi zatvaranje"
+
+#. module: crm_claim
+#: field:crm.claim,message_unread:0
+msgid "Unread Messages"
+msgstr "Nepročitane poruke"
+
+#. module: crm_claim
+#: field:crm.claim,resolution:0
+msgid "Resolution"
+msgstr "Rješenje"
+
+#. module: crm_claim
+#: field:crm.claim,company_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,company_id:0
+msgid "Company"
+msgstr "Kompanija"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,help:crm_claim.crm_claim_categ_action
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to create a claim category.\n"
+" </p><p>\n"
+" Create claim categories to better manage and classify your\n"
+" claims. Some example of claims can be: preventive action,\n"
+" corrective action.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kliknite da kreirate kategoriju prigovora.\n"
+" </p><p>\n"
+" Kreirajte kategorije prigovora da bi ste bolje upravljali i "
+"klasifikovali\n"
+" prigovore. Neki od primjera bi mogli biti: preventivne "
+"akcije,\n"
+" korektivne akcije.\n"
+" </p>\n"
+" "
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "#Claim"
+msgstr "#Prigovora"
+
+#. module: crm_claim
+#: field:crm.claim.stage,name:0
+msgid "Stage Name"
+msgstr "Naziv faze"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Salesperson"
+msgstr "Prodavač"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Highest"
+msgstr "Najviši"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,day:0
+msgid "Day"
+msgstr "Dan"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Description"
+msgstr "Opis prigovora"
+
+#. module: crm_claim
+#: field:crm.claim,message_ids:0
+msgid "Messages"
+msgstr "Poruke"
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim1
+msgid "Factual Claims"
+msgstr "Činjenični prigovori"
+
+#. module: crm_claim
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+#: selection:crm.claim.stage,state:0
+msgid "Cancelled"
+msgstr "Otkazano"
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim2
+msgid "Preventive"
+msgstr "Preventivno"
+
+#. module: crm_claim
+#: help:crm.claim,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "Ako je označeno, nove poruke će zahtjevati vašu pažnju."
+
+#. module: crm_claim
+#: field:crm.claim.report,date_closed:0
+msgid "Close Date"
+msgstr "Datum zatvaranja"
+
+#. module: crm_claim
+#: view:res.partner:0
+msgid "False"
+msgstr "Netačno"
+
+#. module: crm_claim
+#: field:crm.claim,ref:0
+msgid "Reference"
+msgstr "Referenca"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Date of claim"
+msgstr "Datum prigovora"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "# Mails"
+msgstr "# Mail-ova"
+
+#. module: crm_claim
+#: help:crm.claim,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 ""
+"Sadrži sažetak konverzacije (broj poruka,..). Ovaj sažetak je u html formatu "
+"da bi mogao biti ubačen u kanban pogled."
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,date_deadline:0
+#: field:crm.claim.report,date_deadline:0
+msgid "Deadline"
+msgstr "Rok izvršenja"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,partner_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,partner_id:0
+#: model:ir.model,name:crm_claim.model_res_partner
+msgid "Partner"
+msgstr "Partner"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Follow Up"
+msgstr "Praćenje"
+
+#. module: crm_claim
+#: selection:crm.claim,type_action:0
+#: selection:crm.claim.report,type_action:0
+msgid "Preventive Action"
+msgstr "Preventivna akcija"
+
+#. module: crm_claim
+#: field:crm.claim.report,section_id:0
+msgid "Section"
+msgstr "Odjel"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Root Causes"
+msgstr "Osnovni uzroci"
+
+#. module: crm_claim
+#: field:crm.claim,user_fault:0
+msgid "Trouble Responsible"
+msgstr "Odgovoran"
+
+#. module: crm_claim
+#: field:crm.claim,priority:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,priority:0
+msgid "Priority"
+msgstr "Prioritet"
+
+#. module: crm_claim
+#: field:crm.claim.stage,fold:0
+msgid "Hide in Views when Empty"
+msgstr "Ne prikazuj u pogledima kada je prazno"
+
+#. module: crm_claim
+#: field:crm.claim,message_follower_ids:0
+msgid "Followers"
+msgstr "Pratioci"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: model:crm.claim.stage,name:crm_claim.stage_claim1
+#: selection:crm.claim.stage,state:0
+msgid "New"
+msgstr "Novi"
+
+#. module: crm_claim
+#: field:crm.claim.stage,section_ids:0
+msgid "Sections"
+msgstr "Odjeljenja"
+
+#. module: crm_claim
+#: field:crm.claim,email_from:0
+msgid "Email"
+msgstr "E-Mail"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Lowest"
+msgstr "Najniži"
+
+#. module: crm_claim
+#: field:crm.claim,action_next:0
+msgid "Next Action"
+msgstr "Sljedeća akcija"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Sales Team(s)"
+msgstr "Moj(i) prodajni tim(ovi)"
+
+#. module: crm_claim
+#: field:crm.claim,create_date:0
+msgid "Creation Date"
+msgstr "Datum kreiranja"
+
+#. module: crm_claim
+#: field:crm.claim,name:0
+msgid "Claim Subject"
+msgstr "Naslov prigovora"
+
+#. module: crm_claim
+#: model:crm.claim.stage,name:crm_claim.stage_claim3
+msgid "Rejected"
+msgstr "Odbijeno"
+
+#. module: crm_claim
+#: field:crm.claim,date_action_next:0
+msgid "Next Action Date"
+msgstr "Datum sljedeće akcije"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,help:crm_claim.action_report_crm_claim
+msgid ""
+"Have a general overview of all claims processed in the system by sorting "
+"them with specific criteria."
+msgstr ""
+"Imajte opšti uvid u sve prigovore obrađene u sistemu sortirajući ih po "
+"specifičnim kriterijumima."
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "July"
+msgstr "Jul"
+
+#. module: crm_claim
+#: view:crm.claim.stage:0
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_stage_act
+msgid "Claim Stages"
+msgstr "Faze prigovora"
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claim-act
+msgid "Categories"
+msgstr "Kategorije"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,stage_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,stage_id:0
+msgid "Stage"
+msgstr "Faza"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Dates"
+msgstr "Datumi"
+
+#. module: crm_claim
+#: help:crm.claim,email_from:0
+msgid "Destination email for email gateway."
+msgstr "Odredištni email za mrežni prolaz email-a."
+
+#. module: crm_claim
+#: code:addons/crm_claim/crm_claim.py:194
+#, python-format
+msgid "No Subject"
+msgstr "Bez naslova"
+
+#. module: crm_claim
+#: help:crm.claim.stage,state:0
+msgid ""
+"The related status for the stage. The status of your document will "
+"automatically change regarding the selected stage. For example, if a stage "
+"is related to the status 'Close', when your document reaches this stage, it "
+"will be automatically have the 'closed' status."
+msgstr ""
+"Povezani status Faze. Status vašeg dokumenta će se automatski pormjeniti u "
+"odnosu na odabranu fazu. Na primjer, ako je povezano sa statusom 'Zatvoren', "
+"kada Vaš dokument dosegne ovaj status, automatski će imati 'Zatvoren' status."
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Settle"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_claim_stage_view
+msgid "Stages"
+msgstr "Faze"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.action_report_crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_report_crm_claim_tree
+msgid "Claims Analysis"
+msgstr "Analiza prigovora"
+
+#. module: crm_claim
+#: help:crm.claim.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr "Broj dana za zatvaranje slučaja"
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim_report
+msgid "CRM Claim Report"
+msgstr "Izvještaj o prigovorima CRM"
+
+#. module: crm_claim
+#: view:sale.config.settings:0
+msgid "Configure"
+msgstr "Konfiguriši"
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim1
+msgid "Corrective"
+msgstr "Korektivni"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "September"
+msgstr "Septembar"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "December"
+msgstr "Decembar"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,month:0
+msgid "Month"
+msgstr "Mjesec"
+
+#. module: crm_claim
+#: field:crm.claim,type_action:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,type_action:0
+msgid "Action Type"
+msgstr "Tip akcije"
+
+#. module: crm_claim
+#: field:crm.claim,write_date:0
+msgid "Update Date"
+msgstr "Datum ažuriranja"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Year of claim"
+msgstr "Godina prigovora"
+
+#. module: crm_claim
+#: help:crm.claim.stage,case_default:0
+msgid ""
+"If you check this field, this stage will be proposed by default on each "
+"sales team. It will not assign this stage to existing teams."
+msgstr ""
+"Ako označite ovo polje, faza će biti predložena svakom prodajnom timu. Ova "
+"faza neće biti dodijeljena postojećim timovima."
+
+#. module: crm_claim
+#: field:crm.claim,categ_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,categ_id:0
+msgid "Category"
+msgstr "Kategorija"
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim2
+msgid "Value Claims"
+msgstr "Prigovori na vrijednost"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Responsible User"
+msgstr "Odgovorni korisnik"
+
+#. module: crm_claim
+#: field:crm.claim,email_cc:0
+msgid "Watchers Emails"
+msgstr "Emailovi posmatrača"
+
+#. module: crm_claim
+#: help:crm.claim,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+"Ove adrese e-pošte će biti dodane u CC polja svih ulaznih i izlaznih e-"
+"poruka ovog zapisa prije slanja. Više adresa odvojite zarezom."
+
+#. module: crm_claim
+#: selection:crm.claim.report,state:0
+msgid "Draft"
+msgstr "U pripremi"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Low"
+msgstr "Niski"
+
+#. module: crm_claim
+#: field:crm.claim,date_closed:0
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+#: selection:crm.claim.stage,state:0
+msgid "Closed"
+msgstr "Zatvoreno"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reject"
+msgstr "Odbaci"
+
+#. module: crm_claim
+#: view:res.partner:0
+msgid "Partners Claim"
+msgstr "Prigovori partnera"
+
+#. module: crm_claim
+#: view:crm.claim.stage:0
+msgid "Claim Stage"
+msgstr "Faza prigovora"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+#: selection:crm.claim.stage,state:0
+msgid "Pending"
+msgstr "Na čekanju"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,state:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,state:0
+#: field:crm.claim.stage,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "August"
+msgstr "Avgust"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Normal"
+msgstr "Normalni"
+
+#. module: crm_claim
+#: help:crm.claim.stage,sequence:0
+msgid "Used to order stages. Lower is better."
+msgstr "Koristi za poredak faza. Niže je bolje."
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "June"
+msgstr "Jun"
+
+#. module: crm_claim
+#: field:crm.claim,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: crm_claim
+#: field:crm.claim,partner_phone:0
+msgid "Phone"
+msgstr "Telefon"
+
+#. module: crm_claim
+#: field:crm.claim,message_is_follower:0
+msgid "Is a Follower"
+msgstr "Je pratilac"
+
+#. module: crm_claim
+#: field:crm.claim.report,user_id:0
+msgid "User"
+msgstr "Korisnik"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,help:crm_claim.crm_claim_stage_act
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to setup a new stage in the processing of the claims. "
+"\n"
+" </p><p>\n"
+" You can create claim stages to categorize the status of "
+"every\n"
+" claim entered in the system. The stages define all the "
+"steps\n"
+" required for the resolution of a claim.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kliknite da postavite novu fazu u obradi prigovora. \n"
+" </p><p>\n"
+" Možete da kreirate faze prigovora da kategorizujete status \n"
+" svakog prigovora unesenog u sistem. Faze definišu sve "
+"korake\n"
+" potrebne za rješavanje prigovora.\n"
+" </p>\n"
+" "
+
+#. module: crm_claim
+#: help:crm.claim,state:0
+msgid ""
+"The status is set to 'Draft', when a case is created. "
+"If the case is in progress the status is set to 'Open'. "
+"When the case is over, the status is set to 'Done'. If "
+"the case needs to be reviewed then the status is set "
+"to 'Pending'."
+msgstr ""
+"Status je postavljen na 'U pripremi' kada je kreiran slučaj. Kada je slučaj "
+"u tijeku status se mijenja u 'Otvoreno', Kad je slujčaj završen, status "
+"prelazi u 'Gotovo'. Ukoliko slučaj treba biti ponovo pregledan, status "
+"prelazi u 'Na čekanju'"
+
+#. module: crm_claim
+#: field:crm.claim,active:0
+msgid "Active"
+msgstr "Aktivno"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "November"
+msgstr "Novembar"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Extended Filters..."
+msgstr "Napredni filteri..."
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure"
+msgstr "Zatvaranje"
+
+#. module: crm_claim
+#: help:crm.claim,section_id:0
+msgid ""
+"Responsible sales team. Define Responsible user and Email account for mail "
+"gateway."
+msgstr ""
+"Odgovoran prodajni tim. Definirajte odgovorne korisnike i e-mail račune za e-"
+"mail gateway."
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "October"
+msgstr "Oktobar"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "January"
+msgstr "Januar"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,date:0
+msgid "Claim Date"
+msgstr "Datum prigovora"
+
+#. module: crm_claim
+#: field:crm.claim,message_summary:0
+msgid "Summary"
+msgstr "Rezime"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
+msgid "Claim Categories"
+msgstr "Grupe prigovora"
+
+#. module: crm_claim
+#: field:crm.claim.stage,case_default:0
+msgid "Common to All Teams"
+msgstr "Zajedničko za sve timove"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+#: model:ir.actions.act_window,name:crm_claim.act_claim_partner
+#: model:ir.actions.act_window,name:crm_claim.crm_case_categ_claim0
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claims
+#: view:res.partner:0
+#: field:res.partner,claims_ids:0
+msgid "Claims"
+msgstr "Prigovori"
+
+#. module: crm_claim
+#: selection:crm.claim,type_action:0
+#: selection:crm.claim.report,type_action:0
+msgid "Corrective Action"
+msgstr "Korektivne akcije"
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim3
+msgid "Policy Claims"
+msgstr "Prigovori na politiku"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Date Closed"
+msgstr "Datum zatvaranja"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: model:ir.model,name:crm_claim.model_crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_config_claim
+msgid "Claim"
+msgstr "Prigovor"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Company"
+msgstr "Moja kompanija"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Done"
+msgstr "Gotovo"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Reporter"
+msgstr "Prigovor prijavio"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Cancel"
+msgstr "Otkaži"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Open"
+msgstr "Otvori"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "New Claims"
+msgstr "Novi prigovori"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: selection:crm.claim,state:0
+#: model:crm.claim.stage,name:crm_claim.stage_claim5
+#: selection:crm.claim.stage,state:0
+msgid "In Progress"
+msgstr "U Toku"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,user_id:0
+msgid "Responsible"
+msgstr "Odgovoran"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Search"
+msgstr "Traži"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Unassigned Claims"
+msgstr "Neraspoređeni prigovori"
+
+#. module: crm_claim
+#: field:crm.claim.report,delay_expected:0
+msgid "Overpassed Deadline"
+msgstr "Prekoračen rok"
+
+#. module: crm_claim
+#: field:crm.claim,cause:0
+msgid "Root Cause"
+msgstr "Glavni uzrok"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim/Action Description"
+msgstr "Opis prigovora/akcije"
+
+#. module: crm_claim
+#: field:crm.claim,description:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Search Claims"
+msgstr "Traži prigovore"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "May"
+msgstr "Maj"
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Type"
+msgstr "Tip"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Resolution Actions"
+msgstr "Akcije rješavanja"
+
+#. module: crm_claim
+#: field:crm.claim.stage,case_refused:0
+msgid "Refused stage"
+msgstr "Odbijena faza"
+
+#. module: crm_claim
+#: model:ir.actions.act_window,help:crm_claim.crm_case_categ_claim0
+msgid ""
+"Record and track your customers' claims. Claims may be linked to a sales "
+"order or a lot. You can send emails with attachments and keep the full "
+"history for a claim (emails sent, intervention type and so on). Claims may "
+"automatically be linked to an email address using the mail gateway module."
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,email:0
+msgid "# Emails"
+msgstr "#E-mail-ova"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Month of claim"
+msgstr "Mjesec prigovora"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "February"
+msgstr "Februar"
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_sale_config_settings
+msgid "sale.config.settings"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,name:0
+msgid "Year"
+msgstr "Godina"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My company"
+msgstr "Moja kompanija"
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "April"
+msgstr "April"
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Case(s)"
+msgstr "Moji slučajevi"
+
+#. module: crm_claim
+#: model:crm.claim.stage,name:crm_claim.stage_claim2
+msgid "Settled"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,message_ids:0
+msgid "Messages and communication history"
+msgstr "Poruke i istorija komunikacije"
+
+#. module: crm_claim
+#: field:sale.config.settings,fetchmail_claim:0
+msgid "Create claims from incoming mails"
+msgstr "Kreiraj prigovore iz dolaznih emailova"
+
+#. module: crm_claim
+#: field:crm.claim.stage,sequence:0
+msgid "Sequence"
+msgstr "Sekvenca"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Actions"
+msgstr "Akcije"
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "High"
+msgstr "Visoki"
+
+#. module: crm_claim
+#: field:crm.claim,section_id:0
+#: view:crm.claim.report:0
+msgid "Sales Team"
+msgstr "Prodajni tim"
+
+#. module: crm_claim
+#: field:crm.claim.report,create_date:0
+msgid "Create Date"
+msgstr "Datum kreiranja"
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "In Progress Claims"
+msgstr "Prigovori u toku"
+
+#. module: crm_claim
+#: help:crm.claim.stage,section_ids:0
+msgid ""
+"Link between stages and sales teams. When set, this limitate the current "
+"stage to the selected sales teams."
+msgstr ""
+"Poveznica između faza i prodajnih timova. Kada je postavljeno, ograničava "
+"trenutnu fazu odabranim timovima."
+
+#. module: crm_claim
+#: help:crm.claim.stage,case_refused:0
+msgid "Refused stages are specific stages for done."
+msgstr "Odbijene faze su specifična faza za gotove."
diff --git a/addons/crm_helpdesk/i18n/bs.po b/addons/crm_helpdesk/i18n/bs.po
new file mode 100644
index 00000000000..44689809727
--- /dev/null
+++ b/addons/crm_helpdesk/i18n/bs.po
@@ -0,0 +1,742 @@
+# Bosnian 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-10-26 09:40+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_close:0
+msgid "Delay to Close"
+msgstr "Odgoda do zatvaranja"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,nbr:0
+msgid "# of Cases"
+msgstr "# Slučajeva"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: view:crm.helpdesk.report:0
+msgid "Group By..."
+msgstr "Grupiši po..."
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_from:0
+msgid "Destination email for email gateway"
+msgstr "Odredišni e-mail za e-mail gateway"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "March"
+msgstr "Mart"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_unread:0
+msgid "Unread Messages"
+msgstr "Nepročitane poruke"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,company_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,company_id:0
+msgid "Company"
+msgstr "Kompanija"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_cc:0
+msgid "Watchers Emails"
+msgstr "Emailovi posmatrača"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Salesperson"
+msgstr "Prodavač"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Highest"
+msgstr "Najviši"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,day:0
+msgid "Day"
+msgstr "Dan"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Date of helpdesk requests"
+msgstr "Datum helpdesk zahtjeva"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Notes"
+msgstr "Zabilješke"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_ids:0
+msgid "Messages"
+msgstr "Poruke"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My company"
+msgstr "Moja kompanija"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Cancelled"
+msgstr "Otkazano"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "Ako je označeno, nove poruke će zahtjevati vašu pažnju."
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.action_report_crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_report_crm_helpdesks_tree
+msgid "Helpdesk Analysis"
+msgstr "Analiza helpdeska"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,date_closed:0
+msgid "Close Date"
+msgstr "Datum zatvaranja"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref:0
+msgid "Reference"
+msgstr "Referenca"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_next:0
+msgid "Next Action"
+msgstr "Sljedeća akcija"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,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 ""
+"Sadrži sažetak konverzacije (broj poruka,..). Ovaj sažetak je u html formatu "
+"da bi mogao biti ubačen u kanban pogled."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Supports"
+msgstr "Podrške helpdeska"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Extra Info"
+msgstr "Dodatne informacije"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,partner_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,partner_id:0
+msgid "Partner"
+msgstr "Partner"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Estimates"
+msgstr "Procjene"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,section_id:0
+msgid "Section"
+msgstr "Odjel"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,priority:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,priority:0
+msgid "Priority"
+msgstr "Prioritet"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_follower_ids:0
+msgid "Followers"
+msgstr "Pratioci"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+msgid "New"
+msgstr "Novi"
+
+#. module: crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
+msgid "Helpdesk report after Sales Services"
+msgstr "Izvještaj heldeska nakon usluga prodaje"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_from:0
+msgid "Email"
+msgstr "E-Mail"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,channel_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,channel_id:0
+msgid "Channel"
+msgstr "Kanal"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Lowest"
+msgstr "Najniži"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "# Mails"
+msgstr "# Mail-ova"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My Sales Team(s)"
+msgstr "Moj(i) prodajni tim(ovi)"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,create_date:0
+#: field:crm.helpdesk.report,create_date:0
+msgid "Creation Date"
+msgstr "Datum kreiranja"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reset to Draft"
+msgstr "Vrati u pripremu"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date_deadline:0
+#: field:crm.helpdesk.report,date_deadline:0
+msgid "Deadline"
+msgstr "Rok izvršenja"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "July"
+msgstr "Jul"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
+msgid "Helpdesk Categories"
+msgstr "Kategorije korisničke podrške"
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
+msgid "Categories"
+msgstr "Kategorije"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "New Helpdesk Request"
+msgstr "Novi heldesk zahtjev"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Dates"
+msgstr "Datumi"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Month of helpdesk requests"
+msgstr "Mjesec helpdesk zahtjeva"
+
+#. module: crm_helpdesk
+#: code:addons/crm_helpdesk/crm_helpdesk.py:104
+#, python-format
+msgid "No Subject"
+msgstr "Bez naslova"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid ""
+"Helpdesk requests that are assigned to me or to one of the sale teams I "
+"manage"
+msgstr ""
+"Heldesk zahtjevi dodijeljeni meni ili jednom od prodajnih timova koje ja "
+"vodim"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "#Helpdesk"
+msgstr "# Helpdesk"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "All pending Helpdesk Request"
+msgstr "Svi heldesk zahtjevi na čekanju"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Year of helpdesk requests"
+msgstr "Godina heldesk zahtjeva"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "September"
+msgstr "Septembar"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "December"
+msgstr "Decembar"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,month:0
+msgid "Month"
+msgstr "Mjesec"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,write_date:0
+msgid "Update Date"
+msgstr "Datum ažuriranja"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Query"
+msgstr "Upit"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref2:0
+msgid "Reference 2"
+msgstr "Referenca 2"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,categ_id:0
+#: field:crm.helpdesk.report,categ_id:0
+msgid "Category"
+msgstr "Kategorija"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Responsible User"
+msgstr "Odgovorni korisnik"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support"
+msgstr "Helpdesk podrška"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_cost:0
+#: field:crm.helpdesk.report,planned_cost:0
+msgid "Planned Costs"
+msgstr "Planirani troškovi"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,channel_id:0
+msgid "Communication channel."
+msgstr "Kanal komunikacije"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_cc:0
+msgid ""
+"These email addresses will be added to the CC field of all inbound and "
+"outbound emails for this record before being sent. Separate multiple email "
+"addresses with a comma"
+msgstr ""
+"Ove adrese e-pošte će biti dodane u CC polja svih ulaznih i izlaznih e-"
+"poruka ovog zapisa prije slanja. Više adresa odvojite zarezom."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Search Helpdesk"
+msgstr "Pretraži helpdesk"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,state:0
+msgid "Draft"
+msgstr "U pripremi"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Low"
+msgstr "Niski"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_closed:0
+#: selection:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Closed"
+msgstr "Zatvoreno"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Pending"
+msgstr "Na čekanju"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "August"
+msgstr "Avgust"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Normal"
+msgstr "Normalni"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Escalate"
+msgstr "Eskaliraj"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "June"
+msgstr "Jun"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,id:0
+msgid "ID"
+msgstr "ID"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,help:crm_helpdesk.crm_case_helpdesk_act111
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to create a new request. \n"
+" </p><p>\n"
+" Helpdesk and Support allow you to track your interventions.\n"
+" </p><p>\n"
+" Use the OpenERP Issues system to manage your support\n"
+" activities. Issues can be connected to the email gateway: "
+"new\n"
+" emails may create issues, each of them automatically gets "
+"the\n"
+" history of the conversation with the customer.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kliknite za kreiranje novog zahtjeva. \n"
+" </p><p>\n"
+" Helpdesk i Podrška Vam dozvoljava da pratite svoje "
+"intervencije.\n"
+" </p><p>\n"
+" Koristite OpenERP sistem Prijave da upravljate vašim "
+"aktivnostima\n"
+" podrške. Prijave mogu biti spojene na mrežni prolaz email-a: "
+"novi\n"
+" emailovi mogu kreirati prijave, svaki od njih automatski "
+"dobiva\n"
+" istoriju konverzacije sa kupcem.\n"
+" </p>\n"
+" "
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_revenue:0
+msgid "Planned Revenue"
+msgstr "Planirani prihod"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_is_follower:0
+msgid "Is a Follower"
+msgstr "Je pratilac"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,user_id:0
+msgid "User"
+msgstr "Korisnik"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,active:0
+msgid "Active"
+msgstr "Aktivno"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "November"
+msgstr "Novembar"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Extended Filters..."
+msgstr "Napredni filteri..."
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
+msgid "Helpdesk Requests"
+msgstr "Helpdesk zahtjevi"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,section_id:0
+msgid ""
+"Responsible sales team. Define Responsible user and Email account for mail "
+"gateway."
+msgstr ""
+"Odgovoran prodajni tim. Definirajte odgovorne korisnike i e-mail račune za e-"
+"mail gateway."
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "October"
+msgstr "Oktobar"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "January"
+msgstr "Januar"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_summary:0
+msgid "Summary"
+msgstr "Rezime"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date:0
+msgid "Date"
+msgstr "Datum"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Misc"
+msgstr "Razno"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My Company"
+msgstr "Moja kompanija"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "General"
+msgstr "Opšte"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "References"
+msgstr "Reference"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication"
+msgstr "Komunikacija"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Close"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: view:crm.helpdesk.report:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Open"
+msgstr "Otvori"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support Tree"
+msgstr "Drvo Helpdesk podrške"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+msgid "In Progress"
+msgstr "U Toku"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Categorization"
+msgstr "Kategorizacija"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_config_helpdesk
+msgid "Helpdesk"
+msgstr "Helpdesk"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,user_id:0
+msgid "Responsible"
+msgstr "Odgovoran"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Search"
+msgstr "Traži"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_expected:0
+msgid "Overpassed Deadline"
+msgstr "Prekoračen rok"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,description:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "May"
+msgstr "Maj"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,probability:0
+msgid "Probability (%)"
+msgstr "Vjerovatnoća (%)"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,email:0
+msgid "# Emails"
+msgstr "#E-mail-ova"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,help:crm_helpdesk.action_report_crm_helpdesk
+msgid ""
+"Have a general overview of all support requests by sorting them with "
+"specific criteria such as the processing time, number of requests answered, "
+"emails sent and costs."
+msgstr ""
+"Općeniti pregled svih zahtjeva za podrškom tako da ih sortirate po određenim "
+"kriterijima kao što su vrijeme obrade, broj odgovorenih zahtjeva, poslanih e-"
+"mailova i troškova."
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "February"
+msgstr "Februar"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,name:0
+msgid "Name"
+msgstr "Naziv"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,name:0
+msgid "Year"
+msgstr "Godina"
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
+msgid "Helpdesk and Support"
+msgstr "Helpdesk i Podrška"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "April"
+msgstr "April"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My Case(s)"
+msgstr "Moji slučajevi"
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,state:0
+msgid ""
+"The status is set to 'Draft', when a case is created. "
+" \n"
+"If the case is in progress the status is set to 'Open'. "
+" \n"
+"When the case is over, the status is set to 'Done'. "
+" \n"
+"If the case needs to be reviewed then the status is set to 'Pending'."
+msgstr ""
+"Status je postavljen na 'U toku', kada je slučaj kreiran. "
+" \n"
+"Ako je slučaj u toku status je 'U toku'. \n"
+"Kada je slučaj završen status je 'Gotovo'. "
+"\n"
+"Ako slučaj treba da se provjeri status je 'Na čekanju'."
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,message_ids:0
+msgid "Messages and communication history"
+msgstr "Poruke i istorija komunikacije"
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,help:crm_helpdesk.crm_helpdesk_categ_action
+msgid ""
+"Create and manage helpdesk categories to better manage and classify your "
+"support requests."
+msgstr ""
+"Kreirajte i upravljajte kategorijama helpdesk-a da bolje upravljate i "
+"klasifikujete svoje zahtjeve podrške."
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Request Date"
+msgstr "Datum zahtjeva"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Open Helpdesk Request"
+msgstr "Otvori Helpdesk zahtjev"
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "High"
+msgstr "Visoki"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,section_id:0
+#: view:crm.helpdesk.report:0
+msgid "Sales Team"
+msgstr "Prodajni tim"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_last:0
+msgid "Last Action"
+msgstr "Posljednja akcija"
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Assigned to Me or My Sales Team(s)"
+msgstr "Dodjeljeno meni ili mojem prodajnom timu (timovima)"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,duration:0
+msgid "Duration"
+msgstr "Trajanje"
diff --git a/addons/crm_partner_assign/crm_lead_view.xml b/addons/crm_partner_assign/crm_lead_view.xml
index 3b253b1c3d4..7550396e886 100644
--- a/addons/crm_partner_assign/crm_lead_view.xml
+++ b/addons/crm_partner_assign/crm_lead_view.xml
@@ -8,7 +8,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//notebook/page[@string='Lead']" position="after">
- <page string="Assigned Partner" groups="base.group_sale_manager">
+ <page string="Assigned Partner" groups="base.group_sale_salesman">
<group name="partner_assign_group">
<group string="Partner Assignation" col="3" colspan="1">
<label for="partner_latitude" string="Geolocation" />
@@ -78,7 +78,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//notebook/page[@string='Extra Info']" position="after">
- <page string="Assigned Partner" groups="base.group_sale_manager">
+ <page string="Assigned Partner" groups="base.group_sale_salesman">
<group name="partner_assign_group">
<group string="Partner Assignation" col="3">
<label for="partner_latitude" string="Geolocation" />
diff --git a/addons/crm_partner_assign/crm_portal_view.xml b/addons/crm_partner_assign/crm_portal_view.xml
index ab4cf8868db..2b2b61c8425 100644
--- a/addons/crm_partner_assign/crm_portal_view.xml
+++ b/addons/crm_partner_assign/crm_portal_view.xml
@@ -59,6 +59,10 @@
<field name="description" nolabel="1" colspan="2"/>
</group>
</sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread" readonly="1"/>
+ </div>
</form>
</field>
</record>
@@ -145,6 +149,10 @@
</page>
</notebook>
</sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers"/>
+ <field name="message_ids" widget="mail_thread" readonly="1"/>
+ </div>
</form>
</field>
</record>
diff --git a/addons/crm_partner_assign/i18n/bs.po b/addons/crm_partner_assign/i18n/bs.po
new file mode 100644
index 00000000000..7b19ce353a9
--- /dev/null
+++ b/addons/crm_partner_assign/i18n/bs.po
@@ -0,0 +1,943 @@
+# Bosnian 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-10-26 09:53+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,delay_close:0
+msgid "Delay to Close"
+msgstr "Odgoda do zatvaranja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,author_id:0
+msgid "Author"
+msgstr "Autor"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,planned_revenue:0
+msgid "Planned Revenue"
+msgstr "Planirani prihod"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,type:0
+msgid ""
+"Message type: email for email message, notification for system message, "
+"comment for other messages such as user replies"
+msgstr ""
+"Vrsta poruke: e-mail za e-mail poruke, obavjest za sistemske poruke, "
+"komentari za druge poruke poput korisničkih odgovora"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,nbr:0
+msgid "# of Cases"
+msgstr "# Slučajeva"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+msgid "Group By..."
+msgstr "Grupiši po..."
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,body:0
+msgid "Automatically sanitized HTML contents"
+msgstr "Automatski počišćen HTML sadržaj"
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Forward"
+msgstr "Naprijed"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Geo Localize"
+msgstr "Geo lokalizacija"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,starred:0
+msgid "Starred"
+msgstr "Sa zvjezdicom"
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "Body"
+msgstr "Tijelo poruke"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,email_from:0
+msgid ""
+"Email address of the sender. This field is set when no matching partner is "
+"found for incoming emails."
+msgstr ""
+"Email adresa pošiljatelja. Ovo se polje postavlja kada nije pronađen partner "
+"za dolazni email."
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Date Partnership"
+msgstr "Datum partnerstva"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,type:0
+msgid "Lead"
+msgstr "Potencijal"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Delay to close"
+msgstr "Odgodi zatvaranje"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,history_mode:0
+msgid "Whole Story"
+msgstr "Cijela priča"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,company_id:0
+msgid "Company"
+msgstr "Kompanija"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,notification_ids:0
+msgid "Notifications"
+msgstr "Obavještenja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,date_assign:0
+msgid "Partner Date"
+msgstr "Partnerov datum"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+#: view:res.partner:0
+msgid "Salesperson"
+msgstr "Prodavač"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Highest"
+msgstr "Najviši"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,day:0
+msgid "Day"
+msgstr "Dan"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,message_id:0
+msgid "Message unique identifier"
+msgstr "Jedinstveni identifikator poruke"
+
+#. module: crm_partner_assign
+#: field:res.partner,date_review_next:0
+msgid "Next Partner Review"
+msgstr "Sljedeća ocjena partnera"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,history_mode:0
+msgid "Latest email"
+msgstr "Zadnji email"
+
+#. module: crm_partner_assign
+#: field:crm.lead,partner_latitude:0
+#: field:res.partner,partner_latitude:0
+msgid "Geo Latitude"
+msgstr "Geo širina"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+msgid "Cancelled"
+msgstr "Otkazano"
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Geo Assignation"
+msgstr "Geo dodjeljivanje"
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
+msgid "Email composition wizard"
+msgstr "Čarobnjak sastavljanja email-a"
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,turnover:0
+msgid "Turnover"
+msgstr "Obrtana zarada"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,date_closed:0
+msgid "Close Date"
+msgstr "Datum zatvaranja"
+
+#. module: crm_partner_assign
+#: help:res.partner,partner_weight:0
+msgid ""
+"Gives the probability to assign a lead to this partner. (0 means no "
+"assignation.)"
+msgstr ""
+"Vjerojatnost za dodjeljivanje prilike ovom partneru (0 = nema dodjeljivanja)"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Partner Activation"
+msgstr "Aktivacija partnera"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,type:0
+msgid "System notification"
+msgstr "Sistemska obavijest"
+
+#. module: crm_partner_assign
+#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
+#, python-format
+msgid "Lead forward"
+msgstr "Prosljeđivanje potencijalnog kontakta"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,probability:0
+msgid "Avg Probability"
+msgstr "Prosječna vjerojatnost"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Previous"
+msgstr "Prethodni"
+
+#. module: crm_partner_assign
+#: code:addons/crm_partner_assign/partner_geo_assign.py:36
+#, python-format
+msgid "Network error"
+msgstr "Greška u mreži"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,email_from:0
+msgid "From"
+msgstr "Od"
+
+#. module: crm_partner_assign
+#: model:ir.actions.act_window,name:crm_partner_assign.res_partner_grade_action
+#: model:ir.ui.menu,name:crm_partner_assign.menu_res_partner_grade_action
+#: view:res.partner.grade:0
+msgid "Partner Grade"
+msgstr "Ocjena partnera"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+msgid "Section"
+msgstr "Odjel"
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "Send"
+msgstr "Pošalji"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Next"
+msgstr "Sljedeći"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,priority:0
+msgid "Priority"
+msgstr "Prioritet"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,delay_expected:0
+msgid "Overpassed Deadline"
+msgstr "Prekoračen rok"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,type:0
+#: field:crm.lead.report.assign,type:0
+msgid "Type"
+msgstr "Tip"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,type:0
+msgid "Email"
+msgstr "E-Mail"
+
+#. module: crm_partner_assign
+#: help:crm.lead,partner_assigned_id:0
+msgid "Partner this case has been forwarded/assigned to."
+msgstr "Partner kojemu je ovaj slučaj proslijeđen/dodjeljen."
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Lowest"
+msgstr "Najniži"
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Date Invoice"
+msgstr "Datum fakture"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,template_id:0
+msgid "Template"
+msgstr "Predložak"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Assign Date"
+msgstr "Dodjeljeni datum"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Leads Analysis"
+msgstr "Analiza CRM potencijala"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,creation_date:0
+msgid "Creation Date"
+msgstr "Datum kreiranja"
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_res_partner_activation
+msgid "res.partner.activation"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,parent_id:0
+msgid "Parent Message"
+msgstr "Nadređena poruka"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,res_id:0
+msgid "Related Document ID"
+msgstr "Povezani ID dokumenta"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+msgid "Pending"
+msgstr "Na čekanju"
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Partner Assignation"
+msgstr "Pridruživanje partnera"
+
+#. module: crm_partner_assign
+#: help:crm.lead.report.assign,type:0
+msgid "Type is used to separate Leads and Opportunities"
+msgstr "Tip se koristi za razlikovanje potencijala od prilika."
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "July"
+msgstr "Jul"
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Date Review"
+msgstr "Datum provjere"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,stage_id:0
+msgid "Stage"
+msgstr "Faza"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,to_read:0
+msgid "To read"
+msgstr "Za čitanje"
+
+#. module: crm_partner_assign
+#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
+#, python-format
+msgid "Fwd"
+msgstr "Proslijedi"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Geo Localization"
+msgstr "Geo lokalizacija"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+msgid "Opportunities Assignment Analysis"
+msgstr "Analiza dodjeljivanja prilika"
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+#: view:res.partner:0
+msgid "Cancel"
+msgstr "Otkaži"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,history_mode:0
+msgid "Send history"
+msgstr "Istorija slanja"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Close"
+msgstr "Zatvoreno"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "March"
+msgstr "Mart"
+
+#. module: crm_partner_assign
+#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_opportunity_assign
+#: model:ir.ui.menu,name:crm_partner_assign.menu_report_crm_opportunities_assign_tree
+msgid "Opp. Assignment Analysis"
+msgstr "Analiza dodjeljivanja prilika"
+
+#. module: crm_partner_assign
+#: help:crm.lead.report.assign,delay_close:0
+msgid "Number of Days to close the case"
+msgstr "Broj dana za zatvaranje slučaja"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,notified_partner_ids:0
+msgid ""
+"Partners that have a notification pushing this message in their mailboxes"
+msgstr "Poruka za partnere koji imaju obavjesti."
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,type:0
+msgid "Comment"
+msgstr "Komentar"
+
+#. module: crm_partner_assign
+#: field:res.partner,partner_weight:0
+msgid "Weight"
+msgstr "Težina"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "April"
+msgstr "April"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,grade_id:0
+#: view:crm.partner.report.assign:0
+#: field:crm.partner.report.assign,grade_id:0
+msgid "Grade"
+msgstr "Ocjena"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "December"
+msgstr "Decembar"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,vote_user_ids:0
+msgid "Users that voted for this message"
+msgstr "Korisnici koji su glasali za ovu poruku"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,month:0
+msgid "Month"
+msgstr "Mjesec"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,opening_date:0
+msgid "Opening Date"
+msgstr "Datum otvaranja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,child_ids:0
+msgid "Child Messages"
+msgstr "Podređene poruke"
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,date_review:0
+#: field:res.partner,date_review:0
+msgid "Latest Partner Review"
+msgstr "Posljednja ocjena partnera"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,subject:0
+msgid "Subject"
+msgstr "Tema"
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "or"
+msgstr "ili"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,body:0
+msgid "Contents"
+msgstr "Sadržaji"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,vote_user_ids:0
+msgid "Votes"
+msgstr "Glasovi"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "#Opportunities"
+msgstr "# Prilika"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,starred:0
+msgid "Current user has a starred notification linked to this message"
+msgstr "Trenutni korisnik ima označenu obavijest povezanu sa ovom porukom."
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,date_partnership:0
+#: field:res.partner,date_partnership:0
+msgid "Partnership Date"
+msgstr "Datum partnerstva"
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Team"
+msgstr "Tim"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+msgid "Draft"
+msgstr "U pripremi"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Low"
+msgstr "Niski"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: selection:crm.lead.report.assign,state:0
+msgid "Closed"
+msgstr "Zatvoreno"
+
+#. module: crm_partner_assign
+#: model:ir.actions.act_window,name:crm_partner_assign.action_crm_send_mass_forward
+msgid "Mass forward to partner"
+msgstr "Masovno prosljeđivanje partneru"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+#: field:res.partner,opportunity_assigned_ids:0
+msgid "Assigned Opportunities"
+msgstr "Dodjeljene prilike"
+
+#. module: crm_partner_assign
+#: field:crm.lead,date_assign:0
+msgid "Assignation Date"
+msgstr "Datum dodjeljivanja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,probability_max:0
+msgid "Max Probability"
+msgstr "Najveća vjerovatnost"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "August"
+msgstr "Avgust"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,record_name:0
+msgid "Name get of the related document."
+msgstr "Ime prezueto iz povezanog dokumenta"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Normal"
+msgstr "Normalni"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Escalate"
+msgstr "Eskaliraj"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "June"
+msgstr "Jun"
+
+#. module: crm_partner_assign
+#: help:crm.lead.report.assign,delay_open:0
+msgid "Number of Days to open the case"
+msgstr "Broj danas za otvaranje slučaja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,delay_open:0
+msgid "Delay to Open"
+msgstr "Odgoda do otvaranja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,user_id:0
+#: field:crm.partner.report.assign,user_id:0
+msgid "User"
+msgstr "Korisnik"
+
+#. module: crm_partner_assign
+#: field:res.partner.grade,active:0
+msgid "Active"
+msgstr "Aktivan"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "November"
+msgstr "Novembar"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Extended Filters..."
+msgstr "Napredni filteri..."
+
+#. module: crm_partner_assign
+#: field:crm.lead,partner_longitude:0
+#: field:res.partner,partner_longitude:0
+msgid "Geo Longitude"
+msgstr "Geo dužina"
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,opp:0
+msgid "# of Opportunity"
+msgstr "# Prilika"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Lead Assign"
+msgstr "Dodjeljivanje potencijala"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "October"
+msgstr "Oktobar"
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Assignation"
+msgstr "Dodjeljivanje"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "January"
+msgstr "Januar"
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "Send Mail"
+msgstr "Pošalji email"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,date:0
+msgid "Date"
+msgstr "Datum"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Planned Revenues"
+msgstr "Planirani prihodi"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Partner Review"
+msgstr "Ocjena partnera"
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,period_id:0
+msgid "Invoice Period"
+msgstr "Razdoblje računa"
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_res_partner_grade
+msgid "res.partner.grade"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,message_id:0
+msgid "Message-Id"
+msgstr "Id-poruke"
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+#: field:crm.lead.forward.to.partner,attachment_ids:0
+msgid "Attachments"
+msgstr "Prilozi"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,record_name:0
+msgid "Message Record Name"
+msgstr "Naziv zapisa poruke"
+
+#. module: crm_partner_assign
+#: field:res.partner.activation,sequence:0
+#: field:res.partner.grade,sequence:0
+msgid "Sequence"
+msgstr "Sekvenca"
+
+#. module: crm_partner_assign
+#: code:addons/crm_partner_assign/partner_geo_assign.py:37
+#, python-format
+msgid ""
+"Cannot contact geolocation servers. Please make sure that your internet "
+"connection is up and running (%s)."
+msgstr ""
+"Niej moguće uspostaviti vezu sa geolokacijskim serverima. Provjerite "
+"internet vezu (%s)."
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "September"
+msgstr "Septembar"
+
+#. module: crm_partner_assign
+#: field:res.partner.grade,name:0
+msgid "Grade Name"
+msgstr "Naziv ocjene"
+
+#. module: crm_partner_assign
+#: help:crm.lead,date_assign:0
+msgid "Last date this case was forwarded/assigned to a partner"
+msgstr "Posljednji datum prosljeđivanja/dodjeljivanja ovog slučaja partneru."
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+#: view:res.partner:0
+msgid "Open"
+msgstr "Otvoren"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,subtype_id:0
+msgid "Subtype"
+msgstr "Podtip"
+
+#. module: crm_partner_assign
+#: field:res.partner,date_localization:0
+msgid "Geo Localization Date"
+msgstr "Datum Geo lokalizacije"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Current"
+msgstr "Trenutni"
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_lead
+msgid "Lead/Opportunity"
+msgstr "Potencijal/Prilika"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,notified_partner_ids:0
+msgid "Notified partners"
+msgstr "Obaviješteni partneri"
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+#: model:ir.actions.act_window,name:crm_partner_assign.crm_lead_forward_to_partner_act
+msgid "Forward to Partner"
+msgstr "Proslijedi partneru"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,section_id:0
+#: field:crm.partner.report.assign,section_id:0
+msgid "Sales Team"
+msgstr "Prodajni tim"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "May"
+msgstr "Maj"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,probable_revenue:0
+msgid "Probable Revenue"
+msgstr "Očekivani Prihod"
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+#: field:crm.partner.report.assign,activation:0
+#: view:res.partner:0
+#: field:res.partner,activation:0
+#: view:res.partner.activation:0
+msgid "Activation"
+msgstr "Aktivacija"
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+#: field:crm.lead,partner_assigned_id:0
+msgid "Assigned Partner"
+msgstr "Dodjeljeni partner"
+
+#. module: crm_partner_assign
+#: field:res.partner,grade_id:0
+msgid "Partner Level"
+msgstr "Razina partnera"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,to_read:0
+msgid "Current user has an unread notification linked to this message"
+msgstr ""
+"Trenutni korisnik ima nepročitane obavijesti povezane sa ovom porukom"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,type:0
+msgid "Opportunity"
+msgstr "Prilika"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,partner_id:0
+msgid "Customer"
+msgstr "Kupac"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "February"
+msgstr "Februar"
+
+#. module: crm_partner_assign
+#: field:res.partner.activation,name:0
+msgid "Name"
+msgstr "Naziv"
+
+#. module: crm_partner_assign
+#: model:ir.actions.act_window,name:crm_partner_assign.res_partner_activation_act
+#: model:ir.ui.menu,name:crm_partner_assign.res_partner_activation_config_mi
+msgid "Partner Activations"
+msgstr "Aktivacije partnera"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,country_id:0
+#: view:crm.partner.report.assign:0
+#: field:crm.partner.report.assign,country_id:0
+msgid "Country"
+msgstr "Država"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,year:0
+msgid "Year"
+msgstr "Godina"
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Convert to Opportunity"
+msgstr "Pretvori u priliku"
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Geo Assign"
+msgstr "Geo dodjeljivanje"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Delay to open"
+msgstr "Odgoda otvaranja"
+
+#. module: crm_partner_assign
+#: model:ir.actions.act_window,name:crm_partner_assign.action_report_crm_partner_assign
+#: model:ir.ui.menu,name:crm_partner_assign.menu_report_crm_partner_assign_tree
+msgid "Partnership Analysis"
+msgstr "Analiza partnerstva"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,notification_ids:0
+msgid ""
+"Technical field holding the message notifications. Use notified_partner_ids "
+"to access notified partners."
+msgstr ""
+"Tehničko polje koje sadrži obavijesti poruke. Koristite notified_partner_ids "
+"za pristupanje obaviještenim partnerima."
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Partner assigned Analysis"
+msgstr "Analiza dodjeljena partneru"
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_lead_report_assign
+msgid "CRM Lead Report"
+msgstr "Izvještaj CRM prilika"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,composition_mode:0
+msgid "Composition mode"
+msgstr "Mod sastavljanja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,model:0
+msgid "Related Document Model"
+msgstr "Povezani model dokumenta"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,history_mode:0
+msgid "Case Information"
+msgstr "Potvrda slučaja"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,author_id:0
+msgid ""
+"Author of the message. If not set, email_from may hold an email address that "
+"did not match any partner."
+msgstr ""
+"Autor poruke. Ako nije postavljen, email_from može sadržavati adresu e-pošte "
+"koja nije odgovarala niti jednom partneru."
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign
+msgid "CRM Partner Report"
+msgstr "CRM Partner izvještaj"
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "High"
+msgstr "Visoki"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,partner_ids:0
+msgid "Additional contacts"
+msgstr "Dodatni kontakti"
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,parent_id:0
+msgid "Initial thread message."
+msgstr "Inicijalna nit poruke"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,create_date:0
+msgid "Create Date"
+msgstr "Datum kreiranja"
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,filter_id:0
+msgid "Filters"
+msgstr "Filteri"
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,partner_assigned_id:0
+#: view:crm.partner.report.assign:0
+#: field:crm.partner.report.assign,partner_id:0
+#: model:ir.model,name:crm_partner_assign.model_res_partner
+msgid "Partner"
+msgstr "Partner"
diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml
index 59ca4c51da3..c298832a2e6 100644
--- a/addons/crm_partner_assign/res_partner_view.xml
+++ b/addons/crm_partner_assign/res_partner_view.xml
@@ -139,6 +139,7 @@
<field name="create_date"/>
<field name="name"/>
<field name="type"/>
+ <field name="probability" invisible="1"/>
<field name="stage_id"/>
<field name="section_id"
invisible="context.get('invisible_section', True)"
@@ -147,7 +148,8 @@
<button string="Convert to Opportunity"
name="convert_opportunity"
type="object"
- attrs="{'invisible':[('type','=','opportunity'),('probability', '=', 100)]}" />
+ icon="gtk-convert"
+ attrs="{'invisible':[('type','=','opportunity')]}" />
<button name="case_escalate" string="Escalate"
type="object"
icon="gtk-go-up"
diff --git a/addons/crm_todo/i18n/bs.po b/addons/crm_todo/i18n/bs.po
new file mode 100644
index 00000000000..55bb0678945
--- /dev/null
+++ b/addons/crm_todo/i18n/bs.po
@@ -0,0 +1,85 @@
+# Bosnian 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-10-26 09:15+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: crm_todo
+#: model:ir.model,name:crm_todo.model_project_task
+msgid "Task"
+msgstr "Zadatak"
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Timebox"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Lead"
+msgstr "Potencijal"
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "For cancelling the task"
+msgstr "Za otkazivanje zadatka"
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Next"
+msgstr "Slijedeće"
+
+#. module: crm_todo
+#: model:ir.actions.act_window,name:crm_todo.crm_todo_action
+#: model:ir.ui.menu,name:crm_todo.menu_crm_todo
+msgid "My Tasks"
+msgstr "Moji zadaci"
+
+#. module: crm_todo
+#: view:crm.lead:0
+#: field:crm.lead,task_ids:0
+msgid "Tasks"
+msgstr "Zadaci"
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Done"
+msgstr "Gotovo"
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Cancel"
+msgstr "Otkaži"
+
+#. module: crm_todo
+#: model:ir.model,name:crm_todo.model_crm_lead
+msgid "Lead/Opportunity"
+msgstr "Potencijal/Prilika"
+
+#. module: crm_todo
+#: field:project.task,lead_id:0
+msgid "Lead / Opportunity"
+msgstr "Potencijal / Prilika"
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "For changing to done state"
+msgstr "Za promjenu u status: Gotovo"
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Previous"
+msgstr "Prethodno"
diff --git a/addons/decimal_precision/i18n/bs.po b/addons/decimal_precision/i18n/bs.po
new file mode 100644
index 00000000000..fc676957d42
--- /dev/null
+++ b/addons/decimal_precision/i18n/bs.po
@@ -0,0 +1,49 @@
+# Bosnian 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-10-26 10:53+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: decimal_precision
+#: field:decimal.precision,digits:0
+msgid "Digits"
+msgstr "Znamenki"
+
+#. module: decimal_precision
+#: model:ir.actions.act_window,name:decimal_precision.action_decimal_precision_form
+#: model:ir.ui.menu,name:decimal_precision.menu_decimal_precision_form
+msgid "Decimal Accuracy"
+msgstr "Tačnost decimala"
+
+#. module: decimal_precision
+#: field:decimal.precision,name:0
+msgid "Usage"
+msgstr "Upotreba"
+
+#. module: decimal_precision
+#: sql_constraint:decimal.precision:0
+msgid "Only one value can be defined for each given usage!"
+msgstr "Samo jedna vrijednost može biti definirana za svaku upotrebu"
+
+#. module: decimal_precision
+#: view:decimal.precision:0
+msgid "Decimal Precision"
+msgstr "Decimalna preciznost"
+
+#. module: decimal_precision
+#: model:ir.model,name:decimal_precision.model_decimal_precision
+msgid "decimal.precision"
+msgstr ""
diff --git a/addons/edi/controllers/main.py b/addons/edi/controllers/main.py
index 7e27428b63b..149c0f62ff6 100644
--- a/addons/edi/controllers/main.py
+++ b/addons/edi/controllers/main.py
@@ -1,15 +1,15 @@
import simplejson
import urllib
-import openerp.addons.web.http as openerpweb
+import openerp
import openerp.addons.web.controllers.main as webmain
-class EDI(openerpweb.Controller):
- # http://hostname:8069/edi/import_url?url=URIEncodedURL
- _cp_path = "/edi"
+class EDI(openerp.http.Controller):
- @openerpweb.httprequest
- def import_url(self, req, url):
+ @openerp.http.route('/edi/import_url', type='http', auth='none')
+ def import_url(self, url):
+ # http://hostname:8069/edi/import_url?url=URIEncodedURL
+ req = openerp.http.request
modules = webmain.module_boot(req) + ['edi']
modules_str = ','.join(modules)
modules_json = simplejson.dumps(modules)
@@ -26,8 +26,9 @@ class EDI(openerpweb.Controller):
'init': 's.edi.edi_import("%s");' % safe_url,
}
- @openerpweb.jsonrequest
- def import_edi_url(self, req, url):
+ @openerp.http.route('/edi/import_edi_url', type='http', auth='none')
+ def import_edi_url(self, url):
+ req = openerp.http.request
result = req.session.proxy('edi').import_edi_url(req.session._db, req.session._uid, req.session._password, url)
if len(result) == 1:
return {"action": webmain.clean_action(req, result[0][2])}
diff --git a/addons/edi/edi_service.py b/addons/edi/edi_service.py
index d5dc5c09f74..dd95196ef4f 100644
--- a/addons/edi/edi_service.py
+++ b/addons/edi/edi_service.py
@@ -53,7 +53,6 @@ def exp_import_edi_document(db_name, uid, passwd, edi_document, context=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)
-@openerp.http.rpc('edi')
def dispatch(method, params):
if method in ['import_edi_document', 'import_edi_url']:
(db, uid, passwd) = params[0:3]
@@ -63,4 +62,6 @@ def dispatch(method, params):
fn = globals()['exp_' + method]
return fn(*params)
+openerp.service.wsgi_server.register_rpc_endpoint('edi', dispatch)
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/google_base_account/google_base_account.py b/addons/google_base_account/google_base_account.py
index 50fbf233ce6..4f85db0582b 100644
--- a/addons/google_base_account/google_base_account.py
+++ b/addons/google_base_account/google_base_account.py
@@ -32,23 +32,22 @@ class google_service(osv.osv_memory):
_name = 'google.service'
def generate_refresh_token(self, cr, uid, service, authorization_code, context=None):
- if authorization_code:
- ir_config = self.pool['ir.config_parameter']
- client_id = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service)
- client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_secret' % service)
- redirect_uri = ir_config.get_param(cr, SUPERUSER_ID, 'google_redirect_uri')
+ ir_config = self.pool['ir.config_parameter']
+ client_id = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_id' % service)
+ client_secret = ir_config.get_param(cr, SUPERUSER_ID, 'google_%s_client_secret' % service)
+ redirect_uri = ir_config.get_param(cr, SUPERUSER_ID, 'google_redirect_uri')
- #Get the Refresh Token From Google And store it in ir.config_parameter
- headers = {"Content-type": "application/x-www-form-urlencoded"}
- data = dict(code=authorization_code, client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri, grant_type="authorization_code")
- data = urllib.urlencode(data)
- try:
- req = urllib2.Request("https://accounts.google.com/o/oauth2/token", data, headers)
- content = urllib2.urlopen(req).read()
- except urllib2.HTTPError:
- raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired"), context=context)
+ #Get the Refresh Token From Google And store it in ir.config_parameter
+ headers = {"Content-type": "application/x-www-form-urlencoded"}
+ data = dict(code=authorization_code, client_id=client_id, client_secret=client_secret, redirect_uri=redirect_uri, grant_type="authorization_code")
+ data = urllib.urlencode(data)
+ try:
+ req = urllib2.Request("https://accounts.google.com/o/oauth2/token", data, headers)
+ content = urllib2.urlopen(req).read()
+ except urllib2.HTTPError:
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _("Something went wrong during your token generation. Maybe your Authorization Code is invalid or already expired"), context=context)
- content = simplejson.loads(content)
+ content = simplejson.loads(content)
return content.get('refresh_token')
def _get_google_token_uri(self, cr, uid, service, scope, context=None):
diff --git a/addons/google_drive/google_drive.py b/addons/google_drive/google_drive.py
index 8bc487ada7c..df0d6a3c5af 100644
--- a/addons/google_drive/google_drive.py
+++ b/addons/google_drive/google_drive.py
@@ -31,7 +31,7 @@ import re
_logger = logging.getLogger(__name__)
-class config(osv.osv):
+class config(osv.Model):
_name = 'google.drive.config'
_description = "Google Drive templates config"
@@ -116,8 +116,26 @@ class config(osv.osv):
attach_pool = self.pool.get("ir.attachment")
attach_vals = {'res_model': res_model, 'name': name_gdocs, 'res_id': res_id, 'type': 'url', 'url': content['alternateLink']}
res['id'] = attach_pool.create(cr, uid, attach_vals)
+ # Commit in order to attach the document to the current object instance, even if the permissions has not been written.
+ cr.commit()
res['url'] = content['alternateLink']
- return res
+ key = self._get_key_from_url(res['url'])
+ request_url = "https://www.googleapis.com/drive/v2/files/%s/permissions?emailMessage=This+is+a+drive+file+created+by+OpenERP&sendNotificationEmails=false&access_token=%s" % (key, access_token)
+ data = {'role': 'reader', 'type': 'anyone', 'value': '', 'withLink': True}
+ try:
+ req = urllib2.Request(request_url, json.dumps(data), headers)
+ urllib2.urlopen(req)
+ except urllib2.HTTPError:
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _("The permission 'reader' for 'anyone with the link' has not been written on the document"), context=context)
+ user = self.pool['res.users'].browse(cr, uid, uid, context=context)
+ if user.email:
+ data = {'role': 'writer', 'type': 'user', 'value': user.email}
+ try:
+ req = urllib2.Request(request_url, json.dumps(data), headers)
+ urllib2.urlopen(req)
+ except urllib2.HTTPError:
+ raise self.pool.get('res.config.settings').get_config_warning(cr, _("The permission 'writer' for your email '%s' has not been written on the document. Is this email a valid Google Account ?" % user.email), context=context)
+ return res
def get_google_drive_config(self, cr, uid, res_model, res_id, context=None):
'''
@@ -151,12 +169,18 @@ class config(osv.osv):
configs.append({'id': config.id, 'name': config.name})
return configs
+ def _get_key_from_url(self, url):
+ mo = re.search("(key=|/d/)([A-Za-z0-9-_]+)", url)
+ if mo:
+ return mo.group(2)
+ return None
+
def _resource_get(self, cr, uid, ids, name, arg, context=None):
result = {}
for data in self.browse(cr, uid, ids, context):
- mo = re.search("(key=|/d/)([A-Za-z0-9-_]+)", data.google_drive_template_url)
+ mo = self._get_key_from_url(data.google_drive_template_url)
if mo:
- result[data.id] = mo.group(2)
+ result[data.id] = mo
else:
raise osv.except_osv(_('Incorrect URL!'), _("Please enter a valid Google Document URL."))
return result
@@ -205,12 +229,10 @@ class config(osv.osv):
]
def get_google_scope(self):
- return 'https://www.googleapis.com/auth/drive'
-
-config()
+ return 'https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/drive.file'
-class base_config_settings(osv.osv):
+class base_config_settings(osv.TransientModel):
_inherit = "base.config.settings"
_columns = {
@@ -219,9 +241,14 @@ class base_config_settings(osv.osv):
}
_defaults = {
'google_drive_uri': lambda s, cr, uid, c: s.pool['google.service']._get_google_token_uri(cr, uid, 'drive', scope=s.pool['google.drive.config'].get_google_scope(), context=c),
+ 'google_drive_authorization_code': lambda s, cr, uid, c: s.pool['ir.config_parameter'].get_param(cr, uid, 'google_drive_authorization_code', context=c),
}
def set_google_authorization_code(self, cr, uid, ids, context=None):
+ ir_config_param = self.pool['ir.config_parameter']
config = self.browse(cr, uid, ids[0], context)
- refresh_token = self.pool['google.service'].generate_refresh_token(cr, uid, 'drive', config.google_drive_authorization_code, context=context)
- self.pool['ir.config_parameter'].set_param(cr, uid, 'google_drive_refresh_token', refresh_token)
+ auth_code = config.google_drive_authorization_code
+ if auth_code and auth_code != ir_config_param.get_param(cr, uid, 'google_drive_authorization_code', context=context):
+ refresh_token = self.pool['google.service'].generate_refresh_token(cr, uid, 'drive', config.google_drive_authorization_code, context=context)
+ ir_config_param.set_param(cr, uid, 'google_drive_authorization_code', auth_code)
+ ir_config_param.set_param(cr, uid, 'google_drive_refresh_token', refresh_token)
diff --git a/addons/google_spreadsheet/google_spreadsheet.py b/addons/google_spreadsheet/google_spreadsheet.py
index 693300904d0..a724e3c425e 100644
--- a/addons/google_spreadsheet/google_spreadsheet.py
+++ b/addons/google_spreadsheet/google_spreadsheet.py
@@ -60,7 +60,7 @@ class config(osv.osv):
user = self.pool['res.users'].read(cr, uid, uid, ['login', 'password'], context=context)
username = user['login']
password = user['password']
- if self.pool['ir.module.module'].search_count(cr, SUPERUSER_ID, ['&', ('name', '=', 'auth_crypt'), ('state', '=', 'installed')]) == 1:
+ if not password:
config_formula = '=oe_settings("%s";"%s")' % (url, dbname)
else:
config_formula = '=oe_settings("%s";"%s";"%s";"%s")' % (url, dbname, username, password)
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index 99fbe6db1f5..4922a53bcbf 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -135,6 +135,7 @@
<record model="ir.ui.view" id="hr_kanban_view_employees">
<field name="name">HR - Employess Kanban</field>
<field name="model">hr.employee</field>
+ <field name="priority">10</field>
<field name="arch" type="xml">
<kanban>
<field name="last_login"/>
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index 008c711a1f0..1af2fc00193 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -26,6 +26,7 @@ import math
import time
from operator import attrgetter
+from openerp.exceptions import Warning
from openerp import tools
from openerp.osv import fields, osv
from openerp.tools.translate import _
@@ -149,6 +150,8 @@ class hr_holidays(osv.osv):
return False
return True
+ _check_holidays = lambda self, cr, uid, ids, context=None: self.check_holidays(cr, uid, ids, context=context)
+
_columns = {
'name': fields.char('Description', size=64),
'state': fields.selection([('draft', 'To Submit'), ('cancel', 'Cancelled'),('confirm', 'To Approve'), ('refuse', 'Refused'), ('validate1', 'Second Approval'), ('validate', 'Approved')],
@@ -188,6 +191,7 @@ class hr_holidays(osv.osv):
}
_constraints = [
(_check_date, 'You can not have 2 leaves that overlaps on same day!', ['date_from','date_to']),
+ (_check_holidays, 'The number of remaining leaves is not sufficient for this leave type', ['state','number_of_days_temp'])
]
_sql_constraints = [
@@ -314,7 +318,6 @@ class hr_holidays(osv.osv):
context = {}
context = dict(context, mail_create_nolog=True)
hol_id = super(hr_holidays, self).create(cr, uid, values, context=context)
- self.check_holidays(cr, uid, [hol_id], context=context)
return hol_id
def holidays_reset(self, cr, uid, ids, context=None):
@@ -333,7 +336,6 @@ class hr_holidays(osv.osv):
return True
def holidays_first_validate(self, cr, uid, ids, context=None):
- self.check_holidays(cr, uid, ids, context=context)
obj_emp = self.pool.get('hr.employee')
ids2 = obj_emp.search(cr, uid, [('user_id', '=', uid)])
manager = ids2 and ids2[0] or False
@@ -341,7 +343,6 @@ class hr_holidays(osv.osv):
return self.write(cr, uid, ids, {'state':'validate1', 'manager_id': manager})
def holidays_validate(self, cr, uid, ids, context=None):
- self.check_holidays(cr, uid, ids, context=context)
obj_emp = self.pool.get('hr.employee')
ids2 = obj_emp.search(cr, uid, [('user_id', '=', uid)])
manager = ids2 and ids2[0] or False
@@ -393,7 +394,6 @@ class hr_holidays(osv.osv):
return True
def holidays_confirm(self, cr, uid, ids, context=None):
- self.check_holidays(cr, uid, ids, context=context)
for record in self.browse(cr, uid, ids, context=context):
if record.employee_id and record.employee_id.parent_id and record.employee_id.parent_id.user_id:
self.message_subscribe_users(cr, uid, [record.id], user_ids=[record.employee_id.parent_id.user_id.id], context=context)
@@ -429,12 +429,10 @@ class hr_holidays(osv.osv):
if record.holiday_type != 'employee' or record.type != 'remove' or not record.employee_id or record.holiday_status_id.limit:
continue
leave_days = self.pool.get('hr.holidays.status').get_days(cr, uid, [record.holiday_status_id.id], record.employee_id.id, context=context)[record.holiday_status_id.id]
- if leave_days['remaining_leaves'] < record.number_of_days_temp:
- raise osv.except_osv(_('Warning!'),
- _('There are not enough remaining days available in %s for employee %s.') % (record.holiday_status_id.name, record.employee_id.name))
- if leave_days['virtual_remaining_leaves'] < record.number_of_days_temp:
- raise osv.except_osv(_('Warning!'),
- _('Other pending requests already book too much days in %s for employee %s.') % (record.holiday_status_id.name, record.employee_id.name))
+ if leave_days['remaining_leaves'] < 0 or leave_days['virtual_remaining_leaves'] < 0:
+ # Raising a warning gives a more user-friendly feedback than the default constraint error
+ raise Warning(_('The number of remaining leaves is not sufficient for this leave type.\n'
+ 'Please verify also the leaves waiting for validation.'))
return True
# -----------------------------
diff --git a/addons/hr_holidays/hr_holidays_workflow.xml b/addons/hr_holidays/hr_holidays_workflow.xml
index 14cbc48138a..b563dbf68d4 100644
--- a/addons/hr_holidays/hr_holidays_workflow.xml
+++ b/addons/hr_holidays/hr_holidays_workflow.xml
@@ -23,6 +23,7 @@
<record model="workflow.activity" id="act_draft"> <!-- draft -->
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">draft</field>
+ <field name="flow_start" eval="False"/>
<field name="kind">function</field>
<field name="action">holidays_reset()</field>
</record>
@@ -30,7 +31,7 @@
<record model="workflow.activity" id="act_confirm"> <!-- submitted -->
<field name="wkf_id" ref="wkf_holidays" />
<field name="name">confirm</field>
- <field name="flow_start">True</field>
+ <field name="flow_start" eval="True"/>
<field name="kind">function</field>
<field name="action">holidays_confirm()</field>
<field name="split_mode">OR</field>
diff --git a/addons/hr_holidays/tests/test_holidays_flow.py b/addons/hr_holidays/tests/test_holidays_flow.py
index caa6e14f2db..9b678e426d0 100644
--- a/addons/hr_holidays/tests/test_holidays_flow.py
+++ b/addons/hr_holidays/tests/test_holidays_flow.py
@@ -23,6 +23,7 @@ from datetime import datetime
from dateutil.relativedelta import relativedelta
from openerp.addons.hr_holidays.tests.common import TestHrHolidaysBase
+from openerp.exceptions import Warning
from openerp.osv.orm import except_orm
from openerp.tools import mute_logger
@@ -203,5 +204,5 @@ class TestHolidaysFlow(TestHrHolidaysBase):
'date_to': (datetime.today() + relativedelta(days=7)),
'number_of_days_temp': 4,
})
- with self.assertRaises(except_orm):
+ with self.assertRaises(Warning):
self.hr_holidays.signal_confirm(cr, self.user_hrmanager_id, [hol2_id])
diff --git a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml
index 05326bb19c1..49243e501f2 100644
--- a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml
+++ b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice.yml
@@ -79,7 +79,15 @@
I click on "Create Invoice" button of "Invoice analytic Line" wizard to create invoice.
-
!python {model: hr.timesheet.invoice.create}: |
- self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_0")], {"active_ids": [ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule0")]})
+ action_result = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_0")], {
+ "active_ids": [ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule0")]
+ })
+ invoice_pool = self.pool.get('account.invoice')
+ invoice_domain = action_result['domain']
+ invoice_ids = invoice_pool.search(cr, uid, invoice_domain)
+ invoice_pool.write(cr, uid, invoice_ids, {'origin': 'test-hrtsic0_id_'+str( ref("hr_timesheet_invoice_create_0")) \
+ + '_aaldyfhrm0_id_'+str( ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule0") ) })
+
-
I check that Invoice is created for this timesheet.
-
@@ -90,7 +98,9 @@
partner = aline.account_id.partner_id.id
invoice_obj = self.pool.get('account.invoice')
- invoice_ids = invoice_obj.search(cr, uid, [('partner_id', '=', partner)])
+ invoice_ids = invoice_obj.search(cr, uid, [('partner_id', '=', partner),
+ ('origin', '=', 'test-hrtsic0_id_'+str( ref("hr_timesheet_invoice_create_0")) + '_aaldyfhrm0_id_'+str( ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule0") ))
+ ])
invoice_id = invoice_obj.browse(cr, uid, invoice_ids)[0]
for invoice in invoice_id.invoice_line:
@@ -102,4 +112,4 @@
assert aline.invoice_id, "Invoice created, but analytic line wasn't updated."
assert aline.invoice_id == invoice_id, "Invoice doesn't match the one at analytic line"
assert invoice_id.amount_untaxed == 187.5, "Invoice amount mismatch: %s" % invoice_id.amount_untaxed
- assert invoice_id.amount_tax == 50, "Invoice tax mismatch: %s" % invoice_id.amount_tax \ No newline at end of file
+ assert invoice_id.amount_tax == 50, "Invoice tax mismatch: %s" % invoice_id.amount_tax
diff --git a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml
index 88675f3042f..c3a5fae866c 100644
--- a/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml
+++ b/addons/hr_timesheet_invoice/test/test_hr_timesheet_invoice_no_prod_tax.yml
@@ -78,7 +78,14 @@
I click on "Create Invoice" button of "Invoice analytic Line" wizard to create invoice.
-
!python {model: hr.timesheet.invoice.create}: |
- self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_0")], {"active_ids": [ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule1")]})
+ action_result = self.do_create(cr, uid, [ref("hr_timesheet_invoice_create_0")], {
+ "active_ids": [ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule1")]
+ })
+ invoice_pool = self.pool.get('account.invoice')
+ invoice_domain = action_result['domain']
+ invoice_ids = invoice_pool.search(cr, uid, invoice_domain)
+ invoice_pool.write(cr, uid, invoice_ids, {'origin': 'test-hrtsic0_id_'+str( ref("hr_timesheet_invoice_create_0"))\
+ + '_aaldyfhrm1_id_'+str( ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule1") ) })
-
I check that Invoice is created for this timesheet.
-
@@ -89,7 +96,10 @@
partner = aline.account_id.partner_id.id
invoice_obj = self.pool.get('account.invoice')
- invoice_ids = invoice_obj.search(cr, uid, [('partner_id', '=', partner)])
+ invoice_ids = invoice_obj.search(cr, uid, [('partner_id', '=', partner),
+ ('origin', '=', 'test-hrtsic0_id_'+str( ref("hr_timesheet_invoice_create_0")) + '_aaldyfhrm1_id_'+str( ref("hr_timesheet_invoice.account_analytic_line_developyamlforhrmodule1") ))
+ ])
+
invoice_id = invoice_obj.browse(cr, uid, invoice_ids)[0]
for invoice in invoice_id.invoice_line:
@@ -101,4 +111,4 @@
assert aline.invoice_id, "Invoice created, but analytic line wasn't updated."
assert aline.invoice_id == invoice_id, "Invoice doesn't match the one at analytic line"
assert invoice_id.amount_untaxed == 187.5, "Invoice amount mismatch: %s" % invoice_id.amount_untaxed
- assert invoice_id.amount_tax == 40, "Invoice tax mismatch: %s" % invoice_id.amount_tax \ No newline at end of file
+ assert invoice_id.amount_tax == 40, "Invoice tax mismatch: %s" % invoice_id.amount_tax
diff --git a/addons/im/im.py b/addons/im/im.py
index 3c4f0bfcd14..fd87dbacbff 100644
--- a/addons/im/im.py
+++ b/addons/im/im.py
@@ -18,19 +18,19 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
+import datetime
+import json
+import logging
+import select
+import time
import openerp
import openerp.tools.config
import openerp.modules.registry
-import openerp.addons.web.http as http
-from openerp.addons.web.http import request
-from openerp.tools.misc import DEFAULT_SERVER_DATETIME_FORMAT
-import datetime
+from openerp import http
+from openerp.http import request
from openerp.osv import osv, fields
-import time
-import logging
-import json
-import select
+from openerp.tools.misc import DEFAULT_SERVER_DATETIME_FORMAT
_logger = logging.getLogger(__name__)
diff --git a/addons/im_livechat/im_livechat.py b/addons/im_livechat/im_livechat.py
index 02d1688d537..5be63d4dcec 100644
--- a/addons/im_livechat/im_livechat.py
+++ b/addons/im_livechat/im_livechat.py
@@ -19,15 +19,16 @@
#
##############################################################################
-import openerp
-import openerp.addons.im.im as im
import json
import random
import jinja2
+
+import openerp
+import openerp.addons.im.im as im
from openerp.osv import osv, fields
from openerp import tools
-import openerp.addons.web.http as http
-from openerp.addons.web.http import request
+from openerp import http
+from openerp.http import request
env = jinja2.Environment(
loader=jinja2.PackageLoader('openerp.addons.im_livechat', "."),
diff --git a/addons/l10n_br/data/account_tax_template.xml b/addons/l10n_br/data/account_tax_template.xml
index 1e6efd5c616..c3ecf449838 100644
--- a/addons/l10n_br/data/account_tax_template.xml
+++ b/addons/l10n_br/data/account_tax_template.xml
@@ -242,6 +242,22 @@
<field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
</record>
+ <record id="tax_template_out_ipi24" model="account.tax.template">
+ <field name="description">IPI 24%</field>
+ <field name="name">IPI Saída 24%</field>
+ <field name="amount">0.24</field>
+ <field name="type_tax_use">sale</field>
+ <field ref="account_template_201010301" name="account_collected_id"/>
+ <field ref="account_template_101050502" name="account_paid_id"/>
+ <field eval="0" name="price_include"/>
+ <field eval="0" name="tax_discount"/>
+ <field ref="l10n_br_account_chart_template" name="chart_template_id"/>
+ <field ref="tax_code_template_ipi" name="base_code_id"/>
+ <field ref="tax_code_template_ipi" name="tax_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_base_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
+ </record>
+
<record id="tax_template_out_ipi25" model="account.tax.template">
<field name="description">IPI 25%</field>
<field name="name">IPI Saída 25%</field>
@@ -386,6 +402,22 @@
<field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
</record>
+ <record id="tax_template_out_ipi300" model="account.tax.template">
+ <field name="description">IPI 300%</field>
+ <field name="name">IPI Saída 300%</field>
+ <field name="amount">3.00</field>
+ <field name="type_tax_use">sale</field>
+ <field ref="account_template_201010301" name="account_collected_id"/>
+ <field ref="account_template_101050502" name="account_paid_id"/>
+ <field eval="0" name="price_include"/>
+ <field eval="0" name="tax_discount"/>
+ <field ref="l10n_br_account_chart_template" name="chart_template_id"/>
+ <field ref="tax_code_template_ipi" name="base_code_id"/>
+ <field ref="tax_code_template_ipi" name="tax_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_base_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
+ </record>
+
<record id="tax_template_out_ipi330" model="account.tax.template">
<field name="description">IPI 330%</field>
<field name="name">IPI Saída 330%</field>
@@ -642,6 +674,22 @@
<field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
</record>
+ <record id="tax_template_in_ipi24" model="account.tax.template">
+ <field name="description">IPI 24%</field>
+ <field name="name">IPI Entrada 24%</field>
+ <field name="amount">0.24</field>
+ <field name="type_tax_use">purchase</field>
+ <field ref="account_template_101050502" name="account_collected_id"/>
+ <field ref="account_template_201010301" name="account_paid_id"/>
+ <field eval="0" name="price_include"/>
+ <field eval="0" name="tax_discount"/>
+ <field ref="l10n_br_account_chart_template" name="chart_template_id"/>
+ <field ref="tax_code_template_ipi" name="base_code_id"/>
+ <field ref="tax_code_template_ipi" name="tax_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_base_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
+ </record>
+
<record id="tax_template_in_ipi25" model="account.tax.template">
<field name="description">IPI 25%</field>
<field name="name">IPI Entrada 25%</field>
@@ -786,6 +834,22 @@
<field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
</record>
+ <record id="tax_template_in_ipi300" model="account.tax.template">
+ <field name="description">IPI 300%</field>
+ <field name="name">IPI Entrada 300%</field>
+ <field name="amount">3.00</field>
+ <field name="type_tax_use">purchase</field>
+ <field ref="account_template_101050502" name="account_collected_id"/>
+ <field ref="account_template_201010301" name="account_paid_id"/>
+ <field eval="0" name="price_include"/>
+ <field eval="0" name="tax_discount"/>
+ <field ref="l10n_br_account_chart_template" name="chart_template_id"/>
+ <field ref="tax_code_template_ipi" name="base_code_id"/>
+ <field ref="tax_code_template_ipi" name="tax_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_base_code_id"/>
+ <field ref="tax_code_template_ipi" name="ref_tax_code_id"/>
+ </record>
+
<record id="tax_template_in_ipi330" model="account.tax.template">
<field name="description">IPI 330%</field>
<field name="name">IPI Entrada 330%</field>
diff --git a/addons/l10n_fr/fr_fiscal_templates.xml b/addons/l10n_fr/fr_fiscal_templates.xml
index a7e202d47b8..bf49d15e08c 100644
--- a/addons/l10n_fr/fr_fiscal_templates.xml
+++ b/addons/l10n_fr/fr_fiscal_templates.xml
@@ -2,6 +2,12 @@
<openerp>
<data>
+ <!-- To solve bug 1240265, we have to delete all fiscal position templates before each update.
+ The valid ones will be re-created later during the update.
+ /!\ This must be executed *before* loading the fiscal position templates!! -->
+ <delete model="account.fiscal.position.template" search="[('chart_template_id','=',ref('l10n_fr_pcg_chart_template'))]"/>
+
+
<!-- = = = = = = = = = = = = = = = -->
<!-- Fiscal Position Templates -->
<!-- = = = = = = = = = = = = = = = -->
@@ -28,38 +34,53 @@
<!-- Zone Intracommunautaire B2B -->
<!-- ventes -->
-<!-- 19,6% -->
+<!-- Taux Normal -->
<record id="fp_tax_template_intraeub2b_vt_normale" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_normale" />
<field name="tax_dest_id" ref="tva_intra_0" />
</record>
-<!-- 8,5% -->
+ <record id="fp_tax_template_intraeub2b_vt_normale_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_normale_temp" />
+ <field name="tax_dest_id" ref="tva_intra_0" />
+ </record>
+<!-- Taux DOM-TOM -->
<record id="fp_tax_template_intraeub2b_vt_specifique" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_specifique" />
<field name="tax_dest_id" ref="tva_intra_0" />
</record>
-<!-- 7% -->
- <record id="fp_tax_template_intraeub2b_vt_specifique_1" model="account.fiscal.position.tax.template">
+<!-- Taux Intermédiaire -->
+ <record id="fp_tax_template_intraeub2b_vt_intermediaire" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
- <field name="tax_src_id" ref="tva_specifique_1" />
+ <field name="tax_src_id" ref="tva_intermediaire" />
<field name="tax_dest_id" ref="tva_intra_0" />
</record>
-<!-- 5,5% -->
+ <record id="fp_tax_template_intraeub2b_vt_intermediaire_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_intermediaire_temp" />
+ <field name="tax_dest_id" ref="tva_intra_0" />
+ </record>
+<!-- Taux réduit -->
<record id="fp_tax_template_intraeub2b_vt_reduite" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_reduite" />
<field name="tax_dest_id" ref="tva_intra_0" />
</record>
-<!-- 2,1% -->
+ <record id="fp_tax_template_intraeub2b_vt_reduite_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_reduite_temp" />
+ <field name="tax_dest_id" ref="tva_intra_0" />
+ </record>
+<!-- Taux super réduit -->
<record id="fp_tax_template_intraeub2b_vt_super_reduite" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_super_reduite" />
<field name="tax_dest_id" ref="tva_intra_0" />
</record>
<!-- achats -->
-<!-- 19,6% -->
+<!-- Taux Normal -->
<record id="fp_tax_template_intraeub2b_ha_normale_deduc" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_acq_normale" />
@@ -70,7 +91,18 @@
<field name="tax_src_id" ref="tva_acq_normale" />
<field name="tax_dest_id" ref="tva_acq_intra_normale" />
</record>
-<!-- 8,5% -->
+ <record id="fp_tax_template_intraeub2b_ha_normale_deduc_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_acq_normale_temp" />
+ <field name="tax_dest_id" ref="tva_intra_normale_temp" />
+ </record>
+ <record id="fp_tax_template_intraeub2b_ha_normale_acq_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_acq_normale_temp" />
+ <field name="tax_dest_id" ref="tva_acq_intra_normale_temp" />
+ </record>
+
+<!-- Taux DOM-TOM -->
<record id="fp_tax_template_intraeub2b_ha_specifique_deduc" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_acq_specifique" />
@@ -81,18 +113,29 @@
<field name="tax_src_id" ref="tva_acq_specifique" />
<field name="tax_dest_id" ref="tva_acq_intra_specifique" />
</record>
-<!-- 7% -->
- <record id="fp_tax_template_intraeub2b_ha_specifique_1_deduc" model="account.fiscal.position.tax.template">
+<!-- Taux Intermédiaire -->
+ <record id="fp_tax_template_intraeub2b_ha_intermediaire_deduc" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
- <field name="tax_src_id" ref="tva_acq_specifique_1" />
- <field name="tax_dest_id" ref="tva_intra_specifique_1" />
+ <field name="tax_src_id" ref="tva_acq_intermediaire" />
+ <field name="tax_dest_id" ref="tva_intra_intermediaire" />
</record>
- <record id="fp_tax_template_intraeub2b_ha_specifique_1_acq" model="account.fiscal.position.tax.template">
+ <record id="fp_tax_template_intraeub2b_ha_intermediaire_acq" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
- <field name="tax_src_id" ref="tva_acq_specifique_1" />
- <field name="tax_dest_id" ref="tva_acq_intra_specifique_1" />
+ <field name="tax_src_id" ref="tva_acq_intermediaire" />
+ <field name="tax_dest_id" ref="tva_acq_intra_intermediaire" />
</record>
-<!-- 5,5% -->
+ <record id="fp_tax_template_intraeub2b_ha_intermediaire_deduc_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_acq_intermediaire_temp" />
+ <field name="tax_dest_id" ref="tva_intra_intermediaire_temp" />
+ </record>
+ <record id="fp_tax_template_intraeub2b_ha_intermediaire_acq_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_acq_intermediaire_temp" />
+ <field name="tax_dest_id" ref="tva_acq_intra_intermediaire_temp" />
+ </record>
+
+<!-- Taux réduit -->
<record id="fp_tax_template_intraeub2b_ha_reduite_deduc" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_acq_reduite" />
@@ -103,7 +146,18 @@
<field name="tax_src_id" ref="tva_acq_reduite" />
<field name="tax_dest_id" ref="tva_acq_intra_reduite" />
</record>
-<!-- 2,1% -->
+ <record id="fp_tax_template_intraeub2b_ha_reduite_deduc_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_acq_reduite_temp" />
+ <field name="tax_dest_id" ref="tva_intra_reduite_temp" />
+ </record>
+ <record id="fp_tax_template_intraeub2b_ha_reduite_acq_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_intraeub2b" />
+ <field name="tax_src_id" ref="tva_acq_reduite_temp" />
+ <field name="tax_dest_id" ref="tva_acq_intra_reduite_temp" />
+ </record>
+
+<!-- Taux super réduit -->
<record id="fp_tax_template_intraeub2b_ha_super_reduite_deduc" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_intraeub2b" />
<field name="tax_src_id" ref="tva_acq_super_reduite" />
@@ -117,31 +171,46 @@
<!-- Import/Export + DOM/TOM -->
<!-- ventes -->
-<!-- 19,6% -->
+<!-- Taux Normal -->
<record id="fp_tax_template_impexp_vt_normale" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_normale" />
<field name="tax_dest_id" ref="tva_export_0" />
</record>
-<!-- 8,5% -->
+ <record id="fp_tax_template_impexp_vt_normale_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_import_export" />
+ <field name="tax_src_id" ref="tva_normale_temp" />
+ <field name="tax_dest_id" ref="tva_export_0" />
+ </record>
+<!-- Taux DOM-TOM -->
<record id="fp_tax_template_impexp_vt_specifique" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_specifique" />
<field name="tax_dest_id" ref="tva_export_0" />
</record>
-<!-- 7% -->
- <record id="fp_tax_template_impexp_vt_specifique_1" model="account.fiscal.position.tax.template">
+<!-- Taux Intermédiare -->
+ <record id="fp_tax_template_impexp_vt_intermediaire" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
- <field name="tax_src_id" ref="tva_specifique_1" />
+ <field name="tax_src_id" ref="tva_intermediaire" />
<field name="tax_dest_id" ref="tva_export_0" />
</record>
-<!-- 5,5% -->
+ <record id="fp_tax_template_impexp_vt_intermediaire_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_import_export" />
+ <field name="tax_src_id" ref="tva_intermediaire_temp" />
+ <field name="tax_dest_id" ref="tva_export_0" />
+ </record>
+<!-- Taux Réduit -->
<record id="fp_tax_template_impexp_vt_reduite" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_reduite" />
<field name="tax_dest_id" ref="tva_export_0" />
</record>
-<!-- 2,1% -->
+ <record id="fp_tax_template_impexp_vt_reduite_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_import_export" />
+ <field name="tax_src_id" ref="tva_reduite_temp" />
+ <field name="tax_dest_id" ref="tva_export_0" />
+ </record>
+<!-- Taux super réduit -->
<record id="fp_tax_template_impexp_vt_super_reduite" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_super_reduite" />
@@ -149,31 +218,47 @@
</record>
<!-- achats -->
-<!-- 19,6% -->
+<!-- Taux Normal -->
<record id="fp_tax_template_impexp_ha_normale" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_acq_normale" />
<field name="tax_dest_id" ref="tva_import_0" />
</record>
-<!-- 8,5% -->
+ <record id="fp_tax_template_impexp_ha_normale_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_import_export" />
+ <field name="tax_src_id" ref="tva_acq_normale_temp" />
+ <field name="tax_dest_id" ref="tva_import_0" />
+ </record>
+<!-- Taux DOM-TOM -->
<record id="fp_tax_template_impexp_ha_specifique" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_acq_specifique" />
<field name="tax_dest_id" ref="tva_import_0" />
</record>
-<!-- 7% -->
- <record id="fp_tax_template_impexp_ha_specifique_1" model="account.fiscal.position.tax.template">
+<!-- Taux Intermédiare -->
+ <record id="fp_tax_template_impexp_ha_intermediaire" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
- <field name="tax_src_id" ref="tva_acq_specifique_1" />
+ <field name="tax_src_id" ref="tva_acq_intermediaire" />
<field name="tax_dest_id" ref="tva_import_0" />
</record>
-<!-- 5,5% -->
+ <record id="fp_tax_template_impexp_ha_intermediaire_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_import_export" />
+ <field name="tax_src_id" ref="tva_acq_intermediaire_temp" />
+ <field name="tax_dest_id" ref="tva_import_0" />
+ </record>
+<!-- Taux Réduit -->
<record id="fp_tax_template_impexp_ha_reduite" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_acq_reduite" />
<field name="tax_dest_id" ref="tva_import_0" />
</record>
-<!-- 2,1% -->
+ <record id="fp_tax_template_impexp_ha_reduite_temp" model="account.fiscal.position.tax.template">
+ <field name="position_id" ref="fiscal_position_template_import_export" />
+ <field name="tax_src_id" ref="tva_acq_reduite_temp" />
+ <field name="tax_dest_id" ref="tva_import_0" />
+ </record>
+
+<!-- Taux super réduit -->
<record id="fp_tax_template_impexp_ha_super_reduite" model="account.fiscal.position.tax.template">
<field name="position_id" ref="fiscal_position_template_import_export" />
<field name="tax_src_id" ref="tva_acq_super_reduite" />
diff --git a/addons/l10n_fr/fr_pcg_taxes.xml b/addons/l10n_fr/fr_pcg_taxes.xml
index 2279b077383..a64f1d0087c 100644
--- a/addons/l10n_fr/fr_pcg_taxes.xml
+++ b/addons/l10n_fr/fr_pcg_taxes.xml
@@ -4,11 +4,11 @@
<!--
Définition des Tax Codes
- Version du fichier : 07-05-2012
+ Version du fichier : 30-09-2013
-->
<!--
- Tax Code Configuration (version générique)
+ Tax Code Configuration
-->
<record id="vat_code_chart_root" model="account.tax.code.template">
<field name="name">Plan de Taxes France</field>
@@ -20,24 +20,42 @@
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
</record>
+ <record model="account.tax.code.template" id="tax_col_200_ht">
+ <field name="name">Base H.T. 20.0%</field>
+ <field name="code">TVA collectée 20.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_col_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_col_196_ht">
<field name="name">Base H.T. 19.6%</field>
<field name="code">TVA collectée 19.6% (Base H.T.)</field>
<field name="parent_id" ref="tax_col_ht"/>
<field name="sign">1.00</field>
- </record>
+ </record>
<record model="account.tax.code.template" id="tax_col_85_ht">
<field name="name">Base H.T. 8.5%</field>
<field name="code">TVA collectée 8.5% (Base H.T.)</field>
<field name="parent_id" ref="tax_col_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_col_100_ht">
+ <field name="name">Base H.T. 10.0%</field>
+ <field name="code">TVA collectée 10.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_col_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_col_70_ht">
<field name="name">Base H.T. 7.0%</field>
<field name="code">TVA collectée 7.0% (Base H.T.)</field>
<field name="parent_id" ref="tax_col_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_col_50_ht">
+ <field name="name">Base H.T. 5.0%</field>
+ <field name="code">TVA collectée 5.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_col_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_col_55_ht">
<field name="name">Base H.T. 5.5%</field>
<field name="code">TVA collectée 5.5% (Base H.T.)</field>
@@ -57,6 +75,12 @@
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
</record>
+ <record model="account.tax.code.template" id="tax_col_200">
+ <field name="name">TVA 20.0%</field>
+ <field name="code">TVA collectée 20.0%</field>
+ <field name="parent_id" ref="tax_col"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_col_196">
<field name="name">TVA 19.6%</field>
<field name="code">TVA collectée 19.6%</field>
@@ -69,12 +93,24 @@
<field name="parent_id" ref="tax_col"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_col_100">
+ <field name="name">TVA 10.0%</field>
+ <field name="code">TVA collectée 10.0%</field>
+ <field name="parent_id" ref="tax_col"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_col_70">
<field name="name">TVA 7.0%</field>
<field name="code">TVA collectée 7.0%</field>
<field name="parent_id" ref="tax_col"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_col_50">
+ <field name="name">TVA 5.0%</field>
+ <field name="code">TVA collectée 5.0%</field>
+ <field name="parent_id" ref="tax_col"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_col_55">
<field name="name">TVA 5.5%</field>
<field name="code">TVA collectée 5.5%</field>
@@ -88,14 +124,18 @@
<field name="sign">1.00</field>
</record>
-
-
<record model="account.tax.code.template" id="tax_acq_ht">
<field name="name">Base H.T. TVA acquittée</field>
<field name="code">c)</field>
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
</record>
+ <record model="account.tax.code.template" id="tax_acq_200_ht">
+ <field name="name">Base H.T. 20.0%</field>
+ <field name="code">TVA acquittée 20.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_acq_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_acq_196_ht">
<field name="name">Base H.T. 19.6%</field>
<field name="code">TVA acquittée 19.6% (Base H.T.)</field>
@@ -108,12 +148,24 @@
<field name="parent_id" ref="tax_acq_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_acq_100_ht">
+ <field name="name">Base H.T. 10.0%</field>
+ <field name="code">TVA acquittée 10.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_acq_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_acq_70_ht">
<field name="name">Base H.T. 7.0%</field>
<field name="code">TVA acquittée 7.0% (Base H.T.)</field>
<field name="parent_id" ref="tax_acq_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_acq_50_ht">
+ <field name="name">Base H.T. 5.0%</field>
+ <field name="code">TVA acquittée 5.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_acq_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_acq_55_ht">
<field name="name">Base H.T. 5.5%</field>
<field name="code">TVA acquittée 5.5% (Base H.T.)</field>
@@ -133,6 +185,12 @@
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
</record>
+ <record model="account.tax.code.template" id="tax_acq_200">
+ <field name="name">TVA 20.0%</field>
+ <field name="code">TVA acquittée 20.0%</field>
+ <field name="parent_id" ref="tax_acq"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_acq_196">
<field name="name">TVA 19.6%</field>
<field name="code">TVA acquittée 19.6%</field>
@@ -145,12 +203,24 @@
<field name="parent_id" ref="tax_acq"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_acq_100">
+ <field name="name">TVA 10.0%</field>
+ <field name="code">TVA acquittée 10.0%</field>
+ <field name="parent_id" ref="tax_acq"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_acq_70">
<field name="name">TVA 7.0%</field>
<field name="code">TVA acquittée 7.0%</field>
<field name="parent_id" ref="tax_acq"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_acq_50">
+ <field name="name">TVA 5.0%</field>
+ <field name="code">TVA acquittée 5.0%</field>
+ <field name="parent_id" ref="tax_acq"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_acq_55">
<field name="name">TVA 5.5%</field>
<field name="code">TVA acquittée 5.5%</field>
@@ -171,7 +241,13 @@
<field name="code">e)</field>
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
- </record>
+ </record>
+ <record model="account.tax.code.template" id="tax_imm_200_ht">
+ <field name="name">Base H.T. 20.0%</field>
+ <field name="code">TVA acquittée sur immobilisations 20.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_imm_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_imm_196_ht">
<field name="name">Base H.T. 19.6%</field>
<field name="code">TVA acquittée sur immobilisations 19.6% (Base H.T.)</field>
@@ -184,12 +260,24 @@
<field name="parent_id" ref="tax_imm_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_imm_100_ht">
+ <field name="name">Base H.T. 10.0%</field>
+ <field name="code">TVA acquittée sur immobilisations 10.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_imm_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_imm_70_ht">
<field name="name">Base H.T. 7.0%</field>
<field name="code">TVA acquittée sur immobilisations 7.0% (Base H.T.)</field>
<field name="parent_id" ref="tax_imm_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_imm_50_ht">
+ <field name="name">Base H.T. 5.0%</field>
+ <field name="code">TVA acquittée sur immobilisations 5.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_imm_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_imm_55_ht">
<field name="name">Base H.T. 5.5%</field>
<field name="code">TVA acquittée sur immobilisations 5.5% (Base H.T.)</field>
@@ -209,7 +297,13 @@
<field name="code">f)</field>
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
- </record>
+ </record>
+ <record model="account.tax.code.template" id="tax_imm_200">
+ <field name="name">TVA 20.0%</field>
+ <field name="code">TVA acquittée sur immobilisations 20.0%</field>
+ <field name="parent_id" ref="tax_imm"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_imm_196">
<field name="name">TVA 19.6%</field>
<field name="code">TVA acquittée sur immobilisations 19.6%</field>
@@ -222,12 +316,24 @@
<field name="parent_id" ref="tax_imm"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_imm_100">
+ <field name="name">TVA 10.0%</field>
+ <field name="code">TVA acquittée sur immobilisations 10.0%</field>
+ <field name="parent_id" ref="tax_imm"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_imm_70">
<field name="name">TVA 7.0%</field>
<field name="code">TVA acquittée sur immobilisations 7.0%</field>
<field name="parent_id" ref="tax_imm"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_imm_50">
+ <field name="name">TVA 5.0%</field>
+ <field name="code">TVA acquittée sur immobilisations 5.0%</field>
+ <field name="parent_id" ref="tax_imm"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_imm_55">
<field name="name">TVA 5.5%</field>
<field name="code">TVA acquittée sur immobilisations 5.5%</field>
@@ -246,7 +352,13 @@
<field name="code">g)</field>
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
- </record>
+ </record>
+ <record model="account.tax.code.template" id="tax_intra_200_ht">
+ <field name="name">Base H.T. 20.0%</field>
+ <field name="code">TVA due intracommunautaire 20.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_intra_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_196_ht">
<field name="name">Base H.T. 19.6%</field>
<field name="code">TVA due intracommunautaire 19.6% (Base H.T.)</field>
@@ -259,12 +371,24 @@
<field name="parent_id" ref="tax_intra_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_100_ht">
+ <field name="name">Base H.T. 10.0%</field>
+ <field name="code">TVA due intracommunautaire 10.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_intra_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_70_ht">
<field name="name">Base H.T. 7.0%</field>
<field name="code">TVA due intracommunautaire 7.0% (Base H.T.)</field>
<field name="parent_id" ref="tax_intra_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_50_ht">
+ <field name="name">Base H.T. 5.0%</field>
+ <field name="code">TVA due intracommunautaire 5.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_intra_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_55_ht">
<field name="name">Base H.T. 5.5%</field>
<field name="code">TVA due intracommunautaire 5.5% (Base H.T.)</field>
@@ -283,7 +407,13 @@
<field name="code">h)</field>
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
- </record>
+ </record>
+ <record model="account.tax.code.template" id="tax_intra_200">
+ <field name="name">TVA 20.0%</field>
+ <field name="code">TVA due intracommunautaire 20.0%</field>
+ <field name="parent_id" ref="tax_intra"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_196">
<field name="name">TVA 19.6%</field>
<field name="code">TVA due intracommunautaire 19.6%</field>
@@ -296,12 +426,24 @@
<field name="parent_id" ref="tax_intra"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_100">
+ <field name="name">TVA 10.0%</field>
+ <field name="code">TVA due intracommunautaire 10.0%</field>
+ <field name="parent_id" ref="tax_intra"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_70">
<field name="name">TVA 7.0%</field>
<field name="code">TVA due intracommunautaire 7.0%</field>
<field name="parent_id" ref="tax_intra"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_50">
+ <field name="name">TVA 5.0%</field>
+ <field name="code">TVA due intracommunautaire 5.0%</field>
+ <field name="parent_id" ref="tax_intra"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_55">
<field name="name">TVA 5.5%</field>
<field name="code">TVA due intracommunautaire 5.5%</field>
@@ -321,7 +463,13 @@
<field name="code">i)</field>
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
- </record>
+ </record>
+ <record model="account.tax.code.template" id="tax_intra_acq_200_ht">
+ <field name="name">Base H.T. 20.0%</field>
+ <field name="code">TVA déductible intracommunautaire 20.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_intra_acq_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_acq_196_ht">
<field name="name">Base H.T. 19.6%</field>
<field name="code">TVA déductible intracommunautaire 19.6% (Base H.T.)</field>
@@ -334,12 +482,24 @@
<field name="parent_id" ref="tax_intra_acq_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_acq_100_ht">
+ <field name="name">Base H.T. 10.0%</field>
+ <field name="code">TVA déductible intracommunautaire 10.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_intra_acq_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_acq_70_ht">
<field name="name">Base H.T. 7.0%</field>
<field name="code">TVA déductible intracommunautaire 7.0% (Base H.T.)</field>
<field name="parent_id" ref="tax_intra_acq_ht"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_acq_50_ht">
+ <field name="name">Base H.T. 5.0%</field>
+ <field name="code">TVA déductible intracommunautaire 5.0% (Base H.T.)</field>
+ <field name="parent_id" ref="tax_intra_acq_ht"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_acq_55_ht">
<field name="name">Base H.T. 5.5%</field>
<field name="code">TVA déductible intracommunautaire 5.5% (Base H.T.)</field>
@@ -358,7 +518,13 @@
<field name="code">j)</field>
<field name="sign">1.00</field>
<field name="parent_id" ref="vat_code_chart_root"/>
- </record>
+ </record>
+ <record model="account.tax.code.template" id="tax_intra_acq_200">
+ <field name="name">TVA 20.0%</field>
+ <field name="code">TVA déductible intracommunautaire 20.0%</field>
+ <field name="parent_id" ref="tax_intra_acq"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_acq_196">
<field name="name">TVA 19.6%</field>
<field name="code">TVA déductible intracommunautaire 19.6%</field>
@@ -371,12 +537,24 @@
<field name="parent_id" ref="tax_intra_acq"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_acq_100">
+ <field name="name">TVA 10.0%</field>
+ <field name="code">TVA déductible intracommunautaire 10.0%</field>
+ <field name="parent_id" ref="tax_intra_acq"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_acq_70">
<field name="name">TVA 7.0%</field>
<field name="code">TVA déductible intracommunautaire 7.0%</field>
<field name="parent_id" ref="tax_intra_acq"/>
<field name="sign">1.00</field>
</record>
+ <record model="account.tax.code.template" id="tax_intra_acq_50">
+ <field name="name">TVA 5.0%</field>
+ <field name="code">TVA déductible intracommunautaire 5.0%</field>
+ <field name="parent_id" ref="tax_intra_acq"/>
+ <field name="sign">1.00</field>
+ </record>
<record model="account.tax.code.template" id="tax_intra_acq_55">
<field name="name">TVA 5.5%</field>
<field name="code">TVA déductible intracommunautaire 5.5%</field>
diff --git a/addons/l10n_fr/fr_tax.xml b/addons/l10n_fr/fr_tax.xml
index 7cd3a36f54a..7c75136bdd3 100644
--- a/addons/l10n_fr/fr_tax.xml
+++ b/addons/l10n_fr/fr_tax.xml
@@ -10,6 +10,28 @@
<!-- VENTES Tax excluded from price -->
<record model="account.tax.template" id="tva_normale">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA collectée (vente) 20,0%</field>
+ <field name="description">20.0</field>
+ <field name="amount" eval="0.200"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_col_200_ht"/>
+ <field name="base_sign" eval="1"/>
+ <field name="tax_code_id" ref="tax_col_200"/>
+ <field name="tax_sign" eval="1"/>
+
+ <field name="account_collected_id" ref="pcg_445711"/>
+ <field name="account_paid_id" ref="pcg_445711"/>
+
+ <field name="ref_base_code_id" ref="tax_col_200_ht"/>
+ <field name="ref_base_sign" eval="-1"/>
+ <field name="ref_tax_code_id" ref="tax_col_200"/>
+ <field name="ref_tax_sign" eval="-1"/>
+ <field name="sequence" eval="1"/>
+ <field name="type_tax_use">sale</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_normale_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA collectée (vente) 19,6%</field>
<field name="description">19.6</field>
<field name="amount" eval="0.196"/>
@@ -26,7 +48,7 @@
<field name="ref_base_sign" eval="-1"/>
<field name="ref_tax_code_id" ref="tax_col_196"/>
<field name="ref_tax_sign" eval="-1"/>
- <field name="sequence" eval="0"/>
+ <field name="sequence" eval="10"/>
<field name="type_tax_use">sale</field>
</record>
@@ -52,7 +74,29 @@
<field name="type_tax_use">sale</field>
</record>
- <record model="account.tax.template" id="tva_specifique_1">
+ <record model="account.tax.template" id="tva_intermediaire">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA collectée (vente) 10,0%</field>
+ <field name="description">10.0</field>
+ <field name="amount" eval="0.10"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_col_100_ht"/>
+ <field name="base_sign" eval="1"/>
+ <field name="tax_code_id" ref="tax_col_100"/>
+ <field name="tax_sign" eval="1"/>
+
+ <field name="account_collected_id" ref="pcg_445712"/>
+ <field name="account_paid_id" ref="pcg_445712"/>
+
+ <field name="ref_base_code_id" ref="tax_col_100_ht"/>
+ <field name="ref_base_sign" eval="-1"/>
+ <field name="ref_tax_code_id" ref="tax_col_100"/>
+ <field name="ref_tax_sign" eval="-1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">sale</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_intermediaire_temp">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA collectée (vente) 7,0%</field>
<field name="description">7.0</field>
@@ -63,8 +107,8 @@
<field name="tax_code_id" ref="tax_col_70"/>
<field name="tax_sign" eval="1"/>
- <field name="account_collected_id" ref="pcg_445713"/>
- <field name="account_paid_id" ref="pcg_445713"/>
+ <field name="account_collected_id" ref="pcg_445712"/>
+ <field name="account_paid_id" ref="pcg_445712"/>
<field name="ref_base_code_id" ref="tax_col_70_ht"/>
<field name="ref_base_sign" eval="-1"/>
@@ -76,6 +120,28 @@
<record model="account.tax.template" id="tva_reduite">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA collectée (vente) 5,0%</field>
+ <field name="description">5.0</field>
+ <field name="amount" eval="0.050"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_col_50_ht"/>
+ <field name="base_sign" eval="1"/>
+ <field name="tax_code_id" ref="tax_col_50"/>
+ <field name="tax_sign" eval="1"/>
+
+ <field name="account_collected_id" ref="pcg_445713"/>
+ <field name="account_paid_id" ref="pcg_445713"/>
+
+ <field name="ref_base_code_id" ref="tax_col_50_ht"/>
+ <field name="ref_base_sign" eval="-1"/>
+ <field name="ref_tax_code_id" ref="tax_col_50"/>
+ <field name="ref_tax_sign" eval="-1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">sale</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_reduite_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA collectée (vente) 5,5%</field>
<field name="description">5.5</field>
<field name="amount" eval="0.055"/>
@@ -85,8 +151,8 @@
<field name="tax_code_id" ref="tax_col_55"/>
<field name="tax_sign" eval="1"/>
- <field name="account_collected_id" ref="pcg_445712"/>
- <field name="account_paid_id" ref="pcg_445712"/>
+ <field name="account_collected_id" ref="pcg_445713"/>
+ <field name="account_paid_id" ref="pcg_445713"/>
<field name="ref_base_code_id" ref="tax_col_55_ht"/>
<field name="ref_base_sign" eval="-1"/>
@@ -122,6 +188,28 @@
<!-- ACHATS Tax excluded from price -->
<record model="account.tax.template" id="tva_acq_normale">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déductible (achat) 20,0%</field>
+ <field name="description">ACH-20.0</field>
+ <field name="amount" eval="0.200"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_acq_200_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_acq_200"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44566"/>
+ <field name="account_paid_id" ref="pcg_44566"/>
+
+ <field name="ref_base_code_id" ref="tax_acq_200_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_acq_200"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="1"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_normale_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déductible (achat) 19,6%</field>
<field name="description">ACH-19.6</field>
<field name="amount" eval="0.196"/>
@@ -138,7 +226,7 @@
<field name="ref_base_sign" eval="1"/>
<field name="ref_tax_code_id" ref="tax_acq_196"/>
<field name="ref_tax_sign" eval="1"/>
- <field name="sequence" eval="0"/>
+ <field name="sequence" eval="10"/>
<field name="type_tax_use">purchase</field>
</record>
@@ -164,7 +252,29 @@
<field name="type_tax_use">purchase</field>
</record>
- <record model="account.tax.template" id="tva_acq_specifique_1">
+ <record model="account.tax.template" id="tva_acq_intermediaire">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déductible (achat) 10,0%</field>
+ <field name="description">ACH-10.0</field>
+ <field name="amount" eval="0.10"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_acq_100_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_acq_100"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44566"/>
+ <field name="account_paid_id" ref="pcg_44566"/>
+
+ <field name="ref_base_code_id" ref="tax_acq_100_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_acq_100"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_intermediaire_temp">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déductible (achat) 7,0%</field>
<field name="description">ACH-7.0</field>
@@ -188,6 +298,28 @@
<record model="account.tax.template" id="tva_acq_reduite">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déductible (achat) 5,0%</field>
+ <field name="description">ACH-5.0</field>
+ <field name="amount" eval="0.050"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_acq_50_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_acq_50"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44566"/>
+ <field name="account_paid_id" ref="pcg_44566"/>
+
+ <field name="ref_base_code_id" ref="tax_acq_50_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_acq_50"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_reduite_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déductible (achat) 5,5%</field>
<field name="description">ACH-5.5</field>
<field name="amount" eval="0.055"/>
@@ -234,6 +366,29 @@
<!-- ACHATS Tax included in price -->
<record model="account.tax.template" id="tva_acq_normale_TTC">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déductible (achat) 20,0% TTC</field>
+ <field name="description">ACH-20.0-TTC</field>
+ <field name="price_include" eval="1"/>
+ <field name="amount" eval="0.200"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_acq_200_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_acq_200"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44566"/>
+ <field name="account_paid_id" ref="pcg_44566"/>
+
+ <field name="ref_base_code_id" ref="tax_acq_200_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_acq_200"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_normale_TTC_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déductible (achat) 19,6% TTC</field>
<field name="description">ACH-19.6-TTC</field>
<field name="price_include" eval="1"/>
@@ -278,7 +433,30 @@
<field name="type_tax_use">purchase</field>
</record>
- <record model="account.tax.template" id="tva_acq_specifique_1_TTC">
+ <record model="account.tax.template" id="tva_acq_intermediaire_TTC">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déductible (achat) 10,0% TTC</field>
+ <field name="description">ACH-10.0-TTC</field>
+ <field name="price_include" eval="1"/>
+ <field name="amount" eval="0.10"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_acq_100_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_acq_100"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44566"/>
+ <field name="account_paid_id" ref="pcg_44566"/>
+
+ <field name="ref_base_code_id" ref="tax_acq_100_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_acq_100"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_intermediaire_TTC_temp">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déductible (achat) 7,0% TTC</field>
<field name="description">ACH-7.0-TTC</field>
@@ -303,6 +481,29 @@
<record model="account.tax.template" id="tva_acq_reduite_TTC">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déductible (achat) 5,0% TTC</field>
+ <field name="description">ACH-5.0-TTC</field>
+ <field name="price_include" eval="1"/>
+ <field name="amount" eval="0.050"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_acq_50_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_acq_50"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44566"/>
+ <field name="account_paid_id" ref="pcg_44566"/>
+
+ <field name="ref_base_code_id" ref="tax_acq_50_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_acq_50"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_reduite_TTC_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déductible (achat) 5,5% TTC</field>
<field name="description">ACH-5.5-TTC</field>
<field name="price_include" eval="1"/>
@@ -352,6 +553,28 @@
<!-- ImmoBILISATIONS (achats) -->
<record model="account.tax.template" id="tva_imm_normale">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déd./immobilisation (achat) 20,0%</field>
+ <field name="description">IMMO-20.0</field>
+ <field name="amount" eval="0.200"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_imm_200_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_imm_200"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44562"/>
+ <field name="account_paid_id" ref="pcg_44562"/>
+
+ <field name="ref_base_code_id" ref="tax_imm_200_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_imm_200"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_imm_normale_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déd./immobilisation (achat) 19,6%</field>
<field name="description">IMMO-19.6</field>
<field name="amount" eval="0.196"/>
@@ -394,7 +617,29 @@
<field name="type_tax_use">purchase</field>
</record>
- <record model="account.tax.template" id="tva_imm_specifique_1">
+ <record model="account.tax.template" id="tva_imm_intermediaire">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déd./immobilisation (achat) 10,0%</field>
+ <field name="description">IMMO-10.0</field>
+ <field name="amount" eval="0.10"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_imm_100_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_imm_100"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44562"/>
+ <field name="account_paid_id" ref="pcg_44562"/>
+
+ <field name="ref_base_code_id" ref="tax_imm_100_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_imm_100"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_imm_intermediaire_temp">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déd./immobilisation (achat) 7,0%</field>
<field name="description">IMMO-7.0</field>
@@ -418,6 +663,28 @@
<record model="account.tax.template" id="tva_imm_reduite">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déd./immobilisation (achat) 5,0%</field>
+ <field name="description">IMMO-5.0</field>
+ <field name="amount" eval="0.050"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_imm_50_ht"/>
+ <field name="base_sign" eval="-1"/>
+ <field name="tax_code_id" ref="tax_imm_50"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_44562"/>
+ <field name="account_paid_id" ref="pcg_44562"/>
+
+ <field name="ref_base_code_id" ref="tax_imm_50_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_imm_50"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_imm_reduite_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déd./immobilisation (achat) 5,5%</field>
<field name="description">IMMO-5.5</field>
<field name="amount" eval="0.055"/>
@@ -464,6 +731,28 @@
<!-- VENTES INTRACOMMUNAUTAIRE -->
<record model="account.tax.template" id="tva_intra_normale">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA due s/ acq. intracommunautaire (achat) 20,0%</field> <!-- ventes -->
+ <field name="description">ACH_UE_due-20.0</field>
+ <field name="amount" eval="-0.200"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_intra_200_ht"/>
+ <field name="base_sign" eval="-1" />
+ <field name="tax_code_id" ref="tax_intra_200"/>
+ <field name="tax_sign" eval="-1" />
+
+ <field name="account_collected_id" ref="pcg_445201"/>
+ <field name="account_paid_id" ref="pcg_445201"/>
+
+ <field name="ref_base_code_id" ref="tax_intra_200_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_intra_200"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_intra_normale_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA due s/ acq. intracommunautaire (achat) 19,6%</field> <!-- ventes -->
<field name="description">ACH_UE_due-19.6</field>
<field name="amount" eval="-0.196"/>
@@ -506,7 +795,29 @@
<field name="type_tax_use">purchase</field>
</record>
- <record model="account.tax.template" id="tva_intra_specifique_1">
+ <record model="account.tax.template" id="tva_intra_intermediaire">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA due s/ acq. intracommunautaire (achat) 10,0%</field>
+ <field name="description">ACH_UE_due-10.0</field>
+ <field name="amount" eval="-0.10"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_intra_100_ht"/>
+ <field name="base_sign" eval="-1" />
+ <field name="tax_code_id" ref="tax_intra_100"/>
+ <field name="tax_sign" eval="-1" />
+
+ <field name="account_collected_id" ref="pcg_445202"/>
+ <field name="account_paid_id" ref="pcg_445202"/>
+
+ <field name="ref_base_code_id" ref="tax_intra_100_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_intra_100"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_intra_intermediaire_temp">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA due s/ acq. intracommunautaire (achat) 7,0%</field>
<field name="description">ACH_UE_due-7.0</field>
@@ -517,8 +828,8 @@
<field name="tax_code_id" ref="tax_intra_70"/>
<field name="tax_sign" eval="-1" />
- <field name="account_collected_id" ref="pcg_445203"/>
- <field name="account_paid_id" ref="pcg_445203"/>
+ <field name="account_collected_id" ref="pcg_445202"/>
+ <field name="account_paid_id" ref="pcg_445202"/>
<field name="ref_base_code_id" ref="tax_intra_70_ht"/>
<field name="ref_base_sign" eval="1"/>
@@ -530,6 +841,28 @@
<record model="account.tax.template" id="tva_intra_reduite">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA due s/ acq. intracommunautaire (achat) 5,0%</field>
+ <field name="description">ACH_UE_due-5.0</field>
+ <field name="amount" eval="-0.050"/>
+ <field name="type">percent</field>
+ <field name="base_code_id" ref="tax_intra_50_ht"/>
+ <field name="base_sign" eval="-1" />
+ <field name="tax_code_id" ref="tax_intra_50"/>
+ <field name="tax_sign" eval="-1" />
+
+ <field name="account_collected_id" ref="pcg_445203"/>
+ <field name="account_paid_id" ref="pcg_445203"/>
+
+ <field name="ref_base_code_id" ref="tax_intra_50_ht"/>
+ <field name="ref_base_sign" eval="1"/>
+ <field name="ref_tax_code_id" ref="tax_intra_50"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_intra_reduite_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA due s/ acq. intracommunautaire (achat) 5,5%</field>
<field name="description">ACH_UE_due-5.5</field>
<field name="amount" eval="-0.055"/>
@@ -539,8 +872,8 @@
<field name="tax_code_id" ref="tax_intra_55"/>
<field name="tax_sign" eval="-1" />
- <field name="account_collected_id" ref="pcg_445202"/>
- <field name="account_paid_id" ref="pcg_445202"/>
+ <field name="account_collected_id" ref="pcg_445203"/>
+ <field name="account_paid_id" ref="pcg_445203"/>
<field name="ref_base_code_id" ref="tax_intra_55_ht"/>
<field name="ref_base_sign" eval="1"/>
@@ -576,6 +909,24 @@
<!-- ACHATS INTRACOMMUNAUTAIRE -->
<record model="account.tax.template" id="tva_acq_intra_normale">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déd. s/ acq. intracommunautaire (achat) 20,0%</field>
+ <field name="description">ACH_UE_ded.-20.0</field>
+ <field name="amount" eval="0.200"/>
+ <field name="type">percent</field>
+ <field name="tax_code_id" ref="tax_intra_acq_200"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_445662"/>
+ <field name="account_paid_id" ref="pcg_445662"/>
+
+ <field name="ref_tax_code_id" ref="tax_intra_acq_200"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_intra_normale_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déd. s/ acq. intracommunautaire (achat) 19,6%</field>
<field name="description">ACH_UE_ded.-19.6</field>
<field name="amount" eval="0.196"/>
@@ -610,7 +961,25 @@
<field name="type_tax_use">purchase</field>
</record>
- <record model="account.tax.template" id="tva_acq_intra_specifique_1">
+ <record model="account.tax.template" id="tva_acq_intra_intermediaire">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déd. s/ acq. intracommunautaire (achat) 10,0%</field>
+ <field name="description">ACH_UE_ded.-10.0</field>
+ <field name="amount" eval="0.10"/>
+ <field name="type">percent</field>
+ <field name="tax_code_id" ref="tax_intra_acq_100"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_445662"/>
+ <field name="account_paid_id" ref="pcg_445662"/>
+
+ <field name="ref_tax_code_id" ref="tax_intra_acq_100"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_intra_intermediaire_temp">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déd. s/ acq. intracommunautaire (achat) 7,0%</field>
<field name="description">ACH_UE_ded.-7.0</field>
@@ -630,6 +999,24 @@
<record model="account.tax.template" id="tva_acq_intra_reduite">
<field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
+ <field name="name">TVA déd. s/ acq. intracommunautaire (achat) 5,0%</field>
+ <field name="description">ACH_UE_ded.-5.0</field>
+ <field name="amount" eval="0.050"/>
+ <field name="type">percent</field>
+ <field name="tax_code_id" ref="tax_intra_acq_50"/>
+ <field name="tax_sign" eval="-1"/>
+
+ <field name="account_collected_id" ref="pcg_445662"/>
+ <field name="account_paid_id" ref="pcg_445662"/>
+
+ <field name="ref_tax_code_id" ref="tax_intra_acq_50"/>
+ <field name="ref_tax_sign" eval="1"/>
+ <field name="sequence" eval="10"/>
+ <field name="type_tax_use">purchase</field>
+ </record>
+
+ <record model="account.tax.template" id="tva_acq_intra_reduite_temp">
+ <field name="chart_template_id" ref="l10n_fr_pcg_chart_template"/>
<field name="name">TVA déd. s/ acq. intracommunautaire (achat) 5,5%</field>
<field name="description">ACH_UE_ded.-5.5</field>
<field name="amount" eval="0.055"/>
diff --git a/addons/l10n_fr/plan_comptable_general.xml b/addons/l10n_fr/plan_comptable_general.xml
index c68e0a88a4c..a029e101d07 100644
--- a/addons/l10n_fr/plan_comptable_general.xml
+++ b/addons/l10n_fr/plan_comptable_general.xml
@@ -3584,7 +3584,7 @@
</record>
<record id="pcg_445201" model="account.account.template">
- <field name="name">TVA due intracommunautaire 19,6%</field>
+ <field name="name">TVA due intracommunautaire (Taux Normal)</field>
<field name="code">445201</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
@@ -3592,7 +3592,7 @@
</record>
<record id="pcg_445202" model="account.account.template">
- <field name="name">TVA due intracommunautaire 5,5%</field>
+ <field name="name">TVA due intracommunautaire (Taux Intermédiaire)</field>
<field name="code">445202</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
@@ -3600,7 +3600,7 @@
</record>
<record id="pcg_445203" model="account.account.template">
- <field name="name">TVA due intracommunautaire (autre taux)</field>
+ <field name="name">TVA due intracommunautaire (Autre taux)</field>
<field name="code">445203</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
@@ -3712,7 +3712,7 @@
</record>
<record id="pcg_445711" model="account.account.template">
- <field name="name">TVA collectée 19,6%</field>
+ <field name="name">TVA collectée (Taux Normal)</field>
<field name="code">445711</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
@@ -3720,7 +3720,7 @@
</record>
<record id="pcg_445712" model="account.account.template">
- <field name="name">TVA collectée 5,5%</field>
+ <field name="name">TVA collectée (Taux Intermédiaire)</field>
<field name="code">445712</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
@@ -3728,7 +3728,7 @@
</record>
<record id="pcg_445713" model="account.account.template">
- <field name="name">TVA collectée (autre taux)</field>
+ <field name="name">TVA collectée (Autre taux)</field>
<field name="code">445713</field>
<field name="type">other</field>
<field name="user_type" ref="account.data_account_type_liability"/>
diff --git a/addons/l10n_it/data/account.tax.code.template.csv b/addons/l10n_it/data/account.tax.code.template.csv
index e5435945556..18c00b12777 100644
--- a/addons/l10n_it/data/account.tax.code.template.csv
+++ b/addons/l10n_it/data/account.tax.code.template.csv
@@ -75,3 +75,21 @@ IVC21Idet40,template_impcode_pagata_21det40,IVA a credito 21% detraibile 40% (im
IVC21det50,template_ivacode_pagata_21det50,IVA a credito 21% detraibile 50%,template_ivacode_pagata
IVC21Ndet50,template_ivacode_pagata_21det50ind,IVA a credito 21% detraibile 50% (indetraibile),template_ivacode_pagata_ind
IVC21Idet50,template_impcode_pagata_21det50,IVA a credito 21% detraibile 50% (imponibile),template_impcode_pagata
+IVC22,template_ivacode_pagata_22,IVA a credito 22%,template_ivacode_pagata
+IVC22I,template_impcode_pagata_22,IVA a credito 22% (imponibile),template_impcode_pagata
+IVD22,template_ivacode_riscossa_22,IVA a debito 22%,template_ivacode_riscossa
+IVD22I,template_impcode_riscossa_22,IVA a debito 22% (imponibile),template_impcode_riscossa
+IVC22ind,template_ivacode_pagata_22ind,IVA a credito 22% indetraibile,template_ivacode_pagata_ind
+IVC22Iind,template_impcode_pagata_22ind,IVA a credito 22% indetraibile (imponibile),template_impcode_pagata
+IVC22det10,template_ivacode_pagata_22det10,IVA a credito 22% detraibile 10%,template_ivacode_pagata
+IVC22Ndet10,template_ivacode_pagata_22det10ind,IVA a credito 22% detraibile 10% (indetraibile),template_ivacode_pagata_ind
+IVC22Idet10,template_impcode_pagata_22det10,IVA a credito 22% detraibile 10% (imponibile),template_impcode_pagata
+IVC22det15,template_ivacode_pagata_22det15,IVA a credito 22% detraibile 15%,template_ivacode_pagata
+IVC22Ndet15,template_ivacode_pagata_22det15ind,IVA a credito 22% detraibile 15% (indetraibile),template_ivacode_pagata_ind
+IVC22Idet15,template_impcode_pagata_22det15,IVA a credito 22% detraibile 15% (imponibile),template_impcode_pagata
+IVC22det40,template_ivacode_pagata_22det40,IVA a credito 22% detraibile 40%,template_ivacode_pagata
+IVC22Ndet40,template_ivacode_pagata_22det40ind,IVA a credito 22% detraibile 40% (indetraibile),template_ivacode_pagata_ind
+IVC22Idet40,template_impcode_pagata_22det40,IVA a credito 22% detraibile 40% (imponibile),template_impcode_pagata
+IVC22det50,template_ivacode_pagata_22det50,IVA a credito 22% detraibile 50%,template_ivacode_pagata
+IVC22Ndet50,template_ivacode_pagata_22det50ind,IVA a credito 22% detraibile 50% (indetraibile),template_ivacode_pagata_ind
+IVC22Idet50,template_impcode_pagata_22det50,IVA a credito 22% detraibile 50% (imponibile),template_impcode_pagata
diff --git a/addons/l10n_it/data/account.tax.template.csv b/addons/l10n_it/data/account.tax.template.csv
index 5654b32e5e9..67daee0eeef 100644
--- a/addons/l10n_it/data/account.tax.template.csv
+++ b/addons/l10n_it/data/account.tax.template.csv
@@ -1,6 +1,8 @@
id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depend,type,account_collected_id:id,account_paid_id:id,type_tax_use,base_code_id:id,tax_code_id:id,ref_base_code_id:id,ref_tax_code_id:id,ref_base_sign,ref_tax_sign,price_include,base_sign,tax_sign
-21v,21v,l10n_it_chart_template_generic,Iva al 21% (debito),1,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,1,1
-21a,21a,l10n_it_chart_template_generic,Iva al 21% (credito),2,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,1,1,False,-1,-1
+22v,22v,l10n_it_chart_template_generic,Iva al 22% (debito),1,0.22,,False,percent,2601,2601,sale,template_impcode_riscossa_22,template_ivacode_riscossa_22,template_impcode_riscossa_22,template_ivacode_riscossa_22,-1,-1,False,1,1
+22a,22a,l10n_it_chart_template_generic,Iva al 22% (credito),2,0.22,,False,percent,1601,1601,purchase,template_impcode_pagata_22,template_ivacode_pagata_22,template_impcode_pagata_22,template_ivacode_pagata_22,1,1,False,-1,-1
+21v,21v,l10n_it_chart_template_generic,Iva al 21% (debito),3,0.21,,False,percent,2601,2601,sale,template_impcode_riscossa_21,template_ivacode_riscossa_21,template_impcode_riscossa_21,template_ivacode_riscossa_21,-1,-1,False,1,1
+21a,21a,l10n_it_chart_template_generic,Iva al 21% (credito),4,0.21,,False,percent,1601,1601,purchase,template_impcode_pagata_21,template_ivacode_pagata_21,template_impcode_pagata_21,template_ivacode_pagata_21,1,1,False,-1,-1
20v,20v,l10n_it_chart_template_generic,Iva al 20% (debito),3,0.2,,False,percent,2601,2601,sale,template_impcode_riscossa_20,template_ivacode_riscossa_20,template_impcode_riscossa_20,template_ivacode_riscossa_20,-1,-1,False,1,1
20a,20a,l10n_it_chart_template_generic,Iva al 20% (credito),4,0.2,,False,percent,1601,1601,purchase,template_impcode_pagata_20,template_ivacode_pagata_20,template_impcode_pagata_20,template_ivacode_pagata_20,1,1,False,-1,-1
10v,10v,l10n_it_chart_template_generic,Iva al 10% (debito),5,0.1,,False,percent,2601,2601,sale,template_impcode_riscossa_10,template_ivacode_riscossa_10,template_impcode_riscossa_10,template_ivacode_riscossa_10,-1,-1,False,1,1
@@ -25,8 +27,8 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
20I5,20I5,l10n_it_chart_template_generic,IVA al 20% detraibile al 50%,14,0.2,,True,percent,,,purchase,template_impcode_pagata_20det50,,template_impcode_pagata_20det50,,1,1,False,-1,-1
20I5b,20I5b,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (D),200,0,20I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_20det50,,template_ivacode_pagata_20det50,1,1,False,-1,-1
20I5a,20I5a,l10n_it_chart_template_generic,IVA al 20% detraibile al 50% (I),100,0.5,20I5,False,percent,,,purchase,,template_ivacode_pagata_20det50ind,,template_ivacode_pagata_20det50ind,1,1,False,-1,-1
-22v,22v,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,1,1
-22a,22a,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,1,1,False,-1,-1
+2v,2v,l10n_it_chart_template_generic,Iva 2% (debito),15,0.02,,False,percent,2601,2601,sale,template_impcode_riscossa_2,template_ivacode_riscossa_2,template_impcode_riscossa_2,template_ivacode_riscossa_2,-1,-1,False,1,1
+2a,2a,l10n_it_chart_template_generic,Iva 2% (credito),16,0.02,,False,percent,1601,1601,purchase,template_impcode_pagata_2,template_ivacode_pagata_2,template_impcode_pagata_2,template_ivacode_pagata_2,1,1,False,-1,-1
4v,4v,l10n_it_chart_template_generic,Iva 4% (debito),17,0.04,,False,percent,2601,2601,sale,template_impcode_riscossa_4,template_ivacode_riscossa_4,template_impcode_riscossa_4,template_ivacode_riscossa_4,-1,-1,False,1,1
4a,4a,l10n_it_chart_template_generic,Iva 4% (credito),18,0.04,,False,percent,1601,1601,purchase,template_impcode_pagata_4,template_ivacode_pagata_4,template_impcode_pagata_4,template_ivacode_pagata_4,1,1,False,-1,-1
4AO,4AO,l10n_it_chart_template_generic,Iva al 4% indetraibile,19,0.04,,True,percent,,,purchase,template_impcode_pagata_4ind,,template_impcode_pagata_4ind,,1,1,False,-1,-1
@@ -42,11 +44,12 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
00a,00a,l10n_it_chart_template_generic,Fuori Campo IVA (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_0,template_ivacode_pagata_0,template_impcode_pagata_0,template_ivacode_pagata_0,1,1,False,-1,-1
00art15v,00art15v,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (debito),22,0,,False,percent,2601,2601,sale,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,template_impcode_riscossa_art15,template_ivacode_riscossa_art15,-1,-1,False,1,1
00art15a,00art15a,l10n_it_chart_template_generic,Imponibile Escluso Art.15 (credito),23,0,,False,percent,1601,1601,purchase,template_impcode_pagata_art15,template_ivacode_pagata_art15,template_impcode_pagata_art15,template_ivacode_pagata_art15,1,1,False,-1,-1
-21v INC,21v INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,24,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,1,1
+22v INC,22v INC,l10n_it_chart_template_generic,Iva al 22% (debito) INC,24,0.22,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_22,l10n_it.template_ivacode_riscossa_22,l10n_it.template_impcode_riscossa_22,l10n_it.template_ivacode_riscossa_22,-1,-1,True,1,1
+21v INC,21v INC,l10n_it_chart_template_generic,Iva al 21% (debito) INC,25,0.21,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,l10n_it.template_impcode_riscossa_21,l10n_it.template_ivacode_riscossa_21,-1,-1,True,1,1
20v INC,20v INC,l10n_it_chart_template_generic,Iva al 20% (debito) INC,25,0.2,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,l10n_it.template_impcode_riscossa_20,l10n_it.template_ivacode_riscossa_20,-1,-1,True,1,1
10v INC,10v INC,l10n_it_chart_template_generic,Iva al 10% (debito) INC,26,0.1,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,l10n_it.template_impcode_riscossa_10,l10n_it.template_ivacode_riscossa_10,-1,-1,True,1,1
12v INC,12v INC,l10n_it_chart_template_generic,Iva 12% (debito) INC,27,0.12,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,l10n_it.template_impcode_riscossa_12,l10n_it.template_ivacode_riscossa_12,-1,-1,True,1,1
-22v INC,22v INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,1,1
+2v INC,2v INC,l10n_it_chart_template_generic,Iva 2% (debito) INC,28,0.02,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,l10n_it.template_impcode_riscossa_2,l10n_it.template_ivacode_riscossa_2,-1,-1,True,1,1
4v INC,4v INC,l10n_it_chart_template_generic,Iva 4% (debito) INC,29,0.04,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,l10n_it.template_impcode_riscossa_4,l10n_it.template_ivacode_riscossa_4,-1,-1,True,1,1
00v INC,00v INC,l10n_it_chart_template_generic,Fuori Campo IVA (debito) INC,30,0,,False,percent,l10n_it.2601,l10n_it.2601,sale,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,l10n_it.template_impcode_riscossa_0,l10n_it.template_ivacode_riscossa_0,-1,-1,True,1,1
2110,2110,l10n_it_chart_template_generic,Iva al 21% detraibile 10%,31,0.21,,True,percent,,,purchase,template_impcode_pagata_21det10,,template_impcode_pagata_21det10,,1,1,False,-1,-1
@@ -64,3 +67,18 @@ id,description,chart_template_id:id,name,sequence,amount,parent_id:id,child_depe
21I5,21I5,l10n_it_chart_template_generic,IVA al 21% detraibile al 50%,35,0.21,,True,percent,,,purchase,template_impcode_pagata_21det50,,template_impcode_pagata_21det50,,1,1,False,-1,-1
21I5b,21I5b,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (D),200,0,21I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_21det50,,template_ivacode_pagata_21det50,1,1,False,-1,-1
21I5a,21I5a,l10n_it_chart_template_generic,IVA al 21% detraibile al 50% (I),100,0.5,21I5,False,percent,,,purchase,,template_ivacode_pagata_21det50ind,,template_ivacode_pagata_21det50ind,1,1,False,-1,-1
+2210,2210,l10n_it_chart_template_generic,Iva al 22% detraibile 10%,31,0.22,,True,percent,,,purchase,template_impcode_pagata_22det10,,template_impcode_pagata_22det10,,1,1,False,-1,-1
+2210b,2210b,l10n_it_chart_template_generic,Iva al 22% detraibile 10% (D),200,0,2210,False,balance,1601,1601,purchase,,template_ivacode_pagata_22det10,,template_ivacode_pagata_22det10,1,1,False,-1,-1
+2210a,2210a,l10n_it_chart_template_generic,Iva al 22% detraibile 10% (I),100,0.9,2210,False,percent,,,purchase,,template_ivacode_pagata_22det10ind,,template_ivacode_pagata_22det10ind,1,1,False,-1,-1
+2215,2215,l10n_it_chart_template_generic,Iva al 22% detraibile 15%,32,0.22,,True,percent,,,purchase,template_impcode_pagata_22det15,,template_impcode_pagata_22det15,,1,1,False,-1,-1
+2215b,2215b,l10n_it_chart_template_generic,Iva al 22% detraibile 15% (D),200,0,2215,False,balance,1601,1601,purchase,,template_ivacode_pagata_22det15,,template_ivacode_pagata_22det15,1,1,False,-1,-1
+2215a,2215a,l10n_it_chart_template_generic,Iva al 22% detraibile 15% (I),100,0.85,2215,False,percent,,,purchase,,template_ivacode_pagata_22det15ind,,template_ivacode_pagata_22det15ind,1,1,False,-1,-1
+2240,2240,l10n_it_chart_template_generic,Iva al 22% detraibile 40%,33,0.22,,True,percent,,,purchase,template_impcode_pagata_22det40,,template_impcode_pagata_22det40,,1,1,False,-1,-1
+2240b,2240b,l10n_it_chart_template_generic,Iva al 22% detraibile 40% (D),200,0,2240,False,balance,1601,1601,purchase,,template_ivacode_pagata_22det40,,template_ivacode_pagata_22det40,1,1,False,-1,-1
+2240a,2240a,l10n_it_chart_template_generic,Iva al 22% detraibile 40% (I),100,0.6,2240,False,percent,,,purchase,,template_ivacode_pagata_22det40ind,,template_ivacode_pagata_22det40ind,1,1,False,-1,-1
+22AO,22AO,l10n_it_chart_template_generic,Iva al 22% indetraibile,34,0.22,,True,percent,,,purchase,template_impcode_pagata_22ind,,template_impcode_pagata_22ind,,1,1,False,-1,-1
+22AOb,22AOb,l10n_it_chart_template_generic,Iva al 22% indetraibile (D),200,0,22AO,False,balance,1601,1601,purchase,,template_ivacode_pagata_22ind,,template_ivacode_pagata_22ind,1,1,False,-1,-1
+22AOa,22AOa,l10n_it_chart_template_generic,Iva al 22% indetraibile (I),100,1,22AO,False,percent,,,purchase,,template_ivacode_pagata_22ind,,template_ivacode_pagata_22ind,1,1,False,-1,-1
+22I5,22I5,l10n_it_chart_template_generic,IVA al 22% detraibile al 50%,35,0.22,,True,percent,,,purchase,template_impcode_pagata_22det50,,template_impcode_pagata_22det50,,1,1,False,-1,-1
+22I5b,22I5b,l10n_it_chart_template_generic,IVA al 22% detraibile al 50% (D),200,0,22I5,False,balance,1601,1601,purchase,,template_ivacode_pagata_22det50,,template_ivacode_pagata_22det50,1,1,False,-1,-1
+22I5a,22I5a,l10n_it_chart_template_generic,IVA al 22% detraibile al 50% (I),100,0.5,22I5,False,percent,,,purchase,,template_ivacode_pagata_22det50ind,,template_ivacode_pagata_22det50ind,1,1,False,-1,-1
diff --git a/addons/mail/controllers/main.py b/addons/mail/controllers/main.py
index 959877ad098..c2e15c4a12f 100644
--- a/addons/mail/controllers/main.py
+++ b/addons/mail/controllers/main.py
@@ -3,15 +3,16 @@ import psycopg2
import openerp
from openerp import SUPERUSER_ID
-import openerp.addons.web.http as http
+from openerp import http
from openerp.addons.web.controllers.main import content_disposition
class MailController(http.Controller):
_cp_path = '/mail'
- @http.httprequest
+ @http.route('/mail/download_attachment', type='http', auth='user')
def download_attachment(self, req, model, id, method, attachment_id, **kw):
+ # FIXME use /web/binary/saveas directly
Model = req.session.model(model)
res = getattr(Model, method)(int(id), int(attachment_id))
if res:
@@ -20,10 +21,10 @@ class MailController(http.Controller):
if filecontent and filename:
return req.make_response(filecontent,
headers=[('Content-Type', 'application/octet-stream'),
- ('Content-Disposition', content_disposition(filename, req))])
+ ('Content-Disposition', content_disposition(filename))])
return req.not_found()
- @http.jsonrequest
+ @http.route('/mail/receive', type='json', auth='none')
def receive(self, req):
""" End-point to receive mail from an external SMTP server. """
dbs = req.jsonrequest.get('databases')
diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py
index 91799b0ac63..8e99655dddb 100644
--- a/addons/mail/mail_mail.py
+++ b/addons/mail/mail_mail.py
@@ -157,9 +157,9 @@ class mail_mail(osv.Model):
'action': 'mail.action_mail_redirect',
}
if mail.notification:
- fragment.update({
- 'message_id': mail.mail_message_id.id,
- })
+ fragment['message_id'] = mail.mail_message_id.id
+ elif mail.model and mail.res_id:
+ fragment.update(model=mail.model, res_id=mail.res_id)
url = urljoin(base_url, "?%s#%s" % (urlencode(query), urlencode(fragment)))
return _("""<small>Access your messages and documents <a style='color:inherit' href="%s">in OpenERP</a></small>""") % url
else:
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index d72c24f6a99..9692b94f159 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -566,29 +566,37 @@ class mail_thread(osv.AbstractModel):
self.pool.get('res.users').browse(cr, SUPERUSER_ID, uid, context=context)
act_model, act_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, *self._get_inbox_action_xml_id(cr, uid, context=context))
action = self.pool.get(act_model).read(cr, uid, act_id, [])
-
- # if msg_id specified: try to redirect to the document or fallback on the Inbox
- msg_id = context.get('params', {}).get('message_id')
- if not msg_id:
+ params = context.get('params')
+ msg_id = model = res_id = None
+
+ if params:
+ msg_id = params.get('message_id')
+ model = params.get('model')
+ res_id = params.get('res_id')
+ if not msg_id and not (model and res_id):
return action
- msg = self.pool.get('mail.message').browse(cr, uid, msg_id, context=context)
- if msg.model and msg.res_id:
- action.update({
- 'context': {
- 'search_default_model': msg.model,
- 'search_default_res_id': msg.res_id,
- }
- })
- if self.pool.get(msg.model).check_access_rights(cr, uid, 'read', raise_exception=False):
+ if msg_id and not (model and res_id):
+ msg = self.pool.get('mail.message').browse(cr, uid, msg_id, context=context)
+ model, res_id = msg.model, msg.res_id
+
+ # if model + res_id found: try to redirect to the document or fallback on the Inbox
+ if model and res_id:
+ model_obj = self.pool.get(model)
+ if model_obj.check_access_rights(cr, uid, 'read', raise_exception=False):
try:
- model_obj = self.pool.get(msg.model)
- model_obj.check_access_rule(cr, uid, [msg.res_id], 'read', context=context)
+ model_obj.check_access_rule(cr, uid, [res_id], 'read', context=context)
if not hasattr(model_obj, '_get_formview_action'):
- action = self.pool.get('mail.thread')._get_formview_action(cr, uid, msg.res_id, model=msg.model, context=context)
+ action = self.pool.get('mail.thread')._get_formview_action(cr, uid, res_id, model=model, context=context)
else:
- action = model_obj._get_formview_action(cr, uid, msg.res_id, context=context)
+ action = model_obj._get_formview_action(cr, uid, res_id, context=context)
except (osv.except_osv, orm.except_orm):
pass
+ action.update({
+ 'context': {
+ 'search_default_model': model,
+ 'search_default_res_id': res_id,
+ }
+ })
return action
#------------------------------------------------------
@@ -1175,7 +1183,7 @@ class mail_thread(osv.AbstractModel):
# get partner info from email
partner_info = self.message_partner_info_from_emails(cr, uid, obj.id, [email], context=context)[0]
if partner_info.get('partner_id'):
- partner = self.pool.get('res.partner').browse(cr, SUPERUSER_ID, [partner_info.get('partner_id')], context=context)[0]
+ partner = self.pool.get('res.partner').browse(cr, SUPERUSER_ID, [partner_info['partner_id']], context=context)[0]
if email and email in [val[1] for val in result[obj.id]]: # already existing email -> skip
return result
if partner and partner in obj.message_follower_ids: # recipient already in the followers -> skip
diff --git a/addons/mail/static/src/js/mail_followers.js b/addons/mail/static/src/js/mail_followers.js
index a0dad1fcdbc..53cab629d79 100644
--- a/addons/mail/static/src/js/mail_followers.js
+++ b/addons/mail/static/src/js/mail_followers.js
@@ -151,7 +151,7 @@ openerp_mail_followers = function(session, mail) {
},
fetch_followers: function (value_) {
- this.value = value_ || {};
+ this.value = value_ || [];
return this.ds_model.call('read_followers_data', [this.value])
.then(this.proxy('display_followers'), this.proxy('fetch_generic'))
.then(this.proxy('display_buttons'))
diff --git a/addons/mail/tests/test_mail_features.py b/addons/mail/tests/test_mail_features.py
index 0688bf02606..62c76db5a40 100644
--- a/addons/mail/tests/test_mail_features.py
+++ b/addons/mail/tests/test_mail_features.py
@@ -231,6 +231,8 @@ class test_mail(TestMail):
def test_11_notification_url(self):
""" Tests designed to test the URL added in notification emails. """
cr, uid, group_pigs = self.cr, self.uid, self.group_pigs
+ # Test URL formatting
+ base_url = self.registry('ir.config_parameter').get_param(cr, uid, 'web.base.url')
# Partner data
partner_raoul = self.res_partner.browse(cr, uid, self.partner_raoul_id)
@@ -243,19 +245,59 @@ class test_mail(TestMail):
# Test: link for nobody -> None
url = mail_mail._get_partner_access_link(self.mail_mail, cr, uid, mail)
self.assertEqual(url, None,
- 'notification email: mails not send to a specific partner should not have any URL')
+ 'notification email: mails not send to a specific partner should not have any URL')
# Test: link for partner -> None
url = mail_mail._get_partner_access_link(self.mail_mail, cr, uid, mail, partner=partner_bert)
self.assertEqual(url, None,
- 'notification email: mails send to a not-user partner should not have any URL')
+ 'notification email: mails send to a not-user partner should not have any URL')
# Test: link for user -> signin
url = mail_mail._get_partner_access_link(self.mail_mail, cr, uid, mail, partner=partner_raoul)
+ self.assertIn(base_url, url,
+ 'notification email: link should contain web.base.url')
+ self.assertIn('db=%s' % cr.dbname, url,
+ 'notification email: link should contain database name')
self.assertIn('action=mail.action_mail_redirect', url,
- 'notification email: link should contain the redirect action')
+ 'notification email: link should contain the redirect action')
self.assertIn('login=%s' % partner_raoul.user_ids[0].login, url,
- 'notification email: link should contain the user login')
+ 'notification email: link should contain the user login')
+
+ # Test: link for user -> with model and res_id
+ mail_mail_id = self.mail_mail.create(cr, uid, {'model': 'mail.group', 'res_id': group_pigs.id})
+ mail = self.mail_mail.browse(cr, uid, mail_mail_id)
+ url = mail_mail._get_partner_access_link(self.mail_mail, cr, uid, mail, partner=partner_raoul)
+ self.assertIn(base_url, url,
+ 'notification email: link should contain web.base.url')
+ self.assertIn('db=%s' % cr.dbname, url,
+ 'notification email: link should contain database name')
+ self.assertIn('action=mail.action_mail_redirect', url,
+ 'notification email: link should contain the redirect action')
+ self.assertIn('login=%s' % partner_raoul.user_ids[0].login, url,
+ 'notification email: link should contain the user login')
+ self.assertIn('model=mail.group', url,
+ 'notification email: link should contain the model when having not notification email on a record')
+ self.assertIn('res_id=%s' % group_pigs.id, url,
+ 'notification email: link should contain the res_id when having not notification email on a record')
+
+ # Test: link for user -> with model and res_id
+ mail_mail_id = self.mail_mail.create(cr, uid, {'notification': True, 'model': 'mail.group', 'res_id': group_pigs.id})
+ mail = self.mail_mail.browse(cr, uid, mail_mail_id)
+ url = mail_mail._get_partner_access_link(self.mail_mail, cr, uid, mail, partner=partner_raoul)
+ self.assertIn(base_url, url,
+ 'notification email: link should contain web.base.url')
+ self.assertIn('db=%s' % cr.dbname, url,
+ 'notification email: link should contain database name')
+ self.assertIn('action=mail.action_mail_redirect', url,
+ 'notification email: link should contain the redirect action')
+ self.assertIn('login=%s' % partner_raoul.user_ids[0].login, url,
+ 'notification email: link should contain the user login')
+ self.assertIn('message_id=%s' % mail.mail_message_id.id, url,
+ 'notification email: link based on message should contain the mail_message id')
+ self.assertNotIn('model', url,
+ 'notification email: link based on message should not contain model')
+ self.assertNotIn('res_id', url,
+ 'notification email: link based on message should not contain res_id')
@mute_logger('openerp.addons.mail.mail_thread', 'openerp.osv.orm')
def test_12_inbox_redirection(self):
@@ -267,24 +309,54 @@ class test_mail(TestMail):
# No specific parameters -> should redirect to Inbox
action = mail_thread.message_redirect_action(self.mail_thread, cr, self.user_raoul_id, {'params': {}})
- self.assertEqual(action.get('type'), 'ir.actions.client',
- 'URL redirection: action without parameters should redirect to client action Inbox')
- self.assertEqual(action.get('id'), act_id,
- 'URL redirection: action without parameters should redirect to client action Inbox')
-
- # Bert has read access to Pigs -> should redirect to form view of Pigs
+ self.assertEqual(
+ action.get('type'), 'ir.actions.client',
+ 'URL redirection: action without parameters should redirect to client action Inbox'
+ )
+ self.assertEqual(
+ action.get('id'), act_id,
+ 'URL redirection: action without parameters should redirect to client action Inbox'
+ )
+
+ # Raoul has read access to Pigs -> should redirect to form view of Pigs
action = mail_thread.message_redirect_action(self.mail_thread, cr, self.user_raoul_id, {'params': {'message_id': msg_id}})
- self.assertEqual(action.get('type'), 'ir.actions.act_window',
- 'URL redirection: action with message_id for read-accredited user should redirect to Pigs')
- self.assertEqual(action.get('res_id'), group_pigs.id,
- 'URL redirection: action with message_id for read-accredited user should redirect to Pigs')
+ self.assertEqual(
+ action.get('type'), 'ir.actions.act_window',
+ 'URL redirection: action with message_id for read-accredited user should redirect to Pigs'
+ )
+ self.assertEqual(
+ action.get('res_id'), group_pigs.id,
+ 'URL redirection: action with message_id for read-accredited user should redirect to Pigs'
+ )
+ action = mail_thread.message_redirect_action(self.mail_thread, cr, self.user_raoul_id, {'params': {'model': 'mail.group', 'res_id': group_pigs.id}})
+ self.assertEqual(
+ action.get('type'), 'ir.actions.act_window',
+ 'URL redirection: action with message_id for read-accredited user should redirect to Pigs'
+ )
+ self.assertEqual(
+ action.get('res_id'), group_pigs.id,
+ 'URL redirection: action with message_id for read-accredited user should redirect to Pigs'
+ )
# Bert has no read access to Pigs -> should redirect to Inbox
action = mail_thread.message_redirect_action(self.mail_thread, cr, self.user_bert_id, {'params': {'message_id': msg_id}})
- self.assertEqual(action.get('type'), 'ir.actions.client',
- 'URL redirection: action without parameters should redirect to client action Inbox')
- self.assertEqual(action.get('id'), act_id,
- 'URL redirection: action without parameters should redirect to client action Inbox')
+ self.assertEqual(
+ action.get('type'), 'ir.actions.client',
+ 'URL redirection: action without parameters should redirect to client action Inbox'
+ )
+ self.assertEqual(
+ action.get('id'), act_id,
+ 'URL redirection: action without parameters should redirect to client action Inbox'
+ )
+ action = mail_thread.message_redirect_action(self.mail_thread, cr, self.user_bert_id, {'params': {'model': 'mail.group', 'res_id': group_pigs.id}})
+ self.assertEqual(
+ action.get('type'), 'ir.actions.client',
+ 'URL redirection: action without parameters should redirect to client action Inbox'
+ )
+ self.assertEqual(
+ action.get('id'), act_id,
+ 'URL redirection: action without parameters should redirect to client action Inbox'
+ )
def test_20_message_post(self):
""" Tests designed for message_post. """
diff --git a/addons/mail/update.py b/addons/mail/update.py
index 94416aeb356..bcf9bb8c7c9 100644
--- a/addons/mail/update.py
+++ b/addons/mail/update.py
@@ -6,8 +6,8 @@ import urllib
import urllib2
import openerp
-from openerp import release
-from openerp.osv import fields, osv
+from openerp import release, SUPERUSER_ID
+from openerp.osv import osv
from openerp.tools.translate import _
from openerp.tools.safe_eval import safe_eval
from openerp.tools.config import config
@@ -86,25 +86,26 @@ class publisher_warranty_contract(osv.osv):
try:
try:
result = get_sys_logs(self, cr, uid)
- except Exception, ex:
+ except Exception:
if cron_mode: # we don't want to see any stack trace in cron
return False
_logger.debug("Exception while sending a get logs messages", exc_info=1)
raise osv.except_osv(_("Error"), _("Error during communication with the publisher warranty server."))
- limit_date = (datetime.datetime.now() - _PREVIOUS_LOG_CHECK).strftime(misc.DEFAULT_SERVER_DATETIME_FORMAT)
# old behavior based on res.log; now on mail.message, that is not necessarily installed
- proxy = self.pool.get('mail.message')
-
- model, res_id = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'group_all_employees')
-
+ IMD = self.pool['ir.model.data']
+ user = self.pool['res.users'].browse(cr, SUPERUSER_ID, SUPERUSER_ID)
+ try:
+ poster = IMD.get_object(cr, SUPERUSER_ID, 'mail', 'group_all_employees')
+ except ValueError:
+ # Cannot found group, post the message on the wall of the admin
+ poster = user
+ if not poster.exists():
+ return True
for message in result["messages"]:
- values = {
- 'body' : message,
- 'model' : 'mail.group',
- 'res_id' : res_id,
- 'user_id' : False,
- }
- proxy.create(cr, uid, values, context=context)
+ try:
+ poster.message_post(body=message, subtype='mt_comment', partner_ids=[user.partner_id.id])
+ except Exception:
+ _logger.warning('Cannot send ping message', exc_info=True)
except Exception:
if cron_mode:
return False # we don't want to see any stack trace in cron
diff --git a/addons/mail/wizard/mail_compose_message_view.xml b/addons/mail/wizard/mail_compose_message_view.xml
index 0c86bae7e5f..948d9b3832c 100644
--- a/addons/mail/wizard/mail_compose_message_view.xml
+++ b/addons/mail/wizard/mail_compose_message_view.xml
@@ -13,8 +13,17 @@
<field name="res_id" invisible="1"/>
<field name="parent_id" invisible="1"/>
<field name="mail_server_id" invisible="1"/>
+ <!-- Various warnings -->
<field name="use_active_domain" invisible="1"/>
- <field name="active_domain" invisible="1"/>
+ <div colspan="2" class="oe_form_box_info oe_text_center"
+ attrs="{'invisible': [('use_active_domain', '!=', True)]}">
+ <p>
+ <strong>All records matching your current search filter will be mailed,
+ not only the ids selected in the list view.</strong><br />
+ If you want to work only with selected ids, please uncheck the
+ list header checkbox.
+ </p>
+ </div>
<!-- visible wizard -->
<field name="email_from"
attrs="{'invisible':[('composition_mode', '!=', 'mass_mail')]}"/>
diff --git a/addons/mass_mailing/controllers/main.py b/addons/mass_mailing/controllers/main.py
index 3ca238256b1..ac1531d7192 100644
--- a/addons/mass_mailing/controllers/main.py
+++ b/addons/mass_mailing/controllers/main.py
@@ -1,7 +1,6 @@
-import openerp.addons.web.http as http
-from openerp.addons.web.http import request
-
+from openerp import http
+from openerp.http import request
class MassMailController(http.Controller):
@http.route('/mail/track/<int:mail_id>/blank.gif', type='http', auth='admin')
diff --git a/addons/mrp/security/mrp_security.xml b/addons/mrp/security/mrp_security.xml
index 9e5dc919720..1320ea26906 100644
--- a/addons/mrp/security/mrp_security.xml
+++ b/addons/mrp/security/mrp_security.xml
@@ -19,11 +19,6 @@
<field name="category_id" ref="base.module_category_hidden"/>
</record>
- <!-- restrict access to menu -->
- <record model='ir.ui.menu' id="mrp_Sched_all">
- <field eval="[(6,0,[ref('group_mrp_manager')])]" name="groups_id"/>
- </record>
-
</data>
<data noupdate="1">
<!-- Multi -->
diff --git a/addons/mrp_repair/mrp_repair.py b/addons/mrp_repair/mrp_repair.py
index 9d812e06547..f04aa68ca6a 100644
--- a/addons/mrp_repair/mrp_repair.py
+++ b/addons/mrp_repair/mrp_repair.py
@@ -518,8 +518,9 @@ class mrp_repair(osv.osv):
'location_dest_id': move.location_dest_id.id,
'tracking_id': False,
'prodlot_id': move.prodlot_id and move.prodlot_id.id or False,
- 'state': 'done',
+ 'state': 'assigned',
})
+ move_obj.action_done(cr, uid, [move_id], context=context)
repair_line_obj.write(cr, uid, [move.id], {'move_id': move_id, 'state': 'done'}, context=context)
if repair.deliver_bool:
pick_name = seq_obj.get(cr, uid, 'stock.picking.out')
diff --git a/addons/note/note.py b/addons/note/note.py
index eb9a6397d18..95fe8f97cdf 100644
--- a/addons/note/note.py
+++ b/addons/note/note.py
@@ -19,6 +19,7 @@
#
##############################################################################
+from openerp import SUPERUSER_ID
from openerp.osv import osv, fields
from openerp.tools import html2plaintext
@@ -188,18 +189,15 @@ class res_users(osv.Model):
_inherit = ['res.users']
def create(self, cr, uid, data, context=None):
user_id = super(res_users, self).create(cr, uid, data, context=context)
- user = self.browse(cr, uid, uid, context=context)
- note_obj = self.pool.get('note.stage')
- data_obj = self.pool.get('ir.model.data')
- model_id = data_obj.get_object_reference(cr, uid, 'base', 'group_user') #Employee Group
- group_id = model_id and model_id[1] or False
- if group_id in [x.id for x in user.groups_id]:
- for note_xml_id in ['note_stage_00','note_stage_01','note_stage_02','note_stage_03','note_stage_04']:
+ note_obj = self.pool['note.stage']
+ data_obj = self.pool['ir.model.data']
+ is_employee = self.has_group(cr, user_id, 'base.group_user')
+ if is_employee:
+ for n in range(5):
+ xmlid = 'note_stage_%02d' % (n,)
try:
- data_id = data_obj._get_id(cr, uid, 'note', note_xml_id)
+ _model, stage_id = data_obj.get_object_reference(cr, SUPERUSER_ID, 'note', xmlid)
except ValueError:
continue
- stage_id = data_obj.browse(cr, uid, data_id, context=context).res_id
- note_obj.copy(cr, uid, stage_id, default = {
- 'user_id': user_id}, context=context)
+ note_obj.copy(cr, SUPERUSER_ID, stage_id, default={'user_id': user_id}, context=context)
return user_id
diff --git a/addons/note/tests/__init__.py b/addons/note/tests/__init__.py
new file mode 100644
index 00000000000..4a9f12c80b2
--- /dev/null
+++ b/addons/note/tests/__init__.py
@@ -0,0 +1,27 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Business Applications
+# Copyright (c) 2013-TODAY OpenERP S.A. <http://openerp.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+from . import test_note
+
+checks = [
+ test_note,
+]
+
+# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/note/tests/test_note.py b/addons/note/tests/test_note.py
new file mode 100644
index 00000000000..4300009981e
--- /dev/null
+++ b/addons/note/tests/test_note.py
@@ -0,0 +1,43 @@
+# -*- coding: utf-8 -*-
+##############################################################################
+#
+# OpenERP, Open Source Business Applications
+# Copyright (c) 2013-TODAY OpenERP S.A. <http://openerp.com>
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU Affero General Public License as
+# published by the Free Software Foundation, either version 3 of the
+# License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU Affero General Public License for more details.
+#
+# You should have received a copy of the GNU Affero General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+##############################################################################
+
+from openerp.tests import common
+
+class TestNote(common.TransactionCase):
+
+ def test_bug_lp_1156215(self):
+ """ensure any users can create new users"""
+ cr, uid = self.cr, self.uid
+ IMD = self.registry('ir.model.data')
+ Users = self.registry('res.users')
+
+ _, demo_user = IMD.get_object_reference(cr, uid, 'base', 'user_demo')
+ _, group_id = IMD.get_object_reference(cr, uid, 'base', 'group_erp_manager')
+
+ Users.write(cr, uid, [demo_user], {
+ 'groups_id': [(4, group_id)],
+ })
+
+ # must not fail
+ Users.create(cr, demo_user, {
+ 'name': 'test bug lp:1156215',
+ 'login': 'lp_1156215',
+ })
diff --git a/addons/point_of_sale/controllers/main.py b/addons/point_of_sale/controllers/main.py
index 5fd2085cb86..1ff0ee013db 100644
--- a/addons/point_of_sale/controllers/main.py
+++ b/addons/point_of_sale/controllers/main.py
@@ -6,8 +6,8 @@ import openerp
import time
import random
-from openerp.addons.web import http
-from openerp.addons.web.http import request
+from openerp import http
+from openerp.http import request
from openerp.addons.web.controllers.main import manifest_list, module_boot, html_template
_logger = logging.getLogger(__name__)
diff --git a/addons/point_of_sale/point_of_sale.py b/addons/point_of_sale/point_of_sale.py
index 4d013f57730..4ecb7a7f454 100644
--- a/addons/point_of_sale/point_of_sale.py
+++ b/addons/point_of_sale/point_of_sale.py
@@ -280,7 +280,7 @@ class pos_session(osv.osv):
# open if there is no session in 'opening_control', 'opened', 'closing_control' for one user
domain = [
('state', 'not in', ('closed','closing_control')),
- ('user_id', '=', uid)
+ ('user_id', '=', session.user_id.id)
]
count = self.search_count(cr, uid, domain, context=context)
if count>1:
diff --git a/addons/portal/mail_message.py b/addons/portal/mail_message.py
index d6a38f27378..9699b3a9ef6 100644
--- a/addons/portal/mail_message.py
+++ b/addons/portal/mail_message.py
@@ -35,7 +35,7 @@ class mail_message(osv.Model):
group_ids = self.pool.get('res.users').browse(cr, uid, uid, context=context).groups_id
group_user_id = self.pool.get("ir.model.data").get_object_reference(cr, uid, 'base', 'group_user')[1]
if group_user_id not in [group.id for group in group_ids]:
- args = ['&', '|', ('type', '!=', 'comment'), ('subtype_id', '!=', False)] + list(args)
+ args = [('subtype_id', '!=', False)] + list(args)
return super(mail_message, self)._search(cr, uid, args, offset=offset, limit=limit, order=order,
context=context, count=False, access_rights_uid=access_rights_uid)
diff --git a/addons/portal/tests/test_portal.py b/addons/portal/tests/test_portal.py
index 364c1a1ccef..938d3a6ef1f 100644
--- a/addons/portal/tests/test_portal.py
+++ b/addons/portal/tests/test_portal.py
@@ -210,11 +210,11 @@ class test_portal(TestMail):
msg2_id = self.mail_group.message_post(cr, uid, group_port_id, body='Body2', type='comment', subtype='mail.mt_group_public')
msg3_id = self.mail_group.message_post(cr, uid, group_port_id, body='Body3', type='comment', subtype='mail.mt_comment')
msg4_id = self.mail_group.message_post(cr, uid, group_port_id, body='Body4', type='comment')
- msg5_id = self.mail_group.message_post(cr, uid, group_port_id, body='Body5', type='notification')
+ # msg5_id = self.mail_group.message_post(cr, uid, group_port_id, body='Body5', type='notification')
# Do: Chell search messages: should not see internal notes (comment without subtype)
msg_ids = self.mail_message.search(cr, self.user_chell_id, [('model', '=', 'mail.group'), ('res_id', '=', group_port_id)])
- self.assertEqual(set(msg_ids), set([msg1_id, msg2_id, msg3_id, msg5_id]),
+ self.assertEqual(set(msg_ids), set([msg1_id, msg2_id, msg3_id]),
'mail_message: portal user has access to messages he should not read')
# Do: Chell read messages she can read
diff --git a/addons/portal_hr_employees/hr_employee_view.xml b/addons/portal_hr_employees/hr_employee_view.xml
index 7b038747c60..8e8cece12c8 100644
--- a/addons/portal_hr_employees/hr_employee_view.xml
+++ b/addons/portal_hr_employees/hr_employee_view.xml
@@ -33,8 +33,9 @@
</record>
<record model="ir.ui.view" id="portal_hr_kanban_view_employees">
- <field name="name">HR - Employees Kanban</field>
+ <field name="name">HR - Employees Kanban (Portal)</field>
<field name="model">hr.employee</field>
+ <field name="priority">32</field>
<field name="inherit_id" eval="False"/>
<field name="arch" type="xml">
<kanban create="false">
diff --git a/addons/procurement/i18n/bs.po b/addons/procurement/i18n/bs.po
new file mode 100644
index 00000000000..fc7ca973065
--- /dev/null
+++ b/addons/procurement/i18n/bs.po
@@ -0,0 +1,1089 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-26 12:22+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:49+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: procurement
+#: model:ir.ui.menu,name:procurement.menu_stock_sched
+msgid "Schedulers"
+msgstr "Planeri"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_make_procurement
+msgid "Make Procurements"
+msgstr "Napravi naručivanja"
+
+#. module: procurement
+#: help:procurement.order.compute.all,automatic:0
+msgid ""
+"Triggers an automatic procurement for all products that have a virtual stock "
+"under 0. You should probably not use this option, we suggest using a MTO "
+"configuration on products."
+msgstr ""
+"Aktivira automatsko naručivanje za sve proizvode koji imaju virtuelnu zalihu "
+"ispod 0. Vjerovatno nebi ste trebali koristiti ovu opciju, predlažemo Vam da "
+"koristite konfiguraciju \"Napravi na zalihu\" proizvoda."
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Group By..."
+msgstr "Grupiši po..."
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,procurement_draft_ids:0
+msgid "Draft procurement of the product and location of that orderpoint"
+msgstr "Naručivanja u pripremi proizvoda i lokacija ove tačke naručivanja."
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"required quantities are always\n"
+" available"
+msgstr ""
+"tražene količine su uvijek\n"
+" dostupne"
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"If there are not enough quantities available, the delivery order\n"
+" will wait for new products. To fulfill the "
+"inventory, you should\n"
+" create others rules like orderpoints."
+msgstr ""
+"Ako nema dovoljno zalihe, otpremnica će čekati\n"
+" nove proizvode. Kako bi popunili zalihu bilo bi "
+"dobro \n"
+" da kreirate pravila naručivanja kao što su tačke "
+"naručivanja."
+
+#. module: procurement
+#: field:procurement.order,procure_method:0
+#: field:product.template,procure_method:0
+msgid "Procurement Method"
+msgstr "Metoda naručivanja"
+
+#. module: procurement
+#: selection:product.template,supply_method:0
+msgid "Manufacture"
+msgstr "Proizvedi"
+
+#. module: procurement
+#: model:process.process,name:procurement.process_process_serviceproductprocess0
+msgid "Service"
+msgstr "Usluga"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_procurement_compute
+msgid "Compute Stock Minimum Rules Only"
+msgstr "Izračunaj samo pravila minimalnih zaliha"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Rules"
+msgstr "Pravila"
+
+#. module: procurement
+#: field:procurement.order,company_id:0
+#: field:stock.warehouse.orderpoint,company_id:0
+msgid "Company"
+msgstr "Kompanija"
+
+#. module: procurement
+#: field:procurement.order,product_uos_qty:0
+msgid "UoS Quantity"
+msgstr "Količina prodajne jedinice mjere"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Reason"
+msgstr "Razlog"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "Compute Procurements"
+msgstr "Izračunaj naručivanja"
+
+#. module: procurement
+#: field:procurement.order,message:0
+msgid "Latest error"
+msgstr "Zadnja greška"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_min_qty:0
+msgid "Minimum Quantity"
+msgstr "Minimalna količina"
+
+#. module: procurement
+#: help:mrp.property,composition:0
+msgid "Not used in computations, for information purpose only."
+msgstr "Ne korisiti se u izračunu, samo za informaciju"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_id:0
+msgid "Latest procurement"
+msgstr "Zadnja naručivanja"
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.action_orderpoint_form
+msgid ""
+"You can define your minimum stock rules, so that OpenERP will automatically "
+"create draft manufacturing orders or purchase quotations according to the "
+"stock level. Once the virtual stock of a product (= stock on hand minus all "
+"confirmed orders and reservations) is below the minimum quantity, OpenERP "
+"will generate a procurement request to increase the stock up to the maximum "
+"quantity."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,message_ids:0
+msgid "Messages"
+msgstr "Poruke"
+
+#. module: procurement
+#: help:procurement.order,message:0
+msgid "Exception occurred while computing procurement orders."
+msgstr "Izuzetak se pojavio prilikom izračunavanja naloga naručivanja."
+
+#. module: procurement
+#: view:product.product:0
+msgid "Products"
+msgstr "Proizvodi"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Cancelled"
+msgstr "Otkazano"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Permanent Procurement Exceptions"
+msgstr "Trajni izuzetci naručivanja"
+
+#. module: procurement
+#: help:procurement.order,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "Ako je označeno, nove poruke će zahtjevati vašu pažnju."
+
+#. module: procurement
+#: view:procurement.order.compute.all:0
+msgid "Scheduler Parameters"
+msgstr "Parametri planera"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_move
+msgid "Stock Move"
+msgstr "Kretanje zalihe"
+
+#. module: procurement
+#: view:product.product:0
+msgid "Stockable products"
+msgstr "Skladišni proizvodi"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:138
+#, python-format
+msgid "Invalid Action!"
+msgstr "Neispravna akcija!"
+
+#. module: procurement
+#: help:procurement.order,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 ""
+"Sadrži sažetak konverzacije (broj poruka,..). Ovaj sažetak je u html formatu "
+"da bi mogao biti ubačen u kanban pogled."
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Ready"
+msgstr "Spremno"
+
+#. module: procurement
+#: field:procurement.order.compute.all,automatic:0
+msgid "Automatic orderpoint"
+msgstr "Automatska tačka naručivanja"
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.procurement_exceptions
+msgid ""
+"<p>\n"
+" Procurement Orders represent the need for a certain quantity "
+"of products, at a given time, in a given location. Sales Orders are one "
+"typical source of Procurement Orders (but these are distinct documents). "
+"Depending on the procurement parameters and the product configuration, the "
+"procurement engine will attempt to satisfy the need by reserving products "
+"from stock, ordering products from a supplier, or passing a manufacturing "
+"order, etc. A Procurement Exception occurs when the system cannot find a way "
+"to fulfill a procurement. Some exceptions will resolve themselves "
+"automatically, but others require manual intervention (those are identified "
+"by a specific error message).\n"
+" </p>\n"
+" "
+msgstr ""
+"<p>\n"
+" Nalozi naručivanja prestavljaju potrebu za određenom "
+"količinom proizvoda, za dato vrijeme, za datu lokaciju. Prodajne narudžbe su "
+"jedan tipičan izvor naloga naručivanja (ali ovo su različiti dokumenti). U "
+"zavisnosti o parametrima naručivanja i postavkama na proizvodu, sistem "
+"naručivanja će pokušati da zadovolji potrebe za rezervisane proizvode "
+"zalihe, naručivanjem proizvoda od dobavljača, ili prosljeđivanjem naloga "
+"proizvodnje, itd. Iznimka naručivanja se pojavljuje kada sistem ne može da "
+"nađe način da ispuni naručivanje. Neke iznimke će se same riješite, dok "
+"druge zahtjevaju ručnu intervenciju (ove su identifikovane po specifičnoj "
+"poruci greške).\n"
+" </p>\n"
+" "
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Confirmed"
+msgstr "Potvrđeno"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Retry"
+msgstr "Pokušaj ponovo"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+#: view:procurement.orderpoint.compute:0
+msgid "Parameters"
+msgstr "Parametri"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Confirm"
+msgstr "Potvrdi"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Quantity Multiple"
+msgstr "Količina za zaokružiti"
+
+#. module: procurement
+#: help:procurement.order,origin:0
+msgid ""
+"Reference of the document that created this Procurement.\n"
+"This is automatically completed by OpenERP."
+msgstr ""
+"Referenca dokumenta koji je kreirao ovo naručivanje.\n"
+"Ovo je automatski popunjeno od strane OpenERP-a."
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Procurement Orders to Process"
+msgstr "Naručivanja za obradu"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_warehouse_orderpoint
+msgid "Minimum Inventory Rule"
+msgstr "Pravilo minimalne zalihe"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:370
+#, python-format
+msgid "Procurement '%s' is in exception: "
+msgstr "Naručivanje '%s' je u iznimci: "
+
+#. module: procurement
+#: field:procurement.order,priority:0
+msgid "Priority"
+msgstr "Prioritet"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Reordering Rules Search"
+msgstr "Pretraga pravila ponavljajućih narudžbi"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Waiting"
+msgstr "Na čekanju"
+
+#. module: procurement
+#: field:procurement.order,message_follower_ids:0
+msgid "Followers"
+msgstr "Pratioci"
+
+#. module: procurement
+#: field:procurement.order,location_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,location_id:0
+msgid "Location"
+msgstr "Lokacija"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_stock_picking
+msgid "Picking List"
+msgstr "Lista prikupljanja proizvoda"
+
+#. module: procurement
+#: field:make.procurement,warehouse_id:0
+#: view:stock.warehouse.orderpoint:0
+#: field:stock.warehouse.orderpoint,warehouse_id:0
+msgid "Warehouse"
+msgstr "Skladište"
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Best price (not yet active!)"
+msgstr "Najbolja cijena (još nije aktivno!)"
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:110
+#, python-format
+msgid "PROC %d: from stock - %3.2f %-5s - %s"
+msgstr "Naručivanje %d: iz zalihe - %3.2f %-5s - %s"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute
+msgid "Compute Procurement"
+msgstr "Izračunaj naručivanje"
+
+#. module: procurement
+#: field:res.company,schedule_range:0
+msgid "Scheduler Range Days"
+msgstr "Raspon dana planera"
+
+#. module: procurement
+#: view:make.procurement:0
+msgid "Ask New Products"
+msgstr "Zahtjevaj nove artikle"
+
+#. module: procurement
+#: field:make.procurement,date_planned:0
+msgid "Planned Date"
+msgstr "Planirani datum"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Group By"
+msgstr "Grupiši po"
+
+#. module: procurement
+#: field:make.procurement,qty:0
+#: field:procurement.order,product_qty:0
+msgid "Quantity"
+msgstr "Količina"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:365
+#, python-format
+msgid "Not enough stock and no minimum orderpoint rule defined."
+msgstr "Nema dovoljno zalihe i nije definirana tačka naručivanja."
+
+#. module: procurement
+#: field:make.procurement,uom_id:0
+#: view:procurement.order:0
+msgid "Unit of Measure"
+msgstr "Jedinica mjere"
+
+#. module: procurement
+#: selection:procurement.order,procure_method:0
+#: selection:product.template,procure_method:0
+msgid "Make to Stock"
+msgstr "Stavi na zalihu"
+
+#. module: procurement
+#: model:ir.actions.act_window,help:procurement.procurement_action
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to create a procurement order. \n"
+" </p><p>\n"
+" A procurement order is used to record a need for a specific\n"
+" product at a specific location. Procurement orders are "
+"usually\n"
+" created automatically from sales orders, pull logistic rules "
+"or\n"
+" minimum stock rules.\n"
+" </p><p>\n"
+" When the procurement order is confirmed, it automatically\n"
+" creates the necessary operations to fullfil the need: "
+"purchase\n"
+" order proposition, manufacturing order, etc.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kliknite da kreirate nalog naručivanja. \n"
+" </p><p>\n"
+" Nalog naručivanja se koristi da se registruje potreba za "
+"specifičnim\n"
+" proizvodom na specifičnoj lokaciji. Nalozi naručivanja su "
+"obično\n"
+" kreirani automatski iz prodajnih narudžbi, logističkim "
+"pravilima povlačenja ili\n"
+" pravilima minimalne zalihe.\n"
+" </p><p>\n"
+" Kada je nalog naručivanja potvrđen, automatski kreira "
+"potrebne operacije\n"
+" da ispuni potrebe: predlog nabavne narudžbe, nalog "
+"proizvodnje, itd.\n"
+" </p>\n"
+" "
+
+#. module: procurement
+#: help:procurement.order,procure_method:0
+msgid ""
+"If you encode manually a Procurement, you probably want to use a make to "
+"order method."
+msgstr ""
+"Ako ručno šifrirate naručivanje, vjerovatno želite da koristite metodu "
+"napravi na zalihu."
+
+#. module: procurement
+#: model:ir.ui.menu,name:procurement.menu_stock_procurement
+msgid "Automatic Procurements"
+msgstr "Automatska naručivanja"
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"use the available\n"
+" inventory"
+msgstr ""
+"koristi dostupnu\n"
+" inventuru"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order
+#: model:process.process,name:procurement.process_process_procurementprocess0
+#: view:procurement.order:0
+msgid "Procurement"
+msgstr "Naručivanje"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action
+msgid "Procurement Orders"
+msgstr "Nalozi naručivanja"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "To Fix"
+msgstr "Za popraviti"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Exceptions"
+msgstr "Izuzeci"
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_serviceonorder0
+msgid "Assignment from Production or Purchase Order."
+msgstr "Prijenos iz proizvodnje ili naloga za nabavu."
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property
+msgid "Property"
+msgstr "Svojstva"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_make_procurement
+#: view:make.procurement:0
+msgid "Procurement Request"
+msgstr "Zahtjev za naručivanje"
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid "Compute Stock"
+msgstr "Izračunaj zalihu"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,procurement_draft_ids:0
+msgid "Related Procurement Orders"
+msgstr "Povezani nalozi naručivanja"
+
+#. module: procurement
+#: field:procurement.order,message_unread:0
+msgid "Unread Messages"
+msgstr "Nepročitane poruke"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "plus"
+msgstr "plus"
+
+#. module: procurement
+#: help:procurement.order,state:0
+msgid ""
+"When a procurement is created the status is set to 'Draft'.\n"
+" If the procurement is confirmed, the status is set to 'Confirmed'. "
+" \n"
+"After confirming the status is set to 'Running'.\n"
+" If any exception arises in the order then the status is set to "
+"'Exception'.\n"
+" Once the exception is removed the status becomes 'Ready'.\n"
+" It is in 'Waiting'. status when the procurement is waiting for another one "
+"to finish."
+msgstr ""
+"Kada je naručivanje kreirano status je postavljen na 'U pripremi'.\n"
+"Ako je naručivanje potvrđeno, status je 'Potvrđeno'. \n"
+"Nakon potvrđivanja status je 'U toku'.\n"
+"Ako se dogodi izuzetak status je 'Izuzetk'.\n"
+"Jednom kada se izuzetak ukloni status je 'Spremno'.\n"
+"Nalazi se u statusu 'Na čekanju' kada naručivanje čeka drugo naručivanje da "
+"završi."
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the "
+"orderpoint without removing it."
+msgstr ""
+"Ako je polje aktivno postavljeno na netačno, omogućiće Vam da sakrijete "
+"tačku naručivanja bez da je uklonite."
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"When you sell this service, nothing special will be triggered\n"
+" to deliver the customer, as you set the "
+"procurement method as\n"
+" 'Make to Stock'."
+msgstr ""
+"Kada prodate ovu uslugu, ništa se specijalno neće pokrenuti\n"
+" da isporučite kupcu, jer ste stavili metodu "
+"nabavke\n"
+" 'Napravi na zalihu'."
+
+#. module: procurement
+#: help:procurement.orderpoint.compute,automatic:0
+msgid "If the stock of a product is under 0, it will act like an orderpoint"
+msgstr "Ako je zaliha proizvoda ispod 0, ponašaće se kao tačka naručivanja"
+
+#. module: procurement
+#: field:procurement.order,product_uom:0
+#: field:stock.warehouse.orderpoint,product_uom:0
+msgid "Product Unit of Measure"
+msgstr "JM proizvoda"
+
+#. module: procurement
+#: constraint:stock.warehouse.orderpoint:0
+msgid ""
+"You have to select a product unit of measure in the same category than the "
+"default unit of measure of the product"
+msgstr ""
+"Morate da izaberete jedinicu mjere proizvoda u istoj kategoriji kao zadana "
+"jedinica mjere proizvoda"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement Lines"
+msgstr "Stavke naručivanja"
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"as it's a consumable (as a result of this, the quantity\n"
+" on hand may become negative)."
+msgstr ""
+"jer je potrošni (kao rezultat ovoga, količine\n"
+" pri ruci mogu biti negativne)."
+
+#. module: procurement
+#: field:procurement.order,note:0
+msgid "Note"
+msgstr "Zabilješka"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_min_qty:0
+msgid ""
+"When the virtual stock goes below the Min Quantity specified for this field, "
+"OpenERP generates a procurement to bring the forecasted quantity to the Max "
+"Quantity."
+msgstr ""
+"Kada virtualne zalihe odu ispod minimalne količine specifirane za ovo polje, "
+"OpenERP će generisati naručivanje da vrati predviđenu količinu na maksimalnu."
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Draft"
+msgstr "U pripremi"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.action_compute_schedulers
+#: model:ir.ui.menu,name:procurement.menu_stock_proc_schedulers
+#: view:procurement.order.compute.all:0
+msgid "Run Schedulers"
+msgstr "Pokreni planere"
+
+#. module: procurement
+#: view:procurement.order.compute:0
+msgid "This wizard will schedule procurements."
+msgstr "Ovaj čarobnak će zakazati naručivanja."
+
+#. module: procurement
+#: view:procurement.order:0
+#: field:procurement.order,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: procurement
+#: selection:product.template,supply_method:0
+msgid "Buy"
+msgstr "Kupi"
+
+#. module: procurement
+#: view:product.product:0
+msgid "for the delivery order."
+msgstr "za otpremnicu."
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Normal"
+msgstr "Normal"
+
+#. module: procurement
+#: help:product.template,supply_method:0
+msgid ""
+"Manufacture: When procuring the product, a manufacturing order or a task "
+"will be generated, depending on the product type. \n"
+"Buy: When procuring the product, a purchase order will be generated."
+msgstr ""
+"Proizvedi: kada naručujete proizvod, nalog proizvodnje ili zadatak će biti "
+"generisan, zavisno od tipa proizvoda.\n"
+"Kupi: kada naručujete proizvod, narudžba nabavke će se generisati."
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,product_max_qty:0
+msgid "Maximum Quantity"
+msgstr "Maksimalna količina"
+
+#. module: procurement
+#: field:procurement.order,message_is_follower:0
+msgid "Is a Follower"
+msgstr "Je pratilac"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:367
+#, python-format
+msgid "Not enough stock."
+msgstr "Nema dovoljno zalihe."
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,active:0
+msgid "Active"
+msgstr "Aktivan"
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_procureproducts0
+msgid "Procure Products"
+msgstr "Naruči proizvode"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:312
+#, python-format
+msgid ""
+"Please check the quantity in procurement order(s) for the product \"%s\", it "
+"should not be 0 or less!"
+msgstr ""
+"Molimo vas da provjerite količinu na nalozima naručivanja za proizvod "
+"\"%s\", ne bi trebla biti 0 ili niža."
+
+#. module: procurement
+#: field:procurement.order,date_planned:0
+msgid "Scheduled date"
+msgstr "Zakazani datum"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Exception"
+msgstr "Izuzetak"
+
+#. module: procurement
+#: view:product.product:0
+msgid ""
+"When you sell this product, a delivery order will be created.\n"
+" OpenERP will consider that the"
+msgstr ""
+"Kada prodajete ovaj proizvod, otpremnica će biti kreirana.\n"
+" OpenERP smatrati će da"
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:133
+#, python-format
+msgid "Automatic OP: %s"
+msgstr "Automatska tačka naručivanja: %s"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_orderpoint_compute
+msgid "Automatic Order Point"
+msgstr "Automatska tačka naručivanja"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,qty_multiple:0
+msgid "Qty Multiple"
+msgstr "Množilac količine"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,qty_multiple:0
+msgid "The procurement quantity will be rounded up to this multiple."
+msgstr "Količina naručivanja će biti zaokružena do ovog množioca."
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_res_company
+msgid "Companies"
+msgstr "Kompanije"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Extra Information"
+msgstr "Dodatne Informacije"
+
+#. module: procurement
+#: field:procurement.order,message_summary:0
+msgid "Summary"
+msgstr "Rezime"
+
+#. module: procurement
+#: sql_constraint:stock.warehouse.orderpoint:0
+msgid "Qty Multiple must be greater than zero."
+msgstr "Množioc količine mora biti veći od nule."
+
+#. module: procurement
+#: selection:stock.warehouse.orderpoint,logic:0
+msgid "Order to Max"
+msgstr "Naruči maksimalno"
+
+#. module: procurement
+#: field:procurement.order,date_close:0
+msgid "Date Closed"
+msgstr "Datum zatvaranja"
+
+#. module: procurement
+#: view:res.company:0
+msgid "Logistics"
+msgstr "Logistika"
+
+#. module: procurement
+#: help:product.template,procure_method:0
+msgid ""
+"Make to Stock: When needed, the product is taken from the stock or we wait "
+"for replenishment. \n"
+"Make to Order: When needed, the product is purchased or produced."
+msgstr ""
+"Napravi na zalihu: kada je potrebno, proizvod je uzet sa zalihe ili čekamo "
+"dopunjavanje zalihe.\n"
+"Napravi na narudžbu: kada je potrebno, proizvod je kupljen ili proizveden."
+
+#. module: procurement
+#: field:mrp.property,composition:0
+msgid "Properties composition"
+msgstr "Sastav svojstava"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:311
+#, python-format
+msgid "Data Insufficient !"
+msgstr "Nedovoljno podataka!"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_mrp_property_group
+#: field:mrp.property,group_id:0
+#: field:mrp.property.group,name:0
+msgid "Property Group"
+msgstr "Grupa svojstava"
+
+#. module: procurement
+#: view:stock.warehouse.orderpoint:0
+msgid "Misc"
+msgstr "Ostalo"
+
+#. module: procurement
+#: field:stock.move,procurements:0
+msgid "Procurements"
+msgstr "Naručivanja"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Run Procurement"
+msgstr "Pokreni naručivanja"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Done"
+msgstr "Gotovo"
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "Cancel"
+msgstr "Otkaži"
+
+#. module: procurement
+#: field:stock.warehouse.orderpoint,logic:0
+msgid "Reordering Mode"
+msgstr "Metoda ponovnog naručivanja"
+
+#. module: procurement
+#: field:procurement.order,origin:0
+msgid "Source Document"
+msgstr "Izvorni dokument"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Not urgent"
+msgstr "Nije hitno"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.product_open_orderpoint
+#: view:product.product:0
+msgid "Orderpoints"
+msgstr "Tačke naručivanja"
+
+#. module: procurement
+#: help:stock.warehouse.orderpoint,product_max_qty:0
+msgid ""
+"When the virtual stock goes below the Min Quantity, OpenERP generates a "
+"procurement to bring the forecasted quantity to the Quantity specified as "
+"Max Quantity."
+msgstr ""
+"Kada virtuelna zaliha padne ispod minimalne količine, OpenERP će generisati "
+"naručivanje da dovede predviđenu količinu na maksimalnu količinu."
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_procurement_order_compute_all
+msgid "Compute all schedulers"
+msgstr "Izračunaj sve planere"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Late"
+msgstr "Kasni"
+
+#. module: procurement
+#: view:board.board:0
+msgid "Procurements in Exception"
+msgstr "Naručivanja u iznimkama"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.procurement_action5
+#: model:ir.actions.act_window,name:procurement.procurement_action_board
+#: model:ir.actions.act_window,name:procurement.procurement_exceptions
+#: model:ir.ui.menu,name:procurement.menu_stock_procurement_action
+#: view:procurement.order:0
+msgid "Procurement Exceptions"
+msgstr "Izuzetak u naručivanju"
+
+#. module: procurement
+#: field:product.product,orderpoint_ids:0
+msgid "Minimum Stock Rules"
+msgstr "Pravila minimalnih zaliha"
+
+#. module: procurement
+#: view:make.procurement:0
+msgid ""
+"Fill is this for to launch a procurement request for this\n"
+" product. According to the product configuration, "
+"this may\n"
+" trigger a draft purchase order, a manufacturing "
+"order or\n"
+" a new task."
+msgstr ""
+
+#. module: procurement
+#: field:procurement.order,close_move:0
+msgid "Close Move at end"
+msgstr "Zatvori kretanje na kraju"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Scheduled Date"
+msgstr "Zakazani datum"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_product_product
+#: field:make.procurement,product_id:0
+#: view:procurement.order:0
+#: field:procurement.order,product_id:0
+#: field:stock.warehouse.orderpoint,product_id:0
+msgid "Product"
+msgstr "Proizvod"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Temporary"
+msgstr "Privremeno"
+
+#. module: procurement
+#: field:mrp.property,description:0
+#: field:mrp.property.group,description:0
+#: field:procurement.order,name:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Urgent"
+msgstr "Hitno"
+
+#. module: procurement
+#: selection:procurement.order,state:0
+msgid "Running"
+msgstr "U toku"
+
+#. module: procurement
+#: model:process.node,name:procurement.process_node_serviceonorder0
+#: selection:procurement.order,procure_method:0
+#: selection:product.template,procure_method:0
+msgid "Make to Order"
+msgstr "Napravi na narudžbu"
+
+#. module: procurement
+#: field:product.template,supply_method:0
+msgid "Supply Method"
+msgstr "Metoda snadbjevanja"
+
+#. module: procurement
+#: field:procurement.order,move_id:0
+msgid "Reservation"
+msgstr "Rezervacija"
+
+#. module: procurement
+#: model:process.node,note:procurement.process_node_procureproducts0
+msgid "The way to procurement depends on the product type."
+msgstr "Način naručivanja ovisi o vrsti proizvoda"
+
+#. module: procurement
+#: view:product.product:0
+msgid "When you sell this product, OpenERP will"
+msgstr "Kada prodajete ovaj proizvod, OpenERP će"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Temporary Procurement Exceptions"
+msgstr "Privremeni izuzetci naručivanja"
+
+#. module: procurement
+#: field:mrp.property,name:0
+#: field:stock.warehouse.orderpoint,name:0
+msgid "Name"
+msgstr "Naziv"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "max"
+msgstr "max"
+
+#. module: procurement
+#: model:ir.actions.act_window,name:procurement.act_procurement_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.act_stock_warehouse_2_stock_warehouse_orderpoint
+#: model:ir.actions.act_window,name:procurement.action_orderpoint_form
+#: model:ir.ui.menu,name:procurement.menu_stock_order_points
+#: view:stock.warehouse.orderpoint:0
+msgid "Reordering Rules"
+msgstr "Pravila ponovnog naručivanja"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:139
+#, python-format
+msgid "Cannot delete Procurement Order(s) which are in %s state."
+msgstr "Ne može se obrisati nalog naručivanja koji je u statusu %s"
+
+#. module: procurement
+#: field:procurement.order,product_uos:0
+msgid "Product UoS"
+msgstr "Jedinica prodaje proizvoda"
+
+#. module: procurement
+#: model:ir.model,name:procurement.model_product_template
+msgid "Product Template"
+msgstr "Šablon proizvoda"
+
+#. module: procurement
+#: view:procurement.orderpoint.compute:0
+msgid ""
+"Wizard checks all the stock minimum rules and generate procurement order."
+msgstr ""
+"Čarobnjak provjerava sva pravila minimalne zalihe i generiše nalog "
+"naručivanja."
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Search Procurement"
+msgstr "Pretraži naručivanja"
+
+#. module: procurement
+#: help:res.company,schedule_range:0
+msgid ""
+"This is the time frame analysed by the scheduler when computing "
+"procurements. All procurements that are not between today and today+range "
+"are skipped for future computation."
+msgstr ""
+"Ovo je vremenski okvir analiziran od strane planera kada se izračunavaju "
+"naručivanja. Sva naručivanja koja nisu između danas i danas+raspon su "
+"preskočena za buduća izračunavanja."
+
+#. module: procurement
+#: selection:procurement.order,priority:0
+msgid "Very Urgent"
+msgstr "Vrlo hitno"
+
+#. module: procurement
+#: field:procurement.orderpoint.compute,automatic:0
+msgid "Automatic Orderpoint"
+msgstr "Automatske tačke naručivanja"
+
+#. module: procurement
+#: help:procurement.order,message_ids:0
+msgid "Messages and communication history"
+msgstr "Poruke i istorija komunikacije"
+
+#. module: procurement
+#: view:procurement.order:0
+msgid "Procurement started late"
+msgstr "Naručivanje je zakasnilo"
+
+#. module: procurement
+#: selection:mrp.property,composition:0
+msgid "min"
+msgstr "min"
+
+#. module: procurement
+#: view:make.procurement:0
+#: view:procurement.order.compute:0
+#: view:procurement.order.compute.all:0
+#: view:procurement.orderpoint.compute:0
+msgid "or"
+msgstr "ili"
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:134
+#, python-format
+msgid "SCHEDULER"
+msgstr "PLANER"
+
+#. module: procurement
+#: view:product.product:0
+msgid "Request Procurement"
+msgstr "Zahtjev za naručivanjem"
+
+#. module: procurement
+#: code:addons/procurement/schedulers.py:87
+#, python-format
+msgid "PROC %d: on order - %3.2f %-5s - %s"
+msgstr "Naručivanje %d: na narudžbu - %3.2f %-5s - %s"
+
+#. module: procurement
+#: code:addons/procurement/procurement.py:339
+#, python-format
+msgid "Products reserved from stock."
+msgstr "Proizvodi rezervisani sa zalihe"
diff --git a/addons/procurement/procurement.py b/addons/procurement/procurement.py
index 93b9417bded..032952aa511 100644
--- a/addons/procurement/procurement.py
+++ b/addons/procurement/procurement.py
@@ -127,6 +127,22 @@ class procurement_order(osv.osv):
'company_id': lambda self, cr, uid, c: self.pool.get('res.company')._company_default_get(cr, uid, 'procurement.order', context=c)
}
+ def message_track(self, cr, uid, ids, tracked_fields, initial_values, context=None):
+ """ Overwrite message_track to avoid tracking more than once the confirm-exception loop
+ Add '_first_pass_done_' to the note field only the first time stuck in exception state
+ Will avoid getting furthur confirmed and exception change of state messages
+
+ TODO: this hack is necessary for a stable version but should be avoided for the next release.
+ Instead find a more elegant way to prevent redundant messages or entirely stop tracking states on procurement orders
+ """
+ for proc in self.browse(cr, uid, ids, context=context):
+ if not proc.note or '_first_pass_done_' not in proc.note or proc.state not in ('confirmed', 'exception'):
+ super(procurement_order, self).message_track(cr, uid, [proc.id], tracked_fields, initial_values, context=context)
+ if proc.state == 'exception':
+ cr.execute("""UPDATE procurement_order set note = TRIM(both E'\n' FROM COALESCE(note, '') || %s) WHERE id = %s""", ('\n\n_first_pass_done_',proc.id))
+
+ return True
+
def unlink(self, cr, uid, ids, context=None):
procurements = self.read(cr, uid, ids, ['state'], context=context)
unlink_ids = []
@@ -371,7 +387,6 @@ class procurement_order(osv.osv):
ctx_wkf = dict(context or {})
ctx_wkf['workflow.trg_write.%s' % self._name] = False
self.write(cr, uid, [procurement.id], {'message': message},context=ctx_wkf)
- self.message_post(cr, uid, [procurement.id], body=message, context=context)
return ok
def step_workflow(self, cr, uid, ids, context=None):
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index 6eb9694f200..6e4d31b3b93 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -15,7 +15,7 @@
<filter string="Can be Sold" name="filter_to_sell" icon="terp-accessories-archiver-minus" domain="[('sale_ok','=',1)]"/>
<field name="categ_id"/>
<group expand="0" string="Context...">
- <field name="pricelist_id" context="{'pricelist': self}" filter_domain="[]" groups="product.group_sale_pricelist"/>
+ <field name="pricelist_id" widget="selection" context="{'pricelist': self}" filter_domain="[]" groups="product.group_sale_pricelist"/> <!-- Keep widget=selection on this field to pass numeric `self` value, which is not the case for regular m2o widgets! -->
<field name="company_id" groups="base.group_multi_company"/>
</group>
<group expand='0' string='Group by...'>
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index d90d7676ddb..351b55fdcfc 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -407,6 +407,16 @@ class project_issue(osv.Model):
task = self.pool.get('project.task').browse(cr, uid, task_id, context=context)
return {'value': {'user_id': task.user_id.id, }}
+ def onchange_partner_id(self, cr, uid, ids, partner_id, context=None):
+ """ This function returns value of partner email address based on partner
+ :param part: Partner's id
+ """
+ result = {}
+ if partner_id:
+ partner = self.pool['res.partner'].browse(cr, uid, partner_id, context)
+ result['email_from'] = partner.email
+ return {'value': result}
+
def get_empty_list_help(self, cr, uid, help, context=None):
context['empty_list_help_model'] = 'project.project'
context['empty_list_help_id'] = context.get('default_project_id')
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 9222d954001..3e90a2a43d6 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -65,7 +65,7 @@
<group>
<field name="user_id"
context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'project.group_project_user']}"/>
- <field name="partner_id" on_change="onchange_partner_id(partner_id, email_from)"/>
+ <field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="email_from"/>
<label for="project_id"/>
<div>
diff --git a/addons/project_issue_sheet/i18n/sl.po b/addons/project_issue_sheet/i18n/sl.po
new file mode 100644
index 00000000000..8ead63388b9
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/sl.po
@@ -0,0 +1,72 @@
+# Slovenian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-20 08:52+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Slovenian <sl@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-10-21 04:36+0000\n"
+"X-Generator: Launchpad (build 16807)\n"
+
+#. module: project_issue_sheet
+#: code:addons/project_issue_sheet/project_issue_sheet.py:57
+#, python-format
+msgid "The Analytic Account is pending !"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_account_analytic_line
+msgid "Analytic Line"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_project_issue
+msgid "Project Issue"
+msgstr ""
+
+#. module: project_issue_sheet
+#: model:ir.model,name:project_issue_sheet.model_hr_analytic_timesheet
+msgid "Timesheet Line"
+msgstr ""
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "on_change_project(project_id)"
+msgstr ""
+
+#. module: project_issue_sheet
+#: code:addons/project_issue_sheet/project_issue_sheet.py:57
+#: field:project.issue,analytic_account_id:0
+#, python-format
+msgid "Analytic Account"
+msgstr ""
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+msgid "Worklogs"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:account.analytic.line,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: project_issue_sheet
+#: view:project.issue:0
+#: field:project.issue,timesheet_ids:0
+msgid "Timesheets"
+msgstr ""
+
+#. module: project_issue_sheet
+#: field:hr.analytic.timesheet,issue_id:0
+msgid "Issue"
+msgstr ""
diff --git a/addons/project_long_term/i18n/es_MX.po b/addons/project_long_term/i18n/es_MX.po
index 0b930ae70a6..f3e591746da 100644
--- a/addons/project_long_term/i18n/es_MX.po
+++ b/addons/project_long_term/i18n/es_MX.po
@@ -1,633 +1,502 @@
-# Spanish translation for openobject-addons
-# Copyright (c) 2010 Rosetta Contributors and Canonical Ltd 2010
+# Spanish (Mexico) 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>, 2010.
+# 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: 2011-01-11 11:15+0000\n"
-"PO-Revision-Date: 2011-01-18 09:17+0000\n"
-"Last-Translator: Borja López Soilán (NeoPolus) <borjalopezsoilan@gmail.com>\n"
-"Language-Team: Spanish <es@li.org>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-21 16:57+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Spanish (Mexico) <es_MX@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: 2011-09-05 05:54+0000\n"
-"X-Generator: Launchpad (build 13830)\n"
+"X-Launchpad-Export-Date: 2013-10-22 04:44+0000\n"
+"X-Generator: Launchpad (build 16807)\n"
#. module: project_long_term
-#: model:ir.module.module,shortdesc:project_long_term.module_meta_information
-msgid "Long Term Project Management"
-msgstr "Gestión de proyectos a largo plazo"
-
-#. module: project_long_term
-#: view:project.compute.phases:0
-msgid "Compute Scheduling of Phases"
-msgstr "Calcular planificación de fases"
-
-#. module: project_long_term
-#: view:project.phase:0
-#: field:project.phase,next_phase_ids:0
-msgid "Next Phases"
-msgstr "Siguientes fases"
+#: help:project.phase,constraint_date_end:0
+msgid "force the phase to finish before this date"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-msgid "Project's Tasks"
-msgstr "Tareas del proyecto"
+#: selection:project.phase,state:0
+msgid "In Progress"
+msgstr ""
#. module: project_long_term
+#: field:account.analytic.account,use_phases:0
#: model:ir.actions.act_window,name:project_long_term.act_project_phases
+#: view:project.project:0
msgid "Phases"
-msgstr "Fases"
+msgstr ""
#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation
+#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation
#: view:project.phase:0
-#: view:project.resource.allocation:0
-msgid "Group By..."
-msgstr "Agrupar por..."
-
-#. module: project_long_term
-#: constraint:project.project:0
-msgid "Error! project start-date must be lower then project end-date."
+#: view:project.user.allocation:0
+msgid "Team Planning"
msgstr ""
-"¡Error! La fecha de inicio del proyecto debe ser anterior a la fecha final "
-"del proyecto."
#. module: project_long_term
-#: model:ir.actions.act_window,name:project_long_term.act_resouce_allocation
-#: view:project.resource.allocation:0
-msgid "Resources Allocation"
-msgstr "Asignación de recursos"
+#: field:project.phase,user_ids:0
+msgid "Assigned Users"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-msgid "Displaying Settings"
-msgstr "Mostrando configuración"
+#: field:project.phase,next_phase_ids:0
+msgid "Next Phases"
+msgstr ""
#. module: project_long_term
-#: field:project.compute.phases,target_project:0
-msgid "Schedule"
-msgstr "Programa"
+#: model:ir.model,name:project_long_term.model_project_user_allocation
+msgid "Phase User Allocation"
+msgstr ""
#. module: project_long_term
-#: model:ir.module.module,description:project_long_term.module_meta_information
-msgid ""
-"\n"
-"\n"
-" Long Term Project management module that tracks planning, "
-"scheduling, resources allocation.\n"
-" Mainly used with Big project management.\n"
-" - Project Phases will be maintained by Manager of the project\n"
-" - Compute Phase Scheduling: Compute start date and end date of "
-"the phases which are in draft,open and pending state of the project given.\n"
-" If no project given then all the "
-"draft,open and pending state phases will be taken\n"
-" - Compute Task Scheduling: This works same as the scheduler "
-"button on project.phase. It takes the project as argument and computes all "
-"the open,draft and pending tasks\n"
-" - Schedule Tasks: All the tasks which are in draft,pending and "
-"open state are scheduled with taking the phase's start date\n"
-"\n"
-" "
-msgstr ""
-"\n"
-"\n"
-" Módulo de Gestión de Proyectos a Largo Plazo que realiza el "
-"seguimiento de planeamiento, programación, asignación de recursos.\n"
-" Utilizado principalmente con la gestión de proyectos grandes.\n"
-" - Las Fases del Proyecto serán gestionadas por el Administrador "
-"del proyecto\n"
-" - Calcula la Programación de Fases: Calcula la fecha de inicio y "
-"fecha de finalización de las fases del proyecto en estado borrador, abierto "
-"y pendiente.\n"
-" Si no hay ningún proyecto concreto, "
-"entonces se llevarán todas las fases en estado borrador, abierto y "
-"pendiente\n"
-" - Calcula la Programación de Tareas: Esto funciona igual que el "
-"botón programador de project.phase. Toma el proyecto como argumento y "
-"calcula todas las tareas abiertas, en borrador y pendientes.\n"
-" - Programa tareas: Todas las tareas en estado borrador, "
-"pendiente y abierto se programan desde la fecha de inicio de la fase\n"
-"\n"
-" "
-
-#. module: project_long_term
-#: constraint:project.task:0
-msgid "Error ! You cannot create recursive tasks."
-msgstr "¡Error! No se pueden crear tareas recursivas."
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr ""
#. module: project_long_term
-#: model:ir.ui.menu,name:project_long_term.menu_resouce_allocation
-msgid "Resource Allocations"
-msgstr "Asignación de recursos"
+#: model:ir.actions.act_window,help:project_long_term.action_project_compute_phases
+msgid ""
+"To schedule phases of all or a specified project. It then open a gantt "
+"view.\n"
+" "
+msgstr ""
#. module: project_long_term
-#: constraint:project.project:0
-msgid "Error! You cannot assign escalation to the same project!"
-msgstr "¡Error! No puede asignar un escalado al mismo proyecto."
+#: field:project.phase,task_ids:0
+msgid "Project Tasks"
+msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:128
-#, python-format
-msgid "Day"
-msgstr "Día"
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases
+#: model:ir.ui.menu,name:project_long_term.menu_compute_phase
+#: view:project.compute.phases:0
+msgid "Schedule Phases"
+msgstr ""
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_project_task
-msgid "Task"
-msgstr "Tarea"
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "Status"
+msgstr ""
#. module: project_long_term
-#: selection:project.compute.phases,target_project:0
-msgid "Compute a Single Project"
-msgstr "Calcular un sólo proyecto"
+#: field:project.compute.phases,target_project:0
+msgid "Action"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-#: field:project.phase,previous_phase_ids:0
-msgid "Previous Phases"
-msgstr "Fases previas"
-
-#. module: project_long_term
-#: help:project.phase,product_uom:0
-msgid "UoM (Unit of Measure) is the unit of measurement for Duration"
-msgstr "UdM (Unidad de Medida) es la unidad de medida para la duración"
+msgid "Start Phase"
+msgstr ""
#. module: project_long_term
-#: help:project.phase,date_end:0
-msgid ""
-" It's computed by the scheduler according to the start date and the duration."
+#: model:ir.model,name:project_long_term.model_project_task
+msgid "Task"
msgstr ""
-" Es calculado por el planificador en fucnión de la fecha de inicio y la "
-"duración"
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_project_project
-#: field:project.compute.phases,project_id:0
-#: field:project.compute.tasks,project_id:0
#: view:project.phase:0
-#: field:project.phase,project_id:0
-#: view:project.resource.allocation:0
-#: field:project.resource.allocation,project_id:0
-#: view:project.task:0
-msgid "Project"
-msgstr "Proyecto"
+msgid "Draft"
+msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/wizard/project_compute_phases.py:50
-#, python-format
-msgid "Error!"
-msgstr "¡Error!"
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "C_ompute"
+msgstr ""
#. module: project_long_term
+#: view:project.phase:0
#: selection:project.phase,state:0
-msgid "Cancelled"
-msgstr "Cancelado"
+msgid "New"
+msgstr ""
#. module: project_long_term
-#: help:project.resource.allocation,date_end:0
-msgid "Ending Date"
-msgstr "Fecha de fin"
+#: field:project.phase,product_uom:0
+msgid "Duration Unit of Measure"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves
+msgid "Resource Leaves"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-msgid "Planning"
-msgstr "Planificación"
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr ""
#. module: project_long_term
-#: field:project.phase,constraint_date_end:0
-msgid "Deadline"
-msgstr "Fecha límite"
+#: help:project.phase,progress:0
+msgid "Computed based on related tasks"
+msgstr ""
#. module: project_long_term
-#: view:project.compute.phases:0
-#: view:project.compute.tasks:0
-msgid "_Cancel"
-msgstr "_Cancelar"
+#: view:project.phase:0
+msgid "In Progress Phases"
+msgstr ""
#. module: project_long_term
-#: model:ir.actions.act_window,name:project_long_term.action_project_compute_phases
-#: model:ir.ui.menu,name:project_long_term.menu_compute_phase
-msgid "Compute Phase Scheduling"
-msgstr "Calcular planificación de fases"
+#: code:addons/project_long_term/project_long_term.py:140
+#, python-format
+msgid "%s (copy)"
+msgstr ""
#. module: project_long_term
-#: code:addons/project_long_term/project_long_term.py:190
+#: code:addons/project_long_term/wizard/project_compute_phases.py:48
#, python-format
-msgid " (copy)"
-msgstr " (copia)"
+msgid "Please specify a project to schedule."
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-#: view:project.resource.allocation:0
-#: field:project.resource.allocation,useability:0
-msgid "Availability"
-msgstr "Disponibilidad"
+#: view:project.user.allocation:0
+msgid "Group By..."
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-#: field:project.phase,state:0
-msgid "State"
-msgstr "Estado"
+msgid "Remaining Hours"
+msgstr ""
#. module: project_long_term
-#: view:project.compute.phases:0
-#: view:project.compute.tasks:0
-msgid "C_ompute"
-msgstr "C_alcular"
+#: field:project.phase,constraint_date_start:0
+msgid "Minimum Start Date"
+msgstr ""
#. module: project_long_term
-#: view:project.compute.phases:0
-msgid "Compute Scheduling of phases for all or specified project"
+#: help:project.phase,product_uom:0
+msgid ""
+"Unit of Measure (Unit of Measure) is the unit of measurement for Duration"
msgstr ""
-"Calcular planificación de fases para todos o el proyecto especificado"
#. module: project_long_term
-#: field:project.phase,product_uom:0
-msgid "Duration UoM"
-msgstr "UdM duración"
+#: help:project.phase,user_ids:0
+msgid ""
+"The resources on the project can be computed automatically by the scheduler."
+msgstr ""
#. module: project_long_term
-#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks
-#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks
-msgid "Compute Task Scheduling"
-msgstr "Calcular planificación de tareas"
+#: field:project.phase,sequence:0
+msgid "Sequence"
+msgstr ""
#. module: project_long_term
-#: field:project.phase,constraint_date_start:0
-msgid "Minimum Start Date"
-msgstr "Fecha de inicio mínima"
+#: help:account.analytic.account,use_phases:0
+msgid "Check this field if you plan to use phase-based scheduling"
+msgstr ""
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_project_resource_allocation
-#: view:project.phase:0
-#: view:project.resource.allocation:0
-msgid "Project Resource Allocation"
-msgstr "Asignación de recursos de proyecto"
+#: help:project.phase,state:0
+msgid ""
+"If the phase is created the status 'Draft'.\n"
+" If the phase is started, the status becomes 'In Progress'.\n"
+" If review is needed the phase is in 'Pending' status. "
+" \n"
+" If the phase is over, the status is set to 'Done'."
+msgstr ""
#. module: project_long_term
-#: view:project.compute.tasks:0
-msgid "Compute Scheduling of Task"
-msgstr "Calcular planificación de tarea"
+#: field:project.phase,progress:0
+msgid "Progress"
+msgstr ""
#. module: project_long_term
-#: model:ir.actions.act_window,name:project_long_term.act_project_resource
-#: model:ir.ui.menu,name:project_long_term.menu_pm_resources_project1
+#: model:ir.ui.menu,name:project_long_term.menu_pm_users_project1
#: model:ir.ui.menu,name:project_long_term.menu_view_resource
-#: view:project.resource.allocation:0
msgid "Resources"
-msgstr "Recursos"
-
-#. module: project_long_term
-#: model:ir.actions.act_window,help:project_long_term.action_project_compute_phases
-msgid ""
-"To schedule phases of all or a specified project. It then open a gantt "
-"view.\n"
-"\t "
msgstr ""
-"Para programar las fases de todos los proyectos, o uno específico. A "
-"continuación, abrirá una vista de Gantt.\n"
-"\t "
-
-#. module: project_long_term
-#: help:project.resource.allocation,date_start:0
-msgid "Starting Date"
-msgstr "Fecha de inicio"
-
-#. module: project_long_term
-#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
-msgid "Related Tasks"
-msgstr "Tareas relacionadas"
#. module: project_long_term
#: view:project.phase:0
-msgid "Dates"
-msgstr "Fechas"
+msgid "My Projects"
+msgstr ""
#. module: project_long_term
-#: help:project.resource.allocation,useability:0
-msgid ""
-"Availability of this resource for this project phase in percentage (=50%)"
+#: view:project.project:0
+#: view:project.user.allocation:0
+msgid "Phase"
msgstr ""
-"La disponibilidad de este recurso para esta fase de proyecto en porcentaje "
-"(=50%)"
#. module: project_long_term
-#: help:project.phase,constraint_date_start:0
-msgid "force the phase to start after this date"
-msgstr "Forzar que la fase epiece después de esta fecha"
+#: help:project.phase,duration:0
+msgid "By default in days"
+msgstr ""
#. module: project_long_term
-#: field:project.phase,task_ids:0
-msgid "Project Tasks"
-msgstr "Tareas de proyecto"
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
+msgid "Working Time"
+msgstr "Horario de trabajo"
#. module: project_long_term
-#: field:project.phase,resource_ids:0
-msgid "Project Resources"
-msgstr "Recursos de proyecto"
+#: view:project.phase:0
+msgid "Pending Phases"
+msgstr ""
#. module: project_long_term
-#: view:project.schedule.tasks:0
-msgid "_Ok"
-msgstr "_Aceptar"
+#: help:project.user.allocation,date_start:0
+msgid "Starting Date"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-msgid "Schedule and Display info"
-msgstr "Planificar y mostrar información"
-
-#. module: project_long_term
-#: help:project.phase,date_start:0
-msgid ""
-"It's computed by the scheduler according the project date or the end date of "
-"the previous phase."
+msgid "Related Tasks"
msgstr ""
-"Es calculado por el planificador en función de la fecha inicio o fecha fin "
-"de la fase anterior"
#. module: project_long_term
#: view:project.phase:0
-msgid "Month"
-msgstr "Mes"
+msgid "Start Month"
+msgstr ""
#. module: project_long_term
-#: constraint:project.phase:0
-msgid "Phase start-date must be lower than phase end-date."
-msgstr "La fecha-inicio de la fase debe ser anterior a la fecha-fin."
+#: field:project.phase,date_end:0
+#: field:project.user.allocation,date_end:0
+msgid "End Date"
+msgstr ""
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_project_schedule_tasks
-msgid "project.schedule.tasks"
-msgstr "proyecto.planificar.tareas"
+#: model:ir.model,name:project_long_term.model_project_compute_tasks
+msgid "Project Compute Tasks"
+msgstr ""
#. module: project_long_term
#: model:ir.actions.act_window,help:project_long_term.act_project_phase
msgid ""
"A project can be split into the different phases. For each phase, you can "
-"define your resources allocation, describe different tasks and link your "
-"phase to previous and next phases, add date constraints for the automated "
+"define your users allocation, describe different tasks and link your phase "
+"to previous and next phases, add date constraints for the automated "
"scheduling. Use the long term planning in order to planify your available "
-"human resources, convert your phases into a series of tasks when you start "
-"working on the project."
+"users, convert your phases into a series of tasks when you start working on "
+"the project."
msgstr ""
-"Un proyecto se puede dividir en diferentes fases. Para cada fase, puede "
-"definir su asignación de recursos, describir diferentes tareas y vincular su "
-"fase a fases previas y posteriores, añadir restricciones de fecha para la "
-"programación automática. Cuando empiece a trabajar en el proyecto, use el "
-"planeamiento a largo plazo para planificar sus recursos humanos disponibles "
-"y convertir sus fases en una serie de tareas."
#. module: project_long_term
-#: field:project.phase,date_start:0
-#: field:project.resource.allocation,date_start:0
-msgid "Start Date"
-msgstr "Fecha inicio"
+#: selection:project.compute.phases,target_project:0
+msgid "Compute a Single Project"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-msgid "Resource Allocation"
-msgstr "Asignación de recursos"
-
-#. module: project_long_term
-#: help:project.phase,constraint_date_end:0
-msgid "force the phase to finish before this date"
-msgstr "Forzar que la fase termine antes de esta fecha"
+#: field:project.phase,previous_phase_ids:0
+msgid "Previous Phases"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-#: selection:project.phase,state:0
-msgid "Draft"
-msgstr "Borrador"
+msgid "New Phases"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-#: selection:project.phase,state:0
-msgid "Pending"
-msgstr "Pendiente"
-
-#. module: project_long_term
-#: field:project.resource.allocation,name:0
-msgid "unknown"
-msgstr "desconocido"
+msgid "Tasks Details"
+msgstr ""
#. module: project_long_term
-#: field:project.resource.allocation,user_id:0
-msgid "User"
-msgstr "Usuario"
+#: field:project.project,phase_count:0
+msgid "Open Phases"
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-msgid "Task Detail"
-msgstr "Detalles tarea"
+#: help:project.phase,date_end:0
+msgid ""
+" It's computed by the scheduler according to the start date and the duration."
+msgstr ""
#. module: project_long_term
-#: help:project.project,resource_calendar_id:0
-msgid "Timetable working hours to adjust the gantt diagram report"
-msgstr "Horario de trabajo para ajustar el informe del diagrama de Gantt"
+#: constraint:project.phase:0
+msgid "Loops in phases not allowed"
+msgstr ""
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_project_compute_tasks
-msgid "Project Compute Tasks"
-msgstr "Calcular tareas proyecto"
+#: view:project.user.allocation:0
+#: field:project.user.allocation,user_id:0
+msgid "User"
+msgstr ""
#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_project
+#: field:project.compute.phases,project_id:0
+#: field:project.compute.tasks,project_id:0
#: view:project.phase:0
-msgid "Constraints"
-msgstr "Restricciones"
+#: field:project.phase,project_id:0
+#: view:project.task:0
+#: view:project.user.allocation:0
+#: field:project.user.allocation,project_id:0
+msgid "Project"
+msgstr ""
#. module: project_long_term
-#: help:project.phase,sequence:0
-msgid "Gives the sequence order when displaying a list of phases."
-msgstr "Indica el orden cuando se muestra la lista de fases"
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "Cancel"
+msgstr ""
#. module: project_long_term
-#: model:ir.actions.act_window,name:project_long_term.act_project_phase
-#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list
-#: model:ir.ui.menu,name:project_long_term.menu_project_phase
-#: model:ir.ui.menu,name:project_long_term.menu_project_phase_list
#: view:project.phase:0
-#: field:project.project,phase_ids:0
-msgid "Project Phases"
-msgstr "Fases proyecto"
+msgid "Project Users"
+msgstr ""
#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_phase
#: view:project.phase:0
-#: selection:project.phase,state:0
-msgid "Done"
-msgstr "Hecho"
+#: view:project.task:0
+#: field:project.task,phase_id:0
+#: field:project.user.allocation,phase_id:0
+msgid "Project Phase"
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-msgid "Cancel"
-msgstr "Cancelar"
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+msgid "Scheduling"
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-#: selection:project.phase,state:0
-msgid "In Progress"
-msgstr "En proceso"
+#: constraint:project.phase:0
+msgid "Phase start-date must be lower than phase end-date."
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-msgid "Remaining Hours"
-msgstr "Horas restantes"
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-#: field:project.phase,responsible_id:0
-msgid "Responsible"
-msgstr "Responsable"
+msgid "Total Hours"
+msgstr ""
#. module: project_long_term
-#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
-#: field:project.project,resource_calendar_id:0
-msgid "Working Time"
-msgstr "Horario de trabajo"
+#: model:ir.model,name:project_long_term.model_project_compute_phases
+msgid "Project Compute Phases"
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-msgid "Current"
-msgstr "Actual"
+#: field:project.phase,date_start:0
+#: field:project.user.allocation,date_start:0
+msgid "Start Date"
+msgstr ""
#. module: project_long_term
#: view:project.phase:0
-msgid "Start Phase"
-msgstr "Comenzar fase"
-
-#. module: project_long_term
-#: code:addons/project_long_term/wizard/project_compute_phases.py:50
-#, python-format
-msgid "Please Specify Project to be schedule"
-msgstr "Por favor seleccione el proyecto a planificar"
+msgid "Constraints"
+msgstr ""
#. module: project_long_term
-#: view:project.phase:0
-#: field:project.phase,total_hours:0
-msgid "Total Hours"
-msgstr "Total horas"
+#: help:project.phase,sequence:0
+msgid "Gives the sequence order when displaying a list of phases."
+msgstr ""
#. module: project_long_term
-#: view:project.schedule.tasks:0
-msgid "Task Scheduling completed successfully."
-msgstr "Planificación de tareas completada satisfactoriamente."
+#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
+msgid "Tasks"
+msgstr ""
#. module: project_long_term
-#: view:project.compute.tasks:0
-msgid "Compute Scheduling of Task for specified project."
-msgstr "Calcular planificación de tareas para un proyecto específico"
+#: help:project.user.allocation,date_end:0
+msgid "Ending Date"
+msgstr ""
#. module: project_long_term
-#: view:project.resource.allocation:0
-msgid "Phase"
-msgstr "Fase"
+#: code:addons/project_long_term/wizard/project_compute_phases.py:48
+#, python-format
+msgid "Error!"
+msgstr ""
#. module: project_long_term
-#: help:project.phase,state:0
+#: help:project.phase,date_start:0
msgid ""
-"If the phase is created the state 'Draft'.\n"
-" If the phase is started, the state becomes 'In Progress'.\n"
-" If review is needed the phase is in 'Pending' state. "
-" \n"
-" If the phase is over, the states is set to 'Done'."
+"It's computed by the scheduler according the project date or the end date of "
+"the previous phase."
msgstr ""
-"Si la fase se crea, el estado es \"Borrador\".\n"
-" Si la fase comienza, el estado cambia a \"En Proceso\".\n"
-" Si se necesita revisión, la fase está en estado \"Pendiente\".\n"
-" Si la fase está terminada, el estado se fija en \"Hecho\"."
-
-#. module: project_long_term
-#: field:project.phase,date_end:0
-#: field:project.resource.allocation,date_end:0
-msgid "End Date"
-msgstr "Fecha de fin"
-
-#. module: project_long_term
-#: view:project.resource.allocation:0
-#: field:project.resource.allocation,resource_id:0
-msgid "Resource"
-msgstr "Recurso"
-
-#. module: project_long_term
-#: field:project.phase,name:0
-msgid "Name"
-msgstr "Nombre"
#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase
+#: model:ir.actions.act_window,name:project_long_term.act_project_phase_list
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase
+#: model:ir.ui.menu,name:project_long_term.menu_project_phase_list
#: view:project.phase:0
-msgid "Tasks Details"
-msgstr "Detalles tareas"
-
-#. module: project_long_term
-#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
-msgid "Working Period"
-msgstr "Periodo de trabajo"
+#: field:project.project,phase_ids:0
+msgid "Project Phases"
+msgstr ""
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_resource_resource
-msgid "Resource Detail"
-msgstr "Detalle recurso"
+#: help:project.phase,constraint_date_start:0
+msgid "force the phase to start after this date"
+msgstr ""
#. module: project_long_term
-#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
-msgid "Scheduling"
-msgstr "Planificación"
+#: view:project.phase:0
+msgid "Month"
+msgstr ""
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_project_phase
-#: view:project.phase:0
-#: field:project.resource.allocation,phase_id:0
-#: view:project.task:0
-#: field:project.task,phase_id:0
-msgid "Project Phase"
-msgstr "Fase proyecto"
+#: model:ir.model,name:project_long_term.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
#. module: project_long_term
-#: model:ir.model,name:project_long_term.model_project_compute_phases
-msgid "Project Compute Phases"
-msgstr "Calcular fases del proyecto"
+#: field:project.phase,constraint_date_end:0
+msgid "Deadline"
+msgstr ""
#. module: project_long_term
-#: field:project.schedule.tasks,msg:0
-msgid "Message"
-msgstr "Mensaje"
+#: view:project.user.allocation:0
+msgid "Project User Allocation"
+msgstr ""
#. module: project_long_term
-#: constraint:project.phase:0
-msgid "Loops in phases not allowed"
-msgstr "No se permiten bucles en fases"
+#: model:ir.actions.act_window,name:project_long_term.action_project_compute_tasks
+#: model:ir.ui.menu,name:project_long_term.menu_compute_tasks
+#: view:project.compute.tasks:0
+msgid "Schedule Tasks"
+msgstr ""
#. module: project_long_term
-#: field:project.phase,sequence:0
-msgid "Sequence"
-msgstr "Secuencia"
+#: view:project.phase:0
+#: selection:project.phase,state:0
+msgid "Done"
+msgstr ""
#. module: project_long_term
#: selection:project.compute.phases,target_project:0
-msgid "Compute All Projects"
-msgstr "Calcular todos los proyectos"
+msgid "Compute All My Projects"
+msgstr ""
#. module: project_long_term
-#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar_leaves
-msgid "Resource Leaves"
-msgstr "Ausencias recursos"
+#: field:project.phase,user_force_ids:0
+msgid "Force Assigned Users"
+msgstr ""
#. module: project_long_term
-#: model:ir.actions.act_window,name:project_long_term.action_project_schedule_tasks
#: view:project.phase:0
-#: view:project.schedule.tasks:0
-msgid "Schedule Tasks"
-msgstr "Planificar tareas"
+#: field:project.phase,duration:0
+msgid "Duration"
+msgstr ""
#. module: project_long_term
-#: help:project.phase,duration:0
-msgid "By default in days"
-msgstr "Por defecto en días"
+#: view:project.user.allocation:0
+msgid "Users"
+msgstr ""
#. module: project_long_term
-#: field:project.phase,duration:0
-msgid "Duration"
-msgstr "Duración"
+#: field:project.phase,name:0
+msgid "Name"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "or"
+msgstr ""
diff --git a/addons/purchase/purchase.py b/addons/purchase/purchase.py
index a45afd1c5bc..e551eb40396 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -1041,28 +1041,25 @@ class procurement_order(osv.osv):
partner_obj = self.pool.get('res.partner')
user = self.pool.get('res.users').browse(cr, uid, uid, context=context)
for procurement in self.browse(cr, uid, ids, context=context):
- if not procurement.product_id.seller_ids:
- message = _('No supplier defined for this product !')
- self.message_post(cr, uid, [procurement.id], body=message)
- cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
- return False
+ message = ''
partner = procurement.product_id.seller_id #Taken Main Supplier of Product of Procurement.
- if not partner:
+ if not procurement.product_id.seller_ids:
+ message = _('No supplier defined for this product !')
+ elif not partner:
message = _('No default supplier defined for this product')
- self.message_post(cr, uid, [procurement.id], body=message)
- cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
+ elif not partner_obj.address_get(cr, uid, [partner.id], ['delivery'])['delivery']:
+ message = _('No address defined for the supplier')
+
+ if message:
+ if procurement.message != message:
+ cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
return False
+
if user.company_id and user.company_id.partner_id:
if partner.id == user.company_id.partner_id.id:
raise osv.except_osv(_('Configuration Error!'), _('The product "%s" has been defined with your company as reseller which seems to be a configuration error!' % procurement.product_id.name))
- address_id = partner_obj.address_get(cr, uid, [partner.id], ['delivery'])['delivery']
- if not address_id:
- message = _('No address defined for the supplier')
- self.message_post(cr, uid, [procurement.id], body=message)
- cr.execute('update procurement_order set message=%s where id=%s', (message, procurement.id))
- return False
return True
diff --git a/addons/purchase_double_validation/i18n/bs.po b/addons/purchase_double_validation/i18n/bs.po
new file mode 100644
index 00000000000..fd62a76192a
--- /dev/null
+++ b/addons/purchase_double_validation/i18n/bs.po
@@ -0,0 +1,49 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-27 14:43+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-28 05:23+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: purchase_double_validation
+#: model:ir.model,name:purchase_double_validation.model_purchase_config_settings
+msgid "purchase.config.settings"
+msgstr "purchase.config.settings"
+
+#. module: purchase_double_validation
+#: view:purchase.order:0
+msgid "Purchase orders which are not approved yet."
+msgstr "Prodajne narudžbe koje još nisu odobrene."
+
+#. module: purchase_double_validation
+#: field:purchase.config.settings,limit_amount:0
+msgid "limit to require a second approval"
+msgstr "ograniči da zahtjeva duplo odobrenje"
+
+#. module: purchase_double_validation
+#: view:board.board:0
+#: model:ir.actions.act_window,name:purchase_double_validation.purchase_waiting
+msgid "Purchase Orders Waiting Approval"
+msgstr "Prodajne narudžbe koje čekaju odobrenje"
+
+#. module: purchase_double_validation
+#: view:purchase.order:0
+msgid "To Approve"
+msgstr "Za odobriti"
+
+#. module: purchase_double_validation
+#: help:purchase.config.settings,limit_amount:0
+msgid "Amount after which validation of purchase is required."
+msgstr "Iznos nakon kojeg je potrebno odobrenje kupovine"
diff --git a/addons/purchase_requisition/i18n/bs.po b/addons/purchase_requisition/i18n/bs.po
new file mode 100644
index 00000000000..58fe989b0a1
--- /dev/null
+++ b/addons/purchase_requisition/i18n/bs.po
@@ -0,0 +1,497 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-27 14:23+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-28 05:23+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Request a Quotation"
+msgstr "Zahtjevaj predračun"
+
+#. module: purchase_requisition
+#: selection:purchase.requisition,exclusive:0
+msgid "Multiple Requisitions"
+msgstr "Višestruki zahtjevi"
+
+#. module: purchase_requisition
+#: field:purchase.requisition.line,product_uom_id:0
+msgid "Product Unit of Measure"
+msgstr "Jedinica mjere proizvoda"
+
+#. module: purchase_requisition
+#: model:ir.actions.act_window,help:purchase_requisition.action_purchase_requisition
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to start a new purchase requisition process. \n"
+" </p><p>\n"
+" A purchase requisition is the step before a request for "
+"quotation.\n"
+" In a purchase requisition (or purchase tender), you can record "
+"the\n"
+" products you need to buy and trigger the creation of RfQs to\n"
+" suppliers. After the negotiation, once you have reviewed all "
+"the\n"
+" supplier's offers, you can validate some and cancel others.\n"
+" </p>\n"
+" "
+msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kliknite da započnete novi proces zahtjeva nabavke. \n"
+" </p><p>\n"
+" Zahtjev nabavke je korak prije zahtjeva predračuna. U zahtjevu "
+"nabavke\n"
+" (ili nabavni tender) možete da zabilježite proizvode koje "
+"trebate da\n"
+" kupite i okinete kreiranje zahtjeva predračuna dobavljačima. "
+"Nakon \n"
+" pregovora, kada ste pregledali sve ponude, možete da odobrite "
+"neke\n"
+" i otkažete druge.\n"
+" </p>\n"
+" "
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: field:purchase.requisition,user_id:0
+msgid "Responsible"
+msgstr "Odgovoran"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: field:purchase.requisition,state:0
+msgid "Status"
+msgstr "Status"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Send to Suppliers"
+msgstr "Pošalji dobavljačima"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Group By..."
+msgstr "Grupiši po..."
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: selection:purchase.requisition,state:0
+msgid "Purchase Done"
+msgstr "Nabavka završena"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_follower_ids:0
+msgid "Followers"
+msgstr "Pratioci"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Purchase Requisition in negociation"
+msgstr "Nabavni zahtjevi u pregovorima"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition.partner,partner_id:0
+msgid "Supplier"
+msgstr "Dobavljač"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: selection:purchase.requisition,state:0
+msgid "New"
+msgstr "Novi"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Product Detail"
+msgstr "Detalji proizvoda"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Qty"
+msgstr "Kol."
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Type"
+msgstr "Tip"
+
+#. module: purchase_requisition
+#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition_partner
+#: model:ir.actions.report.xml,name:purchase_requisition.report_purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_purchase_requisition
+#: model:ir.module.category,name:purchase_requisition.module_category_purchase_requisition
+#: field:product.product,purchase_requisition:0
+#: field:purchase.order,requisition_id:0
+#: view:purchase.requisition:0
+#: field:purchase.requisition.line,requisition_id:0
+#: view:purchase.requisition.partner:0
+msgid "Purchase Requisition"
+msgstr "Zahtjev nabavke"
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_purchase_requisition_line
+msgid "Purchase Requisition Line"
+msgstr "Stavke zahtjeva nabavke"
+
+#. module: purchase_requisition
+#: view:purchase.order:0
+msgid "Purchase Orders with requisition"
+msgstr "Nabavne narudžbe sa zahtjevima"
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_product_product
+#: field:purchase.requisition.line,product_id:0
+msgid "Product"
+msgstr "Proizvod"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Quotations"
+msgstr "Predračuni"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Terms and Conditions"
+msgstr "Ugovori i Uslovi"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition,description:0
+msgid "Description"
+msgstr "Opis"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_unread:0
+msgid "Unread Messages"
+msgstr "Nepročitane poruke"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,company_id:0
+#: field:purchase.requisition.line,company_id:0
+msgid "Company"
+msgstr "Kompanija"
+
+#. module: purchase_requisition
+#: view:purchase.requisition.partner:0
+msgid "Create Quotation"
+msgstr "Kreiraj predračun"
+
+#. module: purchase_requisition
+#: help:purchase.requisition,message_ids:0
+msgid "Messages and communication history"
+msgstr "Poruke i istorija komunikacije"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Approved by Supplier"
+msgstr "Odobreno od strane dobavljača"
+
+#. module: purchase_requisition
+#: view:purchase.requisition.partner:0
+msgid "or"
+msgstr "ili"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Reset to Draft"
+msgstr "Vrati u pripremu"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Current Purchase Requisition"
+msgstr "Trenutni zahtjev nabavke"
+
+#. module: purchase_requisition
+#: model:res.groups,name:purchase_requisition.group_purchase_requisition_user
+msgid "User"
+msgstr "Korisnik"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Order Reference"
+msgstr "Referenca narudžbe"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_is_follower:0
+msgid "Is a Follower"
+msgstr "Je pratilac"
+
+#. module: purchase_requisition
+#: field:purchase.requisition.line,product_qty:0
+msgid "Quantity"
+msgstr "Količina"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Unassigned Requisition"
+msgstr "Nedodjeljeni zahtjevi"
+
+#. module: purchase_requisition
+#: model:ir.actions.act_window,name:purchase_requisition.action_purchase_requisition
+#: model:ir.ui.menu,name:purchase_requisition.menu_purchase_requisition_pro_mgt
+msgid "Purchase Requisitions"
+msgstr "Nabavni zahtjevi"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Quotation Detail"
+msgstr "Detalji predračuna"
+
+#. module: purchase_requisition
+#: code:addons/purchase_requisition/purchase_requisition.py:134
+#, python-format
+msgid ""
+"You have already one %s purchase order for this partner, you must cancel "
+"this purchase order to create a new quotation."
+msgstr ""
+"Već imate jedan %s nabavnu narudžbu za tog partnera. Morate poništiti ovau "
+"nabavnu narudžbu kako bi kreirali novi predračun."
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "End Date"
+msgstr "Krajnji datum"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition,name:0
+msgid "Requisition Reference"
+msgstr "Referenca zahtjeva"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,line_ids:0
+msgid "Products to Purchase"
+msgstr "Proizvodi za nabavku"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: selection:purchase.requisition,state:0
+msgid "Sent to Suppliers"
+msgstr "Pošalji dobavljačima"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Search Purchase Requisition"
+msgstr "Pretraži zahtjeve nabavke"
+
+#. module: purchase_requisition
+#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:41
+#, python-format
+msgid "No Product in Tender."
+msgstr "Nema proizvoda na tenderu."
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Date Ordered"
+msgstr "Datum naruđbe"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_ids:0
+msgid "Messages"
+msgstr "Poruke"
+
+#. module: purchase_requisition
+#: help:purchase.requisition,exclusive:0
+msgid ""
+"Purchase Requisition (exclusive): On the confirmation of a purchase order, "
+"it cancels the remaining purchase order.\n"
+"Purchase Requisition(Multiple): It allows to have multiple purchase "
+"orders.On confirmation of a purchase order it does not cancel the remaining "
+"orders"
+msgstr ""
+"Zahtjev nabavke (ekskluzivni): Prilikom potvrde nabavne narudžbe , "
+"poništava preostale nabavne narudžbe.\n"
+"Zahtjev nabavke(višestruki): Omogućuje više nabavnih narudžbi. Prilikom "
+"potvrde nabavne narudžbe ne poništava preostale narudžbe."
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Cancel Purchase Order"
+msgstr "Otkaži nabavnu narudžbu"
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_purchase_order
+#: view:purchase.requisition:0
+msgid "Purchase Order"
+msgstr "Nabavna narudžba"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,origin:0
+msgid "Source Document"
+msgstr "Izvorni dokument"
+
+#. module: purchase_requisition
+#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:41
+#, python-format
+msgid "Error!"
+msgstr "Greška!"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,exclusive:0
+msgid "Requisition Type"
+msgstr "Vrsta zahtjeva"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "New Purchase Requisition"
+msgstr "Novi zahtjev nabavke"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Products"
+msgstr "Proizvodi"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Order Date"
+msgstr "Datum narudžbe"
+
+#. module: purchase_requisition
+#: selection:purchase.requisition,state:0
+msgid "Cancelled"
+msgstr "Otkazano"
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_purchase_requisition_partner
+msgid "Purchase Requisition Partner"
+msgstr "Parner zahtjeva nabavke"
+
+#. module: purchase_requisition
+#: help:purchase.requisition,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr "Ako je označeno, nove poruke će zahtjevati vašu pažnju."
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Purchase for Requisitions"
+msgstr "Nabava za zahtjeve"
+
+#. module: purchase_requisition
+#: model:ir.actions.act_window,name:purchase_requisition.act_res_partner_2_purchase_order
+msgid "Purchase orders"
+msgstr "Nabavne narudžbe"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,date_end:0
+msgid "Requisition Deadline"
+msgstr "Konačan rok zahtjeva"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_summary:0
+msgid "Summary"
+msgstr "Rezime"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Reference"
+msgstr "Referenca"
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_procurement_order
+msgid "Procurement"
+msgstr "Naručivanje"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: view:purchase.requisition:0
+msgid "Source"
+msgstr "Izvor"
+
+#. module: purchase_requisition
+#: field:purchase.requisition,warehouse_id:0
+msgid "Warehouse"
+msgstr "Skladište"
+
+#. module: purchase_requisition
+#: field:procurement.order,requisition_id:0
+msgid "Latest Requisition"
+msgstr "Zadnji zahtjev"
+
+#. module: purchase_requisition
+#: model:res.groups,name:purchase_requisition.group_purchase_requisition_manager
+msgid "Manager"
+msgstr "Menadžer"
+
+#. module: purchase_requisition
+#: selection:purchase.requisition,exclusive:0
+msgid "Purchase Requisition (exclusive)"
+msgstr "Zahtjev nabavke (ekskluzivan)"
+
+#. module: purchase_requisition
+#: help:purchase.requisition,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 ""
+"Sadrži sažetak konverzacije (broj poruka,..). Ovaj sažetak je u html formatu "
+"da bi mogao biti ubačen u kanban pogled."
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Product UoM"
+msgstr "Proizvod UoM"
+
+#. module: purchase_requisition
+#: code:addons/purchase_requisition/purchase_requisition.py:134
+#, python-format
+msgid "Warning!"
+msgstr "Upozorenje!"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Confirm Purchase Order"
+msgstr "Potvrdi nabavni nalog"
+
+#. module: purchase_requisition
+#: view:purchase.requisition.partner:0
+msgid "Cancel"
+msgstr "Otkaži"
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition,date_start:0
+msgid "Requisition Date"
+msgstr "Datum zahtjeva"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Start Date"
+msgstr "Datum početka"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Unassigned"
+msgstr "Nedodeljen"
+
+#. module: purchase_requisition
+#: view:purchase.order:0
+msgid "Requisition"
+msgstr "Zahtjev"
+
+#. module: purchase_requisition
+#: help:product.product,purchase_requisition:0
+msgid ""
+"Check this box to generates purchase requisition instead of generating "
+"requests for quotation from procurement."
+msgstr ""
+"Označite ovu kućicu da generišete zahtjeve nabavke umjesto generisanja "
+"zahtjeva za predračunom iz naručivanja."
+
+#. module: purchase_requisition
+#: field:purchase.requisition,purchase_ids:0
+msgid "Purchase Orders"
+msgstr "Nabavne narudžbe"
diff --git a/addons/resource/i18n/bs.po b/addons/resource/i18n/bs.po
new file mode 100644
index 00000000000..596d4c7d60d
--- /dev/null
+++ b/addons/resource/i18n/bs.po
@@ -0,0 +1,364 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-27 13:41+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-28 05:23+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: resource
+#: help:resource.calendar.leaves,resource_id:0
+msgid ""
+"If empty, this is a generic holiday for the company. If a resource is set, "
+"the holiday/leave is only for this resource"
+msgstr ""
+"Ako je prazno, ovo je generički praznik za kompaniju. Ako je resurs "
+"postavljen, praznik/odsustvo je samo za taj resurs."
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Material"
+msgstr "Materijal"
+
+#. module: resource
+#: field:resource.resource,resource_type:0
+msgid "Resource Type"
+msgstr "Tip resursa"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_leaves
+#: view:resource.calendar.leaves:0
+msgid "Leave Detail"
+msgstr "Detalji o odsustvu"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_resources_leaves
+msgid "Resources Leaves"
+msgstr "Odsustva resursa"
+
+#. module: resource
+#: field:resource.calendar.attendance,dayofweek:0
+msgid "Day of Week"
+msgstr "Dan u sedmici"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Thursday"
+msgstr "Četvrtak"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Group By..."
+msgstr "Grupiši po..."
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Sunday"
+msgstr "Nedjelja"
+
+#. module: resource
+#: field:resource.resource,time_efficiency:0
+msgid "Efficiency Factor"
+msgstr "Faktor efikasnosti"
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Search Resource"
+msgstr "Pretraži resurse"
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Type"
+msgstr "Tip"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_resource_tree
+#: view:resource.resource:0
+msgid "Resources"
+msgstr "Resursi"
+
+#. module: resource
+#: code:addons/resource/resource.py:455
+#, python-format
+msgid "Make sure the Working time has been configured with proper week days!"
+msgstr ""
+"Obezbjedite da je radno vrijeme pravilno konfigurisano sa danima sedmice!"
+
+#. module: resource
+#: code:addons/resource/resource.py:373
+#, python-format
+msgid "%s (copy)"
+msgstr "%s (kopija)"
+
+#. module: resource
+#: view:resource.calendar:0
+msgid "Search Working Time"
+msgstr "Pretraži radno vrijeme"
+
+#. module: resource
+#: constraint:resource.calendar.leaves:0
+msgid "Error! leave start-date must be lower then leave end-date."
+msgstr ""
+"Greška! Datum početka odsustva mora biti manji od završnog datuma odsustva"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar
+msgid "Resource Calendar"
+msgstr "Kalendar resursa"
+
+#. module: resource
+#: field:resource.calendar,company_id:0
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,company_id:0
+#: view:resource.resource:0
+#: field:resource.resource,company_id:0
+msgid "Company"
+msgstr "Kompanija"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Friday"
+msgstr "Petak"
+
+#. module: resource
+#: view:resource.calendar.attendance:0
+msgid "Hours"
+msgstr "Sati"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Reason"
+msgstr "Razlog"
+
+#. module: resource
+#: view:resource.resource:0
+#: field:resource.resource,user_id:0
+msgid "User"
+msgstr "Korisnik"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Date"
+msgstr "Datum"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Search Working Period Leaves"
+msgstr "Pretraži odsustva u periodima rada"
+
+#. module: resource
+#: field:resource.calendar.attendance,date_from:0
+msgid "Starting Date"
+msgstr "Datum početka"
+
+#. module: resource
+#: field:resource.calendar,manager:0
+msgid "Workgroup Manager"
+msgstr "Voditelj radne grupe"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_to:0
+msgid "End Date"
+msgstr "Datum Završetka"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.resource_calendar_closing_days
+msgid "Closing Days"
+msgstr "Dani zatvaranja"
+
+#. module: resource
+#: model:ir.ui.menu,name:resource.menu_resource_config
+#: view:resource.calendar.leaves:0
+#: field:resource.calendar.leaves,resource_id:0
+#: view:resource.resource:0
+msgid "Resource"
+msgstr "Resurs"
+
+#. module: resource
+#: field:resource.calendar,name:0
+#: field:resource.calendar.attendance,name:0
+#: field:resource.calendar.leaves,name:0
+#: field:resource.resource,name:0
+msgid "Name"
+msgstr "Naziv"
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_form
+#: view:resource.calendar:0
+#: field:resource.calendar,attendance_ids:0
+#: view:resource.calendar.attendance:0
+#: field:resource.calendar.leaves,calendar_id:0
+#: field:resource.resource,calendar_id:0
+msgid "Working Time"
+msgstr "Radno Vrijeme"
+
+#. module: resource
+#: help:resource.calendar.attendance,hour_from:0
+msgid "Start and End time of working."
+msgstr "Početno i krajnje vrijeme rada."
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+#: view:resource.resource:0
+msgid "Working Period"
+msgstr "Period rada"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Wednesday"
+msgstr "Srijeda"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_resource
+msgid "Resource Detail"
+msgstr "Detalji resursa"
+
+#. module: resource
+#: field:resource.resource,active:0
+msgid "Active"
+msgstr "Aktivan"
+
+#. module: resource
+#: help:resource.resource,active:0
+msgid ""
+"If the active field is set to False, it will allow you to hide the resource "
+"record without removing it."
+msgstr ""
+"Ako je ovo polje postavljeno na neaktivno, moežte sakriti resurs bez da ga "
+"uklonite."
+
+#. module: resource
+#: field:resource.calendar.attendance,calendar_id:0
+msgid "Resource's Calendar"
+msgstr "Kalendar resursa"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_from:0
+msgid "Work from"
+msgstr "Radi od"
+
+#. module: resource
+#: model:ir.actions.act_window,help:resource.action_resource_calendar_form
+msgid ""
+"Define working hours and time table that could be scheduled to your project "
+"members"
+msgstr ""
+
+#. module: resource
+#: help:resource.resource,user_id:0
+msgid "Related user name for the resource to manage its access."
+msgstr "Povezano korisničko ime za resurs da upravlja njegovim pristupom."
+
+#. module: resource
+#: help:resource.resource,calendar_id:0
+msgid "Define the schedule of resource"
+msgstr "Definišite zakazivanje resursa"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Starting Date of Leave"
+msgstr "Datum početka odsustva"
+
+#. module: resource
+#: field:resource.resource,code:0
+msgid "Code"
+msgstr "Šifra"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Monday"
+msgstr "Ponedjeljak"
+
+#. module: resource
+#: field:resource.calendar.attendance,hour_to:0
+msgid "Work to"
+msgstr "Radi do"
+
+#. module: resource
+#: model:ir.model,name:resource.model_resource_calendar_attendance
+msgid "Work Detail"
+msgstr "Detalji rada"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Tuesday"
+msgstr "Utorak"
+
+#. module: resource
+#: help:resource.resource,time_efficiency:0
+msgid ""
+"This field depict the efficiency of the resource to complete tasks. e.g "
+"resource put alone on a phase of 5 days with 5 tasks assigned to him, will "
+"show a load of 100% for this phase by default, but if we put a efficiency of "
+"200%, then his load will only be 50%."
+msgstr ""
+"Ovo polje razlikuje efikasnost resursa za završetak zadatka. npr.: resurs "
+"postavljen sam na fazu od 5 dana sa 5 zadataka dodjelenih njemu, će pokazati "
+"opterećenje od 100% za ovu fazu zadano, ali ako postavimo efikasnost od "
+"200%, tada će ovo opterećenje iznositi samo 50%."
+
+#. module: resource
+#: model:ir.actions.act_window,name:resource.action_resource_calendar_leave_tree
+#: model:ir.ui.menu,name:resource.menu_view_resource_calendar_leaves_search
+msgid "Resource Leaves"
+msgstr "Odsustva resursa"
+
+#. module: resource
+#: model:ir.actions.act_window,help:resource.action_resource_resource_tree
+msgid ""
+"Resources allow you to create and manage resources that should be involved "
+"in a specific project phase. You can also set their efficiency level and "
+"workload based on their weekly working hours."
+msgstr ""
+"Resursi Vam omogućuju kreiranje i upravljanje resursima koji trebaju biti "
+"uključeni u neku fazu projekta. Također možete postaviti njihov nivo "
+"efikasnosti i opterećenje na osnovi njihovih sedmičnih radnih sati."
+
+#. module: resource
+#: view:resource.resource:0
+msgid "Inactive"
+msgstr "Neaktivan"
+
+#. module: resource
+#: code:addons/resource/faces/resource.py:340
+#, python-format
+msgid "(vacation)"
+msgstr "(odmor)"
+
+#. module: resource
+#: code:addons/resource/resource.py:455
+#, python-format
+msgid "Configuration Error!"
+msgstr "Greška u konfiguraciji!"
+
+#. module: resource
+#: selection:resource.resource,resource_type:0
+msgid "Human"
+msgstr "Čovjek"
+
+#. module: resource
+#: view:resource.calendar.leaves:0
+msgid "Duration"
+msgstr "Trajanje"
+
+#. module: resource
+#: field:resource.calendar.leaves,date_from:0
+msgid "Start Date"
+msgstr "Datum početka"
+
+#. module: resource
+#: selection:resource.calendar.attendance,dayofweek:0
+msgid "Saturday"
+msgstr "Subota"
diff --git a/addons/sale/security/sale_security.xml b/addons/sale/security/sale_security.xml
index 710fbdcc207..557562275d7 100644
--- a/addons/sale/security/sale_security.xml
+++ b/addons/sale/security/sale_security.xml
@@ -36,7 +36,6 @@
<record id="group_mrp_properties" model="res.groups">
<field name="name">Properties on lines</field>
- <field name="users" eval="[(4, ref('base.user_root'))]"/>
<field name="category_id" ref="base.module_category_hidden"/>
</record>
diff --git a/addons/sale_margin/i18n/bs.po b/addons/sale_margin/i18n/bs.po
new file mode 100644
index 00000000000..a8815bd00ff
--- /dev/null
+++ b/addons/sale_margin/i18n/bs.po
@@ -0,0 +1,48 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-27 13:07+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-28 05:23+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: sale_margin
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr "Cijena koštanja"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_sale_order
+msgid "Sales Order"
+msgstr "Prodajna narudžba"
+
+#. module: sale_margin
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr "Marža"
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_sale_order_line
+msgid "Sales Order Line"
+msgstr "Stavka prodajne narudžbe"
+
+#. module: sale_margin
+#: help:sale.order,margin:0
+msgid ""
+"It gives profitability by calculating the difference between the Unit Price "
+"and the cost price."
+msgstr ""
+"Daje Vam profitabilnost računajući razliku između jedinične cijene i cijene "
+"koštanja."
diff --git a/addons/sale_mrp/i18n/bs.po b/addons/sale_mrp/i18n/bs.po
new file mode 100644
index 00000000000..9012ade8ceb
--- /dev/null
+++ b/addons/sale_mrp/i18n/bs.po
@@ -0,0 +1,43 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-27 13:09+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-28 05:23+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: sale_mrp
+#: model:ir.model,name:sale_mrp.model_mrp_production
+msgid "Manufacturing Order"
+msgstr "Radni nalog proizvodnje"
+
+#. module: sale_mrp
+#: help:mrp.production,sale_name:0
+msgid "Indicate the name of sales order."
+msgstr "Indicira naziv prodajne narudžbe."
+
+#. module: sale_mrp
+#: help:mrp.production,sale_ref:0
+msgid "Indicate the Customer Reference from sales order."
+msgstr "Indicira referencu kupca iz prodajne narudžbe."
+
+#. module: sale_mrp
+#: field:mrp.production,sale_ref:0
+msgid "Sale Reference"
+msgstr "Prodajna referenca"
+
+#. module: sale_mrp
+#: field:mrp.production,sale_name:0
+msgid "Sale Name"
+msgstr "Naziv prodaje"
diff --git a/addons/sale_order_dates/i18n/bs.po b/addons/sale_order_dates/i18n/bs.po
new file mode 100644
index 00000000000..03dbb97c7f7
--- /dev/null
+++ b/addons/sale_order_dates/i18n/bs.po
@@ -0,0 +1,58 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-27 13:13+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-28 05:23+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: sale_order_dates
+#: view:sale.order:0
+msgid "Dates"
+msgstr "Datumi"
+
+#. module: sale_order_dates
+#: field:sale.order,commitment_date:0
+msgid "Commitment Date"
+msgstr "Obavezani datum"
+
+#. module: sale_order_dates
+#: field:sale.order,effective_date:0
+msgid "Effective Date"
+msgstr "Efektivni datum"
+
+#. module: sale_order_dates
+#: help:sale.order,effective_date:0
+msgid "Date on which picking is created."
+msgstr "Datum kada je prikupljanje proizvoda kreirano."
+
+#. module: sale_order_dates
+#: help:sale.order,requested_date:0
+msgid "Date requested by the customer for the sale."
+msgstr "Zahtjevani datum prodaje od kupca"
+
+#. module: sale_order_dates
+#: field:sale.order,requested_date:0
+msgid "Requested Date"
+msgstr "Zahtjevani datum"
+
+#. module: sale_order_dates
+#: model:ir.model,name:sale_order_dates.model_sale_order
+msgid "Sales Order"
+msgstr "Prodajna narudžba"
+
+#. module: sale_order_dates
+#: help:sale.order,commitment_date:0
+msgid "Committed date for delivery."
+msgstr "Potvrđen datum dostave."
diff --git a/addons/stock/product_view.xml b/addons/stock/product_view.xml
index 16b25c6dbda..5388e76fe6d 100644
--- a/addons/stock/product_view.xml
+++ b/addons/stock/product_view.xml
@@ -8,8 +8,8 @@
<field name="inherit_id" ref="product.product_search_form_view"/>
<field name="arch" type="xml">
<field name="pricelist_id" position="before">
- <field name="location_id" context="{'location': self}"/>
- <field name="warehouse_id" context="{'warehouse': self}"/>
+ <field name="location_id" widget="selection" context="{'location': self}"/>
+ <field name="warehouse_id" widget="selection" context="{'warehouse': self}"/>
</field>
</field>
</record>
diff --git a/addons/stock/stock.py b/addons/stock/stock.py
index 1e032626194..d818ca794d5 100644
--- a/addons/stock/stock.py
+++ b/addons/stock/stock.py
@@ -73,6 +73,8 @@ class stock_location(osv.osv):
_parent_order = 'posz,name'
_order = 'parent_left'
+ # TODO: implement name_search() in a way that matches the results of name_get!
+
def name_get(self, cr, uid, ids, context=None):
# always return the full hierarchical name
res = self._complete_name(cr, uid, ids, 'complete_name', None, context=context)
@@ -399,14 +401,15 @@ class stock_location(osv.osv):
uom_rounding = uom_obj.browse(cr, uid, context.get('uom'), context=context).rounding
locations_ids = self.search(cr, uid, [('location_id', 'child_of', ids)])
- # Fetch only the locations in which this product has ever been processed (in or out)
- cr.execute("""SELECT l.id FROM stock_location l WHERE l.id in %s AND
- EXISTS (SELECT 1 FROM stock_move m WHERE m.product_id = %s
- AND ((state = 'done' AND m.location_dest_id = l.id)
- OR (state in ('done','assigned') AND m.location_id = l.id)))
- """, (tuple(locations_ids), product_id,))
-
- for id in [i for (i,) in cr.fetchall()]:
+ if locations_ids:
+ # Fetch only the locations in which this product has ever been processed (in or out)
+ cr.execute("""SELECT l.id FROM stock_location l WHERE l.id in %s AND
+ EXISTS (SELECT 1 FROM stock_move m WHERE m.product_id = %s
+ AND ((state = 'done' AND m.location_dest_id = l.id)
+ OR (state in ('done','assigned') AND m.location_id = l.id)))
+ """, (tuple(locations_ids), product_id,))
+ locations_ids = [i for (i,) in cr.fetchall()]
+ for id in locations_ids:
if lock:
try:
# Must lock with a separate select query because FOR UPDATE can't be used with
diff --git a/addons/web_linkedin/web_linkedin.py b/addons/web_linkedin/web_linkedin.py
index 92adb30d3dd..a07dcd50ea0 100644
--- a/addons/web_linkedin/web_linkedin.py
+++ b/addons/web_linkedin/web_linkedin.py
@@ -26,13 +26,10 @@ from urlparse import urlparse, urlunparse
import openerp
from openerp.osv import fields, osv
-class Binary(openerp.addons.web.http.Controller):
- _cp_path = "/web_linkedin/binary"
-
- @openerp.addons.web.http.jsonrequest
- def url2binary(self, req, url):
+class Binary(openerp.http.Controller):
+ @openerp.http.route('/web_linkedin/binary/url2binary', type='json', auth='user')
+ def url2binary(self, url):
"""Used exclusively to load images from LinkedIn profiles, must not be used for anything else."""
- req.session.assert_valid(force=True)
_scheme, _netloc, path, params, query, fragment = urlparse(url)
# media.linkedin.com is the master domain for LinkedIn media (replicated to CDNs),
# so forcing it should always work and prevents abusing this method to load arbitrary URLs
diff --git a/addons/web_shortcuts/i18n/bs.po b/addons/web_shortcuts/i18n/bs.po
new file mode 100644
index 00000000000..2e01e0929ac
--- /dev/null
+++ b/addons/web_shortcuts/i18n/bs.po
@@ -0,0 +1,25 @@
+# Bosnian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:06+0000\n"
+"PO-Revision-Date: 2013-10-26 01:19+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Bosnian <bs@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-10-27 05:50+0000\n"
+"X-Generator: Launchpad (build 16810)\n"
+
+#. module: web_shortcuts
+#. openerp-web
+#: code:addons/web_shortcuts/static/src/xml/web_shortcuts.xml:21
+#, python-format
+msgid "Add / Remove Shortcut..."
+msgstr "Dodaj / Ukloni pračicu..."