summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRaphael Collet <rco@openerp.com>2013-04-11 09:37:08 +0200
committerRaphael Collet <rco@openerp.com>2013-04-11 09:37:08 +0200
commit894eeef8e0ff44b2bf0b276718e6f48a0a7c1ee6 (patch)
tree4ae49603ad9be6364b2aee9c3134c2a71be294b8
parentfb4b655139d5a00f605ea954dfee2df77e457778 (diff)
parenta0a9ae61e7e41607aa9f6c918f003fd5699ffa4c (diff)
[MERGE] from trunk
bzr revid: rco@openerp.com-20130411073708-gaxl2332umtedmg6
-rw-r--r--addons/account/account.py3
-rw-r--r--addons/account/account_invoice.py1
-rw-r--r--addons/account/account_invoice_view.xml3
-rw-r--r--addons/account/account_move_line.py13
-rw-r--r--addons/account/report/account_invoice_report.py4
-rw-r--r--addons/account/report/account_print_invoice.rml2
-rw-r--r--addons/account/wizard/account_invoice_refund.py4
-rw-r--r--addons/account_analytic_analysis/account_analytic_analysis.py9
-rw-r--r--addons/account_analytic_analysis/account_analytic_analysis_view.xml2
-rw-r--r--addons/account_bank_statement_extensions/i18n/cs.po357
-rw-r--r--addons/account_cancel/i18n/hu.po10
-rw-r--r--addons/account_followup/i18n/hu.po453
-rw-r--r--addons/account_sequence/i18n/cs.po150
-rw-r--r--addons/account_test/i18n/cs.po241
-rw-r--r--addons/account_test/i18n/hu.po241
-rw-r--r--addons/account_voucher/i18n/hu.po238
-rw-r--r--addons/analytic_contract_hr_expense/i18n/cs.po72
-rw-r--r--addons/anonymization/i18n/cs.po331
-rw-r--r--addons/auth_crypt/i18n/cs.po41
-rw-r--r--addons/auth_ldap/i18n/cs.po159
-rw-r--r--addons/auth_oauth/i18n/cs.po135
-rw-r--r--addons/auth_oauth/static/src/js/auth_oauth.js6
-rw-r--r--addons/auth_oauth_signup/i18n/cs.po23
-rw-r--r--addons/auth_openid/i18n/cs.po97
-rw-r--r--addons/auth_signup/i18n/cs.po279
-rw-r--r--addons/base_gengo/i18n/cs.po249
-rw-r--r--addons/base_import/i18n/cs.po1164
-rw-r--r--addons/base_status/i18n/cs.po76
-rw-r--r--addons/board/static/src/js/dashboard.js6
-rw-r--r--addons/crm/__openerp__.py41
-rw-r--r--addons/crm/crm.py31
-rw-r--r--addons/crm/crm_case_section_view.xml294
-rw-r--r--addons/crm/crm_data.xml10
-rw-r--r--addons/crm/crm_lead.py38
-rw-r--r--addons/crm/crm_lead_data.xml49
-rw-r--r--addons/crm/crm_lead_menu.xml78
-rw-r--r--addons/crm/crm_lead_view.xml30
-rw-r--r--addons/crm/crm_phonecall_view.xml6
-rw-r--r--addons/crm/crm_report_view.xml35
-rw-r--r--addons/crm/crm_view.xml122
-rw-r--r--addons/crm/report/crm_lead_report_view.xml9
-rw-r--r--addons/crm/report/crm_phonecall_report_view.xml6
-rw-r--r--addons/crm/res_config.py47
-rw-r--r--addons/crm/res_config_view.xml15
-rw-r--r--addons/crm/res_partner_view.xml9
-rw-r--r--addons/crm/security/crm_security.xml13
-rw-r--r--addons/crm/security/ir.model.access.csv2
-rw-r--r--addons/crm/static/src/css/crm.css42
-rw-r--r--addons/crm/static/src/js/crm.js11
-rw-r--r--addons/crm/test/crm_lead_cancel.yml (renamed from addons/crm/test/process/cancel_lead.yml)0
-rw-r--r--addons/crm/test/crm_lead_copy.yml (renamed from addons/crm/test/ui/duplicate_lead.yml)0
-rw-r--r--addons/crm/test/crm_lead_merge.yml (renamed from addons/crm/test/process/merge_opportunity.yml)9
-rw-r--r--addons/crm/test/crm_lead_message.yml (renamed from addons/crm/test/process/communication_with_customer.yml)0
-rw-r--r--addons/crm/test/crm_lead_onchange.yml (renamed from addons/crm/test/ui/crm_demo.yml)0
-rw-r--r--addons/crm/test/crm_lead_unlink.yml (renamed from addons/crm/test/ui/delete_lead.yml)0
-rw-r--r--addons/crm/test/lead2opportunity2win.yml (renamed from addons/crm/test/process/lead2opportunity2win.yml)0
-rw-r--r--addons/crm/test/lead2opportunity_assign_salesmen.yml (renamed from addons/crm/test/process/lead2opportunity_assign_salesmen.yml)0
-rw-r--r--addons/crm/test/phonecalls.yml (renamed from addons/crm/test/process/phonecalls.yml)0
-rw-r--r--addons/crm/test/segmentation.yml (renamed from addons/crm/test/process/segmentation.yml)0
-rw-r--r--addons/crm/wizard/crm_lead_to_opportunity_view.xml6
-rw-r--r--addons/crm/wizard/crm_merge_opportunities_view.xml2
-rw-r--r--addons/crm/wizard/crm_opportunity_to_phonecall_view.xml2
-rw-r--r--addons/crm/wizard/crm_phonecall_to_phonecall_view.xml2
-rw-r--r--addons/crm_claim/__init__.py1
-rw-r--r--addons/crm_claim/__openerp__.py1
-rw-r--r--addons/crm_claim/crm_claim_view.xml2
-rw-r--r--addons/crm_claim/i18n/cs.po881
-rw-r--r--addons/crm_claim/i18n/ko.po2
-rw-r--r--addons/crm_claim/report/crm_claim_report_view.xml6
-rw-r--r--addons/crm_claim/res_config.py32
-rw-r--r--addons/crm_claim/res_config_view.xml23
-rw-r--r--addons/crm_helpdesk/crm_helpdesk_view.xml6
-rw-r--r--addons/crm_helpdesk/i18n/cs.po708
-rw-r--r--addons/crm_helpdesk/i18n/ko.po2
-rw-r--r--addons/crm_helpdesk/report/crm_helpdesk_report_view.xml4
-rw-r--r--addons/crm_partner_assign/i18n/cs.po931
-rw-r--r--addons/crm_partner_assign/i18n/ko.po2
-rw-r--r--addons/crm_partner_assign/report/crm_lead_report_view.xml4
-rw-r--r--addons/crm_partner_assign/report/crm_partner_report_view.xml4
-rw-r--r--addons/crm_partner_assign/res_partner_view.xml31
-rw-r--r--addons/crm_todo/crm_todo_view.xml9
-rw-r--r--addons/crm_todo/i18n/cs.po85
-rw-r--r--addons/crm_todo/i18n/ko.po2
-rw-r--r--addons/document/document_view.xml4
-rw-r--r--addons/document_ftp/ftpserver/abstracted_fs.py2
-rw-r--r--addons/edi/i18n/cs.po87
-rw-r--r--addons/email_template/email_template_view.xml57
-rw-r--r--addons/email_template/wizard/email_template_preview.py16
-rw-r--r--addons/email_template/wizard/email_template_preview_view.xml28
-rw-r--r--addons/email_template/wizard/mail_compose_message.py27
-rw-r--r--addons/email_template/wizard/mail_compose_message_view.xml7
-rw-r--r--addons/event_moodle/i18n/cs.po185
-rw-r--r--addons/event_sale/i18n/cs.po90
-rw-r--r--addons/google_base_account/i18n/cs.po109
-rw-r--r--addons/google_docs/i18n/cs.po188
-rw-r--r--addons/hr/hr_view.xml3
-rw-r--r--addons/hr_evaluation/i18n/cs.po910
-rw-r--r--addons/hr_expense/hr_expense.py4
-rw-r--r--addons/hr_expense/hr_expense_view.xml2
-rw-r--r--addons/hr_holidays/hr_holidays.py10
-rw-r--r--addons/hr_payroll_account/i18n/cs.po126
-rw-r--r--addons/hr_recruitment/hr_recruitment.py6
-rw-r--r--addons/hr_recruitment/hr_recruitment_menu.xml12
-rw-r--r--addons/hr_recruitment/hr_recruitment_view.xml16
-rw-r--r--addons/hr_recruitment/i18n/cs.po1261
-rw-r--r--addons/lunch/lunch.py109
-rw-r--r--addons/mail/mail_alias.py9
-rw-r--r--addons/mail/mail_group.py14
-rw-r--r--addons/mail/mail_group_view.xml59
-rw-r--r--addons/mail/mail_mail.py14
-rw-r--r--addons/mail/mail_message.py12
-rw-r--r--addons/mail/mail_thread.py101
-rw-r--r--addons/mail/static/src/css/mail.css3
-rw-r--r--addons/mail/static/src/css/mail_group.css6
-rw-r--r--addons/mail/static/src/js/mail.js8
-rw-r--r--addons/mail/static/src/xml/mail.xml6
-rw-r--r--addons/mail/static/src/xml/mail_followers.xml2
-rw-r--r--addons/mail/tests/test_mail_features.py6
-rw-r--r--addons/mail/tests/test_mail_gateway.py132
-rw-r--r--addons/mail/wizard/mail_compose_message.py14
-rw-r--r--addons/mrp/stock.py2
-rw-r--r--addons/note_pad/i18n/cs.po28
-rw-r--r--addons/plugin/plugin_handler.py45
-rw-r--r--addons/plugin_outlook/i18n/cs.po89
-rw-r--r--addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj11
-rw-r--r--addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln4
-rw-r--r--addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs1
-rw-r--r--addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs12
-rw-r--r--addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup32.msibin387072 -> 937984 bytes
-rw-r--r--addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup64.msibin961536 -> 941056 bytes
-rw-r--r--addons/point_of_sale/point_of_sale_demo.xml3
-rw-r--r--addons/point_of_sale/static/src/js/models.js3
-rw-r--r--addons/point_of_sale/static/src/js/widgets.js4
-rw-r--r--addons/portal/portal_view.xml10
-rw-r--r--addons/portal_anonymous/i18n/ru.po25
-rw-r--r--addons/portal_crm/i18n/cs.po546
-rw-r--r--addons/portal_hr_employees/i18n/cs.po95
-rw-r--r--addons/portal_sale/portal_sale.py11
-rw-r--r--addons/product/pricelist.py2
-rw-r--r--addons/product/product.py7
-rw-r--r--addons/product/product_view.xml1
-rw-r--r--addons/project/project.py14
-rw-r--r--addons/project/project_data.xml1
-rw-r--r--addons/project/project_view.xml52
-rw-r--r--addons/project_issue/i18n/cs.po984
-rw-r--r--addons/project_issue/project_issue.py88
-rw-r--r--addons/project_issue/project_issue_menu.xml12
-rw-r--r--addons/project_issue/project_issue_view.xml28
-rw-r--r--addons/project_issue/report/project_issue_report.py8
-rw-r--r--addons/project_issue/report/project_issue_report_view.xml2
-rw-r--r--addons/project_issue_sheet/i18n/cs.po72
-rw-r--r--addons/project_long_term/i18n/cs.po502
-rw-r--r--addons/purchase/purchase.py1
-rw-r--r--addons/purchase/res_config.py7
-rw-r--r--addons/purchase/res_config_view.xml4
-rw-r--r--addons/purchase_double_validation/i18n/cs.po49
-rw-r--r--addons/purchase_requisition/i18n/cs.po473
-rw-r--r--addons/report_webkit/i18n/cs.po517
-rw-r--r--addons/resource/resource.py139
-rw-r--r--addons/resource/test/resource.yml9
-rw-r--r--addons/sale/res_config.py2
-rw-r--r--addons/sale/sale.py3
-rw-r--r--addons/sale/sale_view.xml31
-rw-r--r--addons/sale/wizard/sale_line_invoice.py25
-rw-r--r--addons/sale/wizard/sale_make_invoice.py11
-rw-r--r--addons/sale/wizard/sale_make_invoice.xml10
-rw-r--r--addons/sale_crm/report/sale_crm_account_invoice_report_view.xml2
-rw-r--r--addons/sale_crm/sale_crm.py34
-rw-r--r--addons/sale_crm/sale_crm_view.xml141
-rw-r--r--addons/sale_margin/i18n/cs.po46
-rw-r--r--addons/sale_mrp/i18n/cs.po43
-rw-r--r--addons/sale_order_dates/i18n/cs.po58
-rw-r--r--addons/stock/wizard/stock_traceability.py1
-rw-r--r--addons/web_linkedin/i18n/cs.po137
174 files changed, 15010 insertions, 1054 deletions
diff --git a/addons/account/account.py b/addons/account/account.py
index 48e66dd957b..a620c0b5ddc 100644
--- a/addons/account/account.py
+++ b/addons/account/account.py
@@ -1027,6 +1027,9 @@ class account_period(osv.osv):
def action_draft(self, cr, uid, ids, *args):
mode = 'draft'
+ for period in self.browse(cr, uid, ids):
+ if period.fiscalyear_id.state == 'done':
+ raise osv.except_osv(_('Warning !'), _('You can not re-open a period which belongs to closed fiscal year'))
cr.execute('update account_journal_period set state=%s where period_id in %s', (mode, tuple(ids),))
cr.execute('update account_period set state=%s where id in %s', (mode, tuple(ids),))
return True
diff --git a/addons/account/account_invoice.py b/addons/account/account_invoice.py
index 0802f77f497..8fe79d87064 100644
--- a/addons/account/account_invoice.py
+++ b/addons/account/account_invoice.py
@@ -421,6 +421,7 @@ class account_invoice(osv.osv):
'mark_invoice_as_sent': True,
})
return {
+ 'name': _('Compose Email'),
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
diff --git a/addons/account/account_invoice_view.xml b/addons/account/account_invoice_view.xml
index 8c0854bd6c6..c2f21c0d8bc 100644
--- a/addons/account/account_invoice_view.xml
+++ b/addons/account/account_invoice_view.xml
@@ -453,10 +453,11 @@
<filter name="invoices" string="Invoices" domain="[('state','not in',['draft','cancel'])]" help="Proforma/Open/Paid Invoices"/>
<filter name="unpaid" string="Unpaid" domain="[('state','=','open')]" help="Unpaid Invoices"/>
<separator/>
- <filter domain="[('user_id','=',uid)]" help="My Invoices" icon="terp-personal"/>
<field name="partner_id"/>
<field name="user_id" string="Salesperson"/>
<field name="period_id" string="Period"/>
+ <separator/>
+ <filter domain="[('user_id','=',uid)]" help="My Invoices"/>
<group expand="0" string="Group By...">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
diff --git a/addons/account/account_move_line.py b/addons/account/account_move_line.py
index 36d211c11d2..082d654c5a2 100644
--- a/addons/account/account_move_line.py
+++ b/addons/account/account_move_line.py
@@ -742,7 +742,7 @@ class account_move_line(osv.osv):
def list_partners_to_reconcile(self, cr, uid, context=None):
cr.execute(
"""SELECT partner_id FROM (
- SELECT l.partner_id, p.last_reconciliation_date, SUM(l.debit) AS debit, SUM(l.credit) AS credit, MAX(l.date) AS max_date
+ SELECT l.partner_id, p.last_reconciliation_date, SUM(l.debit) AS debit, SUM(l.credit) AS credit, MAX(l.create_date) AS max_date
FROM account_move_line l
RIGHT JOIN account_account a ON (a.id = l.account_id)
RIGHT JOIN res_partner p ON (l.partner_id = p.id)
@@ -753,9 +753,14 @@ class account_move_line(osv.osv):
) AS s
WHERE debit > 0 AND credit > 0 AND (last_reconciliation_date IS NULL OR max_date > last_reconciliation_date)
ORDER BY last_reconciliation_date""")
- ids = cr.fetchall()
- ids = len(ids) and [x[0] for x in ids] or []
- return self.pool.get('res.partner').name_get(cr, uid, ids, context=context)
+ ids = [x[0] for x in cr.fetchall()]
+ if not ids:
+ return []
+
+ # To apply the ir_rules
+ partner_obj = self.pool.get('res.partner')
+ ids = partner_obj.search(cr, uid, [('id', 'in', ids)], context=context)
+ return partner_obj.name_get(cr, uid, ids, context=context)
def reconcile_partial(self, cr, uid, ids, type='auto', context=None, writeoff_acc_id=False, writeoff_period_id=False, writeoff_journal_id=False):
move_rec_obj = self.pool.get('account.move.reconcile')
diff --git a/addons/account/report/account_invoice_report.py b/addons/account/report/account_invoice_report.py
index af6ae1eede7..31725a46b46 100644
--- a/addons/account/report/account_invoice_report.py
+++ b/addons/account/report/account_invoice_report.py
@@ -210,8 +210,8 @@ class account_invoice_report(osv.osv):
cr.id IN (SELECT id
FROM res_currency_rate cr2
WHERE (cr2.currency_id = sub.currency_id)
- AND ((sub.date IS NOT NULL AND cr.name <= sub.date)
- OR (sub.date IS NULL AND cr.name <= NOW()))
+ AND ((sub.date IS NOT NULL AND cr2.name <= sub.date)
+ OR (sub.date IS NULL AND cr2.name <= NOW()))
ORDER BY name DESC LIMIT 1)
)""" % (
self._table,
diff --git a/addons/account/report/account_print_invoice.rml b/addons/account/report/account_print_invoice.rml
index 4ffa7a33f9d..9268c94d4c7 100644
--- a/addons/account/report/account_print_invoice.rml
+++ b/addons/account/report/account_print_invoice.rml
@@ -168,7 +168,7 @@
</para>
<para style="terp_default_8">Tel. : [[ (o.partner_id.phone) or removeParentNode('para') ]]</para>
<para style="terp_default_8">Fax : [[ (o.partner_id.fax) or removeParentNode('para') ]]</para>
- <para style="terp_default_8">VAT : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
+ <para style="terp_default_8">TIN : [[ (o.partner_id.vat) or removeParentNode('para') ]]</para>
</td>
</tr>
</blockTable>
diff --git a/addons/account/wizard/account_invoice_refund.py b/addons/account/wizard/account_invoice_refund.py
index df4ad3494d2..ba48dd34fe2 100644
--- a/addons/account/wizard/account_invoice_refund.py
+++ b/addons/account/wizard/account_invoice_refund.py
@@ -181,9 +181,9 @@ class account_invoice_refund(osv.osv_memory):
invoice = invoice[0]
del invoice['id']
invoice_lines = inv_line_obj.browse(cr, uid, invoice['invoice_line'], context=context)
- invoice_lines = inv_obj._refund_cleanup_lines(cr, uid, invoice_lines)
+ invoice_lines = inv_obj._refund_cleanup_lines(cr, uid, invoice_lines, context=context)
tax_lines = inv_tax_obj.browse(cr, uid, invoice['tax_line'], context=context)
- tax_lines = inv_obj._refund_cleanup_lines(cr, uid, tax_lines)
+ tax_lines = inv_obj._refund_cleanup_lines(cr, uid, tax_lines, context=context)
invoice.update({
'type': inv.type,
'date_invoice': date,
diff --git a/addons/account_analytic_analysis/account_analytic_analysis.py b/addons/account_analytic_analysis/account_analytic_analysis.py
index 0a56c80766b..33ab3be209c 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis.py
+++ b/addons/account_analytic_analysis/account_analytic_analysis.py
@@ -352,11 +352,10 @@ class account_analytic_account(osv.osv):
res[account.id] = 0.0
sale_ids = sale_obj.search(cr, uid, [('project_id','=', account.id), ('state', '=', 'manual')], context=context)
for sale in sale_obj.browse(cr, uid, sale_ids, context=context):
- if not sale.invoiced:
- res[account.id] += sale.amount_untaxed
- for invoice in sale.invoice_ids:
- if invoice.state not in ('draft', 'cancel'):
- res[account.id] -= invoice.amount_untaxed
+ res[account.id] += sale.amount_untaxed
+ for invoice in sale.invoice_ids:
+ if invoice.state != 'cancel':
+ res[account.id] -= invoice.amount_untaxed
return res
def _timesheet_ca_invoiced_calc(self, cr, uid, ids, name, arg, context=None):
diff --git a/addons/account_analytic_analysis/account_analytic_analysis_view.xml b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
index 6f670b2c6b9..97a4bb8fac2 100644
--- a/addons/account_analytic_analysis/account_analytic_analysis_view.xml
+++ b/addons/account_analytic_analysis/account_analytic_analysis_view.xml
@@ -267,7 +267,7 @@
</field>
</record>
<menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="1"/>
- <menuitem action="action_account_analytic_overdue_all" id="menu_action_account_analytic_overdue_all" sequence="7" parent="base.menu_sales"/>
+ <menuitem action="action_account_analytic_overdue_all" id="menu_action_account_analytic_overdue_all" sequence="8" parent="base.menu_sales"/>
<!-- Action Sales/Invoicing/Time and Material to Invoice -->
<record id="action_hr_tree_invoiced_all" model="ir.actions.act_window">
diff --git a/addons/account_bank_statement_extensions/i18n/cs.po b/addons/account_bank_statement_extensions/i18n/cs.po
new file mode 100644
index 00000000000..4eef2acf03b
--- /dev/null
+++ b/addons/account_bank_statement_extensions/i18n/cs.po
@@ -0,0 +1,357 @@
+# Czech 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-03-31 16:42+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: account_bank_statement_extensions
+#: help:account.bank.statement.line.global,name:0
+msgid "Originator to Beneficiary Information"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: selection:account.bank.statement.line,state:0
+msgid "Confirmed"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement:0
+#: view:account.bank.statement.line:0
+msgid "Glob. Id"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: selection:account.bank.statement.line.global,type:0
+msgid "CODA"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,parent_id:0
+msgid "Parent Code"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Debit"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:cancel.statement.line:0
+#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_cancel_statement_line
+#: model:ir.model,name:account_bank_statement_extensions.model_cancel_statement_line
+msgid "Cancel selected statement lines"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,val_date:0
+msgid "Value Date"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Group By..."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: selection:account.bank.statement.line,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Statement"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_confirm_statement_line
+#: model:ir.model,name:account_bank_statement_extensions.model_confirm_statement_line
+msgid "Confirm selected statement lines"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+#: model:ir.actions.report.xml,name:account_bank_statement_extensions.bank_statement_balance_report
+msgid "Bank Statement Balances Report"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:cancel.statement.line:0
+msgid "Cancel Lines"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line.global:0
+#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line_global
+msgid "Batch Payment Info"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,state:0
+msgid "Status"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
+#, python-format
+msgid ""
+"Delete operation not allowed. Please go to the associated bank "
+"statement in order to delete and/or modify bank statement line."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "or"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Confirm Lines"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line.global:0
+msgid "Transactions"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,type:0
+msgid "Type"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: report:bank.statement.balance.report:0
+msgid "Journal"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Confirmed Statement Lines."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Credit Transactions."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: model:ir.actions.act_window,help:account_bank_statement_extensions.action_cancel_statement_line
+msgid "cancel selected statement lines."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_number:0
+msgid "Counterparty Number"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+msgid "Closing Balance"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+msgid "Date"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+#: field:account.bank.statement.line,globalisation_amount:0
+msgid "Glob. Amount"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Debit Transactions."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Confirmed lines cannot be changed anymore."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:cancel.statement.line:0
+msgid "Are you sure you want to cancel the selected Bank Statement lines ?"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: report:bank.statement.balance.report:0
+msgid "Name"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,name:0
+msgid "OBI"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: selection:account.bank.statement.line.global,type:0
+msgid "ISO 20022"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Notes"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: selection:account.bank.statement.line.global,type:0
+msgid "Manual"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Bank Transaction"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Credit"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,amount:0
+msgid "Amount"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Fin.Account"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_currency:0
+msgid "Counterparty Currency"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_bic:0
+msgid "Counterparty BIC"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,child_ids:0
+msgid "Child Codes"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Search Bank Transactions"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Are you sure you want to confirm the selected Bank Statement lines ?"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: help:account.bank.statement.line,globalisation_id:0
+msgid ""
+"Code to identify transactions belonging to the same globalisation level "
+"within a batch payment"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Draft Statement Lines."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Glob. Am."
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement_line
+msgid "Bank Statement Line"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,code:0
+msgid "Code"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,counterparty_name:0
+msgid "Counterparty Name"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: model:ir.model,name:account_bank_statement_extensions.model_res_partner_bank
+msgid "Bank Accounts"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: model:ir.model,name:account_bank_statement_extensions.model_account_bank_statement
+msgid "Bank Statement"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Statement Line"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: sql_constraint:account.bank.statement.line.global:0
+msgid "The code must be unique !"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line.global,bank_statement_line_ids:0
+#: model:ir.actions.act_window,name:account_bank_statement_extensions.action_bank_statement_line
+#: model:ir.ui.menu,name:account_bank_statement_extensions.bank_statement_line
+msgid "Bank Statement Lines"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: code:addons/account_bank_statement_extensions/account_bank_statement.py:129
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line.global:0
+msgid "Child Batch Payments"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:confirm.statement.line:0
+msgid "Cancel"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Statement Lines"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: view:account.bank.statement.line:0
+msgid "Total Amount"
+msgstr ""
+
+#. module: account_bank_statement_extensions
+#: field:account.bank.statement.line,globalisation_id:0
+msgid "Globalisation ID"
+msgstr ""
diff --git a/addons/account_cancel/i18n/hu.po b/addons/account_cancel/i18n/hu.po
index 6b63bb37bb2..bab8304030f 100644
--- a/addons/account_cancel/i18n/hu.po
+++ b/addons/account_cancel/i18n/hu.po
@@ -7,19 +7,19 @@ msgstr ""
"Project-Id-Version: OpenERP Server 6.0dev\n"
"Report-Msgid-Bugs-To: support@openerp.com\n"
"POT-Creation-Date: 2012-12-21 17:05+0000\n"
-"PO-Revision-Date: 2011-01-30 16:46+0000\n"
-"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
+"PO-Revision-Date: 2013-04-04 13:17+0000\n"
+"Last-Translator: krnkris <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-16 05:42+0000\n"
-"X-Generator: Launchpad (build 16532)\n"
+"X-Launchpad-Export-Date: 2013-04-05 05:37+0000\n"
+"X-Generator: Launchpad (build 16550)\n"
#. module: account_cancel
#: view:account.invoice:0
msgid "Cancel"
-msgstr ""
+msgstr "Sztornó"
#~ msgid "Account Cancel"
#~ msgstr "Érvénytelenítés"
diff --git a/addons/account_followup/i18n/hu.po b/addons/account_followup/i18n/hu.po
index a8fc4f8963c..e69bb7b38c0 100644
--- a/addons/account_followup/i18n/hu.po
+++ b/addons/account_followup/i18n/hu.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:05+0000\n"
-"PO-Revision-Date: 2011-11-11 15:21+0000\n"
-"Last-Translator: Krisztian Eyssen <krisz@eyssen.hu>\n"
+"PO-Revision-Date: 2013-04-04 13:15+0000\n"
+"Last-Translator: krnkris <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-16 05:11+0000\n"
-"X-Generator: Launchpad (build 16532)\n"
+"X-Launchpad-Export-Date: 2013-04-05 05:37+0000\n"
+"X-Generator: Launchpad (build 16550)\n"
#. module: account_followup
#: model:email.template,subject:account_followup.email_template_account_followup_default
@@ -22,12 +22,12 @@ msgstr ""
#: model:email.template,subject:account_followup.email_template_account_followup_level1
#: model:email.template,subject:account_followup.email_template_account_followup_level2
msgid "${user.company_id.name} Payment Reminder"
-msgstr ""
+msgstr "${user.company_id.name} Fizetési felszólítás"
#. module: account_followup
#: help:res.partner,latest_followup_level_id:0
msgid "The maximum follow-up level"
-msgstr ""
+msgstr "Fizetési-emlékeztető szint maximuma"
#. module: account_followup
#: view:account_followup.stat:0
@@ -43,33 +43,33 @@ msgstr "Fizetési emlékeztető"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(date)s"
-msgstr ""
+msgstr "%(date)s"
#. module: account_followup
#: field:res.partner,payment_next_action_date:0
msgid "Next Action Date"
-msgstr ""
+msgstr "Következő művelet időpontja"
#. module: account_followup
#: view:account_followup.followup.line:0
#: field:account_followup.followup.line,manual_action:0
msgid "Manual Action"
-msgstr ""
+msgstr "Kézi művelet"
#. module: account_followup
#: field:account_followup.sending.results,needprinting:0
msgid "Needs Printing"
-msgstr ""
+msgstr "Nyomtatás szükséges"
#. module: account_followup
#: view:res.partner:0
msgid "⇾ Mark as Done"
-msgstr ""
+msgstr "⇾ Jelölje elvégzettnek"
#. module: account_followup
#: field:account_followup.followup.line,manual_action_note:0
msgid "Action To Do"
-msgstr ""
+msgstr "Elvégzendő művelet"
#. module: account_followup
#: field:account_followup.followup,company_id:0
@@ -94,34 +94,34 @@ msgstr "E-mail tárgya"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(user_signature)s"
-msgstr ""
+msgstr "%(user_signature)s"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "days overdue, do the following actions:"
-msgstr ""
+msgstr "a határidő napján, a következő műveleteket hajtsa végre:"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "Follow-up Steps"
-msgstr ""
+msgstr "Fizetési-emlékezetető lépései"
#. module: account_followup
#: field:account_followup.print,email_body:0
msgid "Email Body"
-msgstr ""
+msgstr "E-mail szövege"
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_account_followup_print
msgid "Send Follow-Ups"
-msgstr ""
+msgstr "Fizetési-emlékezető küldése"
#. module: account_followup
#: report:account_followup.followup.print:0
#: code:addons/account_followup/account_followup.py:263
#, python-format
msgid "Amount"
-msgstr ""
+msgstr "Összeg"
#. module: account_followup
#: help:res.partner,payment_next_action:0
@@ -129,11 +129,14 @@ msgid ""
"This is the next action to be taken. It will automatically be set when the "
"partner gets a follow-up level that requires a manual action. "
msgstr ""
+"Ez a következő elvégezni kívánt művelet. Ez automatikusan beállított amint "
+"a partner elér egy olyan fizetési-emlékeztető szintet, ami kézi beavatkozást "
+"igényel. "
#. module: account_followup
#: view:res.partner:0
msgid "No Responsible"
-msgstr ""
+msgstr "Nincs felelős"
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line2
@@ -158,6 +161,24 @@ msgid ""
"\n"
"Best Regards,\n"
msgstr ""
+"\n"
+"Tisztelt %(partner_name)s,\n"
+"\n"
+"Csalódottan vettük tudomásul, és ezért fizetési-emlékeztetőt vagyunk "
+"kénytelenek küldeni, mivel a számlája már régebben esedékessé vált.\n"
+"\n"
+"Fontos, hogy azonnal fizessenek, egyéb esetben kénytelenek vagyunk elbírálni "
+"a számlájuk lezárását, ami azzal jár, hogy nem leszünk képesek időben "
+"szállítani az Önök vállalakozásának (termékeket/szolgáltatásokat).\n"
+"Kérjük Önöket a fizetés 8 napon belüli pontos teljesítésére.\n"
+"\n"
+"Ha a fizetéssel kapcsolatban probléma merült fel, amit mi nem vettünk "
+"figyelembe, akkor kérjük vegyék fel a könyvelési csoportunkkal a "
+"kapcsolatot, hogy elháríthassuk azt amilyen gyorsan csak lehet.\n"
+"\n"
+"A lejárt számlák részleteit lentebb találják.\n"
+"\n"
+"Üdvözlettel,\n"
#. module: account_followup
#: model:email.template,body_html:account_followup.email_template_account_followup_level0
@@ -195,6 +216,39 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"\n"
+"<div style=\"font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-"
+"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, "
+"255, 255); \">\n"
+"\n"
+" <p>Tisztelt ${object.name},</p>\n"
+" <p>\n"
+" Ha időközben kiegyenlítésre került, vagy a mi hibánkból adódóan téves, "
+"akkor tárgytalan, \n"
+"de adataink szerint a következő tétel kifizetés nélkül maradt. \n"
+"Kérjük Önöket a fizetés 8 napon belüli pontos teljesítésére.\n"
+"\n"
+"Ha a levél elküldése előtt a fizetés már megtörtént akkor kérjük tekintsék "
+"ezt tárgytalannak. Kérjük vegyék fel a kapcsolatot könyvelési "
+"csoportunkkal. \n"
+"\n"
+" </p>\n"
+"<br/>\n"
+"Üdvözlettel,\n"
+"<br/>\n"
+" <br/>\n"
+"${user.name}\n"
+"\n"
+"<br/>\n"
+"<br/>\n"
+"\n"
+"\n"
+"${object.get_followup_table_html() | safe}\n"
+"\n"
+" <br/>\n"
+"\n"
+"</div>\n"
+" "
#. module: account_followup
#: view:account_followup.stat.by.partner:0
@@ -209,17 +263,17 @@ msgstr "Tartozik összesen"
#. module: account_followup
#: field:res.partner,payment_next_action:0
msgid "Next Action"
-msgstr ""
+msgstr "Következő művelet"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid ": Partner Name"
-msgstr ""
+msgstr ": Partner neve"
#. module: account_followup
#: field:account_followup.followup.line,manual_action_responsible_id:0
msgid "Assign a Responsible"
-msgstr ""
+msgstr "Jelöljön ki egy felelőst"
#. module: account_followup
#: view:account_followup.followup:0
@@ -255,6 +309,16 @@ msgid ""
" same customer, the actions of the most \n"
" overdue invoice will be executed."
msgstr ""
+"Egy vevő kifizetetlen számlájának emlékeztetésére,\n"
+" meghatározhat különböző műveleteket a vevő késedel-\n"
+" métől függően. Ezek a műveletek fizetési-emlékeztető "
+"szintekbe\n"
+" csoportosítottak, melyek a számla fizetési határidő "
+"dátumától\n"
+" számított bizonyos napokon lesznek kapcsolva.\n"
+" Ha több lejárt számlája is van ugyanannak a \n"
+" vevőnek, akkor a leghosszabb nappal lejárt művelet \n"
+" lesz elvégezve."
#. module: account_followup
#: report:account_followup.followup.print:0
@@ -269,7 +333,7 @@ msgstr "Partnerek"
#. module: account_followup
#: sql_constraint:account_followup.followup:0
msgid "Only one follow-up per company is allowed"
-msgstr ""
+msgstr "Vállalatonként csak egy fizetési-emlékeztető engedélyezett"
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:254
@@ -280,12 +344,12 @@ msgstr "Fizetési emlékeztető"
#. module: account_followup
#: help:account_followup.followup.line,send_letter:0
msgid "When processing, it will print a letter"
-msgstr ""
+msgstr "Ha el lesz végeve, akkor levelet fog nyomtatni"
#. module: account_followup
#: field:res.partner,payment_earliest_due_date:0
msgid "Worst Due Date"
-msgstr ""
+msgstr "Legroszabb leghoszabb lejárati idő"
#. module: account_followup
#: view:account_followup.stat:0
@@ -295,17 +359,17 @@ msgstr "Nem peresített"
#. module: account_followup
#: view:account_followup.print:0
msgid "Send emails and generate letters"
-msgstr ""
+msgstr "Küldjön e-mail-t és hozzon létre levelet"
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_customer_followup
msgid "Manual Follow-Ups"
-msgstr ""
+msgstr "Kézi fizetési-emlékeztető"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(partner_name)s"
-msgstr ""
+msgstr "%(partner_name)s"
#. module: account_followup
#: model:email.template,body_html:account_followup.email_template_account_followup_level1
@@ -347,6 +411,40 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"\n"
+"<div style=\"font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-"
+"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, "
+"255, 255); \">\n"
+" \n"
+" <p>Dear ${object.name},</p>\n"
+" <p>\n"
+" Csalódottan vettük tudomásul, és ezért fizetési-emlékeztetőt vagyunk "
+"kénytelenek küldeni, mivel a számlája már régebben esedékessé vált.Fontos, "
+"hogy azonnal fizessenek, egyéb esetben kénytelenek vagyunk elbírálni a "
+"számlájuk lezárását, ami azzal jár, hogy nem leszünk képesek időben "
+"szállítani az Önök vállalakozásának (termékeket/szolgáltatásokat).\n"
+"Kérjük Önöket a fizetés 8 napon belüli pontos teljesítésére.\n"
+"Ha a fizetéssel kapcsolatban probléma merült fel, amit mi nem vettünk "
+"figyelembe, akkor kérjük vegyék fel a könyvelési csoportunkkal a "
+"kapcsolatot, hogy elháríthassuk azt amilyen gyorsan csak lehet.\n"
+"A lejárt számlák részleteit lentebb találják.\n"
+" </p>\n"
+"<br/>\n"
+"Üdvözlettel,\n"
+" \n"
+"<br/>\n"
+"<br/>\n"
+"${user.name}\n"
+" \n"
+"<br/>\n"
+"<br/>\n"
+"\n"
+"${object.get_followup_table_html() | safe}\n"
+"\n"
+" <br/>\n"
+"\n"
+"</div>\n"
+" "
#. module: account_followup
#: field:account_followup.stat,debit:0
@@ -356,49 +454,49 @@ msgstr "Tartozik"
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat
msgid "Follow-up Statistics"
-msgstr ""
+msgstr "Fizetési-emlékeztető statisztikák"
#. module: account_followup
#: view:res.partner:0
msgid "Send Overdue Email"
-msgstr ""
+msgstr "Lejárt dátumú fizetésről e-mail emlékeztető küldése"
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup_line
msgid "Follow-up Criteria"
-msgstr ""
+msgstr "Fizetési-emlékeztető kritériom"
#. module: account_followup
#: help:account_followup.followup.line,sequence:0
msgid "Gives the sequence order when displaying a list of follow-up lines."
-msgstr "Megadja a fizetési emlékeztető sorok listázási sorrendjét."
+msgstr "Megadja a fizetési-emlékeztető sorok listázási sorrendjét."
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:166
#, python-format
msgid " will be sent"
-msgstr ""
+msgstr " el lesz küldve"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid ": User's Company Name"
-msgstr ""
+msgstr ": Felhasználó vállalata neve"
#. module: account_followup
#: view:account_followup.followup.line:0
#: field:account_followup.followup.line,send_letter:0
msgid "Send a Letter"
-msgstr ""
+msgstr "Levél küldése"
#. module: account_followup
#: model:ir.actions.act_window,name:account_followup.action_account_followup_definition_form
msgid "Payment Follow-ups"
-msgstr ""
+msgstr "fizetési-emlékeztetők kifizetése"
#. module: account_followup
#: field:account_followup.followup.line,delay:0
msgid "Due Days"
-msgstr ""
+msgstr "Határidő túllépése napokban"
#. module: account_followup
#: field:account.move.line,followup_line_id:0
@@ -414,12 +512,12 @@ msgstr "Legutolsó fizetési emlékeztető"
#. module: account_followup
#: model:ir.ui.menu,name:account_followup.menu_manual_reconcile_followup
msgid "Reconcile Invoices & Payments"
-msgstr ""
+msgstr "Számlák & Fizetések párosítása"
#. module: account_followup
#: model:ir.ui.menu,name:account_followup.account_followup_s
msgid "Do Manual Follow-Ups"
-msgstr ""
+msgstr "Kézi fizetési-emlékeztető elvégzése"
#. module: account_followup
#: report:account_followup.followup.print:0
@@ -429,17 +527,17 @@ msgstr "P."
#. module: account_followup
#: field:account_followup.print,email_conf:0
msgid "Send Email Confirmation"
-msgstr ""
+msgstr "E-mail megerősítés küldése"
#. module: account_followup
#: view:account_followup.stat:0
msgid "Follow-up Entries with period in current year"
-msgstr ""
+msgstr "Fizetési-emlékeztető bejegyzések a tárgyi évben"
#. module: account_followup
#: field:account_followup.stat.by.partner,date_followup:0
msgid "Latest follow-up"
-msgstr ""
+msgstr "Legutóbbi fizetési-emlékeztető"
#. module: account_followup
#: field:account_followup.print,partner_lang:0
@@ -450,12 +548,12 @@ msgstr "E-mail küldése a partner nyelvén"
#: code:addons/account_followup/wizard/account_followup_print.py:169
#, python-format
msgid " email(s) sent"
-msgstr ""
+msgstr " e-mail(ek) elküldve"
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_print
msgid "Print Follow-up & Send Mail to Customers"
-msgstr ""
+msgstr "Fizetési-emlékeztető nyomtatása & E-mail küldése a vevők részére"
#. module: account_followup
#: field:account_followup.followup.line,description:0
@@ -466,12 +564,12 @@ msgstr "Kinyomtatott üzenet"
#: code:addons/account_followup/wizard/account_followup_print.py:155
#, python-format
msgid "Anybody"
-msgstr ""
+msgstr "Bárki"
#. module: account_followup
#: help:account_followup.followup.line,send_email:0
msgid "When processing, it will send an email"
-msgstr ""
+msgstr "végrehajtáskor egy e-mailt fog küldeni"
#. module: account_followup
#: view:account_followup.stat.by.partner:0
@@ -481,7 +579,7 @@ msgstr "Emlékeztetendő partner"
#. module: account_followup
#: view:res.partner:0
msgid "Print Overdue Payments"
-msgstr ""
+msgstr "Határidőn túli fizetések nyomtatása"
#. module: account_followup
#: field:account_followup.followup.line,followup_id:0
@@ -494,11 +592,12 @@ msgstr "Fizetési emlékeztetők"
#, python-format
msgid "Email not sent because of email address of partner not filled in"
msgstr ""
+"E-mail nem lett elküldve, mert a partner e-mail címe nem lett kitöltve"
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_followup
msgid "Account Follow-up"
-msgstr ""
+msgstr "Fizetési-emlékeztető könyvelés"
#. module: account_followup
#: help:res.partner,payment_responsible_id:0
@@ -506,11 +605,13 @@ msgid ""
"Optionally you can assign a user to this field, which will make him "
"responsible for the action."
msgstr ""
+"Választhat felhasználót is erre a mezőre, ami felelőssé teszi erre a "
+"műveletre."
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_sending_results
msgid "Results from the sending of the different letters and emails"
-msgstr ""
+msgstr "A különböző levelek és e-mailek küldéséből származó eredmény"
#. module: account_followup
#: constraint:account_followup.followup.line:0
@@ -518,27 +619,29 @@ msgid ""
"Your description is invalid, use the right legend or %% if you want to use "
"the percent character."
msgstr ""
+"A leírása érvénytelen, használja a jobb oldali feliratot vagy %% ha akarja a "
+"százalék karaktert használja."
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:172
#, python-format
msgid " manual action(s) assigned:"
-msgstr ""
+msgstr " kézi művelet(ek) hozzárendelve:"
#. module: account_followup
#: view:res.partner:0
msgid "Search Partner"
-msgstr ""
+msgstr "Partner keresés"
#. module: account_followup
#: model:ir.ui.menu,name:account_followup.account_followup_print_menu
msgid "Send Letters and Emails"
-msgstr ""
+msgstr "Levelek és E-mailek küldése"
#. module: account_followup
#: view:account_followup.followup:0
msgid "Search Follow-up"
-msgstr ""
+msgstr "Fizetési-emlékeztető keresése"
#. module: account_followup
#: view:res.partner:0
@@ -549,12 +652,12 @@ msgstr ""
#: code:addons/account_followup/wizard/account_followup_print.py:237
#, python-format
msgid "Send Letters and Emails: Actions Summary"
-msgstr ""
+msgstr "Levelek és E-mailek küldése: Műveletek összegzése"
#. module: account_followup
#: view:account_followup.print:0
msgid "or"
-msgstr ""
+msgstr "vagy"
#. module: account_followup
#: view:res.partner:0
@@ -562,21 +665,23 @@ msgid ""
"If not specified by the latest follow-up level, it will send from the "
"default email template"
msgstr ""
+"Ha nincs meghatározva a legutóbbi fizetési-emlékeztető szinttel, akkor az "
+"alapértelmezett e-mail sablonnal lesz elküldve"
#. module: account_followup
#: sql_constraint:account_followup.followup.line:0
msgid "Days of the follow-up levels must be different"
-msgstr ""
+msgstr "A fizetési-emlékeztető szintek napjainak különbözőeknek kell lenniük"
#. module: account_followup
#: view:res.partner:0
msgid "Click to mark the action as done."
-msgstr ""
+msgstr "Kattintson a művelet elvégzésének jelülésére."
#. module: account_followup
#: model:ir.ui.menu,name:account_followup.menu_action_followup_stat_follow
msgid "Follow-Ups Analysis"
-msgstr ""
+msgstr "Fizetési-emlékeztető elemzések"
#. module: account_followup
#: help:res.partner,payment_next_action_date:0
@@ -586,11 +691,16 @@ msgid ""
"action. Can be practical to set manually e.g. to see if he keeps his "
"promises."
msgstr ""
+"Ez az amikor kézi fizetési-emlékeztető szükséges. A mai nap lesz beállítva, "
+"ha a partner egy olyan fizetési-emlékeztető szintet kap ami kézi "
+"beavatkozást igényel. Praktikus lehet kézire állítani pl. megfigyelni, hogy "
+"betartja-e a szavát."
#. module: account_followup
#: view:res.partner:0
msgid "Print overdue payments report independent of follow-up line"
msgstr ""
+"fizetési-emlékeztető soroktól független lejárt fizetési tételek nyomtatása"
#. module: account_followup
#: help:account_followup.print,date:0
@@ -609,7 +719,7 @@ msgstr "Fizetési emlékeztető küldés időpontja"
#: view:res.partner:0
#: field:res.partner,payment_responsible_id:0
msgid "Follow-up Responsible"
-msgstr ""
+msgstr "Fizetési-emlékeztető felelőse"
#. module: account_followup
#: model:email.template,body_html:account_followup.email_template_account_followup_level2
@@ -646,6 +756,37 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"\n"
+"<div style=\"font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-"
+"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, "
+"255, 255); \">\n"
+" \n"
+" <p>Dear ${object.name},</p>\n"
+" <p>\n"
+" A többszörös fizetési-emlékeztető ellenére, még mindig nem történt meg a "
+"számla kiegyenlítése.\n"
+"Ha nem történik meg a kiegyenlítés 8 napon belül, törvényes úton vagyunk "
+"kénytelenek az adósságot behajtani, minden további felszólítás nélkül.\n"
+"Úgy gondoljuk, hogy ez nem lesz szükséges lépés a lenti részletekkel "
+"kapcsolatban.\n"
+"Az üggyel kapcsolatban felmerült kérdésekben, kérjük vegyék fel a "
+"kapcsolatot a könyvelési csoportunkkal.\n"
+"</p>\n"
+"<br/>\n"
+"Tisztelttel,\n"
+"<br/>\n"
+"<br/>\n"
+"${user.name}\n"
+"<br/>\n"
+"<br/>\n"
+"\n"
+"\n"
+"${object.get_followup_table_html() | safe}\n"
+"\n"
+" <br/>\n"
+"\n"
+"</div>\n"
+" "
#. module: account_followup
#: report:account_followup.followup.print:0
@@ -655,7 +796,7 @@ msgstr "Bizonylat: vevő folyószámla kivonat"
#. module: account_followup
#: model:ir.ui.menu,name:account_followup.account_followup_menu
msgid "Follow-up Levels"
-msgstr ""
+msgstr "Fizetési-emlékeztető szintek"
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line4
@@ -678,40 +819,54 @@ msgid ""
"Best Regards,\n"
" "
msgstr ""
+"\n"
+"Tisztelt %(partner_name)s,\n"
+"\n"
+"A többszörös fizetési-emlékeztető ellenére, még mindig nem történt meg a "
+"számla kiegyenlítése.\n"
+"Ha nem történik meg a kiegyenlítés 8 napon belül, törvényes úton vagyunk "
+"kénytelenek az adósságot behajtani, minden további felszólítás nélkül.\n"
+"Úgy gondoljuk, hogy ez nem lesz szükséges lépés a lenti részletekkel "
+"kapcsolatban.\n"
+"Az üggyel kapcsolatban felmerült kérdésekben, kérjük vegyék fel a "
+"kapcsolatot a könyvelési csoportunkkal.\n"
+"\n"
+"Üdvözlettel,\n"
+" "
#. module: account_followup
#: field:res.partner,payment_amount_due:0
msgid "Amount Due"
-msgstr ""
+msgstr "Esedékes összeg"
#. module: account_followup
#: field:account.move.line,followup_date:0
msgid "Latest Follow-up"
-msgstr "Legutolsó fizetési emlékeztető"
+msgstr "Legutobbi fizetési emlékeztető"
#. module: account_followup
#: view:account_followup.sending.results:0
msgid "Download Letters"
-msgstr ""
+msgstr "Levelek letöltése"
#. module: account_followup
#: field:account_followup.print,company_id:0
#: field:res.partner,unreconciled_aml_ids:0
msgid "unknown"
-msgstr ""
+msgstr "ismeretlen"
#. module: account_followup
#: code:addons/account_followup/account_followup.py:314
#, python-format
msgid "Printed overdue payments report"
-msgstr ""
+msgstr "Lejárt fizetési tételek jelentésének nyomtatása"
#. module: account_followup
#: help:account_followup.followup.line,manual_action:0
msgid ""
"When processing, it will set the manual action to be taken for that "
"customer. "
-msgstr ""
+msgstr "Végrehajtáskor, a vevőhöz a kézi műveletet fogja beállítani. "
#. module: account_followup
#: view:res.partner:0
@@ -721,18 +876,25 @@ msgid ""
" order to exclude it from the next follow-up "
"actions."
msgstr ""
+"Alább a vevő ügyleteinek története.\n"
+" Ellenőrizheti a \"Nincs fizetési-emlékeztető\" "
+"soron\n"
+" a következő fizetési-emlékeztető műveletekből "
+"való kizárását."
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:171
#, python-format
msgid " email(s) should have been sent, but "
-msgstr ""
+msgstr " ki kellett volna küldeni az e-mail(ek)t, de "
#. module: account_followup
#: help:account_followup.print,test_print:0
msgid ""
"Check if you want to print follow-ups without changing follow-ups level."
msgstr ""
+"Ellenőrizze, hogy a fizetési-emlékeztető szintek változtatása nélkül "
+"szeretné a fizetési-emlékeztetők nyomtatást."
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_move_line
@@ -742,12 +904,12 @@ msgstr "Könyvelési tételsorok"
#. module: account_followup
#: report:account_followup.followup.print:0
msgid "Total:"
-msgstr ""
+msgstr "Összesen:"
#. module: account_followup
#: field:account_followup.followup.line,email_template_id:0
msgid "Email Template"
-msgstr ""
+msgstr "E-mail sablon"
#. module: account_followup
#: field:account_followup.print,summary:0
@@ -758,7 +920,7 @@ msgstr "Összegzés"
#: view:account_followup.followup.line:0
#: field:account_followup.followup.line,send_email:0
msgid "Send an Email"
-msgstr ""
+msgstr "Egy E-amil küldése"
#. module: account_followup
#: field:account_followup.stat,credit:0
@@ -768,7 +930,7 @@ msgstr "Követel"
#. module: account_followup
#: field:res.partner,payment_amount_overdue:0
msgid "Amount Overdue"
-msgstr ""
+msgstr "Lejárt összeg"
#. module: account_followup
#: help:res.partner,latest_followup_level_id_without_lit:0
@@ -776,12 +938,14 @@ msgid ""
"The maximum follow-up level without taking into account the account move "
"lines with litigation"
msgstr ""
+"A maximum fizetési-emlékeztető szint ami megtehető anélkül, hogy az ne "
+"kerüljön peres eléjárásra"
#. module: account_followup
#: view:account_followup.stat:0
#: field:res.partner,latest_followup_date:0
msgid "Latest Follow-up Date"
-msgstr ""
+msgstr "Legutóbbi fizetési-emlékeztető dátuma."
#. module: account_followup
#: model:email.template,body_html:account_followup.email_template_account_followup_default
@@ -814,6 +978,34 @@ msgid ""
"</div>\n"
" "
msgstr ""
+"\n"
+"<div style=\"font-family: 'Lucica Grande', Ubuntu, Arial, Verdana, sans-"
+"serif; font-size: 12px; color: rgb(34, 34, 34); background-color: rgb(255, "
+"255, 255); \">\n"
+" \n"
+" <p>Tisztelt ${object.name},</p>\n"
+" <p>\n"
+" Ha időközben kiegyenlítésre került, vagy a mi hibánkból adódóan téves, "
+"akkor tárgytalan, \n"
+"de adataink szerint a következő tétel kifizetés nélkül maradt. \n"
+"Kérjük Önöket a fizetés 8 napon belüli pontos teljesítésére.\n"
+"Ha a levél elküldése előtt a fizetés már megtörtént akkor kérjük tekintsék "
+"ezt tárgytalannak. Kérjük vegyék fel a kapcsolatot könyvelési "
+"csoportunkkal. \n"
+" </p>\n"
+"<br/>\n"
+"Üdvözlettel,\n"
+"<br/>\n"
+"<br/>\n"
+"${user.name}\n"
+"<br/>\n"
+"<br/>\n"
+"\n"
+"${object.get_followup_table_html() | safe}\n"
+"\n"
+"<br/>\n"
+"</div>\n"
+" "
#. module: account_followup
#: field:account.move.line,result:0
@@ -826,17 +1018,17 @@ msgstr "Egyenleg"
#. module: account_followup
#: help:res.partner,payment_note:0
msgid "Payment Note"
-msgstr ""
+msgstr "Megjegyzés a fizetéshez"
#. module: account_followup
#: view:res.partner:0
msgid "My Follow-ups"
-msgstr ""
+msgstr "Fizetési-emlékeztetőim"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "%(company_name)s"
-msgstr ""
+msgstr "%(company_name)s"
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line1
@@ -854,6 +1046,18 @@ msgid ""
"\n"
"Best Regards,\n"
msgstr ""
+"\n"
+"Dear %(partner_name)s,\n"
+"\n"
+" Ha időközben kiegyenlítésre került, vagy a mi hibánkból adódóan téves, "
+"akkor tárgytalan, de adataink szerint a következő tétel kifizetés nélkül "
+"maradt. Kérjük Önöket a fizetés 8 napon belüli pontos teljesítésére.\n"
+"\n"
+"Ha a levél elküldése előtt a fizetés már megtörtént akkor kérjük tekintsék "
+"ezt tárgytalannak. Kérjük vegyék fel a kapcsolatot könyvelési "
+"csoportunkkal. \n"
+"\n"
+"Üdvözlettel,\n"
#. module: account_followup
#: field:account_followup.stat,date_move_last:0
@@ -870,12 +1074,12 @@ msgstr "Időszak"
#: code:addons/account_followup/wizard/account_followup_print.py:228
#, python-format
msgid "%s partners have no credits and as such the action is cleared"
-msgstr ""
+msgstr "%s a partnernek nincs hitele azért a művelet törölve lett"
#. module: account_followup
#: model:ir.actions.report.xml,name:account_followup.account_followup_followup_report
msgid "Follow-up Report"
-msgstr ""
+msgstr "Fizetési-emlékeztető jelentés"
#. module: account_followup
#: view:res.partner:0
@@ -883,6 +1087,8 @@ msgid ""
", the latest payment follow-up\n"
" was:"
msgstr ""
+", a legutóbbi fizetési-emlékeztető kifizetés\n"
+" ez volt:"
#. module: account_followup
#: view:account_followup.print:0
@@ -892,7 +1098,7 @@ msgstr "Mégse"
#. module: account_followup
#: view:account_followup.sending.results:0
msgid "Close"
-msgstr ""
+msgstr "Lezár"
#. module: account_followup
#: view:account_followup.stat:0
@@ -908,23 +1114,23 @@ msgstr "Maximális fizetési emlékeztető szint"
#: code:addons/account_followup/wizard/account_followup_print.py:171
#, python-format
msgid " had unknown email address(es)"
-msgstr ""
+msgstr " ismeretlen e-mail címe(i) van(nak)"
#. module: account_followup
#: view:res.partner:0
msgid "Responsible"
-msgstr ""
+msgstr "Felelős"
#. module: account_followup
#: model:ir.ui.menu,name:account_followup.menu_finance_followup
#: view:res.partner:0
msgid "Payment Follow-up"
-msgstr ""
+msgstr "Fizetési-emlékeztető kifizetés"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid ": Current Date"
-msgstr ""
+msgstr ": Jelenlegi dátum"
#. module: account_followup
#: view:account_followup.print:0
@@ -933,16 +1139,20 @@ msgid ""
" set the manual actions per customer, according to "
"the follow-up levels defined."
msgstr ""
+"Ez a művelet fizetési-emlékeztető e-mail küldéseket indít, levelet nyomtat "
+"és\n"
+" beállítja a vevőnkénti kézi műveletet, a fizetési-"
+"emlékeztető szintek beállításának megfelelően."
#. module: account_followup
#: field:account_followup.followup.line,name:0
msgid "Follow-Up Action"
-msgstr ""
+msgstr "Fizetési-emlékeztető művelet"
#. module: account_followup
#: view:account_followup.stat:0
msgid "Including journal entries marked as a litigation"
-msgstr ""
+msgstr "Beleértve a peres megjelölésű jelentés bejegyzéseket"
#. module: account_followup
#: report:account_followup.followup.print:0
@@ -955,7 +1165,7 @@ msgstr "Megjegyzés"
#. module: account_followup
#: view:account_followup.sending.results:0
msgid "Summary of actions"
-msgstr ""
+msgstr "Műveletek összegzése"
#. module: account_followup
#: report:account_followup.followup.print:0
@@ -965,7 +1175,7 @@ msgstr "Hiv."
#. module: account_followup
#: view:account_followup.followup.line:0
msgid "After"
-msgstr ""
+msgstr "Utána"
#. module: account_followup
#: view:account_followup.stat:0
@@ -975,7 +1185,7 @@ msgstr "Tárgyév"
#. module: account_followup
#: field:res.partner,latest_followup_level_id_without_lit:0
msgid "Latest Follow-up Level without litigation"
-msgstr ""
+msgstr "Legitóbbi per nélküli fizetési-emlékeztetőt szint"
#. module: account_followup
#: model:ir.actions.act_window,help:account_followup.action_account_manual_reconcile_receivable
@@ -985,6 +1195,10 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p>\n"
+" Nem talált jelentés tartalmat.\n"
+" </p>\n"
+" "
#. module: account_followup
#: view:account.move.line:0
@@ -994,7 +1208,7 @@ msgstr "Partner tételek"
#. module: account_followup
#: view:account_followup.stat:0
msgid "Follow-up lines"
-msgstr ""
+msgstr "Fizetési emlékeztető sorok"
#. module: account_followup
#: model:account_followup.followup.line,description:account_followup.demo_followup_line3
@@ -1015,6 +1229,21 @@ msgid ""
"\n"
"Best Regards,\n"
msgstr ""
+"\n"
+"Tisztelt %(partner_name)s,\n"
+"\n"
+" A többszörös fizetési-emlékeztető ellenére, még mindig nem történt meg a "
+"számla kiegyenlítése.\n"
+"Ha nem történik meg a kiegyenlítés 8 napon belül, törvényes úton vagyunk "
+"kénytelenek az adósságot behajtani, minden további felszólítás nélkül.\n"
+"\n"
+"Úgy gondoljuk, hogy ez nem lesz szükséges lépés a lenti részletekkel "
+"kapcsolatban.\n"
+"\n"
+"Az üggyel kapcsolatban felmerült kérdésekben, kérjük vegyék fel a "
+"kapcsolatot a könyvelési csoportunkkal.\n"
+"\n"
+"Üdvözlettel,\n"
#. module: account_followup
#: help:account_followup.print,partner_lang:0
@@ -1036,6 +1265,13 @@ msgid ""
"installed\n"
" using to top right icon."
msgstr ""
+"Írja ide ennek a levélnek a levél bemutatását,\n"
+" a fizetési-emlékeztető szint szerint. "
+"Használhatóak a\n"
+" következő kulcsszavak a szövegben. Meg kell "
+"lennie\n"
+" az összes jobb felső ikon szerinti nyelv "
+"fordításban is!"
#. module: account_followup
#: view:account_followup.stat:0
@@ -1051,7 +1287,7 @@ msgstr "Név"
#. module: account_followup
#: field:res.partner,latest_followup_level_id:0
msgid "Latest Follow-up Level"
-msgstr ""
+msgstr "Legitóbbi fizetési-emlékeztető szint"
#. module: account_followup
#: field:account_followup.stat,date_move:0
@@ -1062,23 +1298,23 @@ msgstr "Első tétel"
#. module: account_followup
#: model:ir.model,name:account_followup.model_account_followup_stat_by_partner
msgid "Follow-up Statistics by Partner"
-msgstr ""
+msgstr "Fizetési-emlékeztető partnerenkénti statisztika"
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:172
#, python-format
msgid " letter(s) in report"
-msgstr ""
+msgstr " level(ek) a jelentésben"
#. module: account_followup
#: view:res.partner:0
msgid "Partners with Overdue Credits"
-msgstr ""
+msgstr "Lejárt fizetési hitelekkel rendelkező partnerek"
#. module: account_followup
#: view:res.partner:0
msgid "Customer Followup"
-msgstr ""
+msgstr "Vevői fizetési-emlékeztető"
#. module: account_followup
#: model:ir.actions.act_window,help:account_followup.action_account_followup_definition_form
@@ -1094,22 +1330,33 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kattintson a fizetési-emlékeztető szint és műveletének "
+"létrehozásához.\n"
+" </p><p>\n"
+" Minden lépéshez, határozza meg a műveletet amit a lejárat "
+"után annyi nappal el fog végezni.\n"
+" Lehetséges nyomtatás és e-mail sablon használatával egy "
+"üzenet eljuttatása a vevő\n"
+" részére.\n"
+" </p>\n"
+" "
#. module: account_followup
#: code:addons/account_followup/wizard/account_followup_print.py:166
#, python-format
msgid "Follow-up letter of "
-msgstr ""
+msgstr "Fizetési-emlékeztető levél ide "
#. module: account_followup
#: view:res.partner:0
msgid "The"
-msgstr ""
+msgstr "A"
#. module: account_followup
#: view:account_followup.print:0
msgid "Send follow-ups"
-msgstr ""
+msgstr "Fizetési-emlékeztető küldése"
#. module: account_followup
#: view:account.move.line:0
@@ -1124,7 +1371,7 @@ msgstr "Sorszám"
#. module: account_followup
#: view:res.partner:0
msgid "Follow-ups To Do"
-msgstr ""
+msgstr "Még végrehejtandó fizetési-emlékeztető"
#. module: account_followup
#: report:account_followup.followup.print:0
@@ -1143,26 +1390,30 @@ msgid ""
"the reminder. Could be negative if you want to send a polite alert "
"beforehand."
msgstr ""
+"A számla lejárati dátuma utáni napok száma, amíg várakozik a felszólítás "
+"küldése előtt. Negatív is lehet, ha egy udvarias levelet szeretne küldeni a "
+"lejárati dátumra vonatkozólag."
#. module: account_followup
#: help:res.partner,latest_followup_date:0
msgid "Latest date that the follow-up level of the partner was changed"
msgstr ""
+"Legutóbbi dátum amikor a vevőnek a fizetési-emlékeztető szintje változott"
#. module: account_followup
#: field:account_followup.print,test_print:0
msgid "Test Print"
-msgstr ""
+msgstr "Nyomtatás teszt"
#. module: account_followup
#: view:account_followup.followup.line:0
msgid ": User Name"
-msgstr ""
+msgstr ": Felhasználó neve"
#. module: account_followup
#: view:res.partner:0
msgid "Accounting"
-msgstr ""
+msgstr "Könyvelés"
#. module: account_followup
#: field:account_followup.stat,blocked:0
@@ -1172,7 +1423,7 @@ msgstr "Zárolt"
#. module: account_followup
#: field:res.partner,payment_note:0
msgid "Customer Payment Promise"
-msgstr ""
+msgstr "Vevő fizetésre vonatkozó igérete"
#, python-format
#~ msgid "Follwoup Summary"
diff --git a/addons/account_sequence/i18n/cs.po b/addons/account_sequence/i18n/cs.po
new file mode 100644
index 00000000000..480e6f5ff6b
--- /dev/null
+++ b/addons/account_sequence/i18n/cs.po
@@ -0,0 +1,150 @@
+# Czech 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-03-31 16:43+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+#: model:ir.actions.act_window,name:account_sequence.action_account_seq_installer
+msgid "Account Sequence Application Configuration"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.move,internal_sequence_number:0
+#: help:account.move.line,internal_sequence_number:0
+msgid "Internal Sequence Number"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,number_next:0
+msgid "Next number of this sequence"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_next:0
+msgid "Next Number"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,number_increment:0
+msgid "Increment Number"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,number_increment:0
+msgid "The next number of the sequence will be incremented by this number"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "Configure Your Account Sequence Application"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "Configure"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,suffix:0
+msgid "Suffix value of the record for the sequence"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,padding:0
+msgid "Number padding"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move_line
+msgid "Journal Items"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.move,internal_sequence_number:0
+#: field:account.move.line,internal_sequence_number:0
+msgid "Internal Number"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,padding:0
+msgid ""
+"OpenERP will automatically adds some '0' on the left of the 'Next Number' to "
+"get the required padding size."
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,name:0
+msgid "Name"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.journal,internal_sequence_id:0
+msgid "Internal Sequence"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.sequence.installer,prefix:0
+msgid "Prefix value of the record for the sequence"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_move
+msgid "Account Entry"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,suffix:0
+msgid "Suffix"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "title"
+msgstr ""
+
+#. module: account_sequence
+#: field:account.sequence.installer,prefix:0
+msgid "Prefix"
+msgstr ""
+
+#. module: account_sequence
+#: help:account.journal,internal_sequence_id:0
+msgid ""
+"This sequence will be used to maintain the internal number for the journal "
+"entries related to this journal."
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_sequence_installer
+msgid "account.sequence.installer"
+msgstr ""
+
+#. module: account_sequence
+#: model:ir.model,name:account_sequence.model_account_journal
+msgid "Journal"
+msgstr ""
+
+#. module: account_sequence
+#: view:account.sequence.installer:0
+msgid "You can enhance the Account Sequence Application by installing ."
+msgstr ""
diff --git a/addons/account_test/i18n/cs.po b/addons/account_test/i18n/cs.po
new file mode 100644
index 00000000000..82c85a734dd
--- /dev/null
+++ b/addons/account_test/i18n/cs.po
@@ -0,0 +1,241 @@
+# Czech 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-03-31 16:43+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid ""
+"Code should always set a variable named `result` with the result of your "
+"test, that can be a list or\n"
+"a dictionary. If `result` is an empty list, it means that the test was "
+"succesful. Otherwise it will\n"
+"try to translate and print what is inside `result`.\n"
+"\n"
+"If the result of your test is a dictionary, you can set a variable named "
+"`column_order` to choose in\n"
+"what order you want to print `result`'s content.\n"
+"\n"
+"Should you need them, you can also use the following variables into your "
+"code:\n"
+" * cr: cursor to the database\n"
+" * uid: ID of the current user\n"
+"\n"
+"In any ways, the code must be legal python statements with correct "
+"indentation (if needed).\n"
+"\n"
+"Example: \n"
+" sql = '''SELECT id, name, ref, date\n"
+" FROM account_move_line \n"
+" WHERE account_id IN (SELECT id FROM account_account WHERE type "
+"= 'view')\n"
+" '''\n"
+" cr.execute(sql)\n"
+" result = cr.dictfetchall()"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_02
+msgid "Test 2: Opening a fiscal year"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_05
+msgid ""
+"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
+"Payable and Receivable Accounts"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_03
+msgid ""
+"Check if movement lines are balanced and have the same date and period"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,name:0
+msgid "Test Name"
+msgstr ""
+
+#. module: account_test
+#: report:account.test.assert.print:0
+msgid "Accouting tests on"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_01
+msgid "Test 1: General balance"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_06
+msgid "Check that paid/reconciled invoices are not in 'Open' state"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_05_2
+msgid ""
+"Check that reconciled account moves, that define Payable and Receivable "
+"accounts, are belonging to reconciled invoices"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Tests"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,desc:0
+msgid "Test Description"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Description"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_06_1
+msgid "Check that there's no move for any account with « View » account type"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_08
+msgid "Test 9 : Accounts and partners on account moves"
+msgstr ""
+
+#. module: account_test
+#: model:ir.actions.act_window,name:account_test.action_accounting_assert
+#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
+#: model:ir.ui.menu,name:account_test.menu_action_license
+msgid "Accounting Tests"
+msgstr ""
+
+#. module: account_test
+#: code:addons/account_test/report/account_test_report.py:74
+#, python-format
+msgid "The test was passed successfully"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,active:0
+msgid "Active"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_06
+msgid "Test 6 : Invoices status"
+msgstr ""
+
+#. module: account_test
+#: model:ir.model,name:account_test.model_accounting_assert_test
+msgid "accounting.assert.test"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_05
+msgid ""
+"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,code_exec:0
+msgid "Python code"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_07
+msgid ""
+"Check on bank statement that the Closing Balance = Starting Balance + sum of "
+"statement lines"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_07
+msgid "Test 8 : Closing balance on bank statements"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_03
+msgid "Test 3: Movement lines"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_05_2
+msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Expression"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_04
+msgid "Test 4: Totally reconciled mouvements"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_04
+msgid "Check if the totally reconciled movements are balanced"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_02
+msgid ""
+"Check if the balance of the new opened fiscal year matches with last year's "
+"balance"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Python Code"
+msgstr ""
+
+#. module: account_test
+#: model:ir.actions.act_window,help:account_test.action_accounting_assert
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to create Accounting Test.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_01
+msgid "Check the balance: Debit sum = Credit sum"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_08
+msgid "Check that general accounts and partners on account moves are active"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_06_1
+msgid "Test 7: « View  » account type"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Code Help"
+msgstr ""
diff --git a/addons/account_test/i18n/hu.po b/addons/account_test/i18n/hu.po
new file mode 100644
index 00000000000..b2d8eb81feb
--- /dev/null
+++ b/addons/account_test/i18n/hu.po
@@ -0,0 +1,241 @@
+# Hungarian 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-04-02 12:44+0000\n"
+"Last-Translator: krnkris <Unknown>\n"
+"Language-Team: Hungarian <hu@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-04-03 05:26+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid ""
+"Code should always set a variable named `result` with the result of your "
+"test, that can be a list or\n"
+"a dictionary. If `result` is an empty list, it means that the test was "
+"succesful. Otherwise it will\n"
+"try to translate and print what is inside `result`.\n"
+"\n"
+"If the result of your test is a dictionary, you can set a variable named "
+"`column_order` to choose in\n"
+"what order you want to print `result`'s content.\n"
+"\n"
+"Should you need them, you can also use the following variables into your "
+"code:\n"
+" * cr: cursor to the database\n"
+" * uid: ID of the current user\n"
+"\n"
+"In any ways, the code must be legal python statements with correct "
+"indentation (if needed).\n"
+"\n"
+"Example: \n"
+" sql = '''SELECT id, name, ref, date\n"
+" FROM account_move_line \n"
+" WHERE account_id IN (SELECT id FROM account_account WHERE type "
+"= 'view')\n"
+" '''\n"
+" cr.execute(sql)\n"
+" result = cr.dictfetchall()"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_02
+msgid "Test 2: Opening a fiscal year"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_05
+msgid ""
+"Check that reconciled invoice for Sales/Purchases has reconciled entries for "
+"Payable and Receivable Accounts"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_03
+msgid ""
+"Check if movement lines are balanced and have the same date and period"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,name:0
+msgid "Test Name"
+msgstr "Teszt név"
+
+#. module: account_test
+#: report:account.test.assert.print:0
+msgid "Accouting tests on"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_01
+msgid "Test 1: General balance"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_06
+msgid "Check that paid/reconciled invoices are not in 'Open' state"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_05_2
+msgid ""
+"Check that reconciled account moves, that define Payable and Receivable "
+"accounts, are belonging to reconciled invoices"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Tests"
+msgstr "Tesztek"
+
+#. module: account_test
+#: field:accounting.assert.test,desc:0
+msgid "Test Description"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Description"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_06_1
+msgid "Check that there's no move for any account with « View » account type"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_08
+msgid "Test 9 : Accounts and partners on account moves"
+msgstr ""
+
+#. module: account_test
+#: model:ir.actions.act_window,name:account_test.action_accounting_assert
+#: model:ir.actions.report.xml,name:account_test.account_assert_test_report
+#: model:ir.ui.menu,name:account_test.menu_action_license
+msgid "Accounting Tests"
+msgstr ""
+
+#. module: account_test
+#: code:addons/account_test/report/account_test_report.py:74
+#, python-format
+msgid "The test was passed successfully"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,active:0
+msgid "Active"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_06
+msgid "Test 6 : Invoices status"
+msgstr ""
+
+#. module: account_test
+#: model:ir.model,name:account_test.model_accounting_assert_test
+msgid "accounting.assert.test"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_05
+msgid ""
+"Test 5.1 : Payable and Receivable accountant lines of reconciled invoices"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,code_exec:0
+msgid "Python code"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_07
+msgid ""
+"Check on bank statement that the Closing Balance = Starting Balance + sum of "
+"statement lines"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_07
+msgid "Test 8 : Closing balance on bank statements"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_03
+msgid "Test 3: Movement lines"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_05_2
+msgid "Test 5.2 : Reconcilied invoices and Payable/Receivable accounts"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Expression"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_04
+msgid "Test 4: Totally reconciled mouvements"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_04
+msgid "Check if the totally reconciled movements are balanced"
+msgstr ""
+
+#. module: account_test
+#: field:accounting.assert.test,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_02
+msgid ""
+"Check if the balance of the new opened fiscal year matches with last year's "
+"balance"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Python Code"
+msgstr ""
+
+#. module: account_test
+#: model:ir.actions.act_window,help:account_test.action_accounting_assert
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to create Accounting Test.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_01
+msgid "Check the balance: Debit sum = Credit sum"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,desc:account_test.account_test_08
+msgid "Check that general accounts and partners on account moves are active"
+msgstr ""
+
+#. module: account_test
+#: model:accounting.assert.test,name:account_test.account_test_06_1
+msgid "Test 7: « View  » account type"
+msgstr ""
+
+#. module: account_test
+#: view:accounting.assert.test:0
+msgid "Code Help"
+msgstr ""
diff --git a/addons/account_voucher/i18n/hu.po b/addons/account_voucher/i18n/hu.po
index 746ffe5b247..1a50a813042 100644
--- a/addons/account_voucher/i18n/hu.po
+++ b/addons/account_voucher/i18n/hu.po
@@ -7,19 +7,19 @@ 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-03-26 15:03+0000\n"
+"PO-Revision-Date: 2013-04-04 11:34+0000\n"
"Last-Translator: krnkris <Unknown>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2013-03-27 04:36+0000\n"
-"X-Generator: Launchpad (build 16540)\n"
+"X-Launchpad-Export-Date: 2013-04-05 05:37+0000\n"
+"X-Generator: Launchpad (build 16550)\n"
#. module: account_voucher
#: field:account.bank.statement.line,voucher_id:0
msgid "Reconciliation"
-msgstr ""
+msgstr "Párosítás"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_config_settings
@@ -51,7 +51,7 @@ msgstr "Nyitott vevő tételek"
#: view:account.voucher:0
#: view:sale.receipt.report:0
msgid "Group By..."
-msgstr "Csoportosítás"
+msgstr "Csoportosítás ezzel..."
#. module: account_voucher
#: help:account.voucher,writeoff_amount:0
@@ -102,7 +102,7 @@ msgstr "Számla kifizetése"
#. module: account_voucher
#: view:account.voucher:0
msgid "Are you sure you want to cancel this receipt?"
-msgstr ""
+msgstr "Biztos, hogy vissza akarja vonni ezt a bevételi bizonylatot?"
#. module: account_voucher
#: view:account.voucher:0
@@ -137,6 +137,8 @@ msgid ""
"You can not change the journal as you already reconciled some statement "
"lines!"
msgstr ""
+"Nem tudja a naplót megváltoztatni mivel a kivonatok egyes sorait már "
+"párosította!"
#. module: account_voucher
#: view:account.voucher:0
@@ -160,6 +162,15 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kattintson vásárlási bevételi bizonylat rögzítéséhez. \n"
+" </p><p>\n"
+" Ha a vásárlási bevételi bizonylat igazolva lett, rögzítheti "
+"a \n"
+" vásárlási bevételi bizonylathoz kapcsolódó beszállítói "
+"kifizetést.\n"
+" </p>\n"
+" "
#. module: account_voucher
#: view:account.voucher:0
@@ -169,7 +180,7 @@ msgstr "Nyugták keresése"
#. module: account_voucher
#: field:account.voucher,writeoff_acc_id:0
msgid "Counterpart Account"
-msgstr ""
+msgstr "Ellenszámla"
#. module: account_voucher
#: field:account.voucher,account_id:0
@@ -191,7 +202,7 @@ msgstr "Rendben"
#. module: account_voucher
#: field:account.voucher.line,reconcile:0
msgid "Full Reconcile"
-msgstr ""
+msgstr "Teljes párosítás"
#. module: account_voucher
#: field:account.voucher,date_due:0
@@ -215,7 +226,7 @@ msgstr "Üzenetek"
#: model:ir.actions.act_window,name:account_voucher.action_purchase_receipt
#: model:ir.ui.menu,name:account_voucher.menu_action_purchase_receipt
msgid "Purchase Receipts"
-msgstr ""
+msgstr "Vásárlások bevételi bizonylatai"
#. module: account_voucher
#: field:account.voucher.line,move_line_id:0
@@ -271,11 +282,18 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kattintson értékesítési bevételi bizonylat létrehozásához.\n"
+" </p><p>\n"
+" Ha az értékesítési bizonylat igazolva lett, rögzítheti az \n"
+" értékesítéshez tartozó vevői befizetést.\n"
+" </p>\n"
+" "
#. module: account_voucher
#: help:account.voucher,message_unread:0
msgid "If checked new messages require your attention."
-msgstr ""
+msgstr "Ha be van jelölve, akkor figyelje az új üzeneteket."
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_bank_statement_line
@@ -298,17 +316,17 @@ msgstr "ÁFA"
#: code:addons/account_voucher/account_voucher.py:879
#, python-format
msgid "Invalid Action!"
-msgstr ""
+msgstr "Érvénytelen lépés!"
#. module: account_voucher
#: field:account.voucher,comment:0
msgid "Counterpart Comment"
-msgstr ""
+msgstr "Ellenoldali meglyegyzés"
#. module: account_voucher
#: field:account.voucher.line,account_analytic_id:0
msgid "Analytic Account"
-msgstr "Gyűjtőkód"
+msgstr "Gyűjtő/elemző könyvelés"
#. module: account_voucher
#: help:account.voucher,message_summary:0
@@ -316,11 +334,13 @@ msgid ""
"Holds the Chatter summary (number of messages, ...). This summary is "
"directly in html format in order to be inserted in kanban views."
msgstr ""
+"A chettelés összegzést megállítja (üzenetek száma,...). Ez az összegzés "
+"direkt HTML formátumú ahhoz hogy beilleszthető legyen a kanban nézetekbe."
#. module: account_voucher
#: view:account.voucher:0
msgid "Total Allocation"
-msgstr ""
+msgstr "Összes kiosztás"
#. module: account_voucher
#: view:account.voucher:0
@@ -330,7 +350,7 @@ msgstr "Fizetési információ"
#. module: account_voucher
#: view:account.voucher:0
msgid "(update)"
-msgstr ""
+msgstr "(frissítés)"
#. module: account_voucher
#: view:account.voucher:0
@@ -349,20 +369,20 @@ msgstr "Számlák importálása"
#: code:addons/account_voucher/account_voucher.py:1112
#, python-format
msgid "Wrong voucher line"
-msgstr "Nem megfelelő nyugta sorok"
+msgstr "Nem megfelelő nyugta sor"
#. module: account_voucher
#: selection:account.voucher,pay_now:0
#: selection:sale.receipt.report,pay_now:0
msgid "Pay Later or Group Funds"
-msgstr "Későbbi fizetés"
+msgstr "Fizessen később vagy csoportosítsa a pénzeket"
#. module: account_voucher
#: view:account.voucher:0
#: selection:account.voucher,type:0
#: selection:sale.receipt.report,type:0
msgid "Receipt"
-msgstr "Befizetés"
+msgstr "Bevételi bizonylat"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:1018
@@ -372,6 +392,9 @@ msgid ""
"settings, to manage automatically the booking of accounting entries related "
"to differences between exchange rates."
msgstr ""
+"Be kell állítani a 'Átváltási arány nyereség számlája' a könyvelés "
+"beállításainál, ahhoz, hogy kezelni tudja az automatikus könyvelését azoknak "
+"a számla tételeknek, melyek az átváltási arányok különbségéből adódhatnak."
#. module: account_voucher
#: view:account.voucher:0
@@ -399,7 +422,7 @@ msgstr "Szállítói nyugta"
#. module: account_voucher
#: field:account.voucher,message_follower_ids:0
msgid "Followers"
-msgstr ""
+msgstr "Követők"
#. module: account_voucher
#: selection:account.voucher.line,type:0
@@ -410,13 +433,13 @@ msgstr "Tartozik"
#: code:addons/account_voucher/account_voucher.py:1547
#, python-format
msgid "Unable to change journal !"
-msgstr ""
+msgstr "Naplót nem lehet megváltoztatni !"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,nbr:0
msgid "# of Voucher Lines"
-msgstr "Nyugtasorok száma"
+msgstr "# nyugta sor száma"
#. module: account_voucher
#: view:sale.receipt.report:0
@@ -446,6 +469,13 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kattintson új beszállítói fizetés létrehozásához.\n"
+" </p><p>\n"
+" OpenERP segít a kifizetéseinek, valamint a beszállítók "
+"részére még fizetendő mérleg könnyű nyomon követéséhez.\n"
+" </p>\n"
+" "
#. module: account_voucher
#: view:account.voucher:0
@@ -460,12 +490,12 @@ msgstr "Nyugta tételek"
#. module: account_voucher
#: field:account.voucher,name:0
msgid "Memo"
-msgstr "Megnevezés"
+msgstr "Emlékeztető"
#. module: account_voucher
#: view:account.voucher:0
msgid "Are you sure to unreconcile and cancel this record ?"
-msgstr ""
+msgstr "Biztosan visszavonja a bejegyzés párosítását?"
#. module: account_voucher
#: field:account.voucher,is_multi_currency:0
@@ -494,17 +524,25 @@ msgid ""
"\n"
"* The 'Cancelled' status is used when user cancel voucher."
msgstr ""
+" * A 'Tervezet' állapotot használja amint egy felhasználó létrehoz egy új és "
+"még le nem igazolt nyugtát. \n"
+"* 'Pro-forma' lesz, ha a nyugta Pro-forma állapotú, a nyugtának még nincs "
+"nyugta száma. \n"
+"* 'Elküldött' állapotú, ha egy felhasználó létrehozta a nyugtát, egy nyugta "
+"számot generált hozzá, és a könyvelésben egy nyugta bevitel létre lett hozva "
+" \n"
+"* A 'Visszavonva' állapot lesz, ha egy felhasználó visszavonta a nyugtát."
#. module: account_voucher
#: field:account.voucher,writeoff_amount:0
msgid "Difference Amount"
-msgstr ""
+msgstr "Különbség számla"
#. module: account_voucher
#: view:sale.receipt.report:0
#: field:sale.receipt.report,due_delay:0
msgid "Avg. Due Delay"
-msgstr "Álagos fizetési határidő"
+msgstr "Álagos fizetési késedelem"
#. module: account_voucher
#: code:addons/account_voucher/invoice.py:34
@@ -543,12 +581,24 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Kattintson új kifizetés rögzítéséhez. \n"
+" </p><p>\n"
+" Vigye be a vásárlót és a fizetési módot és utána, vagy "
+"hozzon\n"
+" létre kézzel egy fizetési rekordot, vagy az OpenERP fel fog "
+"ajánlani\n"
+" automatikusan a fizetéshez tartozó összeegyeztetést a\n"
+" nyitott számlákkal vagy értékesítési bevételi "
+"bizonylatokkal.\n"
+" </p>\n"
+" "
#. module: account_voucher
#: field:account.config.settings,expense_currency_exchange_account_id:0
#: field:res.company,expense_currency_exchange_account_id:0
msgid "Loss Exchange Rate Account"
-msgstr ""
+msgstr "Árfolyamveszteség számla"
#. module: account_voucher
#: view:account.voucher:0
@@ -572,7 +622,7 @@ msgstr "Ellenőrizendő"
#: code:addons/account_voucher/account_voucher.py:1194
#, python-format
msgid "change"
-msgstr ""
+msgstr "módosítás"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:1014
@@ -582,6 +632,9 @@ msgid ""
"settings, to manage automatically the booking of accounting entries related "
"to differences between exchange rates."
msgstr ""
+"Be kell állítani a 'Árfolyamveszteség számla' a könyvelés beállításoknál, "
+"ahhoz, hogy kezelni tudja automatikusan a könyvelési tételek rögzítését, "
+"melyek az átváltási árfolyam különbségekkel összefüggenek."
#. module: account_voucher
#: view:account.voucher:0
@@ -599,11 +652,13 @@ msgid ""
"Fields with internal purpose only that depicts if the voucher is a multi "
"currency one or not"
msgstr ""
+"Belső használatú mezők, melyek azt ábrázolják, hogy a nyugták több "
+"pénzneműek vagy nem"
#. module: account_voucher
#: view:account.invoice:0
msgid "Register Payment"
-msgstr "Kifizetés"
+msgstr "Kifizetés rögzítés"
#. module: account_voucher
#: field:account.statement.from.invoice.lines,line_ids:0
@@ -618,7 +673,7 @@ msgstr "December"
#. module: account_voucher
#: view:sale.receipt.report:0
msgid "Group by month of Invoice Date"
-msgstr ""
+msgstr "Csoportosítás számla dátuma alapján"
#. module: account_voucher
#: view:sale.receipt.report:0
@@ -636,7 +691,7 @@ msgstr "Pénznem"
#. module: account_voucher
#: view:account.statement.from.invoice.lines:0
msgid "Payable and Receivables"
-msgstr "Vevők és szállítók"
+msgstr "Fizetendők & Bevételek"
#. module: account_voucher
#: view:account.voucher:0
@@ -651,7 +706,7 @@ msgstr "Nyugta állapota"
#. module: account_voucher
#: view:account.voucher:0
msgid "Are you sure to unreconcile this record?"
-msgstr ""
+msgstr "Biztosan törölni szeretné ennek a rekordnak a párosítását?"
#. module: account_voucher
#: field:account.voucher,company_id:0
@@ -664,18 +719,18 @@ msgstr "Vállalat"
#. module: account_voucher
#: help:account.voucher,paid:0
msgid "The Voucher has been totally paid."
-msgstr "A nyugta ki lett egyenlítve"
+msgstr "A nyugta teljesen ki lett egyenlítve"
#. module: account_voucher
#: selection:account.voucher,payment_option:0
msgid "Reconcile Payment Balance"
-msgstr ""
+msgstr "Fizetési egyenleg párosítás"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:975
#, python-format
msgid "Configuration Error !"
-msgstr ""
+msgstr "Beállítási hiba!"
#. module: account_voucher
#: view:account.voucher:0
@@ -687,7 +742,7 @@ msgstr "Nyugta tervezetek"
#: view:sale.receipt.report:0
#: field:sale.receipt.report,price_total_tax:0
msgid "Total With Tax"
-msgstr "Bruttó érték"
+msgstr "Bruttó érték adóval"
#. module: account_voucher
#: view:account.voucher:0
@@ -699,18 +754,18 @@ msgstr "Beszerzési nyugta"
#: field:account.voucher,state:0
#: view:sale.receipt.report:0
msgid "Status"
-msgstr ""
+msgstr "Állapot"
#. module: account_voucher
#: view:account.voucher:0
msgid "Allocation"
-msgstr ""
+msgstr "Kiosztás"
#. module: account_voucher
#: view:account.statement.from.invoice.lines:0
#: view:account.voucher:0
msgid "or"
-msgstr ""
+msgstr "vagy"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
@@ -720,7 +775,7 @@ msgstr "Augusztus"
#. module: account_voucher
#: view:account.voucher:0
msgid "Validate Payment"
-msgstr ""
+msgstr "Fizetés jóváhagyása"
#. module: account_voucher
#: help:account.voucher,audit:0
@@ -728,6 +783,8 @@ msgid ""
"Check this box if you are unsure of that journal entry and if you want to "
"note it as 'to be reviewed' by an accounting expert."
msgstr ""
+"Jelölje be, ha bizonytalan a napló tétel kontírozásában. Ennek hatására "
+"könyvelő szekértő által 'ellenőrizendő'-ként jelölődik meg."
#. module: account_voucher
#: selection:sale.receipt.report,month:0
@@ -738,7 +795,7 @@ msgstr "Október"
#: code:addons/account_voucher/account_voucher.py:976
#, python-format
msgid "Please activate the sequence of selected journal !"
-msgstr ""
+msgstr "Kérem a sorozat aktiválását a kiválasztott naplóra !"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
@@ -748,23 +805,23 @@ msgstr "Június"
#. module: account_voucher
#: field:account.voucher,payment_rate_currency_id:0
msgid "Payment Rate Currency"
-msgstr ""
+msgstr "Fizetési pénznem aránya"
#. module: account_voucher
#: field:account.voucher,paid:0
msgid "Paid"
-msgstr ""
+msgstr "Rendezett"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt
#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt
msgid "Sales Receipts"
-msgstr ""
+msgstr "Értékesítési bevételi bizonylatok"
#. module: account_voucher
#: field:account.voucher,message_is_follower:0
msgid "Is a Follower"
-msgstr ""
+msgstr "Ez egy követő"
#. module: account_voucher
#: field:account.voucher,analytic_id:0
@@ -791,7 +848,7 @@ msgstr "Kiterjesztett szűrők"
#. module: account_voucher
#: field:account.voucher,paid_amount_in_company_currency:0
msgid "Paid Amount in Company Currency"
-msgstr ""
+msgstr "Kifizetett összeg a vállalat pénznemében"
#. module: account_voucher
#: field:account.bank.statement.line,amount_reconciled:0
@@ -807,7 +864,7 @@ msgstr "Azonnali kifizetés"
#. module: account_voucher
#: field:account.voucher.line,type:0
msgid "Dr/Cr"
-msgstr ""
+msgstr "T/K"
#. module: account_voucher
#: field:account.voucher,pre_line:0
@@ -818,7 +875,7 @@ msgstr "Előző kifizetések ?"
#: code:addons/account_voucher/account_voucher.py:1112
#, python-format
msgid "The invoice you are willing to pay is not valid anymore."
-msgstr ""
+msgstr "A kifizetni kívánt számla már nem érvényes."
#. module: account_voucher
#: selection:sale.receipt.report,month:0
@@ -829,52 +886,52 @@ msgstr "Január"
#: model:ir.actions.act_window,name:account_voucher.action_voucher_list
#: model:ir.ui.menu,name:account_voucher.menu_encode_entries_by_voucher
msgid "Journal Vouchers"
-msgstr "Nyugták"
+msgstr "Nyugták naplói"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_res_company
msgid "Companies"
-msgstr ""
+msgstr "Vállalatok"
#. module: account_voucher
#: field:account.voucher,message_summary:0
msgid "Summary"
-msgstr ""
+msgstr "Összegzés"
#. module: account_voucher
#: field:account.voucher,active:0
msgid "Active"
-msgstr ""
+msgstr "Aktív"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:982
#, python-format
msgid "Please define a sequence on the journal."
-msgstr ""
+msgstr "Kérem egy sorozat meghatározását a naplón."
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.act_pay_voucher
#: model:ir.actions.act_window,name:account_voucher.action_vendor_receipt
#: model:ir.ui.menu,name:account_voucher.menu_action_vendor_receipt
msgid "Customer Payments"
-msgstr ""
+msgstr "Vevői befizetések"
#. module: account_voucher
#: model:ir.actions.act_window,name:account_voucher.action_sale_receipt_report_all
#: model:ir.ui.menu,name:account_voucher.menu_action_sale_receipt_report_all
#: view:sale.receipt.report:0
msgid "Sales Receipts Analysis"
-msgstr ""
+msgstr "Értékesítési bevételi bizonylatok elemzései"
#. module: account_voucher
#: view:sale.receipt.report:0
msgid "Group by Invoice Date"
-msgstr ""
+msgstr "Számla dátuma szerinti csoportosítása"
#. module: account_voucher
#: view:account.voucher:0
msgid "Post"
-msgstr "Könyvelés"
+msgstr "Elküld"
#. module: account_voucher
#: view:account.voucher:0
@@ -885,7 +942,7 @@ msgstr "Számlák és kifizetetlen tételek"
#: view:sale.receipt.report:0
#: field:sale.receipt.report,price_total:0
msgid "Total Without Tax"
-msgstr "Nettó érték"
+msgstr "Nettó, adó nélküli érték"
#. module: account_voucher
#: view:account.voucher:0
@@ -921,7 +978,7 @@ msgstr "Bankkivonat"
#. module: account_voucher
#: view:account.bank.statement:0
msgid "onchange_amount(amount)"
-msgstr ""
+msgstr "onchange_amount(amount)"
#. module: account_voucher
#: selection:sale.receipt.report,month:0
@@ -954,19 +1011,19 @@ msgstr "Nyugta tételsorok"
#: view:account.statement.from.invoice.lines:0
#: view:account.voucher:0
msgid "Cancel"
-msgstr "Mégsem"
+msgstr "Visszavonás"
#. module: account_voucher
#: model:ir.actions.client,name:account_voucher.action_client_invoice_menu
msgid "Open Invoicing Menu"
-msgstr ""
+msgstr "Számlázási menü megnyitása"
#. module: account_voucher
#: selection:account.voucher,state:0
#: view:sale.receipt.report:0
#: selection:sale.receipt.report,state:0
msgid "Pro-forma"
-msgstr "Pro forma"
+msgstr "Pro-forma"
#. module: account_voucher
#: view:account.voucher:0
@@ -979,6 +1036,8 @@ msgstr "Könyvelési tételsorok"
#, python-format
msgid "Please define default credit/debit accounts on the journal \"%s\"."
msgstr ""
+"Kérem meghatározni az alapértelmezett követelés/tartozás könyvelést a naplón "
+"\"%s\"."
#. module: account_voucher
#: selection:account.voucher,type:0
@@ -995,7 +1054,7 @@ msgstr "Fizetés"
#. module: account_voucher
#: view:account.voucher:0
msgid "Currency Options"
-msgstr ""
+msgstr "Pénznem lehetőségek"
#. module: account_voucher
#: help:account.voucher,payment_option:0
@@ -1005,6 +1064,10 @@ msgid ""
"either choose to keep open this difference on the partner's account, or "
"reconcile it with the payment(s)"
msgstr ""
+"Ez a mező megkönnyíti a választást ahhoz, hogy mit szeretne tenni a "
+"kifizetett összeg és a kiosztott összeg közti különbségekkel. Hagyhatja "
+"nyitottan ezt a különbséget a partner számláján, vagy párosíthatja a "
+"fizetés(ek)el."
#. module: account_voucher
#: model:ir.actions.act_window,help:account_voucher.action_sale_receipt_report_all
@@ -1018,16 +1081,24 @@ msgid ""
" </p>\n"
" "
msgstr ""
+"<p>\n"
+" Erről a jelentésről, a vevőnek elküldött számlákról és fizetési\n"
+" határidőkről és késve fizetésről áttekintést kaphat. A \n"
+" keresési eszköz használható a számla beszámolók személyre\n"
+" szabásához és így, az elemzést az igényének megfelelően "
+"alakíthatja.\n"
+" </p>\n"
+" "
#. module: account_voucher
#: view:account.voucher:0
msgid "Posted Vouchers"
-msgstr ""
+msgstr "Elküldött nyugták"
#. module: account_voucher
#: field:account.voucher,payment_rate:0
msgid "Exchange Rate"
-msgstr ""
+msgstr "Árfolyam arány"
#. module: account_voucher
#: view:account.voucher:0
@@ -1047,7 +1118,7 @@ msgstr "Május"
#. module: account_voucher
#: view:account.voucher:0
msgid "Sale Receipt"
-msgstr ""
+msgstr "Értékesítési bevételi bizonylat"
#. module: account_voucher
#: view:account.voucher:0
@@ -1066,7 +1137,7 @@ msgstr "Belső megjegyzések"
#: view:account.voucher:0
#: field:account.voucher,line_cr_ids:0
msgid "Credits"
-msgstr "Követel"
+msgstr "Követelések"
#. module: account_voucher
#: field:account.voucher.line,amount_original:0
@@ -1076,7 +1147,7 @@ msgstr "Eredeti összeg"
#. module: account_voucher
#: view:account.voucher:0
msgid "Purchase Receipt"
-msgstr ""
+msgstr "Vásárlási bevételi bizonylatok"
#. module: account_voucher
#: help:account.voucher,payment_rate:0
@@ -1084,6 +1155,8 @@ msgid ""
"The specific rate that will be used, in this voucher, between the selected "
"currency (in 'Payment Rate Currency' field) and the voucher currency."
msgstr ""
+"Az arány, mely ezen nyugtán lesz használva, a kiválasztott pénznem (a "
+"'Fizetési pénznem aránya' mezőben) és a nyugta pénzneme közt."
#. module: account_voucher
#: view:account.voucher:0
@@ -1115,12 +1188,12 @@ msgstr "Február"
#. module: account_voucher
#: view:account.voucher:0
msgid "Supplier Invoices and Outstanding transactions"
-msgstr "Bejövő számlák és kifizetetlen tételek"
+msgstr "Beszállítók bejövő számlái és kifizetetlen tételek"
#. module: account_voucher
#: field:account.voucher,reference:0
msgid "Ref #"
-msgstr "Hiv. szám"
+msgstr "Hiv. szám #"
#. module: account_voucher
#: view:sale.receipt.report:0
@@ -1132,7 +1205,7 @@ msgstr "Év"
#: field:account.config.settings,income_currency_exchange_account_id:0
#: field:res.company,income_currency_exchange_account_id:0
msgid "Gain Exchange Rate Account"
-msgstr ""
+msgstr "Árfolyamnyereség számla"
#. module: account_voucher
#: selection:account.voucher,type:0
@@ -1148,7 +1221,7 @@ msgstr "Április"
#. module: account_voucher
#: help:account.voucher,tax_id:0
msgid "Only for tax excluded from price"
-msgstr ""
+msgstr "Csak az árakból kihagyott adók"
#. module: account_voucher
#: field:account.voucher,type:0
@@ -1158,7 +1231,7 @@ msgstr "Alapértelmezett típus"
#. module: account_voucher
#: help:account.voucher,message_ids:0
msgid "Messages and communication history"
-msgstr ""
+msgstr "Üzenetek és kommunikációs történet"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_account_statement_from_invoice_lines
@@ -1182,12 +1255,16 @@ msgid ""
"The amount of the voucher must be the same amount as the one on the "
"statement line."
msgstr ""
+"A nyugtán lévő összegnek ugyanannak kell lennie mint ami a kivonat sorában "
+"szerepel."
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:879
#, python-format
msgid "Cannot delete voucher(s) which are already opened or paid."
msgstr ""
+"Nem lehet olyan nyugtá(ka)t törölni, melyek meg lettek nyitva vagy ki lettek "
+"fozetve."
#. module: account_voucher
#: help:account.voucher,date:0
@@ -1197,7 +1274,7 @@ msgstr "Könyvelési tételek teljesítési dátuma"
#. module: account_voucher
#: model:mail.message.subtype,name:account_voucher.mt_voucher_state_change
msgid "Status Change"
-msgstr ""
+msgstr "Állapotváltozás"
#. module: account_voucher
#: selection:account.voucher,payment_option:0
@@ -1225,7 +1302,7 @@ msgstr "Nettó érték"
#. module: account_voucher
#: model:ir.model,name:account_voucher.model_sale_receipt_report
msgid "Sales Receipt Statistics"
-msgstr "Értékesítési nyugta statisztika"
+msgstr "Értékesítési bevételi bizonylatok statisztikái"
#. module: account_voucher
#: view:account.voucher:0
@@ -1244,14 +1321,14 @@ msgstr "Nyitott egyenleg"
#. module: account_voucher
#: model:mail.message.subtype,description:account_voucher.mt_voucher_state_change
msgid "Status <b>changed</b>"
-msgstr ""
+msgstr "Állapot <b>megváltozott</b>"
#. module: account_voucher
#: code:addons/account_voucher/account_voucher.py:1014
#: code:addons/account_voucher/account_voucher.py:1018
#, python-format
msgid "Insufficient Configuration!"
-msgstr ""
+msgstr "Nem megfelelő beállítás!"
#. module: account_voucher
#: help:account.voucher,active:0
@@ -1260,6 +1337,9 @@ msgid ""
"inactive, which allow to hide the customer/supplier payment while the bank "
"statement isn't confirmed."
msgstr ""
+"Alapértelmezetten, a tervezet bank kivonathoz párosított nyugták nem lesznek "
+"aktívak, így el lehet tüntetni a vevő/beszállító fizetéseket amíg a banki "
+"kivonatok nem kerülnek jóváhagyásra."
#~ msgid "Particulars"
#~ msgstr "Adatok"
@@ -1310,9 +1390,6 @@ msgstr ""
#~ msgid "Want to remove accounting entries too ?"
#~ msgstr "A könyvelési tételeket is törölni szeretné?"
-#~ msgid "Sales Receipt"
-#~ msgstr "Nyugta"
-
#~ msgid "Unreconciliation"
#~ msgstr "Párosítás visszavonása"
@@ -1485,3 +1562,6 @@ msgstr ""
#~ msgid "Canceled"
#~ msgstr "Érvénytelenített"
+
+#~ msgid "Sales Receipt"
+#~ msgstr "Értékesítési bevételi bizonylat"
diff --git a/addons/analytic_contract_hr_expense/i18n/cs.po b/addons/analytic_contract_hr_expense/i18n/cs.po
new file mode 100644
index 00000000000..b57756bce0b
--- /dev/null
+++ b/addons/analytic_contract_hr_expense/i18n/cs.po
@@ -0,0 +1,72 @@
+# Czech 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-03-31 16:44+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "or view"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "Nothing to invoice, create"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "expenses"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: model:ir.model,name:analytic_contract_hr_expense.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:129
+#, python-format
+msgid "Expenses to Invoice of %s"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: code:addons/analytic_contract_hr_expense/analytic_contract_hr_expense.py:121
+#, python-format
+msgid "Expenses of %s"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: field:account.analytic.account,expense_invoiced:0
+#: field:account.analytic.account,expense_to_invoice:0
+#: field:account.analytic.account,remaining_expense:0
+msgid "unknown"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: field:account.analytic.account,est_expenses:0
+msgid "Estimation of Expenses to Invoice"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: field:account.analytic.account,charge_expenses:0
+msgid "Charge Expenses"
+msgstr ""
+
+#. module: analytic_contract_hr_expense
+#: view:account.analytic.account:0
+msgid "⇒ Invoice"
+msgstr ""
diff --git a/addons/anonymization/i18n/cs.po b/addons/anonymization/i18n/cs.po
new file mode 100644
index 00000000000..aa320cbba21
--- /dev/null
+++ b/addons/anonymization/i18n/cs.po
@@ -0,0 +1,331 @@
+# Czech 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-03-31 16:44+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymize_wizard
+msgid "ir.model.fields.anonymize.wizard"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_id:0
+msgid "Object"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_migration_fix
+msgid "ir.model.fields.anonymization.migration.fix"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,target_version:0
+msgid "Target Version"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
+msgid "sql"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:91
+#, python-format
+msgid ""
+"The database anonymization is currently in an unstable state. Some fields "
+"are anonymized, while some fields are not anonymized. You should try to "
+"solve this problem before trying to create, write or delete fields."
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_name:0
+msgid "Field Name"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,field_id:0
+#: field:ir.model.fields.anonymization.migration.fix,field_name:0
+msgid "Field"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+msgid "New"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_import:0
+msgid "Import"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization
+msgid "ir.model.fields.anonymization"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:300
+#, python-format
+msgid ""
+"Before executing the anonymization process, you should make a backup of your "
+"database."
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,state:0
+#: field:ir.model.fields.anonymize.wizard,state:0
+msgid "Status"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,direction:0
+msgid "Direction"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_tree
+#: view:ir.model.fields.anonymization:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_fields
+msgid "Anonymized Fields"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization
+msgid "Database anonymization"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "clear -> anonymized"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Anonymized"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,state:0
+msgid "unknown"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:448
+#, python-format
+msgid "Anonymized value is None. This cannot happens."
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,filepath:0
+msgid "File path"
+msgstr ""
+
+#. module: anonymization
+#: help:ir.model.fields.anonymize.wizard,file_import:0
+msgid ""
+"This is the file created by the anonymization process. It should have the "
+"'.pickle' extention."
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.history,date:0
+msgid "Date"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,file_export:0
+msgid "Export"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Reverse the Database Anonymization"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:444
+#, python-format
+msgid ""
+"Cannot anonymize fields of these types: binary, many2many, many2one, "
+"one2many, reference."
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Database Anonymization"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_wizard
+msgid "Anonymize database"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.migration.fix,query_type:0
+msgid "python"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,field_ids:0
+msgid "Fields"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Clear"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:533
+#, python-format
+msgid ""
+"It is not possible to reverse the anonymization process without supplying "
+"the anonymization export file."
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization:0
+msgid "Anonymized Field"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:391
+#: code:addons/anonymization/anonymization.py:526
+#, python-format
+msgid ""
+"The database anonymization is currently in an unstable state. Some fields "
+"are anonymized, while some fields are not anonymized. You should try to "
+"solve this problem before trying to do anything."
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymize.wizard,state:0
+msgid "Unstable"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Exception occured"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization,state:0
+msgid "Not Existing"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization,model_name:0
+msgid "Object Name"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymization_history_tree
+#: view:ir.model.fields.anonymization.history:0
+#: model:ir.ui.menu,name:anonymization.menu_administration_anonymization_history
+msgid "Anonymization History"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,model_name:0
+msgid "Model"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.model,name:anonymization.model_ir_model_fields_anonymization_history
+msgid "ir.model.fields.anonymization.history"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:358
+#, python-format
+msgid ""
+"The database anonymization is currently in an unstable state. Some fields "
+"are anonymized, while some fields are not anonymized. You should try to "
+"solve this problem before trying to do anything else."
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:389
+#: code:addons/anonymization/anonymization.py:448
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: anonymization
+#: model:ir.actions.act_window,name:anonymization.action_ir_model_fields_anonymize_wizard
+#: view:ir.model.fields.anonymize.wizard:0
+msgid "Anonymize Database"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymize.wizard,name:0
+msgid "File Name"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,direction:0
+msgid "anonymized -> clear"
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Started"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:389
+#, python-format
+msgid "The database is currently anonymized, you cannot anonymize it again."
+msgstr ""
+
+#. module: anonymization
+#: selection:ir.model.fields.anonymization.history,state:0
+msgid "Done"
+msgstr ""
+
+#. module: anonymization
+#: field:ir.model.fields.anonymization.migration.fix,query:0
+#: field:ir.model.fields.anonymization.migration.fix,query_type:0
+msgid "Query"
+msgstr ""
+
+#. module: anonymization
+#: view:ir.model.fields.anonymization.history:0
+#: field:ir.model.fields.anonymization.history,msg:0
+#: field:ir.model.fields.anonymize.wizard,msg:0
+msgid "Message"
+msgstr ""
+
+#. module: anonymization
+#: code:addons/anonymization/anonymization.py:65
+#: sql_constraint:ir.model.fields.anonymization:0
+#, python-format
+msgid "You cannot have two fields with the same name on the same object!"
+msgstr ""
diff --git a/addons/auth_crypt/i18n/cs.po b/addons/auth_crypt/i18n/cs.po
index b97e90df13b..0ae0746fbdb 100644
--- a/addons/auth_crypt/i18n/cs.po
+++ b/addons/auth_crypt/i18n/cs.po
@@ -1,41 +1,28 @@
# Czech translation for openobject-addons
-# Copyright (c) 2012 Rosetta Contributors and Canonical Ltd 2012
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
# This file is distributed under the same license as the openobject-addons package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, 2012.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
#
msgid ""
msgstr ""
"Project-Id-Version: openobject-addons\n"
"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
-"POT-Creation-Date: 2012-12-03 16:03+0000\n"
-"PO-Revision-Date: 2012-04-06 05:20+0000\n"
-"Last-Translator: Jiří Hajda <robie@centrum.cz>\n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-03-31 16:44+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: Czech <cs@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"X-Launchpad-Export-Date: 2012-12-04 05:53+0000\n"
-"X-Generator: Launchpad (build 16335)\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
-#. module: base_crypt
-#: model:ir.model,name:base_crypt.model_res_users
-msgid "Users"
+#. module: auth_crypt
+#: field:res.users,password_crypt:0
+msgid "Encrypted Password"
msgstr ""
-#~ msgid "You can not have two users with the same login !"
-#~ msgstr "Nemůžete mít dva uživatele se stejným přihlašovacím jménem !"
-
-#, python-format
-#~ msgid "Error"
-#~ msgstr "Chyba"
-
-#, python-format
-#~ msgid "Please specify the password !"
-#~ msgstr "Prosíme zadejte heslo!"
-
-#~ msgid "The chosen company is not in the allowed companies for this user"
-#~ msgstr ""
-#~ "Vybraná společnost není v povolených společnostech pro tohoto uživatele"
-
-#~ msgid "res.users"
-#~ msgstr "res.users"
+#. module: auth_crypt
+#: model:ir.model,name:auth_crypt.model_res_users
+msgid "Users"
+msgstr ""
diff --git a/addons/auth_ldap/i18n/cs.po b/addons/auth_ldap/i18n/cs.po
new file mode 100644
index 00000000000..539c923450d
--- /dev/null
+++ b/addons/auth_ldap/i18n/cs.po
@@ -0,0 +1,159 @@
+# Czech 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-03-31 16:44+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: auth_ldap
+#: field:res.company.ldap,user:0
+msgid "Template User"
+msgstr ""
+
+#. module: auth_ldap
+#: help:res.company.ldap,ldap_tls:0
+msgid ""
+"Request secure TLS/SSL encryption when connecting to the LDAP server. This "
+"option requires a server with STARTTLS enabled, otherwise all authentication "
+"attempts will fail."
+msgstr ""
+
+#. module: auth_ldap
+#: view:res.company:0
+#: view:res.company.ldap:0
+msgid "LDAP Configuration"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,ldap_binddn:0
+msgid "LDAP binddn"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,company:0
+msgid "Company"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,ldap_server:0
+msgid "LDAP Server address"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,ldap_server_port:0
+msgid "LDAP Server port"
+msgstr ""
+
+#. module: auth_ldap
+#: help:res.company.ldap,create_user:0
+msgid ""
+"Automatically create local user accounts for new users authenticating via "
+"LDAP"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,ldap_base:0
+msgid "LDAP base"
+msgstr ""
+
+#. module: auth_ldap
+#: view:res.company.ldap:0
+msgid "User Information"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,ldap_password:0
+msgid "LDAP password"
+msgstr ""
+
+#. module: auth_ldap
+#: model:ir.model,name:auth_ldap.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: auth_ldap
+#: view:res.company.ldap:0
+msgid "Process Parameter"
+msgstr ""
+
+#. module: auth_ldap
+#: model:ir.model,name:auth_ldap.model_res_company_ldap
+msgid "res.company.ldap"
+msgstr ""
+
+#. module: auth_ldap
+#: help:res.company.ldap,user:0
+msgid "User to copy when creating new users"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,ldap_tls:0
+msgid "Use TLS"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: auth_ldap
+#: view:res.company.ldap:0
+msgid "Login Information"
+msgstr ""
+
+#. module: auth_ldap
+#: view:res.company.ldap:0
+msgid "Server Information"
+msgstr ""
+
+#. module: auth_ldap
+#: model:ir.actions.act_window,name:auth_ldap.action_ldap_installer
+msgid "Setup your LDAP Server"
+msgstr ""
+
+#. module: auth_ldap
+#: view:res.company:0
+#: field:res.company,ldaps:0
+msgid "LDAP Parameters"
+msgstr ""
+
+#. module: auth_ldap
+#: help:res.company.ldap,ldap_password:0
+msgid ""
+"The password of the user account on the LDAP server that is used to query "
+"the directory."
+msgstr ""
+
+#. module: auth_ldap
+#: help:res.company.ldap,ldap_binddn:0
+msgid ""
+"The user account on the LDAP server that is used to query the directory. "
+"Leave empty to connect anonymously."
+msgstr ""
+
+#. module: auth_ldap
+#: model:ir.model,name:auth_ldap.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,ldap_filter:0
+msgid "LDAP filter"
+msgstr ""
+
+#. module: auth_ldap
+#: field:res.company.ldap,create_user:0
+msgid "Create user"
+msgstr ""
diff --git a/addons/auth_oauth/i18n/cs.po b/addons/auth_oauth/i18n/cs.po
new file mode 100644
index 00000000000..e607a08a7bd
--- /dev/null
+++ b/addons/auth_oauth/i18n/cs.po
@@ -0,0 +1,135 @@
+# Czech 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-03-31 16:45+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,validation_endpoint:0
+msgid "Validation URL"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,auth_endpoint:0
+msgid "Authentication URL"
+msgstr ""
+
+#. module: auth_oauth
+#: model:ir.model,name:auth_oauth.model_base_config_settings
+msgid "base.config.settings"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,name:0
+msgid "Provider name"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,scope:0
+msgid "Scope"
+msgstr ""
+
+#. module: auth_oauth
+#: field:res.users,oauth_provider_id:0
+msgid "OAuth Provider"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,css_class:0
+msgid "CSS class"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,body:0
+msgid "Body"
+msgstr ""
+
+#. module: auth_oauth
+#: model:ir.model,name:auth_oauth.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,sequence:0
+msgid "unknown"
+msgstr ""
+
+#. module: auth_oauth
+#: field:res.users,oauth_access_token:0
+msgid "OAuth Access Token"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,client_id:0
+#: field:base.config.settings,auth_oauth_facebook_client_id:0
+#: field:base.config.settings,auth_oauth_google_client_id:0
+msgid "Client ID"
+msgstr ""
+
+#. module: auth_oauth
+#: model:ir.ui.menu,name:auth_oauth.menu_oauth_providers
+msgid "OAuth Providers"
+msgstr ""
+
+#. module: auth_oauth
+#: model:ir.model,name:auth_oauth.model_auth_oauth_provider
+msgid "OAuth2 provider"
+msgstr ""
+
+#. module: auth_oauth
+#: field:res.users,oauth_uid:0
+msgid "OAuth User ID"
+msgstr ""
+
+#. module: auth_oauth
+#: field:base.config.settings,auth_oauth_facebook_enabled:0
+msgid "Allow users to sign in with Facebook"
+msgstr ""
+
+#. module: auth_oauth
+#: sql_constraint:res.users:0
+msgid "OAuth UID must be unique per provider"
+msgstr ""
+
+#. module: auth_oauth
+#: help:res.users,oauth_uid:0
+msgid "Oauth Provider user_id"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,data_endpoint:0
+msgid "Data URL"
+msgstr ""
+
+#. module: auth_oauth
+#: view:auth.oauth.provider:0
+msgid "arch"
+msgstr ""
+
+#. module: auth_oauth
+#: model:ir.actions.act_window,name:auth_oauth.action_oauth_provider
+msgid "Providers"
+msgstr ""
+
+#. module: auth_oauth
+#: field:base.config.settings,auth_oauth_google_enabled:0
+msgid "Allow users to sign in with Google"
+msgstr ""
+
+#. module: auth_oauth
+#: field:auth.oauth.provider,enabled:0
+msgid "Allowed"
+msgstr ""
diff --git a/addons/auth_oauth/static/src/js/auth_oauth.js b/addons/auth_oauth/static/src/js/auth_oauth.js
index 7ee83bd99e9..131ae5c1c42 100644
--- a/addons/auth_oauth/static/src/js/auth_oauth.js
+++ b/addons/auth_oauth/static/src/js/auth_oauth.js
@@ -5,6 +5,7 @@ openerp.auth_oauth = function(instance) {
start: function(parent, params) {
var self = this;
var d = this._super.apply(this, arguments);
+ this.$el.hide();
this.$el.on('click', 'a.zocial', this.on_oauth_sign_in);
this.oauth_providers = [];
if(this.params.oauth_error === 1) {
@@ -24,6 +25,8 @@ openerp.auth_oauth = function(instance) {
var db = this.$("form [name=db]").val();
if (db) {
this.rpc("/auth_oauth/list_providers", { dbname: db }).done(this.on_oauth_loaded);
+ } else {
+ this.$el.show();
}
},
on_oauth_loaded: function(result) {
@@ -32,6 +35,7 @@ openerp.auth_oauth = function(instance) {
if (this.oauth_providers.length === 1 && params.type === 'signup') {
this.do_oauth_sign_in(this.oauth_providers[0]);
} else {
+ this.$el.show();
this.$('.oe_oauth_provider_login_button').remove();
var buttons = QWeb.render("auth_oauth.Login.button",{"widget":this});
this.$(".oe_login_pane form ul").after(buttons);
@@ -57,7 +61,7 @@ openerp.auth_oauth = function(instance) {
state: JSON.stringify(state),
};
var url = provider.auth_endpoint + '?' + $.param(params);
- window.location = url;
+ instance.web.redirect(url);
},
_oauth_state: function(provider) {
// return the state object sent back with the redirected uri
diff --git a/addons/auth_oauth_signup/i18n/cs.po b/addons/auth_oauth_signup/i18n/cs.po
new file mode 100644
index 00000000000..6351d6c056c
--- /dev/null
+++ b/addons/auth_oauth_signup/i18n/cs.po
@@ -0,0 +1,23 @@
+# Czech 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-03-31 16:45+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: auth_oauth_signup
+#: model:ir.model,name:auth_oauth_signup.model_res_users
+msgid "Users"
+msgstr ""
diff --git a/addons/auth_openid/i18n/cs.po b/addons/auth_openid/i18n/cs.po
new file mode 100644
index 00000000000..071ee7ea210
--- /dev/null
+++ b/addons/auth_openid/i18n/cs.po
@@ -0,0 +1,97 @@
+# Czech 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-03-31 16:45+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:24
+#, python-format
+msgid "Username"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:12
+#: view:res.users:0
+#, python-format
+msgid "OpenID"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:30
+#: field:res.users,openid_url:0
+#, python-format
+msgid "OpenID URL"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:9
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
+#, python-format
+msgid "Google"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:11
+#, python-format
+msgid "Launchpad"
+msgstr ""
+
+#. module: auth_openid
+#: help:res.users,openid_email:0
+msgid "Used for disambiguation in case of a shared OpenID URL"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:18
+#, python-format
+msgid "Google Apps Domain"
+msgstr ""
+
+#. module: auth_openid
+#: field:res.users,openid_email:0
+msgid "OpenID Email"
+msgstr ""
+
+#. module: auth_openid
+#: field:res.users,openid_key:0
+msgid "OpenID Key"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:8
+#, python-format
+msgid "Password"
+msgstr ""
+
+#. module: auth_openid
+#. openerp-web
+#: code:addons/auth_openid/static/src/xml/auth_openid.xml:10
+#, python-format
+msgid "Google Apps"
+msgstr ""
+
+#. module: auth_openid
+#: model:ir.model,name:auth_openid.model_res_users
+msgid "Users"
+msgstr ""
diff --git a/addons/auth_signup/i18n/cs.po b/addons/auth_signup/i18n/cs.po
new file mode 100644
index 00000000000..ee9cf157cdd
--- /dev/null
+++ b/addons/auth_signup/i18n/cs.po
@@ -0,0 +1,279 @@
+# Czech 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-03-31 16:45+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: auth_signup
+#: field:res.partner,signup_type:0
+msgid "Signup Token Type"
+msgstr ""
+
+#. module: auth_signup
+#: field:base.config.settings,auth_signup_uninvited:0
+msgid "Allow external users to sign up"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:16
+#, python-format
+msgid "Confirm Password"
+msgstr ""
+
+#. module: auth_signup
+#: help:base.config.settings,auth_signup_uninvited:0
+msgid "If unchecked, only invited users may sign up."
+msgstr ""
+
+#. module: auth_signup
+#: model:ir.model,name:auth_signup.model_base_config_settings
+msgid "base.config.settings"
+msgstr ""
+
+#. module: auth_signup
+#: code:addons/auth_signup/res_users.py:265
+#, python-format
+msgid "Cannot send email: user has no email address."
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:24
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:28
+#, python-format
+msgid "Reset password"
+msgstr ""
+
+#. module: auth_signup
+#: field:base.config.settings,auth_signup_template_user_id:0
+msgid "Template user for new users created through signup"
+msgstr ""
+
+#. module: auth_signup
+#: model:email.template,subject:auth_signup.reset_password_email
+msgid "Password reset"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:117
+#, python-format
+msgid "Please enter a password and confirm it."
+msgstr ""
+
+#. module: auth_signup
+#: view:res.users:0
+msgid "Send an email to the user to (re)set their password."
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:23
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:26
+#, python-format
+msgid "Sign Up"
+msgstr ""
+
+#. module: auth_signup
+#: selection:res.users,state:0
+msgid "New"
+msgstr ""
+
+#. module: auth_signup
+#: code:addons/auth_signup/res_users.py:258
+#, python-format
+msgid "Mail sent to:"
+msgstr ""
+
+#. module: auth_signup
+#: field:res.users,state:0
+msgid "Status"
+msgstr ""
+
+#. module: auth_signup
+#: model:email.template,body_html:auth_signup.reset_password_email
+msgid ""
+"\n"
+"<p>A password reset was requested for the OpenERP account linked to this "
+"email.</p>\n"
+"\n"
+"<p>You may change your password by following <a "
+"href=\"${object.signup_url}\">this link</a>.</p>\n"
+"\n"
+"<p>Note: If you do not expect this, you can safely ignore this email.</p>"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:111
+#, python-format
+msgid "Please enter a name."
+msgstr ""
+
+#. module: auth_signup
+#: model:ir.model,name:auth_signup.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: auth_signup
+#: field:res.partner,signup_url:0
+msgid "Signup URL"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:114
+#, python-format
+msgid "Please enter a username."
+msgstr ""
+
+#. module: auth_signup
+#: selection:res.users,state:0
+msgid "Active"
+msgstr ""
+
+#. module: auth_signup
+#: code:addons/auth_signup/res_users.py:269
+#, python-format
+msgid ""
+"Cannot send email: no outgoing email server configured.\n"
+"You can configure it under Settings/General Settings."
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:12
+#, python-format
+msgid "Username"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:8
+#, python-format
+msgid "Name"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:170
+#, python-format
+msgid "Please enter a username or email address."
+msgstr ""
+
+#. module: auth_signup
+#: selection:res.users,state:0
+msgid "Resetting Password"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:13
+#, python-format
+msgid "Username (Email)"
+msgstr ""
+
+#. module: auth_signup
+#: field:res.partner,signup_expiration:0
+msgid "Signup Expiration"
+msgstr ""
+
+#. module: auth_signup
+#: help:base.config.settings,auth_signup_reset_password:0
+msgid "This allows users to trigger a password reset from the Login page."
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
+#, python-format
+msgid "Log in"
+msgstr ""
+
+#. module: auth_signup
+#: field:res.partner,signup_valid:0
+msgid "Signup Token is Valid"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:108
+#: code:addons/auth_signup/static/src/js/auth_signup.js:111
+#: code:addons/auth_signup/static/src/js/auth_signup.js:114
+#: code:addons/auth_signup/static/src/js/auth_signup.js:117
+#: code:addons/auth_signup/static/src/js/auth_signup.js:120
+#: code:addons/auth_signup/static/src/js/auth_signup.js:167
+#: code:addons/auth_signup/static/src/js/auth_signup.js:170
+#, python-format
+msgid "Login"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:94
+#, python-format
+msgid "Invalid signup token"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:120
+#, python-format
+msgid "Passwords do not match; please retype them."
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/js/auth_signup.js:108
+#: code:addons/auth_signup/static/src/js/auth_signup.js:167
+#, python-format
+msgid "No database selected !"
+msgstr ""
+
+#. module: auth_signup
+#: view:res.users:0
+msgid "Reset Password"
+msgstr ""
+
+#. module: auth_signup
+#: field:base.config.settings,auth_signup_reset_password:0
+msgid "Enable password reset from Login page"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:27
+#, python-format
+msgid "Back to Login"
+msgstr ""
+
+#. module: auth_signup
+#. openerp-web
+#: code:addons/auth_signup/static/src/xml/auth_signup.xml:22
+#, python-format
+msgid "Sign up"
+msgstr ""
+
+#. module: auth_signup
+#: model:ir.model,name:auth_signup.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: auth_signup
+#: field:res.partner,signup_token:0
+msgid "Signup Token"
+msgstr ""
diff --git a/addons/base_gengo/i18n/cs.po b/addons/base_gengo/i18n/cs.po
new file mode 100644
index 00000000000..91dc5ea941d
--- /dev/null
+++ b/addons/base_gengo/i18n/cs.po
@@ -0,0 +1,249 @@
+# Czech 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-03-31 16:46+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Comments for Translator"
+msgstr ""
+
+#. module: base_gengo
+#: field:ir.translation,job_id:0
+msgid "Gengo Job ID"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "This language is not supported by the Gengo translation services."
+msgstr ""
+
+#. module: base_gengo
+#: field:res.company,gengo_comment:0
+msgid "Comments"
+msgstr ""
+
+#. module: base_gengo
+#: field:res.company,gengo_private_key:0
+msgid "Gengo Private Key"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_base_gengo_translations
+msgid "base.gengo.translations"
+msgstr ""
+
+#. module: base_gengo
+#: help:res.company,gengo_auto_approve:0
+msgid "Jobs are Automatically Approved by Gengo."
+msgstr ""
+
+#. module: base_gengo
+#: field:base.gengo.translations,lang_id:0
+msgid "Language"
+msgstr ""
+
+#. module: base_gengo
+#: field:ir.translation,gengo_comment:0
+msgid "Comments & Activity Linked to Gengo"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:124
+#, python-format
+msgid "Gengo Sync Translation (Response)"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:72
+#, python-format
+msgid ""
+"Gengo `Public Key` or `Private Key` are missing. Enter your Gengo "
+"authentication parameters under `Settings > Companies > Gengo Parameters`."
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Translation By Machine"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:155
+#, python-format
+msgid ""
+"%s\n"
+"\n"
+"--\n"
+" Commented on %s by %s."
+msgstr ""
+
+#. module: base_gengo
+#: field:ir.translation,gengo_translation:0
+msgid "Gengo Translation Service Level"
+msgstr ""
+
+#. module: base_gengo
+#: constraint:ir.translation:0
+msgid ""
+"The Gengo translation service selected is not supported for this language."
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Standard"
+msgstr ""
+
+#. module: base_gengo
+#: help:ir.translation,gengo_translation:0
+msgid ""
+"You can select here the service level you want for an automatic translation "
+"using Gengo."
+msgstr ""
+
+#. module: base_gengo
+#: field:base.gengo.translations,restart_send_job:0
+msgid "Restart Sending Job"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "To Approve In Gengo"
+msgstr ""
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Private Key"
+msgstr ""
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Public Key"
+msgstr ""
+
+#. module: base_gengo
+#: field:res.company,gengo_public_key:0
+msgid "Gengo Public Key"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:123
+#, python-format
+msgid "Gengo Sync Translation (Request)"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Translations"
+msgstr ""
+
+#. module: base_gengo
+#: field:res.company,gengo_auto_approve:0
+msgid "Auto Approve Translation ?"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.actions.act_window,name:base_gengo.action_wizard_base_gengo_translations
+#: model:ir.ui.menu,name:base_gengo.menu_action_wizard_base_gengo_translations
+msgid "Gengo: Manual Request of Translation"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/ir_translation.py:62
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:109
+#, python-format
+msgid "Gengo Authentication Error"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid ""
+"Note: If the translation state is 'In Progress', it means that the "
+"translation has to be approved to be uploaded in this system. You are "
+"supposed to do that directly by using your Gengo Account"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:82
+#, python-format
+msgid ""
+"Gengo connection failed with this message:\n"
+"``%s``"
+msgstr ""
+
+#. module: base_gengo
+#: view:res.company:0
+msgid "Gengo Parameters"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Send"
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Ultra"
+msgstr ""
+
+#. module: base_gengo
+#: model:ir.model,name:base_gengo.model_ir_translation
+msgid "ir.translation"
+msgstr ""
+
+#. module: base_gengo
+#: view:ir.translation:0
+msgid "Gengo Translation Service"
+msgstr ""
+
+#. module: base_gengo
+#: selection:ir.translation,gengo_translation:0
+msgid "Pro"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Gengo Request Form"
+msgstr ""
+
+#. module: base_gengo
+#: code:addons/base_gengo/wizard/base_gengo_translations.py:114
+#, python-format
+msgid "Warning"
+msgstr ""
+
+#. module: base_gengo
+#: help:res.company,gengo_comment:0
+msgid ""
+"This comment will be automatically be enclosed in each an every request sent "
+"to Gengo"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "Cancel"
+msgstr ""
+
+#. module: base_gengo
+#: view:base.gengo.translations:0
+msgid "or"
+msgstr ""
diff --git a/addons/base_import/i18n/cs.po b/addons/base_import/i18n/cs.po
new file mode 100644
index 00000000000..e49e2198de7
--- /dev/null
+++ b/addons/base_import/i18n/cs.po
@@ -0,0 +1,1164 @@
+# Czech 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-03-31 16:46+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:451
+#, python-format
+msgid "Get all possible values"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:331
+#, python-format
+msgid "Relation Fields"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:206
+#, python-format
+msgid "CSV file for Manufacturer, Retailer"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:351
+#, python-format
+msgid "Don't Import"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:24
+#, python-format
+msgid "Select the"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:15
+#, python-format
+msgid "Validate"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:55
+#, python-format
+msgid "Map your data to OpenERP"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#: field:base_import.tests.models.preview,somevalue:0
+msgid "Some Value"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:148
+#, python-format
+msgid "Country: Belgium"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#: field:base_import.tests.models.preview,othervalue:0
+msgid "Other Variable"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:148
+#, python-format
+msgid ""
+"Country/Database \n"
+" ID: 21"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:26
+#, python-format
+msgid ".CSV"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:30
+#, python-format
+msgid "CSV File:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#: field:base_import.import,file_type:0
+msgid "File Type"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:35
+#, python-format
+msgid "Reload data to check changes."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#: code:addons/base_import/models.py:264
+#, python-format
+msgid "You must configure at least one field to import"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:74
+#, python-format
+msgid "Quoting:"
+msgstr ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:438
+#, python-format
+msgid "Here are the possible values:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:427
+#, python-format
+msgid "(%d more)"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:227
+#, python-format
+msgid "File for some Quotations"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:72
+#, python-format
+msgid "Encoding:"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:404
+#, python-format
+msgid "Everything seems valid."
+msgstr ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:421
+#, python-format
+msgid "at row %d"
+msgstr ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:80
+#, python-format
+msgid "XXX/ID"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:20
+#, python-format
+msgid "Cancel"
+msgstr ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:68
+#, python-format
+msgid "Frequently Asked Questions"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:169
+#, python-format
+msgid "CSV file for categories"
+msgstr ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:330
+#, python-format
+msgid "Normal Fields"
+msgstr ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:170
+#, python-format
+msgid "CSV file for Products"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/xml/import.xml:80
+#, python-format
+msgid "to the original unique identifier."
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: base_import
+#. openerp-web
+#: code:addons/base_import/static/src/js/import.js:73
+#, python-format
+msgid "Separator:"
+msgstr ""
+
+#. module: base_import
+#: field:base_import.import,file_name:0
+msgid "File Name"
+msgstr ""
+
+#. 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 ""
+
+#. 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/base_status/i18n/cs.po b/addons/base_status/i18n/cs.po
new file mode 100644
index 00000000000..3fdb5247e7f
--- /dev/null
+++ b/addons/base_status/i18n/cs.po
@@ -0,0 +1,76 @@
+# Czech 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-03-30 12:43+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:28+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: base_status
+#: code:addons/base_status/base_state.py:107
+#, python-format
+msgid "Error !"
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_state.py:166
+#, python-format
+msgid "%s has been <b>opened</b>."
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_state.py:199
+#, python-format
+msgid "%s has been <b>renewed</b>."
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_stage.py:210
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_state.py:107
+#, python-format
+msgid ""
+"You can not escalate, you are already at the top level regarding your sales-"
+"team category."
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_state.py:193
+#, python-format
+msgid "%s is now <b>pending</b>."
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_state.py:187
+#, python-format
+msgid "%s has been <b>canceled</b>."
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_stage.py:210
+#, python-format
+msgid ""
+"You are already at the top level of your sales-team category.\n"
+"Therefore you cannot escalate furthermore."
+msgstr ""
+
+#. module: base_status
+#: code:addons/base_status/base_state.py:181
+#, python-format
+msgid "%s has been <b>closed</b>."
+msgstr ""
diff --git a/addons/board/static/src/js/dashboard.js b/addons/board/static/src/js/dashboard.js
index bd9625a4fa8..3489b686e1b 100644
--- a/addons/board/static/src/js/dashboard.js
+++ b/addons/board/static/src/js/dashboard.js
@@ -419,8 +419,10 @@ instance.board.AddToDashboard = instance.web.search.Input.extend({
instance.web.SearchView.include({
add_common_inputs: function() {
this._super();
- (new instance.board.AddToDashboard(this));
-
+ var vm = this.getParent().getParent();
+ if (vm.inner_action && vm.inner_action.views) {
+ (new instance.board.AddToDashboard(this));
+ }
}
});
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index 0dd075d48e6..072624a7d98 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -81,6 +81,8 @@ Dashboard for CRM will include:
'crm_lead_view.xml',
'crm_lead_menu.xml',
+ 'crm_case_section_view.xml',
+
'crm_meeting_menu.xml',
'crm_phonecall_view.xml',
@@ -103,20 +105,37 @@ Dashboard for CRM will include:
'crm_action_rule_demo.xml',
],
'test': [
- 'test/process/communication_with_customer.yml',
- 'test/process/lead2opportunity2win.yml',
- 'test/process/lead2opportunity_assign_salesmen.yml',
- 'test/process/merge_opportunity.yml',
- 'test/process/cancel_lead.yml',
- 'test/process/segmentation.yml',
- 'test/process/phonecalls.yml',
- 'test/ui/crm_demo.yml',
- 'test/ui/duplicate_lead.yml',
- 'test/ui/delete_lead.yml',
+ 'test/crm_lead_message.yml',
+ 'test/lead2opportunity2win.yml',
+ 'test/lead2opportunity_assign_salesmen.yml',
+ 'test/crm_lead_merge.yml',
+ 'test/crm_lead_cancel.yml',
+ 'test/segmentation.yml',
+ 'test/phonecalls.yml',
+ 'test/crm_lead_onchange.yml',
+ 'test/crm_lead_copy.yml',
+ 'test/crm_lead_unlink.yml',
+ ],
+ 'css': [
+ 'static/src/css/crm.css'
+ ],
+ 'js': [
+ 'static/src/js/crm.js'
],
'installable': True,
'application': True,
'auto_install': False,
- 'images': ['images/crm_dashboard.png', 'images/customers.png','images/leads.png','images/opportunities_kanban.png','images/opportunities_form.png','images/opportunities_calendar.png','images/opportunities_graph.png','images/logged_calls.png','images/scheduled_calls.png','images/stages.png'],
+ 'images': [
+ 'images/crm_dashboard.png',
+ 'images/customers.png',
+ 'images/leads.png',
+ 'images/opportunities_kanban.png',
+ 'images/opportunities_form.png',
+ 'images/opportunities_calendar.png',
+ 'images/opportunities_graph.png',
+ 'images/logged_calls.png',
+ 'images/scheduled_calls.png',
+ 'images/stages.png',
+ ],
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm/crm.py b/addons/crm/crm.py
index df6d5e12b66..7b6fe02afa8 100644
--- a/addons/crm/crm.py
+++ b/addons/crm/crm.py
@@ -98,6 +98,7 @@ class crm_case_stage(osv.osv):
'case_default': True,
}
+
class crm_case_section(osv.osv):
""" Model for sales teams. """
_name = "crm.case.section"
@@ -107,7 +108,7 @@ class crm_case_section(osv.osv):
_order = "complete_name"
def get_full_name(self, cr, uid, ids, field_name, arg, context=None):
- return dict(self.name_get(cr, uid, ids, context=context))
+ return dict(self.name_get(cr, uid, ids, context=context))
_columns = {
'name': fields.char('Sales Team', size=64, required=True, translate=True),
@@ -117,27 +118,36 @@ class crm_case_section(osv.osv):
"true, it will allow you to hide the sales team without removing it."),
'change_responsible': fields.boolean('Reassign Escalated', help="When escalating to this team override the salesman with the team leader."),
'user_id': fields.many2one('res.users', 'Team Leader'),
- 'member_ids':fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
+ 'member_ids': fields.many2many('res.users', 'sale_member_rel', 'section_id', 'member_id', 'Team Members'),
'reply_to': fields.char('Reply-To', size=64, help="The email address put in the 'Reply-To' of all emails sent by OpenERP about cases in this sales team"),
'parent_id': fields.many2one('crm.case.section', 'Parent Team'),
'child_ids': fields.one2many('crm.case.section', 'parent_id', 'Child Teams'),
'resource_calendar_id': fields.many2one('resource.calendar', "Working Time", help="Used to compute open days"),
'note': fields.text('Description'),
- 'working_hours': fields.float('Working Hours', digits=(16,2 )),
+ 'working_hours': fields.float('Working Hours', digits=(16, 2)),
'stage_ids': fields.many2many('crm.case.stage', 'section_stage_rel', 'section_id', 'stage_id', 'Stages'),
'alias_id': fields.many2one('mail.alias', 'Alias', ondelete="cascade", required=True,
help="The email address associated with this team. New emails received will automatically "
"create new leads assigned to the team."),
+ 'open_lead_ids': fields.one2many('crm.lead', 'section_id',
+ string='Open Leads', readonly=True,
+ domain=['&', ('type', '!=', 'opportunity'), ('state', 'not in', ['done', 'cancel'])]),
+ 'open_opportunity_ids': fields.one2many('crm.lead', 'section_id',
+ string='Open Opportunities', readonly=True,
+ domain=['&', '|', ('type', '=', 'opportunity'), ('type', '=', 'both'), ('state', 'not in', ['done', 'cancel'])]),
+ 'color': fields.integer('Color Index'),
+ 'use_leads': fields.boolean('Leads',
+ help="This enables the management of leads in the sales team. Otherwise the sales team manages only opportunities."),
}
def _get_stage_common(self, cr, uid, context):
- ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default','=',1)], context=context)
+ ids = self.pool.get('crm.case.stage').search(cr, uid, [('case_default', '=', 1)], context=context)
return ids
_defaults = {
'active': 1,
'stage_ids': _get_stage_common,
- 'alias_domain': False, # always hide alias during creation
+ 'use_leads': True,
}
_sql_constraints = [
@@ -150,7 +160,7 @@ class crm_case_section(osv.osv):
def name_get(self, cr, uid, ids, context=None):
"""Overrides orm name_get method"""
- if not isinstance(ids, list) :
+ if not isinstance(ids, list):
ids = [ids]
res = []
if not ids:
@@ -167,20 +177,20 @@ class crm_case_section(osv.osv):
def create(self, cr, uid, vals, context=None):
mail_alias = self.pool.get('mail.alias')
if not vals.get('alias_id'):
- vals.pop('alias_name', None) # prevent errors during copy()
+ alias_name = vals.pop('alias_name', None) or vals.get('name') # prevent errors during copy()
alias_id = mail_alias.create_unique_alias(cr, uid,
- {'alias_name': vals['name']},
+ {'alias_name': alias_name},
model_name="crm.lead",
context=context)
vals['alias_id'] = alias_id
res = super(crm_case_section, self).create(cr, uid, vals, context)
- mail_alias.write(cr, uid, [vals['alias_id']], {'alias_defaults': {'section_id': res, 'type':'lead'}}, context)
+ mail_alias.write(cr, uid, [vals['alias_id']], {'alias_defaults': {'section_id': res, 'type': 'lead'}}, context)
return res
def unlink(self, cr, uid, ids, context=None):
# Cascade-delete mail aliases as well, as they should not exist without the sales team.
mail_alias = self.pool.get('mail.alias')
- alias_ids = [team.alias_id.id for team in self.browse(cr, uid, ids, context=context) if team.alias_id ]
+ alias_ids = [team.alias_id.id for team in self.browse(cr, uid, ids, context=context) if team.alias_id]
res = super(crm_case_section, self).unlink(cr, uid, ids, context=context)
mail_alias.unlink(cr, uid, alias_ids, context=context)
return res
@@ -230,4 +240,5 @@ class crm_payment_mode(osv.osv):
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm/crm_case_section_view.xml b/addons/crm/crm_case_section_view.xml
new file mode 100644
index 00000000000..c788872b47e
--- /dev/null
+++ b/addons/crm/crm_case_section_view.xml
@@ -0,0 +1,294 @@
+<?xml version="1.0" encoding="utf-8"?>
+<openerp>
+ <data>
+
+ <!-- CRM lead search by Salesteams -->
+
+ <record model="ir.actions.act_window" id="crm_case_form_view_salesteams_lead">
+ <field name="name">Leads</field>
+ <field name="res_model">crm.lead</field>
+ <field name="view_mode">tree,form</field>
+ <field name="domain">['|', ('type','=','lead'), ('type','=',False)]</field>
+ <field name="view_id" ref="crm_case_tree_view_leads"/>
+ <field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
+ <field name="context">{
+ 'search_default_section_id': [active_id],
+ 'search_default_open': 1,
+ 'default_section_id': active_id,
+ 'default_type': 'lead',
+ 'stage_type': 'lead',
+ }
+ </field>
+ <field name="help" type="html">
+ <p>
+ Use leads if you need a qualification step before creating an
+ opportunity or a customer. It can be a business card you received,
+ a contact form filled in your website, or a file of unqualified
+ prospects you import, etc.
+ </p><p>
+ Once qualified, the lead can be converted into a business
+ opportunity and/or a new customer in your address book.
+ </p>
+ </field>
+ </record>
+
+ <!-- CRM opportunity search by Salesteams -->
+
+ <record model="ir.actions.act_window" id="crm_case_form_view_salesteams_opportunity">
+ <field name="name">Opportunities</field>
+ <field name="res_model">crm.lead</field>
+ <field name="view_mode">kanban,tree,graph,form,calendar</field>
+ <field name="domain">[('type','=','opportunity')]</field>
+ <field name="view_id" ref="crm.crm_case_kanban_view_leads"/>
+ <field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
+ <field name="context">{
+ 'search_default_section_id': [active_id],
+ 'search_default_new': 1,
+ 'search_default_open': 1,
+ 'default_section_id': active_id,
+ 'stage_type': 'opportunity',
+ 'default_type': 'opportunity',
+ 'default_user_id': uid,
+ }
+ </field>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to create a new opportunity.
+ </p><p>
+ OpenERP helps you keep track of your sales pipeline to follow
+ up potential sales and better forecast your future revenues.
+ </p><p>
+ You will be able to plan meetings and phone calls from
+ opportunities, convert them into quotations, attach related
+ documents, track all discussions, and much more.
+ </p>
+ </field>
+ </record>
+
+ <!-- Case Sections Salesteams kanban view -->
+
+ <record model="ir.ui.view" id="crm_case_section_salesteams_view_kanban">
+ <field name="name">crm.case.section.kanban</field>
+ <field name="model">crm.case.section</field>
+ <field name="arch" type="xml">
+ <kanban version="7.0" class="oe_background_grey">
+ <field name="use_leads"/>
+ <field name="name"/>
+ <field name="user_id"/>
+ <field name="member_ids"/>
+ <field name="note"/>
+ <field name="alias_id"/>
+ <field name="color"/>
+ <field name="open_lead_ids"/>
+ <field name="open_opportunity_ids"/>
+ <templates>
+ <t t-name="kanban-box">
+ <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_project oe_kanban_global_click oe_kanban_crm_salesteams">
+ <div class="oe_dropdown_toggle oe_dropdown_kanban" groups="base.group_user">
+ <span class="oe_e">í</span>
+ <ul class="oe_dropdown_menu">
+ <li t-if="widget.view.is_action_enabled('edit')"><a type="edit">Sales Teams Settings</a></li>
+ <li t-if="widget.view.is_action_enabled('delete')"><a type="delete">Delete</a></li>
+ <li t-if="widget.view.is_action_enabled('edit')"><ul class="oe_kanban_colorpicker" data-field="color"/></li>
+ </ul>
+ </div>
+ <div class="oe_kanban_content">
+ <h4><field name="name"/></h4>
+ <div class="oe_kanban_alias" t-if="record.use_leads.raw_value and record.alias_id.value">
+ <span class="oe_e">%%</span><small><field name="alias_id"/></small>
+ </div>
+ <div class="oe_items_list">
+ <a t-if="record.use_leads.raw_value" name="%(crm_case_form_view_salesteams_lead)d" type="action">
+ <t t-raw="record.open_lead_ids.raw_value.length"/>
+ <t t-if="record.open_lead_ids.raw_value.length &gt;= 2">Leads</t>
+ <t t-if="record.open_lead_ids.raw_value.length &lt; 2">Lead</t></a>
+ <a name="%(crm_case_form_view_salesteams_opportunity)d" type="action">
+ <t t-raw="record.open_opportunity_ids.raw_value.length"/>
+ <t t-if="record.open_opportunity_ids.raw_value.length &gt;= 2">Opportunities</t>
+ <t t-if="record.open_opportunity_ids.raw_value.length &lt; 2">Opportunity</t></a>
+ </div>
+ <div class="oe_avatars">
+ <img t-if="record.user_id.raw_value" t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-data-member_id="record.user_id.raw_value"/>
+ <t t-foreach="record.member_ids.raw_value.slice(0,11)" t-as="member">
+ <img t-att-src="kanban_image('res.users', 'image_small', member)" t-att-data-member_id="member"/>
+ </t>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </record>
+
+ <!-- Case Sections Action -->
+
+ <record id="crm_case_section_salesteams_act" model="ir.actions.act_window">
+ <field name="name">Sales Teams</field>
+ <field name="res_model">crm.case.section</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">kanban,tree,form</field>
+ <field name="view_id" ref="crm_case_section_salesteams_view_kanban"/>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click here to define a new sales team.
+ </p><p>
+ Use sales team to organize your different salespersons or
+ departments into separate teams. Each team will work in
+ its own list of opportunities.
+ </p>
+ </field>
+ </record>
+
+ <!-- Case Sections Form View -->
+
+ <record id="crm_case_section_view_form" model="ir.ui.view">
+ <field name="name">crm.case.section.form</field>
+ <field name="model">crm.case.section</field>
+ <field name="arch" type="xml">
+ <form string="Sales Team" version="7.0">
+ <sheet>
+ <div class="oe_title">
+ <label for="name" class="oe_edit_only" string="Project Name"/>
+ <h1>
+ <field name="name" string="Project Name"/>
+ </h1>
+ <div name="group_alias"
+ attrs="{'invisible': [('alias_domain', '=', False)]}">
+ <label for="alias_id" string="Email Alias"/>
+ <field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
+ <span name="edit_alias" class="oe_edit_only">
+ <field name="alias_name" class="oe_inline"
+ attrs="{'required': [('use_leads', '=', True), ('alias_id', '!=', False)]}"/>
+ @
+ <field name="alias_domain" class="oe_inline" readonly="1"/>
+ </span>
+ </div>
+ <div name="options_active">
+ <field name="use_leads" class="oe_inline"/><label for="use_leads"/>
+ </div>
+ </div>
+ <group>
+ <group>
+ <field name="parent_id"/>
+ <field name="resource_calendar_id"/>
+ <field name="active"/>
+ </group>
+ <group>
+ <field name="user_id"/>
+ <field name="code"/>
+ </group>
+ <group colspan="4" attrs="{'invisible': [('use_leads', '=', False)]}">
+
+ </group>
+ </group>
+ <notebook colspan="4">
+ <page string="Sales Team">
+ <group>
+ <field name="change_responsible"/>
+ </group>
+ <separator string="Team Members"/>
+ <field name="member_ids" widget="many2many_kanban">
+ <kanban quick_create="false" create="true">
+ <field name="name"/>
+ <templates>
+ <t t-name="kanban-box">
+ <div style="position: relative">
+ <a t-if="! read_only_mode" type="delete" style="position: absolute; right: 0; padding: 4px; diplay: inline-block">X</a>
+ <div class="oe_module_vignette">
+ <div class="oe_module_desc">
+ <field name="name"/>
+ </div>
+ </div>
+ </div>
+ </t>
+ </templates>
+ </kanban>
+ </field>
+ </page>
+ <page string="Stages">
+ <separator string="Select Stages for this Sales Team"/>
+ <field name="stage_ids"/>
+ </page>
+ <page string="Notes">
+ <field name="note"/>
+ </page>
+ </notebook>
+ </sheet>
+ <div class="oe_chatter">
+ <field name="message_follower_ids" widget="mail_followers" help="Follow this salesteam to automatically track the events associated to users of this team."/>
+ <field name="message_ids" widget="mail_thread"/>
+ </div>
+ </form>
+ </field>
+ </record>
+
+ <!-- Case Sections Tree View -->
+
+ <record id="crm_case_section_view_tree" model="ir.ui.view">
+ <field name="name">crm.case.section.tree</field>
+ <field name="model">crm.case.section</field>
+ <field name="field_parent">child_ids</field>
+ <field name="arch" type="xml">
+ <tree string="Sales Team">
+ <field name="name"/>
+ <field name="code"/>
+ <field name="user_id"/>
+ </tree>
+ </field>
+ </record>
+
+ <!-- Case Sections Action -->
+
+ <record model="ir.actions.act_window.view" id="action_crm_tag_kanban_view_salesteams_oppor11">
+ <field name="sequence" eval="0"/>
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="crm_case_kanban_view_leads"/>
+ <field name="act_window_id" ref="crm_case_form_view_salesteams_opportunity"/>
+ </record>
+
+ <record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_salesteams_oppor11">
+ <field name="sequence" eval="1"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="crm_case_tree_view_oppor"/>
+ <field name="act_window_id" ref="crm_case_form_view_salesteams_opportunity"/>
+ </record>
+
+ <record model="ir.actions.act_window.view" id="action_crm_tag_form_view_salesteams_oppor11">
+ <field name="sequence" eval="2"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="crm_case_form_view_oppor"/>
+ <field name="act_window_id" ref="crm_case_form_view_salesteams_opportunity"/>
+ </record>
+
+ <record id="crm_case_section_act_tree" model="ir.actions.act_window">
+ <field name="name">Cases by Sales Team</field>
+ <field name="res_model">crm.case.section</field>
+ <field name="domain">[('parent_id','=',False)]</field>
+ <field name="view_type">tree</field>
+ <field name="view_id" ref="crm_case_section_view_tree"/>
+ </record>
+
+ <record id="crm_case_section_act" model="ir.actions.act_window">
+ <field name="name">Sales Teams</field>
+ <field name="res_model">crm.case.section</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="crm_case_section_view_tree"/>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click here to define a new sales team.
+ </p><p>
+ Use sales team to organize your different salespersons or
+ departments into separate teams. Each team will work in
+ its own list of opportunities.
+ </p>
+ </field>
+ </record>
+
+ <menuitem id="crm.menu_crm_case_section_act"
+ action="crm_case_section_salesteams_act"
+ sequence="1"
+ parent="base.menu_sales"
+ groups="base.group_multi_salesteams"/>
+ </data>
+</openerp> \ No newline at end of file
diff --git a/addons/crm/crm_data.xml b/addons/crm/crm_data.xml
index 3db7a457dfd..f24aee13c1d 100644
--- a/addons/crm/crm_data.xml
+++ b/addons/crm/crm_data.xml
@@ -27,8 +27,10 @@
</record>
<record model="crm.case.section" id="section_sales_department">
- <field name="name">Sales Department</field>
+ <field name="name">Sales</field>
<field name="code">Sales</field>
+ <field name="use_leads">True</field>
+ <field name="member_ids" eval="[(4, ref('base.user_root'))]"/>
</record>
<!-- Payment Mode -->
@@ -64,12 +66,6 @@
<p>To manage quotations and sale orders, install the "Sales Management" application.</p>]]></field>
</record>
- <record model="mail.alias" id="default_sales_alias">
- <field name="alias_name">sales</field>
- <field name="alias_model_id" ref="model_crm_lead"/>
- <field name="alias_user_id" ref="base.user_root"/>
- <field name="alias_defaults">{'type':'lead'}</field>
- </record>
</data>
</openerp>
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index 6c74ead0140..6d195fec383 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -22,6 +22,7 @@
from openerp.addons.base_status.base_stage import base_stage
import crm
from datetime import datetime
+from operator import itemgetter
from openerp.osv import fields, osv
import time
from openerp import tools
@@ -84,6 +85,22 @@ class crm_lead(base_stage, format_address, osv.osv):
},
}
+ def get_empty_list_help(self, cr, uid, help, context=None):
+ if context.get('default_type') == 'lead':
+ context['empty_list_help_model'] = 'crm.case.section'
+ context['empty_list_help_id'] = context.get('default_section_id')
+ context['empty_list_help_document_name'] = _("leads")
+ return super(crm_lead, self).get_empty_list_help(cr, uid, help, context=context)
+
+ def onchange_user_id(self, cr, uid, ids, section_id, user_id, context=None):
+ """ When changing the user, also set a section_id or restrict section id
+ to the ones user_id is member of. """
+ if user_id:
+ section_ids = self.pool.get('crm.case.section').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context)
+ if len(section_ids) > 0 and section_id not in section_ids:
+ section_id = section_ids[0]
+ return {'value': {'section_id': section_id}}
+
def create(self, cr, uid, vals, context=None):
if context is None:
context = {}
@@ -628,12 +645,13 @@ class crm_lead(base_stage, format_address, osv.osv):
opportunities = self.browse(cr, uid, ids, context=context)
sequenced_opps = []
for opportunity in opportunities:
+ sequence = -1
if opportunity.stage_id and opportunity.stage_id.state != 'cancel':
- sequenced_opps.append((opportunity.stage_id.sequence, opportunity))
- else:
- sequenced_opps.append((-1, opportunity))
- sequenced_opps.sort(key=lambda tup: tup[0], reverse=True)
- opportunities = [opportunity for sequence, opportunity in sequenced_opps]
+ sequence = opportunity.stage_id.sequence
+ sequenced_opps.append(((int(sequence != -1 and opportunity.type == 'opportunity'), sequence, -opportunity.id), opportunity))
+
+ sequenced_opps.sort(reverse=True)
+ opportunities = map(itemgetter(1), sequenced_opps)
ids = [opportunity.id for opportunity in opportunities]
highest = opportunities[0]
opportunities_rest = opportunities[1:]
@@ -652,11 +670,10 @@ class crm_lead(base_stage, format_address, osv.osv):
opportunities.extend(opportunities_rest)
self._merge_notify(cr, uid, highest, opportunities, context=context)
# Check if the stage is in the stages of the sales team. If not, assign the stage with the lowest sequence
- if merged_data.get('type') == 'opportunity' and merged_data.get('section_id'):
- section_stages = self.pool.get('crm.case.section').read(cr, uid, merged_data['section_id'], ['stage_ids'], context=context)
- if merged_data.get('stage_id') not in section_stages['stage_ids']:
- stages_sequences = self.pool.get('crm.case.stage').search(cr, uid, [('id','in',section_stages['stage_ids'])], order='sequence', limit=1, context=context)
- merged_data['stage_id'] = stages_sequences and stages_sequences[0] or False
+ if merged_data.get('section_id'):
+ section_stage_ids = self.pool.get('crm.case.stage').search(cr, uid, [('section_ids', 'in', merged_data['section_id']), ('type', '=', merged_data.get('type'))], order='sequence', context=context)
+ if merged_data.get('stage_id') not in section_stage_ids:
+ merged_data['stage_id'] = section_stage_ids and section_stage_ids[0] or False
# Write merged data into first opportunity
self.write(cr, uid, [highest.id], merged_data, context=context)
# Delete tail opportunities
@@ -944,6 +961,7 @@ class crm_lead(base_stage, format_address, osv.osv):
'default_composition_mode': 'comment',
})
return {
+ 'name': _('Compose Email'),
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
diff --git a/addons/crm/crm_lead_data.xml b/addons/crm/crm_lead_data.xml
index e335bd1b2ff..0979a94eb3f 100644
--- a/addons/crm/crm_lead_data.xml
+++ b/addons/crm/crm_lead_data.xml
@@ -7,68 +7,69 @@
<field name="name">New</field>
<field eval="1" name="case_default"/>
<field name="state">draft</field>
- <field eval="'10'" name="probability"/>
- <field eval="'10'" name="sequence"/>
+ <field eval="0" name="probability"/>
+ <field eval="10" name="sequence"/>
<field name="type">both</field>
</record>
<record model="crm.case.stage" id="stage_lead2">
<field name="name">Opportunity</field>
<field eval="1" name="case_default"/>
<field name="state">open</field>
- <field eval="'20'" name="probability"/>
- <field eval="'11'" name="sequence"/>
+ <field eval="20" name="probability"/>
+ <field eval="20" name="sequence"/>
+ <field name="type">lead</field>
+ </record>
+ <record model="crm.case.stage" id="stage_lead7">
+ <field name="name">Dead</field>
+ <field eval="1" name="case_default"/>
+ <field eval="False" name="fold"/>
+ <field name="state">cancel</field>
+ <field eval="0" name="probability"/>
+ <field eval="30" name="sequence"/>
<field name="type">lead</field>
</record>
<record model="crm.case.stage" id="stage_lead3">
<field name="name">Qualification</field>
<field eval="1" name="case_default"/>
<field name="state">open</field>
- <field eval="'20'" name="probability"/>
- <field eval="'12'" name="sequence"/>
+ <field eval="20" name="probability"/>
+ <field eval="100" name="sequence"/>
<field name="type">opportunity</field>
</record>
<record model="crm.case.stage" id="stage_lead4">
<field name="name">Proposition</field>
<field eval="1" name="case_default"/>
<field name="state">open</field>
- <field eval="'40'" name="probability"/>
- <field eval="'13'" name="sequence"/>
+ <field eval="40" name="probability"/>
+ <field eval="110" name="sequence"/>
<field name="type">opportunity</field>
</record>
<record model="crm.case.stage" id="stage_lead5">
<field name="name">Negotiation</field>
<field eval="1" name="case_default"/>
<field name="state">open</field>
- <field eval="'60'" name="probability"/>
- <field eval="'14'" name="sequence"/>
+ <field eval="60" name="probability"/>
+ <field eval="120" name="sequence"/>
<field name="type">opportunity</field>
</record>
<record model="crm.case.stage" id="stage_lead6">
<field name="name">Won</field>
+ <field eval="True" name="fold"/>
<field eval="1" name="case_default"/>
<field name="state">done</field>
- <field eval="'100'" name="probability"/>
- <field eval="'15'" name="sequence"/>
+ <field eval="100" name="probability"/>
+ <field eval="130" name="sequence"/>
<field eval="1" name="on_change"/>
<field name="type">opportunity</field>
</record>
- <record model="crm.case.stage" id="stage_lead7">
- <field name="name">Dead</field>
- <field eval="1" name="case_default"/>
- <field eval="False" name="fold"/>
- <field name="state">cancel</field>
- <field eval="'0'" name="probability"/>
- <field eval="'16'" name="sequence"/>
- <field name="type">lead</field>
- </record>
<record model="crm.case.stage" id="stage_lead8">
<field name="name">Lost</field>
<field eval="1" name="case_default"/>
<field eval="True" name="fold"/>
<field eval="1" name="on_change"/>
<field name="state">cancel</field>
- <field eval="'0'" name="probability"/>
- <field eval="'17'" name="sequence"/>
+ <field eval="0" name="probability"/>
+ <field eval="140" name="sequence"/>
<field name="type">opportunity</field>
</record>
@@ -228,7 +229,7 @@
<field name="name">Lead/Opportunity Mass Mail</field>
<field name="model_id" ref="crm.model_crm_lead"/>
<field name="auto_delete" eval="True"/>
- <field name="partner_to">${object.partner_id and object.partner_id.id}</field>
+ <field name="partner_to">${object.partner_id != False and object.partner_id.id}</field>
<field name="email_to">${not object.partner_id and object.email_from}</field>
<field name="body_html"></field>
</record>
diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml
index 8c38ed41a1c..2226b4ac895 100644
--- a/addons/crm/crm_lead_menu.xml
+++ b/addons/crm/crm_lead_menu.xml
@@ -9,55 +9,49 @@
<field name="domain">['|', ('type','=','lead'), ('type','=',False)]</field>
<field name="view_id" ref="crm_case_tree_view_leads"/>
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
- <field name="context">{'default_type':'lead', 'stage_type':'lead'}</field>
+ <field name="context">{
+ 'default_type':'lead',
+ 'stage_type':'lead',
+ 'search_default_unassigned':1,
+ }
+ </field>
<field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to create an unqualified lead.
- </p><p>
- Use leads if you need a qualification step before creating an
- opportunity or a customer. It can be a business card you received,
- a contact form filled in your website, or a file of unqualified
- prospects you import, etc.
- </p><p>
- Once qualified, the lead can be converted into a business
- opportunity and/or a new customer in your address book.
- </p>
+ <p>
+ Use leads if you need a qualification step before creating an
+ opportunity or a customer. It can be a business card you received,
+ a contact form filled in your website, or a file of unqualified
+ prospects you import, etc.
+ </p><p>
+ Once qualified, the lead can be converted into a business
+ opportunity and/or a new customer in your address book.
+ </p>
</field>
</record>
- <record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_leads_all">
- <field name="sequence" eval="1"/>
- <field name="view_mode">tree</field>
- <field name="view_id" ref="crm_case_tree_view_leads"/>
- <field name="act_window_id" ref="crm_case_category_act_leads_all"/>
- </record>
-
- <record model="ir.actions.act_window.view" id="action_crm_tag_form_view_leads_all">
- <field name="sequence" eval="3"/>
- <field name="view_mode">form</field>
- <field name="view_id" ref="crm_case_form_view_leads"/>
- <field name="act_window_id" ref="crm_case_category_act_leads_all"/>
- </record>
-
<record model="ir.actions.act_window" id="crm_case_category_act_oppor11">
<field name="name">Opportunities</field>
<field name="res_model">crm.lead</field>
<field name="view_mode">kanban,tree,graph,form,calendar</field>
<field name="domain">[('type','=','opportunity')]</field>
- <field name="context">{'stage_type': 'opportunity', 'default_type': 'opportunity', 'default_user_id': uid}</field>
+ <field name="context">{
+ 'stage_type': 'opportunity',
+ 'default_type': 'opportunity',
+ 'default_user_id': uid
+ }
+ </field>
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
<field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to create a new opportunity.
- </p><p>
- OpenERP helps you keep track of your sales pipeline to follow
- up potential sales and better forecast your future revenues.
- </p><p>
- You will be able to plan meetings and phone calls from
- opportunities, convert them into quotations, attach related
- documents, track all discussions, and much more.
- </p>
+ <p class="oe_view_nocontent_create">
+ Click to create a new opportunity.
+ </p><p>
+ OpenERP helps you keep track of your sales pipeline to follow
+ up potential sales and better forecast your future revenues.
+ </p><p>
+ You will be able to plan meetings and phone calls from
+ opportunities, convert them into quotations, attach related
+ documents, track all discussions, and much more.
+ </p>
</field>
</record>
@@ -82,9 +76,13 @@
<field name="act_window_id" ref="crm_case_category_act_oppor11"/>
</record>
- <menuitem name="Sales" id="base.menu_sales" parent="base.menu_base_partner" sequence="1" />
- <menuitem name="Leads" id="menu_crm_leads" parent="base.menu_sales" action="crm_case_category_act_leads_all" sequence="2" />
- <menuitem name="Opportunities" id="menu_crm_opportunities" parent="base.menu_sales" action="crm_case_category_act_oppor11" sequence="3" />
+ <menuitem name="Sales" id="base.menu_sales" parent="base.menu_base_partner" sequence="1"/>
+ <menuitem name="Leads" id="menu_crm_leads" parent="base.menu_sales" sequence="3"
+ action="crm_case_category_act_leads_all"
+ groups="base.group_mono_salesteams,base.group_sale_manager"/>
+ <menuitem name="Opportunities" id="menu_crm_opportunities" parent="base.menu_sales" sequence="4"
+ action="crm_case_category_act_oppor11"
+ groups="base.group_mono_salesteams,base.group_sale_manager"/>
</data>
</openerp>
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index df28d240a0c..3001e8b1d88 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -100,6 +100,7 @@
<button name="case_cancel" string="Cancel Case" type="object"
states="draft,open,pending"/>
<field name="stage_id" widget="statusbar" clickable="True"
+ domain="['&amp;', '|', ('case_default', '=', True), ('section_ids', '=', section_id), '|', ('type', '=', type), ('type', '=', 'both')]"
on_change="onchange_stage_id(stage_id)"/>
</header>
<sheet>
@@ -151,12 +152,13 @@
-->
</group>
<group>
- <field name="user_id"
- context="{'default_groups_ref': ['base.group_user', 'base.group_sale_salesman_all_leads']}"/>
- <label for="section_id"/>
- <div>
+ <field name="user_id" on_change="onchange_user_id(section_id, user_id)"
+ context="{'default_groups_ref': ['base.group_user', 'base.group_sale_salesman_all_leads'] }"/>
+ <label for="section_id" groups="base.group_multi_salesteams"/>
+ <div groups="base.group_multi_salesteams">
<field name="section_id"/>
- <button name="case_escalate" string="Escalate" type="object" attrs="{'invisible': ['|', ('section_id','=',False), ('state', 'not in', ['draft','open','pending'])]}"/>
+ <button name="case_escalate" string="Escalate" type="object"
+ attrs="{'invisible': ['|', ('section_id','=',False), ('state', 'not in', ['draft','open','pending'])]}"/>
</div>
<field name="type" invisible="1"/>
</group>
@@ -228,7 +230,7 @@
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
- <field name="section_id" invisible="context.get('invisible_section', True)"/>
+ <field name="section_id" invisible="context.get('invisible_section', True)" groups="base.group_multi_salesteams"/>
<field name="state" invisible="1"/>
<field name="type_id" invisible="1"/>
<field name="referred" invisible="1"/>
@@ -326,7 +328,7 @@
<search string="Search Leads">
<field name="name" string="Lead / Customer" filter_domain="['|','|',('partner_name','ilike',self),('email_from','ilike',self),('name','ilike',self)]"/>
<field name="categ_ids" string="Category" filter_domain="[('categ_ids','ilike',self)]"/>
- <field name="section_id" context="{'invisible_section': False, 'default_section_id': self}"/>
+ <field name="section_id" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
<field name="user_id"/>
<field name="partner_id"/>
<field name="create_date"/>
@@ -334,7 +336,7 @@
<separator/>
<filter string="Open" name="open" domain="[('state','!=','cancel')]" help="Open Leads"/>
<filter string="Dead" name="dead" domain="[('state','=','cancel')]"/>
- <filter string="Unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
+ <filter string="Unassigned" name="unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]" help="Unread messages"/>
<filter string="Assigned to Me"
domain="[('user_id','=',uid)]" context="{'invisible_section': False}"
@@ -427,9 +429,9 @@
</group>
<group>
- <field name="user_id" context="{'default_groups_ref': ['base.group_user', 'base.group_sale_salesman_all_leads']}"/>
- <label for="section_id"/>
- <div>
+ <field name="user_id" on_change="onchange_user_id(section_id, user_id)" context="{'default_groups_ref': ['base.group_user', 'base.group_sale_salesman_all_leads']}"/>
+ <label for="section_id" groups="base.group_multi_salesteams"/>
+ <div groups="base.group_multi_salesteams">
<field name="section_id" widget="selection"/>
<button name="case_escalate" string="Escalate" type="object" class="oe_link" attrs="{'invisible': ['|', ('section_id','=',False), ('state', 'not in', ['draft','open','pending'])]}"/>
</div>
@@ -525,7 +527,7 @@
<field name="stage_id"/>
<field name="planned_revenue" sum="Expected Revenues"/>
<field name="probability" avg="Avg. of Probability"/>
- <field name="section_id" invisible="context.get('invisible_section', True)"/>
+ <field name="section_id" invisible="context.get('invisible_section', True)" groups="base.group_multi_salesteams"/>
<field name="user_id"/>
<field name="referred" invisible="1"/>
<field name="priority" invisible="1"/>
@@ -544,7 +546,7 @@
<search string="Search Opportunities">
<field name="name" string="Opportunity" filter_domain="['|','|','|',('partner_id','ilike',self),('partner_name','ilike',self),('email_from','ilike',self),('name', 'ilike', self)]"/>
<field name="categ_ids" string="Category" filter_domain="[('categ_ids','ilike', self)]"/>
- <field name="section_id" context="{'invisible_section': False, 'default_section_id': self}"/>
+ <field name="section_id" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
<field name="user_id"/>
<field name="partner_id"/>
<separator/>
@@ -552,7 +554,7 @@
<filter string="In Progress" name="open" domain="[('state','=','open')]" help="Open Opportunities"/>
<filter string="Won" name="won" domain="[('state','=','done')]"/>
<filter string="Lost" name="lost" domain="[('state','=','cancel')]"/>
- <filter string="Unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
+ <filter string="Unassigned" name="unassigned" domain="[('user_id','=', False)]" help="No salesperson"/>
<filter string="Unread Messages" name="message_unread" domain="[('message_unread','=',True)]" help="Unread messages"/>
<filter string="Assigned to Me"
domain="[('user_id','=',uid)]" context="{'invisible_section': False}"
diff --git a/addons/crm/crm_phonecall_view.xml b/addons/crm/crm_phonecall_view.xml
index 67df85e6178..3efb54f98b8 100644
--- a/addons/crm/crm_phonecall_view.xml
+++ b/addons/crm/crm_phonecall_view.xml
@@ -103,7 +103,8 @@
<field name="date"/>
<field name="user_id"/>
<field name="duration" widget="float_time"/>
- <field name="section_id" colspan="1" widget="selection"/>
+ <field name="section_id" colspan="1" widget="selection"
+ groups="base.group_multi_salesteams"/>
<field name="partner_id" on_change="onchange_partner_id(partner_id)"/>
<field name="email_from" invisible="1"/> <!--not needed because of the chatter, thus invisible, but must be in the view as it's returned by onchange_partner_id()-->
<field name="categ_id" widget="selection"
@@ -187,7 +188,8 @@
help="Phone Calls Assigned to the current user or with a team having the current user as team leader"/>
<field name="partner_id"/>
<field name="user_id"/>
- <field name="section_id" string="Sales Team"/>
+ <field name="section_id" string="Sales Team"
+ groups="base.group_multi_salesteams"/>
<group expand="0" string="Group By...">
<filter string="Partner" icon="terp-partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Responsible" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml
index 355d862c898..39a2967c947 100644
--- a/addons/crm/crm_report_view.xml
+++ b/addons/crm/crm_report_view.xml
@@ -12,7 +12,7 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="category2_id"/>
<field name="stage_id"/>
<field name="amount_revenue"/>
@@ -33,7 +33,8 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id" widget="selection"/>
+ <field name="section_id" widget="selection"
+ groups="base.group_multi_salesteams"/>
<field name="category2_id" />
<field name="stage_id"/>
<field name="amount_revenue"/>
@@ -53,7 +54,8 @@
<graph string="Cases by Teams and Type" type="bar" orientation="horizontal">
<field name="category2_id"/>
<field name="amount_revenue" operator="+"/>
- <field name="section_id" group="True"/>
+ <field name="section_id" group="True"
+ groups="base.group_multi_salesteams"/>
</graph>
</field>
</record>
@@ -69,7 +71,7 @@
<field name="month"/>
<field name="nbr"/>
<field name="state"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="category2_id"/>
</search>
</field>
@@ -95,7 +97,7 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="stage_id"/>
<field name="amount_revenue"/>
<field name="nbr"/>
@@ -115,7 +117,8 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id" widget="selection"/>
+ <field name="section_id" widget="selection"
+ groups="base.group_multi_salesteams"/>
<field name="stage_id"/>
<field name="amount_revenue"/>
<field name="nbr" />
@@ -134,7 +137,7 @@
<graph string="Cases by Team and Stage" type="bar" orientation="horizontal">
<field name="stage_id"/>
<field name="amount_revenue" operator="+"/>
- <field name="section_id" group="True"/>
+ <field name="section_id" group="True" groups="base.group_multi_salesteams"/>
</graph>
</field>
</record>
@@ -150,7 +153,7 @@
<field name="month"/>
<field name="nbr"/>
<field name="state"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</search>
</field>
</record>
@@ -175,7 +178,7 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="categ_id"/>
<field name="stage_id"/>
<field name="nbr"/>
@@ -195,7 +198,7 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id" widget="selection"/>
+ <field name="section_id" widget="selection" groups="base.group_multi_salesteams"/>
<field name="categ_id"/>
<field name="stage_id"/>
<field name="nbr" />
@@ -216,7 +219,7 @@
<field name="month"/>
<field name="nbr"/>
<field name="state"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</search>
</field>
</record>
@@ -230,7 +233,7 @@
<graph string="Cases by Section, Category and Stage" type="bar" orientation="horizontal">
<field name="categ_id"/>
<field name="nbr" operator="+"/>
- <field name="section_id" group="True"/>
+ <field name="section_id" group="True" groups="base.group_multi_salesteams"/>
</graph>
</field>
</record>
@@ -255,7 +258,7 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="categ_id"/>
<field name="category2_id"/>
<field name="stage_id"/>
@@ -276,7 +279,7 @@
<field name="name"/>
<field name="month"/>
<field name="user_id"/>
- <field name="section_id" widget="selection"/>
+ <field name="section_id" widget="selection" groups="base.group_multi_salesteams"/>
<field name="categ_id"/>
<field name="category2_id"/>
<field name="stage_id"/>
@@ -298,7 +301,7 @@
<field name="month"/>
<field name="nbr"/>
<field name="state"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</search>
</field>
</record>
@@ -312,7 +315,7 @@
<graph string="Cases by Section, Category and Type" type="bar" orientation="horizontal">
<field name="category2_id"/>
<field name="nbr" operator="+"/>
- <field name="section_id" group="True"/>
+ <field name="section_id" group="True" groups="base.group_multi_salesteams"/>
</graph>
</field>
</record>
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 2c156ca2ac2..63385fa3e17 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -70,109 +70,6 @@
<menuitem action="crm_case_channel_action" id="menu_crm_case_channel" parent="base.menu_crm_config_lead" sequence="4" groups="base.group_no_one"/>
- <!-- Case Sections Form View -->
-
- <record id="crm_case_section_view_form" model="ir.ui.view">
- <field name="name">crm.case.section.form</field>
- <field name="model">crm.case.section</field>
- <field name="arch" type="xml">
- <form string="Sales Team" version="7.0">
- <group>
- <group>
- <field name="name" colspan="2"/>
- <field name="parent_id"/>
- <field name="code"/>
- </group>
-
- <group>
- <field name="user_id"/>
- <field name="resource_calendar_id"/>
- <field name="active"/>
- </group>
- </group>
- <notebook colspan="4">
- <page string="Sales Team">
- <group>
- <field name="alias_id" invisible="1" required="0"/>
- <label for="alias_name" attrs="{'invisible': [('alias_domain', '=', False)]}"/>
- <div attrs="{'invisible': [('alias_domain', '=', False)]}">
- <field name="alias_name" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" class="oe_inline"/>
- </div>
- <field name="change_responsible"/>
- </group>
- <separator string="Team Members"/>
- <field name="member_ids" widget="many2many_kanban">
- <kanban quick_create="false" create="true">
- <field name="name"/>
- <templates>
- <t t-name="kanban-box">
- <div style="position: relative">
- <a t-if="! read_only_mode" type="delete" style="position: absolute; right: 0; padding: 4px; diplay: inline-block">X</a>
- <div class="oe_module_vignette">
- <div class="oe_module_desc">
- <field name="name"/>
- </div>
- </div>
- </div>
- </t>
- </templates>
- </kanban>
- </field>
- </page>
- <page string="Stages">
- <separator string="Select Stages for this Sales Team"/>
- <field name="stage_ids"/>
- </page>
- <page string="Notes">
- <field name="note"/>
- </page>
- </notebook>
- <div class="oe_chatter">
- <field name="message_follower_ids" widget="mail_followers" help="Follow this salesteam to automatically track the events associated to users of this team."/>
- <field name="message_ids" widget="mail_thread"/>
- </div>
- </form>
- </field>
- </record>
-
- <!-- Case Sections Tree View -->
-
- <record id="crm_case_section_view_tree" model="ir.ui.view">
- <field name="name">crm.case.section.tree</field>
- <field name="model">crm.case.section</field>
- <field name="field_parent">child_ids</field>
- <field name="arch" type="xml">
- <tree string="Sales Team">
- <field name="name"/>
- <field name="code"/>
- <field name="user_id"/>
- </tree>
- </field>
- </record>
-
- <!-- Case Sections Action -->
-
- <record id="crm_case_section_act" model="ir.actions.act_window">
- <field name="name">Sales Teams</field>
- <field name="res_model">crm.case.section</field>
- <field name="view_type">form</field>
- <field name="view_id" ref="crm_case_section_view_tree"/>
- <field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to define a new sales team.
- </p><p>
- Use sales team to organize your different salespersons or
- departments into separate teams. Each team will work in
- its own list of opportunities.
- </p>
- </field>
- </record>
-
- <menuitem action="crm_case_section_act"
- id="menu_crm_case_section_act" sequence="15"
- parent="base.menu_base_config" groups="base.group_sale_manager"/>
-
-
<!-- CRM Stage Tree View -->
<record model="ir.ui.view" id="crm_case_stage_tree">
@@ -233,7 +130,7 @@
<form string="Case Category" version="7.0">
<group>
<field name="name"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="object_id" invisible="1"/>
</group>
</form>
@@ -248,7 +145,7 @@
<field name="arch" type="xml">
<tree string="Case Category">
<field name="name"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</tree>
</field>
</record>
@@ -261,7 +158,7 @@
<field name="arch" type="xml">
<tree string="Campaign">
<field name="name"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</tree>
</field>
</record>
@@ -275,7 +172,7 @@
<form string="Campaign" version="7.0">
<group>
<field name="name"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</group>
</form>
</field>
@@ -295,13 +192,6 @@
groups="base.group_no_one"
parent="base.menu_crm_config_lead"/>
- <record id="crm_case_section_act_tree" model="ir.actions.act_window">
- <field name="name">Cases by Sales Team</field>
- <field name="res_model">crm.case.section</field>
- <field name="domain">[('parent_id','=',False)]</field>
- <field name="view_type">tree</field>
- <field name="view_id" ref="crm_case_section_view_tree"/>
- </record>
<!-- Segmentation line Tree View -->
@@ -434,7 +324,7 @@
<field name="arch" type="xml">
<tree string="Payment Mode">
<field name="name"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</tree>
</field>
</record>
@@ -448,7 +338,7 @@
<form string="Payment Mode" version="7.0">
<group>
<field name="name"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</group>
</form>
</field>
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
index 0e5df8837f1..1009e1c376d 100644
--- a/addons/crm/report/crm_lead_report_view.xml
+++ b/addons/crm/report/crm_lead_report_view.xml
@@ -19,7 +19,8 @@
<field name="channel_id" invisible="1"/>
<field name="type" invisible="1"/>
<field name="priority" invisible="1"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1"
+ groups="base.group_multi_salesteams"/>
<field name="user_id" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
@@ -77,7 +78,8 @@
help="Leads/Opportunities that are assigned to one of the sale teams I manage"/>
<separator/>
<filter icon="terp-personal" string="My Case(s)" help="Leads/Opportunities that are assigned to me" domain="[('user_id','=',uid)]"/>
- <field name="section_id" context="{'invisible_section': False}"/>
+ <field name="section_id" context="{'invisible_section': False}"
+ groups="base.group_multi_salesteams"/>
<field name="user_id" string="Salesperson"/>
<group expand="0" string="Extended Filters...">
<field name="partner_id"/>
@@ -134,7 +136,8 @@
<field name="creation_month" invisible="1"/>
<field name="creation_day" invisible="1"/>
<field name="deadline_month" invisible="1"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1"
+ groups="base.group_multi_salesteams"/>
<field name="user_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
<field name="country_id" invisible="1"/>
diff --git a/addons/crm/report/crm_phonecall_report_view.xml b/addons/crm/report/crm_phonecall_report_view.xml
index 1f1a4f91046..c27d876ddd7 100644
--- a/addons/crm/report/crm_phonecall_report_view.xml
+++ b/addons/crm/report/crm_phonecall_report_view.xml
@@ -11,7 +11,8 @@
<tree string="Phone calls" create="false">
<field name="name" invisible="1"/>
<field name="month" invisible="1"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1"
+ groups="base.group_multi_salesteams"/>
<field name="priority" invisible="1"/>
<field name="user_id" invisible="1"/>
<field name="company_id" invisible="1"/>
@@ -59,7 +60,8 @@
help="Phone calls that are assigned to one of the sale teams I manage"/>
<separator/>
<filter icon="terp-personal" string="My Phone Calls" help="Phone Calls that are assigned to me" domain="[('user_id','=',uid)]" />
- <field name="section_id" string="Sales Team" context="{'invisible_section': False}"/>
+ <field name="section_id" string="Sales Team" context="{'invisible_section': False}"
+ groups="base.group_multi_salesteams"/>
<field name="user_id" string="Salesperson"/>
<group expand="0" string="Extended Filters...">
<field name="partner_id"/>
diff --git a/addons/crm/res_config.py b/addons/crm/res_config.py
index 229ad0189ff..ea37c24fe06 100644
--- a/addons/crm/res_config.py
+++ b/addons/crm/res_config.py
@@ -2,7 +2,7 @@
##############################################################################
#
# OpenERP, Open Source Business Applications
-# Copyright (C) 2004-2012 OpenERP S.A. (<http://openerp.com>).
+# Copyright (C) 2004-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
@@ -21,24 +21,51 @@
from openerp.osv import fields, osv
-class crm_configuration(osv.osv_memory):
+
+class crm_configuration(osv.TransientModel):
_name = 'sale.config.settings'
_inherit = ['sale.config.settings', 'fetchmail.config.settings']
+ def set_group_multi_salesteams(self, cr, uid, ids, context=None):
+ """ This method is automatically called by res_config as it begins
+ with set. It is used to implement the 'one group or another'
+ behavior. We have to perform some group manipulation by hand
+ because in res_config.execute(), set_* methods are called
+ after group_*; therefore writing on an hidden res_config file
+ could not work.
+ If group_multi_salesteams is checked: remove group_mono_salesteams
+ from group_user, remove the users. Otherwise, just add
+ group_mono_salesteams in group_user.
+ The inverse logic about group_multi_salesteams is managed by the
+ normal behavior of 'group_multi_salesteams' field.
+ """
+ def ref(xml_id):
+ mod, xml = xml_id.split('.', 1)
+ return self.pool['ir.model.data'].get_object(cr, uid, mod, xml, context)
+
+ for obj in self.browse(cr, uid, ids, context=context):
+ config_group = ref('base.group_mono_salesteams')
+ base_group = ref('base.group_user')
+ if obj.group_multi_salesteams:
+ base_group.write({'implied_ids': [(3, config_group.id)]})
+ config_group.write({'users': [(3, u.id) for u in base_group.users]})
+ else:
+ base_group.write({'implied_ids': [(4, config_group.id)]})
+ return True
+
_columns = {
- 'fetchmail_lead': fields.boolean("Create leads from incoming mails",
- fetchmail_model='crm.lead', fetchmail_name='Incoming Leads',
- help="""Allows you to configure your incoming mail server, and create leads from incoming emails."""),
'group_fund_raising': fields.boolean("Manage Fund Raising",
implied_group='crm.group_fund_raising',
help="""Allows you to trace and manage your activities for fund raising."""),
- 'module_crm_claim':fields.boolean("Manage Customer Claims",
+ 'module_crm_claim': fields.boolean("Manage Customer Claims",
help="""Allows you to track your customers/suppliers claims and grievances.
This installs the module crm_claim."""),
- 'module_crm_helpdesk':fields.boolean("Manage Helpdesk and Support",
- help="""Allows you to communicate with Customer, process Customer query, and provide better help and support. This installs the module crm_helpdesk."""),
-
-
+ 'module_crm_helpdesk': fields.boolean("Manage Helpdesk and Support",
+ help="""Allows you to communicate with Customer, process Customer query, and provide better help and support. This installs the module crm_helpdesk."""),
+ 'group_multi_salesteams': fields.boolean("Organize Sales activities into multiple Sales Teams",
+ implied_group='base.group_multi_salesteams',
+ help="""Allows you to use Sales Teams to manage your leads and opportunities."""),
}
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml
index 9534c8620ee..547ce1c2ae6 100644
--- a/addons/crm/res_config_view.xml
+++ b/addons/crm/res_config_view.xml
@@ -22,20 +22,15 @@
</div>
</div>
</group>
- </div>
- <group name="On Mail Client" version="7.0" position="after">
+ <separator string="Sales Teams Configuration"/>
<group>
- <label for="id" string="On Mail Server"/>
+ <label for="id" string="Use Sales Teams"/>
<div>
- <div name="fetchmail_lead">
- <field name="fetchmail_lead" class="oe_inline"/>
- <label for="fetchmail_lead"/>
- <button name="configure_fetchmail_lead" type="object" string="Configure" icon="gtk-go-forward"
- attrs="{'invisible': [('fetchmail_lead','=',False)]}" class="oe_link"/>
- </div>
+ <field name="group_multi_salesteams" class="oe_inline"/>
+ <label for="group_multi_salesteams"/>
</div>
</group>
- </group>
+ </div>
</field>
</record>
diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml
index 00a071fa954..dd6c50dbaba 100644
--- a/addons/crm/res_partner_view.xml
+++ b/addons/crm/res_partner_view.xml
@@ -10,7 +10,7 @@
<field eval="18" name="priority"/>
<field name="arch" type="xml">
<field name="user_id" position="after">
- <field name="section_id" completion="1"/>
+ <field name="section_id" completion="1" groups="base.group_multi_salesteams"/>
</field>
</field>
</record>
@@ -30,8 +30,11 @@
<field name="res_model">crm.lead</field>
<field name="view_mode">kanban,tree,form,graph,calendar</field>
<field name="domain">[('type','=','opportunity')]</field>
- <field name="context">{'search_default_partner_id': active_id,
- 'stage_type': 'opportunity', 'default_type': 'opportunity'}</field>
+ <field name="context">{
+ 'search_default_partner_id': active_id,
+ 'stage_type': 'opportunity',
+ 'default_type': 'opportunity'
+ }</field>
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
<field name="help" type="html">
diff --git a/addons/crm/security/crm_security.xml b/addons/crm/security/crm_security.xml
index 2c34252209c..34137dc0fac 100644
--- a/addons/crm/security/crm_security.xml
+++ b/addons/crm/security/crm_security.xml
@@ -22,6 +22,19 @@
<field name="implied_ids" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
<field name="users" eval="[(4, ref('base.user_root'))]"/>
</record>
+
+ <record id="base.group_mono_salesteams" model="res.groups">
+ <field name="name">Do Not Use Sales Teams</field>
+ <field name="category_id" ref="base.module_category_hidden"/>
+ </record>
+ <record id="base.group_user" model="res.groups">
+ <field name="implied_ids" eval="[(4, ref('base.group_mono_salesteams'))]"/>
+ </record>
+
+ <record id="base.group_multi_salesteams" model="res.groups">
+ <field name="name">Manage Sales Teams</field>
+ <field name="category_id" ref="base.module_category_hidden"/>
+ </record>
<record id="group_fund_raising" model="res.groups">
<field name="name">Manage Fund Raising</field>
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index 74394d3c5ce..52648c8e347 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -11,9 +11,7 @@ access_crm_lead_manager,crm.lead.manager,model_crm_lead,base.group_sale_manager,
access_crm_phonecall_manager,crm.phonecall.manager,model_crm_phonecall,base.group_sale_manager,1,1,1,1
access_crm_case_categ,crm.case.categ,model_crm_case_categ,base.group_user,1,0,0,0
access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0
-access_crm_lead_all,crm.lead.all,model_crm_lead,base.group_user,1,0,0,0
access_crm_phonecall,crm.phonecall,model_crm_phonecall,base.group_sale_salesman,1,1,1,0
-access_crm_phonecall_all,crm.phonecall.all,model_crm_phonecall,base.group_user,1,0,0,0
access_crm_case_section_user,crm.case.section.user,model_crm_case_section,base.group_sale_salesman,1,1,1,0
access_crm_case_section_manager,crm.case.section.manager,model_crm_case_section,base.group_sale_manager,1,1,1,1
access_crm_case_stage,crm.case.stage,model_crm_case_stage,,1,0,0,0
diff --git a/addons/crm/static/src/css/crm.css b/addons/crm/static/src/css/crm.css
new file mode 100644
index 00000000000..3ad3840a4e1
--- /dev/null
+++ b/addons/crm/static/src/css/crm.css
@@ -0,0 +1,42 @@
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams {
+ width: 345px;
+}
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_avatars {
+ text-align: right;
+ margin: -5px 0 -10px 0;
+}
+
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_avatars img {
+ width: 30px;
+ height: 30px;
+ padding-left: 0px;
+ margin-top: 3px;
+ -moz-border-radius: 2px;
+ -webkit-border-radius: 2px;
+ border-radius: 2px;
+ -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+ -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+ -box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
+}
+
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list {
+ margin: 10px 0;
+}
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list a {
+ width: 110px;
+ display: inline-block;
+}
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_items_list a:hover {
+ text-decoration: underline !important;
+}
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center {
+ text-align: center;
+ margin: 3px 0;
+}
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_sum {
+ margin: 0;
+ font-size: 40px;
+}
+.openerp .oe_kanban_view .oe_kanban_crm_salesteams .oe_center .oe_subsum {
+ font-size: 10px;
+}
diff --git a/addons/crm/static/src/js/crm.js b/addons/crm/static/src/js/crm.js
new file mode 100644
index 00000000000..e027313d6dc
--- /dev/null
+++ b/addons/crm/static/src/js/crm.js
@@ -0,0 +1,11 @@
+openerp.crm = function(openerp) {
+ openerp.web_kanban.KanbanRecord.include({
+ on_card_clicked: function() {
+ if (this.view.dataset.model === 'crm.case.section') {
+ this.$('.oe_kanban_crm_salesteams_list a').first().click();
+ } else {
+ this._super.apply(this, arguments);
+ }
+ },
+ });
+};
diff --git a/addons/crm/test/process/cancel_lead.yml b/addons/crm/test/crm_lead_cancel.yml
index edaf844952a..edaf844952a 100644
--- a/addons/crm/test/process/cancel_lead.yml
+++ b/addons/crm/test/crm_lead_cancel.yml
diff --git a/addons/crm/test/ui/duplicate_lead.yml b/addons/crm/test/crm_lead_copy.yml
index b6071ae9f9d..b6071ae9f9d 100644
--- a/addons/crm/test/ui/duplicate_lead.yml
+++ b/addons/crm/test/crm_lead_copy.yml
diff --git a/addons/crm/test/process/merge_opportunity.yml b/addons/crm/test/crm_lead_merge.yml
index c50af5214e6..b14f9272df9 100644
--- a/addons/crm/test/process/merge_opportunity.yml
+++ b/addons/crm/test/crm_lead_merge.yml
@@ -37,20 +37,19 @@
I check for the resulting merged opp (based on name and partner).
-
!python {model: crm.lead}: |
- merge_id = self.search(cr, uid, [('name', '=', 'Test lead 1'), ('partner_id','=', ref("base.res_partner_1"))])
+ merge_id = self.search(cr, uid, [('name', '=', 'Test opportunity 1'), ('partner_id','=', ref("base.res_partner_5"))])
assert merge_id, 'Fail to create merge opportunity wizard'
merge_result = self.browse(cr, uid, merge_id)[0]
- assert merge_result.partner_id.id == ref("base.res_partner_1"), 'Partner mismatch: when merging leads/opps with different m2o values, the first not null value prevails (the other are dropped)'
- assert merge_result.description == 'This is the description of the test lead 1.\n\nThis is the description of the test lead 2.\n\nThis is the description of the test opp 1.', 'Description mismatch: when merging leads/opps with different text values, these values should get concatenated and separated with line returns'
+ assert merge_result.description == 'This is the description of the test opp 1.\n\nThis is the description of the test lead 1.\n\nThis is the description of the test lead 2.', 'Description mismatch: when merging leads/opps with different text values, these values should get concatenated and separated with line returns'
assert merge_result.type == 'opportunity', 'Type mismatch: when at least one opp in involved in the merge, the result should be a new opp (instead of %s)' % merge_result.type
-
The other (tailing) leads/opps shouldn't exist anymore.
-
!python {model: crm.lead}: |
- tailing_lead = self.search(cr, uid, [('id', '=', ref('test_crm_lead_02'))])
+ tailing_lead = self.search(cr, uid, [('id', '=', ref('test_crm_lead_01'))])
assert not tailing_lead, 'This tailing lead (id %s) should not exist anymore' % ref('test_crm_lead_02')
- tailing_opp = self.search(cr, uid, [('id', '=', ref('test_crm_opp_01'))])
+ tailing_opp = self.search(cr, uid, [('id', '=', ref('test_crm_lead_02'))])
assert not tailing_opp, 'This tailing opp (id %s) should not exist anymore' % ref('test_crm_opp_01')
-
I want to test leads merge. Start by creating two leads (with the same partner).
diff --git a/addons/crm/test/process/communication_with_customer.yml b/addons/crm/test/crm_lead_message.yml
index 221a4ab634f..221a4ab634f 100644
--- a/addons/crm/test/process/communication_with_customer.yml
+++ b/addons/crm/test/crm_lead_message.yml
diff --git a/addons/crm/test/ui/crm_demo.yml b/addons/crm/test/crm_lead_onchange.yml
index 9154ffdf513..9154ffdf513 100644
--- a/addons/crm/test/ui/crm_demo.yml
+++ b/addons/crm/test/crm_lead_onchange.yml
diff --git a/addons/crm/test/ui/delete_lead.yml b/addons/crm/test/crm_lead_unlink.yml
index 49713039f22..49713039f22 100644
--- a/addons/crm/test/ui/delete_lead.yml
+++ b/addons/crm/test/crm_lead_unlink.yml
diff --git a/addons/crm/test/process/lead2opportunity2win.yml b/addons/crm/test/lead2opportunity2win.yml
index 94e7149ef77..94e7149ef77 100644
--- a/addons/crm/test/process/lead2opportunity2win.yml
+++ b/addons/crm/test/lead2opportunity2win.yml
diff --git a/addons/crm/test/process/lead2opportunity_assign_salesmen.yml b/addons/crm/test/lead2opportunity_assign_salesmen.yml
index 0edd3b8edce..0edd3b8edce 100644
--- a/addons/crm/test/process/lead2opportunity_assign_salesmen.yml
+++ b/addons/crm/test/lead2opportunity_assign_salesmen.yml
diff --git a/addons/crm/test/process/phonecalls.yml b/addons/crm/test/phonecalls.yml
index 51a933f3223..51a933f3223 100644
--- a/addons/crm/test/process/phonecalls.yml
+++ b/addons/crm/test/phonecalls.yml
diff --git a/addons/crm/test/process/segmentation.yml b/addons/crm/test/segmentation.yml
index f3801b80ec6..f3801b80ec6 100644
--- a/addons/crm/test/process/segmentation.yml
+++ b/addons/crm/test/segmentation.yml
diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
index 00686de1c8e..4093df910d0 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml
+++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
@@ -22,7 +22,7 @@
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</tree>
</field>
</group>
@@ -68,13 +68,13 @@
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</tree>
</field>
</group>
<group string="Assign opportunities to" attrs="{'invisible': [('name', '=', '')]}">
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="user_ids" widget="many2many_tags"/>
</group>
diff --git a/addons/crm/wizard/crm_merge_opportunities_view.xml b/addons/crm/wizard/crm_merge_opportunities_view.xml
index f68abeb8a52..919d83cb9a7 100644
--- a/addons/crm/wizard/crm_merge_opportunities_view.xml
+++ b/addons/crm/wizard/crm_merge_opportunities_view.xml
@@ -19,7 +19,7 @@
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</tree>
</field>
<footer>
diff --git a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
index ad369448517..846d71d74da 100644
--- a/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
+++ b/addons/crm/wizard/crm_opportunity_to_phonecall_view.xml
@@ -23,7 +23,7 @@
<field name="partner_id" readonly="True"/>
<field name="phone"/>
<field name="user_id" attrs="{'invisible': [('action','=','log')]}"/>
- <field name="section_id" widget="selection" attrs="{'invisible': [('action','=','log')]}"/>
+ <field name="section_id" widget="selection" attrs="{'invisible': [('action','=','log')]}" groups="base.group_multi_salesteams"/>
</group>
</group>
<field name="note" placeholder="Call Description" />
diff --git a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
index e2d25218749..812468b17e6 100644
--- a/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
+++ b/addons/crm/wizard/crm_phonecall_to_phonecall_view.xml
@@ -15,7 +15,7 @@
<field name="date" string="Planned Date" attrs="{'invisible': [('action','=','log')]}"/>
<field name="partner_id" readonly="True"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</group>
<footer>
<button name="action_schedule" type="object" string="Log Call" attrs="{'invisible' : [('action', '!=', 'log')]}" class="oe_highlight"/>
diff --git a/addons/crm_claim/__init__.py b/addons/crm_claim/__init__.py
index 2012c227adf..7395ea83fe5 100644
--- a/addons/crm_claim/__init__.py
+++ b/addons/crm_claim/__init__.py
@@ -21,7 +21,6 @@
import crm_claim
import report
-import res_config
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/crm_claim/__openerp__.py b/addons/crm_claim/__openerp__.py
index 78dfba2ed53..61257265f1b 100644
--- a/addons/crm_claim/__openerp__.py
+++ b/addons/crm_claim/__openerp__.py
@@ -41,7 +41,6 @@ automatically new claims based on incoming emails.
'crm_claim_menu.xml',
'security/ir.model.access.csv',
'report/crm_claim_report_view.xml',
- 'res_config_view.xml',
'crm_claim_data.xml',
],
'demo': ['crm_claim_demo.xml'],
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index b1ab72e20f6..78e467a7ba8 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -116,7 +116,7 @@
<group colspan="4" col="4" groups="base.group_user">
<field name="user_id"/>
<field name="priority"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="date_deadline"/>
<field name="state" groups="base.group_no_one"/>
</group>
diff --git a/addons/crm_claim/i18n/cs.po b/addons/crm_claim/i18n/cs.po
new file mode 100644
index 00000000000..9c9bc7c46d0
--- /dev/null
+++ b/addons/crm_claim/i18n/cs.po
@@ -0,0 +1,881 @@
+# Czech 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-03-31 16:47+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\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 ""
+
+#. module: crm_claim
+#: field:crm.claim.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Responsibilities"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim_stage
+msgid "Claim stages"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,delay_close:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,resolution:0
+msgid "Resolution"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,company_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "#Claim"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.stage,name:0
+msgid "Stage Name"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Description"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim1
+msgid "Factual Claims"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,state:0
+#: selection:crm.claim.report,state:0
+#: selection:crm.claim.stage,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim2
+msgid "Preventive"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,date_closed:0
+msgid "Close Date"
+msgstr ""
+
+#. module: crm_claim
+#: view:res.partner:0
+msgid "False"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Date of claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "# Mails"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,date_deadline:0
+#: field:crm.claim.report,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Follow Up"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,type_action:0
+#: selection:crm.claim.report,type_action:0
+msgid "Preventive Action"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Root Causes"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,user_fault:0
+msgid "Trouble Responsible"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,priority:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.stage,fold:0
+msgid "Hide in Views when Empty"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: field:crm.claim.stage,section_ids:0
+msgid "Sections"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Sales Team(s)"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,name:0
+msgid "Claim Subject"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.claim.stage,name:crm_claim.stage_claim3
+msgid "Rejected"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,date_action_next:0
+msgid "Next Action Date"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.stage:0
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_stage_act
+msgid "Claim Stages"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.ui.menu,name:crm_claim.menu_crm_case_claim-act
+msgid "Categories"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,email_from:0
+msgid "Destination email for email gateway."
+msgstr ""
+
+#. module: crm_claim
+#: code:addons/crm_claim/crm_claim.py:194
+#, python-format
+msgid "No Subject"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: help:crm.claim.report,delay_close:0
+msgid "Number of Days to close the case"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.model,name:crm_claim.model_crm_claim_report
+msgid "CRM Claim Report"
+msgstr ""
+
+#. module: crm_claim
+#: view:sale.config.settings:0
+msgid "Configure"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.resource.type,name:crm_claim.type_claim1
+msgid "Corrective"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: field:crm.claim.report,month:0
+msgid "Month"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: field:crm.claim,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Year of claim"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: field:crm.claim,categ_id:0
+#: view:crm.claim.report:0
+#: field:crm.claim.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim2
+msgid "Value Claims"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Responsible User"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Reject"
+msgstr ""
+
+#. module: crm_claim
+#: view:res.partner:0
+msgid "Partners Claim"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.stage:0
+msgid "Claim Stage"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim.stage,sequence:0
+msgid "Used to order stages. Lower is better."
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,id:0
+msgid "ID"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: field:crm.claim,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Closure"
+msgstr ""
+
+#. module: crm_claim
+#: help:crm.claim,section_id:0
+msgid ""
+"Responsible sales team. Define Responsible user and Email account for mail "
+"gateway."
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,date:0
+msgid "Claim Date"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: crm_claim
+#: model:ir.actions.act_window,name:crm_claim.crm_claim_categ_action
+msgid "Claim Categories"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.stage,case_default:0
+msgid "Common to All Teams"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: selection:crm.claim,type_action:0
+#: selection:crm.claim.report,type_action:0
+msgid "Corrective Action"
+msgstr ""
+
+#. module: crm_claim
+#: model:crm.case.categ,name:crm_claim.categ_claim3
+msgid "Policy Claims"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Date Closed"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Company"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim Reporter"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+#: selection:crm.claim.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "New Claims"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: field:crm.claim,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Unassigned Claims"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,delay_expected:0
+msgid "Overpassed Deadline"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,cause:0
+msgid "Root Cause"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Claim/Action Description"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Search Claims"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+#: view:crm.claim.report:0
+msgid "Type"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Resolution Actions"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.stage,case_refused:0
+msgid "Refused stage"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "Month of claim"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "February"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My company"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim.report:0
+msgid "My Case(s)"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: field:sale.config.settings,fetchmail_claim:0
+msgid "Create claims from incoming mails"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.stage,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "Actions"
+msgstr ""
+
+#. module: crm_claim
+#: selection:crm.claim,priority:0
+#: selection:crm.claim.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim,section_id:0
+#: view:crm.claim.report:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_claim
+#: field:crm.claim.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_claim
+#: view:crm.claim:0
+msgid "In Progress Claims"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_claim
+#: help:crm.claim.stage,case_refused:0
+msgid "Refused stages are specific stages for done."
+msgstr ""
diff --git a/addons/crm_claim/i18n/ko.po b/addons/crm_claim/i18n/ko.po
index 31f23dffe55..aabd1bef7bb 100644
--- a/addons/crm_claim/i18n/ko.po
+++ b/addons/crm_claim/i18n/ko.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-03-29 04:36+0000\n"
+"X-Launchpad-Export-Date: 2013-03-30 05:27+0000\n"
"X-Generator: Launchpad (build 16546)\n"
#. module: crm_claim
diff --git a/addons/crm_claim/report/crm_claim_report_view.xml b/addons/crm_claim/report/crm_claim_report_view.xml
index a61490c6086..febf9cafd73 100644
--- a/addons/crm_claim/report/crm_claim_report_view.xml
+++ b/addons/crm_claim/report/crm_claim_report_view.xml
@@ -11,7 +11,8 @@
<tree string="Claims" create="false">
<field name="name" invisible="1"/>
<field name="month" invisible="1"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1"
+ groups="base.group_multi_salesteams"/>
<field name="user_id" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
@@ -61,7 +62,8 @@
<filter icon="terp-personal" string="My Case(s)" help="My Case(s)" domain="[('user_id','=',uid)]" />
<field name="company_id" groups="base.group_multi_company"/>
<field name="user_id" string="Salesperson"/>
- <field name="section_id" string="Sales Team" context="{'invisible_section': False}"/>
+ <field name="section_id" string="Sales Team" context="{'invisible_section': False}"
+ groups="base.group_multi_salesteams"/>
<group expand="0" string="Extended Filters...">
<field name="partner_id"/>
<field name="stage_id" domain="[('section_ids', '=', 'section_id')]"/>
diff --git a/addons/crm_claim/res_config.py b/addons/crm_claim/res_config.py
deleted file mode 100644
index aa0cb7ffa20..00000000000
--- a/addons/crm_claim/res_config.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# -*- coding: utf-8 -*-
-##############################################################################
-#
-# OpenERP, Open Source Business Applications
-# Copyright (C) 2004-2012 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.osv import fields, osv
-
-class crm_claim_settings(osv.osv_memory):
- _name = 'sale.config.settings'
- _inherit = ['sale.config.settings', 'fetchmail.config.settings']
-
- _columns = {
- 'fetchmail_claim': fields.boolean("Create claims from incoming mails",
- fetchmail_model='crm.claim', fetchmail_name='Incoming Claims',
- help="""Allows you to configure your incoming mail server, and create claims from incoming emails."""),
- }
diff --git a/addons/crm_claim/res_config_view.xml b/addons/crm_claim/res_config_view.xml
deleted file mode 100644
index 79474f1fb00..00000000000
--- a/addons/crm_claim/res_config_view.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
- <data>
-
- <record id="view_project_config_claim" model="ir.ui.view">
- <field name="name">crm_claim settings</field>
- <field name="model">sale.config.settings</field>
- <field name="inherit_id" ref="base_setup.view_sale_config_settings"/>
- <field name="priority" eval="20"/>
- <field name="arch" type="xml">
- <div name="fetchmail_lead" position="after">
- <div>
- <field name="fetchmail_claim" class="oe_inline"/>
- <label for="fetchmail_claim"/>
- <button type="object" name="configure_fetchmail_claim" string="Configure" icon="gtk-go-forward"
- attrs="{'invisible': [('fetchmail_claim','=',False)]}" class="oe_link"/>
- </div>
- </div>
- </field>
- </record>
-
- </data>
-</openerp>
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index 6c0e3433afe..6769b42a7f8 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -48,7 +48,7 @@
<sheet string="Helpdesk Support">
<group col="4" class="oe_header">
<field name="name" string="Query"/>
- <field name="section_id" widget="selection"/>
+ <field name="section_id" widget="selection" groups="base.group_multi_salesteams"/>
<field name="user_id"/>
<field name="date"/>
<field name="date_deadline"/>
@@ -115,7 +115,7 @@
<field name="date" string="Date"/>
<field name="date_deadline"/>
<field name="user_id"/>
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="priority"/>
<field name="state"/>
</tree>
@@ -154,7 +154,7 @@
help="Helpdesk requests that are assigned to me or to one of the sale teams I manage" />
<field name="partner_id" />
<field name="user_id"/>
- <field name="section_id" string="Sales Team"/>
+ <field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
<group expand="0" string="Group By...">
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}" />
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}" />
diff --git a/addons/crm_helpdesk/i18n/cs.po b/addons/crm_helpdesk/i18n/cs.po
new file mode 100644
index 00000000000..58c37a7bc30
--- /dev/null
+++ b/addons/crm_helpdesk/i18n/cs.po
@@ -0,0 +1,708 @@
+# Czech 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-03-31 16:47+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_close:0
+msgid "Delay to Close"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: view:crm.helpdesk.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,email_from:0
+msgid "Destination email for email gateway"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,company_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Date of helpdesk requests"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Notes"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My company"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,date_closed:0
+msgid "Close Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Supports"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Extra Info"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Estimates"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,section_id:0
+msgid "Section"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: view:crm.helpdesk.report:0
+msgid "New"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.model,name:crm_helpdesk.model_crm_helpdesk_report
+msgid "Helpdesk report after Sales Services"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,channel_id:0
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,channel_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "# Mails"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My Sales Team(s)"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,create_date:0
+#: field:crm.helpdesk.report,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date_deadline:0
+#: field:crm.helpdesk.report,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_helpdesk_categ_action
+msgid "Helpdesk Categories"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_crm_case_helpdesk-act
+msgid "Categories"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "New Helpdesk Request"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Dates"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Month of helpdesk requests"
+msgstr ""
+
+#. module: crm_helpdesk
+#: code:addons/crm_helpdesk/crm_helpdesk.py:104
+#, python-format
+msgid "No Subject"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "#Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "All pending Helpdesk Request"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Year of helpdesk requests"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Query"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,categ_id:0
+#: field:crm.helpdesk.report,categ_id:0
+msgid "Category"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Responsible User"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_cost:0
+#: field:crm.helpdesk.report,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,channel_id:0
+msgid "Communication channel."
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Search Helpdesk"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: selection:crm.helpdesk,state:0
+#: selection:crm.helpdesk.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Escalate"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,id:0
+msgid "ID"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.actions.act_window,name:crm_helpdesk.crm_case_helpdesk_act111
+msgid "Helpdesk Requests"
+msgstr ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,section_id:0
+msgid ""
+"Responsible sales team. Define Responsible user and Email account for mail "
+"gateway."
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Misc"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My Company"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "General"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "References"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Communication"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Helpdesk Support Tree"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Categorization"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "Search"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,delay_expected:0
+msgid "Overpassed Deadline"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,description:0
+msgid "Description"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,probability:0
+msgid "Probability (%)"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk.report,email:0
+msgid "# Emails"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,name:0
+msgid "Name"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+#: field:crm.helpdesk.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: crm_helpdesk
+#: model:ir.ui.menu,name:crm_helpdesk.menu_help_support_main
+msgid "Helpdesk and Support"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk.report:0
+msgid "My Case(s)"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: help:crm.helpdesk,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Request Date"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Open Helpdesk Request"
+msgstr ""
+
+#. module: crm_helpdesk
+#: selection:crm.helpdesk,priority:0
+#: selection:crm.helpdesk.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+#: field:crm.helpdesk,section_id:0
+#: view:crm.helpdesk.report:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: crm_helpdesk
+#: view:crm.helpdesk:0
+msgid "Assigned to Me or My Sales Team(s)"
+msgstr ""
+
+#. module: crm_helpdesk
+#: field:crm.helpdesk,duration:0
+msgid "Duration"
+msgstr ""
diff --git a/addons/crm_helpdesk/i18n/ko.po b/addons/crm_helpdesk/i18n/ko.po
index 8b1fbe46c60..42d5760068c 100644
--- a/addons/crm_helpdesk/i18n/ko.po
+++ b/addons/crm_helpdesk/i18n/ko.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-03-29 04:36+0000\n"
+"X-Launchpad-Export-Date: 2013-03-30 05:27+0000\n"
"X-Generator: Launchpad (build 16546)\n"
#. module: crm_helpdesk
diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
index 05f502656d2..795ae210d8d 100644
--- a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
+++ b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
@@ -11,7 +11,7 @@
<tree string="Helpdesk" create="false">
<field name="name" invisible="1"/>
<field name="month" invisible="1"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
<field name="user_id" invisible="1"/>
<field name="company_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
@@ -60,7 +60,7 @@
<separator/>
<filter string="My Company" icon="terp-go-home" context="{'invisible_section': False}" domain="[('section_id.user_id.company_id','=',uid)]" help="My company"/>
<field name="user_id" string="Salesperson"/>
- <field name="section_id" string="Sales Team" context="{'invisible_section': False}"/>
+ <field name="section_id" string="Sales Team" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
<field name="company_id" groups="base.group_multi_company"/>
<group expand="0" string="Extended Filters..." groups="base.group_no_one">
<field name="priority" string="Priority"/>
diff --git a/addons/crm_partner_assign/i18n/cs.po b/addons/crm_partner_assign/i18n/cs.po
new file mode 100644
index 00000000000..12c03bf18eb
--- /dev/null
+++ b/addons/crm_partner_assign/i18n/cs.po
@@ -0,0 +1,931 @@
+# Czech 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-03-30 12:42+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,delay_close:0
+msgid "Delay to Close"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,author_id:0
+msgid "Author"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,planned_revenue:0
+msgid "Planned Revenue"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,nbr:0
+msgid "# of Cases"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+msgid "Group By..."
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,body:0
+msgid "Automatically sanitized HTML contents"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Forward"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Geo Localize"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,starred:0
+msgid "Starred"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "Body"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Date Partnership"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,type:0
+msgid "Lead"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Delay to close"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,history_mode:0
+msgid "Whole Story"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,notification_ids:0
+msgid "Notifications"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,date_assign:0
+msgid "Partner Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+#: view:res.partner:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,day:0
+msgid "Day"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,message_id:0
+msgid "Message unique identifier"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner,date_review_next:0
+msgid "Next Partner Review"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,history_mode:0
+msgid "Latest email"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead,partner_latitude:0
+#: field:res.partner,partner_latitude:0
+msgid "Geo Latitude"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Geo Assignation"
+msgstr ""
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_lead_forward_to_partner
+msgid "Email composition wizard"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,turnover:0
+msgid "Turnover"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,date_closed:0
+msgid "Close Date"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Partner Activation"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,type:0
+msgid "System notification"
+msgstr ""
+
+#. module: crm_partner_assign
+#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
+#, python-format
+msgid "Lead forward"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,probability:0
+msgid "Avg Probability"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Previous"
+msgstr ""
+
+#. module: crm_partner_assign
+#: code:addons/crm_partner_assign/partner_geo_assign.py:36
+#, python-format
+msgid "Network error"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,email_from:0
+msgid "From"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+msgid "Section"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "Send"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Next"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,delay_expected:0
+msgid "Overpassed Deadline"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,type:0
+#: field:crm.lead.report.assign,type:0
+msgid "Type"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,type:0
+msgid "Email"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead,partner_assigned_id:0
+msgid "Partner this case has been forwarded/assigned to."
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Date Invoice"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,template_id:0
+msgid "Template"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Assign Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Leads Analysis"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,creation_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,res_id:0
+msgid "Related Document ID"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Partner Assignation"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.report.assign,type:0
+msgid "Type is used to separate Leads and Opportunities"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "July"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Date Review"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,state:0
+msgid "Status"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,to_read:0
+msgid "To read"
+msgstr ""
+
+#. module: crm_partner_assign
+#: code:addons/crm_partner_assign/wizard/crm_forward_to_partner.py:74
+#, python-format
+msgid "Fwd"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Geo Localization"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: view:crm.partner.report.assign:0
+msgid "Opportunities Assignment Analysis"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+#: view:res.partner:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,history_mode:0
+msgid "Send history"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Close"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "March"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.report.assign,delay_close:0
+msgid "Number of Days to close the case"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,type:0
+msgid "Comment"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner,partner_weight:0
+msgid "Weight"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "April"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "December"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,vote_user_ids:0
+msgid "Users that voted for this message"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,month:0
+msgid "Month"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,opening_date:0
+msgid "Opening Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,child_ids:0
+msgid "Child Messages"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,date_review:0
+#: field:res.partner,date_review:0
+msgid "Latest Partner Review"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,subject:0
+msgid "Subject"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "or"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,body:0
+msgid "Contents"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,vote_user_ids:0
+msgid "Votes"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "#Opportunities"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,starred:0
+msgid "Current user has a starred notification linked to this message"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,date_partnership:0
+#: field:res.partner,date_partnership:0
+msgid "Partnership Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Team"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: selection:crm.lead.report.assign,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: crm_partner_assign
+#: model:ir.actions.act_window,name:crm_partner_assign.action_crm_send_mass_forward
+msgid "Mass forward to partner"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+#: field:res.partner,opportunity_assigned_ids:0
+msgid "Assigned Opportunities"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead,date_assign:0
+msgid "Assignation Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,probability_max:0
+msgid "Max Probability"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "August"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,record_name:0
+msgid "Name get of the related document."
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Escalate"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "June"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.report.assign,delay_open:0
+msgid "Number of Days to open the case"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,delay_open:0
+msgid "Delay to Open"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,user_id:0
+#: field:crm.partner.report.assign,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner.grade,active:0
+msgid "Active"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "November"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead,partner_longitude:0
+#: field:res.partner,partner_longitude:0
+msgid "Geo Longitude"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,opp:0
+msgid "# of Opportunity"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Lead Assign"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "October"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Assignation"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "January"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+msgid "Send Mail"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,date:0
+msgid "Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Planned Revenues"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Partner Review"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.partner.report.assign,period_id:0
+msgid "Invoice Period"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.forward.to.partner:0
+#: field:crm.lead.forward.to.partner,attachment_ids:0
+msgid "Attachments"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,record_name:0
+msgid "Message Record Name"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner.activation,sequence:0
+#: field:res.partner.grade,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "September"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner.grade,name:0
+msgid "Grade Name"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead,date_assign:0
+msgid "Last date this case was forwarded/assigned to a partner"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,state:0
+#: view:res.partner:0
+msgid "Open"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,subtype_id:0
+msgid "Subtype"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner,date_localization:0
+msgid "Geo Localization Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Current"
+msgstr ""
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_lead
+msgid "Lead/Opportunity"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,notified_partner_ids:0
+msgid "Notified partners"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,section_id:0
+#: field:crm.partner.report.assign,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "May"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,probable_revenue:0
+msgid "Probable Revenue"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+#: field:crm.lead,partner_assigned_id:0
+msgid "Assigned Partner"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner,grade_id:0
+msgid "Partner Level"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,type:0
+msgid "Opportunity"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,partner_id:0
+msgid "Customer"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,month:0
+msgid "February"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:res.partner.activation,name:0
+msgid "Name"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+#: field:crm.lead.report.assign,year:0
+msgid "Year"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:res.partner:0
+msgid "Convert to Opportunity"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead:0
+msgid "Geo Assign"
+msgstr ""
+
+#. module: crm_partner_assign
+#: view:crm.lead.report.assign:0
+msgid "Delay to open"
+msgstr ""
+
+#. 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 ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: view:crm.partner.report.assign:0
+msgid "Partner assigned Analysis"
+msgstr ""
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_lead_report_assign
+msgid "CRM Lead Report"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,composition_mode:0
+msgid "Composition mode"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,model:0
+msgid "Related Document Model"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.forward.to.partner,history_mode:0
+msgid "Case Information"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_partner_assign
+#: model:ir.model,name:crm_partner_assign.model_crm_partner_report_assign
+msgid "CRM Partner Report"
+msgstr ""
+
+#. module: crm_partner_assign
+#: selection:crm.lead.report.assign,priority:0
+msgid "High"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,partner_ids:0
+msgid "Additional contacts"
+msgstr ""
+
+#. module: crm_partner_assign
+#: help:crm.lead.forward.to.partner,parent_id:0
+msgid "Initial thread message."
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.report.assign,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: crm_partner_assign
+#: field:crm.lead.forward.to.partner,filter_id:0
+msgid "Filters"
+msgstr ""
+
+#. 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 ""
diff --git a/addons/crm_partner_assign/i18n/ko.po b/addons/crm_partner_assign/i18n/ko.po
index b7c33f77f72..f5b394c4634 100644
--- a/addons/crm_partner_assign/i18n/ko.po
+++ b/addons/crm_partner_assign/i18n/ko.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-03-29 04:36+0000\n"
+"X-Launchpad-Export-Date: 2013-03-30 05:27+0000\n"
"X-Generator: Launchpad (build 16546)\n"
#. module: crm_partner_assign
diff --git a/addons/crm_partner_assign/report/crm_lead_report_view.xml b/addons/crm_partner_assign/report/crm_lead_report_view.xml
index ee9266a0235..fbc46302fd7 100644
--- a/addons/crm_partner_assign/report/crm_lead_report_view.xml
+++ b/addons/crm_partner_assign/report/crm_lead_report_view.xml
@@ -10,7 +10,7 @@
<search string="Leads Analysis">
<filter icon="terp-check" string="Current" domain="[('state','in',('draft','open'))]"/>
<filter icon="terp-dialog-close" string="Closed" domain="[('state','=','done')]"/>
- <field name="section_id" context="{'invisible_section': False}"/>
+ <field name="section_id" context="{'invisible_section': False}" groups="base.group_multi_salesteams"/>
<field name="grade_id"/>
<field name="user_id"/>
<field name="partner_assigned_id"/>
@@ -69,7 +69,7 @@
<field name="year" invisible="1"/>
<field name="month" invisible="1"/>
<field name="date_assign" invisible="1"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
<field name="user_id" invisible="1"/>
<field name="grade_id" invisible="1" widget="selection"/>
<field name="partner_assigned_id" invisible="1"/>
diff --git a/addons/crm_partner_assign/report/crm_partner_report_view.xml b/addons/crm_partner_assign/report/crm_partner_report_view.xml
index eb2c86874c4..4e7e13afb15 100644
--- a/addons/crm_partner_assign/report/crm_partner_report_view.xml
+++ b/addons/crm_partner_assign/report/crm_partner_report_view.xml
@@ -8,7 +8,7 @@
<field name="model">crm.partner.report.assign</field>
<field name="arch" type="xml">
<search string="Partner assigned Analysis">
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
<field name="user_id"/>
<field name="grade_id"/>
<field name="activation"/>
@@ -49,7 +49,7 @@
<field name="date_review" invisible="1"/>
<field name="date_partnership" invisible="1"/>
<field name="period_id" invisible="1"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
<field name="user_id" invisible="1"/>
<field name="opp"/>
<field name="turnover"/>
diff --git a/addons/crm_partner_assign/res_partner_view.xml b/addons/crm_partner_assign/res_partner_view.xml
index 433a290ae81..9e70835a3f1 100644
--- a/addons/crm_partner_assign/res_partner_view.xml
+++ b/addons/crm_partner_assign/res_partner_view.xml
@@ -140,30 +140,31 @@
<field name="type"/>
<field name="stage_id"/>
<button name="stage_previous" string="Previous"
- states="open,pending" type="object" icon="gtk-go-back" />
+ states="open,pending" type="object" icon="gtk-go-back" />
<button name="stage_next" string="Next"
- states="open,pending" type="object"
- icon="gtk-go-forward" />
+ states="open,pending" type="object"
+ icon="gtk-go-forward" />
<field name="section_id"
- invisible="context.get('invisible_section', True)" />
+ invisible="context.get('invisible_section', True)"
+ groups="base.group_multi_salesteams"/>
<field name="user_id" />
<field name="state" />
<button name="case_cancel" string="Cancel"
- states="draft,open,pending" type="object"
- icon="gtk-cancel" />
+ states="draft,open,pending" type="object"
+ icon="gtk-cancel" />
<button name="case_open" string="Open"
- states="draft,pending" type="object"
- icon="gtk-go-forward" />
+ states="draft,pending" type="object"
+ icon="gtk-go-forward" />
<button name="case_close" string="Close"
- states="open,draft,pending" type="object"
- icon="gtk-close" />
+ states="open,draft,pending" type="object"
+ icon="gtk-close" />
<button string="Convert to Opportunity"
- name="convert_opportunity"
- states="draft,open,pending" icon="gtk-index"
- type="object" attrs="{'invisible':[('type','=','opportunity')]}" />
+ name="convert_opportunity"
+ states="draft,open,pending" icon="gtk-index"
+ type="object" attrs="{'invisible':[('type','=','opportunity')]}" />
<button name="case_escalate" string="Escalate"
- states="open,draft,pending" type="object"
- icon="gtk-go-up" />
+ states="open,draft,pending" type="object"
+ icon="gtk-go-up" />
</tree>
</field>
</page>
diff --git a/addons/crm_todo/crm_todo_view.xml b/addons/crm_todo/crm_todo_view.xml
index 0b3de338808..851c2abfba4 100644
--- a/addons/crm_todo/crm_todo_view.xml
+++ b/addons/crm_todo/crm_todo_view.xml
@@ -52,11 +52,10 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,gantt,graph,kanban</field>
</record>
- <menuitem
- id="menu_crm_todo"
- parent="base.menu_sales"
- action="crm_todo_action"
- sequence="6"/>
+ <menuitem id="menu_crm_todo"
+ parent="base.menu_sales"
+ action="crm_todo_action"
+ sequence="7"/>
</data>
diff --git a/addons/crm_todo/i18n/cs.po b/addons/crm_todo/i18n/cs.po
new file mode 100644
index 00000000000..fea912005b8
--- /dev/null
+++ b/addons/crm_todo/i18n/cs.po
@@ -0,0 +1,85 @@
+# Czech 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-03-30 12:42+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: crm_todo
+#: model:ir.model,name:crm_todo.model_project_task
+msgid "Task"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Timebox"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Lead"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "For cancelling the task"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Next"
+msgstr ""
+
+#. 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 ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+#: field:crm.lead,task_ids:0
+msgid "Tasks"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Done"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Cancel"
+msgstr ""
+
+#. module: crm_todo
+#: model:ir.model,name:crm_todo.model_crm_lead
+msgid "Lead/Opportunity"
+msgstr ""
+
+#. module: crm_todo
+#: field:project.task,lead_id:0
+msgid "Lead / Opportunity"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "For changing to done state"
+msgstr ""
+
+#. module: crm_todo
+#: view:crm.lead:0
+msgid "Previous"
+msgstr ""
diff --git a/addons/crm_todo/i18n/ko.po b/addons/crm_todo/i18n/ko.po
index f2c3468c5a9..f5924f76b40 100644
--- a/addons/crm_todo/i18n/ko.po
+++ b/addons/crm_todo/i18n/ko.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-03-29 04:36+0000\n"
+"X-Launchpad-Export-Date: 2013-03-30 05:27+0000\n"
"X-Generator: Launchpad (build 16546)\n"
#. module: crm_todo
diff --git a/addons/document/document_view.xml b/addons/document/document_view.xml
index 68f294b251c..c3bd5ad3f56 100644
--- a/addons/document/document_view.xml
+++ b/addons/document/document_view.xml
@@ -258,7 +258,9 @@
name="Documents"
action="action_document_file_form"
id="menu_document_files"
- parent="menu_document_doc"/>
+ parent="menu_document_doc"
+ sequence="0"
+ />
<record model="ir.actions.act_window" id="action_document_file_directory_form">
<field name="type">ir.actions.act_window</field>
diff --git a/addons/document_ftp/ftpserver/abstracted_fs.py b/addons/document_ftp/ftpserver/abstracted_fs.py
index a83843eb1a5..4a2d6e5e1ec 100644
--- a/addons/document_ftp/ftpserver/abstracted_fs.py
+++ b/addons/document_ftp/ftpserver/abstracted_fs.py
@@ -325,7 +325,7 @@ class abstracted_fs(object):
""" Get cr, uid, pool from a node
"""
assert node
- db = openerp.registry.(node.context.dbname).db
+ db = openerp.registry(node.context.dbname).db
return db.cursor(), node.context.uid
def get_node_cr(self, node):
diff --git a/addons/edi/i18n/cs.po b/addons/edi/i18n/cs.po
new file mode 100644
index 00000000000..880519ca93b
--- /dev/null
+++ b/addons/edi/i18n/cs.po
@@ -0,0 +1,87 @@
+# Czech 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-03-31 16:48+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: edi
+#. openerp-web
+#: code:addons/edi/static/src/js/edi.js:67
+#, python-format
+msgid "Reason:"
+msgstr ""
+
+#. module: edi
+#. openerp-web
+#: code:addons/edi/static/src/js/edi.js:60
+#, python-format
+msgid "The document has been successfully imported!"
+msgstr ""
+
+#. module: edi
+#. openerp-web
+#: code:addons/edi/static/src/js/edi.js:65
+#, python-format
+msgid "Sorry, the document could not be imported."
+msgstr ""
+
+#. module: edi
+#: model:ir.model,name:edi.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: edi
+#: model:ir.model,name:edi.model_res_currency
+msgid "Currency"
+msgstr ""
+
+#. module: edi
+#. openerp-web
+#: code:addons/edi/static/src/js/edi.js:71
+#, python-format
+msgid "Document Import Notification"
+msgstr ""
+
+#. module: edi
+#: code:addons/edi/models/edi.py:130
+#, python-format
+msgid "Missing application."
+msgstr ""
+
+#. module: edi
+#: code:addons/edi/models/edi.py:131
+#, python-format
+msgid ""
+"The document you are trying to import requires the OpenERP `%s` application. "
+"You can install it by connecting as the administrator and opening the "
+"configuration assistant."
+msgstr ""
+
+#. module: edi
+#: code:addons/edi/models/edi.py:47
+#, python-format
+msgid "'%s' is an invalid external ID"
+msgstr ""
+
+#. module: edi
+#: model:ir.model,name:edi.model_res_partner
+msgid "Partner"
+msgstr ""
+
+#. module: edi
+#: model:ir.model,name:edi.model_edi_edi
+msgid "EDI Subsystem"
+msgstr ""
diff --git a/addons/email_template/email_template_view.xml b/addons/email_template/email_template_view.xml
index 8c63a06ebe0..5429341e154 100644
--- a/addons/email_template/email_template_view.xml
+++ b/addons/email_template/email_template_view.xml
@@ -9,7 +9,7 @@
<sheet>
<div class="oe_title">
<label for="name" class="oe_edit_only"/><h1><field name="name" required="1"/></h1>
- <h3><label for="model_id"/><field name="model_id" required="1" on_change="onchange_model_id(model_id)" class="oe_inline"/></h3>
+ <label for="model_id"/><field name="model_id" required="1" on_change="onchange_model_id(model_id)" class="oe_inline"/>
<field name="model" invisible="1"/>
</div>
<div class="oe_right oe_button_box" name="buttons">
@@ -25,30 +25,44 @@
context="{'template_id':active_id}"/>
</div>
<notebook>
- <page string="Email Details">
+ <page string="Mailing Template">
<group>
- <group string="Addressing">
- <field name="email_from"/>
- <field name="email_to"/>
- <field name="partner_to"/>
- <field name="email_cc"/>
- <field name="reply_to"/>
- <field name="user_signature"/>
+ <group>
+ <field name="email_from"
+ placeholder="Override author's email"/>
+ <field name="email_to"
+ placeholder="Comma-separated recipient addresses"/>
+ <field name="partner_to"
+ placeholder="Comma-separated ids of recipient partners"/>
+ <field name="email_cc"
+ placeholder="Comma-separated carbon copy recipients addresses"/>
+ <field name="reply_to"
+ placeholder="Preferred reply address"/>
+ <field name="subject"
+ placeholder="Subject (placeholders may be used here)"/>
+ <field name="user_signature" string="Author Signature (mass mail only)"/>
</group>
- <group string="Dynamic Value Builder" class="oe_edit_only">
- <field name="model_object_field" domain="[('model_id','=',model_id),('ttype','!=','one2many'),('ttype','!=','many2many')]" on_change="onchange_sub_model_object_value_field(model_object_field)"/>
- <field name="sub_object" readonly="1"/>
- <field name="sub_model_object_field" domain="[('model_id','=',sub_object),('ttype','!=','one2many'),('ttype','!=','many2many')]" attrs="{'readonly':[('sub_object','=',False)],'required':[('sub_object','!=',False)]}" on_change="onchange_sub_model_object_value_field(model_object_field,sub_model_object_field)"/>
- <field name="null_value" on_change="onchange_sub_model_object_value_field(model_object_field,sub_model_object_field,null_value)"/>
- <field name="copyvalue"/>
- </group>
- <group string="Contents" colspan="2">
- <field name="subject"/>
- <field name="body_html" width="250" height="450" nolabel="1" colspan="2" placeholder="Email contents (in raw HTML format)"/>
+ <group class="oe_edit_only">
+ <h3 colspan="2">Dynamic placeholder generator</h3>
+ <field name="model_object_field"
+ domain="[('model_id','=',model_id),('ttype','!=','one2many'),('ttype','!=','many2many')]"
+ on_change="onchange_sub_model_object_value_field(model_object_field)"/>
+ <field name="sub_object" readonly="1"/>
+ <field name="sub_model_object_field"
+ domain="[('model_id','=',sub_object),('ttype','!=','one2many'),('ttype','!=','many2many')]"
+ attrs="{'readonly':[('sub_object','=',False)],'required':[('sub_object','!=',False)]}"
+ on_change="onchange_sub_model_object_value_field(model_object_field,sub_model_object_field)"/>
+ <field name="null_value"
+ on_change="onchange_sub_model_object_value_field(model_object_field,sub_model_object_field,null_value)"/>
+ <field name="copyvalue"/>
</group>
</group>
+ <h3>Body</h3>
+ <field name="body_html" width="250" height="450"
+ placeholder="Rich-text/HTML content of the message (placeholders may be used here)"/>
+ <field name="attachment_ids" nolabel="1" widget="many2many_binary"/>
</page>
- <page string="Advanced">
+ <page string="Advanced Settings">
<group>
<field name="lang"/>
<field name="mail_server_id"/>
@@ -56,9 +70,6 @@
<field name="report_template" domain="[('model','=',model)]"/>
<field name="report_name" class="oe_inline"
attrs="{'invisible':[('report_template','=',False)]}"/>
- <field name="attachment_ids">
- <tree><field name="name"/></tree>
- </field>
</group>
</page>
</notebook>
diff --git a/addons/email_template/wizard/email_template_preview.py b/addons/email_template/wizard/email_template_preview.py
index f24c4f13962..5fee415a75e 100644
--- a/addons/email_template/wizard/email_template_preview.py
+++ b/addons/email_template/wizard/email_template_preview.py
@@ -69,15 +69,19 @@ class email_template_preview(osv.osv_memory):
}
def on_change_res_id(self, cr, uid, ids, res_id, context=None):
- if not res_id: return {}
- vals = {}
+ if context is None:
+ context = {'value': {}}
+ if not res_id or not context.get('template_id'):
+ return {'value': {}}
+
email_template = self.pool.get('email.template')
- template_id = context and context.get('template_id')
+ template_id = context.get('template_id')
template = email_template.browse(cr, uid, template_id, context=context)
- vals['name'] = template.name
+
+ # generate and get template values
mail_values = email_template.generate_email(cr, uid, template_id, res_id, context=context)
- for k in ('email_from','email_to','email_cc','reply_to','subject','body_html'):
- vals[k] = mail_values[k]
+ vals = dict((field, mail_values.get(field, False)) for field in ('email_from', 'email_to', 'email_cc', 'reply_to', 'subject', 'body_html', 'partner_to'))
+ vals['name'] = template.name
return {'value': vals}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/email_template/wizard/email_template_preview_view.xml b/addons/email_template/wizard/email_template_preview_view.xml
index 2d7abcb4eef..0a74f7d813e 100644
--- a/addons/email_template/wizard/email_template_preview_view.xml
+++ b/addons/email_template/wizard/email_template_preview_view.xml
@@ -7,22 +7,22 @@
<field name="model">email_template.preview</field>
<field name="arch" type="xml">
<form string="Email Preview" version="7.0">
- <div>
- <h2>Preview of <field name="name" readonly="1" class="oe_inline"/></h2>
- <field name="model_id" invisible="1"/>
- <h3>Using sample document
- <field name="res_id" on_change="on_change_res_id(res_id, context)" class="oe_inline"/>
- </h3>
- </div>
+ <field name="model_id" invisible="1"/>
+ <h2 style="color: #7c7bad;">Preview of <field name="name" readonly="1" nolabel="1" class="oe_inline"/></h2>
+ Using sample document <field name="res_id" on_change="on_change_res_id(res_id, context)" class="oe_inline"/>
<group>
- <field name="email_from" readonly="1"/>
- <field name="email_to" readonly="1"/>
- <field name="partner_to" readonly="1"/>
- <field name="email_cc" readonly="1" attrs="{'invisible':[('email_cc','=',False)]}"/>
- <field name="reply_to" readonly="1" attrs="{'invisible':[('reply_to','=',False)]}"/>
- <field name="subject" readonly="1"/>
- <field name="body_html" widget="html" readonly="1" options='{"safe": True}'/>
+ <field name="subject" readonly="1"/>
+ <field name="email_from" readonly="1"
+ attrs="{'invisible':[('email_from','=',False)]}"/>
+ <field name="email_to" readonly="1"/>
+ <field name="partner_to" readonly="1"/>
+ <field name="email_cc" readonly="1"
+ attrs="{'invisible':[('email_cc','=',False)]}"/>
+ <field name="reply_to" readonly="1"
+ attrs="{'invisible':[('reply_to','=',False)]}"/>
</group>
+ <field name="body_html" widget="html" readonly="1"
+ nolabel="1" options='{"safe": True}'/>
</form>
</field>
</record>
diff --git a/addons/email_template/wizard/mail_compose_message.py b/addons/email_template/wizard/mail_compose_message.py
index 2215d0705f1..f3b03d16a2f 100644
--- a/addons/email_template/wizard/mail_compose_message.py
+++ b/addons/email_template/wizard/mail_compose_message.py
@@ -39,26 +39,8 @@ def _reopen(self, res_id, model):
class mail_compose_message(osv.TransientModel):
_inherit = 'mail.compose.message'
- def _get_templates(self, cr, uid, context=None):
- if context is None:
- context = {}
- model = False
- email_template_obj = self.pool.get('email.template')
- message_id = context.get('default_parent_id', context.get('message_id', context.get('active_id')))
-
- if context.get('default_composition_mode') == 'reply' and message_id:
- message_data = self.pool.get('mail.message').browse(cr, uid, message_id, context=context)
- if message_data:
- model = message_data.model
- else:
- model = context.get('default_model', context.get('active_model'))
-
- record_ids = email_template_obj.search(cr, uid, [('model', '=', model)], context=context)
- return email_template_obj.name_get(cr, uid, record_ids, context) + [(False, '')]
-
_columns = {
- # incredible hack of the day: size=-1 means we want an int db column instead of an str one
- 'template_id': fields.selection(_get_templates, 'Template', size=-1),
+ 'template_id': fields.many2one('email.template', 'Use template', select=True),
'partner_to': fields.char('To (Partner IDs)',
help="Comma-separated list of recipient partners ids (placeholders may be used here)"),
'email_to': fields.char('To (Emails)',
@@ -114,10 +96,13 @@ class mail_compose_message(osv.TransientModel):
'subject': record.subject or False,
'body_html': record.body or False,
'model_id': model_id or False,
- 'attachment_ids': [(6, 0, [att.id for att in record.attachment_ids])]
+ 'attachment_ids': [(6, 0, [att.id for att in record.attachment_ids])],
}
template_id = email_template.create(cr, uid, values, context=context)
- record.write(record.onchange_template_id(template_id, record.composition_mode, record.model, record.res_id)['value'])
+ # generate the saved template
+ template_values = record.onchange_template_id(template_id, record.composition_mode, record.model, record.res_id)['value']
+ template_values['template_id'] = template_id
+ record.write(template_values)
return _reopen(self, record.id, record.model)
#------------------------------------------------------
diff --git a/addons/email_template/wizard/mail_compose_message_view.xml b/addons/email_template/wizard/mail_compose_message_view.xml
index 1b2be68a4a2..46ed49e6627 100644
--- a/addons/email_template/wizard/mail_compose_message_view.xml
+++ b/addons/email_template/wizard/mail_compose_message_view.xml
@@ -24,10 +24,11 @@
</div>
</xpath>
<xpath expr="//footer" position="inside">
- <group class="oe_right" col="1">
+ <group class="oe_right oe_form" col="1">
<div>Use template
- <field name="template_id" nolabel="1"
- on_change="onchange_template_id(template_id, composition_mode, model, res_id, context)"/>
+ <!--FIX: To avoid css issue of many2one field in footer temporary used oe_form (BUG:1152464)-->
+ <field name="template_id" nolabel="1" class='oe_inline'
+ on_change="onchange_template_id(template_id, composition_mode, model, res_id, context)" domain="[('model_id','=',context.get('default_model'))]"/>
</div>
<button icon="/email_template/static/src/img/email_template_save.png"
type="object" name="save_as_template" string="Save as new template" class="oe_link"
diff --git a/addons/event_moodle/i18n/cs.po b/addons/event_moodle/i18n/cs.po
new file mode 100644
index 00000000000..fd98a1df93a
--- /dev/null
+++ b/addons/event_moodle/i18n/cs.po
@@ -0,0 +1,185 @@
+# Czech 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-03-31 16:48+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid "Connection with username and password"
+msgstr ""
+
+#. module: event_moodle
+#: model:ir.model,name:event_moodle.model_event_moodle_config_wiz
+msgid "event.moodle.config.wiz"
+msgstr ""
+
+#. module: event_moodle
+#: help:event.moodle.config.wiz,server_moodle:0
+msgid ""
+"URL where you have your moodle server. For exemple: 'http://127.0.0.1' or "
+"'http://localhost'"
+msgstr ""
+
+#. module: event_moodle
+#: field:event.registration,moodle_user_password:0
+msgid "Password for Moodle User"
+msgstr ""
+
+#. module: event_moodle
+#: field:event.moodle.config.wiz,moodle_password:0
+msgid "Moodle Password"
+msgstr ""
+
+#. module: event_moodle
+#: code:addons/event_moodle/event_moodle.py:137
+#, python-format
+msgid "Your email '%s' is wrong."
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid "Connection with a Token"
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid ""
+"The easiest way to connect OpenERP with a moodle server is to create a "
+"'token' in Moodle. It will be used to authenticate OpenERP as a trustable "
+"application."
+msgstr ""
+
+#. module: event_moodle
+#: field:event.moodle.config.wiz,url:0
+msgid "URL to Moodle Server"
+msgstr ""
+
+#. module: event_moodle
+#: help:event.moodle.config.wiz,url:0
+msgid "The url that will be used for the connection with moodle in xml-rpc"
+msgstr ""
+
+#. module: event_moodle
+#: model:ir.model,name:event_moodle.model_event_registration
+msgid "Event Registration"
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid ""
+"Another approach is to create a user for OpenERP in Moodle. If you do so, "
+"make sure that this user has appropriate access rights."
+msgstr ""
+
+#. module: event_moodle
+#: field:event.registration,moodle_uid:0
+msgid "Moodle User ID"
+msgstr ""
+
+#. module: event_moodle
+#: field:event.moodle.config.wiz,server_moodle:0
+msgid "Moodle Server"
+msgstr ""
+
+#. module: event_moodle
+#: field:event.event,moodle_id:0
+msgid "Moodle ID"
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid "Server"
+msgstr ""
+
+#. module: event_moodle
+#: code:addons/event_moodle/event_moodle.py:57
+#: code:addons/event_moodle/event_moodle.py:105
+#: code:addons/event_moodle/event_moodle.py:137
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: event_moodle
+#: code:addons/event_moodle/event_moodle.py:105
+#, python-format
+msgid "You must configure your moodle connection."
+msgstr ""
+
+#. module: event_moodle
+#: field:event.moodle.config.wiz,moodle_username:0
+#: field:event.registration,moodle_username:0
+msgid "Moodle Username"
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+#: model:ir.actions.act_window,name:event_moodle.configure_moodle
+msgid "Configure Moodle"
+msgstr ""
+
+#. module: event_moodle
+#: field:event.moodle.config.wiz,moodle_token:0
+msgid "Moodle Token"
+msgstr ""
+
+#. module: event_moodle
+#: help:event.moodle.config.wiz,moodle_username:0
+msgid ""
+"You can also connect with your username that you define when you create a "
+"token"
+msgstr ""
+
+#. module: event_moodle
+#: help:event.event,moodle_id:0
+msgid "The identifier of this event in Moodle"
+msgstr ""
+
+#. module: event_moodle
+#: help:event.moodle.config.wiz,moodle_token:0
+msgid "Put your token that you created in your moodle server"
+msgstr ""
+
+#. module: event_moodle
+#: model:ir.ui.menu,name:event_moodle.wizard_moodle
+msgid "Moodle Configuration"
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid "or"
+msgstr ""
+
+#. module: event_moodle
+#: code:addons/event_moodle/event_moodle.py:57
+#, python-format
+msgid "First configure your moodle connection."
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid "Apply"
+msgstr ""
+
+#. module: event_moodle
+#: view:event.moodle.config.wiz:0
+msgid "Cancel"
+msgstr ""
+
+#. module: event_moodle
+#: model:ir.model,name:event_moodle.model_event_event
+msgid "Event"
+msgstr ""
diff --git a/addons/event_sale/i18n/cs.po b/addons/event_sale/i18n/cs.po
new file mode 100644
index 00000000000..69b719fbc8d
--- /dev/null
+++ b/addons/event_sale/i18n/cs.po
@@ -0,0 +1,90 @@
+# Czech 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-03-31 16:48+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: event_sale
+#: model:ir.model,name:event_sale.model_product_product
+msgid "Product"
+msgstr ""
+
+#. module: event_sale
+#: help:product.product,event_ok:0
+msgid ""
+"Determine if a product needs to create automatically an event registration "
+"at the confirmation of a sales order line."
+msgstr ""
+
+#. module: event_sale
+#: help:sale.order.line,event_id:0
+msgid ""
+"Choose an event and it will automatically create a registration for this "
+"event."
+msgstr ""
+
+#. module: event_sale
+#: model:event.event,name:event_sale.event_technical_training
+msgid "Technical training in Grand-Rosiere"
+msgstr ""
+
+#. module: event_sale
+#: help:product.product,event_type_id:0
+msgid ""
+"Select event types so when we use this product in sales order lines, it will "
+"filter events of this type only."
+msgstr ""
+
+#. module: event_sale
+#: field:product.product,event_type_id:0
+msgid "Type of Event"
+msgstr ""
+
+#. module: event_sale
+#: field:sale.order.line,event_ok:0
+msgid "event_ok"
+msgstr ""
+
+#. module: event_sale
+#: field:product.product,event_ok:0
+msgid "Event Subscription"
+msgstr ""
+
+#. module: event_sale
+#: field:sale.order.line,event_type_id:0
+msgid "Event Type"
+msgstr ""
+
+#. module: event_sale
+#: model:product.template,name:event_sale.event_product_product_template
+msgid "Technical Training"
+msgstr ""
+
+#. module: event_sale
+#: code:addons/event_sale/event_sale.py:88
+#, python-format
+msgid "The registration %s has been created from the Sales Order %s."
+msgstr ""
+
+#. module: event_sale
+#: field:sale.order.line,event_id:0
+msgid "Event"
+msgstr ""
+
+#. module: event_sale
+#: model:ir.model,name:event_sale.model_sale_order_line
+msgid "Sales Order Line"
+msgstr ""
diff --git a/addons/google_base_account/i18n/cs.po b/addons/google_base_account/i18n/cs.po
new file mode 100644
index 00000000000..48287b5c484
--- /dev/null
+++ b/addons/google_base_account/i18n/cs.po
@@ -0,0 +1,109 @@
+# Czech 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-03-31 16:49+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: google_base_account
+#: field:res.users,gmail_user:0
+msgid "Username"
+msgstr ""
+
+#. module: google_base_account
+#: model:ir.actions.act_window,name:google_base_account.act_google_login_form
+msgid "Google Login"
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:29
+#, python-format
+msgid "Google Contacts Import Error!"
+msgstr ""
+
+#. module: google_base_account
+#: model:ir.model,name:google_base_account.model_res_users
+msgid "Users"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "or"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "Google login"
+msgstr ""
+
+#. module: google_base_account
+#: field:google.login,password:0
+msgid "Google Password"
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:77
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: google_base_account
+#: view:res.users:0
+msgid "Google Account"
+msgstr ""
+
+#. module: google_base_account
+#: view:res.users:0
+msgid "Synchronization"
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:77
+#, python-format
+msgid "Authentication failed. Check the user and password."
+msgstr ""
+
+#. module: google_base_account
+#: code:addons/google_base_account/wizard/google_login.py:29
+#, python-format
+msgid ""
+"Please install gdata-python-client from http://code.google.com/p/gdata-"
+"python-client/downloads/list"
+msgstr ""
+
+#. module: google_base_account
+#: model:ir.model,name:google_base_account.model_google_login
+msgid "Google Contact"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "Cancel"
+msgstr ""
+
+#. module: google_base_account
+#: field:google.login,user:0
+msgid "Google Username"
+msgstr ""
+
+#. module: google_base_account
+#: field:res.users,gmail_password:0
+msgid "Password"
+msgstr ""
+
+#. module: google_base_account
+#: view:google.login:0
+msgid "_Login"
+msgstr ""
diff --git a/addons/google_docs/i18n/cs.po b/addons/google_docs/i18n/cs.po
new file mode 100644
index 00000000000..38cda3eccca
--- /dev/null
+++ b/addons/google_docs/i18n/cs.po
@@ -0,0 +1,188 @@
+# Czech 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-03-31 16:49+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:167
+#, python-format
+msgid "Key Error!"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a presentation (slide show) document with url like "
+"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
+".p`, the ID is `presentation:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a text document with url like "
+"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
+"`document:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,gdocs_resource_id:0
+msgid "Google Resource ID to Use as Template"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a drawing document with url like "
+"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
+"`drawings:123456789`"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/xml/gdocs.xml:6
+#, python-format
+msgid "Add Google Doc..."
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"This is the id of the template document, on google side. You can find it "
+"thanks to its URL:"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.model,name:google_docs.model_google_docs_config
+msgid "Google Docs templates config"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/js/gdocs.js:25
+#, python-format
+msgid ""
+"The user google credentials are not set yet. Contact your administrator for "
+"help."
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid ""
+"for a spreadsheet document with url like "
+"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
+"the ID is `spreadsheet:123456789`"
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:129
+#, python-format
+msgid ""
+"Your resource id is not correct. You can find the id in the google docs URL."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:153
+#, python-format
+msgid "Creating google docs may only be done by one at a time."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:83
+#: code:addons/google_docs/google_docs.py:129
+#: code:addons/google_docs/google_docs.py:153
+#, python-format
+msgid "Google Docs Error!"
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:83
+#, python-format
+msgid "Check your google configuration in Users/Users/Synchronization tab."
+msgstr ""
+
+#. module: google_docs
+#: model:ir.ui.menu,name:google_docs.menu_gdocs_config
+msgid "Google Docs configuration"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.actions.act_window,name:google_docs.action_google_docs_users_config
+#: model:ir.ui.menu,name:google_docs.menu_gdocs_model_config
+msgid "Models configuration"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,model_id:0
+msgid "Model"
+msgstr ""
+
+#. module: google_docs
+#. openerp-web
+#: code:addons/google_docs/static/src/js/gdocs.js:28
+#, python-format
+msgid "User Google credentials are not yet set."
+msgstr ""
+
+#. module: google_docs
+#: code:addons/google_docs/google_docs.py:167
+#, python-format
+msgid "Your Google Doc Name Pattern's key does not found in object."
+msgstr ""
+
+#. module: google_docs
+#: help:google.docs.config,name_template:0
+msgid ""
+"Choose how the new google docs will be named, on google side. Eg. "
+"gdoc_%(field_name)s"
+msgstr ""
+
+#. module: google_docs
+#: view:google.docs.config:0
+msgid "Google Docs Configuration"
+msgstr ""
+
+#. module: google_docs
+#: help:google.docs.config,gdocs_resource_id:0
+msgid ""
+"\n"
+"This is the id of the template document, on google side. You can find it "
+"thanks to its URL: \n"
+"*for a text document with url like "
+"`https://docs.google.com/a/openerp.com/document/d/123456789/edit`, the ID is "
+"`document:123456789`\n"
+"*for a spreadsheet document with url like "
+"`https://docs.google.com/a/openerp.com/spreadsheet/ccc?key=123456789#gid=0`, "
+"the ID is `spreadsheet:123456789`\n"
+"*for a presentation (slide show) document with url like "
+"`https://docs.google.com/a/openerp.com/presentation/d/123456789/edit#slide=id"
+".p`, the ID is `presentation:123456789`\n"
+"*for a drawing document with url like "
+"`https://docs.google.com/a/openerp.com/drawings/d/123456789/edit`, the ID is "
+"`drawings:123456789`\n"
+"...\n"
+msgstr ""
+
+#. module: google_docs
+#: model:ir.model,name:google_docs.model_ir_attachment
+msgid "ir.attachment"
+msgstr ""
+
+#. module: google_docs
+#: field:google.docs.config,name_template:0
+msgid "Google Doc Name Pattern"
+msgstr ""
diff --git a/addons/hr/hr_view.xml b/addons/hr/hr_view.xml
index e0c3edfdb39..ccd11bc0dc2 100644
--- a/addons/hr/hr_view.xml
+++ b/addons/hr/hr_view.xml
@@ -341,7 +341,8 @@
</group>
<group>
<field name="company_id" widget="selection" groups="base.group_multi_company"/>
- <field name="department_id"/> </group>
+ <field name="department_id"/>
+ </group>
</group>
<div>
<label for="description"/>
diff --git a/addons/hr_evaluation/i18n/cs.po b/addons/hr_evaluation/i18n/cs.po
new file mode 100644
index 00000000000..5fee15f25a9
--- /dev/null
+++ b/addons/hr_evaluation/i18n/cs.po
@@ -0,0 +1,910 @@
+# Czech translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-03-31 16:49+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,send_anonymous_manager:0
+msgid "Send an anonymous summary to the manager"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Start Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr.evaluation.report:0
+#: view:hr_evaluation.plan:0
+msgid "Group By..."
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,request_id:0
+#: field:hr.evaluation.report,request_id:0
+msgid "Request_id"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,delay_date:0
+msgid "Delay to Start"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Appraisal that are in waiting appreciation state"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan:0
+#: field:hr_evaluation.plan,company_id:0
+#: field:hr_evaluation.plan.phase,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,evaluation_id:0
+#: field:hr_evaluation.plan.phase,survey_id:0
+msgid "Appraisal Form"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan:0
+#: field:hr_evaluation.plan,phase_ids:0
+msgid "Appraisal Phases"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Send Request"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan,month_first:0
+msgid ""
+"This number of months will be used to schedule the first evaluation date of "
+"the employee when selecting an evaluation plan. "
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.employee:0
+#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_tree
+msgid "Appraisals"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "(eval_name)s:Appraisal Name"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_ids:0
+#: field:hr_evaluation.evaluation,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Mail Body"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,wait:0
+msgid "Wait Previous Phases"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.model,name:hr_evaluation.model_hr_evaluation_evaluation
+msgid "Employee Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,state:0
+#: selection:hr_evaluation.evaluation,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Did not meet expectations"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_tree
+#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr
+msgid "Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr.evaluation.interview,message_unread:0
+#: help:hr_evaluation.evaluation,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Send to Managers"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.evaluation,date_close:0
+msgid "Ending Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.evaluation,note_action:0
+msgid ""
+"If the evaluation does not meet the expectations, you can proposean action "
+"plan"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Send to Employees"
+msgstr ""
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:84
+#, python-format
+msgid ""
+"\n"
+"Date: %(date)s\n"
+"\n"
+"Dear %(employee_name)s,\n"
+"\n"
+"I am doing an evaluation regarding %(eval_name)s.\n"
+"\n"
+"Kindly submit your response.\n"
+"\n"
+"\n"
+"Thanks,\n"
+"--\n"
+"%(user_signature)s\n"
+"\n"
+" "
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Appraisal that are in Plan In Progress state"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr.evaluation.interview,message_summary:0
+#: help:hr_evaluation.evaluation,message_summary:0
+msgid ""
+"Holds the Chatter summary (number of messages, ...). This summary is "
+"directly in html format in order to be inserted in kanban views."
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:235
+#: code:addons/hr_evaluation/hr_evaluation.py:320
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+msgid "In progress Evaluations"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.model,name:hr_evaluation.model_survey_request
+msgid "survey.request"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "(date)s: Current Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,name:hr_evaluation.act_hr_employee_2_hr__evaluation_interview
+msgid "Interviews"
+msgstr ""
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:83
+#, python-format
+msgid "Regarding "
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_follower_ids:0
+#: field:hr_evaluation.evaluation,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_unread:0
+#: field:hr_evaluation.evaluation,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,employee_id:0
+#: view:hr_evaluation.evaluation:0
+#: field:hr_evaluation.evaluation,employee_id:0
+#: model:ir.model,name:hr_evaluation.model_hr_employee
+msgid "Employee"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr_evaluation.evaluation,state:0
+msgid "New"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,mail_body:0
+msgid "Email"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Exceeds expectations"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,mail_feature:0
+msgid ""
+"Check this box if you want to send mail to employees coming under this phase"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,send_answer_manager:0
+msgid "Send all answers to the manager"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,state:0
+#: selection:hr_evaluation.evaluation,state:0
+msgid "Plan In Progress"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Public Notes"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Send Reminder Email"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr_evaluation.evaluation,rating:0
+msgid "Appreciation"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Print Interview"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,closed:0
+msgid "closed"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Meet expectations"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,nbr:0
+msgid "# of Requests"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,state:0
+#: view:hr_evaluation.evaluation:0
+#: field:hr_evaluation.evaluation,state:0
+msgid "Status"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_plans_installer
+msgid "Review Appraisal Plans"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,help:hr_evaluation.action_evaluation_plans_installer
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to define a new appraisal plan.\n"
+" </p><p>\n"
+" You can define appraisal plans (ex: first interview after 6\n"
+" months, then every year). Then, each employee can be linked "
+"to\n"
+" an appraisal plan so that OpenERP can automatically "
+"generate\n"
+" interview requests to managers and/or subordinates.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Action to Perform"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.evaluation,note_action:0
+msgid "Action Plan"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.ui.menu,name:hr_evaluation.menu_eval_hr_config
+msgid "Periodic Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan,month_next:0
+msgid "Periodicity of Appraisal (months)"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Significantly exceeds expectations"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "In progress"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Interview Request"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,send_answer_employee:0
+#: field:hr_evaluation.plan.phase,send_answer_manager:0
+msgid "All Answers"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr_evaluation.evaluation:0
+msgid "Answer Survey"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Group by..."
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Mail Settings"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,name:hr_evaluation.evaluation_reminders
+msgid "Appraisal Reminders"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,wait:0
+msgid ""
+"Check this box if you want to wait that all preceding phases are finished "
+"before launching this phase."
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Legend"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan,month_first:0
+msgid "First Appraisal in (months)"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,send_anonymous_employee:0
+#: field:hr_evaluation.plan.phase,send_anonymous_manager:0
+msgid "Anonymous Summary"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Pending"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.employee,evaluation_plan_id:0
+#: view:hr.evaluation.interview:0
+#: view:hr_evaluation.plan:0
+#: field:hr_evaluation.plan,name:0
+#: field:hr_evaluation.plan.phase,plan_id:0
+#: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan
+msgid "Appraisal Plan"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Print Survey"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,rating:0
+#: selection:hr_evaluation.evaluation,rating:0
+msgid "Significantly bellow expectations"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Validate Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid " (employee_name)s: Partner name"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_is_follower:0
+#: field:hr_evaluation.evaluation,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,plan_id:0
+#: view:hr_evaluation.evaluation:0
+#: field:hr_evaluation.evaluation,plan_id:0
+msgid "Plan"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan,active:0
+msgid "Active"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,send_anonymous_employee:0
+msgid "Send an anonymous summary to the employee"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.model,name:hr_evaluation.model_hr_evaluation_plan_phase
+msgid "Appraisal Plan Phase"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.employee:0
+msgid "Appraisal Interviews"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,message_summary:0
+#: field:hr_evaluation.evaluation,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Survey"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,action:0
+msgid "Action"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: selection:hr.evaluation.report,state:0
+msgid "Final Validation"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr_evaluation.evaluation,state:0
+msgid "Waiting Appreciation"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: model:ir.actions.act_window,name:hr_evaluation.action_evaluation_report_all
+#: model:ir.ui.menu,name:hr_evaluation.menu_evaluation_report_all
+msgid "Appraisal Analysis"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.evaluation,date:0
+msgid "Appraisal Deadline"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,rating:0
+msgid "Overall Rating"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr_evaluation.evaluation:0
+msgid "Interviewer"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.model,name:hr_evaluation.model_hr_evaluation_report
+msgid "Evaluations Statistics"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "Deadline Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.evaluation,rating:0
+msgid "This is the appreciation on which the evaluation is summarized."
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr_evaluation.plan.phase,action:0
+msgid "Top-Down Appraisal Requests"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "General"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan.phase,send_answer_employee:0
+msgid "Send all answers to the employee"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr.evaluation.report:0
+#: selection:hr.evaluation.report,state:0
+#: view:hr_evaluation.evaluation:0
+#: selection:hr_evaluation.evaluation,state:0
+msgid "Done"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan:0
+#: model:ir.actions.act_window,name:hr_evaluation.open_view_hr_evaluation_plan_tree
+#: model:ir.ui.menu,name:hr_evaluation.menu_open_view_hr_evaluation_plan_tree
+msgid "Appraisal Plans"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.model,name:hr_evaluation.model_hr_evaluation_interview
+msgid "Appraisal Interview"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr_evaluation.evaluation:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+msgid "In Progress"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+msgid "To Do"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+msgid "Final Validation Evaluations"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,mail_feature:0
+msgid "Send mail for this phase"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,email_subject:0
+msgid "char"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr.employee,evaluation_date:0
+msgid ""
+"The date of the next appraisal is computed by the appraisal plan's dates "
+"(first appraisal + periodicity)."
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,overpass_delay:0
+msgid "Overpassed Deadline"
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr_evaluation.plan,month_next:0
+msgid ""
+"The number of month that depicts the delay between each evaluation of this "
+"plan (after the first one)."
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr_evaluation.plan.phase,action:0
+msgid "Self Appraisal Requests"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+#: field:hr_evaluation.evaluation,survey_request_ids:0
+msgid "Appraisal Forms"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,help:hr_evaluation.open_view_hr_evaluation_tree
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to create a new appraisal.\n"
+" </p><p>\n"
+" Each employee may be assigned an Appraisal Plan. Such a "
+"plan\n"
+" defines the frequency and the way you manage your periodic\n"
+" personnel evaluation. You will be able to define steps and\n"
+" attach interviews to each step. OpenERP manages all kinds "
+"of\n"
+" evaluations: bottom-up, top-down, self-evaluation and final\n"
+" evaluation by the manager.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.evaluation:0
+msgid "Internal Notes"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr_evaluation.plan.phase,action:0
+msgid "Final Interview"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,name:0
+msgid "Phase"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr_evaluation.plan.phase,action:0
+msgid "Bottom-Up Appraisal Requests"
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr_evaluation.evaluation:0
+msgid "Interview Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:survey.request,is_evaluation:0
+msgid "Is Appraisal?"
+msgstr ""
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:320
+#, python-format
+msgid "You cannot start evaluation without Appraisal."
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.interview,user_to_review_id:0
+msgid "Employee to Interview"
+msgstr ""
+
+#. module: hr_evaluation
+#: code:addons/hr_evaluation/hr_evaluation.py:235
+#, python-format
+msgid ""
+"You cannot change state, because some appraisal(s) are in waiting answer or "
+"draft state."
+msgstr ""
+
+#. module: hr_evaluation
+#: selection:hr.evaluation.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "Appraisal Plan Phases"
+msgstr ""
+
+#. module: hr_evaluation
+#: model:ir.actions.act_window,help:hr_evaluation.action_hr_evaluation_interview_tree
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to create a new interview request related to a "
+"personal evaluation. \n"
+" </p><p>\n"
+" Interview requests are usually generated automatically by\n"
+" OpenERP according to an employee's appraisal plan. Each "
+"user\n"
+" receives automatic emails and requests to evaluate their\n"
+" colleagues periodically.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: hr_evaluation
+#: help:hr.evaluation.interview,message_ids:0
+#: help:hr_evaluation.evaluation,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.interview:0
+#: view:hr_evaluation.evaluation:0
+msgid "Search Appraisal"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.plan.phase,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr_evaluation.plan.phase:0
+msgid "(user_signature)s: User name"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:board.board:0
+#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_board
+#: model:ir.actions.act_window,name:hr_evaluation.action_hr_evaluation_interview_tree
+#: model:ir.ui.menu,name:hr_evaluation.menu_open_hr_evaluation_interview_requests
+msgid "Interview Requests"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.evaluation.report,create_date:0
+msgid "Create Date"
+msgstr ""
+
+#. module: hr_evaluation
+#: view:hr.evaluation.report:0
+#: field:hr.evaluation.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr_evaluation.evaluation,note_summary:0
+msgid "Appraisal Summary"
+msgstr ""
+
+#. module: hr_evaluation
+#: field:hr.employee,evaluation_date:0
+msgid "Next Appraisal Date"
+msgstr ""
diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py
index 15926336697..2177add8878 100644
--- a/addons/hr_expense/hr_expense.py
+++ b/addons/hr_expense/hr_expense.py
@@ -228,6 +228,8 @@ class hr_expense_expense(osv.osv):
for exp in self.browse(cr, uid, ids, context=context):
if not exp.employee_id.address_home_id:
raise osv.except_osv(_('Error!'), _('The employee must have a home address.'))
+ if not exp.employee_id.address_home_id.property_account_payable.id:
+ raise osv.except_osv(_('Error!'), _('The employee must have a payable account set on his home address.'))
company_currency = exp.company_id.currency_id.id
diff_currency_p = exp.currency_id.id <> company_currency
@@ -333,6 +335,8 @@ class hr_expense_expense(osv.osv):
acc = line.product_id.property_account_expense
if not acc:
acc = line.product_id.categ_id.property_account_expense_categ
+ if not acc:
+ raise osv.except_osv(_('Error!'), _('No purchase account found for the product %s (or for his category), please configure one.') % (line.product_id.name))
else:
acc = property_obj.get(cr, uid, 'property_account_expense_categ', 'product.category', context={'force_company': company.id})
if not acc:
diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml
index 49ea2f0ab9e..eab24b06717 100644
--- a/addons/hr_expense/hr_expense_view.xml
+++ b/addons/hr_expense/hr_expense_view.xml
@@ -112,7 +112,7 @@
<field name="date_value" string="Expense Date"/>
<field name="name"/>
<field name="ref"/>
- <field domain="[('type','in',['normal','contract']), ('parent_id','!=',False)]" name="analytic_account" groups="analytic.group_analytic_accounting"/>
+ <field domain="[('type','in',['normal','contract'])]" name="analytic_account" groups="analytic.group_analytic_accounting"/>
<field name="uom_id" on_change="onchange_uom(product_id, uom_id, context)"/>
<field name="unit_amount"/>
<field name="unit_quantity"/>
diff --git a/addons/hr_holidays/hr_holidays.py b/addons/hr_holidays/hr_holidays.py
index 8c715149ff8..4e113a23510 100644
--- a/addons/hr_holidays/hr_holidays.py
+++ b/addons/hr_holidays/hr_holidays.py
@@ -184,6 +184,16 @@ class hr_holidays(osv.osv):
('date_check2', "CHECK ( (type='add') OR (date_from <= date_to))", "The start date must be anterior to the end date."),
('date_check', "CHECK ( number_of_days_temp >= 0 )", "The number of days must be greater than 0."),
]
+
+ def copy(self, cr, uid, id, default=None, context=None):
+ if default is None:
+ default = {}
+ if context is None:
+ context = {}
+ default = default.copy()
+ default['date_from'] = False
+ default['date_to'] = False
+ return super(hr_holidays, self).copy(cr, uid, id, default, context=context)
def _create_resource_leave(self, cr, uid, leaves, context=None):
'''This method will create entry in resource calendar leave object at the time of holidays validated '''
diff --git a/addons/hr_payroll_account/i18n/cs.po b/addons/hr_payroll_account/i18n/cs.po
new file mode 100644
index 00000000000..f981b32d5e1
--- /dev/null
+++ b/addons/hr_payroll_account/i18n/cs.po
@@ -0,0 +1,126 @@
+# Czech 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-03-31 16:50+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: hr_payroll_account
+#: field:hr.salary.rule,account_credit:0
+msgid "Credit Account"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:103
+#, python-format
+msgid "Payslip of %s"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:156
+#, python-format
+msgid ""
+"The Expense Journal \"%s\" has not properly configured the Credit Account!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,move_id:0
+msgid "Accounting Entry"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:172
+#, python-format
+msgid ""
+"The Expense Journal \"%s\" has not properly configured the Debit Account!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.salary.rule,account_tax_id:0
+msgid "Tax Code"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.payslip,period_id:0
+msgid "Force Period"
+msgstr ""
+
+#. module: hr_payroll_account
+#: help:hr.payslip,period_id:0
+msgid "Keep empty to use the period of the validation(Payslip) date."
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_contract
+msgid "Contract"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.contract,analytic_account_id:0
+#: field:hr.salary.rule,analytic_account_id:0
+msgid "Analytic Account"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.salary.rule,account_debit:0
+msgid "Debit Account"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_run
+msgid "Payslip Batches"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip_employees
+msgid "Generate payslips for all selected employees"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:156
+#: code:addons/hr_payroll_account/hr_payroll_account.py:172
+#, python-format
+msgid "Configuration Error!"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_salary_rule
+msgid "hr.salary.rule"
+msgstr ""
+
+#. module: hr_payroll_account
+#: view:hr.contract:0
+#: view:hr.salary.rule:0
+msgid "Accounting"
+msgstr ""
+
+#. module: hr_payroll_account
+#: model:ir.model,name:hr_payroll_account.model_hr_payslip
+msgid "Pay Slip"
+msgstr ""
+
+#. module: hr_payroll_account
+#: code:addons/hr_payroll_account/hr_payroll_account.py:158
+#: code:addons/hr_payroll_account/hr_payroll_account.py:174
+#, python-format
+msgid "Adjustment Entry"
+msgstr ""
+
+#. module: hr_payroll_account
+#: field:hr.contract,journal_id:0
+#: field:hr.payslip,journal_id:0
+#: field:hr.payslip.run,journal_id:0
+msgid "Salary Journal"
+msgstr ""
diff --git a/addons/hr_recruitment/hr_recruitment.py b/addons/hr_recruitment/hr_recruitment.py
index deccf10619f..b0b60db6bd5 100644
--- a/addons/hr_recruitment/hr_recruitment.py
+++ b/addons/hr_recruitment/hr_recruitment.py
@@ -487,6 +487,12 @@ class hr_applicant(base_stage, osv.Model):
"""
return self.set_priority(cr, uid, ids, '3')
+ def get_empty_list_help(self, cr, uid, help, context=None):
+ context['empty_list_help_model'] = 'hr.job'
+ context['empty_list_help_id'] = context.get('default_job_id', None)
+ context['empty_list_help_document_name'] = _("job applicants")
+ return super(hr_applicant, self).get_empty_list_help(cr, uid, help, context=context)
+
class hr_job(osv.osv):
_inherit = "hr.job"
diff --git a/addons/hr_recruitment/hr_recruitment_menu.xml b/addons/hr_recruitment/hr_recruitment_menu.xml
index dbd4335d730..c280f64105c 100644
--- a/addons/hr_recruitment/hr_recruitment_menu.xml
+++ b/addons/hr_recruitment/hr_recruitment_menu.xml
@@ -10,17 +10,13 @@
<field name="view_id" eval="False"/>
<field name="search_view_id" ref="view_crm_case_jobs_filter"/>
<field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to add a new job applicant.
- </p><p>
+ <p>
OpenERP helps you track applicants in the recruitment
process and follow up all operations: meetings, interviews, etc.
</p><p>
- If you setup the email gateway, applicants and their attached
- CV are created automatically when an email is sent to
- jobs@yourcompany.com. If you install the document management
- modules, all resumes are indexed automatically, so that you can
- easily search through their content.
+ Applicants and their attached CV are created automatically when an email is sent.
+ If you install the document management modules, all resumes are indexed automatically,
+ so that you can easily search through their content.
</p>
</field>
</record>
diff --git a/addons/hr_recruitment/hr_recruitment_view.xml b/addons/hr_recruitment/hr_recruitment_view.xml
index ccf5c8f7934..b531677d538 100644
--- a/addons/hr_recruitment/hr_recruitment_view.xml
+++ b/addons/hr_recruitment/hr_recruitment_view.xml
@@ -312,11 +312,17 @@
attrs="{'invisible':[('survey_id','=',False)]}"/>
</div>
</field>
- <xpath expr="//div[@class='oe_title']" version="7.0" position="after">
- <div attrs="{'invisible': [('alias_domain', '=', False)]}">
- <field name="alias_id" invisible="1" required="0"/>
- <label for="alias_name" class="oe_edit_only"/>
- <field name="alias_name" nolabel="1" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" nolabel="1" class="oe_inline"/>
+ <xpath expr="//div[@class='oe_title']//h1" position="after">
+ <div name="group_alias"
+ attrs="{'invisible': [('alias_domain', '=', False)]}">
+ <label for="alias_id" string="Email Alias"/>
+ <field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
+ <span name="edit_alias" class="oe_edit_only">
+ <field name="alias_name" class="oe_inline"
+ attrs="{'required': [('alias_id', '!=', False)]}"/>
+ @
+ <field name="alias_domain" class="oe_inline" readonly="1"/>
+ </span>
</div>
</xpath>
</field>
diff --git a/addons/hr_recruitment/i18n/cs.po b/addons/hr_recruitment/i18n/cs.po
new file mode 100644
index 00000000000..c5ac49a5b6d
--- /dev/null
+++ b/addons/hr_recruitment/i18n/cs.po
@@ -0,0 +1,1261 @@
+# Czech translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-03-31 16:50+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: hr_recruitment
+#: help:hr.applicant,active:0
+msgid ""
+"If the active field is set to false, it will allow you to hide the case "
+"without removing it."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: field:hr.recruitment.stage,requirements:0
+msgid "Requirements"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Application Summary"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Start Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Mobile:"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.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 ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_graduate
+msgid "Graduate"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Group By..."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Filter and view on next actions and date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,department_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,department_id:0
+msgid "Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_action:0
+msgid "Next Action Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_expected_extra:0
+msgid "Expected Salary Extra"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Pending Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,company_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.source:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_source_action
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_source
+msgid "Sources of Applicants"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:445
+#, python-format
+msgid "You must define Applied Job for this applicant."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Job"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.partner.create,close:0
+msgid "Close job request"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,help:hr_recruitment.crm_case_categ0_act_job
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a new job applicant.\n"
+" </p><p>\n"
+" OpenERP helps you track applicants in the recruitment\n"
+" process and follow up all operations: meetings, interviews, "
+"etc.\n"
+" </p><p>\n"
+" If you setup the email gateway, applicants and their "
+"attached\n"
+" CV are created automatically when an email is sent to\n"
+" jobs@yourcompany.com. If you install the document "
+"management\n"
+" modules, all resumes are indexed automatically, so that you "
+"can\n"
+" easily search through their content.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.crm_case_categ0_act_job
+#: model:ir.ui.menu,name:hr_recruitment.menu_crm_case_categ0_act_job
+msgid "Applications"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,emp_id:0
+msgid "employee"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.config.settings,fetchmail_applicants:0
+msgid "Create applicants from an incoming email account"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_partner_create
+msgid "Create Contact"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Refuse"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_licenced
+msgid "Master Degree"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Next Actions"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:38
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:56
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_bac5
+msgid "Doctoral Degree"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,job_id:0
+#: field:hr.recruitment.report,job_id:0
+msgid "Applied Job"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,department_id:0
+msgid ""
+"Stages of the recruitment process may be different per department. If this "
+"stage is common to all departments, keep this field empty."
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.act_hr_applicant_to_meeting
+msgid "Meetings"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_applicants_status
+msgid "Applicants Status"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "My Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.job,survey_id:0
+msgid "Interview Form"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.job,survey_id:0
+msgid ""
+"Choose an interview form for this job position and you will be able to "
+"print/answer this interview from all applicants who apply for this job"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_recruitment
+msgid "Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,message_summary:0
+msgid ""
+"Holds the Chatter summary (number of messages, ...). This summary is "
+"directly in html format in order to be inserted in kanban views."
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:445
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,salary_prop:0
+msgid "Salary Proposed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Avg Proposed Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,availability:0
+#: field:hr.recruitment.report,available:0
+msgid "Availability"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_proposed:0
+#: view:hr.recruitment.report:0
+msgid "Proposed Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_source
+msgid "Source of Applicants"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Convert To Partner"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_report
+msgid "Recruitments Statistics"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Print interview report"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Hired employees"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_job
+msgid "Job Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,source_id:0
+msgid "Source"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.source,name:hr_recruitment.source_monster
+msgid "Monster"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,name:hr_recruitment.mt_applicant_hired
+msgid "Applicant Hired"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,help:hr_recruitment.hr_job_stage_act
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a new stage in the recruitment process.\n"
+" </p><p>\n"
+" Define here your stages of the recruitment process, for "
+"example:\n"
+" qualification call, first interview, second interview, refused,\n"
+" hired.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Available"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,title_action:0
+msgid "Next Action"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.job,alias_id:0
+msgid ""
+"Email alias for this job position. New emails will automatically create new "
+"applicants for this job position."
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,create_date:0
+#: view:hr.recruitment.report:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_hired_employee
+#: model:ir.model,name:hr_recruitment.model_hired_employee
+msgid "Create Employee"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,priority:0
+#: field:hr.recruitment.report,priority:0
+msgid "Appreciation"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job1
+msgid "Initial Qualification"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Print Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,stage_id:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,stage_id:0
+#: view:hr.recruitment.stage:0
+msgid "Stage"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job3
+msgid "Second Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_job_stage_act
+msgid "Recruitment / Applicants Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_expected:0
+#: view:hr.recruitment.report:0
+msgid "Expected Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Applicants"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:360
+#, python-format
+msgid "No Subject"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,salary_exp:0
+msgid "Salary Expected"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_applicant
+msgid "Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,sequence:0
+msgid "Gives the sequence order when displaying a list of stages."
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:347
+#: field:hr.applicant,partner_id:0
+#, python-format
+msgid "Contact"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_expected_extra:0
+msgid "Salary Expected by Applicant, extra advantages"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,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 ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_stage_act
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_stage
+msgid "Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Draft recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Delete"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "In progress"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Hire & Create Employee"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,description:hr_recruitment.mt_applicant_hired
+msgid "Applicant hired"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Jobs - Recruitment Form"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,probability:0
+msgid "Probability"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:39
+#, python-format
+msgid "A contact is already defined on this job request."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,categ_ids:0
+msgid "Tags"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_applicant_category
+msgid "Category of applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Answer related job question"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job2
+msgid "First Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+msgid "Yes"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+#: view:hr.recruitment.partner.create:0
+msgid "or"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,name:hr_recruitment.mt_applicant_refused
+msgid "Applicant Refused"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule Meeting"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_name:0
+msgid "Applicant's Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Very Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,user_email:0
+msgid "User Email"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Group By ..."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+msgid "No"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_expected:0
+msgid "Salary Expected by Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "All Initial Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,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 ""
+
+#. module: hr_recruitment
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_degree
+msgid "Degrees"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date_closed:0
+#: field:hr.recruitment.report,date_closed:0
+msgid "Closed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.stage:0
+msgid "Stage Definition"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_proposed:0
+msgid "Salary Proposed by the Organisation"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+#: selection:hr.recruitment.stage,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,state:0
+#: field:hr.recruitment.report,state:0
+#: field:hr.recruitment.stage,state:0
+msgid "Status"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule interview with this applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/hr_recruitment.py:407
+#, python-format
+msgid "Applicant <b>created</b>"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,type_id:0
+#: view:hr.recruitment.degree:0
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,type_id:0
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_degree_action
+msgid "Degree"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,partner_phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,user_id:0
+msgid "User"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Excellent"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,active:0
+msgid "Active"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,nbr:0
+msgid "# of Applications"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,help:hr_recruitment.hr_recruitment_stage_act
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a new stage in the recruitment process.\n"
+" </p><p>\n"
+" Don't forget to specify the department if your recruitment "
+"process\n"
+" is different according to the job position.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,response:0
+msgid "Response"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.config.settings,module_document_ftp:0
+msgid "Allow the automatic indexation of resumes"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,salary_proposed_extra:0
+msgid "Proposed Salary Extra"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: hr_recruitment
+#: code:addons/hr_recruitment/wizard/hr_recruitment_create_partner_job.py:56
+#, python-format
+msgid "A contact is already existing with the same name."
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,name:hr_recruitment.hr_recruitment_stage_form_installer
+msgid "Review Recruitment Stages"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contact:"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Search Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,date:0
+#: field:hr.recruitment.report,date:0
+msgid "Date"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,survey:0
+msgid "Survey"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+msgid "Would you like to create an employee ?"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Degree:"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Extended Filters..."
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.actions.act_window,help:hr_recruitment.hr_recruitment_stage_form_installer
+msgid ""
+"Check if the following stages are matching your recruitment process. Don't "
+"forget to specify the department if your recruitment process is different "
+"according to the job position."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.config.settings:0
+msgid "Configure"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job4
+msgid "Contract Proposed"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.source,name:hr_recruitment.source_website_company
+msgid "Company Website"
+msgstr ""
+
+#. module: hr_recruitment
+#: sql_constraint:hr.recruitment.degree:0
+msgid "The name of the Degree of Recruitment must be unique!"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: field:hr.recruitment.report,year:0
+msgid "Year"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+#: view:hr.recruitment.partner.create:0
+msgid "Cancel"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.partner.create:0
+msgid "Are you sure you want to create a contact based on this job request ?"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.config.settings,fetchmail_applicants:0
+msgid ""
+"Allow applicants to send their job application to an email address "
+"(jobs@mycompany.com),\n"
+" and create automatically application documents in the system."
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: selection:hr.recruitment.stage,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Subject / Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.degree,sequence:0
+msgid "Gives the sequence order when displaying a list of degrees."
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,description:hr_recruitment.mt_stage_changed
+msgid "Stage changed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: field:hr.applicant,user_id:0
+#: view:hr.recruitment.report:0
+msgid "Responsible"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+#: model:ir.actions.act_window,name:hr_recruitment.action_hr_recruitment_report_all
+#: model:ir.ui.menu,name:hr_recruitment.menu_hr_recruitment_report_all
+msgid "Recruitment Analysis"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hired.employee:0
+msgid "Create New Employee"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.source,name:hr_recruitment.source_linkedin
+msgid "LinkedIn"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,name:hr_recruitment.mt_job_new_applicant
+msgid "New Applicant"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_stage
+msgid "Stage of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Cases By Stage and Estimates"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+#: selection:hr.recruitment.stage,state:0
+msgid "New"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:crm.meeting.type,name:hr_recruitment.categ_meet_interview
+#: view:hr.job:0
+msgid "Interview"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.source,name:0
+msgid "Source Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Day(s)"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,description:0
+msgid "Description"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,name:hr_recruitment.mt_stage_changed
+msgid "Stage Changed"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job5
+msgid "Contract Signed"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.source,name:hr_recruitment.source_word
+msgid "Word of Mouth"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.stage,fold:0
+msgid "Hide in views if empty"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.config.settings,module_document_ftp:0
+msgid ""
+"Manage your CV's and motivation letter related to all applicants.\n"
+" This installs the module document_ftp. This will install the "
+"knowledge management module in order to allow you to search using specific "
+"keywords through the content of all documents (PDF, .DOCx...)"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,state:0
+#: selection:hr.recruitment.report,state:0
+#: model:hr.recruitment.stage,name:hr_recruitment.stage_job6
+#: selection:hr.recruitment.stage,state:0
+msgid "Refused"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,state:0
+#: view:hr.recruitment.report:0
+#: selection:hr.recruitment.report,state:0
+#: selection:hr.recruitment.stage,state:0
+msgid "Hired"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,reference:0
+msgid "Referred By"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Departement:"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "On Average"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_degree
+msgid "Degree of Recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,salary_prop_avg:0
+msgid "Avg. Proposed Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Open Jobs"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.applicant,priority:0
+#: selection:hr.recruitment.report,priority:0
+msgid "Not Good"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant_category,name:0
+#: field:hr.recruitment.degree,name:0
+#: field:hr.recruitment.stage,name:0
+msgid "Name"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.report,salary_exp_avg:0
+msgid "Avg. Expected Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Avg Expected Salary"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_recruitment_partner_create
+msgid "Create Partner from job application"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.job,alias_id:0
+msgid "Alias"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "Pending recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Contract"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.applicant,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:mail.message.subtype,description:hr_recruitment.mt_applicant_refused
+msgid "Applicant refused"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.stage,department_id:0
+msgid "Specific to a Department"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.recruitment.report:0
+msgid "In progress recruitment"
+msgstr ""
+
+#. module: hr_recruitment
+#: field:hr.recruitment.degree,sequence:0
+#: field:hr.recruitment.stage,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:hr.recruitment.degree,name:hr_recruitment.degree_bachelor
+msgid "Bachelor Degree"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Unassigned Recruitments"
+msgstr ""
+
+#. module: hr_recruitment
+#: model:ir.model,name:hr_recruitment.model_hr_config_settings
+msgid "hr.config.settings"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.stage,state:0
+msgid ""
+"The related status for the stage. The status of your document will "
+"automatically change according to the selected stage. Example, a stage is "
+"related to the status 'Close', when your document reach this stage, it will "
+"be automatically closed."
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.applicant,salary_proposed_extra:0
+msgid "Salary Proposed by the Organisation, extra advantages"
+msgstr ""
+
+#. module: hr_recruitment
+#: help:hr.recruitment.report,delay_close:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: hr_recruitment
+#: selection:hr.recruitment.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:board.board:0
+msgid "Applications to be Processed"
+msgstr ""
+
+#. module: hr_recruitment
+#: view:hr.applicant:0
+msgid "Schedule Interview"
+msgstr ""
diff --git a/addons/lunch/lunch.py b/addons/lunch/lunch.py
index 9f18c391eec..efad6fd6944 100644
--- a/addons/lunch/lunch.py
+++ b/addons/lunch/lunch.py
@@ -169,7 +169,7 @@ class lunch_order(osv.Model):
line_ref = self.pool.get("lunch.order.line")
if view_type == 'form':
doc = etree.XML(res['arch'])
- pref_ids = line_ref.search(cr, uid, [('user_id', '=', uid)], order='create_date desc', context=context)
+ pref_ids = line_ref.search(cr, uid, [('user_id', '=', uid)], order='id desc', context=context)
xml_start = etree.Element("div")
#If there are no preference (it's the first time for the user)
if len(pref_ids)==0:
@@ -215,63 +215,70 @@ class lunch_order(osv.Model):
currency = self.pool.get('res.users').browse(cr, uid, uid, context=context).company_id.currency_id
#For each preferences that we get, we will create the XML structure
- for key,value in categories.items():
+ for key, value in categories.items():
xml_pref_1 = etree.Element("div")
- xml_pref_1.set('class','oe_lunch_30pc')
+ xml_pref_1.set('class', 'oe_lunch_30pc')
xml_pref_2 = etree.Element("h2")
xml_pref_2.text = key
xml_pref_1.append(xml_pref_2)
i = 0
value = value.values()
+ #TODO: sorted_values is used for a quick and dirty hack in order to display the 5 last orders of each categories.
+ #It would be better to fetch only the 5 items to display instead of fetching everything then sorting them in order to keep only the 5 last.
+ #NB: The note could also be ignored + we could fetch the preferences on the most ordered products instead of the last ones...
+ sorted_values = {}
for val in value:
- for pref in val.values():
- #We only show 5 preferences per category (or it will be too long)
- if i==5: break
- i+=1
- xml_pref_3 = etree.Element("div")
- xml_pref_3.set('class','oe_lunch_vignette')
- xml_pref_1.append(xml_pref_3)
-
- xml_pref_4 = etree.Element("span")
- xml_pref_4.set('class','oe_lunch_button')
- xml_pref_3.append(xml_pref_4)
-
- xml_pref_5 = etree.Element("button")
- xml_pref_5.set('name',"add_preference_"+str(pref.id))
- xml_pref_5.set('class','oe_link oe_i oe_button_plus')
- xml_pref_5.set('type','object')
- xml_pref_5.set('string','+')
- xml_pref_4.append(xml_pref_5)
-
- xml_pref_6 = etree.Element("button")
- xml_pref_6.set('name',"add_preference_"+str(pref.id))
- xml_pref_6.set('class','oe_link oe_button_add')
- xml_pref_6.set('type','object')
- xml_pref_6.set('string',_("Add"))
- xml_pref_4.append(xml_pref_6)
-
- xml_pref_7 = etree.Element("div")
- xml_pref_7.set('class','oe_group_text_button')
- xml_pref_3.append(xml_pref_7)
-
- xml_pref_8 = etree.Element("div")
- xml_pref_8.set('class','oe_lunch_text')
- xml_pref_8.text = escape(pref.product_id.name)+str(" ")
- xml_pref_7.append(xml_pref_8)
-
- price = pref.product_id.price or 0.0
- cur = currency.name or ''
- xml_pref_9 = etree.Element("span")
- xml_pref_9.set('class','oe_tag')
- xml_pref_9.text = str(price)+str(" ")+cur
- xml_pref_8.append(xml_pref_9)
-
- xml_pref_10 = etree.Element("div")
- xml_pref_10.set('class','oe_grey')
- xml_pref_10.text = escape(pref.note or '')
- xml_pref_3.append(xml_pref_10)
-
- xml_start.append(xml_pref_1)
+ for elmt in val.values():
+ sorted_values[elmt.id] = elmt
+ for key, pref in sorted(sorted_values.iteritems(), key=lambda (k, v): (k, v), reverse=True):
+ #We only show 5 preferences per category (or it will be too long)
+ if i == 5:
+ break
+ i += 1
+ xml_pref_3 = etree.Element("div")
+ xml_pref_3.set('class','oe_lunch_vignette')
+ xml_pref_1.append(xml_pref_3)
+
+ xml_pref_4 = etree.Element("span")
+ xml_pref_4.set('class','oe_lunch_button')
+ xml_pref_3.append(xml_pref_4)
+
+ xml_pref_5 = etree.Element("button")
+ xml_pref_5.set('name',"add_preference_"+str(pref.id))
+ xml_pref_5.set('class','oe_link oe_i oe_button_plus')
+ xml_pref_5.set('type','object')
+ xml_pref_5.set('string','+')
+ xml_pref_4.append(xml_pref_5)
+
+ xml_pref_6 = etree.Element("button")
+ xml_pref_6.set('name',"add_preference_"+str(pref.id))
+ xml_pref_6.set('class','oe_link oe_button_add')
+ xml_pref_6.set('type','object')
+ xml_pref_6.set('string',_("Add"))
+ xml_pref_4.append(xml_pref_6)
+
+ xml_pref_7 = etree.Element("div")
+ xml_pref_7.set('class','oe_group_text_button')
+ xml_pref_3.append(xml_pref_7)
+
+ xml_pref_8 = etree.Element("div")
+ xml_pref_8.set('class','oe_lunch_text')
+ xml_pref_8.text = escape(pref.product_id.name)+str(" ")
+ xml_pref_7.append(xml_pref_8)
+
+ price = pref.product_id.price or 0.0
+ cur = currency.name or ''
+ xml_pref_9 = etree.Element("span")
+ xml_pref_9.set('class','oe_tag')
+ xml_pref_9.text = str(price)+str(" ")+cur
+ xml_pref_8.append(xml_pref_9)
+
+ xml_pref_10 = etree.Element("div")
+ xml_pref_10.set('class','oe_grey')
+ xml_pref_10.text = escape(pref.note or '')
+ xml_pref_3.append(xml_pref_10)
+
+ xml_start.append(xml_pref_1)
first_node = doc.xpath("//div[@name='preferences']")
if first_node and len(first_node)>0:
diff --git a/addons/mail/mail_alias.py b/addons/mail/mail_alias.py
index dab6621824c..f806b325291 100644
--- a/addons/mail/mail_alias.py
+++ b/addons/mail/mail_alias.py
@@ -117,8 +117,13 @@ class mail_alias(osv.Model):
mail catchall domain from config.
e.g. `jobs@openerp.my.openerp.com` or `sales@openerp.my.openerp.com`
"""
- return [(record['id'], "%s@%s" % (record['alias_name'], record['alias_domain']))
- for record in self.read(cr, uid, ids, ['alias_name', 'alias_domain'], context=context)]
+ res = []
+ for record in self.browse(cr, uid, ids, context=context):
+ if record.alias_name and record.alias_domain:
+ res.append((record['id'], "%s@%s" % (record.alias_name, record.alias_domain)))
+ else:
+ res.append((record['id'], False))
+ return res
def _find_unique(self, cr, uid, name, context=None):
"""Find a unique alias name similar to ``name``. If ``name`` is
diff --git a/addons/mail/mail_group.py b/addons/mail/mail_group.py
index 24aed942b1b..977608f487e 100644
--- a/addons/mail/mail_group.py
+++ b/addons/mail/mail_group.py
@@ -144,11 +144,19 @@ class mail_group(osv.Model):
search_ref = self.pool.get('ir.model.data').get_object_reference(cr, uid, 'mail', 'view_message_search')
params = {
'search_view_id': search_ref and search_ref[1] or False,
- 'domain': [('model', '=', 'mail.group'), ('res_id', '=', mail_group_id)],
- 'context': {'default_model': 'mail.group', 'default_res_id': mail_group_id, 'search_default_message_unread': True},
+ 'domain': [
+ ('model', '=', 'mail.group'),
+ ('res_id', '=', mail_group_id),
+ ],
+ 'context': {
+ 'default_model': 'mail.group',
+ 'default_res_id': mail_group_id,
+ },
'res_model': 'mail.message',
'thread_level': 1,
- 'header_description': self._generate_header_description(cr, uid, group, context=context)
+ 'header_description': self._generate_header_description(cr, uid, group, context=context),
+ 'view_mailbox': True,
+ 'compose_placeholder': 'Send a message to the group',
}
cobj = self.pool.get('ir.actions.client')
newref = cobj.copy(cr, SUPERUSER_ID, ref[1], default={'params': str(params), 'name': vals['name']}, context=context)
diff --git a/addons/mail/mail_group_view.xml b/addons/mail/mail_group_view.xml
index 77c0b8f6c86..04212b2f58a 100644
--- a/addons/mail/mail_group_view.xml
+++ b/addons/mail/mail_group_view.xml
@@ -7,7 +7,6 @@
<field name="tag">mail.wall</field>
<field name="res_model">mail.message</field>
<field name="context">{
- 'search_default_message_unread': True
}</field>
<field name="params">{
'read_action': 'read'
@@ -30,6 +29,7 @@
<field name="message_is_follower"/>
<field name="message_summary"/>
<field name="description"/>
+ <field name="alias_id"/>
<templates>
<t t-name="kanban-description">
<div class="oe_group_description" t-if="record.description.raw_value">
@@ -43,6 +43,9 @@
</div>
<div class="oe_group_details">
<h4><a type="open"><field name="name"/></a></h4>
+ <div class="oe_kanban_alias" t-if="record.alias_id.value">
+ <span class="oe_e">%%</span><small><field name="alias_id"/></small>
+ </div>
<div class="oe_grey">
<field name="description"/>
</div>
@@ -69,39 +72,43 @@
<field name="arch" type="xml">
<form string="Group Form" version="7.0">
<sheet class="openerp_mail_group_sheet">
- <field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_medium"}'/>
+ <field name="image" widget='image' class="oe_avatar oe_left" options='{"preview_image": "image_small"}'/>
<div class="oe_title">
<div class="oe_edit_only">
<label for="name" string="Group Name"/>
</div>
<h1><field name="name" readonly="0"/></h1>
- <div name="alias_box" colspan="4" attrs="{'invisible': [('alias_domain', '=', False)]}">
- <field name="alias_id" invisible="1" required="0"/>
- <label for="alias_name" class="oe_edit_only"/>
- <field name="alias_name" nolabel="1" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" nolabel="1" class="oe_inline"/>
+ <div name="group_alias"
+ attrs="{'invisible': [('alias_domain', '=', False)]}">
+ <label for="alias_id" string="Email Alias"/>
+ <field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
+ <span name="edit_alias" class="oe_edit_only">
+ <field name="alias_name" class="oe_inline"
+ attrs="{'required': [('alias_id', '!=', False)]}"/>
+ @
+ <field name="alias_domain" class="oe_inline" readonly="1"/>
+ </span>
</div>
- <field name="description" placeholder="Topics discussed in this group..."/>
</div>
+ <field name="description" placeholder="Topics discussed in this group..."/>
<div class="oe_clear"/>
- <group>
- <group class="oe_edit_only">
- <field name="public"/>
- <field name="group_public_id"
- attrs="{'invisible': [('public','&lt;&gt;','groups')], 'required': [('public','=','groups')]}"
- />
- <field name="group_ids" widget="many2many_tags"/>
- </group>
- <group>
- <div class="oe_grey" attrs="{'invisible': [('public','&lt;&gt;','public')]}">
- This group is visible by everyone,
- including your customers if you installed
- the portal module.
- </div>
- <div class="oe_grey" attrs="{'invisible': [('public','&lt;&gt;','private')]}">
- Only the invited followers can read the
- discussions on this group.
- </div>
- </group>
+ <group class="oe_edit_only">
+ <field name="public"/>
+ <field name="group_public_id"
+ attrs="{'invisible': [('public','&lt;&gt;','groups')], 'required': [('public','=','groups')]}"
+ />
+ <field name="group_ids" widget="many2many_tags"/>
+ </group>
+ <group attrs="{'invisible': [('public', 'not in', ['public', 'private'])]}">
+ <div class="oe_grey" attrs="{'invisible': [('public','&lt;&gt;','public')]}">
+ This group is visible by everyone,
+ including your customers if you installed
+ the portal module.
+ </div>
+ <div class="oe_grey" attrs="{'invisible': [('public','&lt;&gt;','private')]}">
+ Only the invited followers can read the
+ discussions on this group.
+ </div>
</group>
</sheet>
<div class="oe_chatter">
diff --git a/addons/mail/mail_mail.py b/addons/mail/mail_mail.py
index 8bcc8b0a91c..3c30a950230 100644
--- a/addons/mail/mail_mail.py
+++ b/addons/mail/mail_mail.py
@@ -256,7 +256,19 @@ class mail_mail(osv.Model):
body = self.send_get_mail_body(cr, uid, mail, partner=partner, context=context)
subject = self.send_get_mail_subject(cr, uid, mail, partner=partner, context=context)
body_alternative = tools.html2plaintext(body)
- email_to = ['%s <%s>' % (partner.name, partner.email)] if partner else tools.email_split(mail.email_to)
+
+ # generate email_to, heuristic:
+ # 1. if 'partner' is specified and there is a related document: Followers of 'Doc' <email>
+ # 2. if 'partner' is specified, but no related document: Partner Name <email>
+ # 3; fallback on mail.email_to that we split to have an email addresses list
+ if partner and mail.record_name:
+ sanitized_record_name = re.sub(r'[^\w+.]+', '-', mail.record_name)
+ email_to = [_('"Followers of %s" <%s>') % (sanitized_record_name, partner.email)]
+ elif partner:
+ email_to = ['%s <%s>' % (partner.name, partner.email)]
+ else:
+ email_to = tools.email_split(mail.email_to)
+
return {
'body': body,
'body_alternative': body_alternative,
diff --git a/addons/mail/mail_message.py b/addons/mail/mail_message.py
index dd5ebc8b48b..05e9619797a 100644
--- a/addons/mail/mail_message.py
+++ b/addons/mail/mail_message.py
@@ -268,19 +268,25 @@ class mail_message(osv.Model):
domain = [('partner_id', '=', user_pid), ('message_id', 'in', msg_ids)]
if not create_missing:
domain += [('starred', '=', not starred)]
+ values = {
+ 'starred': starred
+ }
+ if starred:
+ values['read'] = False
+
notif_ids = notification_obj.search(cr, uid, domain, context=context)
# all message have notifications: already set them as (un)starred
if len(notif_ids) == len(msg_ids) or not create_missing:
- notification_obj.write(cr, uid, notif_ids, {'starred': starred}, context=context)
+ notification_obj.write(cr, uid, notif_ids, values, context=context)
return starred
# some messages do not have notifications: find which one, create notification, update starred status
notified_msg_ids = [notification.message_id.id for notification in notification_obj.browse(cr, uid, notif_ids, context=context)]
to_create_msg_ids = list(set(msg_ids) - set(notified_msg_ids))
for msg_id in to_create_msg_ids:
- notification_obj.create(cr, uid, {'partner_id': user_pid, 'starred': starred, 'message_id': msg_id}, context=context)
- notification_obj.write(cr, uid, notif_ids, {'starred': starred}, context=context)
+ notification_obj.create(cr, uid, dict(values, partner_id=user_pid, message_id=msg_id), context=context)
+ notification_obj.write(cr, uid, notif_ids, values, context=context)
return starred
#------------------------------------------------------
diff --git a/addons/mail/mail_thread.py b/addons/mail/mail_thread.py
index b082a52a9a9..e8ca1ec4184 100644
--- a/addons/mail/mail_thread.py
+++ b/addons/mail/mail_thread.py
@@ -89,6 +89,46 @@ class mail_thread(osv.AbstractModel):
# :param function lambda: returns whether the tracking should record using this subtype
_track = {}
+ def get_empty_list_help(self, cr, uid, help, context=None):
+ """ Override of BaseModel.get_empty_list_help() to generate an help message
+ that adds alias information. """
+ model = context.get('empty_list_help_model')
+ res_id = context.get('empty_list_help_id')
+ ir_config_parameter = self.pool.get("ir.config_parameter")
+ catchall_domain = ir_config_parameter.get_param(cr, uid, "mail.catchall.domain", context=context)
+ document_name = context.get('empty_list_help_document_name', _('document'))
+ alias = None
+
+ if catchall_domain and model and res_id: # specific res_id -> find its alias (i.e. section_id specified)
+ object_id = self.pool.get(model).browse(cr, uid, res_id, context=context)
+ alias = object_id.alias_id
+ elif catchall_domain and model: # no specific res_id given -> generic help message, take an example alias (i.e. alias of some section_id)
+ model_id = self.pool.get('ir.model').search(cr, uid, [("model", "=", self._name)], context=context)[0]
+ alias_obj = self.pool.get('mail.alias')
+ alias_ids = alias_obj.search(cr, uid, [("alias_model_id", "=", model_id)], context=context, limit=1, order='id ASC')
+ if alias_ids:
+ alias = alias_obj.browse(cr, uid, alias_ids[0], context=context)
+
+ if alias:
+ alias_email = alias.name_get()[0][1]
+ return _("""<p class='oe_view_nocontent_create'>
+ Click here to add a new %(document)s or send an email to: <a href='mailto:%(email)s'>%(email)s</a>
+ </p>
+ %(static_help)s"""
+ ) % {
+ 'document': document_name,
+ 'email': alias_email,
+ 'static_help': help or ''
+ }
+
+ if document_name != 'document' and help and help.find("oe_view_nocontent_create") == -1:
+ return _("<p class='oe_view_nocontent_create'>Click here to add a new %(document)s</p>%(static_help)s") % {
+ 'document': document_name,
+ 'static_help': help or '',
+ }
+
+ return help
+
def _get_message_data(self, cr, uid, ids, name, args, context=None):
""" Computes:
- message_unread: has uid unread message for the document
@@ -468,6 +508,8 @@ class mail_thread(osv.AbstractModel):
"""
assert isinstance(message, Message), 'message must be an email.message.Message at this point'
message_id = message.get('Message-Id')
+ email_from = decode_header(message, 'From')
+ email_to = decode_header(message, 'To')
references = decode_header(message, 'References')
in_reply_to = decode_header(message, 'In-Reply-To')
@@ -481,8 +523,8 @@ class mail_thread(osv.AbstractModel):
if thread_id and model in self.pool:
model_obj = self.pool[model]
if model_obj.exists(cr, uid, thread_id) and hasattr(model_obj, 'message_update'):
- _logger.debug('Routing mail with Message-Id %s: direct reply to model: %s, thread_id: %s, custom_values: %s, uid: %s',
- message_id, model, thread_id, custom_values, uid)
+ _logger.info('Routing mail from %s to %s with Message-Id %s: direct reply to model: %s, thread_id: %s, custom_values: %s, uid: %s',
+ email_from, email_to, message_id, model, thread_id, custom_values, uid)
return [(model, thread_id, custom_values, uid)]
# Verify whether this is a reply to a private message
@@ -493,8 +535,8 @@ class mail_thread(osv.AbstractModel):
], limit=1, context=context)
if message_ids:
message = self.pool.get('mail.message').browse(cr, uid, message_ids[0], context=context)
- _logger.debug('Routing mail with Message-Id %s: direct reply to a private message: %s, custom_values: %s, uid: %s',
- message_id, message.id, custom_values, uid)
+ _logger.info('Routing mail from %s to %s with Message-Id %s: direct reply to a private message: %s, custom_values: %s, uid: %s',
+ email_from, email_to, message_id, message.id, custom_values, uid)
return [(message.model, message.res_id, custom_values, uid)]
# 2. Look for a matching mail.alias entry
@@ -521,10 +563,11 @@ class mail_thread(osv.AbstractModel):
# Note: recognized partners will be added as followers anyway
# user_id = self._message_find_user_id(cr, uid, message, context=context)
user_id = uid
- _logger.debug('No matching user_id for the alias %s', alias.alias_name)
+ _logger.info('No matching user_id for the alias %s', alias.alias_name)
routes.append((alias.alias_model_id.model, alias.alias_force_thread_id, \
eval(alias.alias_defaults), user_id))
- _logger.debug('Routing mail with Message-Id %s: direct alias match: %r', message_id, routes)
+ _logger.info('Routing mail from %s to %s with Message-Id %s: direct alias match: %r',
+ email_from, email_to, message_id, routes)
return routes
# 3. Fallback to the provided parameters, if they work
@@ -539,14 +582,14 @@ class mail_thread(osv.AbstractModel):
except:
thread_id = False
assert thread_id and hasattr(model_pool, 'message_update') or hasattr(model_pool, 'message_new'), \
- "No possible route found for incoming message with Message-Id %s. " \
- "Create an appropriate mail.alias or force the destination model." % message_id
+ "No possible route found for incoming message from %s to %s (Message-Id %s:)." \
+ "Create an appropriate mail.alias or force the destination model." % (email_from, email_to, message_id)
if thread_id and not model_pool.exists(cr, uid, thread_id):
_logger.warning('Received mail reply to missing document %s! Ignoring and creating new document instead for Message-Id %s',
- thread_id, message_id)
+ thread_id, message_id)
thread_id = None
- _logger.debug('Routing mail with Message-Id %s: fallback to model:%s, thread_id:%s, custom_values:%s, uid:%s',
- message_id, model, thread_id, custom_values, uid)
+ _logger.info('Routing mail from %s to %s with Message-Id %s: fallback to model:%s, thread_id:%s, custom_values:%s, uid:%s',
+ email_from, email_to, message_id, model, thread_id, custom_values, uid)
return [(model, thread_id, custom_values, uid)]
def message_process(self, cr, uid, model, message, custom_values=None,
@@ -596,12 +639,24 @@ class mail_thread(osv.AbstractModel):
if isinstance(message, unicode):
message = message.encode('utf-8')
msg_txt = email.message_from_string(message)
- routes = self.message_route(cr, uid, msg_txt, model,
- thread_id, custom_values,
- context=context)
+
+ # parse the message, verify we are not in a loop by checking message_id is not duplicated
msg = self.message_parse(cr, uid, msg_txt, save_original=save_original, context=context)
if strip_attachments:
msg.pop('attachments', None)
+ if msg.get('message_id'): # should always be True as message_parse generate one if missing
+ existing_msg_ids = self.pool.get('mail.message').search(cr, SUPERUSER_ID, [
+ ('message_id', '=', msg.get('message_id')),
+ ], context=context)
+ if existing_msg_ids:
+ _logger.info('Ignored mail from %s to %s with Message-Id %s:: found duplicated Message-Id during processing',
+ msg.get('from'), msg.get('to'), msg.get('message_id'))
+ return False
+
+ # find possible routes for the message
+ routes = self.message_route(cr, uid, msg_txt, model,
+ thread_id, custom_values,
+ context=context)
# postpone setting msg.partner_ids after message_post, to avoid double notifications
partner_ids = msg.pop('partner_ids', [])
@@ -798,7 +853,7 @@ class mail_thread(osv.AbstractModel):
# as RFC2822 requires timezone offset in Date headers.
stored_date = parsed_date.replace(tzinfo=pytz.utc)
else:
- stored_date = parsed_date.astimezone(pytz.utc)
+ stored_date = parsed_date.astimezone(tz=pytz.utc)
except Exception:
_logger.warning('Failed to parse Date header %r in incoming mail '
'with message-id %r, assuming current date/time.',
@@ -817,7 +872,7 @@ class mail_thread(osv.AbstractModel):
if parent_ids:
msg_dict['parent_id'] = parent_ids[0]
- msg_dict['body'], msg_dict['attachments'] = self._message_extract_payload(message)
+ msg_dict['body'], msg_dict['attachments'] = self._message_extract_payload(message, save_original=save_original)
return msg_dict
#------------------------------------------------------
@@ -956,12 +1011,15 @@ class mail_thread(osv.AbstractModel):
], limit=1, context=context)
if author_ids:
kwargs['author_id'] = author_ids[0]
+ author_id = kwargs.get('author_id')
+ if author_id is None: # keep False values
+ author_id = self.pool.get('mail.message')._get_default_author(cr, uid, context=context)
# 1: Handle content subtype: if plaintext, converto into HTML
if content_subtype == 'plaintext':
body = tools.plaintext2html(body)
- # 2: Private message: add recipients (recipients and author of parent message)
+ # 2: Private message: add recipients (recipients and author of parent message) - current author
# + legacy-code management (! we manage only 4 and 6 commands)
partner_ids = set()
kwargs_partner_ids = kwargs.pop('partner_ids', [])
@@ -974,11 +1032,13 @@ class mail_thread(osv.AbstractModel):
partner_ids.add(partner_id)
else:
pass # we do not manage anything else
- if parent_id and model == 'mail.thread':
+ if parent_id and not model:
parent_message = mail_message.browse(cr, uid, parent_id, context=context)
- partner_ids |= set([partner.id for partner in parent_message.partner_ids])
+ private_followers = set([partner.id for partner in parent_message.partner_ids])
if parent_message.author_id:
- partner_ids.add(parent_message.author_id.id)
+ private_followers.add(parent_message.author_id.id)
+ private_followers -= set([author_id])
+ partner_ids |= private_followers
# 3. Attachments
# - HACK TDE FIXME: Chatter: attachments linked to the document (not done JS-side), load the message
@@ -1039,6 +1099,7 @@ class mail_thread(osv.AbstractModel):
values = kwargs
values.update({
+ 'author_id': author_id,
'model': model,
'res_id': thread_id or False,
'body': body,
diff --git a/addons/mail/static/src/css/mail.css b/addons/mail/static/src/css/mail.css
index 51306727a09..934fb6b5487 100644
--- a/addons/mail/static/src/css/mail.css
+++ b/addons/mail/static/src/css/mail.css
@@ -568,7 +568,6 @@
text-shadow: none;
width: 100%;
}
-.openerp .oe_followers button.oe_invite,
.openerp .oe_followers button.oe_follower.oe_following{
color: white;
background-color: #3465A4;
@@ -626,6 +625,8 @@
height: 32px;
overflow: hidden;
white-space: nowrap;
+ text-overflow: ellipsis;
+ margin-right: 10px;
}
.openerp .oe_followers .oe_partner img{
width: 32px;
diff --git a/addons/mail/static/src/css/mail_group.css b/addons/mail/static/src/css/mail_group.css
index c1cefee9070..4f2b8a16dd0 100644
--- a/addons/mail/static/src/css/mail_group.css
+++ b/addons/mail/static/src/css/mail_group.css
@@ -14,6 +14,10 @@
padding: 0px 18px;
}
+.openerp .oe_form_sheetbg.openerp_mail_group_sheet .oe_avatar {
+ padding-top: 3px;
+}
+
/* Resize footer width */
.openerp .oe_form div.oe_mail_group_footer {
max-width: 80%;
@@ -21,7 +25,7 @@
/* Resize group description */
.openerp .oe_form_sheetbg.openerp_mail_group_sheet .oe_form_field_text > textarea {
- height: 40px;
+ height: 60px;
}
/* ------------------------------ */
diff --git a/addons/mail/static/src/js/mail.js b/addons/mail/static/src/js/mail.js
index ad69f7e41c3..ec4feed82e2 100644
--- a/addons/mail/static/src/js/mail.js
+++ b/addons/mail/static/src/js/mail.js
@@ -1208,7 +1208,7 @@ openerp.mail = function (session) {
this.author_id = datasets.author_id || false;
this.thread_level = (datasets.thread_level+1) || 0;
datasets.partner_ids = datasets.partner_ids || [];
- if (datasets.author_id && ! _.contains(datasets.partner_ids, datasets.author_id) && datasets.author_id[0]) {
+ if (datasets.author_id && !_.contains(_.flatten(datasets.partner_ids),datasets.author_id[0]) && datasets.author_id[0]) {
datasets.partner_ids.push(datasets.author_id);
}
this.partner_ids = datasets.partner_ids;
@@ -1389,7 +1389,10 @@ openerp.mail = function (session) {
if (this.options.help) {
no_message.html(this.options.help);
}
- no_message.appendTo(this.$el);
+ if (!this.$el.find(".oe_view_nocontent").length)
+ {
+ no_message.appendTo(this.$el);
+ }
},
/**
@@ -1934,6 +1937,7 @@ openerp.mail = function (session) {
this.$(".oe_write_full").click(function (event) {
event.stopPropagation();
var action = {
+ name: _t('Compose Email'),
type: 'ir.actions.act_window',
res_model: 'mail.compose.message',
view_mode: 'form',
diff --git a/addons/mail/static/src/xml/mail.xml b/addons/mail/static/src/xml/mail.xml
index b26ef06f5e4..db53a60cdbc 100644
--- a/addons/mail/static/src/xml/mail.xml
+++ b/addons/mail/static/src/xml/mail.xml
@@ -246,7 +246,11 @@
<!-- message itself -->
<div class="oe_msg_content">
<h1 t-if="(widget.show_record_name or widget.subject) and !widget.thread_level" class="oe_msg_title">
- <a t-if="widget.options.show_link and widget.show_record_name" class="oe_mail_action_model" t-attf-href="#model=#{widget.model}&amp;id=#{widget.res_id}"><t t-raw="widget.record_name"/></a><span t-if="!widget.options.show_link and widget.show_record_name"><t t-raw="widget.record_name"/></span><t t-if="widget.show_record_name">: </t>
+ <a t-if="widget.options.show_link and widget.show_record_name" class="oe_mail_action_model" t-attf-href="#model=#{widget.model}&amp;id=#{widget.res_id}">
+ <t t-raw="widget.record_name"/>
+ </a>
+ <span t-if="!widget.options.show_link and widget.show_record_name"><t t-raw="widget.record_name"/></span>
+ <t t-if="widget.show_record_name and widget.subject">: </t>
<t t-if="widget.subject" t-raw="widget.subject"/>
</h1>
<div class="oe_msg_body">
diff --git a/addons/mail/static/src/xml/mail_followers.xml b/addons/mail/static/src/xml/mail_followers.xml
index 16bef174470..f3317223f1d 100644
--- a/addons/mail/static/src/xml/mail_followers.xml
+++ b/addons/mail/static/src/xml/mail_followers.xml
@@ -30,7 +30,7 @@
-->
<div t-name="mail.followers.partner" class='oe_partner'>
<img class="oe_mail_thumbnail oe_mail_frame" t-attf-src="{record.avatar_url}"/>
- <a t-attf-href="#model=res.partner&amp;id=#{record.id}"><t t-raw="record.name"/></a>
+ <a t-attf-href="#model=res.partner&amp;id=#{record.id}" t-att-title="record.name"><t t-esc="record.name"/></a>
<span t-if="widget.view_is_editable" class="oe_remove_follower oe_e" title="Remove this follower" t-att-data-id="record.id">X</span>
</div>
diff --git a/addons/mail/tests/test_mail_features.py b/addons/mail/tests/test_mail_features.py
index 2d0019c0b8a..7eea66b3b90 100644
--- a/addons/mail/tests/test_mail_features.py
+++ b/addons/mail/tests/test_mail_features.py
@@ -280,7 +280,8 @@ class test_mail(TestMailBase):
'message_post: mail.mail notifications should have been auto-deleted!')
# Test: notifications emails: to a and b, c is email only, r is author
- test_emailto = ['Administrator <a@a>', 'Bert Tartopoils <b@b>']
+ # test_emailto = ['Administrator <a@a>', 'Bert Tartopoils <b@b>']
+ test_emailto = ['"Followers of -Pigs-" <a@a>', '"Followers of -Pigs-" <b@b>']
self.assertEqual(len(sent_emails), 2,
'message_post: notification emails wrong number of send emails')
self.assertEqual(set([m['email_to'][0] for m in sent_emails]), set(test_emailto),
@@ -353,7 +354,8 @@ class test_mail(TestMailBase):
self.assertFalse(self.mail_mail.search(cr, uid, [('mail_message_id', '=', msg2_id)]), 'mail.mail notifications should have been auto-deleted!')
# Test: emails send by server (to a, b, c, d)
- test_emailto = [u'Administrator <a@a>', u'Bert Tartopoils <b@b>', u'Carine Poilvache <c@c>', u'D\xe9d\xe9 Grosbedon <d@d>']
+ # test_emailto = [u'Administrator <a@a>', u'Bert Tartopoils <b@b>', u'Carine Poilvache <c@c>', u'D\xe9d\xe9 Grosbedon <d@d>']
+ test_emailto = [u'"Followers of Pigs" <a@a>', u'"Followers of Pigs" <b@b>', u'"Followers of Pigs" <c@c>', u'"Followers of Pigs" <d@d>']
# self.assertEqual(len(sent_emails), 3, 'sent_email number of sent emails incorrect')
for sent_email in sent_emails:
self.assertEqual(sent_email['email_from'], 'Raoul Grosbedon <r@r>',
diff --git a/addons/mail/tests/test_mail_gateway.py b/addons/mail/tests/test_mail_gateway.py
index eb6ba22067b..a68011298c7 100644
--- a/addons/mail/tests/test_mail_gateway.py
+++ b/addons/mail/tests/test_mail_gateway.py
@@ -116,8 +116,11 @@ class TestMailgateway(TestMailBase):
frog_groups = format_and_process(MAIL_TEMPLATE, to='groups@example.com, other@gmail.com')
sent_emails = self._build_email_kwargs_list
# Test: one group created by mailgateway administrator
- self.assertTrue(len(frog_groups) == 1)
+ self.assertEqual(len(frog_groups), 1, 'message_process: a new mail.group should have been created')
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
+ res = self.mail_group.perm_read(cr, uid, [frog_group.id], details=False)
+ self.assertEqual(res[0].get('create_uid'), uid,
+ 'message_process: group should have been created by uid as alias_user__id is False on the alias')
# Test: one message that is the incoming email
self.assertEqual(len(frog_group.message_ids), 1,
'message_process: newly created group should have the incoming email in message_ids')
@@ -150,9 +153,12 @@ class TestMailgateway(TestMailBase):
self._init_mock_build_email()
frog_groups = format_and_process(MAIL_TEMPLATE, to='groups@example.com, other@gmail.com')
sent_emails = self._build_email_kwargs_list
- # Test: one group created by raoul
- self.assertTrue(len(frog_groups) == 1)
+ # Test: one group created by Raoul
+ self.assertEqual(len(frog_groups), 1, 'message_process: a new mail.group should have been created')
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
+ res = self.mail_group.perm_read(cr, uid, [frog_group.id], details=False)
+ self.assertEqual(res[0].get('create_uid'), self.user_raoul_id,
+ 'message_process: group should have been created by alias_user_id')
# Test: one message that is the incoming email
self.assertEqual(len(frog_group.message_ids), 1,
'message_process: newly created group should have the incoming email in message_ids')
@@ -175,8 +181,8 @@ class TestMailgateway(TestMailBase):
# Do: incoming email from a known partner that is also an user that can create a mail.group
self.res_users.create(cr, uid, {'partner_id': p1id, 'login': 'sylvie', 'groups_id': [(6, 0, [self.group_employee_id])]})
frog_groups = format_and_process(MAIL_TEMPLATE, to='groups@example.com, other@gmail.com')
- # Test: one group created by Sylvie
- self.assertTrue(len(frog_groups) == 1)
+ # Test: one group created by Raoul (or Sylvie maybe, if we implement it)
+ self.assertEqual(len(frog_groups), 1, 'message_process: a new mail.group should have been created')
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
# Test: one message that is the incoming email
self.assertEqual(len(frog_group.message_ids), 1,
@@ -195,6 +201,7 @@ class TestMailgateway(TestMailBase):
# Do: even with a wrong destination, a reply should end up in the correct thread
frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other@gmail.com',
+ msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
to='erroneous@example.com>', subject='Re: news',
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
# Test: no group 'Re: news' created, still only 1 Frogs group
@@ -205,12 +212,30 @@ class TestMailgateway(TestMailBase):
'message_process: reply on Frogs should not have created a duplicate group with old subject')
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
# Test: one new message
- self.assertTrue(len(frog_group.message_ids) == 2, 'message_process: group should contain 2 messages after reply')
+ self.assertEqual(len(frog_group.message_ids), 2, 'message_process: group should contain 2 messages after reply')
# Test: author (and not recipient) added as follower
frog_follower_ids = set([p.id for p in frog_group.message_follower_ids])
self.assertEqual(frog_follower_ids, set([p1id, p2id]),
'message_process: after reply, group should have 2 followers')
+ # Do: due to some issue, same email goes back into the mailgateway
+ frog_groups = format_and_process(MAIL_TEMPLATE, email_from='other@gmail.com',
+ msg_id='<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>',
+ subject='Re: news', extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
+ # Test: no group 'Re: news' created, still only 1 Frogs group
+ self.assertEqual(len(frog_groups), 0,
+ 'message_process: reply on Frogs should not have created a new group with new subject')
+ frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
+ self.assertEqual(len(frog_groups), 1,
+ 'message_process: reply on Frogs should not have created a duplicate group with old subject')
+ frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
+ # Test: no new message
+ self.assertEqual(len(frog_group.message_ids), 2, 'message_process: message with already existing message_id should not have been duplicated')
+ # Test: message_id is still unique
+ msg_ids = self.mail_message.search(cr, uid, [('message_id', 'ilike', '<1198923581.41972151344608186760.JavaMail.diff1@agrolait.com>')])
+ self.assertEqual(len(msg_ids), 1,
+ 'message_process: message with already existing message_id should not have been duplicated')
+
# --------------------------------------------------
# Test3: email_from and partner finding
# --------------------------------------------------
@@ -223,6 +248,7 @@ class TestMailgateway(TestMailBase):
# Do: post a new message, with a known partner -> duplicate emails -> partner
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
to='erroneous@example.com>', subject='Re: news (2)',
+ msg_id='<1198923581.41972151344608186760.JavaMail.new1@agrolait.com>',
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
@@ -236,6 +262,7 @@ class TestMailgateway(TestMailBase):
self.res_users.write(cr, uid, self.user_raoul_id, {'email': 'test_raoul@email.com'})
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
to='erroneous@example.com>', subject='Re: news (3)',
+ msg_id='<1198923581.41972151344608186760.JavaMail.new2@agrolait.com>',
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
@@ -250,6 +277,7 @@ class TestMailgateway(TestMailBase):
self.res_users.write(cr, uid, self.user_raoul_id, {'email': 'test_raoul@email.com'})
format_and_process(MAIL_TEMPLATE, email_from='Lombrik Lubrik <test_raoul@email.com>',
to='erroneous@example.com>', subject='Re: news (3)',
+ msg_id='<1198923581.41972151344608186760.JavaMail.new3@agrolait.com>',
extra='In-Reply-To: <12321321-openerp-%d-mail.group@example.com>\n' % frog_group.id)
frog_groups = self.mail_group.search(cr, uid, [('name', '=', 'Frogs')])
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
@@ -265,23 +293,32 @@ class TestMailgateway(TestMailBase):
# Do: incoming email with model that does not accepts incoming emails must raise
self.assertRaises(AssertionError,
- format_and_process,
- MAIL_TEMPLATE, to='noone@example.com', subject='spam', extra='', model='res.country')
+ format_and_process,
+ MAIL_TEMPLATE,
+ to='noone@example.com', subject='spam', extra='', model='res.country',
+ msg_id='<1198923581.41972151344608186760.JavaMail.new4@agrolait.com>')
# Do: incoming email without model and without alias must raise
self.assertRaises(AssertionError,
- format_and_process,
- MAIL_TEMPLATE, to='noone@example.com', subject='spam', extra='')
+ format_and_process,
+ MAIL_TEMPLATE,
+ to='noone@example.com', subject='spam', extra='',
+ msg_id='<1198923581.41972151344608186760.JavaMail.new5@agrolait.com>')
# Do: incoming email with model that accepting incoming emails as fallback
- frog_groups = format_and_process(MAIL_TEMPLATE, to='noone@example.com', subject='Spammy', extra='', model='mail.group')
+ frog_groups = format_and_process(MAIL_TEMPLATE,
+ to='noone@example.com',
+ subject='Spammy', extra='', model='mail.group',
+ msg_id='<1198923581.41972151344608186760.JavaMail.new6@agrolait.com>')
self.assertEqual(len(frog_groups), 1,
'message_process: erroneous email but with a fallback model should have created a new mail.group')
# Do: incoming email in plaintext should be stored as html
- frog_groups = format_and_process(MAIL_TEMPLATE_PLAINTEXT, to='groups@example.com', subject='Frogs Return', extra='', msg_id='<deadcafe.1337@smtp.agrolait.com>')
+ frog_groups = format_and_process(MAIL_TEMPLATE_PLAINTEXT,
+ to='groups@example.com', subject='Frogs Return', extra='',
+ msg_id='<deadcafe.1337@smtp.agrolait.com>')
# Test: one group created with one message
- self.assertTrue(len(frog_groups) == 1)
+ self.assertEqual(len(frog_groups), 1, 'message_process: a new mail.group should have been created')
frog_group = self.mail_group.browse(cr, uid, frog_groups[0])
msg = frog_group.message_ids[0]
# Test: plain text content should be wrapped and stored as html
@@ -305,19 +342,27 @@ class TestMailgateway(TestMailBase):
# Reply to msg1, make sure the reply is properly attached using the various reply identification mechanisms
# 0. Direct alias match
- reply_msg1 = format(MAIL_TEMPLATE, to='Pretty Pigs <group+pigs@example.com>', extra='In-Reply-To: %s' % msg1.message_id)
+ reply_msg1 = format(MAIL_TEMPLATE, to='Pretty Pigs <group+pigs@example.com>',
+ extra='In-Reply-To: %s' % msg1.message_id,
+ msg_id='<1198923581.41972151344608186760.JavaMail.2@agrolait.com>')
self.mail_group.message_process(cr, uid, None, reply_msg1)
# 1. In-Reply-To header
- reply_msg2 = format(MAIL_TEMPLATE, to='erroneous@example.com', extra='In-Reply-To: %s' % msg1.message_id)
+ reply_msg2 = format(MAIL_TEMPLATE, to='erroneous@example.com',
+ extra='In-Reply-To: %s' % msg1.message_id,
+ msg_id='<1198923581.41972151344608186760.JavaMail.3@agrolait.com>')
self.mail_group.message_process(cr, uid, None, reply_msg2)
# 2. References header
- reply_msg3 = format(MAIL_TEMPLATE, to='erroneous@example.com', extra='References: <2233@a.com>\r\n\t<3edss_dsa@b.com> %s' % msg1.message_id)
+ reply_msg3 = format(MAIL_TEMPLATE, to='erroneous@example.com',
+ extra='References: <2233@a.com>\r\n\t<3edss_dsa@b.com> %s' % msg1.message_id,
+ msg_id='<1198923581.41972151344608186760.JavaMail.4@agrolait.com>')
self.mail_group.message_process(cr, uid, None, reply_msg3)
# 3. Subject contains [<ID>] + model passed to message+process -> only attached to group, but not to mail (not in msg1.child_ids)
- reply_msg4 = format(MAIL_TEMPLATE, to='erroneous@example.com', extra='', subject='Re: [%s] 1' % self.group_pigs_id)
+ reply_msg4 = format(MAIL_TEMPLATE, to='erroneous@example.com',
+ extra='', subject='Re: [%s] 1' % self.group_pigs_id,
+ msg_id='<1198923581.41972151344608186760.JavaMail.5@agrolait.com>')
self.mail_group.message_process(cr, uid, 'mail.group', reply_msg4)
group_pigs.refresh()
@@ -327,4 +372,55 @@ class TestMailgateway(TestMailBase):
def test_20_private_discussion(self):
""" Testing private discussion between partners. """
- pass
+ cr, uid = self.cr, self.uid
+
+ # Do: Raoul writes to Bert and Administrator, with a thread_model in context that should not be taken into account
+ msg1_pids = [self.partner_admin_id, self.partner_bert_id]
+ msg1_id = self.mail_thread.message_post(cr, self.user_raoul_id, False,
+ partner_ids=msg1_pids,
+ subtype='mail.mt_comment',
+ context={'thread_model': 'mail.group'})
+
+ # Test: message recipients
+ msg = self.mail_message.browse(cr, uid, msg1_id)
+ msg_pids = [p.id for p in msg.partner_ids]
+ msg_nids = [p.id for p in msg.notified_partner_ids]
+ test_pids = msg1_pids
+ test_nids = msg1_pids
+ self.assertEqual(set(msg_pids), set(test_pids),
+ 'message_post: private discussion: incorrect recipients')
+ self.assertEqual(set(msg_nids), set(test_nids),
+ 'message_post: private discussion: incorrect notified recipients')
+ self.assertEqual(msg.model, False,
+ 'message_post: private discussion: context key "thread_model" not correctly ignored when having no res_id')
+
+ # Do: Bert replies through mailgateway (is a customer)
+ msg2_id = self.mail_thread.message_post(cr, uid, False,
+ author_id=self.partner_bert_id,
+ parent_id=msg1_id, subtype='mail.mt_comment')
+
+ # Test: message recipients
+ msg = self.mail_message.browse(cr, uid, msg2_id)
+ msg_pids = [p.id for p in msg.partner_ids]
+ msg_nids = [p.id for p in msg.notified_partner_ids]
+ test_pids = [self.partner_admin_id, self.partner_raoul_id]
+ test_nids = test_pids
+ self.assertEqual(set(msg_pids), set(test_pids),
+ 'message_post: private discussion: incorrect recipients when replying')
+ self.assertEqual(set(msg_nids), set(test_nids),
+ 'message_post: private discussion: incorrect notified recipients when replying')
+
+ # Do: Administrator replies
+ msg3_id = self.mail_thread.message_post(cr, uid, False,
+ parent_id=msg2_id, subtype='mail.mt_comment')
+
+ # Test: message recipients
+ msg = self.mail_message.browse(cr, uid, msg3_id)
+ msg_pids = [p.id for p in msg.partner_ids]
+ msg_nids = [p.id for p in msg.notified_partner_ids]
+ test_pids = [self.partner_bert_id, self.partner_raoul_id]
+ test_nids = test_pids
+ self.assertEqual(set(msg_pids), set(test_pids),
+ 'message_post: private discussion: incorrect recipients when replying')
+ self.assertEqual(set(msg_nids), set(test_nids),
+ 'message_post: private discussion: incorrect notified recipients when replying')
diff --git a/addons/mail/wizard/mail_compose_message.py b/addons/mail/wizard/mail_compose_message.py
index b259135b7b7..fea1840008c 100644
--- a/addons/mail/wizard/mail_compose_message.py
+++ b/addons/mail/wizard/mail_compose_message.py
@@ -175,11 +175,17 @@ class mail_compose_message(osv.TransientModel):
:param int res_id: id of the document record this mail is related to
"""
doc_name_get = self.pool[model].name_get(cr, uid, [res_id], context=context)
+ record_name = False
if doc_name_get:
record_name = doc_name_get[0][1]
- else:
- record_name = False
- return {'model': model, 'res_id': res_id, 'record_name': record_name}
+ values = {
+ 'model': model,
+ 'res_id': res_id,
+ 'record_name': record_name,
+ }
+ if record_name:
+ values['subject'] = 'Re: %s' % record_name
+ return values
def get_message_data(self, cr, uid, message_id, context=None):
""" Returns a defaults-like dict with initial values for the composition
@@ -197,7 +203,7 @@ class mail_compose_message(osv.TransientModel):
# create subject
re_prefix = _('Re:')
- reply_subject = tools.ustr(message_data.subject or '')
+ reply_subject = tools.ustr(message_data.subject or message_data.record_name or '')
if not (reply_subject.startswith('Re:') or reply_subject.startswith(re_prefix)) and message_data.subject:
reply_subject = "%s %s" % (re_prefix, reply_subject)
# get partner_ids from original message
diff --git a/addons/mrp/stock.py b/addons/mrp/stock.py
index 1ff121c78bd..2feffee94a1 100644
--- a/addons/mrp/stock.py
+++ b/addons/mrp/stock.py
@@ -45,7 +45,7 @@ class StockMove(osv.osv):
procurement_obj = self.pool.get('procurement.order')
product_obj = self.pool.get('product.product')
processed_ids = [move.id]
- if move.product_id.supply_method == 'produce' and move.product_id.procure_method == 'make_to_order':
+ if move.product_id.supply_method == 'produce':
bis = bom_obj.search(cr, uid, [
('product_id','=',move.product_id.id),
('bom_id','=',False),
diff --git a/addons/note_pad/i18n/cs.po b/addons/note_pad/i18n/cs.po
new file mode 100644
index 00000000000..bb2502ee2d1
--- /dev/null
+++ b/addons/note_pad/i18n/cs.po
@@ -0,0 +1,28 @@
+# Czech 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-03-30 09:13+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: note_pad
+#: model:ir.model,name:note_pad.model_note_note
+msgid "Note"
+msgstr ""
+
+#. module: note_pad
+#: field:note.note,note_pad_url:0
+msgid "Pad Url"
+msgstr ""
diff --git a/addons/plugin/plugin_handler.py b/addons/plugin/plugin_handler.py
index b4b5064f2b1..c278db2f19a 100644
--- a/addons/plugin/plugin_handler.py
+++ b/addons/plugin/plugin_handler.py
@@ -4,7 +4,8 @@ Created on 18 oct. 2011
@author: openerp
'''
-from openerp.osv import fields, osv
+from openerp.osv import osv
+from openerp.tools.translate import _
class plugin_handler(osv.osv_memory):
_name = 'plugin.handler'
@@ -29,7 +30,7 @@ class plugin_handler(osv.osv_memory):
partner_ids = partner_obj.search(cr, uid, [('email', 'like', address_email)])
res_id = partner_ids and partner_ids[0] or 0
url = self._make_url(cr, uid, res_id, 'res.partner')
- return ('res.partner', res_id , url)
+ return ('res.partner', res_id, url)
def document_get(self, cr, uid, email):
"""
@@ -48,7 +49,7 @@ class plugin_handler(osv.osv_memory):
message_id = msg.get('message_id')
msg_id = False
if message_id:
- msg_ids = mail_message_obj.search(cr, uid, [('message_id','=', message_id)])
+ msg_ids = mail_message_obj.search(cr, uid, [('message_id', '=', message_id)])
msg_id = len(msg_ids) and msg_ids[0] or False
if not msg_id and parent_id:
msg_id = parent_id
@@ -58,7 +59,7 @@ class plugin_handler(osv.osv_memory):
model = msg.model
url = self._make_url(cr, uid, res_id, model)
name = self.pool[model].name_get(cr, uid, [res_id])[0][1]
- return (model,res_id, url,name)
+ return (model, res_id, url, name)
def document_type(self, cr, uid, context=None):
"""
@@ -94,26 +95,25 @@ class plugin_handler(osv.osv_memory):
model_obj = self.pool[model]
msg = self.pool.get('mail.thread').message_parse(cr, uid, email)
message_id = msg.get('message-id')
- mail_ids = mail_message.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)])
-
- if message_id and mail_ids :
+ mail_ids = mail_message.search(cr, uid, [('message_id', '=', message_id), ('res_id', '=', res_id), ('model', '=', model)])
+ if message_id and mail_ids:
mail_record = mail_message.browse(cr, uid, mail_ids)[0]
res_id = mail_record.res_id
- notify = "Email already pushed"
+ notify = _("Email already pushed")
elif res_id == 0:
if model == 'res.partner':
- notify = 'User the Partner button to create a new partner'
+ notify = _('Use the Partner button to create a new partner')
else:
res_id = model_obj.message_process(cr, uid, model, email)
- notify = "Mail successfully pushed, a new %s has been created " % model
+ notify = _("Mail successfully pushed, a new %s has been created.") % model
else:
model_obj.message_post(cr, uid, [res_id],
- body= msg.get('body'),
- subject= msg.get('subject'),
- type= 'email',
- parent_id= msg.get('parent_id'),
- attachments= msg.get('attachments'))
- notify = "Mail successfully pushed"
+ body=msg.get('body'),
+ subject=msg.get('subject'),
+ type='email',
+ parent_id=msg.get('parent_id'),
+ attachments=msg.get('attachments'))
+ notify = _("Mail successfully pushed")
url = self._make_url(cr, uid, res_id, model)
return (model, res_id, url, notify)
@@ -154,16 +154,17 @@ class plugin_handler(osv.osv_memory):
message_id = msg.get('message-id')
push_mail = self.push_message(cr, uid, model, headers, res_id)
res_id = push_mail[1]
- model = push_mail[0]
+ model = push_mail[0]
+ notify = push_mail[3]
for name in attachments.keys():
attachment_ids = ir_attachment_obj.search(cr, uid, [('res_model', '=', model), ('res_id', '=', res_id), ('datas_fname', '=', name)])
if attachment_ids:
- attach_ids.append( attachment_ids[0])
+ attach_ids.append(attachment_ids[0])
else:
- vals = {"res_model": model, "res_id": res_id, "name": name, "datas" :attachments[name], "datas_fname" : name}
+ vals = {"res_model": model, "res_id": res_id, "name": name, "datas": attachments[name], "datas_fname": name}
attach_ids.append(ir_attachment_obj.create(cr, uid, vals))
- mail_ids = mail_message.search(cr, uid, [('message_id','=',message_id),('res_id','=',res_id),('model','=',model)])
+ mail_ids = mail_message.search(cr, uid, [('message_id', '=', message_id), ('res_id', '=', res_id), ('model', '=', model)])
if mail_ids:
- ids = mail_message.write(cr, uid, mail_ids[0], { 'attachment_ids': [(6, 0, attach_ids)],'body':body,'body_html':body_html})
+ mail_message.write(cr, uid, mail_ids[0], {'attachment_ids': [(6, 0, attach_ids)], 'body': body, 'body_html': body_html})
url = self._make_url(cr, uid, res_id, model)
- return (model, res_id, url)
+ return (model, res_id, url, notify)
diff --git a/addons/plugin_outlook/i18n/cs.po b/addons/plugin_outlook/i18n/cs.po
new file mode 100644
index 00000000000..b095bfb469c
--- /dev/null
+++ b/addons/plugin_outlook/i18n/cs.po
@@ -0,0 +1,89 @@
+# Czech 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-03-31 16:52+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: plugin_outlook
+#: field:outlook.installer,plugin32:0
+msgid "Outlook Plug-in 32bits"
+msgstr ""
+
+#. module: plugin_outlook
+#: view:sale.config.settings:0
+msgid "Download and install the plug-in"
+msgstr ""
+
+#. module: plugin_outlook
+#: model:ir.model,name:plugin_outlook.model_outlook_installer
+msgid "outlook.installer"
+msgstr ""
+
+#. module: plugin_outlook
+#: view:outlook.installer:0
+msgid "MS .Net Framework 3.5 or above."
+msgstr ""
+
+#. module: plugin_outlook
+#: model:ir.actions.act_window,name:plugin_outlook.action_outlook_installer
+#: model:ir.actions.act_window,name:plugin_outlook.action_outlook_wizard
+#: model:ir.ui.menu,name:plugin_outlook.menu_base_config_plugins_outlook
+#: view:outlook.installer:0
+msgid "Install Outlook Plug-In"
+msgstr ""
+
+#. module: plugin_outlook
+#: view:outlook.installer:0
+msgid "System requirements:"
+msgstr ""
+
+#. module: plugin_outlook
+#: view:outlook.installer:0
+msgid "title"
+msgstr ""
+
+#. module: plugin_outlook
+#: view:outlook.installer:0
+msgid ""
+"Click on the link above to download the installer for either 32 or 64 bits, "
+"and execute it."
+msgstr ""
+
+#. module: plugin_outlook
+#: view:outlook.installer:0
+msgid "MS Outlook 2005 or above."
+msgstr ""
+
+#. module: plugin_outlook
+#: view:outlook.installer:0
+msgid "Close"
+msgstr ""
+
+#. module: plugin_outlook
+#: field:outlook.installer,plugin64:0
+msgid "Outlook Plug-in 64bits"
+msgstr ""
+
+#. module: plugin_outlook
+#: view:outlook.installer:0
+msgid "Installation and Configuration Steps"
+msgstr ""
+
+#. module: plugin_outlook
+#: help:outlook.installer,plugin32:0
+#: help:outlook.installer,plugin64:0
+msgid "Outlook plug-in file. Save this file and install it in Outlook."
+msgstr ""
diff --git a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj
index 75fe271e5d6..f9ac3e31553 100644
--- a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj
+++ b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPClient/OpenERPClient.csproj
@@ -17,6 +17,7 @@
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
+ <IsWebBootstrapper>false</IsWebBootstrapper>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@@ -29,7 +30,6 @@
<MapFileExtensions>true</MapFileExtensions>
<ApplicationRevision>0</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
- <IsWebBootstrapper>false</IsWebBootstrapper>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
@@ -53,9 +53,8 @@
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
- <Reference Include="CookComputing.XmlRpcV2, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
- <SpecificVersion>False</SpecificVersion>
- <HintPath>..\OpenERPOutlookPlugin\bin\Release\CookComputing.XmlRpcV2.dll</HintPath>
+ <Reference Include="CookComputing.XmlRpcV2">
+ <HintPath>..\CookComputing.XmlRpcV2.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core">
@@ -81,7 +80,7 @@
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
- <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
+ <ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
@@ -91,7 +90,7 @@
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Windows.Installer.3.1">
<Visible>False</Visible>
- <ProductName>Windows Installer 3.1</ProductName>
+ <ProductName>Windows Installer 3.1</ProductName>
<Install>true</Install>
</BootstrapperPackage>
</ItemGroup>
diff --git a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln
index f4705664cf4..ad53769e5b4 100644
--- a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln
+++ b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin.sln
@@ -1,6 +1,6 @@

-Microsoft Visual Studio Solution File, Format Version 10.00
-# Visual Studio 2008
+Microsoft Visual Studio Solution File, Format Version 11.00
+# Visual Studio 2010
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OpenERPOutlookPlugin", "OpenERPOutlookPlugin\OpenERPOutlookPlugin.csproj", "{F4B2219B-F235-400F-81B4-92F15250BBA4}"
EndProject
Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "OpenERPOutlookPluginSetup", "OpenERPOutlookPluginSetup\OpenERPOutlookPluginSetup.vdproj", "{96333293-0156-4998-9065-42721CEB0368}"
diff --git a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs
index 1336c7f7695..dae4db88aa2 100644
--- a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs
+++ b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/Connect.cs
@@ -303,6 +303,7 @@ namespace OpenERPOutlookPlugin
foreach (outlook.MailItem mailitem in Tools.MailItems())
{
+
Object[] contact = Cache.OpenERPOutlookPlugin.RedirectPartnerPage(mailitem);
if ((int)contact[1] > 0)
diff --git a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs
index b057201b8d1..e1d45318ee4 100644
--- a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs
+++ b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPlugin/OpenERPOutlookPlugin.cs
@@ -95,7 +95,6 @@ namespace OpenERPOutlookPlugin
/*
* Will open the url into the web browser.
*/
-
System.Diagnostics.Process.Start(web_url.ToString());
}
@@ -163,9 +162,16 @@ namespace OpenERPOutlookPlugin
args.Add(attachments);
object push_mail = this.Connection.Execute("plugin.handler", "push_message_outlook", args.ToArray());
object[] push = (object[])push_mail;
- this.RedirectWeb(push[2].ToString());
- return true;
+ if (Convert.ToInt32(push[1]) == 0)
+ {
+ MessageBox.Show(push[3].ToString());
+ }
+ else
+ {
+ this.RedirectWeb(push[2].ToString());
+ }
+ return true;
}
public long CreatePartnerRecord(string name)
{
diff --git a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup32.msi b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup32.msi
index a31471c28ba..9d9dd5d3ad3 100644
--- a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup32.msi
+++ b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup32.msi
Binary files differ
diff --git a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup64.msi b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup64.msi
index 87cac88be70..0c2fa88bb24 100644
--- a/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup64.msi
+++ b/addons/plugin_outlook/static/openerp-outlook-plugin/OpenERPOutlookPluginSetup64.msi
Binary files differ
diff --git a/addons/point_of_sale/point_of_sale_demo.xml b/addons/point_of_sale/point_of_sale_demo.xml
index 011c6d81bfc..1c61218a4cb 100644
--- a/addons/point_of_sale/point_of_sale_demo.xml
+++ b/addons/point_of_sale/point_of_sale_demo.xml
@@ -430,6 +430,7 @@
<field name="available_in_pos">True</field>
<field name="list_price">1.49</field>
<field name="name">Coca-Cola Regular 1L</field>
+ <field name="ean13">5449000054227</field>
<field name="pos_categ_id" ref="coke"/>
<field name="image">/9j/4AAQSkZJRgABAAEBLAEsAAD/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9PjsBCwoKDg0OHBYWHCgoKCgoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIAGQAIgMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APZqYHHfEPXNS0W3sjp0zRGUvvKqD0246g+tc+InKNrHqZVhaVdy5+ljlPCfjPxBf65aW1xevLFJOqOCi8gn6cVnGrPnSPRxuW4elRlJLWx65XWfNENusizXJcMFaUFMngjYo4+Y8ZB7L34/iKW7NKjTjG3b9X5L9fXopqozMPX9Kt9YvtPtp9+AZHbbj7oA9fcrUyipbmtGvOldxdjPPhPS9G1PT7q2EiKbkK3Ixkqdp4H97ApKnFO9jWpja1SNpSOsqzlCgAoArwx77mS6JyGUJH7KOSfxP8hSAW9thd2rRZ2tkMjf3WByp/AgUASROZIwxG1v4l9D3FAD6YHLeN/FqeHFsLSMj7VqMxRSULhEAyzFQRnqB17+1IaKUnjCyaBmHiSOHaMk+SqY/wC+gaGmBHY+NLCWUr/wlUE5AztAjb/0FaSuN2J7PxvAfFNnpj3Kzw3yskcyxFMSDkAknnIyBxT2EdnTEeQ/EzzW8eRSNG7Rw6avl4GQCXbd+PSlzJM1jRqShzJNo4TVZlawmRchihzuBH86pmRz+hXH2bUN57rjHryKSA7RLl7i805rdJfNivoJI2CHghx/TNKTRpCnOeyufQtMzPMvH8ck3jWyjQqubQl2Y4CqNxJPsAP0rlrrmkkfSZI4xw1RvuvvOQ1jRb2S58mGzmmQkKD5RBZiM4xzyKy5ZR0R69OthpQvNxKFt4fZIvtV1ss4wCy7kyzD1A9O2TjJ49cP3t2yFKgp8sIJv5HQabZJb+INMiNys7M+4IsZXCkcE5789O1OEUpIxxc+fC1Go2S8/P8AI9rrtPjThvFMFtc+Kmha4SC+axQ2pkfarne+VyQQD909OcVhUScj2MvlOFHmSvHm1t6b/mcnfalqOk2k8F9ptxb3e3y0meMMm3LHgjA6uemRwOOKxcnFao9inh6NealCacd7Xs+nr28iD/hINMnu/Mj0ySaNGjWNTCPljHDLwTzjAB7jPAycnPG+wLA1oxs5pb9evQ07RpNV8R6fcxyQxrEwHkyTqZXy3zPtHT6HFVH3pI5sRy0MJOLTd+ttF2V2epW/2jz7rzs+X5o8jgfc2Lnp/tbuvP4YrojzXd++n3L9bnztTk5Ycu9tfW7/AEtt+Z458X9Xaw8ZRwTQxvFLYIUZs5U73yQR9KmpT5zuy7M3hNLO1+hx8fim5ih2pqF1GmMbUnOPyBrH2NRdT2f7Wy+erhr5pFV9eS4bDzyyn/bJP86n2M2aRznBw2/I2YPFLat4u0JIIFidbi3t9qvnOJBzxxznpWypu6b6Hj1MypqjOnFN8zbu/P7z6Lrc8c8S/aBtNuoaLegf6yKWIn/dKkf+hGkB5ZkGIY9KBobH1pgdJ8NLM6h8SdJTGRHMZT7bFLD9QKQj6epgeQftAzxCy0W3JBmMkrj2UBQf1I/KkB44n+pH0oGgi5NAHafBiWKL4jQLKQGkglVM/wB7Gf5A0CPo6mB4P8ab42/jy286FZol09Aqt2y75IpDOEuZ7CaycwwBJCOMKP6UwKWnNCs5NwhdMdMZ7ikgOi8J3UMnjrQ/sNsIdt/EC4PJBYAj8iaGB9PUxHkXx50Ca4srDXYI2cWxaCcgZ2q3Kk+2cj8RSYHj39najb6d/aD2c62bSeWJmjIRm54DdCeDQncbTTG2lle6iJhY2k0/kx+ZL5SFiq5AycdByKLgdr8H9BuNS8ZwXJhb7PYjzpHK8A4+UZ9SSD9AaSdxuLW59F1RIjKrqVdQykYIIyDQBR1nRNP13SJdL1C3EtrKACg4xjkEEdCKTApeGPBuieEYpk0i2MZuGBkd3LscdBk9vb3oSA2Y4YoQwijSPcdzbVAyfU0wH0AA/9k=</field>
</record>
@@ -716,6 +717,7 @@
<record id="chaudfontaine_50cl" model="product.product">
<field name="available_in_pos">True</field>
<field name="list_price">0.44</field>
+ <field name="ean13">5449000111715</field>
<field name="name">Chaudfontaine 50cl</field>
<field name="pos_categ_id" ref="plain_water"/>
<field name="image">/9j/4AAQSkZJRgABAAEBLAEsAAD/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9PjsBCwoKDg0OHBYWHCgoKCgoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIAGQAJAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APZqYHnfj34gaj4a1xdPtYU8vyVkLkckkn1+ld2EwsKsbswq1XF2Oa/4XBqwmUxwqVHVWAwf6/rXQ8DTSIVeVz2KxuGurC3uGXa0sSuR6EjNeVJWbR0rYnpDCgDjvFfhCw8Qaul1PJIJEiEeF6dSR05712Yau6cLW6nLXg5S0ZjS/DLS127pJl7jk5/Umt/rjfQy9jJPc9Ht0WK3jjQ5VVAB9gK8x7neh9AEVxN5SD1PApxVxN2M6Kzja5EsjMxJyd2TWzm7GSpJu5NfWkE6qehHGRkVMJtDnTUh1o/kAQlmYE8Fj0pT11Kh7uheFZllG/fFzChHBBOffitILRkyeqEQ9xxTAVizD5jxRawEEj7GTC7jvUYzzyadrkt2NWsTQp34O6I4yMkGrh1JkInTjiqBDj065pAQMf38YC/xin0F1NIVkWUdVuBbQxOy5UyYJ/u8HmtKUeZsipLlRQj1WFpBGJV3HoCwAP0zWrpSS2M1VVy5HOZc8AAdwwNQ1YtSuRifddQBFMgdyCw6LgHn9KbjowUtUaorA0KGsqr2O1hkFhWtF+8Z1fhOM8Q38+lWEUtoUWR5QnIz8pB/wr08LSjVk1LscdRuK0LHhi9uzqd7b3dzHMsUalWRcA5J/wAKjFwhyRcVbU0otxk02dJFJvvIdvIyc4PHSuGStFnRF3ZrVgaFLVl3WWP9qtKPxGdX4Th/Elk11p8fzJEsEnms7HBAAPAHfqK9TCVFGb63VjkqQukL4fkeTxDqIJP3IhyMdvTJ/nRiElRh8xxbdRnWWg/02PA9ea86psdNPc2KwNSrqS7rNuM4NXS+Iip8JwvimSKKxhMi7gJRhcZ5wSMj0yK9XBpuTt2OOrbQk8NKy+JNRXbjbHFngZ6Z55NTiv4EPVl0v4jOsgx9uiA9D0rz5fCzoW5qViaFe9lSKEbj944qoK7Jk0jkvFGmTahZW4trbzylwruowCVwc9cZ/OvQwdZU5O7toc1aDklZdSPwxp99aahfXN5bvH5qxhS5zkgHOOTxVYurCUIqL2uFGMlJto6W3KLex5IBOQAK4ZX5WbppM1KxNDP1faYUDlQuTkscCtKZnUa6meiyKoUF9o7A5qxaj2LqNyll/wA+9AbDLfbFfRscb5HHfJNNq8WSnaR0Fc5uVdRhaa3wq7sHp61dN2ZM1dGBftLDAipByuemRg4rqppNnJVbtYjmYyuskI81VOMEkD8hjNacqWj0MeZ3utTWsIJXlVzEyqDksx61y1Gl1Oyld62NesDcOtAAQD1FAAFA6AUBYKACgAD/2Q==</field>
@@ -830,6 +832,7 @@
<record id="jupiler_33cl" model="product.product">
<field name="available_in_pos">True</field>
<field name="list_price">0.77</field>
+ <field name="ean13">5410228142027</field>
<field name="name">Jupiler 33cl</field>
<field name="pos_categ_id" ref="pils"/>
<field name="image">/9j/4AAQSkZJRgABAAEBLAEsAAD/2wCEAAoHBwgHBgoICAgLCgoLDhgQDg0NDh0VFhEYIx8lJCIfIiEmKzcvJik0KSEiMEExNDk7Pj4+JS5ESUM8SDc9PjsBCwoKDg0OHBYWHCgoKCgoOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O//AABEIAGQAPQMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APZqYGdqet2+myJE6tJK4yFXgAepNACJqrPD5reTEvbc+aVwKU2vyR7mDx7FOCxUj+dMC3Z61bzxF5LuFAOu4hcfnQBZmv444fNSSKVc4+Vuv40gH2l7Hdq20FXX7yt1FMCduq/X+hrCs7Tp6/a/9tf9df1TXUWtxHlnjvxjFDrotYbWG6jiUBw5Iyc+oNc1XEckrI9vA5OsRS5pNrsT6ZrM2q2izw6LdqgGP9HuQR+RIq41m1sYYjK1Slb2i+af/BM+58UwaTcukkWqW7scssipyfzxSdeK3TFDJ681eLi/n/wCH/hOLa/22wtbmY9gIkGfxzmhYiL2uOWT14q7cV/XoQax4pvbWJ3fT3O8/wDLWXp+A/xode3QKWVqb1kbPwv8YG/1G6sL3y0lmw0RGecdsk06VXm3IxuCVGKcT05vvJ9f6GprtKdP/F/7bLz/AM/TqvPWzKmsySQ6PdyRNtdYjg1tLYuik6kU+58838N4buSW5Us7sSWHIry5KV9T7yg6fIlE9M8JXsen+H4kKHcFy2EJH5gV2UmlE+fzCnKdZtHCeM9QF/rDPECwAxjpzWNWze56GB56VKzgzM0afyNRjlcbcHpmpgkpbmuIc50n7up0Wul9TtnjghZnK/KAh6/lW7SaPLp88HrZfMx9K8O+ILO4g1EW0losci/vJPl6kDp170owknew8RiqDg4tpu3Q+homZoYWJySASfXitat+aFv5v/bX56/j3t1Xz3cr60M6Ld/9cjWstmXQ/iR9TxS6P71vrXDI+upbGTqSkBJF4PQkVnJaHXRe6MwmoNGy3owDa7YqwyDcICD3+YVrRXvo4ce2qEj2Hw8Uj8L6YzFUBtYuTxztFejT+Beh8ljP48/8T/Mi190bTmQMCyzRbh6fOKU/hIpb/I7WH/UQf7o/lWVX46f+L/21+f8An6dVK6kGsDOkXQ/6ZGtpbF0vjXqeXaZ4f1K71CC7TTftNoJfnDFQrKDg9T9a5I05N3sfQVcZShTceazsdhqWhaBoqTakdKNwXQQpaxoH3seyqe5/kK6lSgnseJLHYiUbOTOZ8PQ21zo+owaX4PvLO8jjkMU2pxKMyH7qhm5wM+nQeppRpQjsgqY7EVLc02YGl/D3xDY6nZzSwR+XDKjM3nKTgEZNYRoz57nq1cwoPDezTbdkburo1z8MrAQW0106Jb/u4SQxKldwyBkdDz2rpirRR4uIkp1pNbNsWHUtW1Pw9LcarZRWZNxH5KRybyU3DknJ759OlKfwip7v0PUIR+4i/wB0fyqZptxt3/R+a/X06qSDVf8AkFXX/XI/yq5bFU/jXqeY6tPdJHYQQ3j2sCWrSyuHKqo8x8scdew9+BXM1JtJHuUp0qcJzmk9f0RVXSfEGsWC3OnWV89rIuY557tAz88OEJ4/M8d619k0tGcX1+M5WcUtdLLb17nHajNr2l3T292buKVeShmYE/nXLKLT1bR7sainDmjTjJeVv1sbPgDWLyfxbaRS3VwyP5iPHJITg7CeQT64rSkpRqJNnBjJUK+EnKEbNNdLNanRatb3E3w/ms4LaW4KX8kbwxEgui3DZGe3A611vY+e6lLw1Hcx+D5Eu3jEsd1FGIo5Ffy1XbgEgnBPJx71MvhNIbv0PYoT+4i91H8qUpNOPm/0ZJDqn/ILuf8Ark38qp7Dh8SPJ/EsTXel2VvE+17tUtwScLxLITk+nCn8Kzprr5HbjJWjy/3r/gjF/wCElN5pVroOq2Yc2JKQXK3PkFAOMHPB6Y5x0FanCVNZ8aXceiadp+o6ba3v+jbkmuA/nINzAHII4KhSCRzU1KfMjpweKeHldX+T/wCAxvw/lF740tLhE27mAK5zjbERn8cGs7WlFHWqiqUa89rtafM3NY0qLUXurlrPUrsxySukMEmyJs3Eg5O089z7YrZnlFvQ7c23hSbdY21mjXiYjgm80nkZ3NuPze3H0qJfCaQ+J+h69EMwxc9FB/SpnTcpRd9nf8GvluRfcS72/ZJdy7l2HK+taivY8f8AEjJNbQadE2xlvrhY+efu/uxn/eJH41nT6rzO3Gp+4+8UcncPZalCj30/2K8OS8phJSYdmOOQ3XoMHj3NaI4zIuYF1rWb+5UMIHaTyAeMsQxjTH0XAHtincVjp/hParFqF5qk3ENjAzsfQ4I/kT+VRb3jojLloyXdr/M63V4vtPw8s4xazXLS+TI0UOdzksGb6ZyeardGEo8smjI0611Kz0+7VtOj0/TmuIylv5xkkWT5Ov1HPOOtRPYunu/Q9oh/1Ef+6P5VZmNu/wDj0lz/AHDQB5JNHZ3Pis219lYnaZRMT/qpXOFb8MD8zWF46q+7PWUKzcJqN1GK+fcxNa0ud/EHkajClvDZKwIUZLrlm4Hc/Mfr+NNztp1M44duXtOW8fLr8vzMfyZ7283xwt9onYBIkB+QfwoBWdWbbsj08twsKdN1Zqzf4I7O/wDJ8MaTa6CRG2papKkt+V7LkcH3OMe/zHvW6fKknueNVjGtVnOCtFFzUvL/AOEBsvOe8SPyoQfsY/eNwOBVR+FHPW/iS9WZ+nW32XwpdqlhcWSNfRskdy2ZCMKMngdSD2qanwhT3foewwf6iP8A3R/KrM2Nuji0lPohoA8W17jVrv8A67P/AOhGuGp8TPrcD/Bj6I1LTV9L1uyjsPEJaOWJdsN8n3gPRvX/AD9auMozVpfec1bD1cPJzo6p7x/yIZfEPh7w0jjw7aSXt8wx9ruV+VPp0P5AfWrUqdPY55Ucbi/j91djlbFp9R8R29xeytLLNcKXYnk81EZ80zorYRUsO0tEdwNF1XVf7Nt4dWudP08aZE2Lfgu/RhnIxwR611Q+Feh4GI0qy9WR3nhyPw/bTrbSTSQTmAs0r7maQO2SfwIqanwipbv0PUrf/j2i/wBwfyqzNjpE3xsp/iGKAPHfEqyWus3aXNu2Gkcpu9CSQQT1riqpqTPp8DaVGPK+xjEQvKRuKR46kZNZna3NR7spSQQszE3IHJH3fyoKdSaXwk2kRxrq1kwlDN56ZXB45q6fxI5cbKToyTX9XPXNGH/Eh0//AK9Y/wD0EV2w+FHzGJ/jT/xP8yvr1jcajZx2tsm+Rpk/AZ5NE1dEUmk36HXRp5capnO0AZpkjqAKt/p1tqEJjuIY5R6SKGFJpMuFSUHeLaOUvvAmkuWJtJ4Ae9vJkfrmsnRh2O2nmuIj1T9TDn+H+kBj/p92nsyg/wBKn2MfM6Fndb+VDLXwZpFldxXC3t5K8ThgoQDJH4U404p31M6+bVasHFxSudbYwXn2WG1tLORYoY1jWS5O3gDAPv8AhWqemh5s5OcnJ9Wb9naC1j+Zt8h+82MfkPSqJLFABQAUAFAAQD1GaACgAoAKACgA/9k=</field>
diff --git a/addons/point_of_sale/static/src/js/models.js b/addons/point_of_sale/static/src/js/models.js
index d2cf15b54f3..660434ba53e 100644
--- a/addons/point_of_sale/static/src/js/models.js
+++ b/addons/point_of_sale/static/src/js/models.js
@@ -295,7 +295,8 @@ function openerp_pos_models(instance, module){ //module is instance.point_of_sal
return;
}
//try to push an order to the server
- (new instance.web.Model('pos.order')).get_func('create_from_ui')([order])
+ // shadow : true is to prevent a spinner to appear in case of timeout
+ (new instance.web.Model('pos.order')).call('create_from_ui',[[order]],undefined,{ shadow:true })
.fail(function(unused, event){
//don't show error popup if it fails
event.preventDefault();
diff --git a/addons/point_of_sale/static/src/js/widgets.js b/addons/point_of_sale/static/src/js/widgets.js
index 874c387ea23..cec48dbe72f 100644
--- a/addons/point_of_sale/static/src/js/widgets.js
+++ b/addons/point_of_sale/static/src/js/widgets.js
@@ -794,7 +794,7 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
renderElement: function() {
var self = this;
this._super();
- this.$('.oe_pos_synch-notification-button').click(function(){
+ this.$el.click(function(){
self.pos.flush();
});
},
@@ -879,6 +879,8 @@ function openerp_pos_widgets(instance, module){ //module is instance.point_of_sa
instance.web.unblockUI();
self.$('.loader').animate({opacity:0},1500,'swing',function(){self.$('.loader').hide();});
+ self.pos.flush();
+
}).fail(function(){ // error when loading models data from the backend
instance.web.unblockUI();
return new instance.web.Model("ir.model.data").get_func("search_read")([['name', '=', 'action_pos_session_opening']], ['res_id'])
diff --git a/addons/portal/portal_view.xml b/addons/portal/portal_view.xml
index d56e277c3fb..1ff98bdc77f 100644
--- a/addons/portal/portal_view.xml
+++ b/addons/portal/portal_view.xml
@@ -21,7 +21,6 @@
<field name="params" eval="&quot;{
'domain': [
('to_read', '=', True),
- ('starred', '=', False),
],
'show_compose_message': False,
'show_link': False,
@@ -40,6 +39,7 @@
</field>
</record>
+ <!-- TODO: remove me in 8.0 -->
<record id="action_mail_star_feeds_portal" model="ir.actions.client">
<field name="name">To-do</field>
<field name="tag">mail.wall</field>
@@ -67,6 +67,9 @@
</p>
</field>
</record>
+ <menuitem name="To-do" id="portal_mail_starfeeds" parent="portal_messages"
+ action="action_mail_star_feeds_portal" sequence="20" groups="base.group_no_one"/>
+ <!-- end -->
<record id="action_mail_archives_feeds_portal" model="ir.actions.client">
<field name="name">Archives</field>
@@ -84,7 +87,6 @@
'show_compose_message': False,
'show_link': False,
'view_mailbox': True,
- 'read_action': 'read'
}&quot;"/>
<field name="help" type="html">
<p>
@@ -98,8 +100,6 @@
<menuitem name="Inbox" id="portal_inbox" parent="portal_messages"
action="action_mail_inbox_feeds_portal" sequence="10" groups="portal.group_portal"/>
- <menuitem name="To-do" id="portal_mail_starfeeds" parent="portal_messages"
- action="action_mail_star_feeds_portal" sequence="20" groups="portal.group_portal"/>
<menuitem name="Archives" id="portal_mail_archivesfeeds" parent="portal_messages"
action="action_mail_archives_feeds_portal" sequence="30" groups="portal.group_portal"/>
@@ -107,7 +107,7 @@
Create menu items that we'll leave empty for now - they'll be
filled up by other portal modules.
-->
- <menuitem name="Quotations and Sales Orders" id="portal_orders" parent="portal_menu" sequence="20"/>
+ <menuitem name="Billing" id="portal_orders" parent="portal_menu" sequence="20"/>
<menuitem name="After Sale Services" id="portal_after_sales" parent="portal_menu" sequence="30"/>
<menuitem name="Projects" id="portal_projects" parent="portal_menu" sequence="40"/>
diff --git a/addons/portal_anonymous/i18n/ru.po b/addons/portal_anonymous/i18n/ru.po
new file mode 100644
index 00000000000..5ae80dfe490
--- /dev/null
+++ b/addons/portal_anonymous/i18n/ru.po
@@ -0,0 +1,25 @@
+# Russian translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:05+0000\n"
+"PO-Revision-Date: 2013-04-09 13:04+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Russian <ru@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-10 05:21+0000\n"
+"X-Generator: Launchpad (build 16550)\n"
+
+#. module: portal_anonymous
+#. openerp-web
+#: code:addons/portal_anonymous/static/src/xml/portal_anonymous.xml:8
+#, python-format
+msgid "Login"
+msgstr "Вход"
diff --git a/addons/portal_crm/i18n/cs.po b/addons/portal_crm/i18n/cs.po
new file mode 100644
index 00000000000..985d487adbc
--- /dev/null
+++ b/addons/portal_crm/i18n/cs.po
@@ -0,0 +1,546 @@
+# Czech 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-03-29 18:40+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-30 05:27+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Lead"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,title:0
+msgid "Title"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,probability:0
+msgid "Success Rate (%)"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact us"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action:0
+msgid "Next Action Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,fax:0
+msgid "Fax"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,zip:0
+msgid "Zip"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you for your interest, we'll respond to your request shortly."
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,mobile:0
+msgid "Mobile"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,description:0
+msgid "Notes"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_latitude:0
+msgid "Geo Latitude"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_name:0
+msgid "Customer Name"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,channel_id:0
+msgid "Communication channel (mail, direct, phone, ...)"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type_id:0
+msgid "Campaign"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref:0
+msgid "Reference"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_next:0
+#: field:portal_crm.crm_contact_us,title_action:0
+msgid "Next Action"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_summary:0
+msgid ""
+"Holds the Chatter summary (number of messages, ...). This summary is "
+"directly in html format in order to be inserted in kanban views."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_id:0
+msgid "Partner"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.actions.act_window,name:portal_crm.action_contact_us
+msgid "Contact Us"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,name:0
+msgid "Subject"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,opt_out:0
+msgid "Opt-Out"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state_id:0
+msgid "State"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_id:0
+msgid "Linked partner (optional). Usually created when converting the lead."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,payment_mode:0
+msgid "Payment Mode"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "New"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,type:0
+msgid "Type"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,channel_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Name"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,create_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Close"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type:0
+msgid "Type is used to separate Leads and Opportunities"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,categ_ids:0
+msgid "Categories"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_login:0
+msgid "User Login"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,opt_out:0
+msgid ""
+"If opt-out is checked, this contact has refused to receive emails or "
+"unsubscribed to a campaign."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,contact_name:0
+msgid "Contact Name"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.ui.menu,name:portal_crm.portal_company_contact
+msgid "Contact"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_email:0
+msgid "Partner Contact Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_revenue:0
+msgid "Expected Revenue"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,task_ids:0
+msgid "Tasks"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Contact form"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_currency:0
+msgid "Currency"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_deadline:0
+msgid "Expected Closing"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,ref2:0
+msgid "Reference 2"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_email:0
+msgid "User Email"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_name:0
+msgid ""
+"The name of the future partner company that will be created while converting "
+"the lead into opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,planned_cost:0
+msgid "Planned Costs"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_deadline:0
+msgid "Estimate of the date on which the opportunity will be won."
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,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 ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_closed:0
+#: selection:portal_crm.crm_contact_us,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_assign:0
+msgid "Assignation Date"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,state:0
+msgid "Status"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,email_cc:0
+msgid "Global CC"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street2:0
+msgid "Street2"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,id:0
+msgid "ID"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,phone:0
+msgid "Phone"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,active:0
+msgid "Active"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,user_id:0
+msgid "Salesperson"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,company_ids:0
+msgid "Companies"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,section_id:0
+msgid ""
+"When sending mails, the default email address is taken from the sales team."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_address_name:0
+msgid "Partner Contact Name"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_longitude:0
+msgid "Geo Longitude"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,date_assign:0
+msgid "Last date this case was forwarded/assigned to a partner"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,email_from:0
+msgid "Email address of the contact"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,city:0
+msgid "City"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Submit"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,function:0
+msgid "Function"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,referred:0
+msgid "Referred By"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Assigned Partner"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,type:0
+msgid "Opportunity"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,partner_assigned_id:0
+msgid "Partner this case has been forwarded/assigned to."
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,country_id:0
+msgid "Country"
+msgstr ""
+
+#. module: portal_crm
+#: view:portal_crm.crm_contact_us:0
+msgid "Thank you"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,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 ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: portal_crm
+#: help:portal_crm.crm_contact_us,type_id:0
+msgid ""
+"From which campaign (seminar, marketing campaign, mass mailing, ...) did "
+"this contact come from?"
+msgstr ""
+
+#. module: portal_crm
+#: selection:portal_crm.crm_contact_us,priority:0
+msgid "High"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,street:0
+msgid "Street"
+msgstr ""
+
+#. module: portal_crm
+#: field:portal_crm.crm_contact_us,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: portal_crm
+#: model:ir.model,name:portal_crm.model_portal_crm_crm_contact_us
+msgid "Contact form for the portal"
+msgstr ""
diff --git a/addons/portal_hr_employees/i18n/cs.po b/addons/portal_hr_employees/i18n/cs.po
new file mode 100644
index 00000000000..367029b7a38
--- /dev/null
+++ b/addons/portal_hr_employees/i18n/cs.po
@@ -0,0 +1,95 @@
+# Czech 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-03-30 09:15+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:28+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Coach"
+msgstr ""
+
+#. module: portal_hr_employees
+#: model:ir.actions.act_window,name:portal_hr_employees.action_team
+#: view:portal_crm.crm_contact_us:0
+msgid "Our Team"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Group By..."
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Company"
+msgstr ""
+
+#. module: portal_hr_employees
+#: selection:hr.employee,visibility:0
+msgid "Public"
+msgstr ""
+
+#. module: portal_hr_employees
+#: help:hr.employee,visibility:0
+msgid "Employee's visibility in the portal's contact page"
+msgstr ""
+
+#. module: portal_hr_employees
+#: selection:hr.employee,visibility:0
+msgid "Private"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Manager"
+msgstr ""
+
+#. module: portal_hr_employees
+#: model:ir.model,name:portal_hr_employees.model_hr_employee
+msgid "Employee"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Job"
+msgstr ""
+
+#. module: portal_hr_employees
+#: field:hr.employee,visibility:0
+msgid "Visibility"
+msgstr ""
+
+#. module: portal_hr_employees
+#: field:hr.employee,public_info:0
+msgid "Public Info"
+msgstr ""
+
+#. module: portal_hr_employees
+#: model:ir.model,name:portal_hr_employees.model_portal_crm_crm_contact_us
+msgid "Contact form for the portal"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+msgid "Department"
+msgstr ""
+
+#. module: portal_hr_employees
+#: view:hr.employee:0
+#: field:portal_crm.crm_contact_us,employee_ids:0
+msgid "Employees"
+msgstr ""
diff --git a/addons/portal_sale/portal_sale.py b/addons/portal_sale/portal_sale.py
index a6ca616ad2f..cd3b702d3c5 100644
--- a/addons/portal_sale/portal_sale.py
+++ b/addons/portal_sale/portal_sale.py
@@ -59,19 +59,8 @@ class sale_order(osv.Model):
assert len(ids) == 1
document = self.browse(cr, uid, ids[0], context=context)
partner = document.partner_id
- # TDE note: this code should be improved: used a real invite wizard instead of an ugly email
if partner.id not in document.message_follower_ids:
self.message_subscribe(cr, uid, ids, [partner.id], context=context)
- mail_values = {
- 'recipient_ids': [(4, partner.id)],
- 'subject': 'Invitation to follow %s' % document.name_get()[0][1],
- 'body_html': 'You have been invited to follow %s' % document.name_get()[0][1],
- 'auto_delete': True,
- 'type': 'email',
- }
- mail_obj = self.pool.get('mail.mail')
- mail_id = mail_obj.create(cr, uid, mail_values, context=context)
- mail_obj.send(cr, uid, [mail_id], context=context)
return super(sale_order, self).action_button_confirm(cr, uid, ids, context=context)
def get_signup_url(self, cr, uid, ids, context=None):
diff --git a/addons/product/pricelist.py b/addons/product/pricelist.py
index 73707e39807..757cce2ae95 100644
--- a/addons/product/pricelist.py
+++ b/addons/product/pricelist.py
@@ -374,7 +374,7 @@ class product_pricelist_item(osv.osv):
result.append((line.id, line.name))
result.append((-1, _('Other Pricelist')))
- result.append((-2, _('Partner section of the product form')))
+ result.append((-2, _('Supplier Prices on the product form')))
return result
_name = "product.pricelist.item"
diff --git a/addons/product/product.py b/addons/product/product.py
index 33225c92c6f..82b37f7b9e8 100644
--- a/addons/product/product.py
+++ b/addons/product/product.py
@@ -588,10 +588,13 @@ class product_product(osv.osv):
# Check if the product is last product of this template
other_product_ids = self.search(cr, uid, [('product_tmpl_id', '=', tmpl_id), ('id', '!=', product.id)], context=context)
if not other_product_ids:
- unlink_product_tmpl_ids.append(tmpl_id)
+ unlink_product_tmpl_ids.append(tmpl_id)
unlink_ids.append(product.id)
+ res = super(product_product, self).unlink(cr, uid, unlink_ids, context=context)
+ # delete templates after calling super, as deleting template could lead to deleting
+ # products due to ondelete='cascade'
self.pool.get('product.template').unlink(cr, uid, unlink_product_tmpl_ids, context=context)
- return super(product_product, self).unlink(cr, uid, unlink_ids, context=context)
+ return res
def onchange_uom(self, cursor, user, ids, uom_id, uom_po_id):
if uom_id and uom_po_id:
diff --git a/addons/product/product_view.xml b/addons/product/product_view.xml
index ddb1ab3809f..00e925fd6a0 100644
--- a/addons/product/product_view.xml
+++ b/addons/product/product_view.xml
@@ -581,6 +581,7 @@
<field name="delay"/>
<field name="company_id" groups="base.group_multi_company" widget="selection"/>
</group>
+ <p groups="product.group_purchase_pricelist" class="oe_grey">The prices below will only be taken into account when your pricelist is set as based on supplier prices.</p>
<field groups="product.group_purchase_pricelist" name="pricelist_ids">
<tree editable="bottom" string="Pricelist">
<field name="min_quantity"/>
diff --git a/addons/project/project.py b/addons/project/project.py
index 0751865d9c4..eb328007d44 100644
--- a/addons/project/project.py
+++ b/addons/project/project.py
@@ -286,7 +286,6 @@ class project(osv.osv):
'type_ids': _get_type_common,
'alias_model': 'project.task',
'privacy_visibility': 'public',
- 'alias_domain': False, # always hide alias during creation
}
# TODO: Why not using a SQL contraints ?
@@ -531,11 +530,11 @@ def Project():
context = dict(context, project_creation_in_progress=True)
mail_alias = self.pool.get('mail.alias')
if not vals.get('alias_id') and vals.get('name', False):
- vals.pop('alias_name', None) # prevent errors during copy()
+ alias_name = vals.pop('alias_name', None) # prevent errors during copy()
alias_id = mail_alias.create_unique_alias(cr, uid,
# Using '+' allows using subaddressing for those who don't
# have a catchall domain setup.
- {'alias_name': "project+"+short_name(vals['name'])},
+ {'alias_name': alias_name or "project+"+short_name(vals['name'])},
model_name=vals.get('alias_model', 'project.task'),
context=context)
vals['alias_id'] = alias_id
@@ -605,8 +604,7 @@ class task(base_stage, osv.osv):
search_domain = []
project_id = self._resolve_project_id_from_context(cr, uid, context=context)
if project_id:
- search_domain += ['|', ('project_ids', '=', project_id)]
- search_domain += [('id', 'in', ids)]
+ search_domain += [('project_ids', '=', project_id)]
stage_ids = stage_obj._search(cr, uid, search_domain, order=order, access_rights_uid=access_rights_uid, context=context)
result = stage_obj.name_get(cr, access_rights_uid, stage_ids, context=context)
# restore order of the search
@@ -889,6 +887,12 @@ class task(base_stage, osv.osv):
res['fields'][f]['string'] = res['fields'][f]['string'].replace('Hours',tm)
return res
+ def get_empty_list_help(self, cr, uid, help, context=None):
+ context['empty_list_help_id'] = context.get('default_project_id')
+ context['empty_list_help_model'] = 'project.project'
+ context['empty_list_help_document_name'] = _("tasks")
+ return super(task, self).get_empty_list_help(cr, uid, help, context=context)
+
# ----------------------------------------
# Case management
# ----------------------------------------
diff --git a/addons/project/project_data.xml b/addons/project/project_data.xml
index 025327d70b3..7bf1a623a2c 100644
--- a/addons/project/project_data.xml
+++ b/addons/project/project_data.xml
@@ -21,6 +21,7 @@
<record id="all_projects_account" model="account.analytic.account">
<field name="name">Projects</field>
<field name="code">3</field>
+ <field name="type">view</field>
</record>
<function id="parent_project_default_set" model="ir.values" name="set" eval="('default',False,'parent_id', [('project.project', False)], all_projects_account, True, False, False, False, True)"/>
diff --git a/addons/project/project_view.xml b/addons/project/project_view.xml
index 16dbe44ccc1..a016c46e0e0 100644
--- a/addons/project/project_view.xml
+++ b/addons/project/project_view.xml
@@ -50,16 +50,17 @@
<field name="name">Tasks</field>
<field name="res_model">project.task</field>
<field name="view_mode">kanban,tree,form,calendar,gantt,graph</field>
- <field name="context">{'search_default_project_id': [active_id], 'default_project_id': active_id}</field>
+ <field name="context">{
+ 'search_default_project_id': [active_id],
+ 'default_project_id': active_id,
+ }</field>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to create a new task.
- </p><p>
- OpenERP's project management allows you to manage the pipeline
- of tasks in order to get things done efficiently. You can
- track progress, discuss on tasks, attach documents, etc.
- </p>
+ <p>
+ OpenERP's project management allows you to manage the pipeline
+ of tasks in order to get things done efficiently. You can
+ track progress, discuss on tasks, attach documents, etc.
+ </p>
</field>
</record>
@@ -87,6 +88,17 @@
<h1>
<field name="name" string="Project Name"/>
</h1>
+ <div name="group_alias"
+ attrs="{'invisible': [('alias_domain', '=', False)]}">
+ <label for="alias_id" string="Email Alias"/>
+ <field name="alias_id" class="oe_inline oe_read_only" required="0" nolabel="1"/>
+ <span name="edit_alias" class="oe_edit_only">
+ <field name="alias_name" class="oe_inline"
+ attrs="{'required': [('alias_id', '!=', False)]}"/>
+ @
+ <field name="alias_domain" class="oe_inline" readonly="1"/>
+ </span>
+ </div>
<div name="options_active">
<field name="use_tasks" class="oe_inline"/>
<label for="use_tasks"/>
@@ -133,13 +145,6 @@
</page>
<page string="Other Info">
<group>
- <group string="Email Interface" attrs="{'invisible': [('alias_domain', '=', False)]}">
- <div>
- <field name="alias_id" invisible="1" required="0"/>
- <label for="alias_name" class="oe_edit_only "/>
- <field name="alias_name" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>@<field name="alias_domain" class="oe_inline"/>
- </div>
- </group>
<group string="Administration" groups="project.group_time_work_estimation_tasks">
<field name="planned_hours" widget="float_time"/>
<field name="effective_hours" widget="float_time"/>
@@ -231,7 +236,6 @@
<field name="color"/>
<field name="task_count"/>
<field name="alias_id"/>
- <field name="alias_domain"/>
<field name="doc_count"/>
<templates>
<t t-name="kanban-box">
@@ -245,8 +249,10 @@
</ul>
</div>
<div class="oe_kanban_content">
-
<h4><field name="name"/></h4>
+ <div class="oe_kanban_alias" t-if="record.alias_id.value">
+ <span class="oe_e">%%</span><small><field name="alias_id"/></small>
+ </div>
<div class="oe_kanban_project_list">
<a t-if="record.use_tasks.raw_value" name="%(act_project_project_2_project_task_all)d" type="action" style="margin-right: 10px">
<span t-if="record.task_count.raw_value gt 1"><field name="task_count"/> Tasks</span>
@@ -622,13 +628,11 @@
<field name="view_mode">kanban,tree,form,calendar,gantt,graph</field>
<field name="search_view_id" ref="view_task_search_form"/>
<field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to create a new task.
- </p><p>
- OpenERP's project management allows you to manage the pipeline
- of tasks in order to get things done efficiently. You can
- track progress, discuss on tasks, attach documents, etc.
- </p>
+ <p>
+ OpenERP's project management allows you to manage the pipeline
+ of tasks in order to get things done efficiently. You can
+ track progress, discuss on tasks, attach documents, etc.
+ </p>
</field>
</record>
<record id="open_view_task_list_kanban" model="ir.actions.act_window.view">
diff --git a/addons/project_issue/i18n/cs.po b/addons/project_issue/i18n/cs.po
new file mode 100644
index 00000000000..cab9361dc60
--- /dev/null
+++ b/addons/project_issue/i18n/cs.po
@@ -0,0 +1,984 @@
+# Czech translation for openobject-addons
+# Copyright (c) 2013 Rosetta Contributors and Canonical Ltd 2013
+# This file is distributed under the same license as the openobject-addons package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, 2013.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: openobject-addons\n"
+"Report-Msgid-Bugs-To: FULL NAME <EMAIL@ADDRESS>\n"
+"POT-Creation-Date: 2012-12-21 17:04+0000\n"
+"PO-Revision-Date: 2013-03-31 16:53+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: project_issue
+#: model:project.category,name:project_issue.project_issue_category_03
+msgid "Deadly bug"
+msgstr ""
+
+#. module: project_issue
+#: help:project.config.settings,fetchmail_issue:0
+msgid ""
+"Allows you to configure your incoming mail server, and create issues from "
+"incoming emails."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,delay_open:0
+msgid "Avg. Delay to Open"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_open:0
+msgid "Working Hours to Open the Issue"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_started
+msgid "Issue started"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_open:0
+msgid "Opened"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,opening_date:0
+msgid "Date of Opening"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "March"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,progress:0
+msgid "Progress (%)"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,company_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,email_cc:0
+msgid "Watchers Emails"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,kanban_state:0
+msgid ""
+"A Issue's kanban state indicates special situations affecting it:\n"
+" * Normal is the default situation\n"
+" * Blocked indicates something is preventing the progress of this issue\n"
+" * Ready for next stage indicates the issue is ready to be pulled to the "
+"next stage"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: project_issue
+#: help:account.analytic.account,use_issues:0
+msgid "Check this field if this project manages issues"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,day_open:0
+msgid "Days to Open"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:473
+#, python-format
+msgid ""
+"You cannot escalate this issue.\n"
+"The relevant Project has not configured the Escalation Project!"
+msgstr ""
+
+#. module: project_issue
+#: constraint:project.project:0
+msgid "Error! You cannot assign escalation to the same project!"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Highest"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,inactivity_days:0
+msgid "Difference in days between last action and current date"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,day:0
+msgid "Day"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,days_since_creation:0
+msgid "Days since creation date"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,task_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,task_id:0
+msgid "Task"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_project_issue_stage
+msgid "Issue Stage Changed"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,inactivity_days:0
+msgid "Days since last action"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_project
+#: view:project.issue:0
+#: field:project.issue,project_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,project_id:0
+msgid "Project"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,help:project_issue.project_issue_categ_act0
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to report a new issue.\n"
+" </p><p>\n"
+" The OpenERP issues tacker allows you to efficiantly manage "
+"things\n"
+" like internal requests, software development bugs, customer\n"
+" complaints, project troubles, material breakdowns, etc.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: selection:project.issue.report,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,description:0
+msgid "Private Note"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,date_closed:0
+msgid "Date of Closing"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Search"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,color:0
+msgid "Color Index"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_open:0
+msgid "Avg. Working Hours to Open"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,message_summary:0
+msgid ""
+"Holds the Chatter summary (number of messages, ...). This summary is "
+"directly in html format in order to be inserted in kanban views."
+msgstr ""
+
+#. module: project_issue
+#: help:project.project,project_escalation_id:0
+msgid ""
+"If any issue is escalated from the current Project, it will be listed under "
+"the project selected here."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Extra Info"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,help:project_issue.action_project_issue_report
+msgid ""
+"This report on the project issues allows you to analyse the quality of your "
+"support or after-sales services. You can track the issues per age. You can "
+"analyse the time required to open or close an issue, the number of email to "
+"exchange and the time spent on average by issues."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Edit..."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Responsible"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Statistics"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,kanban_state:0
+msgid "Kanban State"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:368
+#, python-format
+msgid "Project issue <b>converted</b> to task."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,priority:0
+#: view:project.issue.report:0
+#: field:project.issue.report,priority:0
+msgid "Priority"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,version_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,version_id:0
+msgid "Version"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+#: view:project.issue.report:0
+msgid "New"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_action
+msgid "Issue Categories"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,email_from:0
+msgid "Email"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,channel_id:0
+#: field:project.issue.report,channel_id:0
+msgid "Channel"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Lowest"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:390
+#, python-format
+msgid "%s (copy)"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Unassigned Issues"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,create_date:0
+#: view:project.issue.report:0
+#: field:project.issue.report,creation_date:0
+msgid "Creation Date"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.project_issue_version_action
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_version_act
+msgid "Versions"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "To Do Issues"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_version
+msgid "project.issue.version"
+msgstr ""
+
+#. module: project_issue
+#: field:project.config.settings,fetchmail_issue:0
+msgid "Create issues from an incoming email account "
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+#: view:project.issue.report:0
+msgid "Done"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "July"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_category_act
+msgid "Categories"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,stage_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,stage_id:0
+msgid "Stage"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_project_issue_report
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_report_tree
+#: view:project.issue.report:0
+msgid "Issues Analysis"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:507
+#, python-format
+msgid "No Subject"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,name:project_issue.action_view_my_project_issue_tree
+msgid "My Project Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,partner_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,partner_id:0
+msgid "Contact"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Delete"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:373
+#, python-format
+msgid "Tasks"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,nbr:0
+msgid "# of Issues"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "September"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "December"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,categ_ids:0
+msgid "Tags"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Issue Tracker Tree"
+msgstr ""
+
+#. module: project_issue
+#: model:project.category,name:project_issue.project_issue_category_01
+msgid "Little problem"
+msgstr ""
+
+#. module: project_issue
+#: view:project.project:0
+msgid "creates"
+msgstr ""
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.feature_request_categ
+msgid "Feature Requests"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,write_date:0
+msgid "Update Date"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Project:"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Open Features"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_action_next:0
+msgid "Next Action"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,kanban_state:0
+msgid "Blocked"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,user_email:0
+msgid "User Email"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Number of Project Issues"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,channel_id:0
+msgid "Communication channel."
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,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 ""
+
+#. module: project_issue
+#: model:crm.case.categ,name:project_issue.bug_categ
+msgid "Maintenance"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,state:0
+msgid "Draft"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Low"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_closed:0
+#: selection:project.issue.report,state:0
+msgid "Closed"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,delay_close:0
+msgid "Avg. Delay to Close"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,state:0
+#: view:project.issue.report:0
+#: selection:project.issue.report,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,state:0
+#: field:project.issue.report,state:0
+msgid "Status"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "#Project Issues"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "August"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,kanban_state:0
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "Normal"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,issue_count:0
+msgid "unknown"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Category:"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "June"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "New Issues"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,day_close:0
+msgid "Days to Close"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,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 ""
+
+#. module: project_issue
+#: field:project.issue,active:0
+#: field:project.issue.version,active:0
+msgid "Active"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "November"
+msgstr ""
+
+#. module: project_issue
+#: code:addons/project_issue/project_issue.py:473
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+msgid "Search"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "October"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,days_since_creation:0
+msgid "Difference in days between creation date and current date"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "January"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Tree"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,email_from:0
+msgid "These people will receive email."
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date:0
+msgid "Date"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,user_id:0
+#: view:project.issue.report:0
+#: field:project.issue.report,user_id:0
+msgid "Assigned to"
+msgstr ""
+
+#. module: project_issue
+#: view:project.config.settings:0
+msgid "Configure"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_closed
+msgid "Issue closed"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Current Features"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.version:0
+msgid "Issue Version"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.version,name:0
+msgid "Version Number"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,state:0
+msgid "Open"
+msgstr ""
+
+#. module: project_issue
+#: field:account.analytic.account,use_issues:0
+#: model:ir.actions.act_window,name:project_issue.act_project_project_2_project_issue_all
+#: model:ir.actions.act_window,name:project_issue.project_issue_categ_act0
+#: model:ir.ui.menu,name:project_issue.menu_project_confi
+#: model:ir.ui.menu,name:project_issue.menu_project_issue_track
+#: view:project.issue:0
+#: view:project.project:0
+msgid "Issues"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,state:0
+msgid "In Progress"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+msgid "To Do"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue
+#: view:project.issue.report:0
+msgid "Project Issue"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Creation Month"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,progress:0
+msgid "Computed as: Time Spent / Total Time."
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: selection:project.issue,kanban_state:0
+msgid "Ready for next stage"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,section_id:0
+msgid "Sale Team"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: view:project.issue.report:0
+#: field:project.issue.report,month:0
+msgid "Month"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+#: field:project.issue,name:0
+#: view:project.project:0
+msgid "Issue"
+msgstr ""
+
+#. module: project_issue
+#: model:project.category,name:project_issue.project_issue_category_02
+msgid "PBCK"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature Tracker Search"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Description"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,section_id:0
+msgid "Sales Team"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "May"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_config_settings
+msgid "project.config.settings"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_issue_closed
+#: model:mail.message.subtype,name:project_issue.mt_project_issue_closed
+msgid "Issue Closed"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,email:0
+msgid "# Emails"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_issue_new
+#: model:mail.message.subtype,name:project_issue.mt_project_issue_new
+msgid "Issue Created"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_issue_blocked
+#: model:mail.message.subtype,name:project_issue.mt_project_issue_blocked
+msgid "Issue Blocked"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "February"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_stage
+#: model:mail.message.subtype,description:project_issue.mt_project_issue_stage
+msgid "Stage changed"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "Feature description"
+msgstr ""
+
+#. module: project_issue
+#: field:project.project,project_escalation_id:0
+msgid "Project Escalation"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.actions.act_window,help:project_issue.project_issue_version_action
+msgid ""
+"<p class=\"oe_view_nocontent_create\">\n"
+" Click to add a new version.\n"
+" </p><p>\n"
+" Define here the different versions of your products on "
+"which\n"
+" you can work on issues.\n"
+" </p>\n"
+" "
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue,section_id:0
+msgid ""
+"Sales team to which Case belongs to. Define "
+"Responsible user and Email account for mail gateway."
+msgstr ""
+
+#. module: project_issue
+#: view:board.board:0
+msgid "My Issues"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue.report,delay_open:0
+msgid "Number of Days to open the project issue."
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue.report,month:0
+msgid "April"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "⇒ Escalate"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue:0
+msgid "References"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_new
+msgid "Issue created"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,working_hours_close:0
+msgid "Working Hours to Close the Issue"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,id:0
+msgid "ID"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,description:project_issue.mt_issue_blocked
+msgid "Issue blocked"
+msgstr ""
+
+#. module: project_issue
+#: model:ir.model,name:project_issue.model_project_issue_report
+msgid "project.issue.report"
+msgstr ""
+
+#. module: project_issue
+#: help:project.issue.report,delay_close:0
+msgid "Number of Days to close the project issue"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue.report,working_hours_close:0
+msgid "Avg. Working Hours to Close"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_issue_stage
+msgid "Stage Changed"
+msgstr ""
+
+#. module: project_issue
+#: selection:project.issue,priority:0
+#: selection:project.issue.report,priority:0
+msgid "High"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_deadline:0
+msgid "Deadline"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,date_action_last:0
+msgid "Last Action"
+msgstr ""
+
+#. module: project_issue
+#: view:project.issue.report:0
+#: field:project.issue.report,name:0
+msgid "Year"
+msgstr ""
+
+#. module: project_issue
+#: field:project.issue,duration:0
+msgid "Duration"
+msgstr ""
+
+#. module: project_issue
+#: model:mail.message.subtype,name:project_issue.mt_issue_started
+#: model:mail.message.subtype,name:project_issue.mt_project_issue_started
+msgid "Issue Started"
+msgstr ""
diff --git a/addons/project_issue/project_issue.py b/addons/project_issue/project_issue.py
index 01dab2962f3..7aa408a99aa 100644
--- a/addons/project_issue/project_issue.py
+++ b/addons/project_issue/project_issue.py
@@ -137,6 +137,13 @@ class project_issue(base_stage, osv.osv):
res = {}
for issue in self.browse(cr, uid, ids, context=context):
+
+ # if the working hours on the project are not defined, use default ones (8 -> 12 and 13 -> 17 * 5), represented by None
+ if not issue.project_id or not issue.project_id.resource_calendar_id:
+ working_hours = None
+ else:
+ working_hours = issue.project_id.resource_calendar_id.id
+
res[issue.id] = {}
for field in fields:
duration = 0
@@ -150,20 +157,24 @@ class project_issue(base_stage, osv.osv):
ans = date_open - date_create
date_until = issue.date_open
#Calculating no. of working hours to open the issue
- if issue.project_id.resource_calendar_id:
- hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id,
+ hours = cal_obj._interval_hours_get(cr, uid, working_hours,
date_create,
- date_open)
+ date_open,
+ timezone_from_uid=issue.user_id.id or uid,
+ exclude_leaves=False,
+ context=context)
elif field in ['working_hours_close','day_close']:
if issue.date_closed:
date_close = datetime.strptime(issue.date_closed, "%Y-%m-%d %H:%M:%S")
date_until = issue.date_closed
ans = date_close - date_create
#Calculating no. of working hours to close the issue
- if issue.project_id.resource_calendar_id:
- hours = cal_obj.interval_hours_get(cr, uid, issue.project_id.resource_calendar_id.id,
- date_create,
- date_close)
+ hours = cal_obj._interval_hours_get(cr, uid, working_hours,
+ date_create,
+ date_close,
+ timezone_from_uid=issue.user_id.id or uid,
+ exclude_leaves=False,
+ context=context)
elif field in ['days_since_creation']:
if issue.create_date:
days_since_creation = datetime.today() - datetime.strptime(issue.create_date, "%Y-%m-%d %H:%M:%S")
@@ -182,27 +193,12 @@ class project_issue(base_stage, osv.osv):
resource_ids = res_obj.search(cr, uid, [('user_id','=',issue.user_id.id)])
if resource_ids and len(resource_ids):
resource_id = resource_ids[0]
- duration = float(ans.days)
- if issue.project_id and issue.project_id.resource_calendar_id:
- duration = float(ans.days) * 24
-
- new_dates = cal_obj.interval_min_get(cr, uid,
- issue.project_id.resource_calendar_id.id,
- date_create,
- duration, resource=resource_id)
- no_days = []
- date_until = datetime.strptime(date_until, '%Y-%m-%d %H:%M:%S')
- for in_time, out_time in new_dates:
- if in_time.date not in no_days:
- no_days.append(in_time.date)
- if out_time > date_until:
- break
- duration = len(no_days)
+ duration = float(ans.days) + float(ans.seconds)/(24*3600)
if field in ['working_hours_open','working_hours_close']:
res[issue.id][field] = hours
- else:
- res[issue.id][field] = abs(float(duration))
+ elif field in ['day_open','day_close']:
+ res[issue.id][field] = duration
return res
@@ -420,6 +416,12 @@ class project_issue(base_stage, osv.osv):
self.write(cr, uid, ids, {'date_open': False, 'date_closed': False})
return res
+ 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')
+ context['empty_list_help_document_name'] = _("issues")
+ return super(project_issue, self).get_empty_list_help(cr, uid, help, context=context)
+
# -------------------------------------------------------
# Stage management
# -------------------------------------------------------
@@ -567,7 +569,8 @@ class project_issue(base_stage, osv.osv):
return res
-class project(osv.osv):
+
+class project(osv.Model):
_inherit = "project.project"
def _get_alias_models(self, cr, uid, context=None):
@@ -582,7 +585,9 @@ class project(osv.osv):
return res
_columns = {
- 'project_escalation_id' : fields.many2one('project.project','Project Escalation', help='If any issue is escalated from the current Project, it will be listed under the project selected here.', states={'close':[('readonly',True)], 'cancelled':[('readonly',True)]}),
+ 'project_escalation_id': fields.many2one('project.project', 'Project Escalation',
+ help='If any issue is escalated from the current Project, it will be listed under the project selected here.',
+ states={'close': [('readonly', True)], 'cancelled': [('readonly', True)]}),
'issue_count': fields.function(_issue_count, type='integer', string="Unclosed Issues"),
}
@@ -597,14 +602,13 @@ class project(osv.osv):
(_check_escalation, 'Error! You cannot assign escalation to the same project!', ['project_escalation_id'])
]
-project()
-class account_analytic_account(osv.osv):
+class account_analytic_account(osv.Model):
_inherit = 'account.analytic.account'
_description = 'Analytic Account'
_columns = {
- 'use_issues' : fields.boolean('Issues', help="Check this field if this project manages issues"),
+ 'use_issues': fields.boolean('Issues', help="Check this field if this project manages issues"),
}
def on_change_template(self, cr, uid, ids, template_id, context=None):
@@ -615,16 +619,34 @@ class account_analytic_account(osv.osv):
return res
def _trigger_project_creation(self, cr, uid, vals, context=None):
- if context is None: context = {}
+ if context is None:
+ context = {}
res = super(account_analytic_account, self)._trigger_project_creation(cr, uid, vals, context=context)
return res or (vals.get('use_issues') and not 'project_creation_in_progress' in context)
-account_analytic_account()
-class project_project(osv.osv):
+class project_project(osv.Model):
_inherit = 'project.project'
+
_defaults = {
'use_issues': True
}
+ def _check_create_write_values(self, cr, uid, vals, context=None):
+ """ Perform some check on values given to create or write. """
+ # Handle use_tasks / use_issues: if only one is checked, alias should take the same model
+ if vals.get('use_tasks') and not vals.get('use_issues'):
+ vals['alias_model'] = 'project.task'
+ elif vals.get('use_issues') and not vals.get('use_tasks'):
+ vals['alias_model'] = 'project.issue'
+
+ def create(self, cr, uid, vals, context=None):
+ self._check_create_write_values(cr, uid, vals, context=context)
+ return super(project_project, self).create(cr, uid, vals, context=context)
+
+ def write(self, cr, uid, ids, vals, context=None):
+ self._check_create_write_values(cr, uid, vals, context=context)
+ return super(project_project, self).write(cr, uid, ids, vals, context=context)
+
+
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/project_issue/project_issue_menu.xml b/addons/project_issue/project_issue_menu.xml
index 78841f56156..308b4884844 100644
--- a/addons/project_issue/project_issue_menu.xml
+++ b/addons/project_issue/project_issue_menu.xml
@@ -14,13 +14,11 @@
<field name="domain" eval=""/>
<field name="search_view_id" ref="view_project_issue_filter"/>
<field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to report a new issue.
- </p><p>
- The OpenERP issues tacker allows you to efficiantly manage things
- like internal requests, software development bugs, customer
- complaints, project troubles, material breakdowns, etc.
- </p>
+ <p>
+ The OpenERP issues tacker allows you to efficiantly manage things
+ like internal requests, software development bugs, customer
+ complaints, project troubles, material breakdowns, etc.
+ </p>
</field>
</record>
diff --git a/addons/project_issue/project_issue_view.xml b/addons/project_issue/project_issue_view.xml
index 500a1376422..f888ff9da77 100644
--- a/addons/project_issue/project_issue_view.xml
+++ b/addons/project_issue/project_issue_view.xml
@@ -302,7 +302,18 @@
<field name="view_type">form</field>
<field name="name">Issues</field>
<field name="view_mode">kanban,tree,form,calendar,graph</field>
- <field name="context">{'search_default_project_id': [active_id], 'default_project_id': active_id}</field>
+ <field name="context">{
+ 'search_default_project_id': [active_id],
+ 'default_project_id': active_id,
+ }
+ </field>
+ <field name="help" type="html">
+ <p>
+ The OpenERP issues tacker allows you to efficiantly manage things
+ like internal requests, software development bugs, customer
+ complaints, project troubles, material breakdowns, etc.
+ </p>
+ </field>
</record>
<!-- Project -->
@@ -324,9 +335,18 @@
<field name="priority" position="before">
<field name="project_escalation_id"/>
</field>
- <field name="alias_domain" position="after">
- <label for="alias_model" class="oe_edit_only" string="creates"/><field name="alias_model" class="oe_edit_only oe_inline"/>
- </field>
+ <xpath expr='//span[@name="edit_alias"]' position='replace'>
+ <span class="oe_edit_only" name="edit_alias">
+ <field name="alias_name" class="oe_inline" attrs="{'required': [('alias_id', '!=', False)]}"/>
+ @
+ <field class="oe_inline" name="alias_domain"/>
+ <span class="oe_inline"
+ attrs="{'invisible': ['|', ('use_issues', '!=', True), ('use_tasks', '!=', True)]}">
+ <label for="alias_model" string="creates"/>
+ <field name="alias_model" class="oe_inline"/>
+ </span>
+ </span>
+ </xpath>
</field>
</record>
diff --git a/addons/project_issue/report/project_issue_report.py b/addons/project_issue/report/project_issue_report.py
index a5eb903a742..199a971c4ad 100644
--- a/addons/project_issue/report/project_issue_report.py
+++ b/addons/project_issue/report/project_issue_report.py
@@ -63,9 +63,9 @@ class project_issue_report(osv.osv):
'project_id':fields.many2one('project.project', 'Project',readonly=True),
'version_id': fields.many2one('project.issue.version', 'Version'),
'user_id' : fields.many2one('res.users', 'Assigned to',readonly=True),
- 'partner_id': fields.many2one('res.partner','Contact',domain="[('object_id.model', '=', 'project.issue')]"),
+ 'partner_id': fields.many2one('res.partner','Contact'),
'channel_id': fields.many2one('crm.case.channel', 'Channel',readonly=True),
- 'task_id': fields.many2one('project.task', 'Task',domain="[('object_id.model', '=', 'project.issue')]" ),
+ 'task_id': fields.many2one('project.task', 'Task'),
'email': fields.integer('# Emails', size=128, readonly=True),
}
@@ -96,8 +96,8 @@ class project_issue_report(osv.osv):
c.channel_id,
c.task_id,
date_trunc('day',c.create_date) as create_date,
- extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open,
- extract('epoch' from (c.date_closed-c.date_open))/(3600*24) as delay_close,
+ c.day_open as delay_open,
+ c.day_close as delay_close,
(SELECT count(id) FROM mail_message WHERE model='project.issue' AND res_id=c.id) AS email
FROM
diff --git a/addons/project_issue/report/project_issue_report_view.xml b/addons/project_issue/report/project_issue_report_view.xml
index 47ea91fad5f..e56c6612e0d 100644
--- a/addons/project_issue/report/project_issue_report_view.xml
+++ b/addons/project_issue/report/project_issue_report_view.xml
@@ -14,7 +14,7 @@
<field name="version_id" string="Version" invisible="1"/>
<field name="priority" invisible="1"/>
<field name="company_id" invisible="1" groups="base.group_multi_company"/>
- <field name="section_id" invisible="1"/>
+ <field name="section_id" invisible="1" groups="base.group_multi_salesteams"/>
<field name="user_id" invisible="1"/>
<field name="channel_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
diff --git a/addons/project_issue_sheet/i18n/cs.po b/addons/project_issue_sheet/i18n/cs.po
new file mode 100644
index 00000000000..606e4246807
--- /dev/null
+++ b/addons/project_issue_sheet/i18n/cs.po
@@ -0,0 +1,72 @@
+# Czech 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-03-31 16:53+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\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/cs.po b/addons/project_long_term/i18n/cs.po
new file mode 100644
index 00000000000..fb1fb15f3a2
--- /dev/null
+++ b/addons/project_long_term/i18n/cs.po
@@ -0,0 +1,502 @@
+# Czech 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-03-31 16:54+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: project_long_term
+#: 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
+#: 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 ""
+
+#. 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.user.allocation:0
+msgid "Team Planning"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,user_ids:0
+msgid "Assigned Users"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,next_phase_ids:0
+msgid "Next Phases"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_user_allocation
+msgid "Phase User Allocation"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project's Tasks"
+msgstr ""
+
+#. 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"
+" "
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,task_ids:0
+msgid "Project Tasks"
+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
+#: view:project.compute.phases:0
+msgid "Schedule Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,state:0
+msgid "Status"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.compute.phases,target_project:0
+msgid "Action"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Start Phase"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_task
+msgid "Task"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Draft"
+msgstr ""
+
+#. module: project_long_term
+#: 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 "New"
+msgstr ""
+
+#. module: project_long_term
+#: 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
+#: selection:project.phase,state:0
+msgid "Pending"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,progress:0
+msgid "Computed based on related tasks"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "In Progress Phases"
+msgstr ""
+
+#. module: project_long_term
+#: 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/wizard/project_compute_phases.py:48
+#, python-format
+msgid "Please specify a project to schedule."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: view:project.user.allocation:0
+msgid "Group By..."
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Remaining Hours"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_start:0
+msgid "Minimum Start Date"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,product_uom:0
+msgid ""
+"Unit of Measure (Unit of Measure) is the unit of measurement for Duration"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,user_ids:0
+msgid ""
+"The resources on the project can be computed automatically by the scheduler."
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,sequence:0
+msgid "Sequence"
+msgstr ""
+
+#. module: project_long_term
+#: help:account.analytic.account,use_phases:0
+msgid "Check this field if you plan to use phase-based scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: 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
+#: field:project.phase,progress:0
+msgid "Progress"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_pm_users_project1
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource
+msgid "Resources"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "My Projects"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.project:0
+#: view:project.user.allocation:0
+msgid "Phase"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,duration:0
+msgid "By default in days"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.ui.menu,name:project_long_term.menu_view_resource_calendar
+msgid "Working Time"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Pending Phases"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.user.allocation,date_start:0
+msgid "Starting Date"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Related Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Start Month"
+msgstr ""
+
+#. module: project_long_term
+#: 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_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 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 "
+"users, convert your phases into a series of tasks when you start working on "
+"the project."
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.compute.phases,target_project:0
+msgid "Compute a Single Project"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,previous_phase_ids:0
+msgid "Previous Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "New Phases"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Tasks Details"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.project,phase_count:0
+msgid "Open Phases"
+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."
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Loops in phases not allowed"
+msgstr ""
+
+#. module: project_long_term
+#: 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
+#: 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
+#: view:project.compute.phases:0
+#: view:project.compute.tasks:0
+msgid "Cancel"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Project Users"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_phase
+#: view:project.phase:0
+#: 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
+#: model:ir.ui.menu,name:project_long_term.menu_phase_schedule
+msgid "Scheduling"
+msgstr ""
+
+#. module: project_long_term
+#: constraint:project.phase:0
+msgid "Phase start-date must be lower than phase end-date."
+msgstr ""
+
+#. module: project_long_term
+#: selection:project.phase,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Total Hours"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_project_compute_phases
+msgid "Project Compute Phases"
+msgstr ""
+
+#. module: project_long_term
+#: 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 "Constraints"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.phase,sequence:0
+msgid "Gives the sequence order when displaying a list of phases."
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.actions.act_window,name:project_long_term.project_phase_task_list
+msgid "Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: help:project.user.allocation,date_end:0
+msgid "Ending Date"
+msgstr ""
+
+#. module: project_long_term
+#: code:addons/project_long_term/wizard/project_compute_phases.py:48
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. 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."
+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 ""
+
+#. module: project_long_term
+#: help:project.phase,constraint_date_start:0
+msgid "force the phase to start after this date"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+msgid "Month"
+msgstr ""
+
+#. module: project_long_term
+#: model:ir.model,name:project_long_term.model_account_analytic_account
+msgid "Analytic Account"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,constraint_date_end:0
+msgid "Deadline"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.user.allocation:0
+msgid "Project User Allocation"
+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
+#: view:project.compute.tasks:0
+msgid "Schedule Tasks"
+msgstr ""
+
+#. module: project_long_term
+#: 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 My Projects"
+msgstr ""
+
+#. module: project_long_term
+#: field:project.phase,user_force_ids:0
+msgid "Force Assigned Users"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.phase:0
+#: field:project.phase,duration:0
+msgid "Duration"
+msgstr ""
+
+#. module: project_long_term
+#: view:project.user.allocation:0
+msgid "Users"
+msgstr ""
+
+#. module: project_long_term
+#: 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 7d73b0169ed..e9f5d251a95 100644
--- a/addons/purchase/purchase.py
+++ b/addons/purchase/purchase.py
@@ -426,6 +426,7 @@ class purchase_order(osv.osv):
'default_composition_mode': 'comment',
})
return {
+ 'name': _('Compose Email'),
'type': 'ir.actions.act_window',
'view_type': 'form',
'view_mode': 'form',
diff --git a/addons/purchase/res_config.py b/addons/purchase/res_config.py
index b773c57adb1..f5f2dfcdda5 100644
--- a/addons/purchase/res_config.py
+++ b/addons/purchase/res_config.py
@@ -65,6 +65,11 @@ Example: Product: this product is deprecated, do not purchase more than 5.
'default_invoice_method': 'manual',
}
+ def onchange_purchase_analytic_plans(self, cr, uid, ids, module_purchase_analytic_plans, context=None):
+ """ change group_analytic_account_for_purchases following module_purchase_analytic_plans """
+ if not module_purchase_analytic_plans:
+ return {}
+ return {'value': {'group_analytic_account_for_purchases': module_purchase_analytic_plans}}
@@ -81,6 +86,8 @@ class account_config_settings(osv.osv_memory):
def onchange_purchase_analytic_plans(self, cr, uid, ids, module_purchase_analytic_plans, context=None):
""" change group_analytic_account_for_purchases following module_purchase_analytic_plans """
+ if not module_purchase_analytic_plans:
+ return {}
return {'value': {'group_analytic_account_for_purchases': module_purchase_analytic_plans}}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/purchase/res_config_view.xml b/addons/purchase/res_config_view.xml
index 7f1cfc64f39..276dc892392 100644
--- a/addons/purchase/res_config_view.xml
+++ b/addons/purchase/res_config_view.xml
@@ -67,7 +67,7 @@
<label for="module_purchase_requisition"/>
</div>
<div>
- <field name="module_purchase_analytic_plans" class="oe_inline"/>
+ <field name="module_purchase_analytic_plans" on_change="onchange_purchase_analytic_plans(module_purchase_analytic_plans, context)" class="oe_inline"/>
<label for="module_purchase_analytic_plans"/>
</div>
<div>
@@ -109,7 +109,7 @@
<label for="group_analytic_account_for_purchases"/>
</div>
<div>
- <field name="module_purchase_analytic_plans" on_change="onchange_purchase_analytic_plans(module_purchase_analytic_plans)" class="oe_inline"/>
+ <field name="module_purchase_analytic_plans" on_change="onchange_purchase_analytic_plans(module_purchase_analytic_plans, context)" class="oe_inline"/>
<label for="module_purchase_analytic_plans"/>
</div>
</xpath>
diff --git a/addons/purchase_double_validation/i18n/cs.po b/addons/purchase_double_validation/i18n/cs.po
new file mode 100644
index 00000000000..70256f5adc4
--- /dev/null
+++ b/addons/purchase_double_validation/i18n/cs.po
@@ -0,0 +1,49 @@
+# Czech 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-03-31 16:54+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: purchase_double_validation
+#: model:ir.model,name:purchase_double_validation.model_purchase_config_settings
+msgid "purchase.config.settings"
+msgstr ""
+
+#. module: purchase_double_validation
+#: view:purchase.order:0
+msgid "Purchase orders which are not approved yet."
+msgstr ""
+
+#. module: purchase_double_validation
+#: field:purchase.config.settings,limit_amount:0
+msgid "limit to require a second approval"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_double_validation
+#: view:purchase.order:0
+msgid "To Approve"
+msgstr ""
+
+#. module: purchase_double_validation
+#: help:purchase.config.settings,limit_amount:0
+msgid "Amount after which validation of purchase is required."
+msgstr ""
diff --git a/addons/purchase_requisition/i18n/cs.po b/addons/purchase_requisition/i18n/cs.po
new file mode 100644
index 00000000000..ab1ba503fe7
--- /dev/null
+++ b/addons/purchase_requisition/i18n/cs.po
@@ -0,0 +1,473 @@
+# Czech 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-03-31 16:55+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Request a Quotation"
+msgstr ""
+
+#. module: purchase_requisition
+#: selection:purchase.requisition,exclusive:0
+msgid "Multiple Requisitions"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition.line,product_uom_id:0
+msgid "Product Unit of Measure"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: field:purchase.requisition,user_id:0
+msgid "Responsible"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: field:purchase.requisition,state:0
+msgid "Status"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Send to Suppliers"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Group By..."
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: selection:purchase.requisition,state:0
+msgid "Purchase Done"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_follower_ids:0
+msgid "Followers"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Purchase Requisition in negociation"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition.partner,partner_id:0
+msgid "Supplier"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: selection:purchase.requisition,state:0
+msgid "New"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Product Detail"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Qty"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Type"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_purchase_requisition_line
+msgid "Purchase Requisition Line"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.order:0
+msgid "Purchase Orders with requisition"
+msgstr ""
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_product_product
+#: field:purchase.requisition.line,product_id:0
+msgid "Product"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Quotations"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Terms and Conditions"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition,description:0
+msgid "Description"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_unread:0
+msgid "Unread Messages"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,company_id:0
+#: field:purchase.requisition.line,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition.partner:0
+msgid "Create Quotation"
+msgstr ""
+
+#. module: purchase_requisition
+#: help:purchase.requisition,message_ids:0
+msgid "Messages and communication history"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Approved by Supplier"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition.partner:0
+msgid "or"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Reset to Draft"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Current Purchase Requisition"
+msgstr ""
+
+#. module: purchase_requisition
+#: model:res.groups,name:purchase_requisition.group_purchase_requisition_user
+msgid "User"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Order Reference"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_is_follower:0
+msgid "Is a Follower"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition.line,product_qty:0
+msgid "Quantity"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Unassigned Requisition"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Quotation Detail"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "End Date"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition,name:0
+msgid "Requisition Reference"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,line_ids:0
+msgid "Products to Purchase"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+#: selection:purchase.requisition,state:0
+msgid "Sent to Suppliers"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Search Purchase Requisition"
+msgstr ""
+
+#. module: purchase_requisition
+#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:41
+#, python-format
+msgid "No Product in Tender."
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Date Ordered"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_ids:0
+msgid "Messages"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Cancel Purchase Order"
+msgstr ""
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_purchase_order
+#: view:purchase.requisition:0
+msgid "Purchase Order"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,origin:0
+msgid "Source Document"
+msgstr ""
+
+#. module: purchase_requisition
+#: code:addons/purchase_requisition/wizard/purchase_requisition_partner.py:41
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,exclusive:0
+msgid "Requisition Type"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "New Purchase Requisition"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Products"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Order Date"
+msgstr ""
+
+#. module: purchase_requisition
+#: selection:purchase.requisition,state:0
+msgid "Cancelled"
+msgstr ""
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_purchase_requisition_partner
+msgid "Purchase Requisition Partner"
+msgstr ""
+
+#. module: purchase_requisition
+#: help:purchase.requisition,message_unread:0
+msgid "If checked new messages require your attention."
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Purchase for Requisitions"
+msgstr ""
+
+#. module: purchase_requisition
+#: model:ir.actions.act_window,name:purchase_requisition.act_res_partner_2_purchase_order
+msgid "Purchase orders"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,date_end:0
+msgid "Requisition Deadline"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,message_summary:0
+msgid "Summary"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Reference"
+msgstr ""
+
+#. module: purchase_requisition
+#: model:ir.model,name:purchase_requisition.model_procurement_order
+msgid "Procurement"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: view:purchase.requisition:0
+msgid "Source"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,warehouse_id:0
+msgid "Warehouse"
+msgstr ""
+
+#. module: purchase_requisition
+#: field:procurement.order,requisition_id:0
+msgid "Latest Requisition"
+msgstr ""
+
+#. module: purchase_requisition
+#: model:res.groups,name:purchase_requisition.group_purchase_requisition_manager
+msgid "Manager"
+msgstr ""
+
+#. module: purchase_requisition
+#: selection:purchase.requisition,exclusive:0
+msgid "Purchase Requisition (exclusive)"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+msgid "Product UoM"
+msgstr ""
+
+#. module: purchase_requisition
+#: code:addons/purchase_requisition/purchase_requisition.py:134
+#, python-format
+msgid "Warning!"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Confirm Purchase Order"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition.partner:0
+msgid "Cancel"
+msgstr ""
+
+#. module: purchase_requisition
+#: report:purchase.requisition:0
+#: field:purchase.requisition,date_start:0
+msgid "Requisition Date"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Start Date"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.requisition:0
+msgid "Unassigned"
+msgstr ""
+
+#. module: purchase_requisition
+#: view:purchase.order:0
+msgid "Requisition"
+msgstr ""
+
+#. 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 ""
+
+#. module: purchase_requisition
+#: field:purchase.requisition,purchase_ids:0
+msgid "Purchase Orders"
+msgstr ""
diff --git a/addons/report_webkit/i18n/cs.po b/addons/report_webkit/i18n/cs.po
new file mode 100644
index 00000000000..bacda6d4bdf
--- /dev/null
+++ b/addons/report_webkit/i18n/cs.po
@@ -0,0 +1,517 @@
+# Czech 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-03-31 16:55+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-04-01 05:06+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: report_webkit
+#: view:ir.actions.report.xml:0
+msgid "Webkit Template (used if Report File is not found)"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "Tabloid 29 279.4 x 431.8 mm"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "Ledger 28 431.8 x 279.4 mm"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:233
+#, python-format
+msgid "No header defined for this Webkit report!"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.header_img,type:0
+msgid "Image type(png,gif,jpeg)"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.actions.report.xml,precise_mode:0
+msgid ""
+"This mode allow more precise element "
+" position as each object is printed on a separate HTML. "
+" but memory and disk "
+"usage is wider"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "Executive 4 7.5 x 10 inches, 190.5 x 254 mm"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_img,company_id:0
+#: field:ir.header_webkit,company_id:0
+msgid "Company"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:234
+#, python-format
+msgid "Please set a header in company settings."
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "DLE 26 110 x 220 mm"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B7 21 88 x 125 mm"
+msgstr ""
+
+#. module: report_webkit
+#: view:res.company:0
+msgid "Headers"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.header_img,name:0
+msgid "Name of Image"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.actions.act_window,name:report_webkit.action_header_webkit
+#: model:ir.ui.menu,name:report_webkit.menu_header_webkit
+msgid "Webkit Headers/Footers"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "Legal 3 8.5 x 14 inches, 215.9 x 355.6 mm"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.model,name:report_webkit.model_ir_header_webkit
+msgid "ir.header_webkit"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A4 0 210 x 297 mm, 8.26 x 11.69 inches"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:176
+#, python-format
+msgid "Webkit error"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B2 17 500 x 707 mm"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:260
+#: code:addons/report_webkit/webkit_report.py:271
+#: code:addons/report_webkit/webkit_report.py:280
+#: code:addons/report_webkit/webkit_report.py:293
+#: code:addons/report_webkit/webkit_report.py:304
+#, python-format
+msgid "Webkit render!"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.model,name:report_webkit.model_ir_header_img
+msgid "ir.header_img"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.actions.report.xml,precise_mode:0
+msgid "Precise Mode"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:96
+#, python-format
+msgid ""
+"Please install executable on your system (sudo apt-get install wkhtmltopdf) "
+"or download it from here: "
+"http://code.google.com/p/wkhtmltopdf/downloads/list and set the path in the "
+"ir.config_parameter with the webkit_path key.Minimal version is 0.9.9"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A0 5 841 x 1189 mm"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "C5E 24 163 x 229 mm"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_img,type:0
+msgid "Type"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/wizard/report_webkit_actions.py:133
+#, python-format
+msgid "Client Actions Connections"
+msgstr ""
+
+#. module: report_webkit
+#: field:res.company,header_image:0
+msgid "Available Images"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,html:0
+msgid "webkit header"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B1 15 707 x 1000 mm"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A1 6 594 x 841 mm"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.actions.report.xml,webkit_header:0
+msgid "The header linked to the report"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:95
+#, python-format
+msgid "Wkhtmltopdf library path is not set"
+msgstr ""
+
+#. module: report_webkit
+#: view:ir.actions.report.xml:0
+#: view:res.company:0
+msgid "Webkit"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.header_webkit,format:0
+msgid "Select Proper Paper size"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B5 1 176 x 250 mm, 6.93 x 9.84 inches"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A7 11 74 x 105 mm"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A6 10 105 x 148 mm"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.actions.report.xml,report_webkit_data:0
+msgid "This template will be used if the main report file is not found"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "Folio 27 210 x 330 mm"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,margin_top:0
+msgid "Top Margin (mm)"
+msgstr ""
+
+#. module: report_webkit
+#: view:report.webkit.actions:0
+msgid "_Ok"
+msgstr ""
+
+#. module: report_webkit
+#: help:report.webkit.actions,print_button:0
+msgid ""
+"Check this to add a Print action for this Report in the sidebar of the "
+"corresponding document types"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B3 18 353 x 500 mm"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.actions.report.xml,webkit_header:0
+msgid "Webkit Header"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.actions.report.xml,webkit_debug:0
+msgid "Enable the webkit engine debugger"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_img,img:0
+msgid "Image"
+msgstr ""
+
+#. module: report_webkit
+#: view:ir.header_img:0
+msgid "Header Image"
+msgstr ""
+
+#. module: report_webkit
+#: field:res.company,header_webkit:0
+msgid "Available html"
+msgstr ""
+
+#. module: report_webkit
+#: help:report.webkit.actions,open_action:0
+msgid ""
+"Check this to view the newly added internal print action after creating it "
+"(technical view) "
+msgstr ""
+
+#. module: report_webkit
+#: view:res.company:0
+msgid "Images"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,orientation:0
+msgid "Portrait"
+msgstr ""
+
+#. module: report_webkit
+#: view:report.webkit.actions:0
+msgid "or"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,orientation:0
+msgid "Landscape"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B8 22 62 x 88 mm"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:177
+#, python-format
+msgid "The command 'wkhtmltopdf' failed with error code = %s. Message: %s"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A2 7 420 x 594 mm"
+msgstr ""
+
+#. module: report_webkit
+#: field:report.webkit.actions,print_button:0
+msgid "Add print button"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A9 13 37 x 52 mm"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.model,name:report_webkit.model_res_company
+msgid "Companies"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,margin_bottom:0
+msgid "Bottom Margin (mm)"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.model,name:report_webkit.model_report_webkit_actions
+msgid "Webkit Actions"
+msgstr ""
+
+#. module: report_webkit
+#: field:report.webkit.actions,open_action:0
+msgid "Open added action"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,margin_right:0
+msgid "Right Margin (mm)"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:228
+#, python-format
+msgid "Webkit report template not found!"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,orientation:0
+msgid "Orientation"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B6 20 125 x 176 mm"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.header_webkit,html:0
+msgid "Set Webkit Report Header"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,format:0
+msgid "Paper size"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid ":B10 16 31 x 44 mm"
+msgstr ""
+
+#. module: report_webkit
+#: view:report.webkit.actions:0
+msgid "Cancel"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,css:0
+msgid "Header CSS"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B4 19 250 x 353 mm"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.actions.act_window,name:report_webkit.action_header_img
+#: model:ir.ui.menu,name:report_webkit.menu_header_img
+msgid "Webkit Logos"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:172
+#, python-format
+msgid "No diagnosis message was provided"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A3 8 297 x 420 mm"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.actions.report.xml,report_webkit_data:0
+msgid "Webkit Template"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,footer_html:0
+msgid "webkit footer"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.actions.report.xml,webkit_debug:0
+msgid "Webkit debug"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "Letter 2 8.5 x 11 inches, 215.9 x 279.4 mm"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B0 14 1000 x 1414 mm"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_img,name:0
+#: field:ir.header_webkit,name:0
+msgid "Name"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A5 9 148 x 210 mm"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "A8 12 52 x 74 mm"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.actions.act_window,name:report_webkit.wizard_ofdo_report_actions
+#: view:report.webkit.actions:0
+msgid "Add Print Buttons"
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "Comm10E 25 105 x 241 mm, U.S. Common 10 Envelope"
+msgstr ""
+
+#. module: report_webkit
+#: field:ir.header_webkit,margin_left:0
+msgid "Left Margin (mm)"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:228
+#, python-format
+msgid "Error!"
+msgstr ""
+
+#. module: report_webkit
+#: help:ir.header_webkit,footer_html:0
+msgid "Set Webkit Report Footer."
+msgstr ""
+
+#. module: report_webkit
+#: selection:ir.header_webkit,format:0
+msgid "B9 23 33 x 62 mm"
+msgstr ""
+
+#. module: report_webkit
+#: model:ir.model,name:report_webkit.model_ir_actions_report_xml
+msgid "ir.actions.report.xml"
+msgstr ""
+
+#. module: report_webkit
+#: code:addons/report_webkit/webkit_report.py:174
+#, python-format
+msgid "The following diagnosis message was provided:\n"
+msgstr ""
+
+#. module: report_webkit
+#: view:ir.header_webkit:0
+msgid "HTML Header"
+msgstr ""
diff --git a/addons/resource/resource.py b/addons/resource/resource.py
index 727ca93d7c9..73a6e2a3ec8 100644
--- a/addons/resource/resource.py
+++ b/addons/resource/resource.py
@@ -19,7 +19,9 @@
#
##############################################################################
+import pytz
from datetime import datetime, timedelta
+from dateutil import rrule
import math
from faces import *
from openerp.osv import fields, osv
@@ -212,45 +214,108 @@ class resource_calendar(osv.osv):
@return : Total number of working hours based dt_from and dt_end and
resource if supplied.
"""
- if not id:
- return 0.0
- dt_leave = self._get_leaves(cr, uid, id, resource)
- hours = 0.0
-
- current_hour = dt_from.hour
-
- while (dt_from <= dt_to):
- cr.execute("select hour_from,hour_to from resource_calendar_attendance where dayofweek='%s' and calendar_id=%s order by hour_from", (dt_from.weekday(),id))
- der = cr.fetchall()
- for (hour_from,hour_to) in der:
- if hours != 0.0:#For first time of the loop only,hours will be 0
- current_hour = hour_from
- leave_flag = False
- if (hour_to>=current_hour):
- dt_check = dt_from.strftime('%Y-%m-%d')
- for leave in dt_leave:
- if dt_check == leave:
- dt_check = datetime.strptime(dt_check, "%Y-%m-%d") + timedelta(days=1)
- leave_flag = True
-
- if leave_flag:
- break
- else:
- d1 = dt_from
- d2 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(hour_to)), int((hour_to%1) * 60))
+ return self._interval_hours_get(cr, uid, id, dt_from, dt_to, resource_id=resource)
- if hours != 0.0:#For first time of the loop only,hours will be 0
- d1 = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60))
-
- if dt_from.day == dt_to.day:
- if hour_from <= dt_to.hour <= hour_to:
- d2 = dt_to
- dt_from = d2
- hours += (d2-d1).seconds
- dt_from = datetime(dt_from.year, dt_from.month, dt_from.day, int(math.floor(current_hour)), int((current_hour%1) * 60)) + timedelta(days=1)
- current_hour = 0.0
+ def _interval_hours_get(self, cr, uid, id, dt_from, dt_to, resource_id=False, timezone_from_uid=None, exclude_leaves=True, context=None):
+ """ Calculates the Total Working hours based on given start_date to
+ end_date, If resource id is supplied that it will consider the source
+ leaves also in calculating the hours.
- return (hours/3600)
+ @param dt_from : date start to calculate hours
+ @param dt_end : date end to calculate hours
+ @param resource_id: optional resource id, If given resource leave will be
+ considered.
+ @param timezone_from_uid: optional uid, if given we will considerer
+ working hours in that user timezone
+ @param exclude_leaves: optionnal, if set to True (default) we will exclude
+ resource leaves from working hours
+ @param context: current request context
+ @return : Total number of working hours based dt_from and dt_end and
+ resource if supplied.
+ """
+ utc_tz = pytz.timezone('UTC')
+ local_tz = utc_tz
+
+ if timezone_from_uid:
+ users_obj = self.pool.get('res.users')
+ user_timezone = users_obj.browse(cr, uid, timezone_from_uid, context=context).partner_id.tz
+ if user_timezone:
+ try:
+ local_tz = pytz.timezone(user_timezone)
+ except pytz.UnknownTimeZoneError:
+ pass # fallback to UTC as local timezone
+
+ def utc_to_local_zone(naive_datetime):
+ utc_dt = utc_tz.localize(naive_datetime, is_dst=False)
+ return utc_dt.astimezone(local_tz)
+
+ def float_time_convert(float_val):
+ factor = float_val < 0 and -1 or 1
+ val = abs(float_val)
+ return (factor * int(math.floor(val)), int(round((val % 1) * 60)))
+
+ # Get slots hours per day
+ # {day_of_week: [(8, 12), (13, 17), ...], ...}
+ hours_range_per_weekday = {}
+ if id:
+ cr.execute("select dayofweek, hour_from,hour_to from resource_calendar_attendance where calendar_id=%s order by hour_from", (id,))
+ for weekday, hour_from, hour_to in cr.fetchall():
+ weekday = int(weekday)
+ hours_range_per_weekday.setdefault(weekday, [])
+ hours_range_per_weekday[weekday].append((hour_from, hour_to))
+ else:
+ # considering default working hours (Monday -> Friday, 8 -> 12, 13 -> 17)
+ for weekday in range(5):
+ hours_range_per_weekday[weekday] = [(8, 12), (13, 17)]
+
+ ## Interval between dt_from - dt_to
+ ##
+ ## dt_from dt_to
+ ## =============|==================|============
+ ## [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]
+ ##
+ ## [ : start of range
+ ## ] : end of range
+ ##
+ ## case 1: range end before interval start (skip)
+ ## case 2: range overlap interval start (fit start to internal)
+ ## case 3: range within interval
+ ## case 4: range overlap interval end (fit end to interval)
+ ## case 5: range start after interval end (skip)
+
+ interval_start = utc_to_local_zone(dt_from)
+ interval_end = utc_to_local_zone(dt_to)
+ hours_timedelta = timedelta()
+
+ # Get leaves for requested resource
+ dt_leaves = set([])
+ if exclude_leaves and id:
+ dt_leaves = set(self._get_leaves(cr, uid, id, resource=resource_id))
+
+ for day in rrule.rrule(rrule.DAILY, dtstart=interval_start,
+ until=interval_end+timedelta(days=1),
+ byweekday=hours_range_per_weekday.keys()):
+ if exclude_leaves and day.strftime('%Y-%m-%d') in dt_leaves:
+ # XXX: futher improve leave management to allow for partial day leave
+ continue
+ for (range_from, range_to) in hours_range_per_weekday.get(day.weekday(), []):
+ range_from_hour, range_from_min = float_time_convert(range_from)
+ range_to_hour, range_to_min = float_time_convert(range_to)
+ daytime_start = local_tz.localize(day.replace(hour=range_from_hour, minute=range_from_min, second=0, tzinfo=None))
+ daytime_end = local_tz.localize(day.replace(hour=range_to_hour, minute=range_to_min, second=0, tzinfo=None))
+
+ # case 1 & 5: time range out of interval
+ if daytime_end < interval_start or daytime_start > interval_end:
+ continue
+ # case 2 & 4: adjust start, end to fit within interval
+ daytime_start = max(daytime_start, interval_start)
+ daytime_end = min(daytime_end, interval_end)
+
+ # case 2+, 4+, 3
+ hours_timedelta += (daytime_end - daytime_start)
+
+ # return timedelta converted to hours
+ return (hours_timedelta.days * 24.0 + hours_timedelta.seconds / 3600.0)
resource_calendar()
diff --git a/addons/resource/test/resource.yml b/addons/resource/test/resource.yml
index 5b7fa108101..28604518b7b 100644
--- a/addons/resource/test/resource.yml
+++ b/addons/resource/test/resource.yml
@@ -40,12 +40,13 @@
I check Actual working hours on resource 'Developer' from this week
-
!python {model: resource.calendar}: |
- from datetime import datetime, timedelta
+ from datetime import datetime
+ from dateutil.relativedelta import relativedelta
now = datetime.now()
- dt_from = now - timedelta(days=now.weekday())
- dt_to = dt_from+ timedelta(days=6)
+ dt_from = now - relativedelta(days=now.weekday(), hour=8, minute=30)
+ dt_to = dt_from + relativedelta(days=6, hour=17)
hours = self.interval_hours_get(cr, uid, ref('timesheet_group1'), dt_from, dt_to, resource=ref('resource_developer'))
- assert hours > 27 , 'Invalid Total Week working hour calculated'
+ assert hours > 27 , 'Invalid Total Week working hour calculated, got %r, expected > 27' % hours
-
Project Analysis work is of 20 hours which will start from Week start so i will calculate working schedule for resource Analyst for the same.
-
diff --git a/addons/sale/res_config.py b/addons/sale/res_config.py
index 6548591da1e..ec2307ca983 100644
--- a/addons/sale/res_config.py
+++ b/addons/sale/res_config.py
@@ -143,6 +143,8 @@ class account_config_settings(osv.osv_memory):
def onchange_sale_analytic_plans(self, cr, uid, ids, module_sale_analytic_plans, context=None):
""" change group_analytic_account_for_sales following module_sale_analytic_plans """
+ if not module_sale_analytic_plans:
+ return {}
return {'value': {'group_analytic_account_for_sales': module_sale_analytic_plans}}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale/sale.py b/addons/sale/sale.py
index 5ee22f3c569..d1b4236cd4e 100644
--- a/addons/sale/sale.py
+++ b/addons/sale/sale.py
@@ -543,6 +543,9 @@ class sale_order(osv.osv):
invoice_ref += o.name + '|'
self.write(cr, uid, [o.id], {'state': 'progress'})
cr.execute('insert into sale_order_invoice_rel (order_id,invoice_id) values (%s,%s)', (o.id, res))
+ #remove last '|' in invoice_ref
+ if len(invoice_ref) >= 1:
+ invoice_ref = invoice_ref[:-1]
invoice.write(cr, uid, [res], {'origin': invoice_ref, 'name': invoice_ref})
else:
for order, il in val:
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index e3a393666b4..9a4866d14f1 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -328,19 +328,24 @@
<field name="view_type">form</field>
<field name="view_mode">tree,form,calendar,graph</field>
<field name="search_view_id" ref="view_sales_order_filter"/>
- <field name="context">{'show_address': 1}</field>
- <field name="domain">[('state','not in',('draft','sent','cancel'))]</field>
+ <field name="context">{
+ 'show_address': 1,
+ 'search_default_my_sale_orders_filter': 1
+ }
+ </field>
+ <field name="domain">[('state', 'not in', ('draft', 'sent', 'cancel'))]</field>
<field name="help" type="html">
- <p class="oe_view_nocontent_create">
- Click to create a quotation that can be converted into a sales
- order.
- </p><p>
- OpenERP will help you efficiently handle the complete sales flow:
- quotation, sales order, delivery, invoicing and payment.
- </p>
+ <p class="oe_view_nocontent_create">
+ Click to create a quotation that can be converted into a sales
+ order.
+ </p><p>
+ OpenERP will help you efficiently handle the complete sales flow:
+ quotation, sales order, delivery, invoicing and payment.
+ </p>
</field>
</record>
- <menuitem action="action_orders" id="menu_sale_order" parent="base.menu_sales" sequence="5" groups="base.group_sale_salesman,base.group_sale_manager"/>
+
+ <menuitem action="action_orders" id="menu_sale_order" parent="base.menu_sales" sequence="6" groups="base.group_sale_salesman,base.group_sale_manager"/>
<record id="action_orders_exception" model="ir.actions.act_window">
<field name="name">Sales in Exception</field>
@@ -371,7 +376,7 @@
<field name="view_type">form</field>
<field name="view_id" ref="view_quotation_tree"/>
<field name="view_mode">tree,form,calendar,graph</field>
- <field name="context">{'show_address': 1}</field>
+ <field name="context">{'show_address': 1, 'search_default_my_sale_orders_filter': 1}</field>
<field name="domain">[('state','in',('draft','sent','cancel'))]</field>
<field name="search_view_id" ref="view_sales_order_filter"/>
<field name="help" type="html">
@@ -390,8 +395,8 @@
</record>
<menuitem id="menu_sale_quotations"
- action="action_quotations" parent="base.menu_sales"
- sequence="4"/>
+ action="action_quotations" parent="base.menu_sales"
+ sequence="5"/>
<record id="action_order_tree" model="ir.actions.act_window">
<field name="name">Old Quotations</field>
diff --git a/addons/sale/wizard/sale_line_invoice.py b/addons/sale/wizard/sale_line_invoice.py
index 8bb52b12c1e..656e21a2963 100644
--- a/addons/sale/wizard/sale_line_invoice.py
+++ b/addons/sale/wizard/sale_line_invoice.py
@@ -25,6 +25,7 @@ from openerp.tools.translate import _
class sale_order_line_make_invoice(osv.osv_memory):
_name = "sale.order.line.make.invoice"
_description = "Sale OrderLine Make_invoice"
+
def make_invoices(self, cr, uid, ids, context=None):
"""
To make invoices.
@@ -81,34 +82,30 @@ class sale_order_line_make_invoice(osv.osv_memory):
sales_order_obj = self.pool.get('sale.order')
for line in sales_order_line_obj.browse(cr, uid, context.get('active_ids', []), context=context):
if (not line.invoiced) and (line.state not in ('draft', 'cancel')):
- if not line.order_id.id in invoices:
- invoices[line.order_id.id] = []
- line_id = sales_order_line_obj.invoice_line_create(cr, uid,
- [line.id])
+ if not line.order_id in invoices:
+ invoices[line.order_id] = []
+ line_id = sales_order_line_obj.invoice_line_create(cr, uid, [line.id])
for lid in line_id:
- invoices[line.order_id.id].append((line, lid))
- for result in invoices.values():
- order = result[0][0].order_id
- il = map(lambda x: x[1], result)
+ invoices[line.order_id].append(lid)
+ for order, il in invoices.items():
res = make_invoice(order, il)
cr.execute('INSERT INTO sale_order_invoice_rel \
(order_id,invoice_id) values (%s,%s)', (order.id, res))
-
flag = True
- data_sale = sales_order_obj.browse(cr, uid, line.order_id.id, context=context)
sales_order_obj.message_post(cr, uid, [order.id], body=_("Invoice created"), context=context)
+ data_sale = sales_order_obj.browse(cr, uid, order.id, context=context)
for line in data_sale.order_line:
if not line.invoiced:
flag = False
break
if flag:
- sales_order_obj.signal_manual_invoice(cr, uid, [line.order_id.id])
- sales_order_obj.write(cr, uid, [line.order_id.id], {'state': 'progress'})
+ wf_service.trg_validate(uid, 'sale.order', order.id, 'manual_invoice', cr)
+ sales_order_obj.write(cr, uid, [order.id], {'state': 'progress'})
if not invoices:
raise osv.except_osv(_('Warning!'), _('Invoice cannot be created for this Sales Order Line due to one of the following reasons:\n1.The state of this sales order line is either "draft" or "cancel"!\n2.The Sales Order Line is Invoiced!'))
if context.get('open_invoices', False):
- return self.open_invoices( cr, uid, ids, res, context=context)
+ return self.open_invoices(cr, uid, ids, res, context=context)
return {'type': 'ir.actions.act_window_close'}
def open_invoices(self, cr, uid, ids, invoice_ids, context=None):
@@ -118,7 +115,7 @@ class sale_order_line_make_invoice(osv.osv_memory):
form_id = form_res and form_res[1] or False
tree_res = ir_model_data.get_object_reference(cr, uid, 'account', 'invoice_tree')
tree_id = tree_res and tree_res[1] or False
-
+
return {
'name': _('Invoice'),
'view_type': 'form',
diff --git a/addons/sale/wizard/sale_make_invoice.py b/addons/sale/wizard/sale_make_invoice.py
index 0898dad21b1..47716018caa 100644
--- a/addons/sale/wizard/sale_make_invoice.py
+++ b/addons/sale/wizard/sale_make_invoice.py
@@ -39,7 +39,7 @@ class sale_make_invoice(osv.osv_memory):
record_id = context and context.get('active_id', False)
order = self.pool.get('sale.order').browse(cr, uid, record_id, context=context)
if order.state == 'draft':
- raise osv.except_osv(_('Warning!'),'You cannot create invoice when sales order is not confirmed.')
+ raise osv.except_osv(_('Warning!'), _('You cannot create invoice when sales order is not confirmed.'))
return False
def make_invoices(self, cr, uid, ids, context=None):
@@ -50,8 +50,11 @@ class sale_make_invoice(osv.osv_memory):
if context is None:
context = {}
data = self.read(cr, uid, ids)[0]
- order_obj.action_invoice_create(cr, uid, context.get(('active_ids'), []), data['grouped'], date_invoice = data['invoice_date'])
- order_obj.signal_manual_invoice(cr, uid, context.get(('active_ids'), []))
+ for sale_order in order_obj.browse(cr, uid, context.get(('active_ids'), []), context=context):
+ if sale_order.state != 'manual':
+ raise osv.except_osv(_('Warning!'), _("You shouldn't manually invoice the following sale order %s") % (sale_order.name))
+
+ order_obj.action_invoice_create(cr, uid, context.get(('active_ids'), []), data['grouped'], date_invoice=data['invoice_date'])
for o in order_obj.browse(cr, uid, context.get(('active_ids'), []), context=context):
for i in o.invoice_ids:
@@ -60,7 +63,7 @@ class sale_make_invoice(osv.osv_memory):
result = mod_obj.get_object_reference(cr, uid, 'account', 'action_invoice_tree1')
id = result and result[1] or False
result = act_obj.read(cr, uid, [id], context=context)[0]
- result['domain'] = "[('id','in', ["+','.join(map(str,newinv))+"])]"
+ result['domain'] = "[('id','in', [" + ','.join(map(str, newinv)) + "])]"
return result
diff --git a/addons/sale/wizard/sale_make_invoice.xml b/addons/sale/wizard/sale_make_invoice.xml
index ced64a0f79d..de680feb049 100644
--- a/addons/sale/wizard/sale_make_invoice.xml
+++ b/addons/sale/wizard/sale_make_invoice.xml
@@ -6,16 +6,16 @@
<field name="model">sale.make.invoice</field>
<field name="arch" type="xml">
<form string="Create invoices" version="7.0">
- <header>
- <button name="make_invoices" string="Create Invoices" type="object" class="oe_highlight" />
- or
- <button string="Cancel" class="oe_link" special="cancel" />
- </header>
<separator colspan="4" string="Do you really want to create the invoice(s)?" />
<group>
<field name="grouped"/>
<field name="invoice_date"/>
</group>
+ <footer>
+ <button name="make_invoices" string="Create Invoices" type="object" class="oe_highlight"/>
+ or
+ <button string="Cancel" class="oe_link" special="cancel" />
+ </footer>
</form>
</field>
</record>
diff --git a/addons/sale_crm/report/sale_crm_account_invoice_report_view.xml b/addons/sale_crm/report/sale_crm_account_invoice_report_view.xml
index 41166d56713..983701d9690 100644
--- a/addons/sale_crm/report/sale_crm_account_invoice_report_view.xml
+++ b/addons/sale_crm/report/sale_crm_account_invoice_report_view.xml
@@ -10,7 +10,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='date']" position="after">
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</xpath>
</data>
</field>
diff --git a/addons/sale_crm/sale_crm.py b/addons/sale_crm/sale_crm.py
index 1f3f85d5ed1..3177aec4c5f 100644
--- a/addons/sale_crm/sale_crm.py
+++ b/addons/sale_crm/sale_crm.py
@@ -19,8 +19,10 @@
#
##############################################################################
+from datetime import datetime
from openerp.osv import osv, fields
+
class sale_order(osv.osv):
_inherit = 'sale.order'
_columns = {
@@ -30,19 +32,49 @@ class sale_order(osv.osv):
}
+class crm_case_section(osv.osv):
+ _inherit = 'crm.case.section'
+
+ def _get_sum_month_invoice(self, cr, uid, ids, field_name, arg, context=None):
+ res = dict.fromkeys(ids, 0)
+ obj = self.pool.get('account.invoice.report')
+ when = datetime.today()
+ for section_id in ids:
+ invoice_ids = obj.search(cr, uid, [("section_id", "=", section_id), ('state', 'not in', ['draft', 'cancel']), ('year', '=', when.year), ('month', '=', when.month > 9 and when.month or "0%s" % when.month)], context=context)
+ for invoice in obj.browse(cr, uid, invoice_ids, context=context):
+ res[section_id] += invoice.price_total
+ return res
+
+ _columns = {
+ 'quotation_ids': fields.one2many('sale.order', 'section_id',
+ string='Quotations', readonly=True,
+ domain=[('state', 'in', ['draft', 'sent', 'cancel'])]),
+ 'sale_order_ids': fields.one2many('sale.order', 'section_id',
+ string='Sale Orders', readonly=True,
+ domain=[('state', 'not in', ['draft', 'sent', 'cancel'])]),
+ 'invoice_ids': fields.one2many('account.invoice', 'section_id',
+ string='Invoices', readonly=True,
+ domain=[('state', 'not in', ['draft', 'cancel'])]),
+ 'sum_month_invoice': fields.function(_get_sum_month_invoice,
+ string='Total invoiced this month',
+ type='integer', readonly=True),
+ }
+
+
class res_users(osv.Model):
_inherit = 'res.users'
_columns = {
'default_section_id': fields.many2one('crm.case.section', 'Default Sales Team'),
}
+
class account_invoice(osv.osv):
_inherit = 'account.invoice'
_columns = {
'section_id': fields.many2one('crm.case.section', 'Sales Team'),
}
_defaults = {
- 'section_id': lambda self,cr,uid,c: self.pool.get('res.users').browse(cr, uid, uid, c).default_section_id.id or False,
+ 'section_id': lambda self, cr, uid, c=None: self.pool.get('res.users').browse(cr, uid, uid, c).default_section_id.id or False,
}
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
diff --git a/addons/sale_crm/sale_crm_view.xml b/addons/sale_crm/sale_crm_view.xml
index 0b5fce2f5cd..f8b4228334e 100644
--- a/addons/sale_crm/sale_crm_view.xml
+++ b/addons/sale_crm/sale_crm_view.xml
@@ -22,7 +22,7 @@
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<field name="user_id" position="after">
- <field name="section_id" widget="selection"/>
+ <field name="section_id" widget="selection" groups="base.group_multi_salesteams"/>
<field name="categ_ids" widget="many2many_tags"/>
</field>
</field>
@@ -41,7 +41,7 @@
help="My Sales Team(s)"/>
</xpath>
<xpath expr="//field[@name='user_id']" position="after">
- <field name="section_id" string="Sales Team"/>
+ <field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
</xpath>
</field>
</record>
@@ -53,18 +53,22 @@
<field name="inherit_id" ref="account.invoice_tree"/>
<field name="arch" type="xml">
<data>
- <xpath expr="//field[@name='date_invoice']" position="after">
- <field name="section_id" invisible="1"/>
+ <xpath expr="//field[@name='user_id']" position="after">
+ <field name="section_id" string="Sales Team" groups="base.group_multi_salesteams"/>
</xpath>
</data>
</field>
</record>
+ <!-- Update account invoice search view!-->
<record id="account_invoice_groupby_inherit" model="ir.ui.view">
<field name="name">account.invoice.groupby</field>
<field name="model">account.invoice</field>
<field name="inherit_id" ref="account.view_account_invoice_filter"/>
<field name="arch" type="xml">
+ <xpath expr="//field[@name='user_id']" position="after">
+ <field name="section_id"/>
+ </xpath>
<xpath expr="//group/filter[@string='Due Date']" position="after">
<filter string="Sales Team" domain="[]" context="{'group_by':'section_id'}"/>
</xpath>
@@ -79,7 +83,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='user_id']" position="after">
- <field name="section_id"/>
+ <field name="section_id" groups="base.group_multi_salesteams"/>
</xpath>
</data>
</field>
@@ -113,5 +117,132 @@
</field>
</record>
+ <!-- search by Salesteams -->
+
+ <record id="action_orders_salesteams" model="ir.actions.act_window">
+ <field name="name">Sales Orders</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">sale.order</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="search_view_id" ref="sale.view_sales_order_filter"/>
+ <field name="domain">[('state','not in',('draft','sent','cancel'))]</field>
+ <field name="context">{
+ 'search_default_section_id': [active_id],
+ 'default_section_id': active_id,
+ 'search_default_my_sale_orders_filter': 1,
+ }
+ </field>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to create a quotation that can be converted into a sales
+ order.
+ </p><p>
+ OpenERP will help you efficiently handle the complete sales flow:
+ quotation, sales order, delivery, invoicing and payment.
+ </p>
+ </field>
+ </record>
+
+ <record id="action_quotations_salesteams" model="ir.actions.act_window">
+ <field name="name">Quotations</field>
+ <field name="type">ir.actions.act_window</field>
+ <field name="res_model">sale.order</field>
+ <field name="view_type">form</field>
+ <field name="view_id" ref="sale.view_quotation_tree"/>
+ <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="context">{
+ 'search_default_section_id': [active_id],
+ 'default_section_id': active_id, 'show_address': 1,
+ 'search_default_my_sale_orders_filter': 1
+ }
+ </field>
+ <field name="domain">[('state','in',('draft','sent','cancel'))]</field>
+ <field name="search_view_id" ref="sale.view_sales_order_filter"/>
+ <field name="help" type="html">
+ <p class="oe_view_nocontent_create">
+ Click to create a quotation, the first step of a new sale.
+ </p><p>
+ OpenERP will help you handle efficiently the complete sale flow:
+ from the quotation to the sales order, the
+ delivery, the invoicing and the payment collection.
+ </p><p>
+ The social feature helps you organize discussions on each sales
+ order, and allow your customers to keep track of the evolution
+ of the sales order.
+ </p>
+ </field>
+ </record>
+
+ <record id="action_invoice_salesteams" model="ir.actions.act_window">
+ <field name="name">Invoices</field>
+ <field name="res_model">account.invoice</field>
+ <field name="view_type">form</field>
+ <field name="view_mode">tree,form,calendar,graph</field>
+ <field name="view_id" ref="account.invoice_tree"/>
+ <field name="domain">[
+ ('state', 'not in', ['draft', 'cancel']),
+ ('type', '=', 'out_invoice')]</field>
+ <field name="context">{
+ 'search_default_section_id': [active_id],
+ 'default_section_id': active_id},
+ 'default_type':'out_invoice',
+ 'type':'out_invoice',
+ 'journal_type': 'sale',
+ }
+ </field>
+ <field name="search_view_id" ref="account.view_account_invoice_filter"/>
+ </record>
+
+ <record id="action_invoice_salesteams_view_tree" model="ir.actions.act_window.view">
+ <field name="sequence">1</field>
+ <field name="view_mode">tree</field>
+ <field name="act_window_id" ref="sale_crm.action_invoice_salesteams"/>
+ </record>
+
+ <record id="action_invoice_salesteams_view_form" model="ir.actions.act_window.view">
+ <field name="sequence">2</field>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="account.invoice_form"/>
+ <field name="act_window_id" ref="sale_crm.action_invoice_salesteams"/>
+ </record>
+
+ <record id="crm_case_section_salesteams_view_kanban" model="ir.ui.view">
+ <field name="name">crm.case.section.kanban</field>
+ <field name="model">crm.case.section</field>
+ <field name="inherit_id" ref="crm.crm_case_section_salesteams_view_kanban"/>
+ <field name="arch" type="xml">
+ <data>
+ <xpath expr="//field[@name='open_opportunity_ids']" position="after">
+ <field name="quotation_ids"/>
+ <field name="sale_order_ids"/>
+ <field name="invoice_ids"/>
+ </xpath>
+ <xpath expr="//div[@class='oe_items_list']" position="inside">
+ <a name="%(action_quotations_salesteams)d" type="action">
+ <t t-raw="record.quotation_ids.raw_value.length"/>
+ <t t-if="record.quotation_ids.raw_value.length &gt;= 2">Quotations</t>
+ <t t-if="record.quotation_ids.raw_value.length &lt; 2">Quotation</t>
+ </a>
+ <a name="%(action_orders_salesteams)d" type="action">
+ <t t-raw="record.sale_order_ids.raw_value.length"/>
+ <t t-if="record.sale_order_ids.raw_value.length &gt;= 2">Sales Orders</t>
+ <t t-if="record.sale_order_ids.raw_value.length &lt; 2">Sales Order</t>
+ </a>
+ <a name="%(action_invoice_salesteams)d" type="action" groups="account.group_account_invoice">
+ <t t-raw="record.invoice_ids.raw_value.length"/>
+ <t t-if="record.invoice_ids.raw_value.length &gt;= 2">Invoices</t>
+ <t t-if="record.invoice_ids.raw_value.length &lt; 2">Invoice</t>
+ </a>
+ </xpath>
+ <xpath expr="//div[@class='oe_items_list']" position="after">
+ <div class="oe_center">
+ <div class="oe_sum"><field name="sum_month_invoice"/></div>
+ <div class="oe_subsum">Invoiced this month</div>
+ </div>
+ </xpath>
+ </data>
+ </field>
+ </record>
</data>
</openerp>
diff --git a/addons/sale_margin/i18n/cs.po b/addons/sale_margin/i18n/cs.po
new file mode 100644
index 00000000000..dd01e0973bc
--- /dev/null
+++ b/addons/sale_margin/i18n/cs.po
@@ -0,0 +1,46 @@
+# Czech 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-03-30 12:41+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: sale_margin
+#: field:sale.order.line,purchase_price:0
+msgid "Cost Price"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_sale_order
+msgid "Sales Order"
+msgstr ""
+
+#. module: sale_margin
+#: field:sale.order,margin:0
+#: field:sale.order.line,margin:0
+msgid "Margin"
+msgstr ""
+
+#. module: sale_margin
+#: model:ir.model,name:sale_margin.model_sale_order_line
+msgid "Sales Order Line"
+msgstr ""
+
+#. 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 ""
diff --git a/addons/sale_mrp/i18n/cs.po b/addons/sale_mrp/i18n/cs.po
new file mode 100644
index 00000000000..78ae9292dbd
--- /dev/null
+++ b/addons/sale_mrp/i18n/cs.po
@@ -0,0 +1,43 @@
+# Czech 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-03-30 12:41+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: sale_mrp
+#: model:ir.model,name:sale_mrp.model_mrp_production
+msgid "Manufacturing Order"
+msgstr ""
+
+#. module: sale_mrp
+#: help:mrp.production,sale_name:0
+msgid "Indicate the name of sales order."
+msgstr ""
+
+#. module: sale_mrp
+#: help:mrp.production,sale_ref:0
+msgid "Indicate the Customer Reference from sales order."
+msgstr ""
+
+#. module: sale_mrp
+#: field:mrp.production,sale_ref:0
+msgid "Sale Reference"
+msgstr ""
+
+#. module: sale_mrp
+#: field:mrp.production,sale_name:0
+msgid "Sale Name"
+msgstr ""
diff --git a/addons/sale_order_dates/i18n/cs.po b/addons/sale_order_dates/i18n/cs.po
new file mode 100644
index 00000000000..a1583d48efe
--- /dev/null
+++ b/addons/sale_order_dates/i18n/cs.po
@@ -0,0 +1,58 @@
+# Czech 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-03-30 12:41+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:27+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: sale_order_dates
+#: view:sale.order:0
+msgid "Dates"
+msgstr ""
+
+#. module: sale_order_dates
+#: field:sale.order,commitment_date:0
+msgid "Commitment Date"
+msgstr ""
+
+#. module: sale_order_dates
+#: field:sale.order,effective_date:0
+msgid "Effective Date"
+msgstr ""
+
+#. module: sale_order_dates
+#: help:sale.order,effective_date:0
+msgid "Date on which picking is created."
+msgstr ""
+
+#. module: sale_order_dates
+#: help:sale.order,requested_date:0
+msgid "Date requested by the customer for the sale."
+msgstr ""
+
+#. module: sale_order_dates
+#: field:sale.order,requested_date:0
+msgid "Requested Date"
+msgstr ""
+
+#. module: sale_order_dates
+#: model:ir.model,name:sale_order_dates.model_sale_order
+msgid "Sales Order"
+msgstr ""
+
+#. module: sale_order_dates
+#: help:sale.order,commitment_date:0
+msgid "Committed date for delivery."
+msgstr ""
diff --git a/addons/stock/wizard/stock_traceability.py b/addons/stock/wizard/stock_traceability.py
index 123a76acd43..8d5fd1ed10d 100644
--- a/addons/stock/wizard/stock_traceability.py
+++ b/addons/stock/wizard/stock_traceability.py
@@ -53,6 +53,7 @@ class action_traceability(osv.osv_memory):
'domain': "[('id','in',["+','.join(map(str, ids))+"])]",
'name': ((type1=='move_history_ids2') and _('Upstream Traceability')) or _('Downstream Traceability'),
'view_mode': 'tree',
+ 'view_type': 'tree',
'res_model': 'stock.move',
'field_parent': type1,
'view_id': (view_id,'View'),
diff --git a/addons/web_linkedin/i18n/cs.po b/addons/web_linkedin/i18n/cs.po
new file mode 100644
index 00000000000..6057606cdf4
--- /dev/null
+++ b/addons/web_linkedin/i18n/cs.po
@@ -0,0 +1,137 @@
+# Czech 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-03-30 21:01+0000\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: Czech <cs@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Launchpad-Export-Date: 2013-03-31 05:28+0000\n"
+"X-Generator: Launchpad (build 16546)\n"
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "here:"
+msgstr ""
+
+#. module: web_linkedin
+#: field:sale.config.settings,api_key:0
+msgid "API Key"
+msgstr ""
+
+#. module: web_linkedin
+#. openerp-web
+#: code:addons/web_linkedin/static/src/js/linkedin.js:249
+#, python-format
+msgid "No results found"
+msgstr ""
+
+#. module: web_linkedin
+#. openerp-web
+#: code:addons/web_linkedin/static/src/js/linkedin.js:84
+#, python-format
+msgid "Ok"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "Log into LinkedIn."
+msgstr ""
+
+#. module: web_linkedin
+#. openerp-web
+#: code:addons/web_linkedin/static/src/xml/linkedin.xml:13
+#, python-format
+msgid "People"
+msgstr ""
+
+#. module: web_linkedin
+#: model:ir.model,name:web_linkedin.model_sale_config_settings
+msgid "sale.config.settings"
+msgstr ""
+
+#. module: web_linkedin
+#: field:sale.config.settings,server_domain:0
+msgid "unknown"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "https://www.linkedin.com/secure/developer"
+msgstr ""
+
+#. module: web_linkedin
+#. openerp-web
+#: code:addons/web_linkedin/static/src/xml/linkedin.xml:15
+#, python-format
+msgid "Companies"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "API key"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "Copy the"
+msgstr ""
+
+#. module: web_linkedin
+#. openerp-web
+#: code:addons/web_linkedin/static/src/js/linkedin.js:181
+#, python-format
+msgid "LinkedIn search"
+msgstr ""
+
+#. module: web_linkedin
+#. openerp-web
+#: code:addons/web_linkedin/static/src/xml/linkedin.xml:31
+#, python-format
+msgid ""
+"LinkedIn access was not enabled on this server.\n"
+" Please ask your administrator to configure it in Settings > "
+"Configuration > Sales > Social Network Integration."
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid ""
+"To use the LinkedIn module with this database, an API Key is required. "
+"Please follow this procedure:"
+msgstr ""
+
+#. module: web_linkedin
+#. openerp-web
+#: code:addons/web_linkedin/static/src/js/linkedin.js:82
+#, python-format
+msgid "LinkedIn is not enabled"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "Add a new application and fill the form:"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "Go to this URL:"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "The programming tool is Javascript"
+msgstr ""
+
+#. module: web_linkedin
+#: view:sale.config.settings:0
+msgid "JavaScript API Domain:"
+msgstr ""