[MERGE] forward port branch saas-12.4 up to cda4f3c308
This commit is contained in:
+25
-16
@@ -2658,7 +2658,7 @@ msgstr "Šablona grafu"
|
||||
#. module: account
|
||||
#: model:ir.actions.act_window,name:account.open_account_charts_modules
|
||||
msgid "Chart Templates"
|
||||
msgstr ""
|
||||
msgstr "Šablony grafů"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/models/company.py:320
|
||||
@@ -4476,7 +4476,7 @@ msgstr "Filtr..."
|
||||
#: model:ir.model.fields,field_description:account.field_account_analytic_line__general_account_id
|
||||
#: model_terms:ir.ui.view,arch_db:account.view_account_analytic_line_filter_inherit_account
|
||||
msgid "Financial Account"
|
||||
msgstr ""
|
||||
msgstr "Finanční účetnictví"
|
||||
|
||||
#. module: account
|
||||
#: model_terms:ir.ui.view,arch_db:account.view_partner_property_form
|
||||
@@ -4577,7 +4577,7 @@ msgstr "Pevná částka"
|
||||
#. module: account
|
||||
#: model:account.account.type,name:account.data_account_type_fixed_assets
|
||||
msgid "Fixed Assets"
|
||||
msgstr ""
|
||||
msgstr "Dlouhodobý majetek"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,help:account.field_account_reconcile_model__amount
|
||||
@@ -4861,7 +4861,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_payment__has_invoices
|
||||
msgid "Has Invoices"
|
||||
msgstr ""
|
||||
msgstr "Má faktury"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_invoice__has_outstanding
|
||||
@@ -4871,7 +4871,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_res_partner__has_unreconciled_entries
|
||||
msgid "Has Unreconciled Entries"
|
||||
msgstr ""
|
||||
msgstr "Má nespárované položky"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_setup_bank_manual_config__qr_code_valid
|
||||
@@ -4909,7 +4909,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
|
||||
msgid "How total tax amount is computed in orders and invoices"
|
||||
msgstr ""
|
||||
msgstr "Jak se vypočítává celková částka daně v objednávkách a fakturách"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_abstract_payment__id
|
||||
@@ -6426,6 +6426,9 @@ msgid ""
|
||||
"Electronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\n"
|
||||
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings."
|
||||
msgstr ""
|
||||
"Ruční: Zaplaťte v hotovosti, šekem nebo jinou metodou mimo Odoo.\n"
|
||||
"Elektronické: Platba automaticky probíhá prostřednictvím příjemce plateb žádostí o transakci na kartě uloženou zákazníkem při nákupu nebo objednání online (platební token).\n"
|
||||
"Dávkový vklad: Zapíše několik zákaznických šeků najednou vygenerováním dávkového vkladu, který odešle do banky. Při kódování výpisu z banky v Odoo vám doporučujeme transakci spárovat s vkladem dávky. Aktivujte tuto možnost z nastavení."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,help:account.field_account_abstract_payment__payment_method_id
|
||||
@@ -6670,7 +6673,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: selection:account.cash.rounding,strategy:0
|
||||
msgid "Modify tax amount"
|
||||
msgstr ""
|
||||
msgstr "Změnit výši daně"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.invoice.refund,filter_refund:0
|
||||
@@ -7108,7 +7111,7 @@ msgstr ""
|
||||
#: code:addons/account/models/chart_template.py:185
|
||||
#, python-format
|
||||
msgid "Only administrators can load a charf of accounts"
|
||||
msgstr ""
|
||||
msgstr "Pouze správci mohou načíst graf účtů"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,help:account.field_res_company__period_lock_date
|
||||
@@ -7562,7 +7565,7 @@ msgstr "Způsob platby"
|
||||
#: model_terms:ir.ui.view,arch_db:account.view_account_bank_journal_form
|
||||
#: model_terms:ir.ui.view,arch_db:account.view_account_journal_form
|
||||
msgid "Payment Method Types"
|
||||
msgstr ""
|
||||
msgstr "Druhy platebních metod"
|
||||
|
||||
#. module: account
|
||||
#. openerp-web
|
||||
@@ -7968,7 +7971,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_res_company__invoice_is_print
|
||||
msgid "Print by default"
|
||||
msgstr ""
|
||||
msgstr "Tisk ve výchozím nastavení"
|
||||
|
||||
#. module: account
|
||||
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
|
||||
@@ -7995,7 +7998,7 @@ msgstr "Kategorie výrobku"
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_invoice_line__product_image
|
||||
msgid "Product Image"
|
||||
msgstr ""
|
||||
msgstr "Obrázek produktu"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_invoice_report__product_qty
|
||||
@@ -9132,7 +9135,7 @@ msgstr "Zdrojový dokument"
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_invoice__source_email
|
||||
msgid "Source Email"
|
||||
msgstr ""
|
||||
msgstr "Zdrojový e-mail"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,help:account.field_account_cash_rounding__strategy
|
||||
@@ -9473,7 +9476,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:account.field_account_tax__tax_group_id
|
||||
#: model:ir.model.fields,field_description:account.field_account_tax_template__tax_group_id
|
||||
msgid "Tax Group"
|
||||
msgstr ""
|
||||
msgstr "Daňová skupina"
|
||||
|
||||
#. module: account
|
||||
#. openerp-web
|
||||
@@ -10793,6 +10796,8 @@ msgid ""
|
||||
"Tracked values are stored in a separate model. This field allow to "
|
||||
"reconstruct the tracking and to generate statistics on the model."
|
||||
msgstr ""
|
||||
"Sledované hodnoty jsou uloženy v samostatném modelu. Toto pole umožňuje "
|
||||
"rekonstruovat sledování a generovat statistiky modelu."
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_invoice_send__tracking_value_ids
|
||||
@@ -10858,7 +10863,7 @@ msgstr "Typ"
|
||||
#. module: account
|
||||
#: selection:account.cash.rounding,rounding_method:0
|
||||
msgid "UP"
|
||||
msgstr ""
|
||||
msgstr "NAHORU"
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/models/account.py:398
|
||||
@@ -11357,7 +11362,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model:ir.model.fields,help:account.field_account_invoice_send__is_log
|
||||
msgid "Whether the message is an internal note (comment mode only)"
|
||||
msgstr ""
|
||||
msgstr "Zda je zpráva interní poznámkou (pouze režim poznámek)"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,help:account.field_account_journal__show_on_dashboard
|
||||
@@ -11368,6 +11373,7 @@ msgstr "Zda se tento účetní deník zobrazuje na dashboardu nebo ne"
|
||||
#: model:ir.model.fields,help:account.field_account_setup_bank_manual_config__new_journal_name
|
||||
msgid "Will be used to name the Journal related to this bank account"
|
||||
msgstr ""
|
||||
"Bude použito k pojmenování deníku týkajícího se tohoto bankovního účtu"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_common_journal_report__amount_currency
|
||||
@@ -11743,6 +11749,9 @@ msgid ""
|
||||
" to manage automatically the booking of accounting entries related to "
|
||||
"differences between exchange rates."
|
||||
msgstr ""
|
||||
"Měli byste v nastavení účetnictví nakonfigurovat „Deník pro směnný kurz“, "
|
||||
"který bude automaticky spravovat zaúčtování účetních položek souvisejících s"
|
||||
" rozdíly mezi směnnými kurzy."
|
||||
|
||||
#. module: account
|
||||
#: code:addons/account/models/account_move.py:1626
|
||||
@@ -11845,7 +11854,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model_terms:ir.ui.view,arch_db:account.setup_bank_account_wizard
|
||||
msgid "e.g Checking account"
|
||||
msgstr ""
|
||||
msgstr "např. Kontrola účtu"
|
||||
|
||||
#. module: account
|
||||
#: model_terms:ir.ui.view,arch_db:account.view_account_reconcile_model_form
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# Alessandro Camilli <alessandrocamilli@openforce.it>, 2018
|
||||
# Daniele Faraglia <daniele.faraglia@gmail.com>, 2018
|
||||
# Davide Corio <enlightx@gmail.com>, 2018
|
||||
# Sebastiano Pistore <SebastianoPistore.info@protonmail.ch>, 2018
|
||||
# SebastianoPistore <SebastianoPistore.info@protonmail.ch>, 2018
|
||||
# Manuela Feliciani <mfeliciani@alice.it>, 2018
|
||||
# Luigi Di Naro <gigidn@gmail.com>, 2018
|
||||
# Marco Calcagni <mcalcagni@dinamicheaziendali.it>, 2018
|
||||
@@ -8663,7 +8663,7 @@ msgstr "Modello documento collegato"
|
||||
#. module: account
|
||||
#: model:ir.model.fields,field_description:account.field_account_invoice_send__rating_ids
|
||||
msgid "Related ratings"
|
||||
msgstr ""
|
||||
msgstr "Valutazioni collegate"
|
||||
|
||||
#. module: account
|
||||
#: model:ir.model.fields,help:account.field_account_invoice__residual_company_signed
|
||||
|
||||
@@ -328,6 +328,8 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:account.res_config_settings_view_form
|
||||
msgid "<span class=\"o_form_label\">Rounding Method</span>"
|
||||
msgstr ""
|
||||
"<span class=\"o_form_label\">丸め方法</span>\n"
|
||||
" <span class=\"fa fa-lg fa-building-o\" title=\"ここに設定する値は会社依存。\" aria-label=\"ここに設定する値は会社依存。\" groups=\"base.group_multi_company\" role=\"img\"/>"
|
||||
|
||||
#. module: account
|
||||
#: model_terms:ir.ui.view,arch_db:account.view_payment_term_line_form
|
||||
@@ -3132,7 +3134,7 @@ msgstr ""
|
||||
#. module: account
|
||||
#: model_terms:ir.actions.act_window,help:account.action_invoice_tree1
|
||||
msgid "Create a customer invoice"
|
||||
msgstr ""
|
||||
msgstr "顧客請求書を作成しましょう。"
|
||||
|
||||
#. module: account
|
||||
#: selection:account.invoice.refund,filter_refund:0
|
||||
|
||||
@@ -296,8 +296,6 @@ class AccountBankStatement(models.Model):
|
||||
statements.write({'state': 'confirm', 'date_done': time.strftime("%Y-%m-%d %H:%M:%S")})
|
||||
|
||||
def button_journal_entries(self):
|
||||
context = dict(self._context or {})
|
||||
context['journal_id'] = self.journal_id.id
|
||||
return {
|
||||
'name': _('Journal Entries'),
|
||||
'view_mode': 'tree,form',
|
||||
@@ -305,7 +303,9 @@ class AccountBankStatement(models.Model):
|
||||
'view_id': False,
|
||||
'type': 'ir.actions.act_window',
|
||||
'domain': [('id', 'in', self.mapped('move_line_ids').mapped('move_id').ids)],
|
||||
'context': context,
|
||||
'context': {
|
||||
'journal_id': self.journal_id.id,
|
||||
}
|
||||
}
|
||||
|
||||
def button_open(self):
|
||||
|
||||
@@ -7,7 +7,7 @@ from odoo.tools.misc import formatLang, format_date
|
||||
|
||||
from collections import OrderedDict
|
||||
from datetime import date
|
||||
from itertools import groupby
|
||||
from itertools import groupby, chain
|
||||
from stdnum.iso7064 import mod_97_10
|
||||
from itertools import zip_longest
|
||||
|
||||
@@ -1210,8 +1210,11 @@ class AccountMove(models.Model):
|
||||
return
|
||||
|
||||
self._cr.execute('''
|
||||
SELECT move.id
|
||||
FROM account_move move
|
||||
WITH current_moves (id, name, state, company_id, journal_id, type) as ( values {} )
|
||||
SELECT move2.id
|
||||
FROM ( SELECT id, name, state, company_id, journal_id, type from account_move
|
||||
UNION ALL SELECT id, name, state, company_id, journal_id, type from current_moves
|
||||
) move
|
||||
INNER JOIN account_move move2 ON
|
||||
move2.name = move.name
|
||||
AND move2.company_id = move.company_id
|
||||
@@ -1221,7 +1224,7 @@ class AccountMove(models.Model):
|
||||
WHERE move.id IN %s
|
||||
AND move.state = 'posted'
|
||||
AND move2.state = 'posted'
|
||||
''', [tuple(self.ids)])
|
||||
'''.format(", ".join(["(%s, %s, %s, %s, %s, %s)"] * len(self))), list(chain(*self.mapped(lambda r: [r.id, r.name, r.state, r.company_id.id, r.journal_id.id, r.type]))) + [tuple(self.ids)])
|
||||
res = self._cr.fetchone()
|
||||
if res:
|
||||
raise ValidationError(_('Posted journal entry must have an unique sequence number per company.'))
|
||||
@@ -1233,18 +1236,22 @@ class AccountMove(models.Model):
|
||||
return
|
||||
|
||||
self._cr.execute('''
|
||||
SELECT move.id
|
||||
FROM account_move move
|
||||
WITH current_moves (id, ref, company_id, commercial_partner_id, type, invoice_date) as ( values {} )
|
||||
SELECT move2.id
|
||||
FROM ( SELECT id, ref, company_id, commercial_partner_id, type, invoice_date from account_move
|
||||
UNION ALL SELECT id, ref, company_id, commercial_partner_id, type, invoice_date from current_moves
|
||||
) move
|
||||
INNER JOIN account_move move2 ON
|
||||
move2.ref = move.ref
|
||||
AND move2.company_id = move.company_id
|
||||
AND move2.commercial_partner_id = move.commercial_partner_id
|
||||
AND move2.type = move.type
|
||||
AND (move2.invoice_date = move.invoice_date OR move.invoice_date is NULL)
|
||||
AND move2.id != move.id
|
||||
WHERE move.id IN %s
|
||||
AND move.type in ('in_invoice', 'in_refund')
|
||||
AND move.ref IS NOT NULL
|
||||
''', [tuple(self.ids)])
|
||||
'''.format(", ".join(["(%s, %s, %s, %s, %s, CAST(%s as DATE))"] * len(self))), list(chain(*self.mapped(lambda r: [r.id, r.ref, r.company_id.id, r.commercial_partner_id.id, r.type, r.invoice_date or None]))) + [tuple(moves.ids)])
|
||||
if self._cr.fetchone():
|
||||
raise ValidationError(_('Duplicated vendor reference detected. You probably encoded twice the same vendor bill/credit note.'))
|
||||
|
||||
@@ -1793,8 +1800,8 @@ class AccountMove(models.Model):
|
||||
move_vals_list = []
|
||||
for move, default_values in zip(self, default_values_list):
|
||||
default_values.update({
|
||||
'type': reverse_type_map[self.type],
|
||||
'reversed_entry_id': self.id,
|
||||
'type': reverse_type_map[move.type],
|
||||
'reversed_entry_id': move.id,
|
||||
})
|
||||
move_vals_list.append(move._reverse_move_vals(default_values, cancel=cancel))
|
||||
reverse_moves = self.env['account.move'].create(move_vals_list)
|
||||
|
||||
@@ -428,14 +428,7 @@ var StatementModel = BasicModel.extend({
|
||||
if (self.context && self.context.active_model === 'account.journal' && self.context.active_ids) {
|
||||
domainReconcile.push(['journal_id', 'in', [false].concat(self.context.active_ids)]);
|
||||
}
|
||||
var def_reconcileModel = this._rpc({
|
||||
model: 'account.reconcile.model',
|
||||
method: 'search_read',
|
||||
domain: domainReconcile,
|
||||
})
|
||||
.then(function (reconcileModels) {
|
||||
self.reconcileModels = reconcileModels;
|
||||
});
|
||||
var def_reconcileModel = this._loadReconciliationModel({domainReconcile: domainReconcile});
|
||||
var def_account = this._rpc({
|
||||
model: 'account.account',
|
||||
method: 'search_read',
|
||||
@@ -455,7 +448,59 @@ var StatementModel = BasicModel.extend({
|
||||
return self._formatLine(self.statement.lines);
|
||||
});
|
||||
},
|
||||
|
||||
_readAnalyticTags: function (params) {
|
||||
var self = this;
|
||||
this.analyticTags = {};
|
||||
if (!params || !params.res_ids || !params.res_ids.length) {
|
||||
return $.when();
|
||||
}
|
||||
var fields = (params && params.fields || []).concat(['id', 'display_name']);
|
||||
return this._rpc({
|
||||
model: 'account.analytic.tag',
|
||||
method: 'read',
|
||||
args: [
|
||||
params.res_ids,
|
||||
fields,
|
||||
],
|
||||
}).then(function (tags) {
|
||||
for (var i=0; i<tags.length; i++) {
|
||||
var tag = tags[i];
|
||||
self.analyticTags[tag.id] = tag;
|
||||
}
|
||||
});
|
||||
},
|
||||
_loadReconciliationModel: function (params) {
|
||||
var self = this;
|
||||
return this._rpc({
|
||||
model: 'account.reconcile.model',
|
||||
method: 'search_read',
|
||||
domain: params.domainReconcile || [],
|
||||
})
|
||||
.then(function (reconcileModels) {
|
||||
var analyticTagIds = [];
|
||||
for (var i=0; i<reconcileModels.length; i++) {
|
||||
var modelTags = reconcileModels[i].analytic_tag_ids || [];
|
||||
for (var j=0; j<modelTags.length; j++) {
|
||||
if (analyticTagIds.indexOf(modelTags[j]) === -1) {
|
||||
analyticTagIds.push(modelTags[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return self._readAnalyticTags({res_ids: analyticTagIds}).then(function () {
|
||||
for (var i=0; i<reconcileModels.length; i++) {
|
||||
var recModel = reconcileModels[i];
|
||||
var analyticTagData = [];
|
||||
var modelTags = reconcileModels[i].analytic_tag_ids || [];
|
||||
for (var j=0; j<modelTags.length; j++) {
|
||||
var tagId = modelTags[j];
|
||||
analyticTagData.push([tagId, self.analyticTags[tagId].display_name])
|
||||
}
|
||||
recModel.analytic_tag_ids = analyticTagData;
|
||||
}
|
||||
self.reconcileModels = reconcileModels;
|
||||
});
|
||||
});
|
||||
},
|
||||
_loadTaxes: function(){
|
||||
var self = this;
|
||||
self.taxes = {};
|
||||
@@ -984,7 +1029,7 @@ var StatementModel = BasicModel.extend({
|
||||
_formatMany2ManyTags: function (value) {
|
||||
var res = [];
|
||||
for (var i=0, len=value.length; i<len; i++) {
|
||||
res[i] = {data: {'id': value[i][0], 'display_name': value[i][1]}};
|
||||
res[i] = {'id': value[i][0], 'display_name': value[i][1]};
|
||||
}
|
||||
return res;
|
||||
},
|
||||
@@ -1345,15 +1390,7 @@ var ManualModel = StatementModel.extend({
|
||||
if (company_ids) {
|
||||
domainReconcile.push(['company_id', 'in', company_ids]);
|
||||
}
|
||||
var def_reconcileModel = this._rpc({
|
||||
model: 'account.reconcile.model',
|
||||
method: 'search_read',
|
||||
domain: domainReconcile,
|
||||
})
|
||||
.then(function (reconcileModels) {
|
||||
self.reconcileModels = reconcileModels;
|
||||
});
|
||||
|
||||
var def_reconcileModel = this._loadReconciliationModel({domainReconcile: domainReconcile});
|
||||
var def_taxes = this._loadTaxes();
|
||||
|
||||
return Promise.all([def_reconcileModel, def_account, def_taxes]).then(function () {
|
||||
|
||||
@@ -137,8 +137,14 @@ var db = {
|
||||
]
|
||||
},
|
||||
'account.analytic.tag': {
|
||||
fields: {},
|
||||
records: []
|
||||
fields: {
|
||||
id: {string: 'id', type: 'integer'},
|
||||
display_name: {string: 'display_name', type: 'char'},
|
||||
},
|
||||
records: [
|
||||
{id: 1, display_name: 'Come together'},
|
||||
{id: 2, display_name: 'Right now'},
|
||||
],
|
||||
},
|
||||
'account.bank.statement': {
|
||||
fields: {},
|
||||
@@ -180,7 +186,8 @@ var db = {
|
||||
second_amount: {string: "Second Amount", type: 'float', digits:0, help:"Fixed amount will count as a debit if it is negative, as a credit if it is positive.", default:100.0},
|
||||
second_tax_ids: {string: "Second Tax", type: 'many2many', relation: 'account.tax'},
|
||||
second_analytic_account_id: {string: "Second Analytic Account", type: 'many2one', relation:'account.analytic.account'},
|
||||
match_journal_ids: {string: "Journal Ids", type: 'many2many', relation: 'account.journal'}
|
||||
match_journal_ids: {string: "Journal Ids", type: 'many2many', relation: 'account.journal'},
|
||||
analytic_tag_ids: {string: 'Analytic tags', type: 'many2many', relation: 'account.analytic.tag'},
|
||||
},
|
||||
records: [
|
||||
{'second_analytic_account_id': false, 'second_amount_type': "percentage", 'second_journal_id': false, 'id': 4, 'analytic_account_id': false, 'display_name': "Int\u00e9rrets", 'rule_type': 'writeoff_button', 'second_tax_ids': [], 'has_second_line': false, 'journal_id': false, 'label': false, 'second_label': false, 'second_account_id': false, 'account_id': 282, 'company_id': [1, "Demo SPRL"], 'tax_ids': [], 'amount_type': "fixed", 'name': "Int\u00e9rrets", 'amount': 0.0, 'second_amount': 100.0, 'match_journal_ids': []},
|
||||
@@ -188,7 +195,7 @@ var db = {
|
||||
{'second_analytic_account_id': false, 'second_amount_type': "percentage", 'second_journal_id': false, 'id': 5, 'analytic_account_id': false, 'display_name': "Fs bank", 'rule_type': 'writeoff_button', 'second_tax_ids': [], 'has_second_line': false, 'journal_id': false, 'label': false, 'second_label': false, 'second_account_id': false, 'account_id': 284, 'company_id': [1, "Demo SPRL"], 'tax_ids': [], 'amount_type': "percentage", 'name': "Fs bank", 'amount': 100.0, 'second_amount': 100.0},
|
||||
{'second_analytic_account_id': false, 'second_amount_type': "percentage", 'second_journal_id': false, 'id': 8, 'analytic_account_id': false, 'display_name': "Caisse Sand.", 'rule_type': 'writeoff_button', 'second_tax_ids': [], 'has_second_line': false, 'journal_id': false, 'label': "Caisse Sand.", 'second_label': false, 'second_account_id': false, 'account_id': 308, 'company_id': [1, "Demo SPRL"], 'tax_ids': [], 'amount_type': "percentage", 'name': "Caisse Sand.", 'amount': 100.0, 'second_amount': 100.0, 'match_journal_ids': []},
|
||||
{'second_analytic_account_id': false, 'second_amount_type': "percentage", 'second_journal_id': false, 'id': 3, 'analytic_account_id': false, 'display_name': "ATOS", 'rule_type': 'writeoff_button', 'second_tax_ids': [7], 'has_second_line': true, 'journal_id': false, 'label': "ATOS Banque", 'second_label': "ATOS Frais", 'second_account_id': 286, 'account_id': 285, 'company_id': [1, "Demo SPRL"], 'tax_ids': [6], 'amount_type': "percentage", 'name': "ATOS", 'amount': 97.5, 'second_amount': 2.5},
|
||||
{'second_analytic_account_id': false, 'second_amount_type': "percentage", 'second_journal_id': false, 'id': 10, 'analytic_account_id': false, 'display_name': "Double", 'rule_type': 'writeoff_button', 'second_tax_ids': [], 'has_second_line': true, 'journal_id': false, 'label': "Double Banque", 'second_label': "Double Frais", 'second_account_id': 286, 'account_id': 285, 'company_id': [1, "Demo SPRL"], 'tax_ids': [], 'amount_type': "percentage", 'name': "Double", 'amount': 97.5, 'second_amount': 2.5, 'match_journal_ids': []},
|
||||
{'second_analytic_account_id': false, 'second_amount_type': "percentage", 'second_journal_id': false, 'id': 10, 'analytic_account_id': false, 'display_name': "Double", 'rule_type': 'writeoff_button', 'second_tax_ids': [], 'has_second_line': true, 'journal_id': false, 'label': "Double Banque", 'second_label': "Double Frais", 'second_account_id': 286, 'account_id': 285, 'company_id': [1, "Demo SPRL"], 'tax_ids': [], 'amount_type': "percentage", 'name': "Double", 'amount': 97.5, 'second_amount': 2.5, 'match_journal_ids': [], 'analytic_tag_ids': [1,2]},
|
||||
]
|
||||
},
|
||||
'account.reconciliation.widget': {
|
||||
@@ -589,6 +596,7 @@ var ReconciliationRenderer = require('account.ReconciliationRenderer');
|
||||
var demoData = require('account.reconciliation_tests.data');
|
||||
|
||||
var testUtils = require('web.test_utils');
|
||||
var testUtilsDom = require('web.test_utils_dom');
|
||||
|
||||
QUnit.module('account', {
|
||||
beforeEach: function () {
|
||||
@@ -1965,5 +1973,54 @@ QUnit.module('account', {
|
||||
|
||||
clientAction.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('Reconciliation Models handle analytic tags', async function (assert) {
|
||||
assert.expect(6);
|
||||
|
||||
var clientAction = new ReconciliationClientAction.StatementAction(null, this.params.options);
|
||||
testUtils.addMockEnvironment(clientAction, {
|
||||
data: this.params.data,
|
||||
mockRPC: function (route, args) {
|
||||
if (args.method === 'process_bank_statement_line') {
|
||||
var new_aml_dicts = args.args[1][0].new_aml_dicts;
|
||||
assert.strictEqual(new_aml_dicts.length, 2);
|
||||
// I personnally judge the following use case rotten, since
|
||||
// the first and the second line wouldn't have the same tags
|
||||
assert.deepEqual(new_aml_dicts[0].analytic_tag_ids, [[6, null, [1, 2]]]);
|
||||
assert.deepEqual(new_aml_dicts[1].analytic_tag_ids, [[6, null, [2]]]);
|
||||
}
|
||||
return this._super(route, args);
|
||||
},
|
||||
session: {
|
||||
currencies: {
|
||||
3: {
|
||||
digits: [69, 2],
|
||||
position: "before",
|
||||
symbol: "$"
|
||||
}
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
await clientAction.appendTo($('#qunit-fixture'));
|
||||
|
||||
// The first reconciliation "line" is where it happens
|
||||
var widget = clientAction.widgets[0];
|
||||
|
||||
await testUtilsDom.click(widget.$('.toggle_create'));
|
||||
await testUtilsDom.click(widget.$('.quick_add button:contains("Double")'));
|
||||
assert.containsN(widget, '.create_analytic_tag_ids .o_field_many2manytags .badge', 2,
|
||||
'Two tags are loaded');
|
||||
assert.containsOnce(widget, '.create_analytic_tag_ids .o_field_many2manytags .badge:contains("Come together")',
|
||||
'Tags should have a name');
|
||||
assert.containsOnce(widget, '.create_analytic_tag_ids .o_field_many2manytags .badge:contains("Right now")',
|
||||
'Tags should have a name');
|
||||
|
||||
await testUtilsDom.click(widget.$('.create_analytic_tag_ids .o_field_many2manytags .badge a.o_delete:first()'));
|
||||
|
||||
await testUtilsDom.click(widget.$('.o_reconcile'));
|
||||
|
||||
clientAction.destroy();
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -11,7 +11,7 @@ class TestAccountMoveInInvoiceOnchanges(InvoiceTestCommon):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestAccountMoveInInvoiceOnchanges, cls).setUpClass()
|
||||
|
||||
|
||||
cls.invoice = cls.init_invoice('in_invoice')
|
||||
|
||||
cls.product_line_vals_1 = {
|
||||
@@ -892,13 +892,13 @@ class TestAccountMoveInInvoiceOnchanges(InvoiceTestCommon):
|
||||
**self.move_vals,
|
||||
'date': move_reversal.date,
|
||||
'state': 'draft',
|
||||
'invoice_payment_ref': move_reversal.reason,
|
||||
'ref': 'Reversal of: %s, %s' % (self.invoice.name, move_reversal.reason),
|
||||
'invoice_payment_state': 'not_paid',
|
||||
})
|
||||
|
||||
move_reversal = self.env['account.move.reversal'].with_context(active_ids=self.invoice.ids).create({
|
||||
'date': fields.Date.from_string('2019-02-01'),
|
||||
'reason': 'no reason',
|
||||
'reason': 'because',
|
||||
'refund_method': 'cancel',
|
||||
})
|
||||
reversal = move_reversal.reverse_moves()
|
||||
@@ -934,7 +934,7 @@ class TestAccountMoveInInvoiceOnchanges(InvoiceTestCommon):
|
||||
**self.move_vals,
|
||||
'date': move_reversal.date,
|
||||
'state': 'posted',
|
||||
'invoice_payment_ref': move_reversal.reason,
|
||||
'ref': 'Reversal of: %s, %s' % (self.invoice.name, move_reversal.reason),
|
||||
'invoice_payment_state': 'paid',
|
||||
})
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ class TestAccountMoveOutInvoiceOnchanges(InvoiceTestCommon):
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
super(TestAccountMoveOutInvoiceOnchanges, cls).setUpClass()
|
||||
|
||||
|
||||
cls.invoice = cls.init_invoice('out_invoice')
|
||||
|
||||
cls.product_line_vals_1 = {
|
||||
@@ -878,7 +878,7 @@ class TestAccountMoveOutInvoiceOnchanges(InvoiceTestCommon):
|
||||
**self.move_vals,
|
||||
'date': move_reversal.date,
|
||||
'state': 'draft',
|
||||
'invoice_payment_ref': move_reversal.reason,
|
||||
'ref': 'Reversal of: %s, %s' % (self.invoice.name, move_reversal.reason),
|
||||
'invoice_payment_state': 'not_paid',
|
||||
})
|
||||
|
||||
@@ -921,7 +921,7 @@ class TestAccountMoveOutInvoiceOnchanges(InvoiceTestCommon):
|
||||
**self.move_vals,
|
||||
'date': move_reversal.date,
|
||||
'state': 'posted',
|
||||
'invoice_payment_ref': move_reversal.reason,
|
||||
'ref': 'Reversal of: %s, %s' % (self.invoice.name, move_reversal.reason),
|
||||
'invoice_payment_state': 'paid',
|
||||
})
|
||||
|
||||
|
||||
@@ -82,7 +82,22 @@ class AccountInvoiceSend(models.TransientModel):
|
||||
|
||||
def send_and_print_action(self):
|
||||
self.ensure_one()
|
||||
self._send_email()
|
||||
# Send the mails in the correct language by splitting the ids per lang.
|
||||
# This should ideally be fixed in mail_compose_message, so when a fix is made there this whole commit should be reverted.
|
||||
# basically self.body (which could be manually edited) extracts self.template_id,
|
||||
# which is then not translated for each customer.
|
||||
if self.composition_mode == 'mass_mail' and self.template_id:
|
||||
active_ids = self.env.context.get('active_ids', self.res_id)
|
||||
active_records = self.env[self.model].browse(active_ids)
|
||||
langs = active_records.mapped('partner_id.lang')
|
||||
default_lang = self.env.context.get('lang', 'en_US')
|
||||
for lang in (set(langs) or [default_lang]):
|
||||
active_ids_lang = active_records.filtered(lambda r: r.partner_id.lang == lang).ids
|
||||
self_lang = self.with_context(active_ids=active_ids_lang, lang=lang)
|
||||
self_lang.onchange_template_id()
|
||||
self_lang._send_email()
|
||||
else:
|
||||
self._send_email()
|
||||
if self.is_print:
|
||||
return self._print_document()
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
<field name="invoice_ids" invisible="1"/>
|
||||
<field name="email_from" invisible="1" />
|
||||
<field name="mail_server_id" invisible="1"/>
|
||||
<field name="reply_to" invisible="1"/>
|
||||
<div name="option_print">
|
||||
<field name="is_print" />
|
||||
<b><label for="is_print"/></b>
|
||||
|
||||
@@ -50,8 +50,7 @@ class AccountMoveReversal(models.TransientModel):
|
||||
default_values_list = []
|
||||
for move in moves:
|
||||
default_values_list.append({
|
||||
'ref': _('Reversal of: %s') % move.name,
|
||||
'invoice_payment_ref': self.reason,
|
||||
'ref': _('Reversal of: %s, %s') % (move.name, self.reason),
|
||||
'date': self.date or move.date,
|
||||
'invoice_date': move.is_invoice(include_receipts=True) and (self.date or move.date) or False,
|
||||
'journal_id': self.journal_id and self.journal_id.id or move.journal_id.id,
|
||||
|
||||
@@ -435,6 +435,9 @@ msgid ""
|
||||
"Electronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\n"
|
||||
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings."
|
||||
msgstr ""
|
||||
"Ruční: Zaplaťte v hotovosti, šekem nebo jinou metodou mimo Odoo.\n"
|
||||
"Elektronické: Platba automaticky probíhá prostřednictvím příjemce plateb žádostí o transakci na kartě uloženou zákazníkem při nákupu nebo objednání online (platební token).\n"
|
||||
"Dávkový vklad: Zapíše několik zákaznických šeků najednou vygenerováním dávkového vkladu, který odešle do banky. Při kódování výpisu z banky v Odoo vám doporučujeme transakci spárovat s vkladem dávky. Aktivujte tuto možnost z nastavení."
|
||||
|
||||
#. module: account_bank_statement_import
|
||||
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation__outbound_payment_method_ids
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
<div t-if="pms or acquirers" id="payment_method" class="text-left col-md-13">
|
||||
<t t-call="payment.payment_tokens_list">
|
||||
<t t-set="mode" t-value="'payment'"/>
|
||||
<t t-set="partner_id" t-value="request.env.user.partner_id.id"/>
|
||||
<t t-set="partner_id" t-value="invoice.partner_id.id if request.env.user._is_public() else request.env.user.partner_id.id"/>
|
||||
<t t-set="success_url" t-value="invoice.get_portal_url()"/>
|
||||
<t t-set="error_url" t-value="invoice.get_portal_url()"/>
|
||||
<t t-set="access_token" t-value="access_token or ''"/>
|
||||
|
||||
@@ -150,7 +150,7 @@ class ResPartner(models.Model):
|
||||
vat = country_code + vat
|
||||
return vat
|
||||
|
||||
@api.constrains('vat')
|
||||
@api.constrains('vat', 'country_id')
|
||||
def check_vat(self):
|
||||
if self.env.context.get('company_id'):
|
||||
company = self.env['res.company'].browse(self.env.context['company_id'])
|
||||
|
||||
+15
-10
@@ -5,7 +5,6 @@
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# Martin Trigaux, 2018
|
||||
# Osoul <baruni@osoul.ly>, 2018
|
||||
# Osama Ahmaro <osamaahmaro@gmail.com>, 2018
|
||||
# Zuhair Hammadi <zuhair12@gmail.com>, 2018
|
||||
# Abdulmajeed Alomar <majeeed87@gmail.com>, 2018
|
||||
@@ -31,6 +30,8 @@ msgid ""
|
||||
"\"Add to\n"
|
||||
" Dashboard\""
|
||||
msgstr ""
|
||||
"\"إضافة إلى\n"
|
||||
" لوحة المعلومات\""
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
@@ -44,7 +45,7 @@ msgstr " "
|
||||
#: code:addons/board/static/src/js/favorite_menu.js:103
|
||||
#, python-format
|
||||
msgid "'%s' added to dashboard"
|
||||
msgstr "تم إضافة '%s' إلى اللوحة"
|
||||
msgstr "تم إضافة '%s' للوحة المعلومات"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
@@ -80,21 +81,21 @@ msgstr "لوحة"
|
||||
#: code:addons/board/static/src/xml/board.xml:7
|
||||
#, python-format
|
||||
msgid "Change Layout"
|
||||
msgstr "تغيير النسق"
|
||||
msgstr "تغيير المخطط"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:5
|
||||
#, python-format
|
||||
msgid "Change Layout.."
|
||||
msgstr "تغيير النسق..."
|
||||
msgstr "تغيير المخطط..."
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:36
|
||||
#, python-format
|
||||
msgid "Choose dashboard layout"
|
||||
msgstr "اختيار تصميم لوحة المعلومات"
|
||||
msgstr "اختيار مخطط لوحة المعلومات"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
@@ -106,14 +107,14 @@ msgstr "لم يمكن إضافة الفلتر إلى لوحة المعلومات
|
||||
#. module: board
|
||||
#: model:ir.model.fields,field_description:board.field_board_board__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/js/board_view.js:80
|
||||
#, python-format
|
||||
msgid "Edit Layout"
|
||||
msgstr "تعديل التنسق"
|
||||
msgstr "تحرير المخطط"
|
||||
|
||||
#. module: board
|
||||
#: model:ir.model.fields,field_description:board.field_board_board__id
|
||||
@@ -147,7 +148,7 @@ msgstr "لوحة معلوماتي"
|
||||
#: code:addons/board/static/src/js/favorite_menu.js:104
|
||||
#, python-format
|
||||
msgid "Please refresh your browser for the changes to take effect."
|
||||
msgstr "الرجاء تحديث المتصفح الخاص بك حتى تصبح التغييرات سارية المفعول."
|
||||
msgstr "الرجاء تحديث متصفحك حتى تصبح التغييرات سارية المفعول."
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
@@ -157,6 +158,8 @@ msgid ""
|
||||
"To add your first report into this dashboard, go to any\n"
|
||||
" menu, switch to list or graph view, and click"
|
||||
msgstr ""
|
||||
"لإضافة تقريرك الأول في لوحة المعلومات هذه، افتح أي\n"
|
||||
" قائمة، انتقل لطريقة العرض بالقائمة أو بالرسم البياني، واضغط"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
@@ -166,17 +169,19 @@ msgid ""
|
||||
"You can filter and group data before inserting into the\n"
|
||||
" dashboard using the search options."
|
||||
msgstr ""
|
||||
"يمكنك تصفية وتجميع البيانات قبل إدراجها في\n"
|
||||
" لوحة معلوماتك باستخدام خيارات البحث."
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:49
|
||||
#, python-format
|
||||
msgid "Your personal dashboard is empty"
|
||||
msgstr ""
|
||||
msgstr "لوحة معلوماتك فارغة"
|
||||
|
||||
#. module: board
|
||||
#. openerp-web
|
||||
#: code:addons/board/static/src/xml/board.xml:53
|
||||
#, python-format
|
||||
msgid "in the extended search options."
|
||||
msgstr ""
|
||||
msgstr "في خيارات البحث الممتد."
|
||||
|
||||
+10
-10
@@ -3,19 +3,19 @@
|
||||
# * contacts
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# amrnegm <amrnegm.01@gmail.com>, 2018
|
||||
# Martin Trigaux, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Akram Alfusayal <akram_ma@hotmail.com>, 2018
|
||||
# Abdulmajeed Alomar <majeeed87@gmail.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-09-18 09:49+0000\n"
|
||||
"PO-Revision-Date: 2018-09-18 09:49+0000\n"
|
||||
"Last-Translator: Abdulmajeed Alomar <majeeed87@gmail.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:17+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -32,7 +32,7 @@ msgstr "الحسابات البنكية"
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_action_res_bank_form
|
||||
msgid "Banks"
|
||||
msgstr "المصارف"
|
||||
msgstr "البنوك"
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.res_partner_menu_config
|
||||
@@ -42,7 +42,7 @@ msgstr "الإعدادات"
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_partner_category_form
|
||||
msgid "Contact Tags"
|
||||
msgstr "علامات الاتصال"
|
||||
msgstr "وسوم جهة الاتصال"
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_partner_title_contact
|
||||
@@ -65,18 +65,18 @@ msgstr "الدول"
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_country_group
|
||||
msgid "Country Group"
|
||||
msgstr "مجموعة الدولة"
|
||||
msgstr "مجموعات الدول"
|
||||
|
||||
#. module: contacts
|
||||
#: model_terms:ir.actions.act_window,help:contacts.action_contacts
|
||||
#: model_terms:ir.actions.act_window,help:contacts.action_contacts_summary
|
||||
msgid "Create a contact in your address book"
|
||||
msgstr ""
|
||||
msgstr "إنشاء جهة اتصال في دفتر العناوين"
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_country_state_partner
|
||||
msgid "Fed. States"
|
||||
msgstr "Fed. States"
|
||||
msgstr "الولايات الفيدرالية"
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.menu_localisation
|
||||
@@ -87,7 +87,7 @@ msgstr "التوطين"
|
||||
#: model_terms:ir.actions.act_window,help:contacts.action_contacts
|
||||
#: model_terms:ir.actions.act_window,help:contacts.action_contacts_summary
|
||||
msgid "Odoo helps you to easily track all activities related to a customer."
|
||||
msgstr ""
|
||||
msgstr "يساعدك أودو على تتبع كل الأنشطة المتعلقة بالعملاء بسهولة."
|
||||
|
||||
#. module: contacts
|
||||
#: model:ir.ui.menu,name:contacts.res_partner_industry_menu
|
||||
|
||||
@@ -1921,7 +1921,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_crm_team
|
||||
msgid "Sales Channels"
|
||||
msgstr ""
|
||||
msgstr "លក់"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.model.fields,field_description:crm.field_crm_activity_report__team_id
|
||||
@@ -1935,13 +1935,13 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:crm.crm_opportunity_report_view_search
|
||||
#: model_terms:ir.ui.view,arch_db:crm.view_crm_case_opportunities_filter
|
||||
msgid "Sales Team"
|
||||
msgstr ""
|
||||
msgstr "ក្រុមលក់"
|
||||
|
||||
#. module: crm
|
||||
#: code:addons/crm/models/crm_lead.py:1125
|
||||
#, python-format
|
||||
msgid "Sales Team Settings"
|
||||
msgstr ""
|
||||
msgstr "កំណត់ការលក់"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.ui.menu,name:crm.crm_team_config
|
||||
@@ -1969,7 +1969,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model_terms:ir.ui.view,arch_db:crm.view_crm_case_leads_filter
|
||||
msgid "Search Leads"
|
||||
msgstr ""
|
||||
msgstr "ស្រាវជ្រាវ"
|
||||
|
||||
#. module: crm
|
||||
#: model_terms:ir.ui.view,arch_db:crm.crm_lost_reason_view_search
|
||||
@@ -1980,7 +1980,7 @@ msgstr ""
|
||||
#. module: crm
|
||||
#: model_terms:ir.ui.view,arch_db:crm.merge_opportunity_form
|
||||
msgid "Select Leads/Opportunities"
|
||||
msgstr ""
|
||||
msgstr "ឧកាស"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.actions.act_window,name:crm.action_lead_mass_mail
|
||||
@@ -2000,7 +2000,7 @@ msgstr "សេវាកម្ម"
|
||||
#. module: crm
|
||||
#: model_terms:ir.actions.act_window,help:crm.crm_stage_action
|
||||
msgid "Set a new stage in your opportunity pipeline"
|
||||
msgstr ""
|
||||
msgstr "ការកំណត់យុទ្ឋសាស្រ្តនៅក្នុងអាកាស"
|
||||
|
||||
#. module: crm
|
||||
#: model:ir.model.fields,help:crm.field_crm_stage__on_change
|
||||
|
||||
@@ -719,7 +719,7 @@ msgstr "Thiết kế"
|
||||
#. module: crm
|
||||
#: model:ir.model,name:crm.model_digest_digest
|
||||
msgid "Digest"
|
||||
msgstr ""
|
||||
msgstr "Tiêu"
|
||||
|
||||
#. module: crm
|
||||
#: model_terms:ir.ui.view,arch_db:crm.view_create_opportunity_simplified
|
||||
|
||||
@@ -7,7 +7,7 @@ import logging
|
||||
import re
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
from odoo import api, fields, models, tools, _
|
||||
from odoo import api, fields, models, tools, _, _geoip_resolver
|
||||
from odoo.addons.iap import jsonrpc
|
||||
from odoo.addons.crm.models import crm_stage
|
||||
from odoo.exceptions import ValidationError
|
||||
@@ -73,9 +73,18 @@ class CRMRevealRule(models.Model):
|
||||
except Exception:
|
||||
raise ValidationError(_('Enter Valid Regex.'))
|
||||
|
||||
@api.model
|
||||
def _assert_geoip(self):
|
||||
if not _geoip_resolver:
|
||||
message = _('Lead Generation requires a GeoIP resolver which could not be found on your system. Please consult https://pypi.org/project/GeoIP/.')
|
||||
self.env['bus.bus'].sendone(
|
||||
(self._cr.dbname, 'res.partner', self.env.user.partner_id.id),
|
||||
{'type': 'simple_notification', 'title': _('Missing Library'), 'message': message, 'sticky': True, 'warning': True})
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
self.clear_caches() # Clear the cache in order to recompute _get_active_rules
|
||||
self._assert_geoip()
|
||||
return super(CRMRevealRule, self).create(vals)
|
||||
|
||||
def write(self, vals):
|
||||
@@ -84,6 +93,7 @@ class CRMRevealRule(models.Model):
|
||||
}
|
||||
if set(vals.keys()) & fields_set:
|
||||
self.clear_caches() # Clear the cache in order to recompute _get_active_rules
|
||||
self._assert_geoip()
|
||||
return super(CRMRevealRule, self).write(vals)
|
||||
|
||||
def unlink(self):
|
||||
|
||||
@@ -30,6 +30,7 @@ invoices from picking, the system is able to add and compute the shipping line.
|
||||
'views/res_config_settings_views.xml',
|
||||
'wizard/choose_delivery_package_views.xml',
|
||||
'wizard/choose_delivery_carrier_views.xml',
|
||||
'views/assets.xml',
|
||||
],
|
||||
'demo': ['data/delivery_demo.xml'],
|
||||
'installable': True,
|
||||
|
||||
@@ -549,7 +549,7 @@ msgstr ""
|
||||
#. module: delivery
|
||||
#: model:ir.model.fields,field_description:delivery.field_delivery_price_rule__operator
|
||||
msgid "Operator"
|
||||
msgstr ""
|
||||
msgstr "ប្រតិបត្តការណ៌"
|
||||
|
||||
#. module: delivery
|
||||
#: model_terms:ir.ui.view,arch_db:delivery.choose_delivery_package_view_form
|
||||
|
||||
@@ -151,7 +151,7 @@ class SaleOrderLine(models.Model):
|
||||
def _compute_product_qty(self):
|
||||
for line in self:
|
||||
if not line.product_id or not line.product_uom or not line.product_uom_qty:
|
||||
return 0.0
|
||||
continue
|
||||
line.product_qty = line.product_uom._compute_quantity(line.product_uom_qty, line.product_id.uom_id)
|
||||
|
||||
def unlink(self):
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
// TODO Remove me >=saas-12.5, this is a disgrace
|
||||
// This is an hack to get the string_* and hover_* options translated on the
|
||||
// boolean_button terminology widget. The terms are translated through
|
||||
// _t(opt_terms.string_true) which will only work if the terms are already
|
||||
// present in the translation map.
|
||||
// This code does nothing but marks the strings as translatable
|
||||
var _t = function(x) { return x; };
|
||||
|
||||
_t("Production Environment");
|
||||
_t("Switch to test environment");
|
||||
_t("Test Environment");
|
||||
_t("Switch to production environment");
|
||||
_t("Debug requests");
|
||||
_t("Disable debug");
|
||||
_t("No debug");
|
||||
_t("Enable debug");
|
||||
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<template id="assets_backend" name="delivery_assets_backend" inherit_id="web.assets_backend">
|
||||
<xpath expr="." position="inside">
|
||||
<script type="text/javascript" src="/delivery/static/src/js/delivery_translations.js"></script>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
</odoo>
|
||||
+55
-34
@@ -12,7 +12,7 @@
|
||||
# Osama Ahmaro <osamaahmaro@gmail.com>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Ali Alrehawi <alrehawi@hotmail.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
@@ -20,7 +20,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-10-02 10:05+0000\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:17+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2018\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -186,7 +186,7 @@ msgstr ""
|
||||
#. module: digest
|
||||
#: model_terms:digest.tip,tip_description:digest.digest_tip_mail_0
|
||||
msgid "${', '.join(users.mapped('name'))} signed up. Say hello in the"
|
||||
msgstr ""
|
||||
msgstr "قام ${', '.join(users.mapped('name'))} بالاشتراك. رحب به في"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:digest.tip,tip_description:digest.digest_tip_mail_0
|
||||
@@ -195,12 +195,15 @@ msgid ""
|
||||
" % set channel_id = object.env.ref('mail.channel_all_employees').id\n"
|
||||
" <strong style=\"font-size: 16px;\">Did you know...?</strong>"
|
||||
msgstr ""
|
||||
"% set users = object.env['res.users'].search([], limit=10, order='id desc')\n"
|
||||
" % set channel_id = object.env.ref('mail.channel_all_employees').id\n"
|
||||
" <strong style=\"font-size: 16px;\">هل تعلم...؟</strong>"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:digest.tip,tip_description:digest.digest_tip_mail_1
|
||||
msgid ""
|
||||
"<strong style=\"font-size: 16px;\">Get things done with activities</strong>"
|
||||
msgstr ""
|
||||
msgstr "<strong style=\"font-size: 16px;\">أنجز مشروعاتك من خلال الأنشطة</strong>"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
@@ -216,16 +219,17 @@ msgstr "مفعل"
|
||||
#: model_terms:ir.ui.view,arch_db:digest.res_config_settings_view_form
|
||||
msgid "Add new users as recipient of a periodic email with key metrics"
|
||||
msgstr ""
|
||||
"إدراج المستخدمين الجدد في قائمة استلام رسالة البريد الدورية بمقاييس رئيسية"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_tip__group_id
|
||||
msgid "Authorized Group"
|
||||
msgstr ""
|
||||
msgstr "المجموعة المعتمدة"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__available_fields
|
||||
msgid "Available Fields"
|
||||
msgstr ""
|
||||
msgstr "الحقول المتاحة"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__company_id
|
||||
@@ -240,12 +244,12 @@ msgstr "ضبط الإعدادات"
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.res_config_settings_view_form
|
||||
msgid "Configure Digest Emails"
|
||||
msgstr ""
|
||||
msgstr "إعداد رسائل البريد التلخيصية"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__kpi_res_users_connected
|
||||
msgid "Connected Users"
|
||||
msgstr ""
|
||||
msgstr "المستخدمون المتصلون"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
@@ -253,6 +257,8 @@ msgid ""
|
||||
"Create or edit the mail template: you may get computed KPI's value using "
|
||||
"these fields:"
|
||||
msgstr ""
|
||||
"إنشاء أو تحرير قالب رسالة البريد الإلكتروني: قد تحصل على قيمة المؤشر الرئيسي"
|
||||
" المحسوبة باستخدام هذه الحقول:"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__create_uid
|
||||
@@ -274,12 +280,12 @@ msgstr "العملة"
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
msgid "Deactivate for everyone"
|
||||
msgstr ""
|
||||
msgstr "تعطيل للجميع"
|
||||
|
||||
#. module: digest
|
||||
#: selection:digest.digest,state:0
|
||||
msgid "Deactivated"
|
||||
msgstr ""
|
||||
msgstr "معطل"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model,name:digest.model_digest_digest
|
||||
@@ -290,7 +296,7 @@ msgstr "الملخص"
|
||||
#: model:ir.model.fields,field_description:digest.field_res_config_settings__digest_id
|
||||
#: model_terms:ir.ui.view,arch_db:digest.res_config_settings_view_form
|
||||
msgid "Digest Email"
|
||||
msgstr ""
|
||||
msgstr "رسالة البريد التلخيصية"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.actions.act_window,name:digest.digest_digest_action
|
||||
@@ -300,23 +306,23 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:digest.field_res_config_settings__digest_emails
|
||||
#: model:ir.ui.menu,name:digest.digest_menu
|
||||
msgid "Digest Emails"
|
||||
msgstr ""
|
||||
msgstr "رسائل البريد التلخيصية"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.portal_digest_unsubscribed
|
||||
msgid "Digest Subscriptions"
|
||||
msgstr ""
|
||||
msgstr "اشتراكات الرسائل التلخيصية"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model,name:digest.model_digest_tip
|
||||
msgid "Digest Tips"
|
||||
msgstr ""
|
||||
msgstr "ملاحظات الملخص"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__display_name
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_tip__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__template_id
|
||||
@@ -336,44 +342,44 @@ msgstr "تجميع حسب"
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
msgid "How to customize your digest?"
|
||||
msgstr ""
|
||||
msgstr "كيف تعدل رسالتك التلخيصية؟"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__id
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_tip__id
|
||||
msgid "ID"
|
||||
msgstr "المعرف"
|
||||
msgstr "المُعرف"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
msgid "In order to build your customized digest, follow these steps:"
|
||||
msgstr ""
|
||||
msgstr "اتبع هذه الخطوات لتكوين رسالتك التلخيصية المعدلة:"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__is_subscribed
|
||||
msgid "Is user subscribed"
|
||||
msgstr ""
|
||||
msgstr "هو مستخدم مشترك"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_tree
|
||||
msgid "KPI Digest"
|
||||
msgstr ""
|
||||
msgstr "ملخص مؤشرات الأداء"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
msgid "KPIs"
|
||||
msgstr ""
|
||||
msgstr "مؤشرات الأداء الرئيسية"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__kpi_mail_message_total_value
|
||||
msgid "Kpi Mail Message Total Value"
|
||||
msgstr ""
|
||||
msgstr "قيمة مؤشر الأداء لعدد الرسائل"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__kpi_res_users_connected_value
|
||||
msgid "Kpi Res Users Connected Value"
|
||||
msgstr ""
|
||||
msgstr "مؤشر الأداء لعدد المستخدمين المتصلين"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest____last_update
|
||||
@@ -401,7 +407,7 @@ msgstr "الرسائل"
|
||||
#. module: digest
|
||||
#: selection:digest.digest,periodicity:0
|
||||
msgid "Monthly"
|
||||
msgstr "شهريًا"
|
||||
msgstr "شهرياً"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__name
|
||||
@@ -414,11 +420,13 @@ msgid ""
|
||||
"New users are automatically added as recipient of the following digest "
|
||||
"email."
|
||||
msgstr ""
|
||||
"تلقائيًا، يتم إدراج المستخدمين الجدد في قائمة استلام الرسائل التلخيصية "
|
||||
"التالية."
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__next_run_date
|
||||
msgid "Next Send Date"
|
||||
msgstr ""
|
||||
msgstr "تاريخ الإرسال التالي"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__periodicity
|
||||
@@ -440,7 +448,7 @@ msgstr "المستلمون"
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
msgid "Select your KPIs in the KPI's tab."
|
||||
msgstr ""
|
||||
msgstr "اختر مؤشراتك الرئيسية في تبويب المؤشر الرئيسي."
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
@@ -465,17 +473,17 @@ msgstr "اشتراك"
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_tip__tip_description
|
||||
msgid "Tip description"
|
||||
msgstr ""
|
||||
msgstr "وصف تلميحي"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
msgid "Unsubscribe me"
|
||||
msgstr ""
|
||||
msgstr "إلغاء اشتراكي"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,help:digest.field_digest_tip__sequence
|
||||
msgid "Used to display digest tip in email template base on order"
|
||||
msgstr ""
|
||||
msgstr "تستخدم لعرض ملاحظة تلخيصية في قالب البريد حسب الطلب"
|
||||
|
||||
#. module: digest
|
||||
#: model:ir.model,name:digest.model_res_users
|
||||
@@ -485,7 +493,7 @@ msgstr "المستخدمون"
|
||||
#. module: digest
|
||||
#: model:ir.model.fields,help:digest.field_digest_tip__user_ids
|
||||
msgid "Users having already received this tip"
|
||||
msgstr ""
|
||||
msgstr "المستخدمون الذين استلموا بالفعل هذه الملحوظة"
|
||||
|
||||
#. module: digest
|
||||
#: selection:digest.digest,periodicity:0
|
||||
@@ -495,7 +503,7 @@ msgstr "أسبوعيًا"
|
||||
#. module: digest
|
||||
#: model:digest.digest,name:digest.digest_digest_default
|
||||
msgid "Weekly Digest"
|
||||
msgstr ""
|
||||
msgstr "الملخص الأسبوعي"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:digest.tip,tip_description:digest.digest_tip_mail_0
|
||||
@@ -503,6 +511,8 @@ msgid ""
|
||||
"You can ping colleagues by tagging them in your messages using \"@\". They "
|
||||
"will be instantly notified.<br>"
|
||||
msgstr ""
|
||||
"يمكنك إشعار زملاءك من خلال الإشارة إليهم في رسالتك باستخدام علامة \"@\". "
|
||||
"سيتم إخطارهم فورًا.<br>"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:digest.tip,tip_description:digest.digest_tip_mail_1
|
||||
@@ -510,21 +520,23 @@ msgid ""
|
||||
"You don't have any activity scheduled. Use activities on any business "
|
||||
"document to schedule meetings, calls and todos."
|
||||
msgstr ""
|
||||
"ليس لديك نشاطات مجدولة. استخدم الأنشطة في أي مستند عمل لجدولة الاجتماعات "
|
||||
"والمكالمات والإجراءات المطلوبة."
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.portal_digest_unsubscribed
|
||||
msgid "You have been successfully unsubscribed from"
|
||||
msgstr ""
|
||||
msgstr "ألغيت بنجاح اشتراكك من"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
msgid "You may want to add new computed fields with Odoo Studio:"
|
||||
msgstr ""
|
||||
msgstr "ربما تحتاج لإضافة حقول محسوبة جديدة باستديو أودو:"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:digest.tip,tip_description:digest.digest_tip_mail_0
|
||||
msgid "company's discussion channel."
|
||||
msgstr ""
|
||||
msgstr "قناة النقاش الخاصة بالمؤسسة."
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
@@ -533,6 +545,9 @@ msgid ""
|
||||
" <code>kpi_myfield</code>\n"
|
||||
" and display it in the KPI's tab;"
|
||||
msgstr ""
|
||||
"قم أولًا بإنشاء حقل منطقي يُسمى\n"
|
||||
" <code>kpi_myfield</code>\n"
|
||||
" واعرضه في تبويب المؤشر الرئيسي؛"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
@@ -541,6 +556,9 @@ msgid ""
|
||||
" <code>kpi_myfield_value</code>\n"
|
||||
" that will compute your customized KPI."
|
||||
msgstr ""
|
||||
"ثم أنشئ حقل محسوب يُسمى\n"
|
||||
" <code>kpi_myfield_value</code>\n"
|
||||
" ليحسب قيمة مؤشرك الرئيسي المعدلة."
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
@@ -549,3 +567,6 @@ msgid ""
|
||||
" <code>digest</code>\n"
|
||||
" object:"
|
||||
msgstr ""
|
||||
"يجب إنشاء حقلين في\n"
|
||||
" الكائن\n"
|
||||
" التلخيصي:"
|
||||
|
||||
@@ -427,7 +427,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_digest__user_ids
|
||||
#: model:ir.model.fields,field_description:digest.field_digest_tip__user_ids
|
||||
msgid "Recipients"
|
||||
msgstr ""
|
||||
msgstr "អ្នកទទួល"
|
||||
|
||||
#. module: digest
|
||||
#: model_terms:ir.ui.view,arch_db:digest.digest_digest_view_form
|
||||
|
||||
@@ -1852,7 +1852,7 @@ msgstr ""
|
||||
#. module: event
|
||||
#: model_terms:ir.ui.view,arch_db:event.view_event_form
|
||||
msgid "Set To Draft"
|
||||
msgstr ""
|
||||
msgstr "កំណត់ជាសេចក្ដីព្រាង"
|
||||
|
||||
#. module: event
|
||||
#: model_terms:ir.ui.view,arch_db:event.view_event_registration_form
|
||||
|
||||
@@ -37,7 +37,7 @@ msgstr "تطبيق"
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__seats_availability
|
||||
msgid "Available Seat"
|
||||
msgstr ""
|
||||
msgstr "المقاعد المتوفرة"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__seats_available
|
||||
@@ -54,14 +54,14 @@ msgstr "قبل التأكيد"
|
||||
msgid ""
|
||||
"Choose an event and it will automatically create a registration for this "
|
||||
"event."
|
||||
msgstr "اختر حدث وسيتم إنشاء تسجيل لهذا الحدث تلقائيا."
|
||||
msgstr "اختر فعالية وسيتم إنشاء تسجيل لها تلقائيًا."
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,help:event_sale.field_sale_order_line__event_ticket_id
|
||||
msgid ""
|
||||
"Choose an event ticket and it will automatically create a registration for "
|
||||
"this event ticket."
|
||||
msgstr "اختر تذكرة حدث وسيتم إنشاء تسجيل لتذكرة هذا الحدث تلقائيا."
|
||||
msgstr "اختر تذكرة فعالية وسيتم إنشاء تسجيل لها تلقائيًا."
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__create_uid
|
||||
@@ -84,23 +84,25 @@ msgid ""
|
||||
"you will not be able to sell tickets anymore. Set 0 to ignore this rule set "
|
||||
"as unlimited."
|
||||
msgstr ""
|
||||
"حدد عدد التذاكر المتوفرة. في حال وجود عدد كبير من التسجيلات لن تتمكن من بيع "
|
||||
"التذاكر. اجعل هذه القيمة 0 لتجاهل هذه القاعدة وتعيين عدد غير محدود للتذاكر."
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__display_name
|
||||
#: model:ir.model.fields,field_description:event_sale.field_registration_editor__display_name
|
||||
#: model:ir.model.fields,field_description:event_sale.field_registration_editor_line__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_registration_editor
|
||||
msgid "Edit Attendee Details on Sales Confirmation"
|
||||
msgstr ""
|
||||
msgstr "تحرير بيانات الحاضر عند تأكيد عملية البيع"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_registration_editor_line
|
||||
msgid "Edit Attendee Line on Sales Confirmation"
|
||||
msgstr ""
|
||||
msgstr "تحرير بند الحاضر عند تأكيد عملية البيع"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_registration_editor_line__editor_id
|
||||
@@ -118,18 +120,18 @@ msgstr "البريد الإلكتروني"
|
||||
#: model:ir.model.fields,field_description:event_sale.field_registration_editor_line__event_id
|
||||
#: model:ir.model.fields,field_description:event_sale.field_sale_order_line__event_id
|
||||
msgid "Event"
|
||||
msgstr "الحدث"
|
||||
msgstr "الفعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_event_type
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__event_type_id
|
||||
msgid "Event Category"
|
||||
msgstr "فئة الحدث"
|
||||
msgstr "فئة الفعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model_terms:ir.ui.view,arch_db:event_sale.event_ticket_form_view
|
||||
msgid "Event Name"
|
||||
msgstr "اسم الحدث"
|
||||
msgstr "اسم الفعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_event_registration
|
||||
@@ -141,7 +143,7 @@ msgstr "تسجيل التنفيذ"
|
||||
#. module: event_sale
|
||||
#: model:ir.actions.act_window,name:event_sale.action_sale_order_event_registration
|
||||
msgid "Event Registrations"
|
||||
msgstr ""
|
||||
msgstr "تسجيلات الفعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_event_event_ticket
|
||||
@@ -150,17 +152,17 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:event_sale.field_registration_editor_line__event_ticket_id
|
||||
#: model:ir.model.fields,field_description:event_sale.field_sale_order_line__event_ticket_id
|
||||
msgid "Event Ticket"
|
||||
msgstr "تذكرة الحدث"
|
||||
msgstr "تذكرة الفعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_product_product__event_ticket_ids
|
||||
msgid "Event Tickets"
|
||||
msgstr "تذاكر الحدث"
|
||||
msgstr "تذاكر الفعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model_terms:ir.ui.view,arch_db:event_sale.event_ticket_form_view
|
||||
msgid "Event's Ticket"
|
||||
msgstr ""
|
||||
msgstr "تذكرة الفعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model_terms:ir.ui.view,arch_db:event_sale.event_sale_product_template_form
|
||||
@@ -172,7 +174,7 @@ msgstr "المناسبات"
|
||||
#: code:addons/event_sale/models/event.py:254
|
||||
#, python-format
|
||||
msgid "Free"
|
||||
msgstr "حرّ"
|
||||
msgstr "مجاني"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__id
|
||||
@@ -188,6 +190,8 @@ msgid ""
|
||||
"If checked this product automatically creates an event registration at the "
|
||||
"sales order confirmation."
|
||||
msgstr ""
|
||||
"إذا كان هذا الخيار محددًا، ينشئ هذا المنتج تسجيلًا تلقائيًا بالفعالية عند "
|
||||
"تأكيد عملية البيع."
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_account_invoice
|
||||
@@ -203,7 +207,7 @@ msgstr "هو منتهي"
|
||||
#: model:ir.model.fields,field_description:event_sale.field_product_template__event_ok
|
||||
#: model:ir.model.fields,field_description:event_sale.field_sale_order_line__event_ok
|
||||
msgid "Is an Event Ticket"
|
||||
msgstr ""
|
||||
msgstr "هي تذكرة فعالية"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket____last_update
|
||||
@@ -229,7 +233,7 @@ msgstr "آخر تحديث في"
|
||||
#. module: event_sale
|
||||
#: selection:event.event.ticket,seats_availability:0
|
||||
msgid "Limited"
|
||||
msgstr ""
|
||||
msgstr "محدود"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__seats_max
|
||||
@@ -248,13 +252,13 @@ msgstr "الاسم"
|
||||
#: code:addons/event_sale/models/event.py:205
|
||||
#, python-format
|
||||
msgid "No more available seats for this ticket"
|
||||
msgstr ""
|
||||
msgstr "لا توجد مقاعد متاحة لهذه التذكرة"
|
||||
|
||||
#. module: event_sale
|
||||
#: code:addons/event_sale/models/event.py:152
|
||||
#, python-format
|
||||
msgid "No more available seats for this ticket type."
|
||||
msgstr ""
|
||||
msgstr "لا توجد مقاعد متاحة لهذا النوع من التذاكر."
|
||||
|
||||
#. module: event_sale
|
||||
#: code:addons/event_sale/models/event.py:250
|
||||
@@ -270,7 +274,7 @@ msgstr "المصدر"
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_registration_editor_line__registration_id
|
||||
msgid "Original Registration"
|
||||
msgstr ""
|
||||
msgstr "التسجيل الأصلي"
|
||||
|
||||
#. module: event_sale
|
||||
#: code:addons/event_sale/models/event.py:259
|
||||
@@ -302,7 +306,7 @@ msgstr "تخفيض السعر"
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__price_reduce_taxinc
|
||||
msgid "Price Reduce Tax inc"
|
||||
msgstr ""
|
||||
msgstr "الخصم بإضافة الضريبة"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model,name:event_sale.model_product_product
|
||||
@@ -328,7 +332,7 @@ msgstr "التسجيل"
|
||||
#: code:addons/event_sale/models/event.py:51
|
||||
#, python-format
|
||||
msgid "Registration for %s"
|
||||
msgstr ""
|
||||
msgstr "تسجيل لـ%s"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__registration_ids
|
||||
@@ -338,7 +342,7 @@ msgstr "التسجيلات"
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_registration_editor__event_registration_ids
|
||||
msgid "Registrations to Edit"
|
||||
msgstr ""
|
||||
msgstr "التسجيلات المراد تحريرها"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__seats_reserved
|
||||
@@ -370,12 +374,12 @@ msgstr "سطر أمر المبيعات"
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_event_ticket__seats_used
|
||||
msgid "Seats Used"
|
||||
msgstr ""
|
||||
msgstr "المقاعد المستخدمة"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:event.type,name:event_sale.event_type_data_sale
|
||||
msgid "Sell Online"
|
||||
msgstr ""
|
||||
msgstr "بع أونلاين"
|
||||
|
||||
#. module: event_sale
|
||||
#: model_terms:ir.ui.view,arch_db:event_sale.view_event_registration_editor_form
|
||||
@@ -385,7 +389,7 @@ msgstr "تجاوز"
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_registration__sale_order_id
|
||||
msgid "Source Sales Order"
|
||||
msgstr ""
|
||||
msgstr "أمر البيع المصدر"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:event.event.ticket,name:event_sale.event_0_ticket_1
|
||||
@@ -397,7 +401,7 @@ msgstr "قياسي"
|
||||
#: code:addons/event_sale/models/event.py:257
|
||||
#, python-format
|
||||
msgid "The registration must be paid"
|
||||
msgstr ""
|
||||
msgstr "يجب سداد قيمة التسجيل"
|
||||
|
||||
#. module: event_sale
|
||||
#: code:addons/event_sale/models/event.py:250
|
||||
@@ -415,12 +419,12 @@ msgstr "نوع التذكرة"
|
||||
#: code:addons/event_sale/models/event.py:157
|
||||
#, python-format
|
||||
msgid "Ticket cannot belong to both the event category and the event itself."
|
||||
msgstr ""
|
||||
msgstr "لا يمكن أن تنتمي التذكرة لفئة الفعالية وللفعالية نفسها."
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_type__use_ticketing
|
||||
msgid "Ticketing"
|
||||
msgstr ""
|
||||
msgstr "بيع التذاكر"
|
||||
|
||||
#. module: event_sale
|
||||
#: model:ir.model.fields,field_description:event_sale.field_event_type__event_ticket_ids
|
||||
@@ -444,7 +448,7 @@ msgstr "الحجوزات غير المؤكدة"
|
||||
#: model:product.product,uom_name:event_sale.product_product_event
|
||||
#: model:product.template,uom_name:event_sale.product_product_event_product_template
|
||||
msgid "Unit(s)"
|
||||
msgstr "وحدة(ات)"
|
||||
msgstr "وحدة"
|
||||
|
||||
#. module: event_sale
|
||||
#: selection:event.event.ticket,seats_availability:0
|
||||
@@ -466,14 +470,14 @@ msgstr "كجم"
|
||||
#. module: event_sale
|
||||
#: model_terms:ir.ui.view,arch_db:event_sale.view_event_registration_editor_form
|
||||
msgid "please give details about the registrations"
|
||||
msgstr ""
|
||||
msgstr "برجاء توفير تفاصيل عن التسجيلات"
|
||||
|
||||
#. module: event_sale
|
||||
#: model_terms:ir.ui.view,arch_db:event_sale.view_event_form_inherit_ticket
|
||||
msgid "reserved +"
|
||||
msgstr ""
|
||||
msgstr "محجوز +"
|
||||
|
||||
#. module: event_sale
|
||||
#: model_terms:ir.ui.view,arch_db:event_sale.view_event_form_inherit_ticket
|
||||
msgid "unconfirmed"
|
||||
msgstr ""
|
||||
msgstr "غير مؤكد"
|
||||
|
||||
+40
-39
@@ -3,7 +3,6 @@
|
||||
# * fetchmail
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# Mustafa J. Kadhem <safi2266@gmail.com>, 2018
|
||||
# Akram Alfusayal <akram_ma@hotmail.com>, 2018
|
||||
# amrnegm <amrnegm.01@gmail.com>, 2018
|
||||
@@ -13,13 +12,15 @@
|
||||
# Osama Ahmaro <osamaahmaro@gmail.com>, 2018
|
||||
# Zuhair Hammadi <zuhair12@gmail.com>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-09-18 09:49+0000\n"
|
||||
"PO-Revision-Date: 2018-09-18 09:49+0000\n"
|
||||
"Last-Translator: Shaima Safar <shaima.safar@open-inside.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:17+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -30,7 +31,7 @@ msgstr ""
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_form
|
||||
msgid "Actions to Perform on Incoming Mails"
|
||||
msgstr "إجراءات لتنفيذها على الرسائل الواردة"
|
||||
msgstr "الإجراءات المراد تنفيذها على الرسائل الواردة"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__active
|
||||
@@ -70,7 +71,7 @@ msgid ""
|
||||
"Connections are encrypted with SSL/TLS through a dedicated port (default: "
|
||||
"IMAPS=993, POP3S=995)"
|
||||
msgstr ""
|
||||
"الإتصالات مشفرة بـ SSL/TLS من خلال منفذ مخصص (افتراضياً: IMPAS=993 "
|
||||
"الإتصالات مشفرة بـ SSL/TLS من خلال منفذ مخصص (افتراضيًا: IMPAS=993 "
|
||||
",POP35=995 )"
|
||||
|
||||
#. module: fetchmail
|
||||
@@ -91,17 +92,17 @@ msgstr "أنشئ في"
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,help:fetchmail.field_fetchmail_server__priority
|
||||
msgid "Defines the order of processing, lower values mean higher priority"
|
||||
msgstr "تحديد ترتيب المعالجة, القيم الأقل تعني أولوية أعلى"
|
||||
msgstr "تحديد ترتيب عمليات المعالجة, القيم الأقل تعني أولوية أعلى"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_tree
|
||||
msgid "Email Count"
|
||||
msgstr ""
|
||||
msgstr "عدد الرسائل"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_form
|
||||
@@ -111,7 +112,7 @@ msgstr "جلب الآن"
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,help:fetchmail.field_fetchmail_server__server
|
||||
msgid "Hostname or IP of the mail server"
|
||||
msgstr "اسم الجهاز أو رقم الآي بي لخادم البريد"
|
||||
msgstr "اسم الجهاز أو رقم IP سيرفر البريد"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__id
|
||||
@@ -126,44 +127,44 @@ msgstr "بروتوكول IMAP"
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,type:0
|
||||
msgid "IMAP Server"
|
||||
msgstr "خادم IMAP"
|
||||
msgstr "سيرفر IMAP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_search
|
||||
msgid "If SSL required."
|
||||
msgstr "إذا SSL مطلوبة."
|
||||
msgstr "إذا كانت SSL مطلوبة."
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_mail_mail__fetchmail_server_id
|
||||
msgid "Inbound Mail Server"
|
||||
msgstr "خادم البريد الوارد"
|
||||
msgstr "سيرفر البريد الوارد"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.res_config_settings_view_form
|
||||
msgid "Incoming Email Servers"
|
||||
msgstr ""
|
||||
msgstr "سيرفرات الرسائل الواردة"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_form
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_search
|
||||
msgid "Incoming Mail Server"
|
||||
msgstr "خادم الرسائل الواردة"
|
||||
msgstr "سيرفر البريد الوارد"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.actions.act_window,name:fetchmail.action_email_server_tree
|
||||
#: model:ir.ui.menu,name:fetchmail.menu_action_fetchmail_server_tree
|
||||
msgid "Incoming Mail Servers"
|
||||
msgstr "خوادم الرسائل الواردة"
|
||||
msgstr "سيرفرات البريد الوارد"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__attach
|
||||
msgid "Keep Attachments"
|
||||
msgstr "حفظ المرفقات"
|
||||
msgstr "الاحتفاظ بالمرفقات"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__original
|
||||
msgid "Keep Original"
|
||||
msgstr "حفظ الأصل"
|
||||
msgstr "الاحتفاظ بالأصل"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__date
|
||||
@@ -188,19 +189,19 @@ msgstr "آخر تحديث في"
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,type:0
|
||||
msgid "Local Server"
|
||||
msgstr "الخادم المحلي"
|
||||
msgstr "السيرفر المحلي"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_form
|
||||
msgid "Login Information"
|
||||
msgstr "معلومات تسجيل الدخول"
|
||||
msgstr "بيانات تسجيل الدخول"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.actions.server,name:fetchmail.ir_cron_mail_gateway_action_ir_actions_server
|
||||
#: model:ir.cron,cron_name:fetchmail.ir_cron_mail_gateway_action
|
||||
#: model:ir.cron,name:fetchmail.ir_cron_mail_gateway_action
|
||||
msgid "Mail: Fetchmail Service"
|
||||
msgstr ""
|
||||
msgstr "البريد: خدمة جلب الرسائل"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.actions.act_window,name:fetchmail.act_server_history
|
||||
@@ -221,7 +222,7 @@ msgstr "غير مؤكد"
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.res_config_settings_view_form
|
||||
msgid "Outgoing Email Servers"
|
||||
msgstr ""
|
||||
msgstr "سيرفرات الرسائل الصادرة"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model,name:fetchmail.model_mail_mail
|
||||
@@ -236,17 +237,17 @@ msgstr "بروتوكول POP"
|
||||
#. module: fetchmail
|
||||
#: selection:fetchmail.server,type:0
|
||||
msgid "POP Server"
|
||||
msgstr "خادم POP"
|
||||
msgstr "سيرفر POP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model,name:fetchmail.model_fetchmail_server
|
||||
msgid "POP/IMAP Server"
|
||||
msgstr "خادم POP/IMAP"
|
||||
msgstr "سيرفر POP/IMAP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_tree
|
||||
msgid "POP/IMAP Servers"
|
||||
msgstr "خوادم POP/IMAP"
|
||||
msgstr "سيرفات POP/IMAP"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__password
|
||||
@@ -265,9 +266,9 @@ msgid ""
|
||||
"document type. This will create new documents for new conversations, or "
|
||||
"attach follow-up emails to the existing conversations (documents)."
|
||||
msgstr ""
|
||||
"معالجة كل الرسائل الواردة كجزء من المحادثة وفقاً لنوع المستند. هذا سوف ينشأ "
|
||||
"مستندات جديدة لمحادثات جديدة، أو إرفاق رسائل بريد المتابعة الإلكترونية "
|
||||
"للمحادثات الموجودة (مستندات)."
|
||||
"معالجة كل الرسائل الواردة كجزء من المحادثة وفقًا لنوع هذا المستند. سوف ينشأ "
|
||||
"هذا مستندات جديدة لمحادثات جديدة، أو إرفاق رسائل بريد المتابعة الإلكترونية "
|
||||
"بالمحادثات (المستندات) الموجودة."
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_form
|
||||
@@ -292,42 +293,42 @@ msgstr "نص برمجي"
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_search
|
||||
msgid "Search Incoming Mail Servers"
|
||||
msgstr "بحث خاودم البريد الوارد"
|
||||
msgstr "بحث سيرفرات البريد الوارد"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_form
|
||||
msgid "Server & Login"
|
||||
msgstr "الخادم و تسجيل الدخول"
|
||||
msgstr "السيرفر وتسجيل الدخول"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_form
|
||||
msgid "Server Information"
|
||||
msgstr "معلومات الخادم"
|
||||
msgstr "معلومات السيرفر"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__server
|
||||
msgid "Server Name"
|
||||
msgstr "اسم الخادم"
|
||||
msgstr "اسم السيرفر"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__priority
|
||||
msgid "Server Priority"
|
||||
msgstr "أولوية الخادم"
|
||||
msgstr "أولوية السيرفر"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__type
|
||||
msgid "Server Type"
|
||||
msgstr "نوع الخادم"
|
||||
msgstr "نوع السيرفر"
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_search
|
||||
msgid "Server type IMAP."
|
||||
msgstr "نوع خادم IMAP."
|
||||
msgstr "نوع سيرفر IMAP."
|
||||
|
||||
#. module: fetchmail
|
||||
#: model_terms:ir.ui.view,arch_db:fetchmail.view_email_server_search
|
||||
msgid "Server type POP."
|
||||
msgstr "نوع خادم POP."
|
||||
msgstr "نوع سيرفر POP."
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,field_description:fetchmail.field_fetchmail_server__state
|
||||
@@ -351,8 +352,8 @@ msgid ""
|
||||
"attached to each processed message. This will usually double the size of "
|
||||
"your message database."
|
||||
msgstr ""
|
||||
"إذا كان يتوجب الاحتفاظ بنسخة اصلية كاملة من كل رسائل البريد كمرجع وارفاقها "
|
||||
"بكل الرسائل التي يم معالجتها. سيضاعف هذا عادة حجم الرسالة في قاعدة البيانات."
|
||||
"ما إن كان ينبغي الاحتفاظ بنسخة أصلية كاملة من كل رسائل البريد كمرجع وإرفاقها"
|
||||
" بكل الرسائل التي يتم معالجتها. عادةً، سيضاعف هذا حجم قاعدة بيانات رسائلك."
|
||||
|
||||
#. module: fetchmail
|
||||
#: model:ir.model.fields,help:fetchmail.field_fetchmail_server__attach
|
||||
@@ -360,5 +361,5 @@ msgid ""
|
||||
"Whether attachments should be downloaded. If not enabled, incoming emails "
|
||||
"will be stripped of any attachments before being processed"
|
||||
msgstr ""
|
||||
"إذا كان يتوجب تنزيل المرفقات. إن لم تكن ممكنة، فإن الرسائل المستقبلة سوف يتم"
|
||||
" تجريدها من اي مرفقات قبل معالجتها"
|
||||
"ما إن كان ينبغي تحميل المرفقات. إن لم تكن مفعلة، سيتم تجريد الرسائل الواردة "
|
||||
"من أية مرفقات قبل معالجتها"
|
||||
|
||||
@@ -1068,7 +1068,7 @@ msgstr ""
|
||||
#. module: fleet
|
||||
#: model_terms:ir.ui.view,arch_db:fleet.fleet_vehicle_log_contract_view_form
|
||||
msgid "Invoice Date"
|
||||
msgstr ""
|
||||
msgstr "កាលបរិច្ចេទវិកយបត្រ"
|
||||
|
||||
#. module: fleet
|
||||
#: model:ir.model.fields,field_description:fleet.field_fleet_vehicle_log_fuel__inv_ref
|
||||
@@ -1840,7 +1840,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:fleet.fleet_vehicle_log_contract_view_search
|
||||
#: model_terms:ir.ui.view,arch_db:fleet.fleet_vehicle_view_search
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: fleet
|
||||
#: model:ir.model.fields,field_description:fleet.field_fleet_vehicle_model_brand__image_small
|
||||
|
||||
@@ -212,7 +212,7 @@
|
||||
<group>
|
||||
<field name="date" string="Invoice Date"/>
|
||||
<field name="start_date"/>
|
||||
<field name="expiration_date"/>
|
||||
<field name="expiration_date" attrs="{'required': [('cost_frequency', '!=', 'no')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<notebook>
|
||||
|
||||
@@ -153,6 +153,8 @@ msgid ""
|
||||
"<br/>Nobody has succeeded to reach every goal, no badge is rewarded for this"
|
||||
" challenge."
|
||||
msgstr ""
|
||||
"<br/>Nikomu se nepodařilo dosáhnout jakéhokoliv cíle, za tuto výzvu není "
|
||||
"odměněn žádný odznak."
|
||||
|
||||
#. module: gamification
|
||||
#: code:addons/gamification/models/challenge.py:655
|
||||
@@ -189,6 +191,8 @@ msgid ""
|
||||
"<span class=\"o_stat_text\">Related</span>\n"
|
||||
" <span class=\"o_stat_text\">Goals</span>"
|
||||
msgstr ""
|
||||
"<span class=\"o_stat_text\">Související</span>\n"
|
||||
" <span class=\"o_stat_text\">Cíle</span>"
|
||||
|
||||
#. module: gamification
|
||||
#: model:mail.template,body_html:gamification.simple_report_template
|
||||
@@ -398,6 +402,9 @@ msgid ""
|
||||
" It can be deserved automatically when some conditions are met or manually by users.\n"
|
||||
" Some badges are harder than others to get with specific conditions."
|
||||
msgstr ""
|
||||
"Odznak je symbol udělený uživateli jako znak odměny.\n"
|
||||
"To může být zaslouženo automaticky, když jsou splněny některé podmínky, nebo ručně uživateli.\n"
|
||||
"Některé odznaky je těžší získat než jiné v závislosti na specifickýxch podmákách."
|
||||
|
||||
#. module: gamification
|
||||
#: model_terms:ir.actions.act_window,help:gamification.goal_definition_list_action
|
||||
@@ -405,6 +412,8 @@ msgid ""
|
||||
"A goal definition is a technical model of goal defining a condition to reach.\n"
|
||||
" The dates, values to reach or users are defined in goal instance."
|
||||
msgstr ""
|
||||
"Definice cíle je technický model cíle, který definuje podmínku pro dosažení cíle.\n"
|
||||
"Data, hodnoty k dosažení nebo uživatelé jsou definováni v instanci cíle."
|
||||
|
||||
#. module: gamification
|
||||
#: model:ir.model.fields,help:gamification.field_gamification_challenge_line__condition
|
||||
@@ -414,6 +423,8 @@ msgid ""
|
||||
"A goal is considered as completed when the current value is compared to the "
|
||||
"value to reach"
|
||||
msgstr ""
|
||||
"Cíl je považován za dokončený, když je aktuální hodnota porovnána s "
|
||||
"hodnotou, která má být dosažena"
|
||||
|
||||
#. module: gamification
|
||||
#: model_terms:ir.actions.act_window,help:gamification.goal_list_action
|
||||
@@ -421,6 +432,8 @@ msgid ""
|
||||
"A goal is defined by a user and a goal definition.\n"
|
||||
" Goals can be created automatically by using challenges."
|
||||
msgstr ""
|
||||
"Cíl je definován uživatelem a definicí cíle.\n"
|
||||
"Cíle lze vytvářet automaticky pomocí výzev."
|
||||
|
||||
#. module: gamification
|
||||
#: selection:gamification.badge,rule_auth:0
|
||||
@@ -972,7 +985,7 @@ msgstr ""
|
||||
#. module: gamification
|
||||
#: model:ir.model,name:gamification.model_gamification_badge_user_wizard
|
||||
msgid "Gamification User Badge Wizard"
|
||||
msgstr ""
|
||||
msgstr "Průvodce odznakem uživatele Gamifikace"
|
||||
|
||||
#. module: gamification
|
||||
#: model:ir.model,name:gamification.model_gamification_challenge_line
|
||||
|
||||
@@ -55,8 +55,19 @@ class KarmaRank(models.Model):
|
||||
return res
|
||||
|
||||
def write(self, vals):
|
||||
if 'karma_min' in vals:
|
||||
previous_ranks = self.env['gamification.karma.rank'].search([], order="karma_min DESC").ids
|
||||
low = min(vals['karma_min'], self.karma_min)
|
||||
high = max(vals['karma_min'], self.karma_min)
|
||||
|
||||
tools.image_resize_images(vals)
|
||||
res = super(KarmaRank, self).write(vals)
|
||||
users = self.env['res.users'].sudo().search([('karma', '>', 0)])
|
||||
users._recompute_rank()
|
||||
|
||||
if 'karma_min' in vals:
|
||||
after_ranks = self.env['gamification.karma.rank'].search([], order="karma_min DESC").ids
|
||||
if previous_ranks != after_ranks:
|
||||
users = self.env['res.users'].sudo().search([('karma', '>', 0)])
|
||||
else:
|
||||
users = self.env['res.users'].sudo().search([('karma', '>=', low), ('karma', '<=', high)])
|
||||
users._recompute_rank()
|
||||
return res
|
||||
|
||||
@@ -7,9 +7,11 @@ import logging
|
||||
|
||||
_logger = logging.getLogger(__name__)
|
||||
|
||||
|
||||
class Users(models.Model):
|
||||
_inherit = 'res.users'
|
||||
|
||||
|
||||
karma = fields.Integer('Karma', default=0)
|
||||
badge_ids = fields.One2many('gamification.badge.user', 'user_id', string='Badges', copy=False)
|
||||
gold_badge = fields.Integer('Gold badges count', compute="_get_user_badge_level")
|
||||
@@ -59,18 +61,32 @@ class Users(models.Model):
|
||||
return True
|
||||
|
||||
def _rank_changed(self):
|
||||
if self.rank_id.karma_min > 0:
|
||||
template = self.env.ref('gamification.mail_template_data_new_rank_reached', raise_if_not_found=False)
|
||||
if template:
|
||||
template.send_mail(self.id, force_send=True, notif_layout='mail.mail_notification_light')
|
||||
"""
|
||||
Method that can be called on a batch of users with the same new rank
|
||||
"""
|
||||
template = self.env.ref('gamification.mail_template_data_new_rank_reached', raise_if_not_found=False)
|
||||
if template:
|
||||
for u in self:
|
||||
if u.rank_id.karma_min > 0:
|
||||
template.send_mail(u.id, force_send=len(self) == 1, notif_layout='mail.mail_notification_light')
|
||||
|
||||
def _recompute_rank(self):
|
||||
"""
|
||||
The caller should filter the users on karma > 0 before calling this method
|
||||
to avoid looping on every single users
|
||||
|
||||
Compute rank of each user by user.
|
||||
For each user, check the rank of this user
|
||||
"""
|
||||
|
||||
ranks = [{'rank': rank, 'karma_min': rank.karma_min} for rank in
|
||||
self.env['gamification.karma.rank'].search([], order="karma_min DESC")]
|
||||
|
||||
# 3 is the number of search/requests used by rank in _recompute_rank_bulk()
|
||||
if len(self) > len(ranks) * 3:
|
||||
self._recompute_rank_bulk()
|
||||
return
|
||||
|
||||
for user in self:
|
||||
old_rank = user.rank_id
|
||||
if user.karma == 0 and ranks:
|
||||
@@ -86,6 +102,66 @@ class Users(models.Model):
|
||||
if old_rank != user.rank_id:
|
||||
user._rank_changed()
|
||||
|
||||
def _recompute_rank_bulk(self):
|
||||
"""
|
||||
Compute rank of each user by rank.
|
||||
For each rank, check which users need to be ranked
|
||||
|
||||
"""
|
||||
ranks = [{'rank': rank, 'karma_min': rank.karma_min} for rank in
|
||||
self.env['gamification.karma.rank'].search([], order="karma_min DESC")]
|
||||
|
||||
users_todo = self
|
||||
|
||||
next_rank_id = False
|
||||
# wtf, next_rank_id should be a related on rank_id.next_rank_id and life might get easier.
|
||||
# And we only need to recompute next_rank_id on write with min_karma or in the create on rank model.
|
||||
for r in ranks:
|
||||
rank_id = r['rank'].id
|
||||
dom = [
|
||||
('karma', '>=', r['karma_min']),
|
||||
('id', 'in', users_todo.ids),
|
||||
'|', # noqa
|
||||
'|', ('rank_id', '!=', rank_id), ('rank_id', '=', False),
|
||||
'|', ('next_rank_id', '!=', next_rank_id), ('next_rank_id', '=', False if next_rank_id else -1),
|
||||
]
|
||||
users = self.env['res.users'].search(dom)
|
||||
if users:
|
||||
users_to_notify = self.env['res.users'].search([
|
||||
('karma', '>=', r['karma_min']),
|
||||
'|', ('rank_id', '!=', rank_id), ('rank_id', '=', False),
|
||||
('id', 'in', users.ids),
|
||||
])
|
||||
users.write({
|
||||
'rank_id': rank_id,
|
||||
'next_rank_id': next_rank_id,
|
||||
})
|
||||
users_to_notify._rank_changed()
|
||||
users_todo -= users
|
||||
|
||||
nothing_to_do_users = self.env['res.users'].search([
|
||||
('karma', '>=', r['karma_min']),
|
||||
'|', ('rank_id', '=', rank_id), ('next_rank_id', '=', next_rank_id),
|
||||
('id', 'in', users_todo.ids),
|
||||
])
|
||||
users_todo -= nothing_to_do_users
|
||||
next_rank_id = r['rank'].id
|
||||
|
||||
if ranks:
|
||||
lower_rank = ranks[-1]['rank']
|
||||
users = self.env['res.users'].search([
|
||||
('karma', '>=', 0),
|
||||
('karma', '<', lower_rank.karma_min),
|
||||
'|', ('rank_id', '!=', False), ('next_rank_id', '!=', lower_rank.id),
|
||||
('id', 'in', users_todo.ids),
|
||||
])
|
||||
if users:
|
||||
users.write({
|
||||
'rank_id': False,
|
||||
'next_rank_id': lower_rank.id,
|
||||
})
|
||||
|
||||
|
||||
def _get_next_rank(self):
|
||||
""" For fresh users with 0 karma that don't have a rank_id and next_rank_id yet
|
||||
this method returns the first karma rank (by karma ascending). This acts as a
|
||||
|
||||
@@ -2,3 +2,4 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import test_challenge
|
||||
from . import test_recompute_rank
|
||||
|
||||
@@ -0,0 +1,128 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo.tests import common
|
||||
from unittest.mock import patch
|
||||
|
||||
|
||||
class TestComputeRankCommon(common.TransactionCase):
|
||||
|
||||
def setUp(self):
|
||||
super(TestComputeRankCommon, self).setUp()
|
||||
|
||||
def _patched_send_mail(*args, **kwargs):
|
||||
pass
|
||||
|
||||
self.User = self.env['res.users'].with_context(no_reset_password=True, mail_create_nosubscribe=True)
|
||||
self.users = self.User
|
||||
|
||||
patch_email = patch('odoo.addons.mail.models.mail_template.MailTemplate.send_mail', _patched_send_mail)
|
||||
patch_email.start()
|
||||
for k in range(-5, 1030, 30):
|
||||
self.users += self.User.create({
|
||||
'name': str(k),
|
||||
'login': "test_recompute_rank_%s" % k,
|
||||
'karma': k,
|
||||
})
|
||||
|
||||
self.env['gamification.karma.rank'].search([]).unlink()
|
||||
|
||||
self.rank_1 = self.env['gamification.karma.rank'].create({
|
||||
'name': 'rank 1',
|
||||
'karma_min': 0,
|
||||
})
|
||||
|
||||
self.rank_2 = self.env['gamification.karma.rank'].create({
|
||||
'name': 'rank 2',
|
||||
'karma_min': 250,
|
||||
})
|
||||
|
||||
self.rank_3 = self.env['gamification.karma.rank'].create({
|
||||
'name': 'rank 3',
|
||||
'karma_min': 500,
|
||||
})
|
||||
self.rank_4 = self.env['gamification.karma.rank'].create({
|
||||
'name': 'rank 4',
|
||||
'karma_min': 1000,
|
||||
})
|
||||
|
||||
patch_email.stop()
|
||||
|
||||
|
||||
class test_recompute(TestComputeRankCommon):
|
||||
|
||||
def test_00_initial_compute(self):
|
||||
|
||||
self.assertEqual(len(self.users), 35)
|
||||
|
||||
self.assertEqual(
|
||||
len(self.rank_1.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_1.karma_min and u.karma < self.rank_2.karma_min])
|
||||
)
|
||||
self.assertEqual(
|
||||
len(self.rank_2.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_2.karma_min and u.karma < self.rank_3.karma_min])
|
||||
)
|
||||
self.assertEqual(
|
||||
len(self.rank_3.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_3.karma_min and u.karma < self.rank_4.karma_min])
|
||||
)
|
||||
self.assertEqual(
|
||||
len(self.rank_4.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_4.karma_min])
|
||||
)
|
||||
|
||||
def test_01_switch_rank(self):
|
||||
|
||||
self.assertEqual(len(self.users), 35)
|
||||
|
||||
self.rank_3.karma_min = 100
|
||||
# rank_1 -> rank_3 -> rank_2 -> rank_4
|
||||
|
||||
self.assertEqual(
|
||||
len(self.rank_1.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_1.karma_min and u.karma < self.rank_3.karma_min])
|
||||
)
|
||||
self.assertEqual(
|
||||
len(self.rank_3.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_3.karma_min and u.karma < self.rank_2.karma_min])
|
||||
)
|
||||
self.assertEqual(
|
||||
len(self.rank_2.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_2.karma_min and u.karma < self.rank_4.karma_min])
|
||||
)
|
||||
self.assertEqual(
|
||||
len(self.rank_4.user_ids & self.users),
|
||||
len([u for u in self.users if u.karma >= self.rank_4.karma_min])
|
||||
)
|
||||
|
||||
def test_02_update_rank_without_switch(self):
|
||||
number_of_users = False
|
||||
|
||||
def _patched_recompute_rank(_self, *args, **kwargs):
|
||||
nonlocal number_of_users
|
||||
number_of_users = len(_self & self.users)
|
||||
|
||||
patch_bulk = patch('odoo.addons.gamification.models.res_users.Users._recompute_rank', _patched_recompute_rank)
|
||||
patch_bulk.start()
|
||||
self.rank_3.karma_min = 700
|
||||
self.assertEqual(number_of_users, 7, "Should just recompute for the 7 users between 500 and 700")
|
||||
patch_bulk.stop()
|
||||
|
||||
def test_03_test_bulk_call(self):
|
||||
self.assertEqual(len(self.users), 35)
|
||||
|
||||
def _patched_check_in_bulk(*args, **kwargs):
|
||||
raise
|
||||
|
||||
patch_bulk = patch('odoo.addons.gamification.models.res_users.Users._recompute_rank_bulk', _patched_check_in_bulk)
|
||||
patch_bulk.start()
|
||||
|
||||
# call on 5 users should not trigger the bulk function
|
||||
self.users[0:5]._recompute_rank()
|
||||
|
||||
# call on 50 users should trigger the bulk function
|
||||
with self.assertRaises(Exception):
|
||||
self.users[0:50]._recompute_rank()
|
||||
|
||||
patch_bulk.stop()
|
||||
@@ -7,7 +7,6 @@
|
||||
# Akram Alfusayal <akram_ma@hotmail.com>, 2018
|
||||
# Martin Trigaux, 2018
|
||||
# hoxhe Aits <hoxhe0@gmail.com>, 2018
|
||||
# Osoul <baruni@osoul.ly>, 2018
|
||||
# Osama Ahmaro <osamaahmaro@gmail.com>, 2018
|
||||
# Ahmed AL-Haddad <ahmed@utech-sa.com>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
@@ -45,7 +44,7 @@ msgstr "الحسابات"
|
||||
msgid ""
|
||||
"All events have been disconnected from your previous account. You can now "
|
||||
"restart the synchronization"
|
||||
msgstr ""
|
||||
msgstr "تم فصل كافة الفعاليات عن حسابك السابق. يمكنك الآن إعادة بدء المزامنة"
|
||||
|
||||
#. module: google_calendar
|
||||
#. openerp-web
|
||||
@@ -55,6 +54,7 @@ msgid ""
|
||||
"An administrator needs to configure Google Synchronization before you can "
|
||||
"use it!"
|
||||
msgstr ""
|
||||
"يجب أن يقوم أحد المشرفين بإعداد مزامنة جوجل قبل أن تتمكن من استخدامها!"
|
||||
|
||||
#. module: google_calendar
|
||||
#. openerp-web
|
||||
@@ -64,6 +64,8 @@ msgid ""
|
||||
"An error occured while disconnecting events from your previous account. "
|
||||
"Please retry or contact your administrator."
|
||||
msgstr ""
|
||||
"حدث خطأ أثناء فصل الفعاليات عن حسابك السابق. برجاء إعادة المحاولة أو التواصل"
|
||||
" مع المشرف."
|
||||
|
||||
#. module: google_calendar
|
||||
#: model_terms:ir.ui.view,arch_db:google_calendar.view_users_form
|
||||
@@ -93,12 +95,12 @@ msgstr "سرية العميل"
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_res_config_settings__cal_client_id
|
||||
msgid "Client_id"
|
||||
msgstr "رقم العميل"
|
||||
msgstr "Client_id"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_res_config_settings__cal_client_secret
|
||||
msgid "Client_key"
|
||||
msgstr ""
|
||||
msgstr "Client_key"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model,name:google_calendar.model_res_config_settings
|
||||
@@ -116,7 +118,7 @@ msgstr "الإعدادات"
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_google_calendar__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: google_calendar
|
||||
#. openerp-web
|
||||
@@ -135,36 +137,36 @@ msgstr "الحدث"
|
||||
#: code:addons/google_calendar/static/src/js/google_calendar.js:84
|
||||
#, python-format
|
||||
msgid "Event disconnection error"
|
||||
msgstr ""
|
||||
msgstr "خطأ في فصل الفعالية"
|
||||
|
||||
#. module: google_calendar
|
||||
#. openerp-web
|
||||
#: code:addons/google_calendar/static/src/js/google_calendar.js:80
|
||||
#, python-format
|
||||
msgid "Event disconnection success"
|
||||
msgstr ""
|
||||
msgstr "نجاح فصل الفعالية"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model,name:google_calendar.model_google_calendar
|
||||
msgid "Google Calendar"
|
||||
msgstr "تقويم غوغل"
|
||||
msgstr "تقويم جوجل"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_calendar_attendee__google_internal_event_id
|
||||
msgid "Google Calendar Event Id"
|
||||
msgstr ""
|
||||
msgstr "معرف فعالية تقويم جوجل"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.actions.server,name:google_calendar.ir_cron_sync_all_cals_ir_actions_server
|
||||
#: model:ir.cron,cron_name:google_calendar.ir_cron_sync_all_cals
|
||||
#: model:ir.cron,name:google_calendar.ir_cron_sync_all_cals
|
||||
msgid "Google Calendar: synchronization"
|
||||
msgstr ""
|
||||
msgstr "تقويم جوجل: المزامنة"
|
||||
|
||||
#. module: google_calendar
|
||||
#: sql_constraint:calendar.attendee:0
|
||||
msgid "Google ID should be unique!"
|
||||
msgstr ""
|
||||
msgstr "يجب أن يكون معرف جوجل فريدًا!"
|
||||
|
||||
#. module: google_calendar
|
||||
#: code:addons/google_calendar/models/google_calendar.py:688
|
||||
@@ -174,6 +176,9 @@ msgid ""
|
||||
"\n"
|
||||
" %s"
|
||||
msgstr ""
|
||||
"فقدت الاتصال بجوجل... المزامنة القادمة ستكون مزامنة كاملة. \n"
|
||||
"\n"
|
||||
" %s"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_google_calendar__id
|
||||
@@ -188,6 +193,7 @@ msgid ""
|
||||
"In order to do this, you first need to disconnect all existing events from "
|
||||
"the old account."
|
||||
msgstr ""
|
||||
"لتتمكن من فعل هذا، عليك أولًا فصل كافة الفعاليات الموجودة من حسابك القديم."
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,help:google_calendar.field_res_users__google_calendar_cal_id
|
||||
@@ -195,6 +201,8 @@ msgid ""
|
||||
"Last Calendar ID who has been synchronized. If it is changed, we remove all "
|
||||
"links between GoogleID and Odoo Google Internal ID"
|
||||
msgstr ""
|
||||
"معرف آخر تقويم تمت مزامنته. إذا تغير، نزيل كافة الروابط بين GoogleID والمعرف"
|
||||
" الداخلي ما بين جوجل وأودو"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_google_calendar____last_update
|
||||
@@ -204,12 +212,12 @@ msgstr "آخر تعديل في"
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_res_users__google_calendar_last_sync_date
|
||||
msgid "Last synchro date"
|
||||
msgstr ""
|
||||
msgstr "تاريخ آخر مزامنة"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_calendar_attendee__oe_synchro_date
|
||||
msgid "Odoo Synchro Date"
|
||||
msgstr "تاريخ تزامن أودو"
|
||||
msgstr "تاريخ مزامنة أودو"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_calendar_event__oe_update_date
|
||||
@@ -233,7 +241,7 @@ msgstr "تحديث الرمز"
|
||||
#: code:addons/google_calendar/static/src/js/google_calendar.js:117
|
||||
#, python-format
|
||||
msgid "Sync with <b>Google</b>"
|
||||
msgstr ""
|
||||
msgstr "المزامنة مع <b>جوجل</b>"
|
||||
|
||||
#. module: google_calendar
|
||||
#. openerp-web
|
||||
@@ -243,6 +251,7 @@ msgid ""
|
||||
"The Google Synchronization needs to be configured before you can use it, do "
|
||||
"you want to do it now?"
|
||||
msgstr ""
|
||||
"يجب إعداد مزامنة جوجل قبل أن تتمكن من استخدامها، هل تريد فعل هذا الآن؟"
|
||||
|
||||
#. module: google_calendar
|
||||
#. openerp-web
|
||||
@@ -251,17 +260,17 @@ msgstr ""
|
||||
msgid ""
|
||||
"The account you are trying to synchronize (%s) is not the same as the last "
|
||||
"one used (%s)!"
|
||||
msgstr ""
|
||||
msgstr "الحساب الذي تحاول مزامنته (%s) مختلف عن آخر حساب استخدمته (%s)!"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_res_users__google_calendar_token_validity
|
||||
msgid "Token Validity"
|
||||
msgstr ""
|
||||
msgstr "صلاحية كلمة السر"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_res_config_settings__server_uri
|
||||
msgid "URI for tuto"
|
||||
msgstr ""
|
||||
msgstr "رابط الدرس التدريبي"
|
||||
|
||||
#. module: google_calendar
|
||||
#: model:ir.model.fields,field_description:google_calendar.field_res_users__google_calendar_token
|
||||
@@ -278,10 +287,10 @@ msgstr "المستخدمون"
|
||||
#: code:addons/google_calendar/static/src/js/google_calendar.js:42
|
||||
#, python-format
|
||||
msgid "You will be redirected to Google to authorize access to your calendar!"
|
||||
msgstr ""
|
||||
msgstr "سيتم إعادة توجيهك لجوجل للحصول على إذن الوصول لتقويمك!"
|
||||
|
||||
#. module: google_calendar
|
||||
#: code:addons/google_calendar/models/google_calendar.py:296
|
||||
#, python-format
|
||||
msgid "Your token is invalid or has been revoked !"
|
||||
msgstr ""
|
||||
msgstr "كلمة السر غير صالحة أو تم إلغاءها!"
|
||||
|
||||
@@ -7,8 +7,6 @@
|
||||
# Mosaab Alzoubi <moceap@hotmail.com>, 2018
|
||||
# amrnegm <amrnegm.01@gmail.com>, 2018
|
||||
# Martin Trigaux, 2018
|
||||
# Osoul <baruni@osoul.ly>, 2018
|
||||
# Ghaith Gammar <g.gammar@saharaifs.net>, 2018
|
||||
# Osama Ahmaro <osamaahmaro@gmail.com>, 2018
|
||||
# Zuhair Hammadi <zuhair12@gmail.com>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
@@ -38,21 +36,27 @@ msgid ""
|
||||
" - If you don't select \"Share with all users\", link of google document in \"More\" options will not appear for other users in opportunities of Sales Department.<br/>\n"
|
||||
" - If filter is not specified, link of google document will appear in \"More\" option for all users for all opportunities."
|
||||
msgstr ""
|
||||
"<b> لإنشاء فلتر جديد: </b> <br/>\n"
|
||||
" - افتح مستند أودو الذي تريد تطبيق الفلتر عليه. مثلًا: انتقل إلى الفرص وابحث في قسم المبيعات.<br/>\n"
|
||||
" - في واجهة العرض \"بحث\"، اختر الخيار \"حفظ الفلتر الحالي\"، وأدخل اسمًا (مثلًا: قسم المبيعات)<br/>\n"
|
||||
" - إذا اخترت \"مشاركة مع كافة المستخدمين\"، سيظهر رابط مستند جوجل في خيارات \"المزيد\" لكافة المستخدمين في فرص قسم المبيعات.<br/>\n"
|
||||
" - إذا لم تختر \"مشاركة مع كافة المستخدمين\"، فلن يظهر رابط مستند جوجل في خيارات \"المزيد\" للمستخدمين الآخرين في فرص قسم المبيعات.<br/>\n"
|
||||
" - إذا لم يتم تحديد الفلتر، سيظهر رابط مستند جوجل خيار \"المزيد\" لكافة المستخدمين بكافة الفرص."
|
||||
|
||||
#. module: google_drive
|
||||
#: model_terms:ir.ui.view,arch_db:google_drive.view_google_drive_config_kanban
|
||||
msgid "<strong>Active</strong>"
|
||||
msgstr ""
|
||||
msgstr "<strong>نشط</strong>"
|
||||
|
||||
#. module: google_drive
|
||||
#: model_terms:ir.ui.view,arch_db:google_drive.view_google_drive_config_kanban
|
||||
msgid "<strong>Model</strong>"
|
||||
msgstr ""
|
||||
msgstr "<strong>كائن</strong>"
|
||||
|
||||
#. module: google_drive
|
||||
#: model_terms:ir.ui.view,arch_db:google_drive.view_google_drive_config_kanban
|
||||
msgid "<strong>Template</strong>"
|
||||
msgstr ""
|
||||
msgstr "<strong>قالب</strong>"
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__active
|
||||
@@ -62,13 +66,13 @@ msgstr "نشط"
|
||||
#. module: google_drive
|
||||
#: model_terms:ir.actions.act_window,help:google_drive.action_google_drive_users_config
|
||||
msgid "Add a new template"
|
||||
msgstr ""
|
||||
msgstr "إضافة قالب جديد"
|
||||
|
||||
#. module: google_drive
|
||||
#: code:addons/google_drive/models/google_drive.py:42
|
||||
#, python-format
|
||||
msgid "At least one key cannot be found in your Google Drive name pattern."
|
||||
msgstr ""
|
||||
msgstr "تعذّر العثور علي مفتاح واحد علي الأقل في نمط اسم جوجل درايف."
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_res_config_settings__google_drive_authorization_code
|
||||
@@ -81,6 +85,7 @@ msgid ""
|
||||
"Choose how the new google drive will be named, on google side. Eg. "
|
||||
"gdoc_%(field_name)s"
|
||||
msgstr ""
|
||||
"اختر كيفية تسمية جوجل درايف الجديد، من ناحية جوجل. مثال: gdoc_%(field_name)s"
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model,name:google_drive.model_res_config_settings
|
||||
@@ -101,7 +106,7 @@ msgstr "أنشئ في"
|
||||
#: code:addons/google_drive/models/google_drive.py:161
|
||||
#, python-format
|
||||
msgid "Creating google drive may only be done by one at a time."
|
||||
msgstr ""
|
||||
msgstr "يتم إنشاء جوجل درايف مرة واحدة فقط."
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.filters,name:google_drive.filter_partner
|
||||
@@ -111,12 +116,12 @@ msgstr "العميل"
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__filter_id
|
||||
msgid "Filter"
|
||||
msgstr "الفرز"
|
||||
msgstr "فلتر"
|
||||
|
||||
#. module: google_drive
|
||||
#: code:addons/google_drive/models/google_drive.py:61
|
||||
@@ -128,30 +133,30 @@ msgstr "انتقل إلى لوحة الإعدادات"
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__google_drive_client_id
|
||||
msgid "Google Client"
|
||||
msgstr "عميل غوغل"
|
||||
msgstr "عميل جوجل"
|
||||
|
||||
#. module: google_drive
|
||||
#: model_terms:ir.ui.view,arch_db:google_drive.view_google_drive_config_form
|
||||
#: model_terms:ir.ui.view,arch_db:google_drive.view_google_drive_config_tree
|
||||
msgid "Google Drive Configuration"
|
||||
msgstr " اعدادات سواقة غوغل"
|
||||
msgstr "إعدادات جوجل درايف"
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__name_template
|
||||
msgid "Google Drive Name Pattern"
|
||||
msgstr ""
|
||||
msgstr "نمط اسم جوجل درايف"
|
||||
|
||||
#. module: google_drive
|
||||
#: model_terms:ir.ui.view,arch_db:google_drive.res_config_settings_view_form
|
||||
msgid "Google Drive Templates"
|
||||
msgstr ""
|
||||
msgstr "قوالب جوجل درايف"
|
||||
|
||||
#. module: google_drive
|
||||
#: code:addons/google_drive/models/google_drive.py:63
|
||||
#: code:addons/google_drive/models/google_drive.py:84
|
||||
#, python-format
|
||||
msgid "Google Drive is not yet configured. Please contact your administrator."
|
||||
msgstr ""
|
||||
msgstr "لم يتم إعداد جوجل درايف بعد. برجاء التوصل مع مشرفك."
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model,name:google_drive.model_google_drive_config
|
||||
@@ -187,6 +192,10 @@ msgid ""
|
||||
"checklist for each order in a foreign country, ... Its very easy to manage "
|
||||
"them, link them to Odoo and use them to collaborate with your employees."
|
||||
msgstr ""
|
||||
"اربط قوالب جوجل درايف الخاصة بك بأي سجل في أودو. إذا كان لديك مستندات معينة "
|
||||
"تريد أن يملأها المتعاون، مثلًا: استخدم الجداول الممتدة للتحكم في جودة منتجك "
|
||||
"أو لمراجعة قوائم الفحص لكل الأوامر الصادرة من دول أجنبية، من السهل إدارتهم، "
|
||||
"وربطهم بأودو واستخدامهم للتعاون مع موظفيك."
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__model_id
|
||||
@@ -197,12 +206,12 @@ msgstr "النموذج"
|
||||
#: code:addons/google_drive/models/google_drive.py:203
|
||||
#, python-format
|
||||
msgid "Please enter a valid Google Document URL."
|
||||
msgstr ""
|
||||
msgstr "برجاء إدخال رابط صالح لمستند جوجل."
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__model
|
||||
msgid "Related Model"
|
||||
msgstr ""
|
||||
msgstr "الكائن ذو الصلة"
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__google_drive_resource_id
|
||||
@@ -215,7 +224,7 @@ msgstr "هوية المصدر"
|
||||
msgid ""
|
||||
"Something went wrong during the token generation. Please request again an "
|
||||
"authorization code ."
|
||||
msgstr ""
|
||||
msgstr "حدث خطأ أثناء إنشاء كلمة السر. الرجاء طلب رمز ترخيص مرة أخرى."
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__name
|
||||
@@ -236,7 +245,7 @@ msgstr "قوالب"
|
||||
#: code:addons/google_drive/models/google_drive.py:99
|
||||
#, python-format
|
||||
msgid "The Google Template cannot be found. Maybe it has been deleted."
|
||||
msgstr "قالب غوغل لم يوجد. لربما حذف."
|
||||
msgstr "تعذّر إيجاد قالب جوجل. ربما يكون حُذف."
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,help:google_drive.field_res_config_settings__google_drive_uri
|
||||
@@ -251,6 +260,10 @@ msgid ""
|
||||
" in the Google Drive name field, the document in your Google Drive and in Odoo attachment will be named\n"
|
||||
" 'Deco_Addict_SO0001_Sales'."
|
||||
msgstr ""
|
||||
"يمكن لاسم المستند المرفق استخدام بيانات ثابتة أو متغيرة. للتمييز بين المستندات في\n"
|
||||
" جوجل درايف، استخدم الكلمات والحقول الثابتة. فمثلًا، في المثال أعلاه، إذا كتبت Deco_Addict_%(name)s_Sales\n"
|
||||
" في حقل اسم جوجل درايف، سيكون اسم المستند في جوجل درايف وفي مرفق أودو\n"
|
||||
" 'Deco_Addict_SO0001_Sales'."
|
||||
|
||||
#. module: google_drive
|
||||
#: code:addons/google_drive/models/google_drive.py:135
|
||||
@@ -258,7 +271,7 @@ msgstr ""
|
||||
msgid ""
|
||||
"The permission 'reader' for 'anyone with the link' has not been written on "
|
||||
"the document"
|
||||
msgstr ""
|
||||
msgstr "لم يُمنح الإذن 'قارئ' لـ'أي شخص يملك الرابط' بهذا المستند"
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_res_config_settings__google_drive_uri
|
||||
@@ -272,6 +285,7 @@ msgid ""
|
||||
"You haven't configured 'Authorization Code' generated from google, Please "
|
||||
"generate and configure it ."
|
||||
msgstr ""
|
||||
"لم تقم بإعداد 'رمز الترخيص' الذي تم إنشاؤه من جوجل، الرجاء إنشاءه وإعداده."
|
||||
|
||||
#. module: google_drive
|
||||
#: model_terms:ir.ui.view,arch_db:google_drive.view_google_drive_config_form
|
||||
|
||||
@@ -114,7 +114,7 @@ msgstr ""
|
||||
#: code:addons/google_drive/models/google_drive.py:82
|
||||
#, python-format
|
||||
msgid "Go to the configuration panel"
|
||||
msgstr ""
|
||||
msgstr "ចូលទៅផ្ទាំងការតំឡើង"
|
||||
|
||||
#. module: google_drive
|
||||
#: model:ir.model.fields,field_description:google_drive.field_google_drive_config__google_drive_client_id
|
||||
|
||||
@@ -179,7 +179,7 @@ msgstr ""
|
||||
#. module: hr
|
||||
#: model:ir.model.fields,field_description:hr.field_mail_alias__alias_contact
|
||||
msgid "Alias Contact Security"
|
||||
msgstr ""
|
||||
msgstr "ការទំនាក់ទំនងដោយប្រុងប្រយ័ត្ន"
|
||||
|
||||
#. module: hr
|
||||
#: model_terms:hr.job,website_description:hr.job_consultant
|
||||
|
||||
@@ -181,7 +181,7 @@ msgstr ""
|
||||
#. module: hr_attendance
|
||||
#: model_terms:ir.ui.view,arch_db:hr_attendance.hr_attendance_view_filter
|
||||
msgid "Check Out Date"
|
||||
msgstr ""
|
||||
msgstr "Zkontrolovat datum"
|
||||
|
||||
#. module: hr_attendance
|
||||
#: model_terms:ir.ui.view,arch_db:hr_attendance.res_config_settings_view_form
|
||||
|
||||
@@ -691,7 +691,7 @@ msgstr ""
|
||||
#. module: hr_expense
|
||||
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet_register_payment_wizard__hide_payment_method
|
||||
msgid "Hide Payment Method"
|
||||
msgstr ""
|
||||
msgstr "លាក់វិធីសាស្ត្រទូទាត់"
|
||||
|
||||
#. module: hr_expense
|
||||
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_refuse_wizard__hr_expense_ids
|
||||
@@ -1044,7 +1044,7 @@ msgstr ""
|
||||
#. module: hr_expense
|
||||
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet_register_payment_wizard__payment_method_id
|
||||
msgid "Payment Type"
|
||||
msgstr ""
|
||||
msgstr "ប្រភេទការទូទាត់"
|
||||
|
||||
#. module: hr_expense
|
||||
#: selection:hr.expense,activity_state:0
|
||||
@@ -1063,7 +1063,7 @@ msgstr ""
|
||||
#. module: hr_expense
|
||||
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_sheet_form
|
||||
msgid "Post Journal Entries"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញធាតុទិន្នានុប្បវតិ"
|
||||
|
||||
#. module: hr_expense
|
||||
#: selection:hr.expense.sheet,state:0
|
||||
@@ -1135,6 +1135,9 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:hr_expense.report_expense_sheet
|
||||
msgid "Ref."
|
||||
msgstr ""
|
||||
"សេចក្តីយោង\n"
|
||||
" \n"
|
||||
" "
|
||||
|
||||
#. module: hr_expense
|
||||
#: model_terms:ir.ui.view,arch_db:hr_expense.hr_expense_refuse_wizard_view_form
|
||||
@@ -1236,13 +1239,13 @@ msgstr ""
|
||||
#. module: hr_expense
|
||||
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense_sheet_register_payment_wizard__show_partner_bank_account
|
||||
msgid "Show Partner Bank Account"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញគណនីធនាគារដៃគូ"
|
||||
|
||||
#. module: hr_expense
|
||||
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_filter
|
||||
#: model_terms:ir.ui.view,arch_db:hr_expense.view_hr_expense_sheet_filter
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: hr_expense
|
||||
#: model:ir.model.fields,help:hr_expense.field_product_template__can_be_expensed
|
||||
@@ -1294,7 +1297,7 @@ msgstr ""
|
||||
#. module: hr_expense
|
||||
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__untaxed_amount
|
||||
msgid "Subtotal"
|
||||
msgstr ""
|
||||
msgstr "សរុប"
|
||||
|
||||
#. module: hr_expense
|
||||
#: model:ir.model.fields,field_description:hr_expense.field_hr_expense__tax_ids
|
||||
|
||||
@@ -1347,6 +1347,8 @@ msgid ""
|
||||
"Technical field used to know whether the field `partner_bank_account_id` "
|
||||
"needs to be displayed or not in the payments form views"
|
||||
msgstr ""
|
||||
"Technical field used to know whether the field `partner_bank_account_id` "
|
||||
"needs to be displayed or not in the payments form views"
|
||||
|
||||
#. module: hr_expense
|
||||
#. openerp-web
|
||||
|
||||
@@ -65,7 +65,7 @@ class HrExpense(models.Model):
|
||||
payment_mode = fields.Selection([
|
||||
("own_account", "Employee (to reimburse)"),
|
||||
("company_account", "Company")
|
||||
], default='own_account', states={'done': [('readonly', True)], 'post': [('readonly', True)], 'submitted': [('readonly', True)]}, string="Paid By")
|
||||
], default='own_account', states={'done': [('readonly', True)], 'approved': [('readonly', True)], 'reported': [('readonly', True)]}, string="Paid By")
|
||||
attachment_number = fields.Integer('Number of Attachments', compute='_compute_attachment_number')
|
||||
state = fields.Selection([
|
||||
('draft', 'To Submit'),
|
||||
@@ -336,8 +336,8 @@ class HrExpense(models.Model):
|
||||
'currency_id': expense.currency_id.id if different_currency else False,
|
||||
}
|
||||
move_line_values.append(move_line_src)
|
||||
total_amount -= move_line_src['debit']
|
||||
total_amount_currency -= move_line_src['amount_currency'] or move_line_src['debit']
|
||||
total_amount += -move_line_src['debit'] or move_line_src['credit']
|
||||
total_amount_currency += -move_line_src['amount_currency'] if move_line_src['currency_id'] else (-move_line_src['debit'] or move_line_src['credit'])
|
||||
|
||||
# taxes move lines
|
||||
for tax in taxes['taxes']:
|
||||
|
||||
@@ -3,15 +3,16 @@
|
||||
# * hr_expense_check
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# Mustafa J. Kadhem <safi2266@gmail.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-09-21 13:17+0000\n"
|
||||
"PO-Revision-Date: 2018-09-21 13:17+0000\n"
|
||||
"Last-Translator: Mustafa J. Kadhem <safi2266@gmail.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:18+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -37,7 +38,7 @@ msgstr "حدد هذا الاختيار إذا كان دفتر شيكاتك غي
|
||||
#. module: hr_expense_check
|
||||
#: model:ir.model,name:hr_expense_check.model_hr_expense_sheet_register_payment_wizard
|
||||
msgid "Expense Register Payment Wizard"
|
||||
msgstr ""
|
||||
msgstr "معالج سداد سجل المصروفات"
|
||||
|
||||
#. module: hr_expense_check
|
||||
#: model:ir.model.fields,field_description:hr_expense_check.field_hr_expense_sheet_register_payment_wizard__check_manual_sequencing
|
||||
@@ -57,10 +58,10 @@ msgstr ""
|
||||
#. module: hr_expense_check
|
||||
#: model:ir.model.fields,field_description:hr_expense_check.field_hr_expense_sheet_register_payment_wizard__payment_method_code_2
|
||||
msgid "Payment Method Code 2"
|
||||
msgstr ""
|
||||
msgstr "كود طريقة السداد 2"
|
||||
|
||||
#. module: hr_expense_check
|
||||
#: model:ir.model.fields,help:hr_expense_check.field_hr_expense_sheet_register_payment_wizard__payment_method_code_2
|
||||
msgid ""
|
||||
"Technical field used to adapt the interface to the payment type selected."
|
||||
msgstr "الحقل التقني يُستخدم لتهيئة الواجهة لنوع السداد المُختار"
|
||||
msgstr "حقل تقني يُستخدم لتهيئة الواجهة لنوع السداد المُختار."
|
||||
|
||||
@@ -3,18 +3,19 @@
|
||||
# * hr_gamification
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# Akram Alfusayal <akram_ma@hotmail.com>, 2018
|
||||
# Martin Trigaux, 2018
|
||||
# Fahad Alqahtani <fahad@cloudland.sa>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-09-21 13:17+0000\n"
|
||||
"PO-Revision-Date: 2018-09-21 13:17+0000\n"
|
||||
"Last-Translator: Shaima Safar <shaima.safar@open-inside.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:19+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -28,13 +29,15 @@ msgid ""
|
||||
"A goal is defined by a user and a goal type.\n"
|
||||
" Goals can be created automatically by using challenges."
|
||||
msgstr ""
|
||||
"يُعرف الهدف بواسطة المستخدم والنوع التابع له.\n"
|
||||
" يمكن إنشاء الأهداف تلقائيًا باستخدام التحديات."
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,help:hr_gamification.field_hr_employee__badge_ids
|
||||
msgid ""
|
||||
"All employee badges, linked to the employee either directly or through the "
|
||||
"user"
|
||||
msgstr ""
|
||||
msgstr "كافة شارات الموظف، المرتبطة بالموظف إما مباشرة أو من خلال المستخدم"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.actions.act_window,help:hr_gamification.challenge_list_action2
|
||||
@@ -43,6 +46,9 @@ msgid ""
|
||||
" The challenge can use a period (weekly, monthly...) for automatic creation of goals.\n"
|
||||
" The goals are created for the specified users or member of the group."
|
||||
msgstr ""
|
||||
"قم بتعيين قائمة من الأهداف لمجموعة محددة من المستخدمين لتقييمهم.\n"
|
||||
" قد يكون التحدي دوريًا (أسبوعيًا أو شهريًا) ليتم إنشاء الأهداف تلقائيًا.\n"
|
||||
" يتم إنشاء الأهداف للمستخدمين المحددين أو لأعضاء مجموعة ما."
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_res_users__badge_ids
|
||||
@@ -55,13 +61,12 @@ msgstr "الشارات"
|
||||
msgid ""
|
||||
"Badges are rewards of good work. Give them to people you believe deserve it."
|
||||
msgstr ""
|
||||
"الشارات هي مكافئات أو منح للدلالة على العمل الجيد. امنح الشارات لمن ترى أنهم"
|
||||
" يستحقونها."
|
||||
"الشارات هي مكافآت على العمل الجيد. امنح الشارات لمن ترى أنهم يستحقونها."
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,help:hr_gamification.field_hr_employee__direct_badge_ids
|
||||
msgid "Badges directly linked to the employee"
|
||||
msgstr ""
|
||||
msgstr "الشارات المرتبطة مباشرةً بهذا الموظف"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.ui.view,arch_db:hr_gamification.view_badge_wizard_reward
|
||||
@@ -78,22 +83,22 @@ msgstr "التحديات"
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.actions.act_window,help:hr_gamification.challenge_list_action2
|
||||
msgid "Create a new challenge"
|
||||
msgstr ""
|
||||
msgstr "إنشاء تحدي جديد"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.actions.act_window,help:hr_gamification.goals_menu_groupby_action2
|
||||
msgid "Create a new goal"
|
||||
msgstr ""
|
||||
msgstr "إنشاء هدف جديد"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.ui.view,arch_db:hr_gamification.view_badge_wizard_reward
|
||||
msgid "Describe what they did and why it matters (will be public)"
|
||||
msgstr "صف مافعلوه وما أهميته (سيكون عاماً)"
|
||||
msgstr "صف ما فعلوه وما أهميته (سيكون عامًا)"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_hr_employee__direct_badge_ids
|
||||
msgid "Direct Badge"
|
||||
msgstr ""
|
||||
msgstr "الشارة المباشرة"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model,name:hr_gamification.model_hr_employee
|
||||
@@ -110,22 +115,22 @@ msgstr "شارات الموظف"
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_hr_employee__goal_ids
|
||||
msgid "Employee HR Goals"
|
||||
msgstr "أهداف الموظفين"
|
||||
msgstr "أهداف الموظف للموارد البشرية"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model,name:hr_gamification.model_gamification_badge
|
||||
msgid "Gamification Badge"
|
||||
msgstr ""
|
||||
msgstr "شارة التنافسية"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model,name:hr_gamification.model_gamification_badge_user
|
||||
msgid "Gamification User Badge"
|
||||
msgstr ""
|
||||
msgstr "شارة مستخدم التنافسية"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model,name:hr_gamification.model_gamification_badge_user_wizard
|
||||
msgid "Gamification User Badge Wizard"
|
||||
msgstr ""
|
||||
msgstr "معالج شارة مستخدم التنافسية"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_res_users__goal_ids
|
||||
@@ -141,22 +146,22 @@ msgstr "تاريخ الأهداف"
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.ui.view,arch_db:hr_gamification.hr_hr_employee_view_form
|
||||
msgid "Grant a Badge"
|
||||
msgstr "امنح شارة"
|
||||
msgstr "منح شارة"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.ui.view,arch_db:hr_gamification.hr_hr_employee_view_form
|
||||
msgid "Grant this employee his first badge"
|
||||
msgstr ""
|
||||
msgstr "منح هذا المستخدم شارته الأولى"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.ui.view,arch_db:hr_gamification.hr_badge_form_view
|
||||
msgid "Granted"
|
||||
msgstr ""
|
||||
msgstr "ممنوح"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_gamification_badge__granted_employees_count
|
||||
msgid "Granted Employees Count"
|
||||
msgstr ""
|
||||
msgstr "عدد الموظفين الممنوحين شارات"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_hr_employee__has_badges
|
||||
@@ -188,7 +193,7 @@ msgstr "مكافأة الموظف بـ"
|
||||
#: code:addons/hr_gamification/models/gamification.py:18
|
||||
#, python-format
|
||||
msgid "The selected employee does not correspond to the selected user."
|
||||
msgstr "الموظف المحدد لا يتفق مع المستخدم المحدد."
|
||||
msgstr "الموظف المختار غير متوافق مع المستخدم المختار."
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_gamification_badge_user_wizard__user_id
|
||||
@@ -203,19 +208,19 @@ msgstr "المستخدمون"
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.ui.view,arch_db:hr_gamification.view_badge_wizard_reward
|
||||
msgid "What are you thankful for?"
|
||||
msgstr ""
|
||||
msgstr "علام أنت ممتن؟"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: code:addons/hr_gamification/wizard/gamification_badge_user_wizard.py:22
|
||||
#, python-format
|
||||
msgid "You can not send a badge to yourself."
|
||||
msgstr ""
|
||||
msgstr "لا يمكنك إرسال شارة لنفسك."
|
||||
|
||||
#. module: hr_gamification
|
||||
#: code:addons/hr_gamification/wizard/gamification_badge_user_wizard.py:19
|
||||
#, python-format
|
||||
msgid "You can send badges only to employees linked to a user."
|
||||
msgstr "يمكنك ارسال الشارات فقط للموظفين المرتبطين بمستخدم."
|
||||
msgstr "يمكنك إرسال الشارات للموظفين المرتبطين بمستخدم فقط."
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model_terms:ir.ui.view,arch_db:hr_gamification.hr_hr_employee_view_form
|
||||
|
||||
@@ -124,7 +124,7 @@ msgstr ""
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model,name:hr_gamification.model_gamification_badge_user_wizard
|
||||
msgid "Gamification User Badge Wizard"
|
||||
msgstr ""
|
||||
msgstr "Průvodce odznakem uživatele Gamifikace"
|
||||
|
||||
#. module: hr_gamification
|
||||
#: model:ir.model.fields,field_description:hr_gamification.field_res_users__goal_ids
|
||||
|
||||
@@ -1117,7 +1117,7 @@ msgstr ""
|
||||
#: code:addons/hr_holidays/report/holidays_summary_report.py:113
|
||||
#, python-format
|
||||
msgid "Form content is missing, this report cannot be printed."
|
||||
msgstr ""
|
||||
msgstr "កំហុសទម្រង់សំណុំបែបបទរបាយការណ៍នេះមិនអាចបោះពុម្ពបានទេ"
|
||||
|
||||
#. module: hr_holidays
|
||||
#: model:ir.model.fields,field_description:hr_holidays.field_hr_holidays_summary_dept__date_from
|
||||
@@ -2069,7 +2069,7 @@ msgstr "លំដាប់"
|
||||
#: model_terms:ir.ui.view,arch_db:hr_holidays.view_hr_holidays_filter
|
||||
#: model_terms:ir.ui.view,arch_db:hr_holidays.view_hr_leave_allocation_filter
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: hr_holidays
|
||||
#: model:hr.leave.type,name:hr_holidays.holiday_status_sl
|
||||
|
||||
@@ -1335,7 +1335,7 @@ msgstr ""
|
||||
#. module: hr_recruitment
|
||||
#: model_terms:ir.ui.view,arch_db:hr_recruitment.hr_employee_view_search
|
||||
msgid "Newly Hired"
|
||||
msgstr ""
|
||||
msgstr "Nově přijat"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.actions.act_window,name:hr_recruitment.hr_employee_action_from_department
|
||||
|
||||
@@ -1721,7 +1721,7 @@ msgstr ""
|
||||
#. module: hr_recruitment
|
||||
#: model_terms:ir.ui.view,arch_db:hr_recruitment.view_crm_case_jobs_filter
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model.fields,field_description:hr_recruitment.field_hr_applicant__source_id
|
||||
|
||||
@@ -765,7 +765,7 @@ msgstr "Miêu tả"
|
||||
#. module: hr_recruitment
|
||||
#: model:ir.model,name:hr_recruitment.model_digest_digest
|
||||
msgid "Digest"
|
||||
msgstr ""
|
||||
msgstr "Tiêu"
|
||||
|
||||
#. module: hr_recruitment
|
||||
#: model_terms:ir.ui.view,arch_db:hr_recruitment.hr_job_simple_form
|
||||
|
||||
@@ -3,18 +3,18 @@
|
||||
# * hr_timesheet_attendance
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# Akram Alfusayal <akram_ma@hotmail.com>, 2018
|
||||
# Martin Trigaux, 2018
|
||||
# Osoul <baruni@osoul.ly>, 2018
|
||||
# Osama Ahmaro <osamaahmaro@gmail.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-09-21 13:17+0000\n"
|
||||
"PO-Revision-Date: 2018-09-21 13:17+0000\n"
|
||||
"Last-Translator: Osama Ahmaro <osamaahmaro@gmail.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:19+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -31,12 +31,12 @@ msgstr "التاريخ"
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.model.fields,field_description:hr_timesheet_attendance.field_hr_timesheet_attendance_report__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.actions.act_window,name:hr_timesheet_attendance.action_hr_timesheet_attendance_report
|
||||
msgid "HR Timesheet/Attendance Report"
|
||||
msgstr ""
|
||||
msgstr "تقرير سجل النشاط/الحضور"
|
||||
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.model.fields,field_description:hr_timesheet_attendance.field_hr_timesheet_attendance_report__id
|
||||
@@ -51,12 +51,12 @@ msgstr "آخر تعديل في"
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.ui.menu,name:hr_timesheet_attendance.menu_hr_timesheet_attendance_report
|
||||
msgid "Timesheet / Attendance"
|
||||
msgstr ""
|
||||
msgstr "سجل النشاط / الحضور"
|
||||
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.model,name:hr_timesheet_attendance.model_hr_timesheet_attendance_report
|
||||
msgid "Timesheet Attendance Report"
|
||||
msgstr ""
|
||||
msgstr "تقرير حضور سجل النشاط"
|
||||
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.model.fields,field_description:hr_timesheet_attendance.field_hr_timesheet_attendance_report__total_attendance
|
||||
@@ -71,7 +71,7 @@ msgstr "مجموع الاختلافات"
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.model.fields,field_description:hr_timesheet_attendance.field_hr_timesheet_attendance_report__total_timesheet
|
||||
msgid "Total Timesheet"
|
||||
msgstr "سجل الدوام الكلي"
|
||||
msgstr "سجل النشاط الكلي"
|
||||
|
||||
#. module: hr_timesheet_attendance
|
||||
#: model:ir.model.fields,field_description:hr_timesheet_attendance.field_hr_timesheet_attendance_report__user_id
|
||||
@@ -82,4 +82,4 @@ msgstr "المستخدم"
|
||||
#: model_terms:ir.ui.view,arch_db:hr_timesheet_attendance.view_hr_timesheet_attendance_report_pivot
|
||||
#: model_terms:ir.ui.view,arch_db:hr_timesheet_attendance.view_hr_timesheet_attendance_report_search
|
||||
msgid "timesheet attendance"
|
||||
msgstr ""
|
||||
msgstr "حضور سجل النشاط"
|
||||
|
||||
+22
-21
@@ -3,18 +3,19 @@
|
||||
# * iap
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# amrnegm <amrnegm.01@gmail.com>, 2018
|
||||
# Martin Trigaux, 2018
|
||||
# Osoul <baruni@osoul.ly>, 2018
|
||||
# Osama Ahmaro <osamaahmaro@gmail.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-10-02 10:05+0000\n"
|
||||
"PO-Revision-Date: 2018-10-02 10:05+0000\n"
|
||||
"Last-Translator: Osama Ahmaro <osamaahmaro@gmail.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:19+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -25,26 +26,26 @@ msgstr ""
|
||||
#. module: iap
|
||||
#: model_terms:ir.ui.view,arch_db:iap.iap_account_view_form
|
||||
msgid "Account Information"
|
||||
msgstr ""
|
||||
msgstr "معلومات الحساب"
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.model.fields,field_description:iap.field_iap_account__account_token
|
||||
msgid "Account Token"
|
||||
msgstr ""
|
||||
msgstr "كلمة سر الحساب"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/js/crash_manager.js:23
|
||||
#, python-format
|
||||
msgid "Buy credits at Odoo"
|
||||
msgstr ""
|
||||
msgstr "شراء رصيد في أودو"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:41
|
||||
#, python-format
|
||||
msgid "Buy more credits"
|
||||
msgstr ""
|
||||
msgstr "شراء رصيد أكثر"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
@@ -58,7 +59,7 @@ msgstr "إلغاء"
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:28
|
||||
#, python-format
|
||||
msgid "Checking remaining credit ..."
|
||||
msgstr ""
|
||||
msgstr "جارٍ التحقق من الرصيد المتبقي..."
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.model.fields,field_description:iap.field_iap_account__company_id
|
||||
@@ -78,25 +79,25 @@ msgstr "أنشئ في"
|
||||
#. module: iap
|
||||
#: model:ir.model.fields,field_description:iap.field_iap_account__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.ui.menu,name:iap.iap_root_menu
|
||||
msgid "IAP"
|
||||
msgstr ""
|
||||
msgstr "IAP"
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.actions.act_window,name:iap.iap_account_action
|
||||
#: model:ir.model,name:iap.model_iap_account
|
||||
#: model_terms:ir.ui.view,arch_db:iap.iap_account_view_form
|
||||
msgid "IAP Account"
|
||||
msgstr ""
|
||||
msgstr "حساب IAP"
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.ui.menu,name:iap.iap_account_menu
|
||||
#: model_terms:ir.ui.view,arch_db:iap.iap_account_view_tree
|
||||
msgid "IAP Accounts"
|
||||
msgstr ""
|
||||
msgstr "حسابات IAP"
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.model.fields,field_description:iap.field_iap_account__id
|
||||
@@ -108,28 +109,28 @@ msgstr "المعرف"
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:21
|
||||
#, python-format
|
||||
msgid "In-App Purchases"
|
||||
msgstr ""
|
||||
msgstr "عمليات شراء داخل التطبيق"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/js/crash_manager.js:51
|
||||
#, python-format
|
||||
msgid "Insufficient Balance"
|
||||
msgstr ""
|
||||
msgstr "رصيد غير كاف"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:31
|
||||
#, python-format
|
||||
msgid "Insufficient credit"
|
||||
msgstr ""
|
||||
msgstr "رصيد غير كاف"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:14
|
||||
#, python-format
|
||||
msgid "Insufficient credit to perform this service."
|
||||
msgstr ""
|
||||
msgstr "الرصيد غير كافٍ لإجراء هذه الخدمة."
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.model.fields,field_description:iap.field_iap_account____last_update
|
||||
@@ -151,30 +152,30 @@ msgstr "آخر تحديث في"
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:34
|
||||
#, python-format
|
||||
msgid "Remaining :"
|
||||
msgstr ""
|
||||
msgstr "المتبقي:"
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.model.fields,field_description:iap.field_iap_account__service_name
|
||||
msgid "Service Name"
|
||||
msgstr ""
|
||||
msgstr "اسم الخدمة"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/js/crash_manager.js:23
|
||||
#, python-format
|
||||
msgid "Start a Trial at Odoo"
|
||||
msgstr ""
|
||||
msgstr "بدء نسخة تجريبية في أودو"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:37
|
||||
#, python-format
|
||||
msgid "Temporarily unavailable"
|
||||
msgstr ""
|
||||
msgstr "غير متاح مؤقتًا"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:34
|
||||
#, python-format
|
||||
msgid "credits"
|
||||
msgstr ""
|
||||
msgstr "رصيد"
|
||||
|
||||
@@ -42,7 +42,7 @@ msgstr ""
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:41
|
||||
#, python-format
|
||||
msgid "Buy more credits"
|
||||
msgstr ""
|
||||
msgstr "Koupit více kreditů"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
@@ -149,7 +149,7 @@ msgstr "Naposled upraveno"
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:34
|
||||
#, python-format
|
||||
msgid "Remaining :"
|
||||
msgstr ""
|
||||
msgstr "Zbývající:"
|
||||
|
||||
#. module: iap
|
||||
#: model:ir.model.fields,field_description:iap.field_iap_account__service_name
|
||||
@@ -168,11 +168,11 @@ msgstr ""
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:37
|
||||
#, python-format
|
||||
msgid "Temporarily unavailable"
|
||||
msgstr ""
|
||||
msgstr "dočasně nedostupné"
|
||||
|
||||
#. module: iap
|
||||
#. openerp-web
|
||||
#: code:addons/iap/static/src/xml/iap_templates.xml:34
|
||||
#, python-format
|
||||
msgid "credits"
|
||||
msgstr ""
|
||||
msgstr "kredity"
|
||||
|
||||
@@ -392,7 +392,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:im_livechat.mail_channel_view_form
|
||||
#: model_terms:ir.ui.view,arch_db:im_livechat.mail_channel_view_tree
|
||||
msgid "History"
|
||||
msgstr ""
|
||||
msgstr "ប្រវត្តិ"
|
||||
|
||||
#. module: im_livechat
|
||||
#: model:ir.model.fields,field_description:im_livechat.field_im_livechat_report_channel__start_date_hour
|
||||
@@ -635,7 +635,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:im_livechat.im_livechat_report_channel_view_search
|
||||
#: model_terms:ir.ui.view,arch_db:im_livechat.im_livechat_report_operator_view_search
|
||||
msgid "Operator"
|
||||
msgstr ""
|
||||
msgstr "ប្រតិបត្តការណ៌"
|
||||
|
||||
#. module: im_livechat
|
||||
#: model:ir.ui.menu,name:im_livechat.menu_reporting_livechat_operator
|
||||
|
||||
@@ -40,7 +40,7 @@ msgstr ""
|
||||
#. module: im_livechat_mail_bot
|
||||
#: model:ir.model,name:im_livechat_mail_bot.model_mail_bot
|
||||
msgid "Mail Bot"
|
||||
msgstr ""
|
||||
msgstr "e-mailový robot"
|
||||
|
||||
#. module: im_livechat_mail_bot
|
||||
#: selection:res.users,odoobot_state:0
|
||||
|
||||
@@ -24,7 +24,7 @@ msgstr ""
|
||||
#: code:addons/im_support/static/src/js/support_channel.js:48
|
||||
#, python-format
|
||||
msgid " (offline)"
|
||||
msgstr ""
|
||||
msgstr " (لا يوجد اتصال)"
|
||||
|
||||
#. module: im_support
|
||||
#: model:ir.model,name:im_support.model_ir_http
|
||||
@@ -34,7 +34,7 @@ msgstr ""
|
||||
#. module: im_support
|
||||
#: model_terms:ir.ui.view,arch_db:im_support.support_qunit_suite
|
||||
msgid "IM Support Tests"
|
||||
msgstr ""
|
||||
msgstr "اختبارات دعم المحادثات الفورية"
|
||||
|
||||
#. module: im_support
|
||||
#. openerp-web
|
||||
@@ -44,6 +44,8 @@ msgid ""
|
||||
"None of our operators are available. <a href='https://www.odoo.com/help' "
|
||||
"target='_blank'>Submit a ticket</a> to ask your question now."
|
||||
msgstr ""
|
||||
"جميع ممثلينا مشغولون الآن. <a href='https://www.odoo.com/help' "
|
||||
"target='_blank'>أرسل تذكرة</a> لطرح سؤالك الآن."
|
||||
|
||||
#. module: im_support
|
||||
#. openerp-web
|
||||
@@ -65,4 +67,4 @@ msgstr "الدعم"
|
||||
#: code:addons/im_support/static/src/js/mail_manager.js:153
|
||||
#, python-format
|
||||
msgid "The Support server can't be reached."
|
||||
msgstr ""
|
||||
msgstr "تعذّر الوصول لسيرفر الدعم."
|
||||
|
||||
@@ -386,7 +386,7 @@
|
||||
]"/>
|
||||
</record>
|
||||
<record id="uae_sale_tax_reverse_charge_abu_dhabi" model="account.tax.template">
|
||||
<field name="name">Reverse Charge Provision (Abi Dhabi)</field>
|
||||
<field name="name">Reverse Charge Provision (Abu Dhabi)</field>
|
||||
<field name="type_tax_use">sale</field>
|
||||
<field name="amount">5</field>
|
||||
<field name="amount_type">percent</field>
|
||||
@@ -829,6 +829,18 @@
|
||||
}),
|
||||
]"/>
|
||||
</record>
|
||||
<record id="uae_purchase_tax_5_child_global" model="account.tax.template">
|
||||
<field name="name">TVA 5%</field>
|
||||
<field name="type_tax_use">none</field>
|
||||
<field name="amount">5</field>
|
||||
<field name="amount_type">percent</field>
|
||||
<field name="description">TVA 5%</field>
|
||||
<field name="account_id" ref="uae_account_3726"/>
|
||||
<field name="refund_account_id" ref="uae_account_3726"/>
|
||||
<field name="tax_group_id" ref="ae_tax_group_5"/>
|
||||
<field name="tag_ids" eval="[(6,0,[ref('tag_ae_02')])]"/>
|
||||
<field name="chart_template_id" ref="uae_chart_template_standard"/>
|
||||
</record>
|
||||
<record id="uae_purchase_tax_reverse_charge" model="account.tax.template">
|
||||
<field name="name">Reverse Charge Provision</field>
|
||||
<field name="type_tax_use">purchase</field>
|
||||
|
||||
@@ -26,7 +26,7 @@ class AccountMove(models.Model):
|
||||
l10n_ch_isr_valid = fields.Boolean(compute='_compute_l10n_ch_isr_valid', help='Boolean value. True iff all the data required to generate the ISR are present')
|
||||
|
||||
l10n_ch_isr_sent = fields.Boolean(defaut=False, help="Boolean value telling whether or not the ISR corresponding to this invoice has already been printed or sent by mail.")
|
||||
l10n_ch_currency_name = fields.Char(related='currency_id.name', readonly=False, string="Currency Name", help="The name of this invoice's currency") #This field is used in the "invisible" condition field of the 'Print ISR' button.
|
||||
l10n_ch_currency_name = fields.Char(related='currency_id.name', readonly=True, string="Currency Name", help="The name of this invoice's currency") #This field is used in the "invisible" condition field of the 'Print ISR' button.
|
||||
|
||||
@api.depends('invoice_partner_bank_id.bank_id.l10n_ch_postal_eur', 'invoice_partner_bank_id.bank_id.l10n_ch_postal_chf')
|
||||
def _compute_l10n_ch_isr_postal(self):
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
<data noupdate="1">
|
||||
<!-- add VAT, codice fiscal and tax system for main company -->
|
||||
<record id="base.main_company" model="res.company">
|
||||
<field name="country_id" ref="base.it"/>
|
||||
<field name="vat">IT00410128888</field>
|
||||
<field name="l10n_it_codice_fiscale">0123456789987654</field>
|
||||
<field name="l10n_it_tax_system">RF01</field>
|
||||
|
||||
@@ -65,7 +65,7 @@ msgstr ""
|
||||
#. module: l10n_multilang
|
||||
#: model:ir.model.fields,field_description:l10n_multilang.field_account_fiscal_position_template__name
|
||||
msgid "Fiscal Position Template"
|
||||
msgstr ""
|
||||
msgstr "គំរូទីតាំងថសារពើរពន្ធ"
|
||||
|
||||
#. module: l10n_multilang
|
||||
#: model:ir.model,name:l10n_multilang.model_base_language_install
|
||||
@@ -90,7 +90,7 @@ msgstr ""
|
||||
#. module: l10n_multilang
|
||||
#: model:ir.model.fields,help:l10n_multilang.field_account_fiscal_position__note
|
||||
msgid "Legal mentions that have to be printed on the invoices."
|
||||
msgstr ""
|
||||
msgstr "ច្បាប់បានចែងថា ត្រូវតែព្រីនលើវិក័យប័ត្រ។"
|
||||
|
||||
#. module: l10n_multilang
|
||||
#: model:ir.model.fields,field_description:l10n_multilang.field_account_account__name
|
||||
@@ -144,7 +144,7 @@ msgstr ""
|
||||
#. module: l10n_multilang
|
||||
#: model:ir.model,name:l10n_multilang.model_account_account_template
|
||||
msgid "Templates for Accounts"
|
||||
msgstr ""
|
||||
msgstr "គំរូសម្រាប់គណនី"
|
||||
|
||||
#. module: l10n_multilang
|
||||
#: model:ir.model,name:l10n_multilang.model_account_tax_template
|
||||
|
||||
@@ -15,6 +15,7 @@ This is the latest basic South African localisation necessary to run Odoo in ZA:
|
||||
'website': 'https://www.paradigmdigital.co.za',
|
||||
'depends': ['account', 'base_vat'],
|
||||
'data': [
|
||||
'data/account.account.tag.csv',
|
||||
'data/account_tax_report_data.xml',
|
||||
'data/account.tax.group.csv',
|
||||
'data/account_chart_template_data.xml',
|
||||
|
||||
@@ -787,6 +787,8 @@ msgid ""
|
||||
"Payments are used to register liquidity movements. You can process those "
|
||||
"payments by your own means or by using installed facilities."
|
||||
msgstr ""
|
||||
"ការទូទាត់ត្រូវបានប្រើដើម្បីកត់ត្រាចលនាសាច់ប្រាក់។ "
|
||||
"អ្នកអាចដំណើរការការទូទាត់ទាំងនោះដោយមធ្យោបាយរបស់អ្នកផ្ទាល់ឬដោយប្រើឧបករណ៍ដែលបានដំឡើង។"
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model.fields,field_description:lunch.field_lunch_order__previous_order_ids
|
||||
@@ -908,6 +910,9 @@ msgstr ""
|
||||
#: model_terms:ir.actions.act_window,help:lunch.lunch_cashmove_action_payment
|
||||
msgid "Register a payment"
|
||||
msgstr ""
|
||||
"ចុះឈ្មោះការបង់ប្រាក់\n"
|
||||
" \n"
|
||||
" "
|
||||
|
||||
#. module: lunch
|
||||
#: model:ir.model.fields,field_description:lunch.field_lunch_alert__saturday
|
||||
|
||||
@@ -5220,6 +5220,8 @@ msgid ""
|
||||
"Tracked values are stored in a separate model. This field allow to "
|
||||
"reconstruct the tracking and to generate statistics on the model."
|
||||
msgstr ""
|
||||
"Sledované hodnoty jsou uloženy v samostatném modelu. Toto pole umožňuje "
|
||||
"rekonstruovat sledování a generovat statistiky modelu."
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_ir_model_fields__track_visibility
|
||||
@@ -5625,7 +5627,7 @@ msgstr ""
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,help:mail.field_mail_compose_message__is_log
|
||||
msgid "Whether the message is an internal note (comment mode only)"
|
||||
msgstr ""
|
||||
msgstr "Zda je zpráva interní poznámkou (pouze režim poznámek)"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,help:mail.field_ir_model__is_mail_thread
|
||||
|
||||
+48
-35
@@ -470,7 +470,7 @@ msgstr ""
|
||||
#: code:addons/mail/static/src/xml/activity.xml:37
|
||||
#, python-format
|
||||
msgid "Activity type"
|
||||
msgstr ""
|
||||
msgstr "ប្រភេទឯកសារ"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
@@ -619,7 +619,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_channel__alias_contact
|
||||
#: model:ir.model.fields,field_description:mail.field_res_users__alias_contact
|
||||
msgid "Alias Contact Security"
|
||||
msgstr ""
|
||||
msgstr "ការទំនាក់ទំនងដោយប្រុងប្រយ័ត្ន"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_res_config_settings__alias_domain
|
||||
@@ -631,7 +631,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_alias_mixin__alias_name
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_channel__alias_name
|
||||
msgid "Alias Name"
|
||||
msgstr ""
|
||||
msgstr "ឈ្មោះក្លែក្លាយ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_alias__alias_domain
|
||||
@@ -645,7 +645,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_alias_mixin__alias_model_id
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_channel__alias_model_id
|
||||
msgid "Aliased Model"
|
||||
msgstr ""
|
||||
msgstr "គំរូឈ្មោះក្លែងក្លាយ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.actions.act_window,name:mail.action_view_mail_alias
|
||||
@@ -713,6 +713,8 @@ msgid ""
|
||||
"Answers do not go in the original document discussion thread. This has an "
|
||||
"impact on the generated message-id."
|
||||
msgstr ""
|
||||
"ចម្លើយមិនចូលទៅក្នុងខ្សែស្រឡាយការពិភាក្សាឯកសារដើមទេ។ "
|
||||
"នេះមានផលប៉ះពាល់ដល់លេខសម្គាល់សារដែលបានបង្កើត "
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_email_template_preview__model_id
|
||||
@@ -1159,7 +1161,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__child_ids
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__child_ids
|
||||
msgid "Child Messages"
|
||||
msgstr ""
|
||||
msgstr "សារកុមារ"
|
||||
|
||||
#. module: mail
|
||||
#: model_terms:ir.ui.view,arch_db:mail.email_template_preview_form
|
||||
@@ -1237,7 +1239,7 @@ msgstr "សរសេរអុីម៉ែល"
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__composition_mode
|
||||
msgid "Composition mode"
|
||||
msgstr ""
|
||||
msgstr "របៀបផ្សំ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model,name:mail.model_res_config_settings
|
||||
@@ -1284,7 +1286,7 @@ msgstr "មាតិកា"
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__body
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__body
|
||||
msgid "Contents"
|
||||
msgstr ""
|
||||
msgstr "មាតិកា"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_channel_partner__fold_state
|
||||
@@ -1429,7 +1431,7 @@ msgstr "កាលបរិច្ឆេត"
|
||||
#: code:addons/mail/static/src/xml/chatter.xml:93
|
||||
#, python-format
|
||||
msgid "Dates"
|
||||
msgstr ""
|
||||
msgstr "កាលបរិច្ឆេទ"
|
||||
|
||||
#. module: mail
|
||||
#: selection:ir.actions.server,activity_date_deadline_range_type:0
|
||||
@@ -1668,6 +1670,7 @@ msgid ""
|
||||
"Do not keep a copy of the email in the document communication history (mass "
|
||||
"mailing only)"
|
||||
msgstr ""
|
||||
"កុំរក្សាទុកច្បាប់ចំលងនៃអ៊ីមែលនៅក្នុងប្រវត្តិទំនាក់ទំនងឯកសារ (ផ្ញើរតាមមហាជន)"
|
||||
|
||||
#. module: mail
|
||||
#: model_terms:ir.ui.view,arch_db:mail.view_document_file_kanban
|
||||
@@ -1877,6 +1880,9 @@ msgid ""
|
||||
"Email address of the sender. This field is set when no matching partner is "
|
||||
"found and replaces the author_id field in the chatter."
|
||||
msgstr ""
|
||||
"អាសយដ្ឋានអ៊ីមែលរបស់អ្នកផ្ញើ។ "
|
||||
"កន្លែងនេះត្រូវបានកំណត់នៅពេលគ្មានដៃគូដែលផ្គូផ្គងត្រូវបានរកឃើញនិងជំនួសកន្លែង "
|
||||
"author_id នៅក្នុង chatter ។"
|
||||
|
||||
#. module: mail
|
||||
#: selection:mail.notification,failure_type:0
|
||||
@@ -2045,7 +2051,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__starred_partner_ids
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__starred_partner_ids
|
||||
msgid "Favorited By"
|
||||
msgstr ""
|
||||
msgstr "ចំណូលចិត្តដោយ"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
@@ -2194,7 +2200,7 @@ msgstr ""
|
||||
#: code:addons/mail/static/src/xml/systray.xml:98
|
||||
#, python-format
|
||||
msgid "Future"
|
||||
msgstr ""
|
||||
msgstr "អនាគត"
|
||||
|
||||
#. module: mail
|
||||
#: model_terms:ir.ui.view,arch_db:mail.mail_activity_view_search
|
||||
@@ -2222,7 +2228,7 @@ msgstr ""
|
||||
#: code:addons/mail/models/res_users.py:88
|
||||
#, python-format
|
||||
msgid "Go to the configuration panel"
|
||||
msgstr ""
|
||||
msgstr "ចូលទៅផ្ទាំងការតំឡើង"
|
||||
|
||||
#. module: mail
|
||||
#: selection:ir.actions.act_window.view,view_mode:0
|
||||
@@ -2359,7 +2365,7 @@ msgstr "ID"
|
||||
msgid ""
|
||||
"ID of the parent record holding the alias (example: project holding the task"
|
||||
" creation alias)"
|
||||
msgstr ""
|
||||
msgstr "អត្ថសញ្ញាឯកសារអាណព្យាបាលដំកល់ដោយមិនមានភាពច្បាស់លាស់"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_activity__icon
|
||||
@@ -2485,7 +2491,7 @@ msgstr ""
|
||||
#: code:addons/mail/static/src/xml/discuss.xml:216
|
||||
#, python-format
|
||||
msgid "Inbox"
|
||||
msgstr ""
|
||||
msgstr "សំបុត្រប្រអប់"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,help:mail.field_mail_activity__automated
|
||||
@@ -2498,7 +2504,7 @@ msgstr ""
|
||||
#: code:addons/mail/static/src/xml/activity.xml:33
|
||||
#, python-format
|
||||
msgid "Info"
|
||||
msgstr ""
|
||||
msgstr "ពត៌មាន"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_activity_type__initial_res_model_id
|
||||
@@ -2847,7 +2853,7 @@ msgstr ""
|
||||
#: code:addons/mail/static/src/xml/thread.xml:55
|
||||
#, python-format
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
msgstr "ដំណើរការ"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
@@ -2883,7 +2889,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mail.mail_activity_view_form_popup
|
||||
#: model_terms:ir.ui.view,arch_db:mail.view_server_action_form_template
|
||||
msgid "Log a note..."
|
||||
msgstr ""
|
||||
msgstr "កត់ចំណំា"
|
||||
|
||||
#. module: mail
|
||||
#: model_terms:ir.ui.view,arch_db:mail.mail_activity_view_form_popup
|
||||
@@ -3140,7 +3146,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__record_name
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__record_name
|
||||
msgid "Message Record Name"
|
||||
msgstr ""
|
||||
msgstr "ឈ្មោះកំណត់ត្រាសារ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message_subtype__name
|
||||
@@ -3200,20 +3206,22 @@ msgid ""
|
||||
"Message type: email for email message, notification for system message, "
|
||||
"comment for other messages such as user replies"
|
||||
msgstr ""
|
||||
"ប្រភេទសារ: សារអេឡិចត្រូនិចសម្រាប់សារអ៊ីម៉ែល, ការជូនដំណឹងសម្រាប់ប្រព័ន្ធសារ, "
|
||||
"មតិយោបល់សម្រាប់សារផ្សេងទៀតដូចជាការឆ្លើយតបរបស់អ្នកប្រើ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,help:mail.field_mail_compose_message__message_id
|
||||
#: model:ir.model.fields,help:mail.field_mail_mail__message_id
|
||||
#: model:ir.model.fields,help:mail.field_mail_message__message_id
|
||||
msgid "Message unique identifier"
|
||||
msgstr ""
|
||||
msgstr "អ្នកកំណត់អត្តសញ្ញាណតែមួយគត់សារ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__message_id
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__message_id
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__message_id
|
||||
msgid "Message-Id"
|
||||
msgstr ""
|
||||
msgstr "សារលេខសម្គាល់"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.actions.act_window,name:mail.action_view_mail_message
|
||||
@@ -3300,7 +3308,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__moderator_id
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__moderator_id
|
||||
msgid "Moderated By"
|
||||
msgstr ""
|
||||
msgstr "សម្របសម្រួលដោយ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_channel__moderation_ids
|
||||
@@ -3340,7 +3348,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__moderation_status
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__moderation_status
|
||||
msgid "Moderation Status"
|
||||
msgstr ""
|
||||
msgstr "សម្របសម្រួលបច្ចុប្បន្នភាព"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_res_users__moderation_counter
|
||||
@@ -3395,7 +3403,7 @@ msgstr "ឈ្មោះ"
|
||||
#: model:ir.model.fields,help:mail.field_mail_mail__record_name
|
||||
#: model:ir.model.fields,help:mail.field_mail_message__record_name
|
||||
msgid "Name get of the related document."
|
||||
msgstr ""
|
||||
msgstr "ឈ្មោះទទួលឯកសារពាក់ព័ន្ធ។"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,help:mail.field_email_template_preview__report_name
|
||||
@@ -3414,14 +3422,14 @@ msgstr ""
|
||||
#: model:ir.model.fields,help:mail.field_mail_message__needaction
|
||||
#: model_terms:ir.ui.view,arch_db:mail.view_message_search
|
||||
msgid "Need Action"
|
||||
msgstr ""
|
||||
msgstr "ត្រូវការសកម្មភាព"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__need_moderation
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__need_moderation
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__need_moderation
|
||||
msgid "Need moderation"
|
||||
msgstr ""
|
||||
msgstr "ត្រូវការល្មម"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_notification__res_partner_id
|
||||
@@ -3613,7 +3621,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__no_auto_thread
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__no_auto_thread
|
||||
msgid "No threading for answers"
|
||||
msgstr ""
|
||||
msgstr "គ្មានខ្សែស្រឡាយសម្រាប់ចម្លើយ"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_ir_actions_server__activity_note
|
||||
@@ -3650,17 +3658,17 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__notification_ids
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_resend_message__notification_ids
|
||||
msgid "Notifications"
|
||||
msgstr ""
|
||||
msgstr "កំណត់សំគាល់"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_compose_message__notify
|
||||
msgid "Notify followers"
|
||||
msgstr ""
|
||||
msgstr "តាមដានកំណត់សំគាល់"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,help:mail.field_mail_compose_message__notify
|
||||
msgid "Notify followers of the document (mass post only)"
|
||||
msgstr ""
|
||||
msgstr "ជូនដំណឹងអ្នកតាមដានឯកសារ (ប្រកាសតែប៉ុណ្ណោះ)"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_blacklist__message_needaction_counter
|
||||
@@ -3834,6 +3842,9 @@ msgid ""
|
||||
"attached, even if they did not reply to it. If set, this will disable the "
|
||||
"creation of new records completely."
|
||||
msgstr ""
|
||||
"លេខសម្គាល់ស្រេចចិត្តនៃខ្សែស្រឡាយ (កំណត់ត្រា) "
|
||||
"ដែលសារទាំងអស់នឹងត្រូវបានភ្ជាប់ទោះបីជាពួកគេមិនឆ្លើយតបទៅវាក៏ដោយ។ "
|
||||
"ប្រសិនបើបានកំណត់វានឹងបិទការបង្កើតកំណត់ត្រាថ្មីទាំងស្រុង។"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,help:mail.field_email_template_preview__mail_server_id
|
||||
@@ -3892,7 +3903,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__mail_server_id
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__mail_server_id
|
||||
msgid "Outgoing mail server"
|
||||
msgstr ""
|
||||
msgstr "ម៉ាស៊ីនបម្រើសំបុត្រចេញ"
|
||||
|
||||
#. module: mail
|
||||
#: selection:mail.activity,state:0
|
||||
@@ -4149,7 +4160,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mail.email_template_form
|
||||
#, python-format
|
||||
msgid "Preview"
|
||||
msgstr ""
|
||||
msgstr "ពីមុន"
|
||||
|
||||
#. module: mail
|
||||
#: model_terms:ir.ui.view,arch_db:mail.email_template_preview_form
|
||||
@@ -4252,7 +4263,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
|
||||
#: model_terms:ir.ui.view,arch_db:mail.view_message_form
|
||||
msgid "Recipients"
|
||||
msgstr ""
|
||||
msgstr "អ្នកទទួល"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_activity__recommended_activity_type_id
|
||||
@@ -4316,7 +4327,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__res_id
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_wizard_invite__res_id
|
||||
msgid "Related Document ID"
|
||||
msgstr ""
|
||||
msgstr "លេខសម្គាល់ឯកសារដែលទាក់ទង"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_email_template_preview__model
|
||||
@@ -4486,7 +4497,7 @@ msgstr ""
|
||||
#. module: mail
|
||||
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
|
||||
msgid "Save as new template"
|
||||
msgstr ""
|
||||
msgstr "រក្សាទុកជាគំរូថ្មី"
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
@@ -4727,7 +4738,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mail.mail_activity_view_search
|
||||
#: model_terms:ir.ui.view,arch_db:mail.res_partner_view_search_inherit_mail
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: mail
|
||||
#: code:addons/mail/models/mail_channel.py:914
|
||||
@@ -4861,7 +4872,7 @@ msgstr ""
|
||||
#. module: mail
|
||||
#: model_terms:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
|
||||
msgid "Subject..."
|
||||
msgstr ""
|
||||
msgstr "ប្រធានបទ ..."
|
||||
|
||||
#. module: mail
|
||||
#. openerp-web
|
||||
@@ -5127,6 +5138,8 @@ msgid ""
|
||||
"Tracked values are stored in a separate model. This field allow to "
|
||||
"reconstruct the tracking and to generate statistics on the model."
|
||||
msgstr ""
|
||||
"តម្លៃដែលបានតាមដានត្រូវបានរក្សាទុកក្នុងគំរូដាច់ដោយឡែកមួយ។ "
|
||||
"កន្លែងនេះអនុញ្ញាតឱ្យធ្វើការជួសជុលឡើងវិញនិងបង្កើតស្ថិតិលើគំរូ។"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_ir_model_fields__track_visibility
|
||||
|
||||
@@ -3471,7 +3471,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_mail__moderation_status
|
||||
#: model:ir.model.fields,field_description:mail.field_mail_message__moderation_status
|
||||
msgid "Moderation Status"
|
||||
msgstr ""
|
||||
msgstr "Trạng thái kiểm duyệt"
|
||||
|
||||
#. module: mail
|
||||
#: model:ir.model.fields,field_description:mail.field_res_users__moderation_counter
|
||||
|
||||
@@ -2017,8 +2017,8 @@ class MailThread(models.AbstractModel):
|
||||
message_format_values = False
|
||||
if inbox_pids:
|
||||
message_format_values = message.message_format()[0]
|
||||
for partner in self.env['res.partner'].browse(inbox_pids):
|
||||
bus_notifications.append([(self._cr.dbname, 'ir.needaction', partner), dict(message_format_values)])
|
||||
for partner_id in inbox_pids:
|
||||
bus_notifications.append([(self._cr.dbname, 'ir.needaction', partner_id), dict(message_format_values)])
|
||||
if channel_ids:
|
||||
bus_notifications += self.env['mail.channel'].sudo().browse(channel_ids)._channel_message_notifications(message, message_format_values)
|
||||
if bus_notifications:
|
||||
|
||||
@@ -382,7 +382,7 @@ var BasicActivity = AbstractField.extend({
|
||||
container: $markDoneBtn,
|
||||
title : _t("Feedback"),
|
||||
html: true,
|
||||
trigger:'click',
|
||||
trigger: 'manual',
|
||||
placement: 'right', // FIXME: this should work, maybe a bug in the popper lib
|
||||
content : function () {
|
||||
var $popover = $(QWeb.render('mail.activity_feedback_form', {
|
||||
@@ -399,6 +399,11 @@ var BasicActivity = AbstractField.extend({
|
||||
$popover.find('#activity_feedback').focus();
|
||||
self._bindPopoverFocusout($(this));
|
||||
}).popover('show');
|
||||
} else {
|
||||
var popover = $markDoneBtn.data('bs.popover');
|
||||
if ($('#' + popover.tip.id).length === 0) {
|
||||
popover.show();
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
|
||||
@@ -101,6 +101,19 @@ var DMChat = TwoUserChannel.extend(ChannelSeenMixin, {
|
||||
getStatus: function () {
|
||||
return this.call('mail_service', 'getImStatus', { partnerID: this._directPartnerID });
|
||||
},
|
||||
|
||||
/**
|
||||
* @param {Object} data
|
||||
* @param {string} data.outOfOfficeMessage
|
||||
* @param {string} data.outOfOfficeDateEnd
|
||||
*/
|
||||
updateOutOfOfficeInfo: function (data) {
|
||||
this._outOfOfficeMessage = data.outOfOfficeMessage;
|
||||
this._outOfOfficeDateEnd = data.outOfOfficeDateEnd;
|
||||
this.call('mail_service', 'getMailBus').trigger('updated_out_of_office', {
|
||||
threadID: this.getID(),
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return DMChat;
|
||||
|
||||
@@ -329,7 +329,9 @@ var DocumentThread = Thread.extend({
|
||||
.then(function (messages) {
|
||||
messages[0].model = resModel;
|
||||
messages[0].res_id = resID;
|
||||
self.call('mail_service', 'addMessage', messages[0]);
|
||||
self.call('mail_service', 'addMessage', messages[0], {
|
||||
postedFromDocumentThread: true,
|
||||
});
|
||||
return messages[0];
|
||||
});
|
||||
});
|
||||
|
||||
@@ -171,11 +171,15 @@ var ThreadTypingMixin = {
|
||||
if (this._isTypingMyselfInfo(params)) {
|
||||
return;
|
||||
}
|
||||
var partnerID = params.partnerID;
|
||||
this._othersTypingTimers.registerTimer({
|
||||
timeoutCallbackArguments: [params.partnerID],
|
||||
timerID: params.partnerID,
|
||||
timeoutCallbackArguments: [partnerID],
|
||||
timerID: partnerID,
|
||||
});
|
||||
this._typingPartnerIDs.push(params.partnerID);
|
||||
if (_.contains(this._typingPartnerIDs, partnerID)) {
|
||||
return;
|
||||
}
|
||||
this._typingPartnerIDs.push(partnerID);
|
||||
this._warnUpdatedTypingPartners();
|
||||
},
|
||||
/**
|
||||
@@ -209,6 +213,9 @@ var ThreadTypingMixin = {
|
||||
unregisterTyping: function (params) {
|
||||
var partnerID = params.partnerID;
|
||||
this._othersTypingTimers.unregisterTimer({ timerID: partnerID });
|
||||
if (!_.contains(this._typingPartnerIDs, partnerID)) {
|
||||
return;
|
||||
}
|
||||
this._typingPartnerIDs = _.reject(this._typingPartnerIDs, function (id) {
|
||||
return id === partnerID;
|
||||
});
|
||||
|
||||
@@ -48,23 +48,16 @@ MailManager.include({
|
||||
*
|
||||
* @override
|
||||
* @param {Object} data
|
||||
* @param {Array} [data.author_id] [int, string] where int is server ID of
|
||||
* the author, and string is the name of the author.
|
||||
* @param {integer} data.id server ID of the message
|
||||
* @param {string} [data.model] the model name of the document that this
|
||||
* message is related to.
|
||||
* @param {integer} [data.res_id] the ID of the document that this message
|
||||
* is related to.
|
||||
*
|
||||
* @param {Object} [options]
|
||||
* @param {boolean} [options.postedFromDocumentThread=false]
|
||||
*/
|
||||
addMessage: function (data) {
|
||||
addMessage: function (data, options) {
|
||||
var message = this.getMessage(data.id);
|
||||
if (
|
||||
!message &&
|
||||
data.res_id &&
|
||||
data.model &&
|
||||
data.author_id &&
|
||||
data.author_id[0] === session.partner_id
|
||||
options &&
|
||||
options.postedFromDocumentThread
|
||||
) {
|
||||
var key = this.DOCUMENT_THREAD_MESSAGE_KEY;
|
||||
this.call('local_storage', 'setItem', key, data);
|
||||
|
||||
@@ -417,6 +417,9 @@ MailManager.include({
|
||||
this._handlePartnerUserConnectionNotification(data);
|
||||
} else if (data.info === 'channel_seen') {
|
||||
this._handlePartnerChannnelSeenNotification(data);
|
||||
} else if (data.type === 'simple_notification') {
|
||||
var title = _.escape(data.title), message = _.escape(data.message);
|
||||
data.warning ? this.do_warn(title, message, data.sticky) : this.do_notify(title, message, data.sticky);
|
||||
} else {
|
||||
this._handlePartnerChannelNotification(data);
|
||||
}
|
||||
|
||||
@@ -54,13 +54,45 @@ MailManager.include({
|
||||
updateImStatus: function (statusList) {
|
||||
var updatedIDs = [];
|
||||
var self = this;
|
||||
var dmChat;
|
||||
var toUpdateOutOfOfficeChatIDs = [];
|
||||
_.each(statusList, function (status) {
|
||||
if (self._imStatus[status.id] === status.im_status) {
|
||||
return;
|
||||
}
|
||||
if (
|
||||
status.im_status.indexOf('leave') !== -1 ||
|
||||
(
|
||||
self._imStatus[status.id] &&
|
||||
self._imStatus[status.id].indexOf('leave') !== -1
|
||||
)
|
||||
) {
|
||||
dmChat = self.getDMChatFromPartnerID(status.id);
|
||||
if (dmChat) {
|
||||
toUpdateOutOfOfficeChatIDs.push(dmChat.getID());
|
||||
}
|
||||
}
|
||||
updatedIDs.push(status.id);
|
||||
self._imStatus[status.id] = status.im_status;
|
||||
});
|
||||
if (!_.isEmpty(toUpdateOutOfOfficeChatIDs)) {
|
||||
this._rpc({
|
||||
model: 'mail.channel',
|
||||
method: 'channel_info',
|
||||
args: [toUpdateOutOfOfficeChatIDs],
|
||||
}).then(function (channelsInfo) {
|
||||
_.each(channelsInfo, function (channelInfo) {
|
||||
dmChat = self.getChannel(channelInfo.id);
|
||||
if (!dmChat) {
|
||||
return;
|
||||
}
|
||||
dmChat.updateOutOfOfficeInfo({
|
||||
outOfOfficeMessage: channelInfo.direct_partner[0].out_of_office_message,
|
||||
outOfOfficeDateEnd: channelInfo.direct_partner[0].out_of_office_date_end,
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
if (! _.isEmpty(updatedIDs)) {
|
||||
this._mailBus.trigger('updated_im_status', updatedIDs); // useful for thread window header
|
||||
this._renderImStatus(updatedIDs);
|
||||
|
||||
@@ -344,6 +344,7 @@ MailManager.include({
|
||||
.on('is_thread_bottom_visible', this, this._onIsThreadBottomVisible)
|
||||
.on('unsubscribe_from_channel', this, this._onUnsubscribeFromChannel)
|
||||
.on('updated_im_status', this, this._onUpdatedImStatus)
|
||||
.on('updated_out_of_office', this, this._onUpdatedOutOfOffice)
|
||||
.on('update_thread_unread_counter', this, this._onUpdateThreadUnreadCounter);
|
||||
|
||||
core.bus.on('resize', this, _.debounce(this._repositionThreadWindows.bind(this), 100));
|
||||
@@ -700,6 +701,18 @@ MailManager.include({
|
||||
threadWindow.renderHeader();
|
||||
});
|
||||
},
|
||||
/**
|
||||
* @private
|
||||
* @param {Object} data
|
||||
* @param {integer} data.threadID
|
||||
*/
|
||||
_onUpdatedOutOfOffice: function (data) {
|
||||
var threadWindow = this._getThreadWindow(data.threadID);
|
||||
if (!threadWindow) {
|
||||
return;
|
||||
}
|
||||
threadWindow.renderOutOfOffice();
|
||||
},
|
||||
/**
|
||||
* Called when a thread has its unread counter that has changed.
|
||||
* The unread counter on the thread windows should be updated.
|
||||
|
||||
@@ -6,6 +6,7 @@ var BasicComposer = require('mail.composer.Basic');
|
||||
|
||||
var core = require('web.core');
|
||||
|
||||
var QWeb = core.qweb;
|
||||
var _t = core._t;
|
||||
|
||||
/**
|
||||
@@ -153,6 +154,23 @@ var ThreadWindow = AbstractThreadWindow.extend({
|
||||
removePassive: function () {
|
||||
this._passive = false;
|
||||
},
|
||||
renderOutOfOffice: function () {
|
||||
var $outOfOffice = this.$('.o_out_of_office');
|
||||
if (!this.getOutOfOfficeInfo() && !this.getOutOfOfficeMessage()) {
|
||||
if ($outOfOffice.length) {
|
||||
$outOfOffice.remove();
|
||||
}
|
||||
return;
|
||||
}
|
||||
var $newOutOfOffice = $(QWeb.render('mail.thread_window.OutOfOffice', {
|
||||
widget: this,
|
||||
}));
|
||||
if ($outOfOffice.length) {
|
||||
$outOfOffice.replaceWith($newOutOfOffice);
|
||||
} else {
|
||||
$newOutOfOffice.insertAfter(this.$('.o_thread_window_header'));
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Update this thread window
|
||||
*
|
||||
|
||||
@@ -39,8 +39,9 @@ $o-mail-thread-window-zindex: $zindex-modal + 1 !default;
|
||||
padding: 8px;
|
||||
|
||||
@include media-breakpoint-down(sm) {
|
||||
align-items: center;
|
||||
height: $o-mail-chat-header-height;
|
||||
padding-top: 12px;
|
||||
padding: 0;
|
||||
border-radius: 0px;
|
||||
.o_thread_window_title {
|
||||
font-size: 16px;
|
||||
@@ -48,7 +49,9 @@ $o-mail-thread-window-zindex: $zindex-modal + 1 !default;
|
||||
}
|
||||
|
||||
.o_thread_window_close {
|
||||
font-size: 17px;
|
||||
$o-close-font-size: 17px;
|
||||
padding: (($o-mail-chat-header-height - $o-close-font-size) / 2);
|
||||
font-size: $o-close-font-size;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -287,7 +287,8 @@
|
||||
}
|
||||
|
||||
.o_mail_discuss_content {
|
||||
flex: 1 0 0;
|
||||
flex: 1 1 auto;
|
||||
min-height: 0;
|
||||
margin-left: 10px;
|
||||
margin-right: 10px;
|
||||
background-color: transparent;
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
-->
|
||||
<t t-name="mail.AbstractThreadWindow.HeaderContent">
|
||||
<span t-if="widget.isMobile()">
|
||||
<a href="#" class="o_thread_window_close fa fa-1x fa-arrow-left mr4" aria-label="Close chat window" title="Close chat window"/>
|
||||
<a href="#" class="o_thread_window_close fa fa-1x fa-arrow-left" aria-label="Close chat window" title="Close chat window"/>
|
||||
</span>
|
||||
<span class="o_thread_window_title">
|
||||
<t t-if="status" t-call="mail.UserStatus"/>
|
||||
|
||||
@@ -6,13 +6,7 @@
|
||||
-->
|
||||
<t t-name="mail.ThreadWindow" t-extend="mail.AbstractThreadWindow">
|
||||
<t t-jquery=".o_thread_window_header" t-operation="after">
|
||||
<div class="o_out_of_office" t-if="widget.getOutOfOfficeInfo() or widget.getOutOfOfficeMessage()">
|
||||
<div class="o_out_of_office_info" t-if="widget.getOutOfOfficeInfo()" t-esc="widget.getOutOfOfficeInfo()"/>
|
||||
<div class="o_out_of_office_text o_text_wrap" t-if="widget.getOutOfOfficeMessage()">
|
||||
<t t-esc="widget.getOutOfOfficeMessage()"/>
|
||||
<a href="#" class="o_out_of_office_read_more_less_button">Read more</a>
|
||||
</div>
|
||||
</div>
|
||||
<t t-call="mail.thread_window.OutOfOffice" t-if="widget.getOutOfOfficeInfo() or widget.getOutOfOfficeMessage()"/>
|
||||
<div t-if="!widget.hasThread()" class="o_thread_search_input">
|
||||
<span> To: </span>
|
||||
<input type="text" placeholder="User name"/>
|
||||
@@ -20,6 +14,17 @@
|
||||
</t>
|
||||
</t>
|
||||
|
||||
<!--
|
||||
@param {mail.ThreadWindow} widget
|
||||
-->
|
||||
<div class="o_out_of_office" t-name="mail.thread_window.OutOfOffice">
|
||||
<div class="o_out_of_office_info" t-if="widget.getOutOfOfficeInfo()" t-esc="widget.getOutOfOfficeInfo()"/>
|
||||
<div class="o_out_of_office_text o_text_wrap" t-if="widget.getOutOfOfficeMessage()">
|
||||
<t t-esc="widget.getOutOfOfficeMessage()"/>
|
||||
<a href="#" class="o_out_of_office_read_more_less_button">Read more</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
@param {string} expandTitle text to display on mouse hover (title attribute)
|
||||
-->
|
||||
|
||||
@@ -7,6 +7,7 @@ var core = require('web.core');
|
||||
var FormView = require('web.FormView');
|
||||
var KanbanView = require('web.KanbanView');
|
||||
var testUtils = require('web.test_utils');
|
||||
var concurrency = require('web.concurrency');
|
||||
|
||||
var createView = testUtils.createView;
|
||||
|
||||
@@ -1858,6 +1859,74 @@ QUnit.test('form activity widget: schedule next activity', async function (asser
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('form activity widget: do not close activity popover on click', async function (assert) {
|
||||
assert.expect(3);
|
||||
this.data.partner.records[0].activity_ids = [1];
|
||||
this.data.partner.records[0].activity_state = 'today';
|
||||
this.data['mail.activity'].records = [{
|
||||
id: 1,
|
||||
display_name: "An activity",
|
||||
date_deadline: moment().format("YYYY-MM-DD"), // now
|
||||
can_write: true,
|
||||
state: "today",
|
||||
user_id: 2,
|
||||
create_user_id: 2,
|
||||
activity_type_id: 2,
|
||||
}];
|
||||
|
||||
const form = await createView({
|
||||
View: FormView,
|
||||
model: 'partner',
|
||||
data: this.data,
|
||||
services: this.services,
|
||||
arch: `<form string="Partners">
|
||||
<sheet>
|
||||
<field name="foo"/>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
<field name="activity_ids" widget="mail_activity"/>
|
||||
</div>
|
||||
</form>`,
|
||||
res_id: 2,
|
||||
mockRPC(route, args) {
|
||||
if (route === '/web/dataset/call_kw/mail.activity/action_feedback_schedule_next') {
|
||||
return Promise.resolve();
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
intercepts: {
|
||||
do_action(ev) {
|
||||
ev.data.options.on_close();
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
//Schedule next activity
|
||||
await testUtils.dom.click(form.$('.o_mail_activity .o_mark_as_done[data-activity-id=1]'));
|
||||
|
||||
for (let i = 0; i < 2; i++) {
|
||||
// click twice in feedback area
|
||||
await testUtils.dom.click(form.$('.o_mail_activity_feedback.popover textarea'));
|
||||
const $popover = form.$('.o_mail_activity_feedback.popover');
|
||||
const $PopoverInDom = form.$(`#${$popover.attr('id')}`);
|
||||
assert.isVisible(
|
||||
$PopoverInDom,
|
||||
"the feedback popover should still be visible on click");
|
||||
}
|
||||
await concurrency.delay(250); // wait for popover transition
|
||||
const $popover = form.$('.o_mail_activity_feedback.popover');
|
||||
if (!$popover) {
|
||||
throw new Error("popover should be in DOM");
|
||||
}
|
||||
const $PopoverInDom = form.$(`#${$popover.attr('id')}`);
|
||||
assert.isVisible(
|
||||
$PopoverInDom,
|
||||
"the feedback popover should still be visible on click");
|
||||
|
||||
form.destroy();
|
||||
});
|
||||
|
||||
|
||||
QUnit.test('form activity widget: edit next activity', async function (assert) {
|
||||
assert.expect(3);
|
||||
|
||||
@@ -48,7 +48,7 @@ QUnit.module('Document Thread', {
|
||||
},
|
||||
records: [{
|
||||
id: 1,
|
||||
author_id: [1, 'Me'],
|
||||
author_id: [partnerID, 'Me'],
|
||||
body: '<p>Some Message on a document</p>',
|
||||
channel_ids: [],
|
||||
model: 'some.res.model',
|
||||
|
||||
@@ -726,6 +726,119 @@ QUnit.test('no out-of-office status in thread window', async function (assert) {
|
||||
parent.destroy();
|
||||
});
|
||||
|
||||
QUnit.test('auto-update out-of-office info on im_status change', async function (assert) {
|
||||
assert.expect(5);
|
||||
|
||||
var imStatusDefs = [testUtils.makeTestPromise(), testUtils.makeTestPromise()];
|
||||
var channelInfoDefs = [testUtils.makeTestPromise(), testUtils.makeTestPromise()];
|
||||
var timeoutMock = mailTestUtils.patchMailTimeouts();
|
||||
var step = 0;
|
||||
|
||||
this.data = {
|
||||
'mail.message': {
|
||||
fields: {},
|
||||
records: [],
|
||||
},
|
||||
initMessaging: {
|
||||
channel_slots: {
|
||||
channel_channel: [{
|
||||
id: 1,
|
||||
name: "DM",
|
||||
channel_type: "chat",
|
||||
message_unread_counter: 0,
|
||||
direct_partner: [{
|
||||
id: 666,
|
||||
name: 'DemoUser1',
|
||||
im_status: 'online',
|
||||
}],
|
||||
}],
|
||||
},
|
||||
},
|
||||
};
|
||||
|
||||
var parent = this.createParent({
|
||||
data: this.data,
|
||||
services: this.services,
|
||||
mockRPC: function (route, args) {
|
||||
if (route === '/longpolling/im_status') {
|
||||
step++;
|
||||
if (step === 1) {
|
||||
imStatusDefs[0].resolve();
|
||||
return Promise.resolve([
|
||||
{
|
||||
id: 666,
|
||||
im_status: 'leave',
|
||||
},
|
||||
]);
|
||||
} else if (step === 2) {
|
||||
imStatusDefs[1].resolve();
|
||||
return Promise.resolve([
|
||||
{
|
||||
id: 666,
|
||||
im_status: 'online',
|
||||
},
|
||||
]);
|
||||
}
|
||||
}
|
||||
if (args.method === 'channel_info') {
|
||||
if (step === 1) {
|
||||
channelInfoDefs[0].resolve();
|
||||
return Promise.resolve([{
|
||||
id: 1,
|
||||
direct_partner: [{
|
||||
out_of_office_message: "Leave me alone",
|
||||
out_of_office_date_end: false,
|
||||
}],
|
||||
}]);
|
||||
}
|
||||
else if (step === 2) {
|
||||
channelInfoDefs[1].resolve();
|
||||
return Promise.resolve([{
|
||||
id: 1,
|
||||
direct_partner: [{
|
||||
out_of_office_message: false,
|
||||
out_of_office_date_end: false,
|
||||
}],
|
||||
}]);
|
||||
}
|
||||
}
|
||||
return this._super.apply(this, arguments);
|
||||
},
|
||||
});
|
||||
await testUtils.nextTick();
|
||||
|
||||
// detach channel 1, so that it opens corresponding thread window.
|
||||
parent.call('mail_service', 'getChannel', 1).detach();
|
||||
await testUtils.nextTick();
|
||||
|
||||
assert.containsNone($, '.o_out_of_office',
|
||||
"should contain no out of office section on chat window initially");
|
||||
|
||||
timeoutMock.addTime(51*1000); // wait for next im status fetch
|
||||
|
||||
await Promise.all([imStatusDefs[0], channelInfoDefs[0]]);
|
||||
await testUtils.nextTick();
|
||||
assert.containsOnce($, '.o_out_of_office',
|
||||
"should contain out of office section on chat window");
|
||||
assert.containsOnce($, '.o_out_of_office > .o_out_of_office_text',
|
||||
"should contain out of office text on chat window");
|
||||
assert.ok(
|
||||
$('.o_out_of_office > .o_out_of_office_text')
|
||||
.text()
|
||||
.replace(/\s/g, "")
|
||||
.indexOf("Leavemealone") !== -1,
|
||||
"should contain out of office text on chat window");
|
||||
timeoutMock.addTime(51*1000); // wait for next im status fetch
|
||||
|
||||
await Promise.all([imStatusDefs[1], channelInfoDefs[1]]);
|
||||
await testUtils.nextTick();
|
||||
assert.containsNone($, '.o_out_of_office',
|
||||
"should no longer contain out of office section on chat window");
|
||||
|
||||
timeoutMock.runPendingTimeouts();
|
||||
parent.destroy();
|
||||
});
|
||||
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -324,6 +324,7 @@ class MailComposer(models.TransientModel):
|
||||
'attachment_ids': [attach.id for attach in self.attachment_ids],
|
||||
'author_id': self.author_id.id,
|
||||
'email_from': self.email_from,
|
||||
'reply_to': self.reply_to,
|
||||
'record_name': self.record_name,
|
||||
'no_auto_thread': self.no_auto_thread,
|
||||
'mail_server_id': self.mail_server_id.id,
|
||||
|
||||
@@ -129,7 +129,7 @@ msgstr "Naposled změněno"
|
||||
#. module: mail_bot
|
||||
#: model:ir.model,name:mail_bot.model_mail_bot
|
||||
msgid "Mail Bot"
|
||||
msgstr ""
|
||||
msgstr "e-mailový robot"
|
||||
|
||||
#. module: mail_bot
|
||||
#: code:addons/mail_bot/models/mail_bot.py:45
|
||||
|
||||
@@ -154,12 +154,12 @@ msgstr ""
|
||||
#. module: maintenance
|
||||
#: model:ir.model.fields,field_description:maintenance.field_maintenance_equipment_category__alias_contact
|
||||
msgid "Alias Contact Security"
|
||||
msgstr ""
|
||||
msgstr "ការទំនាក់ទំនងដោយប្រុងប្រយ័ត្ន"
|
||||
|
||||
#. module: maintenance
|
||||
#: model:ir.model.fields,field_description:maintenance.field_maintenance_equipment_category__alias_name
|
||||
msgid "Alias Name"
|
||||
msgstr ""
|
||||
msgstr "ឈ្មោះក្លែក្លាយ"
|
||||
|
||||
#. module: maintenance
|
||||
#: model:ir.model.fields,field_description:maintenance.field_maintenance_equipment_category__alias_domain
|
||||
@@ -169,7 +169,7 @@ msgstr ""
|
||||
#. module: maintenance
|
||||
#: model:ir.model.fields,field_description:maintenance.field_maintenance_equipment_category__alias_model_id
|
||||
msgid "Aliased Model"
|
||||
msgstr ""
|
||||
msgstr "គំរូឈ្មោះក្លែងក្លាយ"
|
||||
|
||||
#. module: maintenance
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance.maintenance_team_kanban
|
||||
@@ -184,7 +184,7 @@ msgstr ""
|
||||
#. module: maintenance
|
||||
#: model:ir.model.fields,field_description:maintenance.field_maintenance_request__archive
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
msgstr "សម្រេចគោលដៅ"
|
||||
|
||||
#. module: maintenance
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance.hr_equipment_request_view_search
|
||||
@@ -565,7 +565,7 @@ msgstr "ID"
|
||||
msgid ""
|
||||
"ID of the parent record holding the alias (example: project holding the task"
|
||||
" creation alias)"
|
||||
msgstr ""
|
||||
msgstr "អត្ថសញ្ញាឯកសារអាណព្យាបាលដំកល់ដោយមិនមានភាពច្បាស់លាស់"
|
||||
|
||||
#. module: maintenance
|
||||
#: model:ir.model.fields,help:maintenance.field_maintenance_equipment__message_unread
|
||||
@@ -950,6 +950,9 @@ msgid ""
|
||||
"attached, even if they did not reply to it. If set, this will disable the "
|
||||
"creation of new records completely."
|
||||
msgstr ""
|
||||
"លេខសម្គាល់ស្រេចចិត្តនៃខ្សែស្រឡាយ (កំណត់ត្រា) "
|
||||
"ដែលសារទាំងអស់នឹងត្រូវបានភ្ជាប់ទោះបីជាពួកគេមិនឆ្លើយតបទៅវាក៏ដោយ។ "
|
||||
"ប្រសិនបើបានកំណត់វានឹងបិទការបង្កើតកំណត់ត្រាថ្មីទាំងស្រុង។"
|
||||
|
||||
#. module: maintenance
|
||||
#: model:ir.ui.menu,name:maintenance.menu_m_reports_oee
|
||||
@@ -1185,7 +1188,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance.hr_equipment_request_view_search
|
||||
#: model_terms:ir.ui.view,arch_db:maintenance.hr_equipment_view_search
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: maintenance
|
||||
#: model:maintenance.equipment.category,name:maintenance.equipment_software
|
||||
|
||||
@@ -770,7 +770,7 @@ msgstr ""
|
||||
#. module: mass_mailing
|
||||
#: model_terms:ir.ui.view,arch_db:mass_mailing.view_mail_mass_mailing_campaign_form
|
||||
msgid "Duplicate"
|
||||
msgstr ""
|
||||
msgstr "ត្រួត"
|
||||
|
||||
#. module: mass_mailing
|
||||
#: model_terms:ir.ui.view,arch_db:mass_mailing.view_mail_mass_mailing_list_kanban
|
||||
@@ -1162,7 +1162,7 @@ msgstr ""
|
||||
#: model:ir.model.fields,field_description:mass_mailing.field_mail_mass_mailing_list_contact_rel__list_id
|
||||
#: model:ir.model.fields,field_description:mass_mailing.field_survey_mail_compose_message__mailing_list_ids
|
||||
msgid "Mailing List"
|
||||
msgstr ""
|
||||
msgstr "តារាងសំបុត្រ"
|
||||
|
||||
#. module: mass_mailing
|
||||
#: model:ir.actions.act_window,name:mass_mailing.action_view_mass_mailing_contacts
|
||||
@@ -1685,7 +1685,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mass_mailing.view_mail_mass_mailing_form
|
||||
#: model_terms:ir.ui.view,arch_db:mass_mailing.view_mail_mass_mailing_list_form
|
||||
msgid "Recipients"
|
||||
msgstr ""
|
||||
msgstr "អ្នកទទួល"
|
||||
|
||||
#. module: mass_mailing
|
||||
#: model:ir.model.fields,field_description:mass_mailing.field_mail_mass_mailing__mailing_model_id
|
||||
|
||||
@@ -1326,7 +1326,7 @@ msgstr "Liên hệ gửi email hàng loạt"
|
||||
#: model:ir.model.fields,field_description:mass_mailing.field_mail_compose_message__mass_mailing_name
|
||||
#: model:ir.model.fields,field_description:mass_mailing.field_survey_mail_compose_message__mass_mailing_name
|
||||
msgid "Mass Mailing Name"
|
||||
msgstr ""
|
||||
msgstr "Tên gửi mail hàng loạt"
|
||||
|
||||
#. module: mass_mailing
|
||||
#: model:ir.model,name:mass_mailing.model_mass_mailing_schedule_date
|
||||
|
||||
@@ -3,15 +3,15 @@
|
||||
# * mass_mailing_crm
|
||||
#
|
||||
# Translators:
|
||||
# Mohammed Ibrahim <m.ibrahim@mussder.com>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 12.0\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-10-08 06:49+0000\n"
|
||||
"PO-Revision-Date: 2018-10-08 06:49+0000\n"
|
||||
"Last-Translator: Shaima Safar <shaima.safar@open-inside.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:20+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -22,35 +22,35 @@ msgstr ""
|
||||
#. module: mass_mailing_crm
|
||||
#: model:ir.model.fields,field_description:mass_mailing_crm.field_mail_mass_mailing__crm_lead_count
|
||||
msgid "Lead Count"
|
||||
msgstr ""
|
||||
msgstr "عدد الترشيحات"
|
||||
|
||||
#. module: mass_mailing_crm
|
||||
#: model:mail.mass_mailing,name:mass_mailing_crm.mass_mail_lead_0
|
||||
#: model:utm.source,name:mass_mailing_crm.mass_mail_lead_0_utm_source
|
||||
msgid "Lead Newsletter"
|
||||
msgstr ""
|
||||
msgstr "النشرة البريدية للترشيح"
|
||||
|
||||
#. module: mass_mailing_crm
|
||||
#: model_terms:ir.ui.view,arch_db:mass_mailing_crm.mail_mass_mailing_view_form
|
||||
msgid "Leads"
|
||||
msgstr "المرشحيين "
|
||||
msgstr "الترشيحات"
|
||||
|
||||
#. module: mass_mailing_crm
|
||||
#: model:ir.model,name:mass_mailing_crm.model_mail_mass_mailing
|
||||
msgid "Mass Mailing"
|
||||
msgstr "المراسلات"
|
||||
msgstr "المراسلات الجماعية"
|
||||
|
||||
#. module: mass_mailing_crm
|
||||
#: model_terms:ir.ui.view,arch_db:mass_mailing_crm.mail_mass_mailing_view_form
|
||||
msgid "Opportunities"
|
||||
msgstr "الفرص "
|
||||
msgstr "الفرص"
|
||||
|
||||
#. module: mass_mailing_crm
|
||||
#: model:ir.model.fields,field_description:mass_mailing_crm.field_mail_mass_mailing__crm_opportunities_count
|
||||
msgid "Opportunities Count"
|
||||
msgstr ""
|
||||
msgstr "عدد الفرص"
|
||||
|
||||
#. module: mass_mailing_crm
|
||||
#: model:ir.model.fields,field_description:mass_mailing_crm.field_mail_mass_mailing__crm_lead_activated
|
||||
msgid "Use Leads"
|
||||
msgstr ""
|
||||
msgstr "استخدام الترشيحات"
|
||||
|
||||
@@ -3,8 +3,7 @@
|
||||
# * mass_mailing_event
|
||||
#
|
||||
# Translators:
|
||||
# Martin Trigaux, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
@@ -12,7 +11,7 @@ msgstr ""
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-09-18 09:49+0000\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:20+0000\n"
|
||||
"Last-Translator: Shaima Safar <shaima.safar@open-inside.com>, 2018\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -23,14 +22,14 @@ msgstr ""
|
||||
#. module: mass_mailing_event
|
||||
#: model_terms:ir.ui.view,arch_db:mass_mailing_event.event_event_view_form_inherit_mass_mailing
|
||||
msgid "<span class=\"o_stat_text\">Mail Attendees</span>"
|
||||
msgstr ""
|
||||
msgstr "<span class=\"o_stat_text\">إرسال رسالة للحضور</span>"
|
||||
|
||||
#. module: mass_mailing_event
|
||||
#: model:ir.model,name:mass_mailing_event.model_event_event
|
||||
msgid "Event"
|
||||
msgstr "الحدث"
|
||||
msgstr "الفعالية"
|
||||
|
||||
#. module: mass_mailing_event
|
||||
#: model:ir.model,name:mass_mailing_event.model_mail_mass_mailing
|
||||
msgid "Mass Mailing"
|
||||
msgstr "المراسلات"
|
||||
msgstr "المراسلات الجماعية"
|
||||
|
||||
@@ -1636,7 +1636,7 @@ msgstr ""
|
||||
#. module: mrp
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.mrp_production_form_view
|
||||
msgid "Lock"
|
||||
msgstr ""
|
||||
msgstr "ចាក់សោរ"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model.fields,field_description:mrp.field_mrp_workcenter_productivity__loss_id
|
||||
@@ -1914,7 +1914,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.mrp_production_form_view
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.mrp_production_workorder_form_view_inherit
|
||||
msgid "Miscellaneous"
|
||||
msgstr ""
|
||||
msgstr "ផ្សេងៗ"
|
||||
|
||||
#. module: mrp
|
||||
#: model:ir.model.fields,field_description:mrp.field_mrp_product_produce_line__move_id
|
||||
@@ -2192,7 +2192,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.workcenter_line_pivot
|
||||
#, python-format
|
||||
msgid "Operations"
|
||||
msgstr ""
|
||||
msgstr "ប្រតិបត្តិការ"
|
||||
|
||||
#. module: mrp
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.report_mrporder
|
||||
@@ -2733,7 +2733,7 @@ msgstr ""
|
||||
#: code:addons/mrp/static/src/xml/mrp.xml:10
|
||||
#, python-format
|
||||
msgid "Quantity:"
|
||||
msgstr ""
|
||||
msgstr "បរិមាណ:"
|
||||
|
||||
#. module: mrp
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.view_mrp_production_filter
|
||||
@@ -3079,7 +3079,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.mrp_unbuild_search_view
|
||||
#: model_terms:ir.ui.view,arch_db:mrp.view_mrp_production_filter
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: mrp
|
||||
#: model:product.product,description:mrp.product_product_computer_desk_head
|
||||
|
||||
@@ -5,14 +5,15 @@
|
||||
# Translators:
|
||||
# Mohammed Albasha <m.albasha.ma@gmail.com>, 2018
|
||||
# Ghaith Gammar <g.gammar@saharaifs.net>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-10-02 10:06+0000\n"
|
||||
"PO-Revision-Date: 2018-10-02 10:06+0000\n"
|
||||
"Last-Translator: Shaima Safar <shaima.safar@open-inside.com>, 2018\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:21+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -27,7 +28,7 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_bom_cost.product_product_view_form_normal_inherit_extended
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_bom_cost.product_variant_easy_edit_view_bom_inherit
|
||||
msgid "Compute Price from BoM"
|
||||
msgstr ""
|
||||
msgstr "احتساب السعر من قائمة المواد"
|
||||
|
||||
#. module: mrp_bom_cost
|
||||
#: model_terms:ir.ui.view,arch_db:mrp_bom_cost.product_product_ext_form_view2
|
||||
@@ -37,8 +38,8 @@ msgid ""
|
||||
"Compute the price of the product using products and operations of related "
|
||||
"bill of materials, for manufactured products only."
|
||||
msgstr ""
|
||||
"يحسب سعر المنتج باستخدام المنتجات والعمليات المقترن بفاتورة المواد "
|
||||
"والمنتجات المصنعة فقط."
|
||||
"يحتسب سعر المنتج باستخدام المنتجات والعمليات في قائمة المواد ذات الصلة، "
|
||||
"للمنتجات المصنعة فقط."
|
||||
|
||||
#. module: mrp_bom_cost
|
||||
#: model:ir.model,name:mrp_bom_cost.model_product_product
|
||||
@@ -57,3 +58,5 @@ msgid ""
|
||||
"The inventory valuation of some products %s is automated. You can only "
|
||||
"update their cost from the product form."
|
||||
msgstr ""
|
||||
"تمت أتمتة تقييم المخزون لبعض المنتجات %s. لا يمكنك تحديث تكلفتهم إلا من خلال"
|
||||
" نموذج المنتج."
|
||||
|
||||
@@ -78,7 +78,7 @@ msgstr ""
|
||||
#. module: note
|
||||
#: model_terms:ir.ui.view,arch_db:note.view_note_note_filter
|
||||
msgid "Archive"
|
||||
msgstr ""
|
||||
msgstr "សម្រេចគោលដៅ"
|
||||
|
||||
#. module: note
|
||||
#: model:ir.model.fields,field_description:note.field_note_note__message_attachment_count
|
||||
@@ -433,7 +433,7 @@ msgstr ""
|
||||
#. module: note
|
||||
#: model_terms:ir.ui.view,arch_db:note.view_note_note_filter
|
||||
msgid "Show all records which has next action date is before today"
|
||||
msgstr ""
|
||||
msgstr "បង្ហាញកំណត់ត្រាទាំងអស់ដែលមានកាលបរិច្ឆេទសកម្មភាពបន្ទាប់នៅមុនថ្ងៃនេះ"
|
||||
|
||||
#. module: note
|
||||
#: model:ir.model.fields,field_description:note.field_note_note__stage_id
|
||||
|
||||
@@ -65,7 +65,7 @@ msgstr "កាលបរិច្ឆេតកែប្រែចុងក្រោ
|
||||
#: code:addons/pad/static/src/js/pad.js:147
|
||||
#, python-format
|
||||
msgid "Loading"
|
||||
msgstr ""
|
||||
msgstr "ដំណើរការ"
|
||||
|
||||
#. module: pad
|
||||
#: model:ir.model.fields,field_description:pad.field_res_company__pad_key
|
||||
|
||||
@@ -3,15 +3,16 @@
|
||||
# * pad_project
|
||||
#
|
||||
# Translators:
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2018
|
||||
# Shaima Safar <shaima.safar@open-inside.com>, 2018
|
||||
# Mustafa Rawi <mustafa@cubexco.com>, 2019
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server saas~11.2\n"
|
||||
"Project-Id-Version: Odoo Server saas~11.5\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2018-03-22 14:10+0000\n"
|
||||
"PO-Revision-Date: 2018-03-22 14:10+0000\n"
|
||||
"Last-Translator: Shaima Safar <shaima.safar@open-inside.com>, 2018\n"
|
||||
"POT-Creation-Date: 2018-09-18 09:49+0000\n"
|
||||
"PO-Revision-Date: 2018-08-24 09:21+0000\n"
|
||||
"Last-Translator: Mustafa Rawi <mustafa@cubexco.com>, 2019\n"
|
||||
"Language-Team: Arabic (https://www.transifex.com/odoo/teams/41243/ar/)\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=UTF-8\n"
|
||||
@@ -22,7 +23,7 @@ msgstr ""
|
||||
#. module: pad_project
|
||||
#: model:ir.model.fields,field_description:pad_project.field_project_task__description_pad
|
||||
msgid "Pad URL"
|
||||
msgstr ""
|
||||
msgstr "رابط باد"
|
||||
|
||||
#. module: pad_project
|
||||
#: model:ir.model,name:pad_project.model_project_project
|
||||
@@ -37,15 +38,15 @@ msgstr "المهمة"
|
||||
#. module: pad_project
|
||||
#: model:ir.model.fields,field_description:pad_project.field_project_task__use_pad
|
||||
msgid "Use collaborative pad"
|
||||
msgstr ""
|
||||
msgstr "استخدام منصات تعاونية"
|
||||
|
||||
#. module: pad_project
|
||||
#: model:ir.model.fields,help:pad_project.field_project_project__use_pads
|
||||
#: model:ir.model.fields,help:pad_project.field_project_task__use_pad
|
||||
msgid "Use collaborative pad for the tasks on this project."
|
||||
msgstr ""
|
||||
msgstr "استخدام منصات تعاونية لمهمات هذا المشروع."
|
||||
|
||||
#. module: pad_project
|
||||
#: model:ir.model.fields,field_description:pad_project.field_project_project__use_pads
|
||||
msgid "Use collaborative pads"
|
||||
msgstr ""
|
||||
msgstr "استخدام منصات تعاونية"
|
||||
|
||||
@@ -26,7 +26,7 @@ msgstr ""
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
msgid "(Time Now)"
|
||||
msgstr ""
|
||||
msgstr "(الوقت الآن)"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.res_config_settings_view_form
|
||||
@@ -34,6 +34,8 @@ msgid ""
|
||||
"<i class=\"fa fa-arrow-right\"/>\n"
|
||||
" Buy more credits"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-arrow-right\"/>\n"
|
||||
" شراء رصيد"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.res_config_settings_view_form
|
||||
@@ -41,6 +43,8 @@ msgid ""
|
||||
"<i class=\"fa fa-exclamation-triangle text-warning\"/> &nbsp; You don't "
|
||||
"have credits to auto-complete companies' data anymore."
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-exclamation-triangle text-warning\"/> &nbsp; لم تعد "
|
||||
"تملك رصيدًا كافيًا لإكمال بيانات المؤسسات تلقائيًا."
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -48,6 +52,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-building text-primary\"/>\n"
|
||||
" <b>Company type:</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-building text-primary\"/>\n"
|
||||
" <b>نوع المؤسسة:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -55,6 +61,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-calendar text-primary\"/>\n"
|
||||
" <b>Founded:</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-calendar text-primary\"/>\n"
|
||||
" <b>أُسست:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -62,6 +70,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-cube text-primary\"/>\n"
|
||||
" <b>Technology Used :</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-cube text-primary\"/>\n"
|
||||
" <b>التقنية المستخدمة:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -69,6 +79,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-envelope text-primary\"/>\n"
|
||||
" <b>Email :</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-envelope text-primary\"/>\n"
|
||||
" <b>البريد الإلكتروني:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -76,6 +88,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-globe text-primary\"/>\n"
|
||||
" <b>Timezone :</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-globe text-primary\"/>\n"
|
||||
" <b>المنطقة الزمنية:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -83,6 +97,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-industry text-primary\"/>\n"
|
||||
" <b>Sector:</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-industry text-primary\"/>\n"
|
||||
" <b>القطاع:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -90,6 +106,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-money text-primary\"/>\n"
|
||||
" <b>Annual revenue:</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-money text-primary\"/>\n"
|
||||
" <b>العائد السنوي:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -97,6 +115,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-money text-primary\"/>\n"
|
||||
" <b>Estimated annual revenue:</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-money text-primary\"/>\n"
|
||||
" <b>العائد السنوي المقدر:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -104,6 +124,8 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-phone text-primary\"/>\n"
|
||||
" <b>Phone :</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-phone text-primary\"/>\n"
|
||||
" <b>الهاتف:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
@@ -111,16 +133,18 @@ msgid ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-users text-primary\"/>\n"
|
||||
" <b>Employees:</b>"
|
||||
msgstr ""
|
||||
"<i class=\"fa fa-fw mr-2 fa-users text-primary\"/>\n"
|
||||
" <b>الموظفون:</b>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.res_config_settings_view_form
|
||||
msgid "<span>&times;</span>"
|
||||
msgstr ""
|
||||
msgstr "<span>أوقات</span>"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_partner__additional_info
|
||||
msgid "Additional info"
|
||||
msgstr ""
|
||||
msgstr "معلومات إضافية"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.res_config_settings_view_form
|
||||
@@ -136,7 +160,7 @@ msgstr "المؤسسات"
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_company__partner_gid
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_partner__partner_gid
|
||||
msgid "Company database ID"
|
||||
msgstr ""
|
||||
msgstr "معرف قاعدة بيانات المؤسسة"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model,name:partner_autocomplete.model_res_config_settings
|
||||
@@ -161,7 +185,7 @@ msgstr "أنشئ في"
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_partner_autocomplete_sync__display_name
|
||||
msgid "Display Name"
|
||||
msgstr "اسم العرض"
|
||||
msgstr "الاسم المعروض"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_partner_autocomplete_sync__id
|
||||
@@ -171,12 +195,12 @@ msgstr "المعرف"
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_config_settings__partner_autocomplete_insufficient_credit
|
||||
msgid "Insufficient credit"
|
||||
msgstr ""
|
||||
msgstr "رصيد غير كاف"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_partner_autocomplete_sync__synched
|
||||
msgid "Is synched"
|
||||
msgstr ""
|
||||
msgstr "متزامن"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model.fields,field_description:partner_autocomplete.field_res_partner_autocomplete_sync____last_update
|
||||
@@ -203,17 +227,17 @@ msgstr "الشريك"
|
||||
#: model:ir.cron,cron_name:partner_autocomplete.ir_cron_partner_autocomplete
|
||||
#: model:ir.cron,name:partner_autocomplete.ir_cron_partner_autocomplete
|
||||
msgid "Partner Autocomplete : Sync with remote DB"
|
||||
msgstr ""
|
||||
msgstr "إكمال الشريك تلقائيًا: المزامنة مع قاعدة بيانات بعيدة"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model:ir.model,name:partner_autocomplete.model_res_partner_autocomplete_sync
|
||||
msgid "Partner Autocomplete Sync"
|
||||
msgstr ""
|
||||
msgstr "مزامنة إكمال الشريك تلقائيًا"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
msgid "Partner created by Odoo Partner Autocomplete Service"
|
||||
msgstr ""
|
||||
msgstr "تم إنشاء الشريك من خلال خدمة إكمال الشريك تلقائيًا المقدمة من أودو"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#. openerp-web
|
||||
@@ -227,14 +251,14 @@ msgstr ""
|
||||
#: code:addons/partner_autocomplete/static/src/js/partner_autocomplete_many2one.js:22
|
||||
#, python-format
|
||||
msgid "Searching Autocomplete..."
|
||||
msgstr ""
|
||||
msgstr "البحث في الإكمال التلقائي..."
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
msgid "Twitter :"
|
||||
msgstr ""
|
||||
msgstr "تويتر:"
|
||||
|
||||
#. module: partner_autocomplete
|
||||
#: model_terms:ir.ui.view,arch_db:partner_autocomplete.additional_info_template
|
||||
msgid "followers)"
|
||||
msgstr ""
|
||||
msgstr "المتابعون)"
|
||||
|
||||
+20
-13
@@ -131,7 +131,7 @@ msgstr ""
|
||||
#. module: payment
|
||||
#: model_terms:ir.ui.view,arch_db:payment.view_partners_form_payment_defaultcreditcard
|
||||
msgid "<span class=\"o_stat_text\">Credit card(s)</span>"
|
||||
msgstr ""
|
||||
msgstr "<span class=\"o_stat_text\">Kreditní karta(y)</span>"
|
||||
|
||||
#. module: payment
|
||||
#: model_terms:ir.ui.view,arch_db:payment.acquirer_form
|
||||
@@ -248,7 +248,7 @@ msgstr ""
|
||||
#: code:addons/payment/models/account_payment.py:57
|
||||
#, python-format
|
||||
msgid "A token is required to create a new payment transaction."
|
||||
msgstr ""
|
||||
msgstr "K vytvoření nové platební transakce je vyžadován token."
|
||||
|
||||
#. module: payment
|
||||
#: code:addons/payment/models/payment_acquirer.py:657
|
||||
@@ -266,7 +266,7 @@ msgstr ""
|
||||
#: code:addons/payment/models/account_invoice.py:36
|
||||
#, python-format
|
||||
msgid "A transaction can't be linked to invoices having different currencies."
|
||||
msgstr ""
|
||||
msgstr "Transakci nelze propojit s fakturami s různými měnami."
|
||||
|
||||
#. module: payment
|
||||
#: code:addons/payment/models/account_invoice.py:41
|
||||
@@ -383,7 +383,7 @@ msgstr ""
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,field_description:payment.field_payment_acquirer__authorize_implemented
|
||||
msgid "Authorize Mechanism Supported"
|
||||
msgstr ""
|
||||
msgstr "Podporován mechanismus autorizace"
|
||||
|
||||
#. module: payment
|
||||
#: model:payment.acquirer,name:payment.payment_acquirer_authorize
|
||||
@@ -480,7 +480,7 @@ msgstr "Platbu nelze nastavit"
|
||||
#: code:addons/payment/controllers/portal.py:225
|
||||
#, python-format
|
||||
msgid "Cannot setup the payment."
|
||||
msgstr ""
|
||||
msgstr "Nelze nastavit platbu."
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,field_description:payment.field_payment_acquirer__capture_manually
|
||||
@@ -496,7 +496,7 @@ msgstr ""
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_acquirer__capture_manually
|
||||
msgid "Capture the amount from Odoo, when the delivery is completed."
|
||||
msgstr ""
|
||||
msgstr "Zachytit částku z Odoo, když je doručení dokončeno."
|
||||
|
||||
#. module: payment
|
||||
#: model_terms:ir.ui.view,arch_db:payment.payment_acquirer_onboarding_wizard_form
|
||||
@@ -507,7 +507,7 @@ msgstr ""
|
||||
#: model:ir.actions.act_window,name:payment.action_open_payment_onboarding_payment_acquirer_wizard
|
||||
#: model_terms:ir.ui.view,arch_db:payment.payment_acquirer_onboarding_wizard_form
|
||||
msgid "Choose a payment method"
|
||||
msgstr ""
|
||||
msgstr "Zvolte způsob platby"
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,field_description:payment.field_payment_transaction__partner_city
|
||||
@@ -688,7 +688,7 @@ msgstr "Hotovo"
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,field_description:payment.field_payment_acquirer__done_msg
|
||||
msgid "Done Message"
|
||||
msgstr ""
|
||||
msgstr "Zpráva o dokončení"
|
||||
|
||||
#. module: payment
|
||||
#: selection:payment.transaction,state:0
|
||||
@@ -818,6 +818,8 @@ msgid ""
|
||||
"If you leave it empty, the payment acquirer will be available for all the "
|
||||
"countries."
|
||||
msgstr ""
|
||||
"Pokud ji necháte prázdnou, bude příjemce platby k dispozici pro všechny "
|
||||
"země."
|
||||
|
||||
#. module: payment
|
||||
#. openerp-web
|
||||
@@ -939,12 +941,12 @@ msgstr ""
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_icon__acquirer_ids
|
||||
msgid "List of Acquirers supporting this payment icon."
|
||||
msgstr ""
|
||||
msgstr "Seznam příjemců podporujících tuto ikonu platby."
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_acquirer__website_published
|
||||
msgid "Make this payment acquirer available (Customer invoices, etc.)"
|
||||
msgstr ""
|
||||
msgstr "Zpřístupnit tohoto příjemce platby (faktury zákazníka atd.)"
|
||||
|
||||
#. module: payment
|
||||
#: model_terms:ir.ui.view,arch_db:payment.pay_methods
|
||||
@@ -973,6 +975,9 @@ msgid ""
|
||||
"Electronic: Get paid automatically through a payment acquirer by requesting a transaction on a card saved by the customer when buying or subscribing online (payment token).\n"
|
||||
"Batch Deposit: Encase several customer checks at once by generating a batch deposit to submit to your bank. When encoding the bank statement in Odoo,you are suggested to reconcile the transaction with the batch deposit. Enable this option from the settings."
|
||||
msgstr ""
|
||||
"Ruční: Zaplaťte v hotovosti, šekem nebo jinou metodou mimo Odoo.\n"
|
||||
"Elektronické: Platba automaticky probíhá prostřednictvím příjemce plateb žádostí o transakci na kartě uloženou zákazníkem při nákupu nebo objednání online (platební token).\n"
|
||||
"Dávkový vklad: Zapíše několik zákaznických šeků najednou vygenerováním dávkového vkladu, který odešle do banky. Při kódování výpisu z banky v Odoo vám doporučujeme transakci spárovat s vkladem dávky. Aktivujte tuto možnost z nastavení."
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,field_description:payment.field_payment_acquirer__image_medium
|
||||
@@ -1001,12 +1006,12 @@ msgstr ""
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_acquirer__pre_msg
|
||||
msgid "Message displayed to explain and help the payment process."
|
||||
msgstr ""
|
||||
msgstr "Zobrazí se zpráva, která vysvětluje a pomáhá platebnímu procesu."
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_acquirer__error_msg
|
||||
msgid "Message displayed, if error is occur during the payment process."
|
||||
msgstr ""
|
||||
msgstr "Zobrazí se zpráva, pokud během procesu platby dojde k chybě."
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_acquirer__cancel_msg
|
||||
@@ -1019,6 +1024,8 @@ msgid ""
|
||||
"Message displayed, if order is done successfully after having done the "
|
||||
"payment process."
|
||||
msgstr ""
|
||||
"Zobrazí se zpráva, pokud je po úspěšném provedení platby úspěšně provedena "
|
||||
"objednávka."
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_acquirer__pending_msg
|
||||
@@ -1056,7 +1063,7 @@ msgstr "Název"
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,help:payment.field_payment_token__name
|
||||
msgid "Name of the payment token"
|
||||
msgstr ""
|
||||
msgstr "Název tokenu platby"
|
||||
|
||||
#. module: payment
|
||||
#: selection:payment.acquirer,save_token:0
|
||||
|
||||
@@ -1247,6 +1247,9 @@ msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:payment.pay_methods
|
||||
msgid "Payment Methods"
|
||||
msgstr ""
|
||||
"វិធីទូទាត់លុយ\n"
|
||||
" \n"
|
||||
" "
|
||||
|
||||
#. module: payment
|
||||
#: model:ir.model,name:payment.model_payment_token
|
||||
|
||||
@@ -765,7 +765,7 @@ msgstr "Cố định phí quốc tế"
|
||||
#. module: payment
|
||||
#: model:ir.model.fields,field_description:payment.field_payment_acquirer__inbound_payment_method_ids
|
||||
msgid "For Incoming Payments"
|
||||
msgstr ""
|
||||
msgstr "Thanh toán doanh thu"
|
||||
|
||||
#. module: payment
|
||||
#: selection:payment.transaction,type:0
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user