[MERGE] forward port branch 11.0 up to c201cf2b77

This commit is contained in:
Christophe Simonis
2017-12-01 12:55:02 +01:00
173 changed files with 6756 additions and 3495 deletions
+5
View File
@@ -917,6 +917,11 @@ file_filter = addons/website_sale_digital/i18n/<lang>.po
source_file = addons/website_sale_digital/i18n/website_sale_digital.pot
source_lang = en
[odoo-11.website_sale_management]
file_filter = addons/website_sale_management/i18n/<lang>.po
source_file = addons/website_sale_management/i18n/website_sale_management.pot
source_lang = en
[odoo-11.website_sale_options]
file_filter = addons/website_sale_options/i18n/<lang>.po
source_file = addons/website_sale_options/i18n/website_sale_options.pot
+1 -1
View File
@@ -755,7 +755,7 @@ class AccountTaxGroup(models.Model):
class AccountTax(models.Model):
_name = 'account.tax'
_description = 'Tax'
_order = 'sequence'
_order = 'sequence,id'
@api.model
def _default_tax_group(self):
@@ -895,7 +895,7 @@ class AccountBankStatementLine(models.Model):
total = self.amount
for aml_rec in payment_aml_rec:
total -= aml_rec.debit - aml_rec.credit
aml_rec.write({'statement_line_id': self.id})
aml_rec.with_context(check_move_validity=False).write({'statement_line_id': self.id})
counterpart_moves = (counterpart_moves | aml_rec.move_id)
# Create move line(s). Either matching an existing journal entry (eg. invoice), in which
@@ -193,18 +193,19 @@ class account_journal(models.Model):
(number_draft, sum_draft) = self._count_results_and_sum_amounts(query_results_drafts, currency)
(number_late, sum_late) = self._count_results_and_sum_amounts(late_query_results, currency)
difference = currency.round(last_balance-account_sum) + 0.0
return {
'number_to_reconcile': number_to_reconcile,
'account_balance': formatLang(self.env, account_sum, currency_obj=self.currency_id or self.company_id.currency_id),
'last_balance': formatLang(self.env, last_balance, currency_obj=self.currency_id or self.company_id.currency_id),
'difference': (last_balance-account_sum) and formatLang(self.env, last_balance-account_sum, currency_obj=self.currency_id or self.company_id.currency_id) or False,
'account_balance': formatLang(self.env, currency.round(account_sum) + 0.0, currency_obj=currency),
'last_balance': formatLang(self.env, currency.round(last_balance) + 0.0, currency_obj=currency),
'difference': formatLang(self.env, difference, currency_obj=currency) if difference else False,
'number_draft': number_draft,
'number_waiting': number_waiting,
'number_late': number_late,
'sum_draft': formatLang(self.env, sum_draft or 0.0, currency_obj=self.currency_id or self.company_id.currency_id),
'sum_waiting': formatLang(self.env, sum_waiting or 0.0, currency_obj=self.currency_id or self.company_id.currency_id),
'sum_late': formatLang(self.env, sum_late or 0.0, currency_obj=self.currency_id or self.company_id.currency_id),
'currency_id': self.currency_id and self.currency_id.id or self.company_id.currency_id.id,
'sum_draft': formatLang(self.env, currency.round(sum_draft) + 0.0, currency_obj=currency),
'sum_waiting': formatLang(self.env, currency.round(sum_waiting) + 0.0, currency_obj=currency),
'sum_late': formatLang(self.env, currency.round(sum_late) + 0.0, currency_obj=currency),
'currency_id': currency.id,
'bank_statements_source': self.bank_statements_source,
'title': title,
}
+1 -2
View File
@@ -40,8 +40,7 @@ def migrate_tags_on_taxes(cr, registry):
('type_tax_use', '=', tax_template.type_tax_use),
('description', '=', tax_template.description)
])
if len(tax_id.ids) == 1:
tax_id.sudo().write({'tag_ids': [(6, 0, tax_template.tag_ids.ids)]})
tax_id.sudo().write({'tag_ids': [(6, 0, tax_template.tag_ids.ids)]})
def preserve_existing_tags_on_taxes(cr, registry, module):
''' This is a utility function used to preserve existing previous tags during upgrade of the module.'''
+11 -6
View File
@@ -297,10 +297,16 @@ class ResPartner(models.Model):
partner.total_invoiced = sum(price['total'] for price in price_totals if price['partner_id'] in child_ids)
@api.multi
def _journal_item_count(self):
def _compute_journal_item_count(self):
AccountMoveLine = self.env['account.move.line']
for partner in self:
partner.journal_item_count = self.env['account.move.line'].search_count([('partner_id', '=', partner.id)])
partner.contracts_count = self.env['account.analytic.account'].search_count([('partner_id', '=', partner.id)])
partner.journal_item_count = AccountMoveLine.search_count([('partner_id', '=', partner.id)])
@api.multi
def _compute_contracts_count(self):
AccountAnalyticAccount = self.env['account.analytic.account']
for partner in self:
partner.contracts_count = AccountAnalyticAccount.search_count([('partner_id', '=', partner.id)])
def get_followup_lines_domain(self, date, overdue_only=False, only_unblocked=False):
domain = [('reconciled', '=', False), ('account_id.deprecated', '=', False), ('account_id.internal_type', '=', 'receivable'), '|', ('debit', '!=', 0), ('credit', '!=', 0), ('company_id', '=', self.env.user.company_id.id)]
@@ -374,9 +380,8 @@ class ResPartner(models.Model):
groups='account.group_account_invoice')
currency_id = fields.Many2one('res.currency', compute='_get_company_currency', readonly=True,
string="Currency", help='Utility field to express amount currency')
contracts_count = fields.Integer(compute='_journal_item_count', string="Contracts", type='integer')
journal_item_count = fields.Integer(compute='_journal_item_count', string="Journal Items", type="integer")
contracts_count = fields.Integer(compute='_compute_contracts_count', string="Contracts", type='integer')
journal_item_count = fields.Integer(compute='_compute_journal_item_count', string="Journal Items", type="integer")
property_account_payable_id = fields.Many2one('account.account', company_dependent=True,
string="Account Payable", oldname="property_account_payable",
domain="[('internal_type', '=', 'payable'), ('deprecated', '=', False)]",
@@ -1,8 +1,6 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from ast import literal_eval
from odoo import api, fields, models, _
+21 -15
View File
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-02 11:26+0000\n"
"PO-Revision-Date: 2017-10-02 11:26+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -22,7 +22,7 @@ msgid " (copy)"
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:538
#: code:addons/account_asset/models/account_asset.py:540
#, python-format
msgid " (grouped)"
msgstr ""
@@ -76,7 +76,7 @@ msgstr ""
#. module: account_asset
#. openerp-web
#: code:addons/account_asset/static/src/js/account_asset.js:41
#: code:addons/account_asset/static/src/js/account_asset.js:52
#, python-format
msgid "Accounting entries waiting for manual verification"
msgstr ""
@@ -93,7 +93,7 @@ msgid "Additional Options"
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:595
#: code:addons/account_asset/models/account_asset.py:597
#, python-format
msgid "Amount"
msgstr ""
@@ -383,7 +383,7 @@ msgid "Cumulative Depreciation"
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:595
#: code:addons/account_asset/models/account_asset.py:597
#: model:ir.model.fields,field_description:account_asset.field_account_asset_asset_currency_id
#, python-format
msgid "Currency"
@@ -513,7 +513,7 @@ msgid "Depreciation board modified"
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:598
#: code:addons/account_asset/models/account_asset.py:600
#, python-format
msgid "Depreciation line posted."
msgstr ""
@@ -541,7 +541,7 @@ msgid "Disposal Moves"
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:577
#: code:addons/account_asset/models/account_asset.py:579
#, python-format
msgid "Document closed."
msgstr ""
@@ -773,7 +773,7 @@ msgid "One Entry Every"
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:597
#: code:addons/account_asset/models/account_asset.py:599
#: model:ir.model.fields,field_description:account_asset.field_account_asset_asset_partner_id
#: model:ir.model.fields,field_description:account_asset.field_asset_asset_report_partner_id
#, python-format
@@ -798,7 +798,7 @@ msgstr ""
#. module: account_asset
#. openerp-web
#: code:addons/account_asset/static/src/js/account_asset.js:38
#: code:addons/account_asset/static/src/js/account_asset.js:49
#: model:ir.model.fields,field_description:account_asset.field_account_asset_depreciation_line_move_posted_check
#: model:ir.model.fields,field_description:account_asset.field_asset_asset_report_move_check
#: model:ir.ui.view,arch_db:account_asset.view_asset_asset_report_search
@@ -948,11 +948,17 @@ msgid "The number of depreciations needed to depreciate your asset"
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_invoice.py:52
#: code:addons/account_asset/models/account_invoice.py:62
#, python-format
msgid "The number of depreciations or the period length of your asset category cannot be null."
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:482
#, python-format
msgid "This depreciation is already linked to a journal entry! Please post or delete it."
msgstr ""
#. module: account_asset
#: model:ir.ui.view,arch_db:account_asset.view_asset_depreciation_confirmation_wizard
msgid "This wizard will post installment/depreciation lines for the selected month.<br/>\n"
@@ -980,7 +986,7 @@ msgstr ""
#. module: account_asset
#. openerp-web
#: code:addons/account_asset/static/src/js/account_asset.js:44
#: code:addons/account_asset/static/src/js/account_asset.js:55
#, python-format
msgid "Unposted"
msgstr ""
@@ -1022,13 +1028,13 @@ msgid "You cannot delete a document that contains posted entries."
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:606
#: code:addons/account_asset/models/account_asset.py:608
#, python-format
msgid "You cannot delete posted depreciation lines."
msgstr ""
#. module: account_asset
#: code:addons/account_asset/models/account_asset.py:608
#: code:addons/account_asset/models/account_asset.py:610
#, python-format
msgid "You cannot delete posted installment lines."
msgstr ""
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -353,7 +353,7 @@ msgstr ""
#: model:ir.model.fields,help:account_bank_statement_import.field_account_bank_statement_import_journal_creation_inbound_payment_method_ids
msgid "Manual: Get paid by cash, check or any other method outside of Odoo.\n"
"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: Encash 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."
"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 ""
#. module: account_bank_statement_import
+13 -1
View File
@@ -71,7 +71,19 @@ class PaymentTransaction(models.Model):
_logger.warning('<%s> transaction STATE INCORRECT for invoice %s (ID %s, state %s)', self.acquirer_id.provider, self.account_invoice_id.number, self.account_invoice_id.id, self.account_invoice_id.state)
return 'pay_invoice_invalid_doc_state'
if not float_compare(self.amount, self.account_invoice_id.amount_total, 2) == 0:
_logger.warning('<%s> transaction AMOUNT MISMATCH for invoice %s (ID %s)', self.acquirer_id.provider, self.account_invoice_id.number, self.account_invoice_id.id)
_logger.warning(
'<%s> transaction AMOUNT MISMATCH for invoice %s (ID %s): expected %r, got %r',
self.acquirer_id.provider, self.account_invoice_id.number, self.account_invoice_id.id,
self.account_invoice_id.amount_total, self.amount,
)
self.account_invoice_id.message_post(
subject=_("Amount Mismatch (%s)") % self.acquirer_id.provider,
body=_("The invoice was not confirmed despite response from the acquirer (%s): invoice amount is %r but acquirer replied with %r.") % (
self.acquirer_id.provider,
self.account_invoice_id.amount_total,
self.amount,
)
)
return 'pay_invoice_tx_amount'
if self.state == 'authorized' and self.acquirer_id.capture_manually:
@@ -220,7 +220,7 @@ class IrModelFieldsAnonymizeWizard(models.TransientModel):
]
msg = '\n'.join(msgs) % (dirpath, abs_filepath)
with open(abs_filepath, 'r') as fn:
with open(abs_filepath, 'rb') as fn:
self.write({
'msg': msg,
'file_export': base64.encodestring(fn.read()),
@@ -266,10 +266,10 @@ class IrModelFieldsAnonymizeWizard(models.TransientModel):
# load the json/pickle file content into a data structure:
content = base64.decodestring(self.file_import)
try:
data = json.loads(content)
data = json.loads(content.decode('utf8'))
except Exception:
# backward-compatible mode
data = pickle.loads(content)
data = pickle.loads(content, encoding='utf8')
fixes = self.env['ir.model.fields.anonymization.migration.fix'].search_read([
('target_version', '=', '.'.join(str(v) for v in version_info[:2]))
+18 -18
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-08 09:11+0000\n"
"PO-Revision-Date: 2017-11-08 09:11+0000\n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -293,26 +293,26 @@ msgid "${object.event_id.name}: Date updated"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:703
#: code:addons/calendar/models/calendar.py:720
#, python-format
msgid "%s at %s To\n"
" %s at %s (%s)"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:694
#: code:addons/calendar/models/calendar.py:711
#, python-format
msgid "%s at (%s To %s) (%s)"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:208
#: code:addons/calendar/models/calendar.py:225
#, python-format
msgid "%s has accepted invitation"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:216
#: code:addons/calendar/models/calendar.py:233
#, python-format
msgid "%s has declined invitation"
msgstr ""
@@ -339,7 +339,7 @@ msgstr ""
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_mail_1
msgid "3 Hour(s), by email"
msgid "3 Hour(s), by e-mail"
msgstr ""
#. module: calendar
@@ -349,7 +349,7 @@ msgstr ""
#. module: calendar
#: model:calendar.alarm,name:calendar.alarm_mail_2
msgid "6 Hour(s), by email"
msgid "6 Hour(s), by e-mail"
msgstr ""
#. module: calendar
@@ -396,7 +396,7 @@ msgid "All Day"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:690
#: code:addons/calendar/models/calendar.py:707
#, python-format
msgid "AllDay , %s"
msgstr ""
@@ -435,7 +435,7 @@ msgid "Availability"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:1583
#: code:addons/calendar/models/calendar.py:1606
#: selection:calendar.attendee,availability:0
#: selection:calendar.event,show_as:0
#, python-format
@@ -654,13 +654,13 @@ msgid "Ending at"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:898
#: code:addons/calendar/models/calendar.py:915
#, python-format
msgid "Ending date cannot be set before starting date."
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:896
#: code:addons/calendar/models/calendar.py:913
#, python-format
msgid "Ending datetime cannot be set before starting datetime."
msgstr ""
@@ -681,7 +681,7 @@ msgid "Event alarm"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:1141
#: code:addons/calendar/models/calendar.py:1164
#, python-format
msgid "Event recurrence interval cannot be negative."
msgstr ""
@@ -708,7 +708,7 @@ msgid "First"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:938
#: code:addons/calendar/models/calendar.py:955
#, python-format
msgid "First you have to specify the date of the invitation."
msgstr ""
@@ -745,7 +745,7 @@ msgid "Group By"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:1526
#: code:addons/calendar/models/calendar.py:1549
#, python-format
msgid "Group by date is not supported, use the calendar view instead."
msgstr ""
@@ -1017,7 +1017,7 @@ msgid "Partner-related data of the user"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:1154
#: code:addons/calendar/models/calendar.py:1177
#, python-format
msgid "Please select a proper day of the month."
msgstr ""
@@ -1347,7 +1347,7 @@ msgid "Yes I'm going."
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:138
#: code:addons/calendar/models/calendar.py:155
#, python-format
msgid "You cannot duplicate a calendar attendee."
msgstr ""
@@ -1368,7 +1368,7 @@ msgid "e.g. Business Lunch"
msgstr ""
#. module: calendar
#: code:addons/calendar/models/calendar.py:1139
#: code:addons/calendar/models/calendar.py:1162
#, python-format
msgid "interval cannot be negative."
msgstr ""
+8 -4
View File
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-02 11:26+0000\n"
"PO-Revision-Date: 2017-10-02 11:26+0000\n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -607,8 +607,12 @@ msgid "Packing Operation"
msgstr ""
#. module: delivery
#: model:ir.model,name:delivery.model_stock_quant_package
#: model:ir.model.fields,field_description:delivery.field_choose_delivery_package_stock_quant_package_id
msgid "Physical Package"
msgstr ""
#. module: delivery
#: model:ir.model,name:delivery.model_stock_quant_package
msgid "Physical Packages"
msgstr ""
+1 -1
View File
@@ -42,7 +42,7 @@ class SaleOrderLine(models.Model):
registrations linked to this line. This method update existing registrations
and create new one for missing one. """
Registration = self.env['event.registration']
registrations = Registration.search([('sale_order_line_id', 'in', self.ids)])
registrations = Registration.search([('sale_order_line_id', 'in', self.ids), ('state', '!=', 'cancel')])
for so_line in self.filtered('event_id'):
existing_registrations = registrations.filtered(lambda self: self.sale_order_line_id.id == so_line.id)
if confirm:
+1 -1
View File
@@ -91,7 +91,7 @@ class GoogleDrive(models.Model):
request_url = "https://www.googleapis.com/drive/v2/files/%s?fields=parents/id&access_token=%s" % (template_id, access_token)
headers = {"Content-type": "application/x-www-form-urlencoded"}
try:
req = requests.post(request_url, headers=headers, timeout=TIMEOUT)
req = requests.get(request_url, headers=headers, timeout=TIMEOUT)
req.raise_for_status()
parents_dict = req.json()
except requests.HTTPError:
+7
View File
@@ -602,3 +602,10 @@ class HrExpenseSheet(models.Model):
employee_ids = self.expense_line_ids.mapped('employee_id')
if len(employee_ids) > 1 or (len(employee_ids) == 1 and employee_ids != self.employee_id):
raise ValidationError(_('You cannot add expense lines of another employee.'))
@api.one
@api.constrains('expense_line_ids')
def _check_payment_mode(self):
payment_mode = set(self.expense_line_ids.mapped('payment_mode'))
if len(payment_mode) > 1:
raise ValidationError(_('You cannot report expenses with different payment modes.'))
+10 -12
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 08:08+0000\n"
"PO-Revision-Date: 2017-11-16 08:08+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -228,7 +228,7 @@ msgstr ""
#. module: hr_payroll
#: model:ir.model.fields,field_description:hr_payroll.field_hr_payslip_line_category_id
#: model:ir.model.fields,field_description:hr_payroll.field_hr_salary_rule_category_id_7732
#: model:ir.model.fields,field_description:hr_payroll.field_hr_salary_rule_category_id_7804
#: model:ir.ui.view,arch_db:hr_payroll.view_hr_rule_filter
msgid "Category"
msgstr ""
@@ -953,7 +953,6 @@ msgid "Payslip 'Date From' must be before 'Date To'."
msgstr ""
#. module: hr_payroll
#: model:ir.model,name:hr_payroll.model_hr_payslip_run
#: model:ir.model.fields,field_description:hr_payroll.field_hr_payslip_payslip_run_id
#: model:ir.ui.view,arch_db:hr_payroll.hr_payslip_run_filter
msgid "Payslip Batches"
@@ -1001,6 +1000,11 @@ msgstr ""
msgid "Payslip Name"
msgstr ""
#. module: hr_payroll
#: model:ir.model,name:hr_payroll.model_hr_payslip_run
msgid "Payslip Run"
msgstr ""
#. module: hr_payroll
#: model:ir.model,name:hr_payroll.model_hr_payslip_worked_days
#: model:ir.model.fields,field_description:hr_payroll.field_hr_payslip_worked_days_line_ids
@@ -1205,7 +1209,7 @@ msgstr ""
#. module: hr_payroll
#: code:addons/hr_payroll/models/hr_payslip.py:396
#: code:addons/hr_payroll/models/hr_payslip.py:445
#: code:addons/hr_payroll/models/hr_payslip.py:446
#, python-format
msgid "Salary Slip of %s for %s"
msgstr ""
@@ -1225,12 +1229,6 @@ msgstr ""
msgid "Salary Structures"
msgstr ""
#. module: hr_payroll
#: model:ir.actions.act_window,name:hr_payroll.action_view_hr_payroll_structure_tree
#: model:ir.ui.menu,name:hr_payroll.menu_hr_payroll_structure_tree
msgid "Salary Structures Hierarchy"
msgstr ""
#. module: hr_payroll
#: model:ir.model.fields,field_description:hr_payroll.field_hr_contract_schedule_pay
msgid "Scheduled Pay"
@@ -1448,7 +1446,7 @@ msgid "You must select employee(s) to generate payslip(s)."
msgstr ""
#. module: hr_payroll
#: code:addons/hr_payroll/models/hr_payslip.py:516
#: code:addons/hr_payroll/models/hr_payslip.py:517
#, python-format
msgid "You must set a contract to create a payslip line."
msgstr ""
+8 -16
View File
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:54+0000\n"
"PO-Revision-Date: 2017-09-20 09:54+0000\n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -235,7 +235,6 @@ msgstr ""
#. module: im_livechat
#: model:ir.ui.view,arch_db:im_livechat.im_livechat_report_channel_view_search
#: model:ir.ui.view,arch_db:im_livechat.im_livechat_report_operator_view_search
msgid "Creation date (hour)"
msgstr ""
@@ -427,11 +426,6 @@ msgstr ""
msgid "Last Modified on"
msgstr ""
#. module: im_livechat
#: model:ir.model,name:im_livechat.model_mail_channel_partner
msgid "Last Seen Many2many"
msgstr ""
#. module: im_livechat
#: model:ir.model.fields,field_description:im_livechat.field_im_livechat_channel_rule_write_uid
#: model:ir.model.fields,field_description:im_livechat.field_im_livechat_channel_write_uid
@@ -460,6 +454,11 @@ msgstr ""
msgid "Leave Channel"
msgstr ""
#. module: im_livechat
#: model:ir.model,name:im_livechat.model_mail_channel_partner
msgid "Listeners of a Channel"
msgstr ""
#. module: im_livechat
#: model:ir.ui.menu,name:im_livechat.menu_livechat_root
msgid "Live Chat"
@@ -860,13 +859,6 @@ msgstr ""
msgid "e.g. YourWebsite.com"
msgstr ""
#. module: im_livechat
#. openerp-web
#: code:addons/im_livechat/static/src/xml/im_livechat_backend.xml:10
#, python-format
msgid "fa-comments"
msgstr ""
#. module: im_livechat
#: model:ir.model,name:im_livechat.model_ir_autovacuum
msgid "ir.autovacuum"
+2 -1
View File
@@ -46,7 +46,8 @@ class ResPartnerBank(models.Model):
for record in self:
if record.acc_type == 'iban':
record.l10n_ch_postal = record._retrieve_l10n_ch_postal(record.sanitized_acc_number)
record.l10n_ch_postal = record.sanitized_acc_number
else:
record.l10n_ch_postal = record.sanitized_acc_number
def _retrieve_l10n_ch_postal(self, iban):
""" Reads a swiss postal account number from a an IBAN and returns it as
+2
View File
@@ -9,6 +9,7 @@
# Hugo Santos <hugo.santos@factorlibre.com>
# Albert Cabedo <albert@gafic.com>
# Olivier Colson <oco@odoo.com>
# Roberto Lizana <robertolizana@trey.es>
{
"name" : "Spain - Accounting (PGCE 2008)",
@@ -35,6 +36,7 @@ Spanish charts of accounts (PGCE 2008).
"base_vat",
],
"data" : [
'data/account_group.xml',
'data/account_chart_template_data.xml',
'data/account_account_template_common_data.xml',
'data/account_account_template_pymes_data.xml',
@@ -8,6 +8,7 @@
<field name="name">Dotación fundacional</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_100" />
</record>
<record id="account_assoc_1030" model="account.account.template">
<field name="code">1030</field>
@@ -15,6 +16,7 @@
<field name="name">Fundadores, parte no desembolsada en fundaciones</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_103" />
</record>
<record id="account_assoc_1034" model="account.account.template">
<field name="code">1034</field>
@@ -22,6 +24,7 @@
<field name="name">Asociados, parte no desembolsada en asociaciones</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_103" />
</record>
<record id="account_assoc_1040" model="account.account.template">
<field name="code">1040</field>
@@ -29,6 +32,7 @@
<field name="name">Fundadores, por aportaciones no dinerarias pendientes, en fundaciones</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_104" />
</record>
<record id="account_assoc_1044" model="account.account.template">
<field name="code">1044</field>
@@ -36,6 +40,7 @@
<field name="name">Asociados, por aportaciones no dinerarias pendientes, en asociaciones</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_104" />
</record>
<record id="account_assoc_120" model="account.account.template">
<field name="code">120</field>
@@ -43,6 +48,7 @@
<field name="name">Remanente</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_120" />
</record>
<record id="account_assoc_121" model="account.account.template">
<field name="code">121</field>
@@ -50,6 +56,7 @@
<field name="name">Resultados negativos de ejercicios anteriores</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_121" />
</record>
<record id="account_assoc_129" model="account.account.template">
<field name="code">129</field>
@@ -57,6 +64,7 @@
<field name="name">Resultado del ejercicio</field>
<field name="user_type_id" ref="account.data_unaffected_earnings"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_129" />
</record>
<record id="account_assoc_1300" model="account.account.template">
<field name="code">1300</field>
@@ -64,6 +72,7 @@
<field name="name">Subvenciones del Estado</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_130" />
</record>
<record id="account_assoc_1301" model="account.account.template">
<field name="code">1301</field>
@@ -71,6 +80,7 @@
<field name="name">Subvenciones de otras Administraciones Públicas</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_130" />
</record>
<record id="account_assoc_1320" model="account.account.template">
<field name="code">1320</field>
@@ -78,6 +88,7 @@
<field name="name">Otras subvenciones</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_132" />
</record>
<record id="account_assoc_1321" model="account.account.template">
<field name="code">1321</field>
@@ -85,6 +96,7 @@
<field name="name">Otras donaciones y legados</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_132" />
</record>
<record id="account_assoc_207" model="account.account.template">
<field name="code">207</field>
@@ -92,6 +104,7 @@
<field name="name">Derechos sobre activos cedidos en uso</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_207" />
</record>
<record id="account_assoc_2400" model="account.account.template">
<field name="code">2400</field>
@@ -99,6 +112,7 @@
<field name="name">Monumentos</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_assoc_2401" model="account.account.template">
<field name="code">2401</field>
@@ -106,6 +120,7 @@
<field name="name">Jardines históricos</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_assoc_2402" model="account.account.template">
<field name="code">2402</field>
@@ -113,6 +128,7 @@
<field name="name">Conjuntos históricos</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_assoc_2403" model="account.account.template">
<field name="code">2403</field>
@@ -120,6 +136,7 @@
<field name="name">Sitios históricos</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_assoc_2404" model="account.account.template">
<field name="code">2404</field>
@@ -127,6 +144,7 @@
<field name="name">Zonas arqueológicas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_assoc_2490" model="account.account.template">
<field name="code">2490</field>
@@ -134,6 +152,7 @@
<field name="name">Anticipos sobre bienes inmuebles del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_assoc_2491" model="account.account.template">
<field name="code">2491</field>
@@ -141,6 +160,7 @@
<field name="name">Anticipos sobre archivos del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_assoc_2492" model="account.account.template">
<field name="code">2492</field>
@@ -148,6 +168,7 @@
<field name="name">Anticipos sobre bibliotecas del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_assoc_2493" model="account.account.template">
<field name="code">2493</field>
@@ -155,6 +176,7 @@
<field name="name">Anticipos sobre museos del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_assoc_2494" model="account.account.template">
<field name="code">2494</field>
@@ -162,6 +184,7 @@
<field name="name">Anticipos sobre bienes muebles del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_assoc_2807" model="account.account.template">
<field name="code">2807</field>
@@ -169,6 +192,7 @@
<field name="name">Amortización acumulada de derechos sobre activos cedidos en uso</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_280" />
</record>
<record id="account_assoc_2830" model="account.account.template">
<field name="code">2830</field>
@@ -176,6 +200,7 @@
<field name="name">Cesiones de uso del inmovilizado intangible</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_283" />
</record>
<record id="account_assoc_2831" model="account.account.template">
<field name="code">2831</field>
@@ -183,6 +208,7 @@
<field name="name">Cesiones de uso del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_283" />
</record>
<record id="account_assoc_2907" model="account.account.template">
<field name="code">2907</field>
@@ -190,6 +216,7 @@
<field name="name">Deterioro del valor sobre activos cedidos en uso</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_290" />
</record>
<record id="account_assoc_2935" model="account.account.template">
<field name="code">2935</field>
@@ -197,6 +224,7 @@
<field name="name">Deterioro de valor de participaciones a largo plazo en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_293" />
</record>
<record id="account_assoc_296" model="account.account.template">
<field name="code">296</field>
@@ -204,6 +232,7 @@
<field name="name">Deterioro de valor de participaciones en el patrimonio neto a largo plazo</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_296" />
</record>
<record id="account_assoc_2990" model="account.account.template">
<field name="code">2990</field>
@@ -211,6 +240,7 @@
<field name="name">Deterioro de valor de bienes del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_299" />
</record>
<record id="account_assoc_2991" model="account.account.template">
<field name="code">2991</field>
@@ -218,6 +248,7 @@
<field name="name">Deterioro de valor de archivos</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_299" />
</record>
<record id="account_assoc_2992" model="account.account.template">
<field name="code">2992</field>
@@ -225,6 +256,7 @@
<field name="name">Deterioro de valor de bibliotecas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_299" />
</record>
<record id="account_assoc_2993" model="account.account.template">
<field name="code">2993</field>
@@ -232,6 +264,7 @@
<field name="name">Deterioro de valor de Museos</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_299" />
</record>
<record id="account_assoc_2994" model="account.account.template">
<field name="code">2994</field>
@@ -239,6 +272,7 @@
<field name="name">Deterioro de valor de bienes muebles</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_299" />
</record>
<record id="account_assoc_412" model="account.account.template">
<field name="code">412</field>
@@ -246,6 +280,7 @@
<field name="name">Beneficiarios, acreedores</field>
<field name="user_type_id" ref="account.data_account_type_payable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_412" />
</record>
<record id="account_assoc_447" model="account.account.template">
<field name="code">447</field>
@@ -253,6 +288,7 @@
<field name="name">Usuarios, deudores</field>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_447" />
</record>
<record id="account_assoc_4480" model="account.account.template">
<field name="code">4480</field>
@@ -260,6 +296,7 @@
<field name="name">Patrocinadores</field>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_448" />
</record>
<record id="account_assoc_4482" model="account.account.template">
<field name="code">4482</field>
@@ -267,6 +304,7 @@
<field name="name">Afiliados</field>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_448" />
</record>
<record id="account_assoc_4489" model="account.account.template">
<field name="code">4489</field>
@@ -274,6 +312,7 @@
<field name="name">Otros deudores</field>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_448" />
</record>
<record id="account_assoc_464" model="account.account.template">
<field name="code">464</field>
@@ -281,6 +320,7 @@
<field name="name">Entregas para gastos a justificar</field>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_464" />
</record>
<record id="account_assoc_4707" model="account.account.template">
<field name="code">4707</field>
@@ -288,6 +328,7 @@
<field name="name">Hacienda Pública, deudora por colaboración en la entrega y distribución de subvenciones (art.12 Ley de Subvenciones)</field>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_470" />
</record>
<record id="account_assoc_4757" model="account.account.template">
<field name="code">4757</field>
@@ -295,6 +336,7 @@
<field name="name">Hacienda Pública, acreedora por subvenciones recibidas en concepto de entidad colaboradora (art.12 Ley de Subvencioens)</field>
<field name="user_type_id" ref="account.data_account_type_receivable"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_475" />
</record>
<record id="account_assoc_490" model="account.account.template">
<field name="code">490</field>
@@ -302,6 +344,7 @@
<field name="name">Deterioro de valor de créditos por operaciones de la actividad</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_490" />
</record>
<record id="account_assoc_551" model="account.account.template">
<field name="code">551</field>
@@ -309,6 +352,7 @@
<field name="name">Cuenta corriente con patronos y otros</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_551" />
</record>
<record id="account_assoc_5935" model="account.account.template">
<field name="code">5935</field>
@@ -316,6 +360,7 @@
<field name="name">Deterioro de valor de participaciones a corto plazo en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_593" />
</record>
<record id="account_assoc_596" model="account.account.template">
<field name="code">596</field>
@@ -323,6 +368,7 @@
<field name="name">Deterioro de valor de participaciones a corto plazo</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_596" />
</record>
<record id="account_assoc_6501" model="account.account.template">
<field name="code">6501</field>
@@ -330,6 +376,7 @@
<field name="name">Ayudas monetarias individuales</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_650" />
</record>
<record id="account_assoc_6502" model="account.account.template">
<field name="code">6502</field>
@@ -337,6 +384,7 @@
<field name="name">Ayudas monetarias a entidades</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_650" />
</record>
<record id="account_assoc_6503" model="account.account.template">
<field name="code">6503</field>
@@ -344,6 +392,7 @@
<field name="name">Ayudas monetarias realizadas a través de otras entidades o centros</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_650" />
</record>
<record id="account_assoc_6504" model="account.account.template">
<field name="code">6504</field>
@@ -351,6 +400,7 @@
<field name="name">Ayudas monetarias de cooperación internacional</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_650" />
</record>
<record id="account_assoc_6510" model="account.account.template">
<field name="code">6510</field>
@@ -358,6 +408,7 @@
<field name="name">Beneficio transferido (gestor)</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_assoc_6511" model="account.account.template">
<field name="code">6511</field>
@@ -365,6 +416,7 @@
<field name="name">Ayudas no monetarias individuales</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_assoc_6512" model="account.account.template">
<field name="code">6512</field>
@@ -372,6 +424,7 @@
<field name="name">Ayudas no monetarias a entidades</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_assoc_6513" model="account.account.template">
<field name="code">6513</field>
@@ -379,6 +432,7 @@
<field name="name">Ayudas no monetarias realizadas a través de otras entidades o centros</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_assoc_6514" model="account.account.template">
<field name="code">6514</field>
@@ -386,6 +440,7 @@
<field name="name">Ayudas no monetarias de cooperación internacional</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_assoc_653" model="account.account.template">
<field name="code">653</field>
@@ -393,6 +448,7 @@
<field name="name">Compensación de gastos por prestaciones de colaboración</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_653" />
</record>
<record id="account_assoc_654" model="account.account.template">
<field name="code">654</field>
@@ -400,6 +456,7 @@
<field name="name">Reembolsos de gastos al órgano de gobierno</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_654" />
</record>
<record id="account_assoc_655" model="account.account.template">
<field name="code">655</field>
@@ -407,6 +464,7 @@
<field name="name">Pérdidas de créditos derivados de la actividad incobrables</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_655" />
</record>
<record id="account_assoc_6560" model="account.account.template">
<field name="code">6560</field>
@@ -414,6 +472,7 @@
<field name="name">Beneficio transferido (gestor)</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_656" />
</record>
<record id="account_assoc_6561" model="account.account.template">
<field name="code">6561</field>
@@ -421,6 +480,7 @@
<field name="name">Pérdida soportada(partícipe o asociado no gestor)</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_656" />
</record>
<record id="account_assoc_658" model="account.account.template">
<field name="code">658</field>
@@ -428,6 +488,7 @@
<field name="name">Reintegro de subvenciones, donaciones y legados recibidos, afectos a la actividad propia de la entidad </field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_658" />
</record>
<record id="account_assoc_663" model="account.account.template">
<field name="code">663</field>
@@ -435,6 +496,7 @@
<field name="name">Pérdidas por valoración de instrumentos financieros por su valor razonable</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_663" />
</record>
<record id="account_assoc_6710" model="account.account.template">
<field name="code">6710</field>
@@ -442,6 +504,7 @@
<field name="name">Pérdidas procedentes del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_671" />
</record>
<record id="account_assoc_6711" model="account.account.template">
<field name="code">6711</field>
@@ -449,6 +512,7 @@
<field name="name">Pérdidas procedentes de bienes del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_671" />
</record>
<record id="account_assoc_6910" model="account.account.template">
<field name="code">6910</field>
@@ -456,6 +520,7 @@
<field name="name">Pérdidas por deterioro del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_691" />
</record>
<record id="account_assoc_6911" model="account.account.template">
<field name="code">6911</field>
@@ -463,6 +528,7 @@
<field name="name">Pérdidas por deterioro de bienes del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_691" />
</record>
<record id="account_assoc_694" model="account.account.template">
<field name="code">694</field>
@@ -470,6 +536,7 @@
<field name="name">Pérdidas por deterioro de créditos por operaciones de la actividad</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_694" />
</record>
<record id="account_assoc_720" model="account.account.template">
<field name="code">720</field>
@@ -477,6 +544,7 @@
<field name="name">Cuotas de asociados y afiliados</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_720" />
</record>
<record id="account_assoc_721" model="account.account.template">
<field name="code">721</field>
@@ -484,6 +552,7 @@
<field name="name">Cuotas de usuarios</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_721" />
</record>
<record id="account_assoc_722" model="account.account.template">
<field name="code">722</field>
@@ -491,6 +560,7 @@
<field name="name">Promociones de captación de recursos</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_722" />
</record>
<record id="account_assoc_7230" model="account.account.template">
<field name="code">7230</field>
@@ -498,6 +568,7 @@
<field name="name">Patrocinio</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_723" />
</record>
<record id="account_assoc_7231" model="account.account.template">
<field name="code">7231</field>
@@ -505,6 +576,7 @@
<field name="name">Patrocinio publicitario</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_723" />
</record>
<record id="account_assoc_7233" model="account.account.template">
<field name="code">7233</field>
@@ -512,6 +584,7 @@
<field name="name">Colaboraciones empresariales</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_723" />
</record>
<record id="account_assoc_728" model="account.account.template">
<field name="code">728</field>
@@ -519,6 +592,7 @@
<field name="name">Ingresos por reintegro de ayudas y asignaciones</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_728" />
</record>
<record id="account_assoc_763" model="account.account.template">
<field name="code">763</field>
@@ -526,6 +600,7 @@
<field name="name">Beneficios por valoración de instrumentos financieros por su valor razonable</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_763" />
</record>
<record id="account_assoc_791" model="account.account.template">
<field name="code">791</field>
@@ -533,6 +608,7 @@
<field name="name">Reversión del deterioro del inmovilizado material y de bienes del Patrimonio Histórico</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_791" />
</record>
<record id="account_assoc_794" model="account.account.template">
<field name="code">794</field>
@@ -540,6 +616,7 @@
<field name="name">Reversión del deterioro de créditos por operaciones de la actividad</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_794" />
</record>
<record id="account_assoc_7962" model="account.account.template">
<field name="code">7962</field>
@@ -547,6 +624,7 @@
<field name="name">Reversión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo, otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_796" />
</record>
<record id="account_assoc_7963" model="account.account.template">
<field name="code">7963</field>
@@ -554,6 +632,7 @@
<field name="name">Reversión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo, otras empresas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_assoc"/>
<field name="group_id" ref="l10n_es.account_group_796" />
</record>
</data>
File diff suppressed because it is too large Load Diff
@@ -8,6 +8,7 @@
<field name="name">Capital social</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_100" />
</record>
<record id="account_full_1030" model="account.account.template">
<field name="code">1030</field>
@@ -15,6 +16,7 @@
<field name="name">Socios por desembolsos no exigidos, capital social</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_103" />
</record>
<record id="account_full_1034" model="account.account.template">
<field name="code">1034</field>
@@ -22,6 +24,7 @@
<field name="name">Socios por desembolsos no exigidos, capital pendiente de inscripción</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_103" />
</record>
<record id="account_full_1040" model="account.account.template">
<field name="code">1040</field>
@@ -29,6 +32,7 @@
<field name="name">Socios por aportaciones no dinerarias pendientes, capital social</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_104" />
</record>
<record id="account_full_1044" model="account.account.template">
<field name="code">1044</field>
@@ -36,6 +40,7 @@
<field name="name">Socios por aportaciones no dinerarias pendientes, capital pendiente de inscripción</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_104" />
</record>
<record id="account_full_1110" model="account.account.template">
<field name="code">1110</field>
@@ -43,6 +48,7 @@
<field name="name">Patrimonio neto por emision de instrumentos financieros compuestos</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_111" />
</record>
<record id="account_full_1111" model="account.account.template">
<field name="code">111100</field>
@@ -50,6 +56,7 @@
<field name="name">Resto de instrumentos de patrimonio neto</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_111" />
</record>
<record id="account_full_1143" model="account.account.template">
<field name="code">1143</field>
@@ -57,6 +64,7 @@
<field name="name">Reserva por fondo de comercio</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_114" />
</record>
<record id="account_full_115" model="account.account.template">
<field name="code">115</field>
@@ -64,6 +72,7 @@
<field name="name">Reservas por pérdidas y ganancias actuariales y otros ajustes</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_115" />
</record>
<record id="account_full_120" model="account.account.template">
<field name="code">120</field>
@@ -71,6 +80,7 @@
<field name="name">Remanente</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_120" />
</record>
<record id="account_full_121" model="account.account.template">
<field name="code">121</field>
@@ -78,6 +88,7 @@
<field name="name">Resultados negativos de ejercicios anteriores</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_121" />
</record>
<record id="account_full_129" model="account.account.template">
<field name="code">129</field>
@@ -85,6 +96,7 @@
<field name="name">Resultado del ejercicio</field>
<field name="user_type_id" ref="account.data_unaffected_earnings"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_129" />
</record>
<record id="account_full_130" model="account.account.template">
<field name="code">130</field>
@@ -92,6 +104,7 @@
<field name="name">Subvenciones oficiales de capital</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_130" />
</record>
<record id="account_full_132" model="account.account.template">
<field name="code">132</field>
@@ -99,6 +112,7 @@
<field name="name">Otras subvenciones, donaciones y legados</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_132" />
</record>
<record id="account_full_133" model="account.account.template">
<field name="code">133</field>
@@ -106,6 +120,7 @@
<field name="name">Ajustes por valoración en activos financieros disponibles para la venta</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_133" />
</record>
<record id="account_full_1340" model="account.account.template">
<field name="code">1340</field>
@@ -113,6 +128,7 @@
<field name="name">Cobertura de flujos de efectivo</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_134" />
</record>
<record id="account_full_1341" model="account.account.template">
<field name="code">1341</field>
@@ -120,6 +136,7 @@
<field name="name">Cobertura de una inversión neta en un negocio en el extranjero</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_134" />
</record>
<record id="account_full_135" model="account.account.template">
<field name="code">135</field>
@@ -127,6 +144,7 @@
<field name="name">Diferencias de conversión</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_135" />
</record>
<record id="account_full_136" model="account.account.template">
<field name="code">136</field>
@@ -134,6 +152,7 @@
<field name="name">Ajustes por valoración de activos no corrientes y grupos enajenables de elementos, mantenidos para la venta</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_136" />
</record>
<record id="account_full_140" model="account.account.template">
<field name="code">140</field>
@@ -141,6 +160,7 @@
<field name="name">Provisión por retribuciones del personal</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_140" />
</record>
<record id="account_full_146" model="account.account.template">
<field name="code">146</field>
@@ -148,6 +168,7 @@
<field name="name">Provisión para reestructuraciones</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_146" />
</record>
<record id="account_full_147" model="account.account.template">
<field name="code">147</field>
@@ -155,6 +176,7 @@
<field name="name">Provisión por transacciones con pagos basados en instrumentos de patrimonio</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_147" />
</record>
<record id="account_full_1765" model="account.account.template">
<field name="code">1765</field>
@@ -162,6 +184,7 @@
<field name="name">Pasivos por derivados financieros, carter de negociación</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_176" />
</record>
<record id="account_full_1768" model="account.account.template">
<field name="code">1768</field>
@@ -169,6 +192,7 @@
<field name="name">Pasivos por derivados financieros, instrumentos de cobertura</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_176" />
</record>
<record id="account_full_178" model="account.account.template">
<field name="code">178</field>
@@ -176,6 +200,7 @@
<field name="name">Obligaciones y bonos convertibles</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_178" />
</record>
<record id="account_full_189" model="account.account.template">
<field name="code">189</field>
@@ -183,6 +208,7 @@
<field name="name">Garantías financieras</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_189" />
</record>
<record id="account_full_204" model="account.account.template">
<field name="code">204</field>
@@ -190,6 +216,7 @@
<field name="name">Fondo de comercio</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_204" />
</record>
<record id="account_full_2403" model="account.account.template">
<field name="code">2403</field>
@@ -197,6 +224,7 @@
<field name="name">Participaciones en empresas del grupo</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_full_2404" model="account.account.template">
<field name="code">2404</field>
@@ -204,6 +232,7 @@
<field name="name">Participaciones en empresas asociadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_full_2405" model="account.account.template">
<field name="code">2405</field>
@@ -211,6 +240,7 @@
<field name="name">Participaciones en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_full_2493" model="account.account.template">
<field name="code">2493</field>
@@ -218,6 +248,7 @@
<field name="name">Desembolsos pendientes sobre participaciones en empresas del grupo</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_full_2494" model="account.account.template">
<field name="code">2494</field>
@@ -225,6 +256,7 @@
<field name="name">Desembolsos pendientes sobre participaciones en empresas asociadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_full_2495" model="account.account.template">
<field name="code">2495</field>
@@ -232,6 +264,7 @@
<field name="name">Desembolsos pendientes sobre participaciones en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_full_2550" model="account.account.template">
<field name="code">2550</field>
@@ -239,6 +272,7 @@
<field name="name">Activos por derivados financieros, cartera de negociación</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_255" />
</record>
<record id="account_full_2553" model="account.account.template">
<field name="code">2553</field>
@@ -246,6 +280,7 @@
<field name="name">Activos por derivados financieros, instrumentos de cobertura</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_255" />
</record>
<record id="account_full_257" model="account.account.template">
<field name="code">257</field>
@@ -253,6 +288,7 @@
<field name="name">Derechos de reembolso derivados de contratos de seguro relativos a retribuciones al personal</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_257" />
</record>
<record id="account_full_466" model="account.account.template">
<field name="code">466</field>
@@ -260,6 +296,7 @@
<field name="name">Remuneraciones mediante sistemas de aportación definida pendientes de pago</field>
<field name="user_type_id" ref="account.data_account_type_payable"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_466" />
</record>
<record id="account_full_490" model="account.account.template">
<field name="code">490</field>
@@ -267,6 +304,7 @@
<field name="name">Deterioro de valor de créditos por operaciones comerciales</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_490" />
</record>
<record id="account_full_501" model="account.account.template">
<field name="code">501</field>
@@ -274,6 +312,7 @@
<field name="name">Obligaciones y bonos convertibles a corto plazo</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_501" />
</record>
<record id="account_full_5091" model="account.account.template">
<field name="code">5091</field>
@@ -281,6 +320,7 @@
<field name="name">Obligaciones y bonos convertibles amortizados</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_509" />
</record>
<record id="account_full_5296" model="account.account.template">
<field name="code">5296</field>
@@ -288,6 +328,7 @@
<field name="name">Provisión a corto plazo para reestructuraciones de patrimonio</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_529" />
</record>
<record id="account_full_5297" model="account.account.template">
<field name="code">5297</field>
@@ -295,6 +336,7 @@
<field name="name">Provisión a corto plazo por transacciones con pagos basados en instrumentos</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_529" />
</record>
<record id="account_full_551" model="account.account.template">
<field name="code">551</field>
@@ -302,6 +344,7 @@
<field name="name">Cuenta corriente con socios y administradores</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_551" />
</record>
<record id="account_full_5530" model="account.account.template">
<field name="code">5530</field>
@@ -309,6 +352,7 @@
<field name="name">Socios de sociedad disuelta</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_553" />
</record>
<record id="account_full_5531" model="account.account.template">
<field name="code">5531</field>
@@ -316,6 +360,7 @@
<field name="name">Socios, cuenta de fusión</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_553" />
</record>
<record id="account_full_5532" model="account.account.template">
<field name="code">5532</field>
@@ -323,6 +368,7 @@
<field name="name">Socios de sociedad escindida</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_553" />
</record>
<record id="account_full_5533" model="account.account.template">
<field name="code">5533</field>
@@ -330,6 +376,7 @@
<field name="name">Socios, cuenta de escisión</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_553" />
</record>
<record id="account_full_5593" model="account.account.template">
<field name="code">5593</field>
@@ -337,6 +384,7 @@
<field name="name">Activos por derivados financieros a corto plazo, instrumentos de cobertura</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_559" />
</record>
<record id="account_full_5598" model="account.account.template">
<field name="code">5598</field>
@@ -344,6 +392,7 @@
<field name="name">Pasivos por derivados financieros a corto plazo, instrumentos de cobertura</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_559" />
</record>
<record id="account_full_569" model="account.account.template">
<field name="code">569</field>
@@ -351,6 +400,7 @@
<field name="name">Garantías financieras a corto plazo</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_569" />
</record>
<record id="account_full_580" model="account.account.template">
<field name="code">580</field>
@@ -358,6 +408,7 @@
<field name="name">Inmovilizado</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_580" />
</record>
<record id="account_full_581" model="account.account.template">
<field name="code">581</field>
@@ -365,6 +416,7 @@
<field name="name">Inversiones con personas y entidades vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_581" />
</record>
<record id="account_full_582" model="account.account.template">
<field name="code">582</field>
@@ -372,6 +424,7 @@
<field name="name">Inversiones financieras</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_582" />
</record>
<record id="account_full_583" model="account.account.template">
<field name="code">583</field>
@@ -379,6 +432,7 @@
<field name="name">Existencias, deudores comerciales y otras cuentas a cobrar</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_583" />
</record>
<record id="account_full_584" model="account.account.template">
<field name="code">584</field>
@@ -386,6 +440,7 @@
<field name="name">Otros activos</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_584" />
</record>
<record id="account_full_585" model="account.account.template">
<field name="code">585</field>
@@ -393,6 +448,7 @@
<field name="name">Provisiones</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_585" />
</record>
<record id="account_full_586" model="account.account.template">
<field name="code">586</field>
@@ -400,6 +456,7 @@
<field name="name">Deudas con características especiales</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_586" />
</record>
<record id="account_full_587" model="account.account.template">
<field name="code">587</field>
@@ -407,6 +464,7 @@
<field name="name">Deudas con personas y entidades vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_587" />
</record>
<record id="account_full_588" model="account.account.template">
<field name="code">588</field>
@@ -414,6 +472,7 @@
<field name="name">Acreedores comerciales y otras cuentas a pagar</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_588" />
</record>
<record id="account_full_589" model="account.account.template">
<field name="code">589</field>
@@ -421,6 +480,7 @@
<field name="name">Otros pasivos</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_589" />
</record>
<record id="account_full_5990" model="account.account.template">
<field name="code">5990</field>
@@ -428,6 +488,7 @@
<field name="name">Deterioro de valor de inmovilizado no corriente mantenido para la venta</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_599" />
</record>
<record id="account_full_5991" model="account.account.template">
<field name="code">5991</field>
@@ -435,6 +496,7 @@
<field name="name">Deterioro de valor de inversiones y entidades vinculadas no corrientes mantenidas para la venta</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_599" />
</record>
<record id="account_full_5992" model="account.account.template">
<field name="code">5992</field>
@@ -442,6 +504,7 @@
<field name="name">Deterioro de valor de inversiones financieras no corrientes mantenidas para la venta</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_599" />
</record>
<record id="account_full_5993" model="account.account.template">
<field name="code">5993</field>
@@ -449,6 +512,7 @@
<field name="name">Deterioro de valor de existencias, deudores comerciales y otras cuentas a cobrar integrados en un grupo enajenable mantenido para la venta</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_599" />
</record>
<record id="account_full_5994" model="account.account.template">
<field name="code">5994</field>
@@ -456,6 +520,7 @@
<field name="name">Deterioro de valor de otros activos mantenidos para la venta</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_599" />
</record>
<record id="account_full_643" model="account.account.template">
<field name="code">643</field>
@@ -463,6 +528,7 @@
<field name="name">Retribuciones mediante sistemas de aportación definida</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_643" />
</record>
<record id="account_full_6440" model="account.account.template">
<field name="code">6440</field>
@@ -470,6 +536,7 @@
<field name="name">Contribuciones anuales</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_644" />
</record>
<record id="account_full_6442" model="account.account.template">
<field name="code">6442</field>
@@ -477,6 +544,7 @@
<field name="name">Otros costes</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_644" />
</record>
<record id="account_full_6450" model="account.account.template">
<field name="code">6450</field>
@@ -484,6 +552,7 @@
<field name="name">Retribuciones al personal liquidados con instrumentos de patrimonio</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_645" />
</record>
<record id="account_full_6457" model="account.account.template">
<field name="code">6457</field>
@@ -491,6 +560,7 @@
<field name="name">Retribuciones al personal liquidados en efectivo basado en instrumentos de patrimonio</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_645" />
</record>
<record id="account_full_650" model="account.account.template">
<field name="code">650</field>
@@ -498,6 +568,7 @@
<field name="name">Pérdidas de créditos comerciales incobrables</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_650" />
</record>
<record id="account_full_6510" model="account.account.template">
<field name="code">6510</field>
@@ -505,6 +576,7 @@
<field name="name">Beneficio transferido (gestor)</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_full_6511" model="account.account.template">
<field name="code">6511</field>
@@ -512,6 +584,7 @@
<field name="name">Pérdida soportada (partícipe o asociado no gestor)</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_full_659" model="account.account.template">
<field name="code">659</field>
@@ -519,6 +592,7 @@
<field name="name">Otras pérdidas en gestión corriente</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_659" />
</record>
<record id="account_full_6630" model="account.account.template">
<field name="code">6630</field>
@@ -526,6 +600,7 @@
<field name="name">Pérdidas de cartera de negociación</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_663" />
</record>
<record id="account_full_6631" model="account.account.template">
<field name="code">6631</field>
@@ -533,6 +608,7 @@
<field name="name">Pérdidas de designados por la empresa</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_663" />
</record>
<record id="account_full_6632" model="account.account.template">
<field name="code">6632</field>
@@ -540,6 +616,7 @@
<field name="name">Pérdidas de disponibles para la venta</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_663" />
</record>
<record id="account_full_6633" model="account.account.template">
<field name="code">6633</field>
@@ -547,6 +624,7 @@
<field name="name">Pérdidas de instrumentos de cobertura</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_663" />
</record>
<record id="account_full_671" model="account.account.template">
<field name="code">671</field>
@@ -554,6 +632,7 @@
<field name="name">Pérdidas procedentes del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_671" />
</record>
<record id="account_full_691" model="account.account.template">
<field name="code">691</field>
@@ -561,6 +640,7 @@
<field name="name">Pérdidas por deterioro del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_691" />
</record>
<record id="account_full_694" model="account.account.template">
<field name="code">694</field>
@@ -568,6 +648,7 @@
<field name="name">Pérdidas por deterioro de créditos por operaciones comerciales</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_694" />
</record>
<record id="account_full_7630" model="account.account.template">
<field name="code">7630</field>
@@ -575,6 +656,7 @@
<field name="name">Beneficios de cartera de negociación</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_763" />
</record>
<record id="account_full_7631" model="account.account.template">
<field name="code">7631</field>
@@ -582,6 +664,7 @@
<field name="name">Beneficios de designados por la empresa</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_763" />
</record>
<record id="account_full_7632" model="account.account.template">
<field name="code">7632</field>
@@ -589,6 +672,7 @@
<field name="name">Beneficios de disponibles para la venta</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_763" />
</record>
<record id="account_full_7633" model="account.account.template">
<field name="code">7633</field>
@@ -596,6 +680,7 @@
<field name="name">Beneficios de instrumentos de cobertura</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_763" />
</record>
<record id="account_full_767" model="account.account.template">
<field name="code">767</field>
@@ -603,6 +688,7 @@
<field name="name">Ingresos de activos afectos y de derechos de reembolso relativos a retribuciones a largo plazo</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_767" />
</record>
<record id="account_full_774" model="account.account.template">
<field name="code">774</field>
@@ -610,6 +696,7 @@
<field name="name">Diferencia negativa en combinaciones de negocios</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_774" />
</record>
<record id="account_full_791" model="account.account.template">
<field name="code">791</field>
@@ -617,6 +704,7 @@
<field name="name">Reversión del deterioro del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_791" />
</record>
<record id="account_full_794" model="account.account.template">
<field name="code">794</field>
@@ -624,6 +712,7 @@
<field name="name">Reversión del deterioro de créditos por operaciones comerciales</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_794" />
</record>
<record id="account_full_7950" model="account.account.template">
<field name="code">7950</field>
@@ -631,6 +720,7 @@
<field name="name">Exceso de provisión por retribuciones al personal</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_795" />
</record>
<record id="account_full_7956" model="account.account.template">
<field name="code">7956</field>
@@ -638,6 +728,7 @@
<field name="name">Exceso de provisión para reestructuraciones</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_795" />
</record>
<record id="account_full_7957" model="account.account.template">
<field name="code">7957</field>
@@ -645,6 +736,7 @@
<field name="name">Exceso de provisión por transacciones con pagos basados en instrumentos de patrimonio</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_795" />
</record>
<record id="account_full_800" model="account.account.template">
<field name="code">800</field>
@@ -652,6 +744,7 @@
<field name="name">Pérdidas en activos financieros disponibles para la venta</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_800" />
</record>
<record id="account_full_802" model="account.account.template">
<field name="code">802</field>
@@ -659,6 +752,7 @@
<field name="name">Transferencia de beneficios en activos financieros disponibles para la venta</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_802" />
</record>
<record id="account_full_810" model="account.account.template">
<field name="code">810</field>
@@ -666,6 +760,7 @@
<field name="name">Pérdidas por coberturas de flujos de efectivo</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_810" />
</record>
<record id="account_full_811" model="account.account.template">
<field name="code">811</field>
@@ -673,6 +768,7 @@
<field name="name">Pérdidas por coberturas de inversiones netas en un negocio en el extranjero</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_811" />
</record>
<record id="account_full_812" model="account.account.template">
<field name="code">812</field>
@@ -680,6 +776,7 @@
<field name="name">Transferencia de beneficios por coberturas de flujos de efectivo</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_812" />
</record>
<record id="account_full_813" model="account.account.template">
<field name="code">813</field>
@@ -687,6 +784,7 @@
<field name="name">Transferencia de beneficios por coberturas de inversiones netas en un negocio en el extranjero</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_813" />
</record>
<record id="account_full_820" model="account.account.template">
<field name="code">820</field>
@@ -694,6 +792,7 @@
<field name="name">Diferencias de conversión negativas</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_820" />
</record>
<record id="account_full_821" model="account.account.template">
<field name="code">821</field>
@@ -701,6 +800,7 @@
<field name="name">Transferencia de diferencias de conversión positivas</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_821" />
</record>
<record id="account_full_8300" model="account.account.template">
<field name="code">8300</field>
@@ -708,6 +808,7 @@
<field name="name">Impuesto corriente</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_830" />
</record>
<record id="account_full_8301" model="account.account.template">
<field name="code">8301</field>
@@ -715,6 +816,7 @@
<field name="name">Impuesto diferido</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_830" />
</record>
<record id="account_full_833" model="account.account.template">
<field name="code">833</field>
@@ -722,6 +824,7 @@
<field name="name">Ajustes negativos en la imposición sobre beneficios</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_833" />
</record>
<record id="account_full_834" model="account.account.template">
<field name="code">834</field>
@@ -729,6 +832,7 @@
<field name="name">Ingresos fiscales por diferencias permanentes</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_834" />
</record>
<record id="account_full_835" model="account.account.template">
<field name="code">835</field>
@@ -736,6 +840,7 @@
<field name="name">Ingresos fiscales por deducciones y bonificaciones</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_835" />
</record>
<record id="account_full_836" model="account.account.template">
<field name="code">836</field>
@@ -743,6 +848,7 @@
<field name="name">Transferencia de diferencias permanentes</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_836" />
</record>
<record id="account_full_837" model="account.account.template">
<field name="code">837</field>
@@ -750,6 +856,7 @@
<field name="name">Transferencia de deducciones y bonificaciones</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_837" />
</record>
<record id="account_full_838" model="account.account.template">
<field name="code">838</field>
@@ -757,6 +864,7 @@
<field name="name">Ajustes positivos en la imposición sobre beneficios</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_838" />
</record>
<record id="account_full_840" model="account.account.template">
<field name="code">840</field>
@@ -764,6 +872,7 @@
<field name="name">Transferencia de subvenciones oficiales de capital</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_840" />
</record>
<record id="account_full_841" model="account.account.template">
<field name="code">841</field>
@@ -771,6 +880,7 @@
<field name="name">Transferencia de donaciones y legados de capital</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_841" />
</record>
<record id="account_full_842" model="account.account.template">
<field name="code">842</field>
@@ -778,6 +888,7 @@
<field name="name">Transferencia de otras subvenciones, donaciones y legados</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_842" />
</record>
<record id="account_full_850" model="account.account.template">
<field name="code">850</field>
@@ -785,6 +896,7 @@
<field name="name">Pérdidas actuariales</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_850" />
</record>
<record id="account_full_851" model="account.account.template">
<field name="code">851</field>
@@ -792,6 +904,7 @@
<field name="name">Ajustes negativos en activos por retribuciones a largo plazo de prestación definida</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_851" />
</record>
<record id="account_full_860" model="account.account.template">
<field name="code">860</field>
@@ -799,6 +912,7 @@
<field name="name">Pérdidas en activos no corrientes y grupos enajenables de elementos mantenidos para la venta</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_860" />
</record>
<record id="account_full_862" model="account.account.template">
<field name="code">862</field>
@@ -806,6 +920,7 @@
<field name="name">Transferencia de beneficios en activos no corrientes y grupos enajenables de elementos mantenidos para la venta</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_862" />
</record>
<record id="account_full_891" model="account.account.template">
<field name="code">891</field>
@@ -813,6 +928,7 @@
<field name="name">Deterioro de participaciones en el patrimonio, empresas del grupo</field>
<field name="user_type_id" ref="account.data_account_type_depreciation"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_891" />
</record>
<record id="account_full_892" model="account.account.template">
<field name="code">892</field>
@@ -820,6 +936,7 @@
<field name="name">Deterioro de participaciones en el patrimonio, empresas asociadas</field>
<field name="user_type_id" ref="account.data_account_type_depreciation"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_892" />
</record>
<record id="account_full_900" model="account.account.template">
<field name="code">900</field>
@@ -827,6 +944,7 @@
<field name="name">Beneficios en activos financieros disponibles para la venta</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_900" />
</record>
<record id="account_full_902" model="account.account.template">
<field name="code">902</field>
@@ -834,6 +952,7 @@
<field name="name">Transferencia de pérdidas en activos financieros disponibles para la venta</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_902" />
</record>
<record id="account_full_910" model="account.account.template">
<field name="code">910</field>
@@ -841,6 +960,7 @@
<field name="name">Beneficios por coberturas de flujos de efectivo</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_910" />
</record>
<record id="account_full_911" model="account.account.template">
<field name="code">911</field>
@@ -848,6 +968,7 @@
<field name="name">Beneficios por coberturas de inversiones netas en un negocio en el extranjero</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_911" />
</record>
<record id="account_full_912" model="account.account.template">
<field name="code">912</field>
@@ -855,6 +976,7 @@
<field name="name">Transferencia de pérdidas por coberturas de flujos de efectivo</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_912" />
</record>
<record id="account_full_913" model="account.account.template">
<field name="code">913</field>
@@ -862,6 +984,7 @@
<field name="name">Transferencia de pérdidas por coberturas de inversiones netas en un negocio en el extranjero</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_913" />
</record>
<record id="account_full_920" model="account.account.template">
<field name="code">920</field>
@@ -869,6 +992,7 @@
<field name="name">Diferencias de conversión positivas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_920" />
</record>
<record id="account_full_921" model="account.account.template">
<field name="code">921</field>
@@ -876,6 +1000,7 @@
<field name="name">Transferencia de diferencias de conversión negativas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_921" />
</record>
<record id="account_full_940" model="account.account.template">
<field name="code">940</field>
@@ -883,6 +1008,7 @@
<field name="name">Ingresos de subvenciones oficiales de capital</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_940" />
</record>
<record id="account_full_941" model="account.account.template">
<field name="code">941</field>
@@ -890,6 +1016,7 @@
<field name="name">Ingresos de donaciones y legados de capital</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_941" />
</record>
<record id="account_full_942" model="account.account.template">
<field name="code">942</field>
@@ -897,6 +1024,7 @@
<field name="name">Ingresos de otras subvenciones, donaciones y legados</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_942" />
</record>
<record id="account_full_950" model="account.account.template">
<field name="code">950</field>
@@ -904,6 +1032,7 @@
<field name="name">Ganancias actuariales</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_950" />
</record>
<record id="account_full_951" model="account.account.template">
<field name="code">951</field>
@@ -911,6 +1040,7 @@
<field name="name">Ajustes positivos en activos por retribuciones a largo plazo de prestación definida</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_951" />
</record>
<record id="account_full_960" model="account.account.template">
<field name="code">960</field>
@@ -918,6 +1048,7 @@
<field name="name">Beneficios en activos no corrientes y grupos enajenables de elementos mantenidos para la venta</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_960" />
</record>
<record id="account_full_962" model="account.account.template">
<field name="code">962</field>
@@ -925,6 +1056,7 @@
<field name="name">Transferencia de pérdidas en activos no corrientes y grupos enajenables de elementos mantenidos para la venta</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_962" />
</record>
<record id="account_full_991" model="account.account.template">
<field name="code">991</field>
@@ -932,6 +1064,7 @@
<field name="name">Recuperación de ajustes valorativos negativos previos, empresas del grupo</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_991" />
</record>
<record id="account_full_992" model="account.account.template">
<field name="code">992</field>
@@ -939,6 +1072,7 @@
<field name="name">Recuperación de ajustes valorativos negativos previos, empresas asociadas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_992" />
</record>
<record id="account_full_993" model="account.account.template">
<field name="code">993</field>
@@ -946,6 +1080,7 @@
<field name="name">Transferencia por deterioro de ajustes valorativos negativos previos, empresas del grupo</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_993" />
</record>
<record id="account_full_994" model="account.account.template">
<field name="code">994</field>
@@ -953,6 +1088,7 @@
<field name="name">Transferencia por deterioro de ajustes valorativos negativos previos, empresas asociadas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_full"/>
<field name="group_id" ref="l10n_es.account_group_994" />
</record>
</data>
@@ -8,6 +8,7 @@
<field name="name">Capital social</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_100" />
</record>
<record id="account_pymes_1030" model="account.account.template">
<field name="code">1030</field>
@@ -15,6 +16,7 @@
<field name="name">Socios por desembolsos no exigidos, capital social</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_103" />
</record>
<record id="account_pymes_1034" model="account.account.template">
<field name="code">1034</field>
@@ -22,6 +24,7 @@
<field name="name">Socios por desembolsos no exigidos, capital pendiente de inscripción</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_103" />
</record>
<record id="account_pymes_1040" model="account.account.template">
<field name="code">1040</field>
@@ -29,6 +32,7 @@
<field name="name">Socios por aportaciones no dinerarias pendientes, capital social</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_104" />
</record>
<record id="account_pymes_1044" model="account.account.template">
<field name="code">1044</field>
@@ -36,6 +40,7 @@
<field name="name">Socios por aportaciones no dinerarias pendientes, capital pendiente de inscripción</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_104" />
</record>
<record id="account_pymes_120" model="account.account.template">
<field name="code">120</field>
@@ -43,6 +48,7 @@
<field name="name">Remanente</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_120" />
</record>
<record id="account_pymes_121" model="account.account.template">
<field name="code">121</field>
@@ -50,6 +56,7 @@
<field name="name">Resultados negativos de ejercicios anteriores</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_121" />
</record>
<record id="account_pymes_129" model="account.account.template">
<field name="code">129</field>
@@ -57,6 +64,7 @@
<field name="name">Resultado del ejercicio</field>
<field name="user_type_id" ref="account.data_unaffected_earnings"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_129" />
</record>
<record id="account_pymes_130" model="account.account.template">
<field name="code">130</field>
@@ -64,6 +72,7 @@
<field name="name">Subvenciones oficiales de capital</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_130" />
</record>
<record id="account_pymes_132" model="account.account.template">
<field name="code">132</field>
@@ -71,6 +80,7 @@
<field name="name">Otras subvenciones, donaciones y legados</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_132" />
</record>
<record id="account_pymes_2403" model="account.account.template">
<field name="code">2403</field>
@@ -78,6 +88,7 @@
<field name="name">Participaciones en empresas del grupo</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_pymes_2404" model="account.account.template">
<field name="code">2404</field>
@@ -85,6 +96,7 @@
<field name="name">Participaciones en empresas asociadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_pymes_2405" model="account.account.template">
<field name="code">2405</field>
@@ -92,6 +104,7 @@
<field name="name">Participaciones en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_240" />
</record>
<record id="account_pymes_2493" model="account.account.template">
<field name="code">2493</field>
@@ -99,6 +112,7 @@
<field name="name">Desembolsos pendientes sobre participaciones en empresas del grupo</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_pymes_2494" model="account.account.template">
<field name="code">2494</field>
@@ -106,6 +120,7 @@
<field name="name">Desembolsos pendientes sobre participaciones en empresas asociadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_pymes_2495" model="account.account.template">
<field name="code">2495</field>
@@ -113,6 +128,7 @@
<field name="name">Desembolsos pendientes sobre participaciones en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_249" />
</record>
<record id="account_pymes_255" model="account.account.template">
<field name="code">255</field>
@@ -120,6 +136,7 @@
<field name="name">Activos por derivados financieros</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_255" />
</record>
<record id="account_pymes_2935" model="account.account.template">
<field name="code">2935</field>
@@ -127,6 +144,7 @@
<field name="name">Deterioro de valor de participaciones a largo plazo en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_293" />
</record>
<record id="account_pymes_296" model="account.account.template">
<field name="code">296</field>
@@ -134,6 +152,7 @@
<field name="name">Deterioro de valor de participaciones en el patrimonio neto a largo plazo</field>
<field name="user_type_id" ref="account.data_account_type_fixed_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_296" />
</record>
<record id="pgc_pyme_490" model="account.account.template">
<field name="code">490</field>
@@ -141,6 +160,7 @@
<field name="name">Deterioro de valor de créditos por operaciones comerciales</field>
<field name="user_type_id" ref="account.data_account_type_current_liabilities"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_490" />
</record>
<record id="pgc_pyme_551" model="account.account.template">
<field name="code">551</field>
@@ -148,6 +168,7 @@
<field name="name">Cuenta corriente con socios y administradores</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_551" />
</record>
<record id="account_pymes_5935" model="account.account.template">
<field name="code">5935</field>
@@ -155,6 +176,7 @@
<field name="name">Deterioro de valor de participaciones a corto plazo en otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_593" />
</record>
<record id="account_pymes_596" model="account.account.template">
<field name="code">596</field>
@@ -162,6 +184,7 @@
<field name="name">Deterioro de valor de participaciones a corto plazo</field>
<field name="user_type_id" ref="account.data_account_type_current_assets"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_596" />
</record>
<record id="account_pymes_650" model="account.account.template">
<field name="code">650</field>
@@ -169,6 +192,7 @@
<field name="name">Pérdidas de créditos comerciales incobrables</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_650" />
</record>
<record id="account_pymes_6510" model="account.account.template">
<field name="code">6510</field>
@@ -176,6 +200,7 @@
<field name="name">Beneficio transferido (gestor)</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_pymes_6511" model="account.account.template">
<field name="code">6511</field>
@@ -183,6 +208,7 @@
<field name="name">Pérdida soportada (partícipe o asociado no gestor)</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_651" />
</record>
<record id="account_pymes_659" model="account.account.template">
<field name="code">659</field>
@@ -190,6 +216,7 @@
<field name="name">Otras pérdidas en gestión corriente</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_659" />
</record>
<record id="account_pymes_663" model="account.account.template">
<field name="code">663</field>
@@ -197,6 +224,7 @@
<field name="name">Pérdidas por valoración de instrumentos financieros por su valor razonable</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_663" />
</record>
<record id="account_pymes_671" model="account.account.template">
<field name="code">671</field>
@@ -204,6 +232,7 @@
<field name="name">Pérdidas procedentes del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_671" />
</record>
<record id="account_pymes_691" model="account.account.template">
<field name="code">691</field>
@@ -211,6 +240,7 @@
<field name="name">Pérdidas por deterioro del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_691" />
</record>
<record id="account_pymes_694" model="account.account.template">
<field name="code">694</field>
@@ -218,6 +248,7 @@
<field name="name">Pérdidas por deterioro de créditos por operaciones comerciales</field>
<field name="user_type_id" ref="account.data_account_type_expenses"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_694" />
</record>
<record id="account_pymes_763" model="account.account.template">
<field name="code">763</field>
@@ -225,6 +256,7 @@
<field name="name">Beneficios por valoración de instrumentos financieros por su valor razonable</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_763" />
</record>
<record id="account_pymes_791" model="account.account.template">
<field name="code">791</field>
@@ -232,6 +264,7 @@
<field name="name">Reversión del deterioro del inmovilizado material</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_791" />
</record>
<record id="account_pymes_794" model="account.account.template">
<field name="code">794</field>
@@ -239,6 +272,7 @@
<field name="name">Reversión del deterioro de créditos por operaciones comerciales</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_794" />
</record>
<record id="account_pymes_7962" model="account.account.template">
<field name="code">7962</field>
@@ -246,6 +280,7 @@
<field name="name">Reversión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo, otras partes vinculadas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_796" />
</record>
<record id="account_pymes_7963" model="account.account.template">
<field name="code">7963</field>
@@ -253,6 +288,7 @@
<field name="name">Reversión del deterioro de participaciones en instrumentos de patrimonio neto a largo plazo, otras empresas</field>
<field name="user_type_id" ref="account.data_account_type_revenue"/>
<field name="chart_template_id" ref="account_chart_template_pymes"/>
<field name="group_id" ref="l10n_es.account_group_796" />
</record>
</data>
@@ -10,6 +10,7 @@
<field name="code">572999</field>
<field name="user_type_id" ref="account.data_account_type_current_assets" />
<field name="reconcile" eval="True" />
<field name="group_id" ref="l10n_es.account_group_572" />
</record>
<record id="account_chart_template_common" model="account.chart.template">
@@ -55,4 +56,4 @@
<field name="parent_id" ref="account_chart_template_common"/>
</record>
</data>
</odoo>
</odoo>
File diff suppressed because it is too large Load Diff
+31 -31
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-24 08:59+0000\n"
"PO-Revision-Date: 2017-10-24 08:59+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -174,18 +174,11 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:51
#: code:addons/mail/static/src/xml/activity.xml:49
#, python-format
msgid ", due on"
msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:45
#, python-format
msgid ", on"
msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/thread.xml:331
@@ -674,7 +667,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:47
#: code:addons/mail/static/src/xml/activity.xml:45
#: model:ir.model.fields,field_description:mail.field_mail_activity_user_id
#, python-format
msgid "Assigned to"
@@ -803,7 +796,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/js/followers.js:341
#: code:addons/mail/static/src/xml/activity.xml:67
#: code:addons/mail/static/src/xml/activity.xml:65
#: model:ir.ui.view,arch_db:mail.email_compose_message_wizard_form
#: model:ir.ui.view,arch_db:mail.mail_wizard_invite_form
#: model:ir.ui.view,arch_db:mail.view_mail_form
@@ -1089,11 +1082,8 @@ msgid "Create Date"
msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:41
#: model:ir.ui.view,arch_db:mail.mail_activity_view_search
#, python-format
msgid "Created on"
msgid "Created By"
msgstr ""
#. module: mail
@@ -1118,6 +1108,8 @@ msgid "Created by"
msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:41
#: model:ir.model.fields,field_description:mail.field_email_template_preview_create_date
#: model:ir.model.fields,field_description:mail.field_mail_activity_create_date
#: model:ir.model.fields,field_description:mail.field_mail_activity_type_create_date
@@ -1134,6 +1126,7 @@ msgstr ""
#: model:ir.model.fields,field_description:mail.field_mail_test_simple_create_date
#: model:ir.model.fields,field_description:mail.field_mail_tracking_value_create_date
#: model:ir.model.fields,field_description:mail.field_mail_wizard_invite_create_date
#, python-format
msgid "Created on"
msgstr ""
@@ -1319,7 +1312,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:83
#: code:addons/mail/static/src/xml/activity.xml:81
#: model:ir.ui.view,arch_db:mail.email_template_preview_form
#: model:ir.ui.view,arch_db:mail.mail_activity_view_form_popup
#, python-format
@@ -1396,14 +1389,14 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:81
#: code:addons/mail/static/src/xml/activity.xml:79
#, python-format
msgid "Done"
msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:79
#: code:addons/mail/static/src/xml/activity.xml:77
#, python-format
msgid "Done & Schedule Next"
msgstr ""
@@ -1443,7 +1436,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:64
#: code:addons/mail/static/src/xml/activity.xml:62
#, python-format
msgid "Edit"
msgstr ""
@@ -2269,7 +2262,7 @@ msgid "Invalid expression, it must be a literal python dictionary definition e.g
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_thread.py:1791
#: code:addons/mail/models/mail_thread.py:1792
#, python-format
msgid "Invalid record set: should be called as model (without records) or on single-record recordset"
msgstr ""
@@ -2738,7 +2731,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:61
#: code:addons/mail/static/src/xml/activity.xml:59
#, python-format
msgid "Mark Done"
msgstr ""
@@ -4620,8 +4613,9 @@ msgid "The owner of records created upon receiving emails on this alias. If this
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_message.py:575
#: code:addons/mail/models/mail_message.py:670
#: code:addons/mail/models/mail_activity.py:165
#: code:addons/mail/models/mail_message.py:579
#: code:addons/mail/models/mail_message.py:674
#, python-format
msgid "The requested operation cannot be completed due to security restrictions. Please contact your system administrator.\n"
"\n"
@@ -5110,7 +5104,7 @@ msgstr ""
#. module: mail
#. openerp-web
#: code:addons/mail/static/src/xml/activity.xml:77
#: code:addons/mail/static/src/xml/activity.xml:75
#, python-format
msgid "Write Feedback"
msgstr ""
@@ -5234,7 +5228,7 @@ msgid "Your template should define email_from"
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_thread.py:965
#: code:addons/mail/models/mail_thread.py:966
#, python-format
msgid "alias %s: %s"
msgstr ""
@@ -5308,11 +5302,17 @@ msgid "has been"
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_alias.py:271
#: code:addons/mail/models/mail_alias.py:282
#, python-format
msgid "incorrectly configured alias"
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_alias.py:278
#, python-format
msgid "incorrectly configured alias (unknown reference record)"
msgstr ""
#. module: mail
#: model:ir.model,name:mail.model_ir_actions_server
msgid "ir.actions.server"
@@ -5442,13 +5442,13 @@ msgid "restricted to channel members"
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_alias.py:276
#: code:addons/mail/models/mail_alias.py:287
#, python-format
msgid "restricted to followers"
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_alias.py:280
#: code:addons/mail/models/mail_alias.py:291
#, python-format
msgid "restricted to known authors"
msgstr ""
@@ -5463,7 +5463,7 @@ msgstr ""
#: code:addons/mail/models/mail_thread.py:935
#: code:addons/mail/models/mail_thread.py:938
#: code:addons/mail/models/mail_thread.py:943
#: code:addons/mail/models/mail_thread.py:965
#: code:addons/mail/models/mail_thread.py:966
#, python-format
msgid "skipping"
msgstr ""
@@ -5476,7 +5476,7 @@ msgid "this document"
msgstr ""
#. module: mail
#: code:addons/mail/models/mail_thread.py:965
#: code:addons/mail/models/mail_thread.py:966
#, python-format
msgid "unknown error"
msgstr ""
+12 -5
View File
@@ -264,28 +264,35 @@ class MailActivityMixin(models.AbstractModel):
activity_ids = fields.One2many(
'mail.activity', 'res_id', 'Activities',
auto_join=True,
groups="base.group_user",
domain=lambda self: [('res_model', '=', self._name)])
activity_state = fields.Selection([
('overdue', 'Overdue'),
('today', 'Today'),
('planned', 'Planned')], string='State',
compute='_compute_activity_state',
groups="base.group_user",
help='Status based on activities\nOverdue: Due date is already passed\n'
'Today: Activity date is today\nPlanned: Future activities.')
activity_user_id = fields.Many2one(
'res.users', 'Responsible',
related='activity_ids.user_id',
search='_search_activity_user_id')
search='_search_activity_user_id',
groups="base.group_user")
activity_type_id = fields.Many2one(
'mail.activity.type', 'Next Activity Type',
related='activity_ids.activity_type_id',
search='_search_activity_type_id')
search='_search_activity_type_id',
groups="base.group_user")
activity_date_deadline = fields.Date(
'Next Activity Deadline', related='activity_ids.date_deadline',
readonly=True, store=True) # store to enable ordering + search
readonly=True, store=True, # store to enable ordering + search
groups="base.group_user")
activity_summary = fields.Char(
'Next Activity Summary', related='activity_ids.summary',
search='_search_activity_summary')
'Next Activity Summary',
related='activity_ids.summary',
search='_search_activity_summary',
groups="base.group_user",)
@api.depends('activity_ids.state')
def _compute_activity_state(self):
+3 -1
View File
@@ -1371,6 +1371,8 @@ class MailThread(models.AbstractModel):
mail module, and should not contain security or generic html cleaning.
Indeed those aspects should be covered by the html_sanitize method
located in tools. """
if not body:
return body, attachments
root = lxml.html.fromstring(body)
postprocessed = False
to_remove = []
@@ -1406,7 +1408,7 @@ class MailThread(models.AbstractModel):
# Content-Type: multipart/related;
# boundary="_004_3f1e4da175f349248b8d43cdeb9866f1AMSPR06MB343eurprd06pro_";
# type="text/html"
if not message.is_multipart() or message.get('content-type', '').startswith("text/"):
if message.get_content_maintype() == 'text':
encoding = message.get_content_charset()
body = message.get_payload(decode=True)
body = tools.ustr(body, encoding, errors='replace')
+4
View File
@@ -3,6 +3,7 @@
from odoo import _, api, exceptions, fields, models, modules
from odoo.tools import pycompat
from odoo.addons.base.res.res_users import is_selection_groups
class Users(models.Model):
@@ -62,11 +63,14 @@ class Users(models.Model):
@api.multi
def write(self, vals):
write_res = super(Users, self).write(vals)
sel_groups = [vals[k] for k in vals if is_selection_groups(k) and vals[k]]
if vals.get('groups_id'):
# form: {'group_ids': [(3, 10), (3, 3), (4, 10), (4, 3)]} or {'group_ids': [(6, 0, [ids]}
user_group_ids = [command[1] for command in vals['groups_id'] if command[0] == 4]
user_group_ids += [id for command in vals['groups_id'] if command[0] == 6 for id in command[2]]
self.env['mail.channel'].search([('group_ids', 'in', user_group_ids)])._subscribe_users()
elif sel_groups:
self.env['mail.channel'].search([('group_ids', 'in', sel_groups)])._subscribe_users()
return write_res
def _create_welcome_message(self):
+1 -1
View File
@@ -22,7 +22,7 @@ access_mail_alias_all,mail.alias.all,model_mail_alias,,1,0,0,0
access_mail_alias_user,mail.alias.user,model_mail_alias,base.group_user,1,1,1,1
access_mail_alias_system,mail.alias.system,model_mail_alias,base.group_system,1,1,1,1
access_mail_message_subtype_all,mail.message.subtype.all,model_mail_message_subtype,,1,0,0,0
access_mail_message_subtype_user,mail.message.subtype.user,model_mail_message_subtype,,1,1,1,1
access_mail_message_subtype_user,mail.message.subtype.user,model_mail_message_subtype,base.group_user,1,1,1,1
access_mail_tracking_value_all,mail.tracking.value.all,model_mail_tracking_value,,0,0,0,0
access_mail_tracking_value_portal,mail.tracking.value.portal,model_mail_tracking_value,base.group_portal,0,0,0,0
access_mail_tracking_value_user,mail.tracking.value.user,model_mail_tracking_value,base.group_user,0,0,0,0
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
22 access_mail_alias_user mail.alias.user model_mail_alias base.group_user 1 1 1 1
23 access_mail_alias_system mail.alias.system model_mail_alias base.group_system 1 1 1 1
24 access_mail_message_subtype_all mail.message.subtype.all model_mail_message_subtype 1 0 0 0
25 access_mail_message_subtype_user mail.message.subtype.user model_mail_message_subtype base.group_user 1 1 1 1
26 access_mail_tracking_value_all mail.tracking.value.all model_mail_tracking_value 0 0 0 0
27 access_mail_tracking_value_portal mail.tracking.value.portal model_mail_tracking_value base.group_portal 0 0 0 0
28 access_mail_tracking_value_user mail.tracking.value.user model_mail_tracking_value base.group_user 0 0 0 0
+9 -16
View File
@@ -51,6 +51,15 @@ FormRenderer.include({
*/
_renderNode: function (node) {
if (node.tag === 'div' && node.attrs.class === 'oe_chatter') {
if (this.chatter) {
// Detach the chatter before updating the $el.
// This is important because if the view is now in create mode
// (edit mode with no res_id), the chatter will be removed from
// the DOM, and its handlers will be unbound. By detaching it
// beforehand, we ensure to keep its handlers alive so that if
// it is re-appended later, everything will still work properly
this.chatter.$el.detach();
}
if (this.mode === 'edit' && !this.state.data.id) {
// there is no chatter in create mode
var $div = $('<div>');
@@ -72,22 +81,6 @@ FormRenderer.include({
return this._super.apply(this, arguments);
}
},
/**
* Detaches the chatter before updating the $el. This is important because
* if the view is now in create mode (edit mode with no res_id), the chatter
* will be removed from the DOM, and its handlers will be unbound. By
* detaching it beforehand, we ensure to keep its handlers alive so that if
* it is re-appended later, everything will still work properly.
*
* @override
* @private
*/
_updateView: function () {
if (this.chatter) {
this.chatter.$el.detach();
}
return this._super.apply(this, arguments);
},
});
});
+60 -1
View File
@@ -216,6 +216,66 @@ QUnit.test('chatter is not rendered in mode === create', function (assert) {
form.destroy();
});
QUnit.test('chatter rendering inside the sheet', function (assert) {
assert.expect(4);
var form = createView({
View: FormView,
model: 'partner',
data: this.data,
arch: '<form string="Partners">' +
'<sheet>' +
'<field name="foo"/>' +
'<notebook>' +
'<page>' +
'<div class="oe_chatter">' +
'<field name="message_ids" widget="mail_thread"/>' +
'</div>' +
'</page>' +
'</notebook>' +
'</sheet>' +
'</form>',
res_id: 2,
mockRPC: function (route, args) {
if (route === "/web/dataset/call_kw/partner/message_get_suggested_recipients") {
return $.when({2: []});
}
return this._super(route, args);
},
intercepts: {
get_messages: function (event) {
event.stopPropagation();
event.data.callback($.when([]));
},
get_bus: function (event) {
event.stopPropagation();
event.data.callback(new Bus());
},
},
});
assert.strictEqual(form.$('.o_chatter').length, 1,
"chatter should be displayed");
form.$buttons.find('.o_form_button_create').click();
assert.strictEqual(form.$('.o_chatter').length, 0,
"chatter should not be displayed");
form.$('.o_field_char').val('coucou').trigger('input');
form.$buttons.find('.o_form_button_save').click();
assert.strictEqual(form.$('.o_chatter').length, 1,
"chatter should be displayed");
// check if chatter buttons still work
form.$('.o_chatter_button_new_message').click();
assert.strictEqual(form.$('.o_chat_composer:visible').length, 1,
"chatter should be opened");
form.destroy();
});
QUnit.test('kanban activity widget with no activity', function (assert) {
assert.expect(4);
@@ -494,7 +554,6 @@ QUnit.test('chatter: post, receive and star messages', function (assert) {
});
});
QUnit.test('chatter: post a message and switch in edit mode', function (assert) {
assert.expect(5);
+11 -11
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-24 09:00+0000\n"
"PO-Revision-Date: 2017-10-24 09:00+0000\n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -707,13 +707,13 @@ msgid "Number of Requests Scheduled"
msgstr ""
#. module: maintenance
#: model:ir.model.fields,field_description:maintenance.field_maintenance_team_todo_request_count_high_priority
msgid "Number of Requests in High Priority"
#: model:ir.model.fields,field_description:maintenance.field_maintenance_team_todo_request_count_unscheduled
msgid "Number of Requests Unscheduled"
msgstr ""
#. module: maintenance
#: model:ir.model.fields,field_description:maintenance.field_maintenance_team_todo_request_count_unscheduled
msgid "Number of Requests Unscheduled"
#: model:ir.model.fields,field_description:maintenance.field_maintenance_team_todo_request_count_high_priority
msgid "Number of Requests in High Priority"
msgstr ""
#. module: maintenance
@@ -838,11 +838,6 @@ msgstr ""
msgid "Request"
msgstr ""
#. module: maintenance
#: model:ir.model.fields,field_description:maintenance.field_maintenance_team_todo_request_ids
msgid "Requests"
msgstr ""
#. module: maintenance
#: model:mail.message.subtype,name:maintenance.mt_req_created
msgid "Request Created"
@@ -868,6 +863,11 @@ msgstr ""
msgid "Requested by :"
msgstr ""
#. module: maintenance
#: model:ir.model.fields,field_description:maintenance.field_maintenance_team_todo_request_ids
msgid "Requests"
msgstr ""
#. module: maintenance
#: model:ir.model.fields,field_description:maintenance.field_maintenance_equipment_category_technician_user_id
#: model:ir.ui.view,arch_db:maintenance.hr_equipment_category_view_search
@@ -15,13 +15,13 @@
<strong t-if="o.address_id != o.partner_invoice_id">Invoice address: </strong>
<div t-field="o.partner_invoice_id"
t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True, "phone_icons": True}'/>
<p t-if="o.partner_id.vat"><t t-esc="o.company_id.country_id.vat_label or 'TIN'"/>: <span t-field="o.partner_id.vat"/></p>
<p t-if="o.partner_invoice_id.vat"><t t-esc="o.company_id.country_id.vat_label or 'TIN'"/>: <span t-field="o.partner_invoice_id.vat"/></p>
</div>
<div t-if="o.address_id != o.partner_invoice_id">
<strong>Shipping address :</strong>
<div t-field="o.address_id"
t-options='{"widget": "contact", "fields": ["address", "name", "phone"], "no_marker": True, "phone_icons": True}'/>
<p t-if="o.partner_id.vat"><t t-esc="o.company_id.country_id.vat_label or 'TIN'"/>: <span t-field="o.partner_id.vat"/></p>
<p t-if="o.address_id.vat"><t t-esc="o.company_id.country_id.vat_label or 'TIN'"/>: <span t-field="o.address_id.vat"/></p>
</div>
</div>
<div class="col-xs-5 col-xs-offset-1">
@@ -33,6 +33,34 @@ def strip_ns(xml, ns):
return it.root
def error_check(elem):
"""Check if the response sent by Authorize.net contains an error.
Errors can be a failure to try the transaction (in that case, the transasctionResponse
is empty, and the meaningful error message will be in message/code) or a failure to process
the transaction (in that case, the message/code content will be generic and the actual error
message is in transactionResponse/errors/error/errorText).
:param etree._Element elem: the root element of the response that will be parsed
:rtype: tuple (bool, str)
:return: tuple containnig a boolean indicating if the response should be considered
as an error and the most meaningful error message found in it.
"""
result_code = elem.find('messages/resultCode')
msg = 'No meaningful error message found, please check logs or the Authorize.net backend'
has_error = result_code is not None and result_code.text == 'Error'
if has_error:
# accumulate the most meangingful error
error = elem.find('transactionResponse/errors/error')
error = error if error is not None else elem.find('messages/message')
if error is not None:
code = error[0].text
text = error[1].text
msg = '%s: %s' % (code, text)
return (has_error, msg)
class AuthorizeAPI():
"""Authorize.net Gateway API integration.
@@ -42,6 +70,9 @@ class AuthorizeAPI():
- Customer Profile/Payment Profile creation
- Transaction authorization/capture/voiding
"""
AUTH_ERROR_STATUS = 3
def __init__(self, acquirer):
"""Initiate the environment with the acquirer data.
@@ -77,9 +108,6 @@ class AuthorizeAPI():
logged_data = etree.XML(r.content)
logged_data = str(etree.tostring(logged_data, encoding='utf-8', pretty_print=True)).replace(r'\n', '\n')
_logger.info('_authorize_request: Values received\n%s', logged_data)
if response.find('messages/resultCode').text == 'Error':
messages = [m.text for m in response.findall('messages/message/text')]
raise ValidationError(_('Authorize.net Error Message(s):\n %s') % '\n'.join(messages))
return response
def _base_tree(self, requestType):
@@ -231,6 +259,11 @@ class AuthorizeAPI():
etree.SubElement(order, "invoiceNumber").text = reference
response = self._authorize_request(root)
res = dict()
(has_error, error_msg) = error_check(response)
if has_error:
res['x_response_code'] = self.AUTH_ERROR_STATUS
res['x_response_reason_text'] = error_msg
return res
res['x_response_code'] = response.find('transactionResponse/responseCode').text
res['x_trans_id'] = response.find('transactionResponse/transId').text
res['x_type'] = 'auth_capture'
@@ -261,6 +294,11 @@ class AuthorizeAPI():
etree.SubElement(order, "invoiceNumber").text = reference
response = self._authorize_request(root)
res = dict()
(has_error, error_msg) = error_check(response)
if has_error:
res['x_response_code'] = self.AUTH_ERROR_STATUS
res['x_response_reason_text'] = error_msg
return res
res['x_response_code'] = response.find('transactionResponse/responseCode').text
res['x_trans_id'] = response.find('transactionResponse/transId').text
res['x_type'] = 'auth_only'
@@ -286,6 +324,11 @@ class AuthorizeAPI():
etree.SubElement(tx, "refTransId").text = transaction_id
response = self._authorize_request(root)
res = dict()
(has_error, error_msg) = error_check(response)
if has_error:
res['x_response_code'] = self.AUTH_ERROR_STATUS
res['x_response_reason_text'] = error_msg
return res
res['x_response_code'] = response.find('transactionResponse/responseCode').text
res['x_trans_id'] = response.find('transactionResponse/transId').text
res['x_type'] = 'prior_auth_capture'
@@ -306,6 +349,11 @@ class AuthorizeAPI():
etree.SubElement(tx, "refTransId").text = transaction_id
response = self._authorize_request(root)
res = dict()
(has_error, error_msg) = error_check(response)
if has_error:
res['x_response_code'] = self.AUTH_ERROR_STATUS
res['x_response_reason_text'] = error_msg
return res
res['x_response_code'] = response.find('transactionResponse/responseCode').text
res['x_trans_id'] = response.find('transactionResponse/transId').text
res['x_type'] = 'void'
@@ -212,7 +212,7 @@ class AuthorizeForm(AuthorizeCommon):
'acquirer_id': authorize.id,
'type': 'server2server',
'currency_id': self.currency_usd.id,
'reference': 'test_ref_%s' % odoo.fields.Date.today(),
'reference': 'test_ref_%s' % int(time.time()),
'payment_token_id': payment_token.id,
'partner_id': self.buyer_id,
@@ -254,3 +254,20 @@ class AuthorizeForm(AuthorizeCommon):
self.assertEqual(transaction.state, 'authorized')
transaction.action_void()
self.assertEqual(transaction.state, 'cancel')
# try charging an unexisting profile
ghost_payment_token = payment_token.copy()
ghost_payment_token.authorize_profile = '99999999999'
# create normal s2s transaction
transaction = self.env['payment.transaction'].create({
'amount': 500,
'acquirer_id': authorize.id,
'type': 'server2server',
'currency_id': self.currency_usd.id,
'reference': 'test_ref_%s' % int(time.time()),
'payment_token_id': ghost_payment_token.id,
'partner_id': self.buyer_id,
})
transaction.authorize_s2s_do_transaction()
self.assertEqual(transaction.state, 'error')
+4 -4
View File
@@ -31,7 +31,7 @@ class PaypalController(http.Controller):
def _parse_pdt_response(self, response):
""" Parse a text response for a PDT verification.
:param response str: text response, structured in the following way:
:param str response: text response, structured in the following way:
STATUS\nkey1=value1\nkey2=value2...\n
or STATUS\nError message...\n
:rtype tuple(str, dict)
@@ -45,7 +45,7 @@ class PaypalController(http.Controller):
for line in lines:
split = line.split('=', 1)
if len(split) == 2:
pdt_post[split[0]] = urls.url_unquote_plus(split[1]).decode('utf8')
pdt_post[split[0]] = urls.url_unquote_plus(split[1])
else:
_logger.warning('Paypal: error processing pdt response: %s', line)
@@ -63,7 +63,7 @@ class PaypalController(http.Controller):
Once data is validated, process it. """
res = False
new_post = dict(post, cmd='_notify-validate')
new_post = dict(post, cmd='_notify-validate', charset='utf-8')
reference = post.get('item_number')
tx = None
if reference:
@@ -78,7 +78,7 @@ class PaypalController(http.Controller):
validate_url = paypal_urls['paypal_form_url']
urequest = requests.post(validate_url, new_post)
urequest.raise_for_status()
resp = urequest.content
resp = urequest.text
if pdt_request:
resp, post = self._parse_pdt_response(resp)
if resp in ['VERIFIED', 'SUCCESS']:
+1 -1
View File
@@ -554,7 +554,7 @@ exports.PosModel = Backbone.Model.extend({
.then(function(){ load_model(index + 1); },
function(err){ loaded.reject(err); });
}catch(err){
console.error(err.stack);
console.error(err.message, err.stack);
loaded.reject(err);
}
},function(err){
+14 -5
View File
@@ -73,12 +73,21 @@ var ScreenWidget = PosBaseWidget.extend({
// - if there's a user with a matching barcode, put it as the active 'cashier', go to cashier mode, and return true
// - else : do nothing and return false. You probably want to extend this to show and appropriate error popup...
barcode_cashier_action: function(code){
var self = this;
var users = this.pos.users;
for(var i = 0, len = users.length; i < len; i++){
if(users[i].barcode === code.code){
this.pos.set_cashier(users[i]);
this.chrome.widget.username.renderElement();
return true;
if (users[i].id !== this.pos.get_cashier().id && users[i].pos_security_pin) {
return this.gui.ask_password(users[i].pos_security_pin).then(function(){
self.pos.set_cashier(users[i]);
self.chrome.widget.username.renderElement();
return true;
});
} else {
this.pos.set_cashier(users[i]);
this.chrome.widget.username.renderElement();
return true;
}
}
}
this.barcode_error_action(code);
@@ -1087,10 +1096,10 @@ var ClientListScreenWidget = ScreenWidget.extend({
this.$('.searchbox input').on('keypress',function(event){
clearTimeout(search_timeout);
var query = this.value;
var searchbox = this;
search_timeout = setTimeout(function(){
self.perform_search(query,event.which === 13);
self.perform_search(searchbox.value, event.which === 13);
},70);
});
@@ -17,8 +17,7 @@ export DEBIAN_FRONTEND=noninteractive
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
apt-get update
apt-get -y dist-upgrade
apt-get update && apt-get -y upgrade
# Do not be too fast to upgrade to more recent firmware and kernel than 4.38
# Firmware 4.44 seems to prevent the LED mechanism from working
@@ -39,6 +38,8 @@ rm -rf /usr/share/doc
pip install pyusb==1.0.0b1
pip install qrcode
pip install evdev
pip install simplejson
pip install unittest2
# --upgrade because websocket_client in wheezy is bad:
# https://github.com/docker/compose/issues/1288
@@ -53,7 +54,6 @@ sudo -u postgres createuser -s pi
mkdir /var/log/odoo
chown pi:pi /var/log/odoo
chown pi:pi -R /home/pi/odoo/
chmod 770 -R /home/pi/odoo/
# logrotate is very picky when it comes to file permissions
chown -R root:root /etc/logrotate.d/
@@ -1,5 +1,5 @@
#!/bin/sh
wget 'https://downloads.raspberrypi.org/raspbian_lite_latest' -O raspbian.img.zip
wget 'http://downloads.raspberrypi.org/raspbian_lite/images/raspbian_lite-2017-07-05/2017-07-05-raspbian-jessie-lite.zip' -O raspbian.img.zip
unzip raspbian.img.zip
wget 'https://github.com/dhruvvyas90/qemu-rpi-kernel/raw/master/kernel-qemu-4.4.13-jessie' -O kernel-qemu
+2 -1
View File
@@ -252,7 +252,8 @@
<div class="clearfix" />
<div t-attf-class="form-group #{error.get('company_name') and 'has-error' or ''} col-lg-6">
<label class="control-label label-optional" for="company_name">Company Name</label>
<input type="text" name="company_name" class="form-control" t-att-value="company_name or partner.company_name"/>
<p t-if="partner.commercial_partner_id.is_company" class="form-control" t-esc="partner.commercial_company_name"/>
<input t-else="" type="text" name="company_name" class="form-control" t-att-value="company_name or partner.company_name"/>
</div>
<div t-if="has_check_vat" t-attf-class="form-group #{error.get('vat') and 'has-error' or ''} col-lg-6">
<label class="control-label label-optional" for="vat">VAT Number</label>
@@ -1,14 +1,17 @@
odoo.define('pos_discount.pos_discount', function (require) {
"use strict";
var core = require('web.core');
var screens = require('point_of_sale.screens');
var _t = core._t;
var DiscountButton = screens.ActionButtonWidget.extend({
template: 'DiscountButton',
button_click: function(){
var self = this;
this.gui.show_popup('number',{
'title': 'Discount Percentage',
'title': _t('Discount Percentage'),
'value': this.pos.config.discount_pc,
'confirm': function(val) {
val = Math.round(Math.max(0,Math.min(100,val)));
+14 -3
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 08:08+0000\n"
"PO-Revision-Date: 2017-11-16 08:08+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -762,6 +762,11 @@ msgstr ""
msgid "Active"
msgstr ""
#. module: project
#: model:ir.ui.view,arch_db:project.project_planner
msgid "Activities"
msgstr ""
#. module: project
#: model:ir.actions.act_window,name:project.mail_activity_type_action_config_project_types
#: model:ir.ui.menu,name:project.project_menu_config_activity_type
@@ -2352,6 +2357,11 @@ msgstr ""
msgid "Number of documents attached"
msgstr ""
#. module: project
#: model:ir.ui.view,arch_db:project.project_planner
msgid "Objectives"
msgstr ""
#. module: project
#: model:ir.ui.view,arch_db:project.project_planner
msgid "Odoo Project is a super fast and easy way to make your activities and tasks visible to\n"
@@ -2458,7 +2468,7 @@ msgid "Planner"
msgstr ""
#. module: project
#: code:addons/project/models/project.py:925
#: code:addons/project/models/project.py:887
#, python-format
msgid "Please remove existing tasks in the project linked to the accounts you want to delete."
msgstr ""
@@ -2587,6 +2597,7 @@ msgstr ""
#: model:ir.ui.view,arch_db:project.portal_layout
#: model:ir.ui.view,arch_db:project.portal_my_home
#: model:ir.ui.view,arch_db:project.portal_my_projects
#: model:ir.ui.view,arch_db:project.project_planner
#: model:ir.ui.view,arch_db:project.view_project
msgid "Projects"
msgstr ""
@@ -51,6 +51,13 @@
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record model="ir.rule" id="purchase_order_report_comp_rule">
<field name="name">Purchase Order Report multi-company</field>
<field name="model_id" ref="model_purchase_report"/>
<field name="global" eval="True"/>
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
</record>
<record id="portal_purchase_order_user_rule" model="ir.rule">
<field name="name">Portal Purchase Orders</field>
<field name="model_id" ref="purchase.model_purchase_order"/>
+8 -3
View File
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -20,3 +20,8 @@ msgstr ""
msgid "Purchase Order Line"
msgstr ""
#. module: purchase_mrp
#: model:ir.model,name:purchase_mrp.model_stock_move
msgid "Stock Move"
msgstr ""
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -268,7 +268,7 @@ msgstr ""
#. module: rating_project
#: model:ir.ui.view,arch_db:rating_project.rating_rating_view_search_project
msgid "Rating on tasks"
msgid "Rating for tasks"
msgstr ""
#. module: rating_project
@@ -281,17 +281,17 @@ msgstr ""
msgid "Ratings"
msgstr ""
#. module: rating_project
#: model:ir.actions.act_window,name:rating_project.rating_rating_action_view_project_rating_task
msgid "Ratings on tasks"
msgstr ""
#. module: rating_project
#: code:addons/rating_project/models/project.py:107
#, python-format
msgid "Ratings of %s"
msgstr ""
#. module: rating_project
#: model:ir.actions.act_window,name:rating_project.rating_rating_action_view_project_rating_task
msgid "Ratings on tasks"
msgstr ""
#. module: rating_project
#: model:ir.ui.view,arch_db:rating_project.res_config_settings_view_form
msgid "Set Email Template to Stages"
+8 -3
View File
@@ -4,10 +4,10 @@
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 10.saas~18\n"
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-09-20 09:53+0000\n"
"PO-Revision-Date: 2017-09-20 09:53+0000\n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -30,6 +30,11 @@ msgstr ""
msgid "Invoicing"
msgstr ""
#. module: sale_expense
#: model:ir.model,name:sale_expense.model_product_template
msgid "Product Template"
msgstr ""
#. module: sale_expense
#: model:ir.model.fields,field_description:sale_expense.field_hr_expense_sale_order_id
msgid "Sale Order"
+13 -1
View File
@@ -44,7 +44,19 @@ class PaymentTransaction(models.Model):
_logger.warning('<%s> transaction STATE INCORRECT for order %s (ID %s, state %s)', self.acquirer_id.provider, self.sale_order_id.name, self.sale_order_id.id, self.sale_order_id.state)
return 'pay_sale_invalid_doc_state'
if not float_compare(self.amount, self.sale_order_id.amount_total, 2) == 0:
_logger.warning('<%s> transaction AMOUNT MISMATCH for order %s (ID %s)', self.acquirer_id.provider, self.sale_order_id.name, self.sale_order_id.id)
_logger.warning(
'<%s> transaction AMOUNT MISMATCH for order %s (ID %s): expected %r, got %r',
self.acquirer_id.provider, self.sale_order_id.name, self.sale_order_id.id,
self.sale_order_id.amount_total, self.amount,
)
self.sale_order_id.message_post(
subject=_("Amount Mismatch (%s)") % self.acquirer_id.provider,
body=_("The sale order was not confirmed despite response from the acquirer (%s): SO amount is %r but acquirer replied with %r.") % (
self.acquirer_id.provider,
self.sale_order_id.amount_total,
self.amount,
)
)
return 'pay_sale_tx_amount'
if self.state == 'authorized' and self.acquirer_id.capture_manually:
+16 -3
View File
@@ -242,13 +242,26 @@ class SaleOrderLine(models.Model):
if float_compare(qty, line.product_uom_qty, precision_digits=precision) >= 0:
continue
if not line.order_id.procurement_group_id:
line.order_id.procurement_group_id = self.env['procurement.group'].create({
group_id = line.order_id.procurement_group_id
if not group_id:
group_id = self.env['procurement.group'].create({
'name': line.order_id.name, 'move_type': line.order_id.picking_policy,
'sale_id': line.order_id.id,
'partner_id': line.order_id.partner_shipping_id.id,
})
values = line._prepare_procurement_values(group_id=line.order_id.procurement_group_id)
line.order_id.procurement_group_id = group_id
else:
# In case the procurement group is already created and the order was
# cancelled, we need to update certain values of the group.
updated_vals = {}
if group_id.partner_id != line.order_id.partner_shipping_id:
updated_vals.update({'partner_id': line.order_id.partner_shipping_id.id})
if group_id.move_type != line.order_id.picking_policy:
updated_vals.update({'move_type': line.order_id.picking_policy})
if updated_vals:
group_id.write(updated_vals)
values = line._prepare_procurement_values(group_id=group_id)
product_qty = line.product_uom_qty - qty
try:
self.env['procurement.group'].run(line.product_id, product_qty, line.product_uom, line.order_id.partner_shipping_id.property_stock_customer, line.name, line.order_id.name, values)
@@ -273,3 +273,34 @@ class TestSaleStock(TestSale):
})
# a single picking should be created for the new delivery
self.assertEquals(len(self.so.picking_ids), 2)
def test_05_confirm_cancel_confirm(self):
""" Confirm a sale order, cancel it, set to quotation, change the
partner, confirm it again: the second delivery order should have
the new partner.
"""
item1 = self.products['prod_order']
partner1 = self.partner.id
partner2 = self.env.ref('base.res_partner_2').id
so1 = self.env['sale.order'].create({
'partner_id': partner1,
'order_line': [(0, 0, {
'name': item1.name,
'product_id': item1.id,
'product_uom_qty': 1,
'product_uom': item1.uom_id.id,
'price_unit': item1.list_price,
})],
})
so1.action_confirm()
self.assertEqual(len(so1.picking_ids), 1)
self.assertEqual(so1.picking_ids.partner_id.id, partner1)
so1.action_cancel()
so1.action_draft()
so1.partner_id = partner2
so1.partner_shipping_id = partner2 # set by an onchange
so1.action_confirm()
self.assertEqual(len(so1.picking_ids), 2)
picking2 = so1.picking_ids.filtered(lambda p: p.state != 'cancel')
self.assertEqual(picking2.partner_id.id, partner2)
+15
View File
@@ -231,6 +231,21 @@ class CommonTest(common.SavepointCase):
'currency_id': cls.env.ref('base.USD').id,
'company_id': cls.env.user.company_id.id,
})
cls.bank_journal_euro = cls.env['account.journal'].create({
'name': 'Sale Journal - Test',
'type': 'sale',
'code': 'SJT',
'currency_id': cls.env.ref('base.EUR').id,
})
cls.bank_journal_usd = cls.env['account.journal'].create({
'name': 'Sale Journal - Test US',
'type': 'sale',
'code': 'SJTU',
'currency_id': cls.env.ref('base.USD').id,
})
cls.pricelist_eur = cls.env['product.pricelist'].create({
'name': 'EUR pricelist',
'active': True,
+78 -63
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 08:08+0000\n"
"PO-Revision-Date: 2017-11-16 08:08+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -43,7 +43,7 @@ msgid "#Products"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:480
#: code:addons/stock/models/stock_warehouse.py:481
#, python-format
msgid "%s: Supply Product from %s"
msgstr ""
@@ -495,7 +495,7 @@ msgid "A classic sales flow looks like the following:"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:85
#: code:addons/stock/models/stock_move_line.py:86
#, python-format
msgid "A done move line should never have a reserved quantity."
msgstr ""
@@ -508,7 +508,7 @@ msgid "A good inventory management aims to optimize stock levels: not too low (o
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:75
#: code:addons/stock/models/stock_quant.py:76
#, python-format
msgid "A serial number should only be linked to a single product."
msgstr ""
@@ -638,7 +638,7 @@ msgid "Allow moving packs"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:81
#: code:addons/stock/models/stock_quant.py:82
#, python-format
msgid "An incoming date cannot be set to an untracked product."
msgstr ""
@@ -774,7 +774,7 @@ msgid "Back order <em>%s</em> <b>cancelled</b>."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:774
#: code:addons/stock/models/stock_picking.py:790
#, python-format
msgid "Back order <em>%s</em> <b>created</b>."
msgstr ""
@@ -873,7 +873,7 @@ msgid "By Unique Serial Number"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:600
#: code:addons/stock/models/stock_move.py:612
#, python-format
msgid "By changing this quantity here, you accept the new quantity as complete: Odoo will not automatically generate a back order."
msgstr ""
@@ -930,7 +930,7 @@ msgid "Can't find any customer or supplier location."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:475
#: code:addons/stock/models/stock_warehouse.py:476
#, python-format
msgid "Can't find any generic Make To Order route."
msgstr ""
@@ -1290,7 +1290,7 @@ msgid "Create Backorder"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:699
#: code:addons/stock/models/stock_picking.py:715
#, python-format
msgid "Create Backorder?"
msgstr ""
@@ -1557,7 +1557,7 @@ msgstr ""
#. module: stock
#: model:ir.model.fields,field_description:stock.field_res_config_settings_module_delivery_dhl
msgid "DHL USA"
msgid "DHL"
msgstr ""
#. module: stock
@@ -1992,7 +1992,7 @@ msgid "Every stock operation in Odoo moves the products from one\n"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:397
#: code:addons/stock/models/stock_quant.py:407
#, python-format
msgid "Everything inside a package should be in the same location"
msgstr ""
@@ -2304,7 +2304,7 @@ msgstr ""
#: model:ir.model.fields,field_description:stock.field_stock_picking_type_id
#: model:ir.model.fields,field_description:stock.field_stock_production_lot_id
#: model:ir.model.fields,field_description:stock.field_stock_quant_id
#: model:ir.model.fields,field_description:stock.field_stock_quant_package_id_6902
#: model:ir.model.fields,field_description:stock.field_stock_quant_package_id_6904
#: model:ir.model.fields,field_description:stock.field_stock_quantity_history_id
#: model:ir.model.fields,field_description:stock.field_stock_return_picking_id
#: model:ir.model.fields,field_description:stock.field_stock_return_picking_line_id
@@ -2319,13 +2319,13 @@ msgid "ID"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_inventory.py:406
#: code:addons/stock/models/stock_inventory.py:412
#, python-format
msgid "INV:"
msgstr ""
#. module: stock
#: code:addons/stock/wizard/stock_change_product_qty.py:94
#: code:addons/stock/wizard/stock_change_product_qty.py:97
#, python-format
msgid "INV: %s"
msgstr ""
@@ -2471,7 +2471,7 @@ msgid "Immediate Transfer"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:662
#: code:addons/stock/models/stock_picking.py:678
#, python-format
msgid "Immediate Transfer?"
msgstr ""
@@ -2862,11 +2862,16 @@ msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:254
#: code:addons/stock/models/stock_quant.py:256
#, python-format
msgid "It is not possible to reserve more products of %s than you have in stock."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:256
#, python-format
msgid "It is not possible to unreserve more products of %s than you have in stock."
msgstr ""
#. module: stock
#: model:ir.ui.view,arch_db:stock.inventory_planner
msgid "It is therefore a good idea to check and try to resolve those procurement\n"
@@ -3111,6 +3116,7 @@ msgstr ""
#: model:ir.model.fields,field_description:stock.field_stock_scrap_location_id
#: model:ir.model.fields,field_description:stock.field_stock_warehouse_orderpoint_location_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_location_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_repair_location_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_scrap_location_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_unbuild_location_id
#: model:ir.ui.view,arch_db:stock.quant_search_view
@@ -3261,7 +3267,7 @@ msgid "MTO rule"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:473
#: code:addons/stock/models/stock_warehouse.py:474
#: model:stock.location.route,name:stock.route_warehouse0_mto
#, python-format
msgid "Make To Order"
@@ -3522,8 +3528,8 @@ msgid "New"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:172
#: code:addons/stock/models/stock_picking.py:584
#: code:addons/stock/models/stock_move_line.py:173
#: code:addons/stock/models/stock_picking.py:597
#, python-format
msgid "New Move:"
msgstr ""
@@ -3560,7 +3566,7 @@ msgid "No Tracking"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:388
#: code:addons/stock/models/stock_move_line.py:389
#, python-format
msgid "No negative quantities allowed"
msgstr ""
@@ -3613,7 +3619,7 @@ msgid "Notes"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:531
#: code:addons/stock/models/stock_picking.py:544
#, python-format
msgid "Nothing to check the availability for."
msgstr ""
@@ -4191,13 +4197,13 @@ msgid "Planner"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:636
#: code:addons/stock/models/stock_picking.py:649
#, python-format
msgid "Please add some lines to move"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:805
#: code:addons/stock/models/stock_picking.py:823
#, python-format
msgid "Please process some quantities to put in the pack first!"
msgstr ""
@@ -4344,6 +4350,7 @@ msgstr ""
#: model:ir.model.fields,field_description:stock.field_stock_scrap_product_id
#: model:ir.model.fields,field_description:stock.field_stock_warehouse_orderpoint_product_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_product_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_repair_product_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_scrap_product_id
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_unbuild_product_id
#: model:ir.ui.view,arch_db:stock.quant_search_view
@@ -4357,7 +4364,7 @@ msgid "Product"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_location.py:173
#: code:addons/stock/models/stock_location.py:180
#: model:ir.model.fields,field_description:stock.field_stock_location_route_categ_ids
#: model:ir.ui.menu,name:stock.menu_product_category_config_stock
#: model:ir.ui.view,arch_db:stock.stock_location_route_form_view
@@ -4463,7 +4470,7 @@ msgid "Production Location"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_location.py:163
#: code:addons/stock/models/stock_location.py:170
#: code:addons/stock/wizard/stock_quantity_history.py:29
#: model:ir.actions.act_window,name:stock.act_product_location_open
#: model:ir.actions.act_window,name:stock.product_template_action_product
@@ -4578,6 +4585,7 @@ msgstr ""
#. module: stock
#: model:ir.model.fields,field_description:stock.field_stock_location_quant_ids
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_quant_ids
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_repair_quant_ids
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_scrap_quant_ids
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_unbuild_quant_ids
msgid "Quant"
@@ -4628,11 +4636,17 @@ msgid "Quantity Reserved"
msgstr ""
#. module: stock
#: code:addons/stock/wizard/stock_change_product_qty.py:77
#: code:addons/stock/wizard/stock_change_product_qty.py:80
#, python-format
msgid "Quantity cannot be negative."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:611
#, python-format
msgid "Quantity decreased!"
msgstr ""
#. module: stock
#: model:ir.model.fields,help:stock.field_stock_move_availability
msgid "Quantity in stock that can still be reserved for this move"
@@ -4683,7 +4697,7 @@ msgid "Quants"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:69
#: code:addons/stock/models/stock_quant.py:70
#, python-format
msgid "Quants cannot be created for consumables or services."
msgstr ""
@@ -4822,7 +4836,7 @@ msgid "Removal Strategy"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:104
#: code:addons/stock/models/stock_quant.py:111
#, python-format
msgid "Removal strategy %s not implemented."
msgstr ""
@@ -5056,7 +5070,7 @@ msgid "Scheduled time for the first part of the shipment to be processed. Settin
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:818
#: code:addons/stock/models/stock_picking.py:836
#: model:ir.model.fields,field_description:stock.field_stock_move_scrap_ids
#: model:ir.model.fields,field_description:stock.field_stock_warn_insufficient_qty_scrap_scrap_id
#: model:ir.ui.menu,name:stock.menu_stock_scrap
@@ -5158,31 +5172,31 @@ msgid "Sequence"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:678
#: code:addons/stock/models/stock_warehouse.py:685
#, python-format
msgid "Sequence in"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:682
#: code:addons/stock/models/stock_warehouse.py:689
#, python-format
msgid "Sequence internal"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:679
#: code:addons/stock/models/stock_warehouse.py:686
#, python-format
msgid "Sequence out"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:680
#: code:addons/stock/models/stock_warehouse.py:687
#, python-format
msgid "Sequence packing"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:681
#: code:addons/stock/models/stock_warehouse.py:688
#, python-format
msgid "Sequence picking"
msgstr ""
@@ -5684,7 +5698,7 @@ msgid "The average delay in days between the confirmation of the customer order
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:1033
#: code:addons/stock/models/stock_move.py:1065
#, python-format
msgid "The backorder <a href=# data-oe-model=stock.picking data-oe-id=%d>%s</a> has been created."
msgstr ""
@@ -5790,7 +5804,7 @@ msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:266
#: code:addons/stock/models/stock_move_line.py:79
#: code:addons/stock/models/stock_move_line.py:80
#, python-format
msgid "The requested operation cannot be processed because of a programming error setting the `product_qty` field instead of the `product_uom_qty`."
msgstr ""
@@ -6163,7 +6177,7 @@ msgid "Units of Measures"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:311
#: code:addons/stock/models/stock_quant.py:321
#, python-format
msgid "Unknown Pack"
msgstr ""
@@ -6410,7 +6424,7 @@ msgid "Warehouse to Propagate"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:704
#: code:addons/stock/models/stock_warehouse.py:711
#, python-format
msgid "Warehouse's Routes"
msgstr ""
@@ -6425,7 +6439,7 @@ msgid "Warehouses"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:109
#: code:addons/stock/models/stock_move_line.py:110
#: selection:res.partner,picking_warn:0
#, python-format
msgid "Warning"
@@ -6564,7 +6578,7 @@ msgid "You are not allowed to create a lot for this picking type"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:622
#: code:addons/stock/models/stock_move.py:636
#, python-format
msgid "You are using a unit of measure smaller than the one you are using in order to stock your product. This can lead to rounding problem on reserved quantity! You should use the smaller unit of measure possible in order to valuate your stock or change its rounding precision to a smaller value (example: 0.00001)."
msgstr ""
@@ -6602,7 +6616,7 @@ msgid "You can either do it immediately or mark it as Todo for future processing
msgstr ""
#. module: stock
#: code:addons/stock/models/product.py:509
#: code:addons/stock/models/product.py:511
#, python-format
msgid "You can not change the type of a product that is currently reserved on a stock move. If you need to change the type, you should first unreserve the stock move."
msgstr ""
@@ -6614,31 +6628,31 @@ msgid "You can not change the unit of measure of a product that has already been
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:337
#: code:addons/stock/models/stock_move_line.py:338
#, python-format
msgid "You can not delete product moves if the picking is done. You can only correct the done quantities."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:115
#: code:addons/stock/models/stock_move_line.py:116
#, python-format
msgid "You can not enter negative quantities!"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_inventory.py:392
#: code:addons/stock/models/stock_inventory.py:398
#, python-format
msgid "You can only adjust stockable products."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:1041
#: code:addons/stock/models/stock_move.py:1073
#, python-format
msgid "You can only delete draft moves."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:125
#: code:addons/stock/models/stock_move_line.py:126
#, python-format
msgid "You can only process 1.0 %s for products with unique serial number."
msgstr ""
@@ -6649,7 +6663,7 @@ msgid "You can review and edit the predefined units via the"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:913
#: code:addons/stock/models/stock_move.py:936
#, python-format
msgid "You cannot cancel a stock move that has been set to 'Done'."
msgstr ""
@@ -6661,7 +6675,7 @@ msgid "You cannot delete a scrap which is done."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_inventory.py:380
#: code:addons/stock/models/stock_inventory.py:386
#, python-format
msgid "You cannot have two inventory adjustements in state 'in Progress' with the same product(%s), same location(%s), same package, same owner and same lot. Please first validatethe first inventory adjustement with this product before creating another one."
msgstr ""
@@ -6674,19 +6688,19 @@ msgid "You cannot set a negative product quantity in an inventory line:\n"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:1097
#: code:addons/stock/models/stock_move.py:1101
#, python-format
msgid "You cannot split a draft move. It needs to be confirmed first."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:1093
#: code:addons/stock/models/stock_move.py:1097
#, python-format
msgid "You cannot split a move done"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_quant.py:87
#: code:addons/stock/models/stock_quant.py:88
#, python-format
msgid "You cannot take products from or deliver products to a location of type \"view\"."
msgstr ""
@@ -6698,18 +6712,18 @@ msgstr ""
msgid "You cannot use the same serial number twice. Please correct the serial numbers encoded."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:656
#, python-format
msgid "You cannot validate a transfer if you have not processed any quantity."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:672
#, python-format
msgid "You cannot validate a transfer if you have not processed any quantity for %s."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_picking.py:656
#, python-format
msgid "You cannot validate a transfer if you have not processed any quantity."
msgstr ""
#. module: stock
#: model:ir.ui.view,arch_db:stock.report_picking
msgid "You do not have any products reserved for this picking. Please click the 'Reserve' button\n"
@@ -6717,7 +6731,7 @@ msgid "You do not have any products reserved for this picking. Please click the
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:131
#: code:addons/stock/models/stock_move_line.py:132
#, python-format
msgid "You have already assigned this serial number to this product. Please correct the serial numbers encoded."
msgstr ""
@@ -6746,13 +6760,13 @@ msgid "You have products in stock that have no lot number. You can assign seria
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_warehouse.py:788
#: code:addons/stock/models/stock_warehouse.py:795
#, python-format
msgid "You have to select a product unit of measure in the same category than the default unit of measure of the product"
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_location.py:91
#: code:addons/stock/models/stock_location.py:98
#, python-format
msgid "You have to set a name for this location."
msgstr ""
@@ -6777,19 +6791,20 @@ msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move_line.py:387
#: code:addons/stock/models/stock_picking.py:669
#: code:addons/stock/models/stock_picking.py:670
#, python-format
msgid "You need to supply a lot/serial number for %s."
msgstr ""
#. module: stock
#: code:addons/stock/models/stock_move.py:1043
#: code:addons/stock/models/stock_move.py:1047
#, python-format
msgid "You should not put the contents of a package in different locations."
msgstr ""
#. module: stock
#: code:addons/stock/models/product.py:369
#: code:addons/stock/models/product.py:504
#, python-format
msgid "You still have some active reordering rules on this product. Please archive or delete them first."
msgstr ""
@@ -37,3 +37,4 @@ class StockImmediateTransfer(models.TransientModel):
pick_to_do.action_done()
if pick_to_backorder:
return pick_to_backorder.action_generate_backorder_wizard()
return False
+38 -8
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-10 11:34+0000\n"
"PO-Revision-Date: 2017-10-10 11:34+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -63,13 +63,13 @@ msgid "Cancel"
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:409
#: code:addons/stock_account/models/stock.py:452
#, python-format
msgid "Cannot find a stock input account for the product %s. You must define one on the product category, or on the location, before processing this operation."
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:411
#: code:addons/stock_account/models/stock.py:454
#, python-format
msgid "Cannot find a stock output account for the product %s. You must define one on the product category, or on the location, before processing this operation."
msgstr ""
@@ -86,6 +86,12 @@ msgstr ""
msgid "Change Standard Price"
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/product.py:243
#, python-format
msgid "Changing your cost method is an important change that will impact your inventory valuation. Are you sure you want to make that change?"
msgstr ""
#. module: stock_account
#: model:ir.model.fields,help:stock_account.field_stock_inventory_accounting_date
msgid "Choose the accounting date at which you want to value the stock moves created by the inventory instead of the default one (the inventory end date)"
@@ -97,7 +103,7 @@ msgid "Click to create a stock movement."
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:480
#: code:addons/stock_account/models/stock.py:523
#, python-format
msgid "Configuration error. Please configure the price difference account on the product or its category to process this operation."
msgstr ""
@@ -438,11 +444,29 @@ msgid "Templates for Account Chart"
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:435
#: code:addons/stock_account/models/stock.py:478
#, python-format
msgid "The cost of %s is currently equal to 0. Change the cost or the configuration of your product to avoid an incorrect valuation."
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:309
#, python-format
msgid "The move lines are not in a consistent state: some are entering and other are leaving the company. "
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:320
#, python-format
msgid "The move lines are not in a consistent states: they are doing an intercompany in a single step while they should go through the intercompany transit location."
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:318
#, python-format
msgid "The move lines are not in a consistent states: they do not share the same origin or destination company."
msgstr ""
#. module: stock_account
#: model:ir.model.fields,field_description:stock_account.field_stock_move_to_refund
#: model:ir.model.fields,field_description:stock_account.field_stock_return_picking_line_to_refund
@@ -492,6 +516,12 @@ msgstr ""
msgid "Value"
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/product.py:242
#, python-format
msgid "Warning"
msgstr ""
#. module: stock_account
#: model:ir.model.fields,help:stock_account.field_product_category_property_stock_account_input_categ_id
msgid "When doing real-time inventory valuation, counterpart journal items for all incoming stock moves will be posted in this account, unless there is a specific valuation account set on the source location. This is the default value for all products in this category. It can also directly be set on each product"
@@ -525,14 +555,14 @@ msgid "When real-time inventory valuation is enabled on a product, this account
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/stock.py:407
#: code:addons/stock_account/models/stock.py:450
#, python-format
msgid "You don't have any stock journal defined on your product category, check if you have installed a chart of accounts"
msgstr ""
#. module: stock_account
#: code:addons/stock_account/models/product.py:130
#: code:addons/stock_account/models/stock.py:413
#: code:addons/stock_account/models/stock.py:456
#, python-format
msgid "You don't have any stock valuation account defined on your product category. You must define one before processing this operation."
msgstr ""
@@ -11,10 +11,11 @@ class StockImmediateTransfer(models.TransientModel):
def process(self):
backorder_wizard_dict = super(StockImmediateTransfer, self).process()
# If the immediate transfer wizard process all our picking but with some back order maybe needed we want to add the backorder already passed to the wizard.
if backorder_wizard_dict is not None:
if backorder_wizard_dict:
backorder_wizard = self.env['stock.backorder.confirmation'].browse(backorder_wizard_dict.get('res_id', False))
backorder_wizard.write({'pick_ids': [(4, p.id) for p in self.pick_to_backorder_ids]})
return backorder_wizard_dict
# If there is no backorder returned by the immediate transfer basic function we still wanted to process those manually given
elif self.pick_to_backorder_ids:
return self.pick_to_backorder_ids.action_generate_backorder_wizard()
return False
+2 -1
View File
@@ -6,6 +6,7 @@ var core = require('web.core');
var time = require('web.time');
var ajax = require('web.ajax');
var base = require('web_editor.base');
var context = require('web_editor.context');
var field_utils = require('web.field_utils');
var _t = core._t;
@@ -171,7 +172,7 @@ if(!the_form.length) {
// });
function load_locale(){
var url = "/web/webclient/locale/" + base.get_context().lang || 'en_US';
var url = "/web/webclient/locale/" + context.get().lang || 'en_US';
return ajax.loadJS(url);
}
+13
View File
@@ -170,6 +170,19 @@ Content-Type: text/html;
--Apple-Mail=_9331E12B-8BD2-4EC7-B53E-01F3FBEC9227--
"""
MAIL_SINGLE_BINARY = """X-Original-To: raoul@grosbedon.fr
Delivered-To: raoul@grosbedon.fr
Received: by mail1.grosbedon.com (Postfix, from userid 10002)
id E8166BFACA; Fri, 23 Aug 2013 13:18:01 +0200 (CEST)
From: "Bruce Wayne" <bruce@wayneenterprises.com>
Content-Type: application/pdf;
Content-Disposition: filename=thetruth.pdf
Content-Transfer-Encoding: base64
Message-Id: <6BB1FAB2-2104-438E-9447-07AE2C8C4A92@sexample.com>
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
SSBhbSB0aGUgQmF0TWFuCg=="""
MAIL_MULTIPART_IMAGE = """X-Original-To: raoul@example.com
Delivered-To: micheline@example.com
+6 -1
View File
@@ -5,7 +5,9 @@ import socket
from email.utils import formataddr
from odoo.addons.test_mail.data.test_mail_data import MAIL_TEMPLATE, MAIL_TEMPLATE_PLAINTEXT, MAIL_MULTIPART_MIXED, MAIL_MULTIPART_MIXED_TWO, MAIL_MULTIPART_IMAGE
from odoo.addons.test_mail.data.test_mail_data import \
MAIL_TEMPLATE, MAIL_TEMPLATE_PLAINTEXT, MAIL_MULTIPART_MIXED, MAIL_MULTIPART_MIXED_TWO, \
MAIL_MULTIPART_IMAGE, MAIL_SINGLE_BINARY
from odoo.addons.test_mail.tests.common import BaseFunctionalTest, MockEmails
from odoo.tools import mute_logger
@@ -44,6 +46,9 @@ class TestEmailParsing(BaseFunctionalTest, MockEmails):
self.assertIn('Second part', res['body'],
'message_parse: second part of the html version should be in body after parsing multipart/mixed')
res = self.env['mail.thread'].message_parse(MAIL_SINGLE_BINARY)
self.assertEqual(res['body'], '')
self.assertEqual(res['attachments'][0][0], 'thetruth.pdf')
class TestMailgateway(BaseFunctionalTest, MockEmails):
+297 -271
View File
File diff suppressed because it is too large Load Diff
+21 -10
View File
@@ -10,7 +10,7 @@
* only when the deferred is resolved, and its value is equal to the resolved value.
* The module can be rejected (unloaded). This will be logged in the console as info.
*
* logs:
* logs:
* Missing dependencies:
* These modules do not appear in the page. It is possible that the
* JavaScript file is not in the page or that the module name is wrong
@@ -185,16 +185,27 @@
failed = odoo.__DEBUG__.get_failed_jobs();
var unloaded = _.filter(debug_jobs, function (job) { return job.missing; });
var log = [(_.isEmpty(failed) ? (_.isEmpty(unloaded) ? 'info' : 'warning' ) : 'error') + ':', 'Some modules could not be started'];
if (missing.length) log.push('\nMissing dependencies: ', missing);
if (!_.isEmpty(failed)) log.push('\nFailed modules: ', _.pluck(failed, 'name'));
if (!_.isEmpty(rejected)) log.push('\nRejected modules: ', rejected);
if (!_.isEmpty(rejected_linked))log.push('\nRejected linked modules:', rejected_linked);
if (!_.isEmpty(unloaded)) log.push('\nNon loaded modules: ', _.pluck(unloaded, 'name'));
if (odoo.debug && !_.isEmpty(debug_jobs)) log.push('\nDebug: ', debug_jobs);
if (odoo.debug || !_.isEmpty(failed) || !_.isEmpty(unloaded)) {
console[_.isEmpty(failed) || _.isEmpty(unloaded) ? 'info' : 'error'].apply(console, log);
var log = console[_.isEmpty(failed) || _.isEmpty(unloaded) ? 'info' : 'error'].bind(console);
log((_.isEmpty(failed) ? (_.isEmpty(unloaded) ? 'info' : 'warning') : 'error') + ': Some modules could not be started');
if (missing.length) {
log('Missing dependencies: ', missing);
}
if (!_.isEmpty(failed)) {
log('Failed modules: ', _.pluck(failed, 'name'));
}
if (!_.isEmpty(rejected)) {
log('Rejected modules: ', rejected);
}
if (!_.isEmpty(rejected_linked)) {
log('Rejected linked modules: ', rejected_linked);
}
if (!_.isEmpty(unloaded)) {
log('Non loaded modules: ', _.pluck(unloaded, 'name'));
}
if (odoo.debug && !_.isEmpty(debug_jobs)) {
log('Debug: ', debug_jobs);
}
}
}
odoo.__DEBUG__.js_modules = {
+2 -1
View File
@@ -70,7 +70,8 @@
/*Total table*/
.row > .col-xs-4 {
width: 43%;
margin-top: -20px;
position: relative;
top: -20px;
> table {
tr:last-child td {
border-top: 1px solid @gray-lighter !important;
@@ -309,6 +309,8 @@ var FieldTextHtml = AbstractField.extend({
old_initialize_content: function () {
this.$el.closest('.modal-body').css('max-height', 'none');
this.$iframe = this.$el.find('iframe');
// deactivate any button to avoid saving a not ready iframe
$('.o_cp_buttons, .o_statusbar_buttons').find('button').addClass('o_disabled').attr('disabled', true);
this.document = null;
this.$body = $();
this.$content = $();
@@ -324,6 +326,8 @@ var FieldTextHtml = AbstractField.extend({
this.render();
this.add_button();
this.loaded = true;
// reactivate all the buttons when the field's content (the iframe) is loaded
$('.o_cp_buttons, .o_statusbar_buttons').find('button').removeClass('o_disabled').attr('disabled', false);
setTimeout(self.resize, 0);
},
on_editor_loaded: function (EditorBar) {
@@ -469,7 +469,7 @@ var fontIconsDialog = Widget.extend({
e.stopPropagation();
this.$('#fa-icon').val(e.target.getAttribute('data-id'));
$(".font-icons-icon").removeClass("o_selected");
this.$(".font-icons-icon").removeClass("o_selected");
$(e.target).addClass("o_selected");
},
'dblclick .font-icons-icon': function () {
@@ -595,7 +595,7 @@ var fontIconsDialog = Widget.extend({
continue;
case '': continue;
default:
$(".font-icons-icon").removeClass("o_selected").filter("[data-alias*=',"+cls+",']").addClass("o_selected");
this.$(".font-icons-icon").removeClass("o_selected").filter("[data-alias*=',"+cls+",']").addClass("o_selected");
if (this.alias.indexOf(cls) !== -1) {
this.$('#fa-icon').val(cls);
}
+2 -2
View File
@@ -221,7 +221,7 @@
<record id="website.library_image_02" model="ir.attachment">
<field name="public" eval="True"/>
<field name="name">Website Library Image 02</field>
<field name="datas_fname">deliver.png</field>
<field name="datas_fname">deliver.jpg</field>
<field name="res_model">ir.ui.view</field>
<field name="type">url</field>
<field name="url">/website/static/src/img/library/deliver.jpg</field>
@@ -266,7 +266,7 @@
<record id="website.library_image_07" model="ir.attachment">
<field name="public" eval="True"/>
<field name="name">Website Library Image 07</field>
<field name="datas_fname">mobile_device.png</field>
<field name="datas_fname">mobile_device.jpg</field>
<field name="res_model">ir.ui.view</field>
<field name="type">url</field>
<field name="url">/website/static/src/img/library/mobile_device.jpg</field>
+20 -19
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-16 08:08+0000\n"
"PO-Revision-Date: 2017-11-16 08:08+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -84,6 +84,12 @@ msgstr ""
msgid "(e.g. business name, location) tends to improve your ranking in search engines and consequently increases your traffic. Do it:"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.layout_footer_copyright
msgid ",\n"
" the #1"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.show_website_info
msgid ",\n"
@@ -1231,11 +1237,6 @@ msgstr ""
msgid "Create Page"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.layout_footer_copyright
msgid "Create a"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.res_config_settings_view_form
msgid "Create a Google Project and Get a Key"
@@ -1958,7 +1959,7 @@ msgstr ""
#. module: website
#: model:ir.model.fields,field_description:website.field_website_id
#: model:ir.model.fields,field_description:website.field_website_menu_id_7239
#: model:ir.model.fields,field_description:website.field_website_menu_id_7241
#: model:ir.model.fields,field_description:website.field_website_page_id
#: model:ir.model.fields,field_description:website.field_website_published_mixin_id
#: model:ir.model.fields,field_description:website.field_website_redirect_id
@@ -2101,7 +2102,7 @@ msgstr ""
#. module: website
#. openerp-web
#: code:addons/website/static/src/js/content/website_root.js:209
#: code:addons/website/static/src/js/content/website_root.js:212
#, python-format
msgid "It might be possible to edit the relevant items or fix the issue in <a href=\"%s\">the classic Odoo interface</a>"
msgstr ""
@@ -2605,6 +2606,11 @@ msgstr ""
msgid "Open Source ERP"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.layout_footer_copyright
msgid "Open Source eCommerce"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.user_navbar
msgid "Optimize SEO"
@@ -2808,6 +2814,11 @@ msgstr ""
msgid "Post content on other people blogs, forums, websites, that are related to your environment."
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.layout_footer_copyright
msgid "Powered by"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.kanban_contain
msgid "Prev"
@@ -4205,11 +4216,6 @@ msgstr ""
msgid "found(s)"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.layout_footer_copyright
msgid "free website"
msgstr ""
#. module: website
#. openerp-web
#: code:addons/website/static/src/xml/website.seo.xml:28
@@ -4381,11 +4387,6 @@ msgstr ""
msgid "will help you:"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.layout_footer_copyright
msgid "with"
msgstr ""
#. module: website
#: model:ir.ui.view,arch_db:website.500
msgid "yes"
+1 -1
View File
@@ -21,7 +21,7 @@ class Partner(models.Model):
return False
params = {
'center': '%s, %s %s, %s' % (self.street or '', self.city or '', self.zip or '', self.country_id and self.country_id.name_get()[0][1] or ''),
'size': "%sx%s" % (height, width),
'size': "%sx%s" % (width, height),
'zoom': zoom,
'sensor': 'false',
'key': google_maps_api_key,
@@ -591,7 +591,11 @@ registry.mediaVideo = Animation.extend({
* @override
*/
start: function () {
if (!this.$target.has('> iframe').length) {
// TODO: this code should be refactored to make more sense and be better
// integrated with Odoo (this refactoring should be done in master).
this.$target.find('iframe').remove();
if (!this.$target.has('.media_iframe_video_size').length) {
var editor = '<div class="css_editableMode_display">&nbsp;</div>';
var size = '<div class="media_iframe_video_size">&nbsp;</div>';
this.$target.html(editor+size);
@@ -130,17 +130,20 @@ var WebsiteRoot = BodyManager.extend({
*
* @private
* @param {boolean} [editableMode=false] - true if the page is in edition mode
* @param {jQuery} [$initTarget]
* only initialize the animations whose `selector` matches the element
* @param {jQuery} [$from]
* only initialize the animations whose `selector` matches the
* element or one of its descendant (default to the wrapwrap element)
* @returns {Deferred}
*/
_startAnimations: function (editableMode, $initTarget) {
_startAnimations: function (editableMode, $from) {
var self = this;
editableMode = editableMode || false;
var $wrapwrap = this.$('#wrapwrap');
if ($from === undefined) {
$from = this.$('#wrapwrap');
}
var defs = _.map(sAnimation.registry, function (Animation, animationName) {
var selector = Animation.prototype.selector || '';
var $target = $initTarget ? $initTarget.filter(selector) : $wrapwrap.find(selector).addBack(selector);
var $target = $from.find(selector).addBack(selector);
var defs = _.map($target, function (el) {
var $snippet = $(el);
@@ -102,6 +102,7 @@
<t t-set="head">
<link t-att-href="'/blog/%s/feed' % (blog.id)" type="application/atom+xml" rel="alternate" title="Atom Feed"/>
</t>
<div class="oe_structure"/>
<div class="container">
<t t-call="website.pager" >
<t t-set="classname">pull-right</t>
@@ -169,7 +169,7 @@ class WebsiteAccount(CustomerPortal):
return request.render(
"website_crm_partner_assign.portal_my_opportunity", {
'opportunity': opp,
'user_activity': opp.activity_ids.filtered(lambda activity: activity.user_id == request.env.user)[:1],
'user_activity': opp.sudo().activity_ids.filtered(lambda activity: activity.user_id == request.env.user)[:1],
'stages': request.env['crm.stage'].search([('probability', '!=', '100')], order='sequence desc'),
'activity_types': request.env['mail.activity.type'].sudo().search([]),
'states': request.env['res.country.state'].sudo().search([]),
@@ -3,9 +3,9 @@
import random
from odoo.addons.base_geolocalize.models.res_partner import geo_find, geo_query_address
from odoo import api, fields, models, _
from odoo.addons.base_geolocalize.models.res_partner import geo_find, geo_query_address
from odoo.exceptions import AccessDenied
class CrmLead(models.Model):
_inherit = "crm.lead"
@@ -254,9 +254,10 @@ class CrmLead(models.Model):
@api.model
def create_opp_portal(self, values):
if self.env.user.partner_id.grade_id or self.env.user.commercial_partner_id.grade_id:
user = self.env.user
self = self.sudo()
if not (self.env.user.partner_id.grade_id or self.env.user.commercial_partner_id.grade_id):
raise AccessDenied()
user = self.env.user
self = self.sudo()
if not (values['contact_name'] and values['description'] and values['title']):
return {
'errors': _('All fields are required !')
@@ -272,7 +272,7 @@
<h3>
My Opportunities
<t t-call="portal.portal_searchbar"/>
<button name='new_opp' data-toggle="modal" data-target=".modal_new_opp" class="btn btn-default pull-right mr8"><i class="fa fa-plus fa-lg" /></button>
<button t-if="request.env.user.partner_id.grade_id or request.env.user.commercial_partner_id.grade_id" name='new_opp' data-toggle="modal" data-target=".modal_new_opp" class="btn btn-default pull-right mr8"><i class="fa fa-plus fa-lg" /></button>
</h3>
<div class="modal fade modal_new_opp" role="form" aria-hidden="true">
<div class="modal-dialog">
+1 -1
View File
@@ -153,7 +153,7 @@ class WebsiteEventController(http.Controller):
# page not found
values['path'] = re.sub(r"^website_event\.", '', page)
values['from_template'] = 'website_event.default_page' # .strip('website_event.')
page = 'website.page_404'
page = 'website.%s' % (request.website.is_publisher() and 'page_404' or '404')
return request.render(page, values)
@@ -542,7 +542,7 @@
<h4 class="modal-title" id="myModalLabel"><strong>Attendees</strong></h4>
</div>
<div class="modal-body">
<div class="">
<div class="container">
<t t-set="counter_type" t-value="1"/>
<t t-set="counter" t-value="0"/>
<t t-foreach="tickets" t-as="ticket">
+2 -3
View File
@@ -383,8 +383,8 @@ class WebsiteSale(http.Controller):
def cart_update(self, product_id, add_qty=1, set_qty=0, **kw):
request.website.sale_get_order(force_create=1)._cart_update(
product_id=int(product_id),
add_qty=float(add_qty),
set_qty=float(set_qty),
add_qty=add_qty,
set_qty=set_qty,
attributes=self._filter_attributes(**kw),
)
return request.redirect("/shop/cart")
@@ -398,7 +398,6 @@ class WebsiteSale(http.Controller):
if order.state != 'draft':
request.website.sale_reset()
return {}
value = order._cart_update(product_id=product_id, line_id=line_id, add_qty=add_qty, set_qty=set_qty)
if not order.cart_quantity:
+10 -11
View File
@@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-10-24 08:59+0000\n"
"PO-Revision-Date: 2017-10-24 08:59+0000\n"
"POT-Creation-Date: 2017-11-30 13:11+0000\n"
"PO-Revision-Date: 2017-11-30 13:11+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@@ -21,7 +21,7 @@ msgid "&amp;nbsp;"
msgstr ""
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.reduction_code
#: model:ir.ui.view,arch_db:website_sale.cart_lines
msgid "/shop/cart"
msgstr ""
@@ -1456,7 +1456,6 @@ msgid "Have Genius call the tunes."
msgstr ""
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.payment
#: model:ir.ui.view,arch_db:website_sale.reduction_code
msgid "Have a promo code? Fill in this field and apply."
msgstr ""
@@ -1826,7 +1825,7 @@ msgstr ""
#. module: website_sale
#. openerp-web
#: code:addons/website_sale/controllers/main.py:967
#: code:addons/website_sale/controllers/main.py:968
#: code:addons/website_sale/static/src/js/website_sale.editor.js:32
#: model:ir.ui.view,arch_db:website_sale.content_new_product
#, python-format
@@ -1971,7 +1970,7 @@ msgid "Parent Category"
msgstr ""
#. module: website_sale
#: code:addons/website_sale/controllers/main.py:755
#: code:addons/website_sale/controllers/main.py:756
#, python-format
msgid "Pay Now"
msgstr ""
@@ -2215,11 +2214,6 @@ msgstr ""
msgid "Products"
msgstr ""
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.reduction_code
msgid "Promo Code"
msgstr ""
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.website_sale
msgid "Promote"
@@ -2960,6 +2954,11 @@ msgstr ""
msgid "Total"
msgstr ""
#. module: website_sale
#: model:ir.ui.view,arch_db:website_sale.cart_popover
msgid "True"
msgstr ""
#. module: website_sale
#: model:ir.model.fields,field_description:website_sale.field_product_attribute_type
msgid "Type"
+11
View File
@@ -139,6 +139,17 @@ class SaleOrder(models.Model):
""" Add or set product quantity, add_qty can be negative """
self.ensure_one()
SaleOrderLineSudo = self.env['sale.order.line'].sudo()
try:
if add_qty:
add_qty = float(add_qty)
except ValueError:
add_qty = 1
try:
if set_qty:
set_qty = float(set_qty)
except ValueError:
set_qty = 0
quantity = 0
order_line = False
if self.state != 'draft':
@@ -133,6 +133,9 @@ odoo.define('website_sale.website_sale', function (require) {
return;
}
var value = parseInt($input.val() || 0, 10);
if (isNaN(value)) {
value = 1;
}
var $dom = $(this).closest('tr');
//var default_price = parseFloat($dom.find('.text-danger > span.oe_currency_value').text());
var $dom_optional = $dom.nextUntil(':not(.optional_product.info)');
@@ -151,7 +154,11 @@ odoo.define('website_sale.website_sale', function (require) {
'set_qty': value
}).then(function (data) {
$input.data('update_change', false);
if (value !== parseInt($input.val() || 0, 10)) {
var check_value = parseInt($input.val() || 0, 10);
if (isNaN(check_value)) {
check_value = 1;
}
if (value !== check_value) {
$input.trigger('change');
return;
}
@@ -16,8 +16,13 @@ $(document).ready(function () {
return ajax.jsonRpc('/shop/payment/get_status/' + order_id, 'call', {
}).then(function (result) {
_poll_nbr += 1;
if(result.recall && _poll_nbr <= 5){
setTimeout(function () { payment_transaction_poll_status(); }, 1000);
if(result.recall) {
if (_poll_nbr < 20){
setTimeout(function () { payment_transaction_poll_status(); }, Math.ceil(_poll_nbr / 3) * 1000);
}
else {
result.message = "<i class='fa fa-warning' />";
}
}
$('div.oe_website_sale_tx_status').html(result.message);
});
-3
View File
@@ -326,9 +326,6 @@
<select class="form-control" name="attrib">
<option value="" />
<t t-foreach="a.value_ids" t-as="v">
<label t-attf-style="background-color:#{v.html_color or v.name}" t-attf-class="css_attribute_color #{'active' if v.id in attrib_set else ''}">
<input type="checkbox" name="attrib" t-att-value="'%s-%s' % (a.id,v.id)" t-att-checked="'checked' if v.id in attrib_set else None" t-att-title="v.name" />
</label>
<option t-att-value="'%s-%s' % (a.id,v.id)" t-esc="v.name" t-att-selected="v.id in attrib_set" />
</t>
</select>
@@ -0,0 +1,31 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
# * website_sale_management
#
msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 11.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2017-11-30 13:12+0000\n"
"PO-Revision-Date: 2017-11-30 13:12+0000\n"
"Last-Translator: <>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: \n"
"Plural-Forms: \n"
#. module: website_sale_management
#. openerp-web
#: code:addons/website_sale_management/static/src/xml/website_sale_dashboard.xml:5
#, python-format
msgid "Generate an invoice from orders ready for invoicing."
msgstr ""
#. module: website_sale_management
#. openerp-web
#: code:addons/website_sale_management/static/src/xml/website_sale_dashboard.xml:7
#, python-format
msgid "Orders to Invoice"
msgstr ""
@@ -34,8 +34,8 @@ class WebsiteSaleOptions(WebsiteSale):
if add_qty or set_qty:
value = order._cart_update(
product_id=int(product_id),
add_qty=int(add_qty),
set_qty=int(set_qty),
add_qty=add_qty,
set_qty=set_qty,
attributes=attributes,
optional_product_ids=optional_product_ids
)
+3 -4
View File
@@ -22,6 +22,7 @@
{%- block htmltitle -%}
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://fonts.googleapis.com/css?family=Work+Sans:500,600" rel="stylesheet">
{{ super() }}
{%- endblock -%}
@@ -226,10 +227,9 @@
{% else %}
{% set container = 'container' %}
{% endif %}
<div class="{{ container}} {{ ' '.join(classes) }}">
<main class="container-fluid {{ ' '.join(classes) }}">
<main class="container {{ ' '.join(classes) }}">
{% if pagename != master_doc %}
<div class="row">
<div class="o_content row">
{% if 'has-toc' not in meta and not (pagename in toc) %}
<aside>
<div class="navbar-aside text-center">
@@ -250,7 +250,6 @@
{% endif %}
<div id="mask"></div>
</main>
</div>
</div>
<div class="floating_action_container">
@@ -1,59 +0,0 @@
// Animations
.keyframes(ripple; {
100% {
opacity: 0;
.scale(2.5);
}
});
.keyframes(fadeInUp; {
0% {
opacity: 0;
.translate(0; 60px);
}
40% { opacity: 1}
100% {
opacity: 1;
.translate(none; none);
}
});
.keyframes(fadeIn; {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
});
.fadeInUp {
.animation(fadeInUp 1s);
}
.fadeIn {
.animation(fadeIn 1s);
}
// Ripple Buttons
.ripple {
z-index: 2;
}
.inner-ripple {
display: block;
position: absolute;
border-radius: 100%;
opacity: 1;
z-index: -1;
background: rgba(0, 0, 0, .05);
pointer-events: none;
.scale(0);
}
.inner-ripple-animated {
.animation(ripple 0.35s ease-in);
}
+166 -136
View File
@@ -1,113 +1,91 @@
// ====== Aside =======
// ======================
aside {
.pseudo-col();
width: 100%;
max-width: 240px;
position: static;
padding: 0;
display: block;
border-right: 1px solid @gray-lighter;
@media (max-width:@screen-md-min) {
display: none;
}
}
.navbar-aside {
position : relative;
overflow : hidden;
font-family : @headings-font-family;
font-size : 0.85em;
line-height : 1.5;
font-weight : @fw_medium;
overflow-y : auto;
height : 100%;
position: relative;
overflow: hidden;
font-family: @headings-font-family;
font-size: 0.85em;
line-height: 1.5;
overflow-y: auto;
&.affix {
z-index : 2;
top : @w-sub-nav-height - 1;
position : fixed;
z-index: 2;
top: @w-sub-nav-height - 1;
position: fixed;
backface-visibility: hidden;
@media (max-width:@screen-md-min) {
display: none;
}
}
> ul.list-group {
margin : 0;
z-index : 0;
margin: 0;
z-index: 0;
}
> h3 {
margin : 0;
padding : 15px 0 10px;
margin: 0;
padding: 15px 0 10px;
text-transform: uppercase;
font-weight : @fw_semibold;
font-size : 16px;
color : @text-color;
overflow-x : hidden;
position : relative;
z-index : 1;
font-weight: @fw_semibold;
font-size: 16px;
color: @text-color;
overflow-x: hidden;
position: relative;
z-index: 1;
.box-shadow(0 10px 9px -10px #d2d2d2);
}
.logo_box {
width : 100%;
background : rgb(253, 253, 253);
position : relative;
display : block;
padding : 15px 30px 10px;
border-bottom: 1px solid fadeout(@text-color, 90%);
text-align : center;
.box-shadow(inset 0px 0 40px rgba(114, 122, 142, .1));
.logo {
float : left;
width : 90%;
margin : auto auto 10px 5%;
height : 50px;
background-image : url('img/odoo_logo_rgb.png');
background-repeat : no-repeat;
background-position: center center;
background-size : contain;
text-decoration : none;
}
}
.gith-container {
margin : 0;
z-index : 1;
position : relative;
margin: 0;
z-index: 1;
position: relative;
overflow-x: hidden;
.gith-link {
font-weight : 600;
color : @text-color;
color: @text-color;
text-decoration: none;
display : inline-block;
position : relative;
margin : 10px 0;
.transition(color .2s);
display: inline-block;
position: relative;
margin: 10px 0;
font-family: @font-family-base;
&:hover {
color : @headings-color;
color: @headings-color;
text-decoration: none;
}
&:before {
.size(20px;20px);
.opacity(.5);
content : '';
position : relative;
.square(1em);
content: '';
position: relative;
background-image: url('img/github-square_32.png');
background-size : 100%;
display : inline-block;
vertical-align : middle;
background-size: 100%;
display: inline-block;
vertical-align: middle;
.translate(0;-1px);
.transition(opacity .2s);
}
&:hover, &:focus {
&:before {
.opacity(1);
}
}
}
}
//-- All menu levels
ul {
padding : 0;
position : relative;
padding: 0;
position: relative;
margin-bottom: 0 !important;
li {
@@ -120,37 +98,64 @@
}
&:first-child {
overflow : hidden;
overflow: hidden;
border-radius: 2px 0 0 0;
}
> a {
display: block;
padding: 5px 15px;
color : @text-color;
color: @text-color;
line-height: 1.2;
&:hover, &:focus {
&:focus, &:hover {
color: @headings-color;
}
}
&.parent > a:after{
content: '\e7c1';
font-family: 'Material-Design-Icons';
opacity: 0.8;
margin-top: -6px;
.o-position-absolute(50%, 10px);
.rotate(90deg);
.transition(transform 0.2s);
}
&.parent.active > a:after{
.rotate(0);
}
}
//-- Inner menu list
ul {
max-height : 0;
background-color: @gray-lighter;
padding-left : 15px;
overflow : hidden;
max-height: 0;
background-color: fade(@gray-light, 20%);
padding: 0px;
overflow: hidden;
margin-left: 0;
box-shadow: inset 0 3px 5px -2px @gray-light;
.transition(max-height 0.3s @o-ease);
> li:not(:last-child) {
box-shadow: 0 1px 0 fade(black, 4%);
&.active > ul > li:not(:first-child) {
border-top: 1px solid @gray-lighter;
}
}
}
}
//-- Active lis
li.active {
&, &:hover, &:focus {
&, &:focus, &:hover {
border-color: @gray-lighter;
background : transparent;
background: transparent;
> a {
font-weight: bold;
color: @headings-color;
}
}
@@ -162,32 +167,44 @@
// First menu level
> ul > li {
border-bottom: 1px solid @gray-lighter;
background : white;
background: white;
border-bottom: 1px solid fade(black, 8%);
> a {
padding: 10px 15px;
border-left: 3px solid transparent;
}
&:hover, &:focus {
&:focus, &:hover {
> a {
box-shadow : inset 5px 0 0 -3px @gray-light;
border-left: 3px solid @gray-light;
background-color: transparent;
}
}
&.active, &.active:hover, &.active:focus{
&.active, &.active:focus, &.active:hover {
> a {
box-shadow : inset 5px 0 0 -3px @brand-primary;
border-left: 3px solid @brand-primary;
}
}
&.parent {
> a:after {
content : '\e7c1';
font-family: 'Material-Design-Icons';
opacity : 0.5;
.o-position-absolute(auto, 10px);
&.active.parent + li {
box-shadow: 0 -3px 5px -4px fade(@gray-darker, 40%);
}
> ul > li {
> a {
padding-left: 20px;
}
> ul > li {
> a {
padding-left: 30px;
}
> ul > li > a {
padding-left: 40px;
}
}
}
}
@@ -195,25 +212,23 @@
.floating_action_container {
position: fixed;
right : 8px;
bottom : 8px;
width : auto;
z-index : @zIndex--float_action;
right: 8px;
bottom: 8px;
width: auto;
z-index: @zIndex--float_action;
@media (min-width:@screen-md-min) {
display: none;
}
}
#floating_action {
width : 56px;
height : 56px;
display : inline-block;
z-index : 0;
.square(56px);
display: inline-block;
z-index: 0;
background-color: transparent;
border-radius : 50%;
padding : 16px;
box-shadow : 0 8px 17px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.05);
border-radius: 50%;
padding: 16px;
box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.1), 0 6px 20px 0 rgba(0, 0, 0, 0.05);
background-color: @brand-primary;
.transition(transform 500ms @o-ease);
@@ -222,55 +237,52 @@
}
&.active {
.transform(~"translateZ(0px) rotateZ(-180deg)");
.transform(~ "translateZ(0px) rotateZ(-180deg)");
}
}
#floating_action_menu {
position : absolute;
z-index : 1;
overflow : hidden;
right : 0;
width : 380px;
bottom : 0;
padding : 0;
display : block;
.o-position-absolute(auto,0,0);
z-index: 1;
overflow: hidden;
width: 380px;
padding: 0;
display: block;
border-radius: 2px;
visibility : hidden;
visibility: hidden;
.transition(all 0.5s);
.box-shadow(0 0 0 transparent);
.content {
margin: 0;
.opacity(0);
opacity:0;
li {
border : none;
border: none;
border-top: 1px solid #DDD;
&:first-child {
border-top: none;
}
}
a {
display : inline-block;
cursor : pointer;
color : @headings-color;
display: inline-block;
cursor: pointer;
color: @headings-color;
text-decoration: none;
float : left;
width : 100%;
padding : 5px 10px;
float: left;
width: 100%;
padding: 5px 10px;
}
}
.bubble {
position : absolute;
.size(1px; 1px);
background : @brand-primary;
content : '';
bottom : 28px;
right : 28px;
color : #fff;
.o-position-absolute(auto,28px,28px);
.square(1px);
background: @brand-primary;
content: '';
color: #fff;
border-radius: 50%;
.transition(all 300ms @o-ease);
}
@@ -281,17 +293,17 @@
}
&.active {
display : block;
display: block;
visibility: visible;
.transition(all 500ms @o-ease);
.bubble, &:before {
&:before, .bubble {
.size(1000px; 2000px);
border-radius: 50%;
.opacity(0);
margin-right : -500px;
opacity: 0;
margin-right: -500px;
margin-bottom: -500px;
display : block;
display: block;
.transition(all .4s @o-ease);
}
@@ -301,9 +313,27 @@
.content {
position: relative;
z-index : 1;
z-index: 1;
.opacity(1);
.transition(all 500ms @ease-material-3);
}
}
}
#mask {
.opacity(0);
position: fixed;
z-index: @zIndex--mask;
top: 0;
left: 0;
.size(100%; 0);
background-color: fade(black, 20%);
.transition(opacity .3s);
&.active {
.opacity(1);
display: block;
.square(100%);
.transition(opacity .3s);
}
}
@@ -0,0 +1,515 @@
// ================================================
// ================ Components ====================
// ================================================
// Ripple buttons
// ----------------------------------------
@-webkit-keyframes ripple {
to {
opacity: 0;
-webkit-transform: scale(2.5);
}
}
@keyframes ripple {
to {
opacity: 0;
.scale(2.5);
}
}
.ripple {
z-index: 2;
.inner-ripple {
display: block;
position: absolute;
border-radius: 100%;
opacity: 1;
z-index: -1;
background: rgba(0, 0, 0, .05);
pointer-events: none;
.scale(0);
&.inner-ripple-animated {
.animation(ripple 0.35s ease-in);
}
}
}
// Code Fields
// ----------------------------------------
article.doc-body .code-fields {
display: table;
width: 100%;
padding: 5px;
font-size: 0.8em;
border: 2px solid @gray-lighter;
.code-field {
display: table-row;
}
.code-field-body {
display: block;
padding-left: 15px;
@media screen and (min-width: @screen-md-min) {
display: table-cell;
padding-left: 0;
}
}
.code-field-name {
width: auto;
display: block;
font-weight: @fw_semibold;
color: @headings-color;
&:after {
content: ":";
}
@media screen and (min-width: @screen-md-min) {
text-align: right;
width: 20%;
padding-right: 10px;
display: table-cell;
}
}
ul {
list-style: none;
margin: 0.2em 0;
> li {
margin: 0 0 8px;
padding-left: 0px;
line-height: 1.5;
&:before {
display: none;
}
}
strong {
color: @headings-color;
font-family: @font-family-monospace;
}
em {
color: @headings-color;
font-family: @font-family-monospace;
font-weight: @fw_semibold;
}
}
}
// Cards
// ----------------------------------------
.card-img {
.o-gradient();
.o-position-absolute(0, 0);
.translate3d(0;0;0);
.square(100%);
display: block;
background-size: cover;
background-position: 50%;
}
.card.top {
position: relative;
overflow: hidden;
margin: 0;
padding: 0 0 2%;
.transform-origin(50% 0px 0px);
@media screen and (min-width: @screen-sm-min) {
padding: 12% 0 5%;
}
@media screen and (min-width: @screen-md-min) {
padding: 10% 0 5%;
}
@media screen and (min-width: @screen-lg-min) {
padding: 8% 0 4%;
}
&.stacked {
background: transparent;
.transition(background 1s);
}
&:before {
content: "";
display: block;
background-image: url("img/banner_bg.png");
background-size: cover;
background-position: 50%;
.o-position-absolute(0, 0);
.square(100%);
}
.card-img {
background-image: url("img/banner_bg.png");
}
.container {
position: relative;
font-size: 32px;
@media screen and (min-width: @screen-sm-min) {
&:not(.o_long_title) {
font-size: 40px;
}
&.o_short_title {
font-size: 50px;
}
}
h1 {
font-weight: @fw_light;
font-size: 1em;
color: white;
line-height: 0.9;
}
}
}
.card.top.has_banner {
background: @footer-bg-color;
&:before {
display: none;
}
.card-img {
opacity: 0.35;
}
}
// Alerts
// ----------------------------------------
main .alert {
padding: 8px 15px;
border-radius: 0;
margin: 5px auto 15px;
border-width: 0 0 0 3px;
// 'INFO' is the default style
border-color: @brand-info;
background-color: lighten(@brand-info, 45%);
&, p {
line-height: 1.3;
font-size: 14px;
}
p {
margin-bottom: 5px;
&:last-child {
margin-bottom: 0;
}
}
> ul {
margin: 0.5em 0;
> li {
margin: 0;
}
}
h3.alert-title {
font-size: 1em;
line-height: 1em;
margin: 0 0 5px;
font-weight: bold;
font-family: @font-family-base;
color: darken(@brand-info, 5%);
&:before {
.mdi-icon( "\e639");
.translate(0, 0.1em);
margin-right: 0.2em;
}
}
&.alert-info {
> h3.alert-title {
display: none;
}
}
&.alert-go_to {
border-color: @o-violet-dark;
background-color: lighten(@o-violet-dark, 52%);
color: darken(@o-violet-dark, 5%);
> h3.alert-title {
color: darken(@o-violet-dark, 15%);
&:before {
content: "\e70d";
}
}
}
&.alert-success {
border-color: lighten(@brand-success, 30%);
background-color: lighten(@brand-success, 45%);
> h3.alert-title {
color: darken(@brand-success, 10%);
&:before {
content: "\e625";
}
}
}
&.alert-warning, &.warning {
border-color: lighten(@brand-warning, 30%);
background-color: lighten(@brand-warning, 35%);
> h3.alert-title {
color: @brand-warning;
&:before {
content: "\e6a4";
}
}
}
&.alert-danger {
border-color: lighten(@brand-danger, 30%);
background-color: lighten(@brand-danger, 40%);
> h3.alert-title {
color: darken(@brand-danger, 10%);
&:before {
content: "\e6a4";
}
}
}
&.alert-exercise {
border-color: lighten(@doc_exercise, 30%);
background-color: lighten(@doc_exercise, 40%);
color: darken(@doc_exercise, 35%);
> h3.alert-title {
color: @doc_exercise;
}
> h3.alert-title:before {
.translate(0;0);
top: 28px;
content: "\e709";
}
}
&.doc-content {
@media (min-width: @screen-lg-min) {
max-width: 55%;
}
}
}
// Elements
// ----------------------------------------
hr.divider {
border-color: fadeout(@gray-lightest, 60%);
position: absolute;
width: 900%;
margin-left: -13px;
}
img.img-responsive {
box-shadow: 0 3px 15px @gray-lighter;
border: 1px solid @gray-lighter;
margin-bottom: 25px;
&:not(:first-child) {
margin-top: 25px;
}
}
.figure {
h4 {
margin: 0.5em 0 1.5em;
padding-left: 1em;
font-size: 1em;
font-style: italic;
}
}
.pq-patch {
em {
display: block;
border-radius: 4px 4px 0 0;
background: @gray-lighter;
padding-left: 10px;
font-size: 0.9em;
font-weight: @fw_semibold;
+ .pq-section .highlight {
border-radius: 0 0 4px 4px;
}
}
}
span.menuselection {
font-weight: @fw_medium;
}
.list-group-item {
border: none;
background: transparent;
}
blockquote {
font-family: @font-family-serif;
font-weight: @fw_semibold;
font-style: italic;
footer {
font-family: @font-family-base;
background: transparent;
text-align: left;
color: @text-color;
font-weight: normal;
font-style: normal;
cite {
font-style: italic;
}
}
@media (min-width:@screen-md-min) {
border-left: 3px solid fade(@brand-primary, 50%);
}
}
.code, code {
font-size: 0.8em;
font-weight: @fw_semibold;
color: darken(@brand-primary, 30%);
background-color: lighten(@brand-primary, 50%);
}
.btn {
border-radius: 0;
}
.table, table {
font-size: 0.9em;
}
.code-attribute, .code-class, .code-classmethod, .code-data, .code-function, .code-method, .code-staticmethod {
// indents *all* content
padding-left: 20px;
margin-bottom: 2em;
// except for item title which gets dedented back
> h6 {
margin-left: -20px;
margin-bottom: 0.3em;
.viewcode-link {
display: none;
float: right;
}
&:hover .viewcode-link {
display: inline;
}
}
p {
margin-bottom: 0.5em;
}
}
article.doc-body {
&.index-category {
min-height: 300px;
min-height: 30vh;
li.toctree-l1 {
padding: 5px 0;
}
}
}
article.doc-body .content-switcher {
margin-top: 0;
> ul {
font-size: 10px;
padding: 0;
margin: 0;
.transition(all .2s ease);
> li {
font-weight: @fw_semibold;
color: @gray-light;
border-bottom: 1px solid transparent;
margin: 0 20px 0 0;
padding-left: 0;
font-size: 1.3em;
cursor: pointer;
display: inline-block;
list-style: none;
.transition(all .2s);
opacity: 0.6;
&:before {
content: none;
}
&.active {
border-bottom: 1px solid @brand-primary;
opacity: 1;
}
}
}
&:hover > ul > li {
.opacity(1);
}
> .tabs > * {
display: none;
max-width: 100%;
overflow-x: auto;
}
> .tabs > .active {
display: block;
}
}
.highlight {
background: @doc_code-bg;
color: @gray-light;
border-radius: @border-radius-base;
margin-bottom: (@line-height-computed / 2);
pre {
margin-bottom: 0;
}
}
pre {
font-size: 0.8em;
color: @gray-light;
background: @doc_code-bg;
font-family: @font-family-monospace;
font-weight: @fw_semibold;
position: relative;
border: none;
max-width: 100%;
overflow: auto;
margin: 0 0 (@line-height-computed / 2);
}
+225 -163
View File
@@ -2,6 +2,15 @@
$(document).ready(function () {
// -- Initialize fallbacks for requestAnimationFrame
window.requestAnimationFrame = window.requestAnimationFrame
|| window.webkitRequestAnimationFrame
|| window.mozRequestAnimationFrame
|| window.msRequestAnimationFrame
|| window.oRequestAnimationFrame
|| function (callback) { setTimeout(callback, 10); };
// ======= Define variables =======
// =================================
// -- Screen resolutions
@@ -12,14 +21,33 @@
win_w = $win.width();
// -- Main elements
var $body = $('body'),
$header = $body.find('> header'),
$sub_nav = $header.find(".o_sub_nav");
$wrap = $body.find('> #wrap'),
$card_top = $wrap.find('> .card.top'),
$card_top_t = $card_top.find('> .container'),
$main = $wrap.find('main'),
$footer = $body.find('> footer');
var $body = $('body'),
$header = $body.find('> header'),
$sub_nav = $header.find(".o_sub_nav"),
$wrap = $body.find('> #wrap'),
$main = $wrap.find('main'),
$footer = $body.find('> footer');
// -- Detect page type
var page_type = (function () {
if ($wrap.hasClass('index')) {
return 'index';
} else if ($main.find('article').hasClass('doc-tocindex-category')){
return 'category-index';
} else {
return 'article';
}
})();
// -- CP > "Card Top"
var $cp = $wrap.find('> .card.top'),
$cp_image = $cp.find('> .card-img'),
$cp_text = $cp.find('> .container'),
cp_h = $cp.outerHeight(),
has_cp_image = $cp_image.length > 0,
cp_image_alpha = has_cp_image ? $cp_image.css('opacity') : undefined,
cp_end_point = has_cp_image ? cp_h/2 : undefined;
// -- Floating action
var $mask = $body.find('#mask'),
@@ -27,37 +55,34 @@
$float_menu = $body.find("#floating_action_menu");
// -- Elements' heights
var body_h = $body.height(),
header_h = $header.outerHeight(),
sub_nav_h = $sub_nav.height();
var body_h = $body.height(),
header_h = $header.outerHeight(),
main_h = $main.height(),
sub_nav_h = $sub_nav.height();
// -- Aside
var $aside = $main.find('aside'),
has_aside = $aside.length > 0,
$aside_nav = undefined;
aside_links = undefined;
$aside_nav = has_aside ? $aside.find('> .navbar-aside') : undefined,
aside_links = has_aside ? $aside_nav.find("li > a") : undefined;
if (has_aside) {
$aside_nav = $aside.find('> .navbar-aside');
aside_links = $aside_nav.find("li > a");
}
// ======= Affix =================
// ===============================
function set_affix(body_h) {
var aside_offset = $aside.offset().top - sub_nav_h,
aside_width = $aside.width(),
main_bottom = 40;
function set_affix() {
var aside_offset_top = $aside.offset().top - sub_nav_h,
aside_offset_bot = parseInt($wrap.css('padding-bottom')),
aside_width = $aside.width();
$aside_nav.css('width', aside_width);
$aside_nav.affix({
target: window,
$aside.css('height', main_h);
$aside_nav.css('width', aside_width).affix({
offset: {
top : aside_offset,
bottom : main_bottom
top : aside_offset_top,
bottom : aside_offset_bot,
}
});
};
}
// ======= Footer animations =====
// ===============================
@@ -67,22 +92,22 @@
if (!footer_effect) {
footer_stop();
return;
};
}
$footer.toggleClass('o_footer_effect', footer_effect);
$body.css('padding-bottom', $footer.outerHeight());
var checkIfSearch = function(e) {
var checkIfSearch = function (e) {
if ((e.ctrlKey || e.metaKey) && String.fromCharCode(e.which).toLowerCase() === 'f') {
footer_stop();
}
};
$win.on('keydown.footer', function(e) {
$win.on('keydown.footer', function (e) {
checkIfSearch(e);
});
};
var footer_stop = function() {
var footer_stop = function () {
$footer.removeClass('o_footer_effect');
$body.css('padding-bottom', 0);
$win.off('keydown.footer');
@@ -92,24 +117,59 @@
// ======= Docs Functions ==========
// =================================
// -- Layouting
var layouting = function () {
if ($main.hasClass("index")) {
$main.find("#index .index-tree > .row").each(function() {
var childs = $(this).find(".col-md-3");
if (childs.length == 2) {
childs.removeClass("col-md-3").addClass("col-md-6");
}
if (childs.length == 3) {
childs.removeClass("col-md-3").addClass("col-md-4");
}
})
$(".floating_action_container").remove();
var init = function () {
var $floating_container = $body.find("> .floating_action_container");
// Adapt Title font size according to its length
$cp_text
.toggleClass('o_short_title', $cp_text.text().trim().length < 15)
.toggleClass('o_long_title', $cp_text.text().trim().length > 45);
if (page_type == 'index') {
var half_cols_selector = '.tutorials,.api';
$main.find("#index .index-tree").find(half_cols_selector)
.wrap('<div class="o_half_col col-sm-6"/>')
.find('.col-md-3').removeClass('col-md-3 col-sm-6').addClass('col-sm-12 col-md-6');
var half_cols_els = $main.find(".o_half_col");
for(var i = 0; i < half_cols_els.length; i+=2) {
half_cols_els.slice(i, i+2).wrapAll("<div class='row'></div>");
}
}
if (has_aside) { $aside_nav.find("li").has("ul").addClass("parent"); };
}
if (page_type == 'index' || page_type == 'category-index') {
$floating_container.add($mask).remove();
$main.toggleClass('o_slim_page', page_type == 'category-index');
}
if (page_type == 'article') {
attach_permalink_markers();
// Hide empty-permalink first sections
var $f_s = $main.find('article.doc-body > section:first-child');
$f_s.toggleClass('hidden', $f_s[0].childElementCount == 1 && $f_s.children().is('i:empty'));
if (has_aside) {
if (aside_links.length < 2) {
has_aside = false;
$main.addClass("o_aside_removed");
$floating_container.add($mask).add($aside).remove();
return;
}
floating_menu_layout();
set_scroll_to(aside_links);
ripple_animation(aside_links);
$aside_nav.find("li").has("ul").addClass("parent");
}
}
bind_window_events();
};
// -- Float action menu
var floating_menu_layout = function() {
var floating_menu_layout = function () {
var lis = $aside_nav.find("> ul > li").clone(true)
.addClass("ripple")
.css({
@@ -117,53 +177,46 @@
overflow: 'hidden'
});
lis.find("ul").remove().end()
.find("a").removeClass("ripple").on("click", function() {
floating_menu_toggle();
.find("a").removeClass("ripple").on("click", function () {
_toggle_float();
});
$float_menu.find(".content").empty().append(lis);
$float.add($mask).on("click", function () {
floating_menu_toggle();
_toggle_float();
return false;
});
}
var floating_menu_toggle = function() {
$float.toggleClass("active");
setTimeout(function() {
$float_menu.toggleClass("active");
$mask.toggleClass("active");
}, 300);
};
// -- Scroll To
var scroll_to = function(el_list) {
var offset = 80;
el_list.each(function() {
var $link = $(this),
href = $link.attr("href");
var set_scroll_to = function (el_list) {
el_list.each(function () {
var $link = $(this),
target_id = $link.attr("href");
$link.on("click", function() {
var val = $(href).offset().top - 60;
$('html, body').animate({
scrollTop: val
}, 400);
$link.on("click", function () {
$aside_nav.find("li").removeClass("active");
$link.parents("li").addClass("active");
window.location.hash = $link.prop('hash');
_scroll_and_set_hash(target_id);
return false;
})
})
}
});
});
$body.scrollspy({
target: 'aside',
offset: 200,
});
};
// -- Ripple buttons
var ripple_animation = function(el_list) {
el_list.each(function() {
var ripple_animation = function (el_list) {
el_list.each(function () {
var btn = $(this);
btn
.css({
position: 'relative',
overflow: 'hidden'
})
.bind('mousedown', function(e) {
.bind('mousedown', function (e) {
var ripple;
if (btn.find('.inner-ripple').length === 0) {
ripple = $('<span class="inner-ripple"/>');
@@ -186,43 +239,17 @@
top: y + 'px',
left: x + 'px'
}).addClass('inner-ripple-animated');
setTimeout(function() {
setTimeout(function () {
ripple.removeClass('inner-ripple-animated');
}, 351);
});
});
};
// -- Cards animation
var cards_animate = function(type, speed) {
type = type || 'in';
speed = speed || 2000;
var $container = $("main.index"),
$cards = $container.find(".card"),
$titles = $container.find("h2");
$cards.each(function() {
var $card = $(this),
cardOffset = this.getBoundingClientRect(),
offset = cardOffset.left * 0.8 + cardOffset.top,
delay = parseFloat(offset / speed).toFixed(2);
$card.css("transition-delay", delay + "s");
});
if (type === "in") {
$titles.fadeTo(0, 0);
$titles.fadeTo(1000, 1);
$container.addClass("animating");
} else {
$titles.fadeTo(300, 0);
$container.removeClass("animating");
}
};
// -- Header buttons
var header_buttons = function () {
var timer;
$header.on('click', '.o_primary_nav .dropdown-toggle', function(e) {
$header.on('click', '.o_primary_nav .dropdown-toggle', function (e) {
e.preventDefault();
var $a = $(this);
@@ -233,12 +260,12 @@
if ($a.closest('.o_primary_nav').children('.open').length > 0) {
$header.addClass("o_sub_opened");
} else {
timer = setTimeout(function() {
timer = setTimeout(function () {
$header.removeClass("o_sub_opened");
}, 200);
}
});
$header.on('click', '.o_primary_nav .o_secondary_nav', function(e) {
$header.on('click', '.o_primary_nav .o_secondary_nav', function (e) {
if (e.target === e.currentTarget) {
$header.find('.open').removeClass('open');
$header.find('.o_sub_opened').andSelf().removeClass('o_sub_opened');
@@ -246,28 +273,53 @@
});
// -- Mobile menu opening
$header.on('click', '.o_mobile_menu_toggle', function(e) {
$header.on('click', '.o_mobile_menu_toggle', function (e) {
e.preventDefault();
$(this).find('i').toggleClass('fa-bars fa-times');
$header.toggleClass('o_mobile_menu_opened');
});
};
var card_top_animation = function (win_top){
var scrollFactor = 1.6,
bannerHeight = Math.max(450, $card_top.outerHeight(true) - 60),
top = Math.min(win_top, bannerHeight/scrollFactor),
base_value = top * (scrollFactor - 1),
opacity = top/bannerHeight * scrollFactor;
// -- Attach permalink markers to sections' title
var attach_permalink_markers = function () {
$main.find('article.doc-body > section').each( function () {
var $section = $(this),
$title = $section.find('> h2, > h3, > h4, > h5, > h6'),
target_id = $section.attr('id'),
$icon = $('<i/>').addClass('mdi-content-link');
$card_top.css('transform', 'translateY(' + base_value + 'px)');
$card_top_t.css({
'transform' : 'translateY( -' + ( base_value - (top/2)) + 'px)',
'opacity' : 1 - opacity
if ($title.length <= 0) {
return;
}
$title.addClass('o_has_permalink_marker').append($icon);
$icon.on('click', function () {
_scroll_and_set_hash("#" + target_id);
$title.addClass('o_marked').delay(1000).queue(function (){
$title.removeClass('o_marked').dequeue();
});
return false;
});
});
}
};
$(".content-switcher").each(function(index, switcher) {
var cp_animation = function (win_top, cp_end_point){
var top = Math.min(win_top, cp_h);
$cp_image.css({
'opacity' : cp_image_alpha - (top * (cp_image_alpha/cp_end_point)),
'transform' : 'scale(' + (1 + (top * (0.1/cp_end_point))) +')'
});
$cp_text.css({
'transform' : 'translateY(' + (top/4) + 'px)',
'opacity' : 1 - (top/cp_h)
});
};
$(".content-switcher").each(function (index, switcher) {
var $switcher = $(switcher),
$links = $switcher.find('> ul > li'),
$tabs = $switcher.find('> .tabs > *'),
@@ -278,66 +330,76 @@
$links.eq(index).add($tabs.eq(index)).addClass('active');
}
select(0);
$switcher.on('click', '> ul > li', function() {
$switcher.on('click', '> ul > li', function () {
select($(this).index());
return false;
});
});
// ======= Utils ==================
// =================================
var _scroll_and_set_hash = function (target_id) {
$('html, body').animate({
scrollTop: $(target_id).offset().top - 60
}, 100);
window.location.hash = target_id;
};
var _toggle_float = function () {
$float.toggleClass("active");
setTimeout(function () {
$float_menu.toggleClass("active");
$mask.toggleClass("active");
}, 300);
};
var bind_window_events = function () {
// ======= On resize ==============
// Update properties and conditionally call functions according to resolution
$win.on('resize', function () {
// Update size variables
win_w = $win.width();
body_h = $body.height();
cp_h = $cp.outerHeight();
main_h = $main.height();
cp_end_point = has_cp_image ? cp_h/2 : undefined;
if (win_w >= screen_md){
footer_animation();
(has_aside)? set_affix(): '';
} else {
footer_stop();
}
});
// ======= On scroll ==============
$win.on('scroll', function () {
var win_top = $win.scrollTop();
$win[0].requestAnimationFrame(function () {
cp_animation(win_top, cp_end_point);
});
if (win_w >= screen_md) {
$header.toggleClass('o_scrolled', win_top > header_h);
}
});
};
// ======= Onload ==================
// =================================
// -- Call default functions
layouting();
cards_animate();
init();
header_buttons();
ripple_animation($(".ripple"));
if (has_aside) {
floating_menu_layout();
scroll_to(aside_links);
ripple_animation(aside_links);
}
// -- Conditionally call specific functions according to resolution
if (win_w >= screen_md){
footer_animation();
if (has_aside) {
$win.load(function (){
// wait until page load before affix
body_h = $body.height();
set_affix(body_h);
})
}
};
// ======= On resize ==============
// ================================
// Update properties and conditionally call functions according to resolution
$win.on('resize', function () {
win_w = $win.width();
body_h = $body.height();
if (win_w >= screen_md){
footer_animation();
if (has_aside) { set_affix(body_h); };
} else {
footer_stop();
};
});
// ======= On scroll ==============
// ================================
$win.on('scroll', function () {
if (win_w >= screen_md) {
var win_top = $win.scrollTop();
header_h = $header.outerHeight();
$header.toggleClass('o_scrolled', win_top > header_h);
card_top_animation(win_top);
} else {
$card_top.css('transform', '');
}
});
(has_aside)? set_affix(): '';
}
});
})(jQuery);
+1 -1
View File
@@ -53,7 +53,7 @@
z-index: 2;
background-color: fade(white, 60%);
color: @header-link-normal;
font-family: @headings-font-family;
font-family: "Work Sans", sans-serif;
font-size: 12px;
.transition(all .2s ease);
.transition-property(~'background, box-shadow' );
+114
View File
@@ -0,0 +1,114 @@
// ================================================
// ======= Index pages (covers and toctree) =======
// ================================================
#wrap.index {
@media screen and (min-width: @screen-md-min) {
> .card.top {
padding: 10% 0 2%;
}
}
> main.index {
margin: 10px auto;
.o_content {
box-shadow: none;
background: none;
}
}
}
main.index {
.toc-section h2 {
// section title
padding: 0 0 4px;
border-bottom: 1px solid @gray-lighter;
margin: 1.4em 0 0.8em;
font-size: 16px;
font-family: @font-family-base;
letter-spacing: 0;
font-weight: bold;
color: @text-muted;
}
.card {
border-radius: 4px;
position: relative;
overflow: hidden;
margin-bottom: @card_margin-bottom;
padding-top: 56%;
background-color: @doc_paper;
.deep-1;
.card-img {
span {
display: block;
background-size: cover;
background-position: 50%;
.square(100%);
}
}
figcaption {
color: @text-color;
box-shadow: inset 0 1px 0 @gray-lighter;
font-weight: bold;
line-height: 1.2;
font-size: 14px;
background-color: white;
padding: 8px 12px 6px;
.o-position-absolute(0, -1px, auto, -1px);
}
}
.toc-single-entry .card figcaption {
@media screen and(min-width: @screen-md) {
font-size: 1.5em;
padding: 20px 15px;
}
}
}
.toctree-wrapper > ul {
list-style: none;
padding: 0;
li {
line-height: 1.4;
&.toctree-l1, &.toctree-l3 {
padding-left: 0;
&:before {
content: none;
}
&:first-child {
margin-top: 0;
}
}
&.toctree-l1 {
margin: 0 0 15px;
> span {
font-size: 21px;
}
}
&.toctree-l2 {
> span {
font-weight: @fw_medium;
}
> ul {
margin: 0 0 15px;
&:empty {
display: none;
}
}
}
}
}
+133 -179
View File
@@ -1,210 +1,164 @@
.pseudo-col(){
position: relative;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
float: left;
width: 100%;
}
.code-col(){
content: "";
background: @doc_code-bg;
.box-shadow(inset 40px 0 40px -18px rgba(22, 24, 29, 0.3));
position: absolute;
width: 43%;
height: 100%;
top: 0;
right: 0;
}
// ================================================
// ================ Layout =======================
// ================================================
// Bootrstrap adaptations
// ------------------------------------------------------------------
body, header {
position: relative;
}
// Index layout
#wrap {
> .container.index {
background-color: @gray-lightest;
width: 100%;
position: relative;
> .index {
.container;
}
}
}
#main_title {
margin: 10px;
@media (min-width:@screen-md-min) {
margin: 0 0 9px 0;
}
}
.container .container {
max-width: 100%;
padding:0;
margin:0;
max-width: 100%;
padding: 0;
margin: 0;
}
article.doc-content *[class^="col-"] {
padding:0;
.img-responsive {
display: inline-block;
}
main{
aside, article.doc-body, .doc-content, .doc-aside {
.pseudo-col();
}
.doc-content, .doc-aside {
position:relative;
}
aside {
width: 25%;
max-width: 300px;
position:static;
padding:0;
display:block;
float:left;
@media (max-width:@screen-md-min) {
display: none;
}
}
article.doc-body {
background: @doc_paper;
border-left: 1px solid @gray-lighter;
padding: 15px 30px;
@media (min-width: @screen-md-min) {
width: 75%;
&.doc-toc {
width: 100%;
}
}
> *{
max-width: 100%;
}
}
.img-responsive.center-block {
display: block;
}
main.has_code_col{
.container;
article.doc-content *[class*="col-"] {
padding: 0;
}
aside {
display: none;
}
article.doc-body {
width: 100%;
// Main Components
// ------------------------------------------------------------------
#wrap {
z-index: 1;
position: relative;
background: @gray-lightest;
padding-bottom: 40px;
}
> *{
max-width: 100%;
main {
position: relative;
display: block;
.o_content {
background-color: @doc_paper;
.deep-1;
@media (min-width: @screen-sm-min) {
margin: -40px auto 0;
border-radius: 2px;
}
}
> section {
position: relative;
display:block;
float: left;
width: 100%;
article.doc-body {
.pseudo-col();
padding: 15px;
@media (min-width: @screen-sm-min) {
padding: 15px 30px;
}
@media (min-width: @screen-md-min) {
max-width: 700px;
}
@media (min-width: @screen-lg-min) {
margin-left: 7%;
margin-top: 20px;
}
> * {
max-width: 100%;
}
}
}
main.o_aside_removed, main.o_slim_page {
max-width: 700px;
@media (min-width: @screen-lg-min) {
width: 100%;
padding-right: 0;
&:before {
.code-col();
}
> section {
> * {
width: 54.633333%;
max-width: 600px;
float: left;
clear: left;
}
> h1, > h2, > h3, > h4, > h5, > h6 {
width: 100%;
float: none;
clear: none;
}
.doc-aside {
width: 41%;
float: none;
clear: none;
margin-right: 15px;
margin-left: 57%;
.content-switcher{
margin-top:0;
> ul {
margin-bottom: 0;
}
> ul > li {
color: @gray-light;
}
}
}
}
max-width: 760px;
}
article.doc-body {
@media (min-width: @screen-md-min) {
padding-left: 30px;
}
}
}
}
main.index .toctree-wrapper {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
main.has_code_col {
max-width: 700px;
> .row {
flex: 1 0 100%;
}
@media screen and(min-width: @screen-md){
// display these 2 as 2x2 squares
> .row.tutorials, .row.api {
flex: 0 0 50%;
display: flex;
flex-wrap: wrap;
> div {
flex: 0 0 50%;
}
@media (min-width: @screen-lg-min) {
max-width: @container-lg;
}
// FIXME: reimplement a single big box (.toc-single-entry)
}
.doc-aside, .doc-content {
.pseudo-col();
@media (max-width: @screen-md-max) {
padding: 0;
}
}
aside {
display: none;
}
article.doc-body {
> section {
max-width: 100%;
}
@media (min-width: @screen-lg-min) {
width: 100%;
max-width: none;
margin:0;
&:before {
.code-col();
}
> section {
position: relative;
display: block;
float: left;
width: 100%;
> * {
width: 48%;
float: left;
clear: left;
}
> h2, > h3, > h4, > h5, > h6, > h1 {
width: 48%;
float: none;
clear: none;
}
.doc-aside {
width: 49%;
float: none;
clear: none;
margin-left: 51%;
color: @gray-light;
font-size: 14px;
line-height: 1.45;
pre {
font-size: 12px;
}
}
}
}
}
}
article.doc-toc .toctree-wrapper > ul > li > span {
display: block;
font-size: 28px;
}
.code-fields{
display: table;
width: 100%;
.code-field{
display: table-row;
}
.code-field-body{
display: block;
padding-left: 15px;
@media screen and (min-width: @screen-md-min){
display: table-cell;
padding-left: 0;
}
}
.code-field-name{
width:auto;
display:block;
@media screen and (min-width: @screen-md-min){
width:20%;
padding-right: 20px;
display: table-cell;
}
}
ul {
margin: .2em 0;
padding: 0;
}
font-size: 28px;
}
+26 -97
View File
@@ -2,6 +2,25 @@
// ================ Mixins =======================
// ================================================
// Code column layout mixins
// ------------------------------------------------------------------
.pseudo-col() {
position: relative;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
float: left;
width: 100%;
}
.code-col() {
content: "";
background: @doc_code-bg;
.box-shadow(inset 40px 0 40px -18px rgba(22, 24, 29, 0.3));
.o-position-absolute(0,0);
.size(50%, 100%);
}
// Utilities
// ------------------------------------------------------------------
.o-no-select {
@@ -131,65 +150,11 @@
}
}
// Elevation Shadows
// Visual cue indicating the amount of separation between surfaces.
// An object’s elevation determines the appearance of its shadow.
// ------------------------------------------------------------------
.deep-1-shadow() {
// Shadows
// --------------------------------------------------
.deep-1() {
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.17);
}
.deep-2-shadow() {
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 2px 0 rgba(0, 0, 0, 0.05);
}
.deep-3-shadow() {
box-shadow: 0 13px 25px 0 rgba(0, 0, 0, 0.1), 0 11px 7px 0 rgba(0, 0, 0, 0.09);
}
.deep-4-shadow() {
box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.1), 0 14px 12px 0 rgba(0, 0, 0, 0.07);
}
.deep-5-shadow() {
box-shadow: 0 27px 55px 0 rgba(0, 0, 0, 0.1), 0 17px 17px 0 rgba(0, 0, 0, 0.05);
}
.deep-transition() {
.o-transition(box-shadow, 0.3s, @o-ease);
}
.deep-1() {
.deep-1-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-2-shadow();
}
}
.deep-2() {
.deep-2-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-3-shadow();
}
}
.deep-3() {
.deep-3-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-4-shadow();
}
}
.deep-4() {
.deep-4-shadow();
&.deep_hover:hover {
.deep-transition();
.deep-5-shadow();
}
}
.deep-5() {
.deep-5-shadow();
}
.transform(@args) {
-webkit-transform : @args;
@@ -199,7 +164,8 @@
transform : @args;
}
//-- Material Design Icons
// Material Design Icons
// --------------------------------------------------
.mdi-icon(@content) {
font-family: 'Material-Design-Icons';
content: @content;
@@ -210,13 +176,8 @@
-moz-osx-font-smoothing: grayscale;
}
.keyframes(@name; @arguments) {
@-moz-keyframes @name { @arguments(); }
@-webkit-keyframes @name { @arguments(); }
@keyframes @name { @arguments(); }
}
//-- Documentation Dropdown style
// Documentation Dropdown style
// --------------------------------------------------
.o-doc-dropdown {
> a.dropdown-toggle {
padding: 0 5px 0 10px;
@@ -314,35 +275,3 @@
}
}
}
// Shadows
// --------------------------------------------------
.shadow-none {
.box-shadow(none);
}
.deep-1 {
box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.17);
}
.deep-2 {
box-shadow: 0 6px 10px 0 rgba(0, 0, 0, 0.1), 0 2px 2px 0 rgba(0, 0, 0, 0.05);
}
.deep-3 {
box-shadow: 0 13px 25px 0 rgba(0, 0, 0, 0.1), 0 11px 7px 0 rgba(0, 0, 0, 0.09);
}
.deep-4 {
box-shadow: 0 20px 40px 0 rgba(0, 0, 0, 0.1), 0 14px 12px 0 rgba(0, 0, 0, 0.07);
}
.deep-5 {
box-shadow: 0 27px 55px 0 rgba(0, 0, 0, 0.1), 0 17px 17px 0 rgba(0, 0, 0, 0.05);
}
// overwrite bootstrap inline forcing
.img-responsive {
display: inline-block;
}
.img-responsive.center-block {
display: block;
}
@@ -5,10 +5,6 @@
header, footer{
display: none;
}
.fadeInUp, .fadeIn{
.opacity(1)!important;
.animation(none);
}
#main_navbar{
position: relative;
File diff suppressed because it is too large Load Diff
+3 -569
View File
@@ -6,9 +6,10 @@
@import "variables";
@import "mixins";
@import "animations";
@import "typography";
@import "components";
@import "layout";
@import "index";
@import "header";
@import "footer";
@import "aside";
@@ -71,7 +72,6 @@
line-height: @w-sub-nav-height;
letter-spacing: -0.1px;
word-spacing: -1px;
font-size: 0.9em;
display: inline-block;
height: 100%;
max-width: 80px;
@@ -252,570 +252,6 @@
}
}
#wrap {
z-index: 1;
position: relative;
background: @gray-lightest;
padding-bottom: 40px;
}
main {
z-index: 0;
position: relative;
margin: -10px auto 0;
display: block;
border-radius: 2px;
background-color: @doc_paper;
.deep-1;
@media screen and(min-width: @screen-sm) {
margin: -40px auto 0px;
}
}
main.index {
.box-shadow(none);
padding-top: 50px;
background:transparent;
.row > h2 { // section title
margin-bottom: 1em;
margin-top: 1.5em;
}
.card {
border-radius: 2px;
position: relative;
overflow: hidden;
margin-bottom: @card_margin-bottom;
min-height: @card_min-height;
background-color: @doc_paper;
will-change: transform;
.deep-2;
.transform(scale3d(0, 0, 0) translate3d(50px, 0, 0));
.transition( all .5s @o-ease );
a, a:hover {
color: @text-color;
text-decoration: none;
border-radius: 2px 2px 0 0;
}
.card-img{
.transition(all .5s @o-ease);
overflow:hidden;
span {
position: relative;
display: block;
background-size: cover;
background-position: 50%;
will-change: transform;
.square(100%);
.transform(scale3d(1, 1, 1) translate3d(0, 0, 0));
.transform-origin(50%);
.opacity(1);
.transition(all .5s @o-ease);
}
}
figcaption {
.opacity(1);
display: block;
font-weight: @fw_regular;
font-family: @headings-font-family;
color: @headings-color;
margin: 0;
background-color: white;
font-size: 1.2em;
width: 100%;
padding: 8px 12px;
.o-position-absolute(0);
.transition(all .5s @o-ease );
}
&:hover .card-img span{
.transform(scale3d(1.02, 1.02, 1.02) translate3d(0, 0, 0));
}
}
&.animating .card {
.transform(scale3d(1, 1, 1) translate3d(0, 0, 0));
}
}
.card-img {
.o-gradient();
.o-position-absolute(0, 0);
.translate3d(0;0;0);
.square(100%);
display: block;
background-size: cover;
background-position: 50%;
}
.card.top {
padding: 10% 0 8%;
position: relative;
overflow: hidden;
margin: 0;
.o-gradient();
.animation(fadeIn 1s);
.box-shadow(none);
.transform-origin(50% 0px 0px);
@media screen and (min-width: @screen-sm-min) and (max-width: (@screen-md-min - 1)) {
padding-top: 12%;
}
#wrap.index & {
padding: 0 0 4%;
@media screen and (min-width: @screen-sm-min) {
padding-top: 12%;
}
@media screen and (min-width: @screen-lg-min) {
padding-top: 8%;
}
}
&.stacked{
background:transparent;
.transition(background 1s);
}
&:before {
content:"";
display: block;
background-image: url("img/banner_bg.png");
background-size: cover;
background-position: 50%;
.o-position-absolute(0, 0);
.square(100%);
}
&:hover {
.box-shadow(none);
}
.card-img {
background-image: url("img/banner_bg.png");
}
@media screen and (min-width: @screen-sm-min) and (max-width: (@screen-md-min - 1)) {
padding: 12% 0 8%;
#wrap.index & {
padding: 12% 0 4%;
}
}
.container {
position: relative;
h1 {
.h2;
color: white;
@media screen and (min-width: @screen-sm-min) {
.h1;
color: white;
}
}
}
}
.card.top.has_banner {
background: @footer-bg-color;
&:before {
display: none;
}
.card-img {
opacity: 0.35;
}
}
// the first level of an application toctree should look more like sections
.toctree-wrapper > ul {
list-style: none;
padding: 0;
> li.toctree-l1 > span {
font-family: @headings-font-family;
// copy h2 content :/
.h2()
}
}
// Elements
// -----------------------------------------------
hr.divider {
border-color: fadeout(@gray-lightest, 60%);
position: absolute;
width: 900%;
margin-left: -13px;
}
main .alert {
padding: 15px;
border-radius: 0;
border-width: 0 0 0 3px;
position: relative;
max-width: 95%;
display: inline-block;;
@media (min-width: @screen-sm-min){
padding-left: 5.5em;
}
> p, > ul {
margin: .5em 0;
}
.alert-info; // 'INFO' is the default style
> h3, > .alert-title {
font-size: 1.642857143em;
line-height: 1em;
margin: 0 0 10px 0;
font-size: 14px;
font-weight: @fw_bold;
font-family: @headings-font-family;
&:before {
.mdi-icon("\e639");
.o-position-absolute(50%, auto, auto, 6px);
.translate(0, -0.15em);
font-size: 4em;
@media (max-width: @screen-sm-min){
display:none;
}
}
}
&.alert-success {
border-color: lighten(@brand-success, 30%);
background-color: lighten(@brand-success, 45%);
color: darken(@brand-success, 35%);
> .alert-title, > h3 {
color: @brand-success
}
> .alert-title:before, > h3:before {
content: "\e625";
}
}
&.alert-info, &.tip {
border-color: lighten(@brand-info, 30%);
background-color: lighten(@brand-info, 45%);
color: darken(@brand-info, 35%);
> .alert-title, > h3 {
color: @brand-info
}
> .alert-title:before, > h3:before {
content: "\e639";
}
}
&.alert-warning, &.warning {
border-color: lighten(@brand-warning, 30%);
background-color: lighten(@brand-warning, 35%);
color: darken(@brand-warning, 35%);
> .alert-title, > h3 {
color: @brand-warning
}
> .alert-title:before, > h3:before {
content: "\e6a4";
}
}
&.alert-danger {
border-color: lighten(@brand-danger, 30%);
background-color: lighten(@brand-danger, 40%);
color: darken(@brand-danger, 35%);
> .alert-title, > h3 {
color: @brand-danger
}
> .alert-title:before, > h3:before {
content: "\e6a4";
}
}
&.alert-exercise {
border-color: lighten(@doc_exercise, 30%);
background-color: lighten(@doc_exercise, 40%);
color: darken(@doc_exercise, 35%);
> .alert-title, > h3 {
color: @doc_exercise;
}
> .alert-title:before, > h3:before {
.translate(0;0);
top: 28px;
content: "\e709";
}
}
&.alert-go_to {
border-color: lighten(@brand-info, 30%);
background-color: lighten(@brand-info, 45%);
border-width: 2px;
margin: 2em auto;
a{
color: darken(@brand-info, 25%);
}
> .alert-title, > h3 {
color: @brand-info
}
> .alert-title:before, > h3:before {
content: "\e70d";
}
}
&.doc-content{
@media (min-width: @screen-lg-min) {
max-width: 55%;
}
}
}
img.img-responsive {
margin-bottom: (@line-height-computed / 2);
}
.figure {
h4 {
margin: 0.5em 0 1.5em;
padding-left: 1em;
font-size: 1em;
font-style: italic;
}
}
.pq-patch{
background: @gray-light;
em {padding-left: 10px;}
}
span.menuselection{
font-weight: @fw_semibold;
}
.list-group-item {
border: none;
background:transparent;
}
dt { margin: .5em 0 .3em; font-weight: normal; }
blockquote {
font-family: @font-family-serif;
font-weight: @fw_semibold;
font-style: italic;
footer {
font-family: @font-family-base;
background: transparent;
text-align: left;
color: @text-color;
font-weight: normal;
font-style: normal;
cite {
font-style: italic;
}
}
@media (min-width:@screen-md-min) {
border-left: 3px solid fade(@brand-primary, 50%);
}
}
code, .code {
font-size: 0.8em;
font-weight: @fw_semibold;
color: darken(@brand-primary, 30%);
background-color: lighten(@brand-primary, 50%);
}
.btn {
border-radius: 0;
}
dd {
margin-left: 40px;
}
.code-fields {
font-size: .9em;
border: 2px solid @gray-light;
.code-field {
}
.code-field-body {
}
.code-field-name {
font-weight: @fw_semibold;
color: @headings-color;
&:after{
content:":";
}
@media screen and (min-width: @screen-md-min){
font-size: .9em;
text-align: right;
}
}
ul {
list-style: none;
strong {
color: @headings-color;
font-family:@font-family-monospace;
}
em {
color: @headings-color;
font-family:@font-family-monospace;
font-weight: @fw_semibold;
font-size: .9em;
}
}
}
table, .table {
font-size: 0.9em;
}
.code-namespace, .code-module, .code-class,
.code-staticmethod, .code-classmethod, .code-method, .code-function,
.code-attribute, .code-data {
// indents *all* content
padding-left: 20px;
margin-bottom: 2em;
// except for item title which gets dedented back
> h6 {
margin-left: -20px;
margin-bottom: 0.3em;
.viewcode-link {
display: none;
float: right
}
&:hover .viewcode-link {
display: inline;
}
}
p {
margin-bottom: .5em;
}
}
main.has_code_col{
@media (min-width: @screen-lg-min) {
.doc-aside {
color: @gray-light;
pre{
font-size: 12px;
}
}
}
}
article.doc-body {
background: @doc_paper;
section.doc-content:first-of-type{
> p:first-child{
.lead;
}
}
&.index-category {
min-height: 300px;
min-height: 30vh;
li.toctree-l1 {
padding: 5px 0;
}
}
}
.content-switcher {
margin-top: 1.5em;
> ul {
font-size: 10px;
padding: 0;
margin: 0 0 10px;
.transition(all .2s ease);
> li {
color: text-color;
font-weight: @fw_semibold;
border-bottom: 1px solid transparent;
margin: 5px;
font-size: 1.3em;
cursor: pointer;
display: inline-block;
list-style: none;
.transition(all .2s);
.opacity(0.6);
&.active {
border-bottom: 1px solid @brand-primary;
.opacity(1);
}
}
}
&:hover > ul > li {
.opacity(1);
}
> .tabs > * {
display: none;
max-width: 100%;
overflow-x: auto;
}
> .tabs > .active {
display: block;
}
}
.highlight {
background: @doc_code-bg;
color: @gray-light;
border-radius: @border-radius-base;
margin-bottom: (@line-height-computed / 2);
pre {
margin-bottom: 0;
}
}
pre {
font-size: 0.8em;
color: @gray-light;
background: @doc_code-bg;
font-family: @font-family-monospace;
font-weight: @fw_semibold;
position: relative;
border: none;
max-width: 100%;
overflow: auto;
margin: 0;
margin-bottom: (@line-height-computed / 2);
}
#mask {
.opacity(0);
position: fixed;
z-index: @zIndex--mask;
top: 0;
left: 0;
.size(100%; 0);
background-color: fade(black, 20%);
.transition(opacity .3s);
&.active {
.opacity(1);
display: block;
.square(100%);
.transition(opacity .3s);
}
}
// Special Pages
@@ -823,6 +259,4 @@ pre {
// Theme tutorial
#thinking-modular > .clearfix.themes {
margin-bottom: 3em;
}
}
+145 -29
View File
@@ -1,21 +1,20 @@
// =============================================================================
// Typography
// =============================================================================
@margin-base: 5px;
// Font rendering
// ----------------------------------------
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
}
// Headings
// ----------------------------------------
h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
h1, h2, h3, h4, h5, h6 {
text-rendering: geometricPrecision;
letter-spacing: -0.01em;
line-height: 1.4;
@media (min-width: @screen-lg-min) {
.has_code_col .doc-aside &{
@@ -24,35 +23,152 @@ h1, h2, h3, h4, h5, h6,
}
}
h1, h2, .h1, .h2 {
margin-top: @line-height-computed * 1.5;
font-weight: @fw_light;
b, strong, a {
font-weight: @fw_regular;
.headings-margin-small () {
> h2, > h3, > h4, > h5, > h6 {
margin-top: @margin-base*2;
}
}
h3, .h3, h4, .h4, h5, h6, .h5, .h6 {
font-weight: @fw_regular;
b, strong, a {
font-weight: @fw_medium;
}
}
h4, .h4, h5, h6, .h5, .h6 {
margin-top: @line-height-computed;
margin-bottom: (@line-height-computed / 3);
.headings-bordered () {
padding-bottom: @margin-base;
border-bottom: 2px solid #f4f6f7;
}
// Lists
// ----------------------------------------
article.doc-body {
ul, ol {
&:not(:empty) {
margin-bottom: (@line-height-computed / 2);
}
ul, ol {
&:not(:empty) {
margin-bottom: (@line-height-computed / 3);
// Vertical rhythm
> section {
padding-bottom: @margin-base*2;
> :last-child {
margin-bottom: 0;
}
> h2, > h3, > h4, > h5, > h6 {
margin-bottom: @margin-base;
margin-top: @margin-base*8;
&:last-child {
margin-bottom: -@margin-base*6;
.headings-bordered();
}
}
> h2 {
.headings-bordered();
}
> h5, > h6 {
font-weight: 500;
}
&:first-of-type {
.headings-margin-small();
&:empty, &.hidden {
display: none;
+ section {
.headings-margin-small();
}
}
}
}
}
// Typography components
> section {
line-height: 26px;
}
a, a:hover {
text-decoration: underline;
}
blockquote {
font-size: 15px;
line-height: 26px;
&:not(:first-child) {
margin-top: 17px;
}
}
dl {
dt code {
font-size: 0.9em;
}
dd {
margin: 2px 0 @grid-gutter-width/2 @grid-gutter-width/2;
}
}
ol, ul {
line-height: 26px;
padding: 0;
list-style: none;
counter-reset: a;
li {
margin: 5px 0;
position: relative;
padding-left: 30px;
&:before {
content: "";
display: block;
.o-position-absolute(9px, @left: 10px);
.square(6px);
border-radius: 50%;
background: #939da3;
}
p {
margin: 0;
}
h2, h3, h4, h5, h6 {
margin-top: 0;
padding-top: 0;
}
}
}
ol > li:before {
counter-increment: a;
content: counter(a);
color: #fff;
font-size: 13px;
font-weight: bold;
line-height: 1;
text-align: center;
padding: 4px 0;
.square(20px);
border-radius: 10px;
.o-position-absolute(3px, @left: 0);
}
.o_has_permalink_marker {
transition: all, 0.3s;
padding-left: 0;
i {
cursor: pointer;
visibility: hidden;
margin-left: 0.1em;
font-size: 0.8em;
padding: 0.2em;
.rotate(-45deg);
}
&:hover {
i {
visibility: visible;
}
}
&.o_marked {
padding-left: 10px;
background-color: #fff7d1;
}
}
}
+11 -14
View File
@@ -78,11 +78,8 @@
// Typography
// ===============================================
//== Fonts
@import url(https://fonts.googleapis.com/css?family=Work+Sans:300,400,500,600,700&subset=latin,latin-ext);
//== Font sizes/weigths
@font-size-base : 15px;
@font-size-base : 16px;
@fw_light : 300;
@fw_regular : 400;
@@ -91,19 +88,20 @@
@fw_bold : 700;
//== Paragraphs
@font-family-base : -apple-system, BlinkMacSystemFont, Helvetica, "Helvetica Neue", Arial, sans-serif;
@text-color : saturate(@gray-dark, 5%);
@font-family-base : -apple-system, system-ui, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
@text-color : #373e42;
//== Headings
@headings-color : saturate(@gray-darker, 15%);
@headings-font-family : "Work Sans", sans-serif;
@headings-font-weight : @fw_light;
@headings-font-family : @font-family-base;
@headings-font-weight : @fw_regular;
@headings-small-color : @headings-color;
@display1-size : 6rem;
@display2-size : 5.5rem;
@display3-size : 4.5rem;
@display4-size : 3.5rem;
@font-size-h2: 30px;
@font-size-h3: 24px;
@font-size-h4: 19px;
@font-size-h5: 17px;
@font-size-h6: 17px;
//== Global textual link color.
@link-color : @o-violet-dark;
@@ -160,8 +158,7 @@
// Cards
// --------------------------------------------------
@card_min-height: 200px;
@card_margin-bottom: 20px;
@card_margin-bottom: 25px;
+4 -4
View File
@@ -312,9 +312,9 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
def visit_title(self, node):
parent = node.parent
closing = u'</p>'
closing = u'</h3>'
if isinstance(parent, nodes.Admonition):
self.body.append(self.starttag(node, 'p', CLASS='alert-title'))
self.body.append(self.starttag(node, 'h3', CLASS='alert-title'))
elif isinstance(node.parent, nodes.document):
self.body.append(self.starttag(node, 'h1'))
closing = u'</h1>'
@@ -633,9 +633,9 @@ class BootstrapTranslator(nodes.NodeVisitor, object):
classes = env.metadata[ref].get('types', 'tutorials')
classes += ' toc-single-entry' if not toc else ' toc-section'
self.body.append(self.starttag(node, 'div', CLASS="row " + classes))
self.body.append(u'<h2 class="col-sm-12">')
self.body.append(u'<div class="col-sm-12"><h2>')
self.body.append(title if title else util.nodes.clean_astext(env.titles[ref]))
self.body.append(u'</h2>')
self.body.append(u'</h2></div>')
entries = [(title, ref)] if not toc else ((e[0], e[1]) for e in toc[0]['entries'])
for subtitle, subref in entries:
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 247 KiB

After

Width:  |  Height:  |  Size: 100 KiB

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