Skip to content
Snippets Groups Projects
Commit 7a4497f8 authored by OCA Git Bot's avatar OCA Git Bot
Browse files

Merge remote-tracking branch 'odoo/14.0' into 14.0

parents caf2844b febb7989
No related branches found
No related tags found
No related merge requests found
......@@ -5,5 +5,6 @@ from . import res_partner
from . import res_company
from . import account_invoice
from . import account_edi_format
from . import account_chart_template
from . import ir_mail_server
from . import ddt
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models
class AccountChartTemplate(models.Model):
_inherit = 'account.chart.template'
def _load(self, sale_tax_rate, purchase_tax_rate, company):
res = super()._load(sale_tax_rate, purchase_tax_rate, company)
if self == self.env.ref('l10n_it.l10n_it_chart_template_generic', raise_if_not_found=False):
tax = self.env.ref(f'l10n_it.{company.id}_00eu', raise_if_not_found=False)
if tax:
tax.write({
'l10n_it_has_exoneration': True,
'l10n_it_kind_exoneration': 'N3.2',
'l10n_it_law_reference': 'Art. 41, DL n. 331/93',
})
return res
......@@ -8,7 +8,7 @@
<div class="row align-items-center justify-content-between">
<!-- Desktop Mode -->
<nav aria-label="breadcrumb" class="col-md-8 d-none d-md-flex">
<ol class="breadcrumb bg-transparent mb-0 pl-0 py-0">
<ol class="breadcrumb bg-transparent mb-0 pl-0 py-0 overflow-hidden">
<li class="breadcrumb-item">
<a href="/slides">Courses</a>
</li>
......@@ -28,7 +28,7 @@
<li t-att-class="breadcrumb_class" t-att-aria-current="'page' and search_slide_type" t-if="search_slide_type">
<a t-att-href="'/slides/%s?slide_type=%s' % (slug(channel), search_slide_type)"><span t-esc="slide_types[search_slide_type]"/></a>
</li>
<li t-if="slide" class="breadcrumb-item active">
<li t-if="slide" class="breadcrumb-item active text-truncate text-white">
<a t-att-href="'/slides/slide/%s' % slug(slide)"><span t-esc="slide.name"/></a>
</li>
</ol>
......
......@@ -208,8 +208,8 @@
<t t-set="is_training_channel" t-value="slide.channel_id.channel_type == 'training'"/>
<div class="row align-items-center my-3">
<div class="col-12 col-md order-2 order-md-1 d-flex">
<div class="d-flex align-items-center">
<h1 class="h4 my-0">
<div class="d-flex align-items-center overflow-hidden">
<h1 class="h4 my-0 text-truncate">
<t t-call="website_slides.slide_icon">
<t t-set="icon_class" t-valuef="mr-1"/>
</t>
......
......@@ -105,18 +105,18 @@
<i t-if="slide_completed and is_member" class="o_wslides_slide_completed fa fa-check fa-fw text-success" t-att-data-slide-id="slide.id"/>
<i t-if="not slide_completed and is_member" class="fa fa-circle-thin fa-fw" t-att-data-slide-id="slide.id"/>
</span>
<div class="ml-2">
<div class="ml-2 overflow-hidden">
<a t-if="can_access" class="d-block pt-1" href="#">
<div class="d-flex ">
<t t-call="website_slides.slide_icon"/>
<div class="o_wslides_fs_slide_name" t-esc="slide.name"/>
<div class="o_wslides_fs_slide_name text-truncate" t-esc="slide.name"/>
</div>
</a>
<span t-else="" class="d-block pt-1" href="#">
<div class="d-flex ">
<t t-set="icon_class" t-value="'mr-2 text-600'"/>
<t t-call="website_slides.slide_icon"/>
<div class="o_wslides_fs_slide_name text-600" t-esc="slide.name"/>
<div class="o_wslides_fs_slide_name text-600 text-truncate" t-esc="slide.name"/>
</div>
</span>
<ul class="list-unstyled w-100 pt-2 small" t-if="slide.link_ids or slide._has_additional_resources() or (slide.question_ids and not slide.slide_type =='quiz')" >
......
import ast
import os
from shutil import copyfileobj
from types import CodeType
from werkzeug.datastructures import FileStorage
from werkzeug.routing import Rule
from werkzeug.wrappers import Request, Response
from .json import scriptsafe
......@@ -30,6 +32,14 @@ FileStorage.save = lambda self, dst, buffer_size=1<<20: copyfileobj(self.stream,
Request.json_module = Response.json_module = scriptsafe
get_func_code = getattr(Rule, '_get_func_code', None)
if get_func_code:
@staticmethod
def _get_func_code(code, name):
assert isinstance(code, CodeType)
return get_func_code(code, name)
Rule._get_func_code = _get_func_code
orig_literal_eval = ast.literal_eval
def literal_eval(expr):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment