[REF] *: BS5: migration
Automated change made by a lot of RegEx to change all think that is possible to automate. https://getbootstrap.com/docs/5.1/migration Task ID: 2766483 Part-of: odoo/odoo#95450
This commit is contained in:
@@ -35,15 +35,15 @@
|
||||
font-weight: 500;
|
||||
|
||||
.o_account_dashboard_index {
|
||||
color: gray('900');
|
||||
color: map-get($grays, '900');
|
||||
}
|
||||
|
||||
&.o_action_done {
|
||||
color: gray('900');
|
||||
background-color: gray('200');
|
||||
color: map-get($grays, '900');
|
||||
background-color: map-get($grays, '200');
|
||||
|
||||
&:after {
|
||||
border-left-color: gray('200');
|
||||
border-left-color: map-get($grays, '200');
|
||||
}
|
||||
|
||||
.fa-check {
|
||||
@@ -54,7 +54,7 @@
|
||||
&:last-of-type {
|
||||
margin-left: $o-horizontal-padding;
|
||||
padding-left: $o-horizontal-padding*.5;
|
||||
border-left: 1px solid gray('300');
|
||||
border-left: 1px solid map-get($grays, '300');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -113,7 +113,7 @@
|
||||
|
||||
.cell_action {
|
||||
width: 15px;
|
||||
color: gray('700');
|
||||
color: map-get($grays, '700');
|
||||
background: #fff;
|
||||
border: 0;
|
||||
text-align: center;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<t t-esc="activity.name"/>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-4 text-right">
|
||||
<div class="col-4 text-end">
|
||||
<span><t t-esc="activity.date"/></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<div>
|
||||
<t t-if="outstanding">
|
||||
<div>
|
||||
<strong class="float-left" id="outstanding" t-esc="title"/>
|
||||
<strong class="float-start" id="outstanding" t-esc="title"/>
|
||||
</div>
|
||||
</t>
|
||||
<table style="width:100%;">
|
||||
@@ -20,7 +20,7 @@
|
||||
t-att-data-id="line.id"
|
||||
style="margin-right: 0px; padding-left: 5px; padding-right: 5px;"
|
||||
href="#"
|
||||
data-toggle="tooltip">Add</a>
|
||||
data-bs-toggle="tooltip">Add</a>
|
||||
</td>
|
||||
<td style="max-width: 11em;">
|
||||
<a t-att-title="line.date"
|
||||
@@ -28,21 +28,21 @@
|
||||
class="oe_form_field btn btn-link open_account_move"
|
||||
t-att-move-id="line.move_id"
|
||||
style="margin-right: 5px; text-overflow: ellipsis; overflow: hidden; white-space: nowrap; padding-left: 0px; width:100%; text-align:left;"
|
||||
data-toggle="tooltip"
|
||||
data-bs-toggle="tooltip"
|
||||
t-att-payment-id="account_payment_id"
|
||||
t-esc="line.journal_name"/>
|
||||
</td>
|
||||
</t>
|
||||
<t t-if="!outstanding">
|
||||
<td>
|
||||
<a role="button" tabindex="0" class="js_payment_info fa fa-info-circle" t-att-index="line.index" style="margin-right:5px;" aria-label="Info" title="Journal Entry Info" data-toggle="tooltip"></a>
|
||||
<a role="button" tabindex="0" class="js_payment_info fa fa-info-circle" t-att-index="line.index" style="margin-right:5px;" aria-label="Info" title="Journal Entry Info" data-bs-toggle="tooltip"></a>
|
||||
</td>
|
||||
<td t-if="!line.is_exchange">
|
||||
<i class="o_field_widget text-left o_payment_label">Paid on <t t-esc="line.date"></t></i>
|
||||
<i class="o_field_widget text-start o_payment_label">Paid on <t t-esc="line.date"></t></i>
|
||||
</td>
|
||||
<td t-if="line.is_exchange" colspan="2">
|
||||
<i class="o_field_widget text-left text-muted text-left">
|
||||
<span class="oe_form_field oe_form_field_float oe_form_field_monetary font-weight-bold">
|
||||
<i class="o_field_widget text-start text-muted text-start">
|
||||
<span class="oe_form_field oe_form_field_float oe_form_field_monetary fw-bold">
|
||||
<t t-if="line.position === 'before'">
|
||||
<t t-esc="line.currency"/>
|
||||
</t>
|
||||
@@ -102,8 +102,8 @@
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<button class="btn btn-sm btn-primary js_unreconcile_payment float-left" t-att-partial-id="partial_id" t-att-payment-id="payment_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;" groups="account.group_account_invoice">Unreconcile</button>
|
||||
<button class="btn btn-sm btn-secondary js_open_payment float-right" t-att-payment-id="account_payment_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;">View</button>
|
||||
<button class="btn btn-sm btn-primary js_unreconcile_payment float-start" t-att-partial-id="partial_id" t-att-payment-id="payment_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;" groups="account.group_account_invoice">Unreconcile</button>
|
||||
<button class="btn btn-sm btn-secondary js_open_payment float-end" t-att-payment-id="account_payment_id" t-att-move-id="move_id" style="margin-top:5px; margin-bottom:5px;">View</button>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
<field name="allowed_journal_ids" optional="hide" widget="many2many_tags"/>
|
||||
<field name="currency_id" options="{'no_create': True}" groups="base.group_multi_currency"/>
|
||||
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
|
||||
<button name="action_read_account" type="object" string="Setup" class="float-right btn-secondary"/>
|
||||
<button name="action_read_account" type="object" string="Setup" class="float-end btn-secondary"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
@@ -123,8 +123,8 @@
|
||||
<div class="col-6">
|
||||
<strong><field name="name"/></strong>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<span class="badge badge-pill"><t t-esc="record.code.value"/></span>
|
||||
<div class="col-6 text-end">
|
||||
<span class="badge rounded-pill"><t t-esc="record.code.value"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
@@ -63,7 +63,7 @@
|
||||
<div t-if="record.date_start.value"><i class="fa fa-calendar"></i> From <field name="date_start"/> <t t-if="record.date_stop.value">to <field name="date_stop"/></t></div>
|
||||
<div t-if="record.product_id.value"><strong>Product</strong> <field name="product_id"/> </div>
|
||||
<div t-if="record.partner_id.value"><strong>Customer</strong> <field name="partner_id"/> </div>
|
||||
<div class="float-right">
|
||||
<div class="float-end">
|
||||
<field name="user_id" widget="many2one_avatar_user"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -221,7 +221,7 @@
|
||||
<div class="col-6 position-relative">
|
||||
<field name="show_on_dashboard" widget="boolean_favorite" />
|
||||
</div>
|
||||
<div class="col-6 text-right mt-1">
|
||||
<div class="col-6 text-end mt-1">
|
||||
<a class="dropdown-item" t-if="widget.editable" type="edit">Configuration</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -237,10 +237,10 @@
|
||||
<field name="json_activity_data" widget="kanban_vat_activity"/>
|
||||
<t t-if="dashboard.number_to_check > 0">
|
||||
<div class="row">
|
||||
<div class="col overflow-hidden text-left">
|
||||
<div class="col overflow-hidden text-start">
|
||||
<a type="object" name="open_action" context="{'action_name': 'action_move_journal_line', 'search_default_to_check': True}"><t t-esc="dashboard.number_to_check"/> to check</a>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.to_check_balance"/></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -272,27 +272,27 @@
|
||||
<!-- On the right, show other common informations/actions -->
|
||||
<div id="dashboard_bank_cash_right" class="col-12 col-sm-7 o_kanban_primary_right">
|
||||
<div class="row" t-if="dashboard.nb_lines_bank_account_balance > 0">
|
||||
<div id="dashboard_bank_cash_balance" class="col overflow-hidden text-left">
|
||||
<div id="dashboard_bank_cash_balance" class="col overflow-hidden text-start">
|
||||
<span title="Balance in General Ledger">Balance in GL</span>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.account_balance"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" t-if="dashboard.nb_lines_outstanding_pay_account_balance > 0">
|
||||
<div id="dashboard_bank_cash_outstanding_balance" class="col overflow-hidden text-left">
|
||||
<div id="dashboard_bank_cash_outstanding_balance" class="col overflow-hidden text-start">
|
||||
<span title="Outstanding Payments/Receipts">Outstanding Payments/Receipts</span>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.outstanding_pay_account_balance"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<t t-if="dashboard.has_at_least_one_statement and dashboard.account_balance != dashboard.last_balance">
|
||||
<div class="row" name="latest_statement">
|
||||
<div class="col overflow-hidden text-left">
|
||||
<div class="col overflow-hidden text-start">
|
||||
<span title="Latest Statement">Latest Statement</span>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.last_balance"/></span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -323,18 +323,18 @@
|
||||
</div>
|
||||
<div class="col-12 col-sm-7 o_kanban_primary_right">
|
||||
<div class="row" t-if="dashboard.number_draft">
|
||||
<div class="col overflow-hidden text-left">
|
||||
<div class="col overflow-hidden text-start">
|
||||
<a type="object" name="open_action" context="{'search_default_draft': '1'}">
|
||||
<span t-if="journal_type == 'sale'" title="Invoices to Validate"><t t-esc="dashboard.number_draft"/> Invoices to Validate</span>
|
||||
<span t-if="journal_type == 'purchase'" title="Bills to Validate"><t t-esc="dashboard.number_draft"/> Bills to Validate</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.sum_draft"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" t-if="dashboard.number_waiting">
|
||||
<div class="col overflow-hidden text-left">
|
||||
<div class="col overflow-hidden text-start">
|
||||
<a type="object" t-if="journal_type == 'sale'" name="open_action"
|
||||
context="{'search_default_open':1, 'search_default_posted':1, 'search_default_partial': 1}" id="account_dashboard_sale_pay_link">
|
||||
<t t-esc="dashboard.number_waiting"/> Unpaid Invoices
|
||||
@@ -345,27 +345,27 @@
|
||||
<t t-esc="dashboard.number_waiting"/> Bills to Pay
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.sum_waiting"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" t-if="dashboard.number_late">
|
||||
<div class="col overflow-hidden text-left">
|
||||
<div class="col overflow-hidden text-start">
|
||||
<a type="object" name="open_action" context="{'search_default_late': '1'}">
|
||||
<span t-if="journal_type == 'sale'" title="Late Invoices"><t t-esc="dashboard.number_late"/> Late Invoices</span>
|
||||
<span t-if="journal_type == 'purchase'" title="Late Bills"><t t-esc="dashboard.number_late"/> Late Bills</span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.sum_late"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<t t-if="dashboard.number_to_check > 0">
|
||||
<div class="row">
|
||||
<div class="col overflow-hidden text-left">
|
||||
<div class="col overflow-hidden text-start">
|
||||
<a type="object" name="open_action" context="{'search_default_to_check': True}"><t t-esc="dashboard.number_to_check"/> to check</a>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span><t t-esc="dashboard.to_check_balance"/></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -184,7 +184,7 @@
|
||||
<strong><field name="name"/></strong>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<span class="float-right"><field name="type"/></span>
|
||||
<span class="float-end"><field name="type"/></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -101,7 +101,7 @@
|
||||
<div class="col-8">
|
||||
<field name="account_id"/>
|
||||
</div>
|
||||
<strong t-if="record.date_maturity.raw_value" class="col-4 pl-0 text-right">
|
||||
<strong t-if="record.date_maturity.raw_value" class="col-4 ps-0 text-end">
|
||||
<i class="fa fa-clock-o" aria-label="Date" role="img" title="Date"/> <field name="date_maturity"/>
|
||||
</strong>
|
||||
</div>
|
||||
@@ -109,7 +109,7 @@
|
||||
<em class="col-10">
|
||||
<field name="name"/>
|
||||
</em>
|
||||
<div class="col-2 text-right">
|
||||
<div class="col-2 text-end">
|
||||
<img t-att-src="kanban_image('res.partner', 'avatar_128', record.partner_id.raw_value)" t-att-title="record.partner_id.value" t-att-alt="record.partner_id.value" class="oe_kanban_avatar o_image_24_cover"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -117,7 +117,7 @@
|
||||
<div class="col-6">
|
||||
<field name="tax_ids" widget="many2many_tags"/>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<div class="col-6 text-end">
|
||||
<t t-if="record.debit.raw_value > 0">
|
||||
<field name="debit"/><span> (DR)</span>
|
||||
</t>
|
||||
@@ -530,7 +530,7 @@
|
||||
</span>
|
||||
</strong>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<div class="col-6 text-end">
|
||||
<strong><i class="fa fa-clock-o" aria-label="Date" role="img" title="Date"/> <t t-esc="record.date.value"/></strong>
|
||||
</div>
|
||||
</div>
|
||||
@@ -545,7 +545,7 @@
|
||||
<span><field name="currency_id" invisible="1"/></span>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<span class="float-right">
|
||||
<span class="float-end">
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'posted': 'success'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
@@ -922,10 +922,10 @@
|
||||
<field name="price_unit"/>
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div t-attf-class="oe_kanban_card oe_kanban_global_click pl-0 pr-0 {{ record.display_type.raw_value ? 'o_is_' + record.display_type.raw_value : '' }}">
|
||||
<div t-attf-class="oe_kanban_card oe_kanban_global_click ps-0 pe-0 {{ record.display_type.raw_value ? 'o_is_' + record.display_type.raw_value : '' }}">
|
||||
<t t-if="!record.display_type.raw_value">
|
||||
<div class="row no-gutters">
|
||||
<div class="col-2 pr-3">
|
||||
<div class="row g-0">
|
||||
<div class="col-2 pe-3">
|
||||
<img t-att-src="kanban_image('product.product', 'image_128', record.product_id.raw_value)" t-att-title="record.product_id.value" t-att-alt="record.product_id.value" style="max-width: 100%;"/>
|
||||
</div>
|
||||
<div class="col-10">
|
||||
@@ -934,7 +934,7 @@
|
||||
<strong t-esc="record.product_id.value"/>
|
||||
</div>
|
||||
<div class="col-auto">
|
||||
<strong class="float-right text-right">
|
||||
<strong class="float-end text-end">
|
||||
<t t-esc="record.price_subtotal.value" groups="account.group_show_line_subtotals_tax_excluded"/>
|
||||
<t t-esc="record.price_total.value" groups="account.group_show_line_subtotals_tax_included"/>
|
||||
</strong>
|
||||
@@ -1121,7 +1121,7 @@
|
||||
icon="fa-calendar"
|
||||
string="Cut-Off"
|
||||
aria-label="Change Period"
|
||||
class="float-right"
|
||||
class="float-end"
|
||||
attrs="{'invisible': [('account_internal_group', 'not in', ('income', 'expense'))], 'column_invisible': ['|', ('parent.move_type', '=', 'entry'), ('parent.state', '!=', 'posted')]}"
|
||||
context="{'hide_automatic_options': 1, 'default_action': 'change_period'}"/>
|
||||
|
||||
|
||||
@@ -66,7 +66,7 @@
|
||||
<div class="col-6">
|
||||
<strong><span><field name="name"/></span></strong>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<div class="col-6 text-end">
|
||||
<strong><i class="fa fa-clock-o" role="img" aria-label="Date" title="Date"/> <t t-esc="record.date.value"/></strong>
|
||||
</div>
|
||||
</div>
|
||||
@@ -81,7 +81,7 @@
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<span class="float-right">
|
||||
<span class="float-end">
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'secondary', 'sent': 'success'}}"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<th>Invoice Date</th>
|
||||
<th class='d-none d-md-table-cell'>Due Date</th>
|
||||
<th class="text-center">Status</th>
|
||||
<th class="text-right">Amount Due</th>
|
||||
<th class="text-end">Amount Due</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -55,19 +55,19 @@
|
||||
<td class='d-none d-md-table-cell'><span t-field="invoice.invoice_date_due"/></td>
|
||||
<td class="tx_status text-center">
|
||||
<t t-if="invoice.state == 'posted' and invoice.payment_state not in ('in_payment', 'paid', 'reversed')">
|
||||
<span class="badge badge-pill badge-info"><i class="fa fa-fw fa-clock-o" aria-label="Opened" title="Opened" role="img"></i><span class="d-none d-md-inline"> Waiting for Payment</span></span>
|
||||
<span class="badge rounded-pill text-bg-info"><i class="fa fa-fw fa-clock-o" aria-label="Opened" title="Opened" role="img"></i><span class="d-none d-md-inline"> Waiting for Payment</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'posted' and invoice.payment_state in ('paid', 'in_payment')">
|
||||
<span class="badge badge-pill badge-success"><i class="fa fa-fw fa-check" aria-label="Paid" title="Paid" role="img"></i><span class="d-none d-md-inline"> Paid</span></span>
|
||||
<span class="badge rounded-pill text-bg-success"><i class="fa fa-fw fa-check" aria-label="Paid" title="Paid" role="img"></i><span class="d-none d-md-inline"> Paid</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'posted' and invoice.payment_state == 'reversed'">
|
||||
<span class="badge badge-pill badge-success"><i class="fa fa-fw fa-check" aria-label="Reversed" title="Reversed" role="img"></i><span class="d-none d-md-inline"> Reversed</span></span>
|
||||
<span class="badge rounded-pill text-bg-success"><i class="fa fa-fw fa-check" aria-label="Reversed" title="Reversed" role="img"></i><span class="d-none d-md-inline"> Reversed</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'cancel'">
|
||||
<span class="badge badge-pill badge-warning"><i class="fa fa-fw fa-remove" aria-label="Cancelled" title="Cancelled" role="img"></i><span class="d-none d-md-inline"> Cancelled</span></span>
|
||||
<span class="badge rounded-pill text-bg-warning"><i class="fa fa-fw fa-remove" aria-label="Cancelled" title="Cancelled" role="img"></i><span class="d-none d-md-inline"> Cancelled</span></span>
|
||||
</t>
|
||||
</td>
|
||||
<td class="text-right"><span t-esc="-invoice.amount_residual if invoice.move_type == 'out_refund' else invoice.amount_residual" t-options='{"widget": "monetary", "display_currency": invoice.currency_id}'/></td>
|
||||
<td class="text-end"><span t-esc="-invoice.amount_residual if invoice.move_type == 'out_refund' else invoice.amount_residual" t-options='{"widget": "monetary", "display_currency": invoice.currency_id}'/></td>
|
||||
</tr>
|
||||
</t>
|
||||
</tbody>
|
||||
@@ -99,7 +99,7 @@
|
||||
<ul class="list-group list-group-flush flex-wrap flex-row flex-lg-column">
|
||||
<li class="list-group-item flex-grow-1">
|
||||
<div class="o_download_pdf btn-toolbar flex-sm-nowrap">
|
||||
<div class="btn-group flex-grow-1 mr-1 mb-1">
|
||||
<div class="btn-group flex-grow-1 me-1 mb-1">
|
||||
<a class="btn btn-secondary btn-block o_download_btn" t-att-href="invoice.get_portal_url(report_type='pdf', download=True)" title="Download"><i class="fa fa-download"/> Download</a>
|
||||
</div>
|
||||
<div class="btn-group flex-grow-1 mb-1">
|
||||
@@ -117,10 +117,10 @@
|
||||
</t>
|
||||
</strong></div>
|
||||
<div class="row">
|
||||
<div class="col flex-grow-0 pr-2">
|
||||
<div class="col flex-grow-0 pe-2">
|
||||
<img class="rounded-circle mt-1 o_portal_contact_img" t-att-src="image_data_uri(invoice.invoice_user_id.avatar_1024)" alt="Contact"/>
|
||||
</div>
|
||||
<div class="col pl-0">
|
||||
<div class="col ps-0">
|
||||
<span t-field="invoice.invoice_user_id" t-options='{"widget": "contact", "fields": ["name", "phone"], "no_marker": True}'/>
|
||||
<a href="#discussion" class="small"><i class="fa fa-fw fa-comments"/><b>Send message</b></a>
|
||||
</div>
|
||||
@@ -154,7 +154,7 @@
|
||||
<template id="portal_invoice_error" name="Invoice error/warning display">
|
||||
<div class="row mr16">
|
||||
<div t-attf-class="'col-lg-12 mr16 ml16 alert alert-dismissable' #{'alert-danger' if error else 'alert-warning'}" role="alert">
|
||||
<a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">×</a>
|
||||
<a href="#" class="close" data-bs-dismiss="alert" aria-label="close" title="close">×</a>
|
||||
<t t-if="error == 'generic'" name="generic">
|
||||
There was an error processing this page.
|
||||
</t>
|
||||
@@ -165,7 +165,7 @@
|
||||
<template id="portal_invoice_success" name="Invoice success display">
|
||||
<div class="row mr16">
|
||||
<div class="col-lg-12 mr16 ml16 alert alert-dismissable alert-success" role="status">
|
||||
<a href="#" class="close" data-dismiss="alert" aria-label="close" title="close">×</a>
|
||||
<a href="#" class="close" data-bs-dismiss="alert" aria-label="close" title="close">×</a>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -75,9 +75,9 @@
|
||||
<div class="col-6">
|
||||
<strong><span><t t-esc="record.name.value"/></span></strong>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<span class="badge badge-pill"><t t-esc="record.type_tax_use.value"/></span>
|
||||
<span class="badge badge-pill"><t t-esc="record.tax_scope.value"/></span>
|
||||
<div class="col-6 text-end">
|
||||
<span class="badge rounded-pill"><t t-esc="record.type_tax_use.value"/></span>
|
||||
<span class="badge rounded-pill"><t t-esc="record.tax_scope.value"/></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -62,11 +62,11 @@
|
||||
<table class="table table-sm o_main_table" name="invoice_line_table" style="width: 100%;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th name="th_description" class="text-left"><span>Description</span></th>
|
||||
<th name="th_quantity" class="text-right"><span>Quantity</span></th>
|
||||
<th name="th_priceunit" class="text-right d-md-table-cell"><span>Unit Price</span></th>
|
||||
<th name="th_taxes" class="text-left d-md-table-cell"><span>Taxes</span></th>
|
||||
<th name="th_subtotal" class="text-right"><span>Amount</span></th>
|
||||
<th name="th_description" class="text-start"><span>Description</span></th>
|
||||
<th name="th_quantity" class="text-end"><span>Quantity</span></th>
|
||||
<th name="th_priceunit" class="text-end d-md-table-cell"><span>Unit Price</span></th>
|
||||
<th name="th_taxes" class="text-start d-md-table-cell"><span>Taxes</span></th>
|
||||
<th name="th_subtotal" class="text-end"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody class="invoice_tbody">
|
||||
@@ -74,16 +74,16 @@
|
||||
<td name="account_invoice_line_name">
|
||||
[FURN_8999] Three-Seat Sofa
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span>5.00</span>
|
||||
</td>
|
||||
<td class="text-right d-md-table-cell">
|
||||
<td class="text-end d-md-table-cell">
|
||||
<span class="text-nowrap">1,500.00</span>
|
||||
</td>
|
||||
<td class="text-left d-md-table-cell">
|
||||
<td class="text-start d-md-table-cell">
|
||||
<span>Tax 0%</span>
|
||||
</td>
|
||||
<td class="text-right o_price_total">
|
||||
<td class="text-end o_price_total">
|
||||
<span class="text-nowrap">$ <span class="oe_currency_value">7,500.00</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -91,16 +91,16 @@
|
||||
<td name="account_invoice_line_name">
|
||||
[FURN_8220] Four Person Desk
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span>5.00</span>
|
||||
</td>
|
||||
<td class="text-right d-md-table-cell">
|
||||
<td class="text-end d-md-table-cell">
|
||||
<span class="text-nowrap">2,350.00</span>
|
||||
</td>
|
||||
<td class="text-left d-md-table-cell">
|
||||
<td class="text-start d-md-table-cell">
|
||||
<span>Tax 0%</span>
|
||||
</td>
|
||||
<td class="text-right o_price_total">
|
||||
<td class="text-end o_price_total">
|
||||
<span class="text-nowrap">$ <span class="oe_currency_value">11,750.00</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -112,13 +112,13 @@
|
||||
<table class="table table-sm" style="page-break-inside: avoid; width:100%">
|
||||
<tbody><tr class="border-black o_subtotal" style="">
|
||||
<td><strong>Subtotal</strong></td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span>$ <span class="oe_currency_value">19,250.00</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr class="border-black o_total">
|
||||
<td><strong>Total</strong></td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span class="text-nowrap">$ <span class="oe_currency_value">19,250.00</span></span>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -73,7 +73,7 @@
|
||||
<field name="taxes_id" widget="many2many_tags" context="{'default_type_tax_use':'sale', 'search_default_sale': 1, 'search_default_service': type == 'service', 'search_default_goods': type == 'consu'}"/>
|
||||
</xpath>
|
||||
<xpath expr="//div[@name='pricing']" position="inside">
|
||||
<span class="ml-2"/><field name="tax_string"/>
|
||||
<span class="ms-2"/><field name="tax_string"/>
|
||||
</xpath>
|
||||
<group name="bill" position="inside">
|
||||
<field name="supplier_taxes_id" widget="many2many_tags" context="{'default_type_tax_use':'purchase', 'search_default_purchase': 1, 'search_default_service': type == 'service', 'search_default_goods': type == 'consu'}"/>
|
||||
|
||||
@@ -88,14 +88,14 @@
|
||||
<table class="table table-sm o_main_table" name="invoice_line_table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th name="th_description" class="text-left"><span>Description</span></th>
|
||||
<th name="th_quantity" class="text-right"><span>Quantity</span></th>
|
||||
<th name="th_priceunit" t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"><span>Unit Price</span></th>
|
||||
<th name="th_price_unit" t-if="display_discount" t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<th name="th_description" class="text-start"><span>Description</span></th>
|
||||
<th name="th_quantity" class="text-end"><span>Quantity</span></th>
|
||||
<th name="th_priceunit" t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"><span>Unit Price</span></th>
|
||||
<th name="th_price_unit" t-if="display_discount" t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<span>Disc.%</span>
|
||||
</th>
|
||||
<th name="th_taxes" t-attf-class="text-left {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"><span>Taxes</span></th>
|
||||
<th name="th_subtotal" class="text-right">
|
||||
<th name="th_taxes" t-attf-class="text-start {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}"><span>Taxes</span></th>
|
||||
<th name="th_subtotal" class="text-end">
|
||||
<span groups="account.group_show_line_subtotals_tax_excluded">Amount</span>
|
||||
<span groups="account.group_show_line_subtotals_tax_included">Total Price</span>
|
||||
</th>
|
||||
@@ -109,23 +109,23 @@
|
||||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
|
||||
<t t-set="current_subtotal" t-value="current_subtotal + line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
|
||||
|
||||
<tr t-att-class="'bg-200 font-weight-bold o_line_section' if line.display_type == 'line_section' else 'font-italic o_line_note' if line.display_type == 'line_note' else ''">
|
||||
<tr t-att-class="'bg-200 fw-bold o_line_section' if line.display_type == 'line_section' else 'fst-italic o_line_note' if line.display_type == 'line_note' else ''">
|
||||
<t t-if="not line.display_type" name="account_invoice_line_accountable">
|
||||
<td name="account_invoice_line_name"><span t-field="line.name" t-options="{'widget': 'text'}"/></td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span t-field="line.quantity"/>
|
||||
<span t-field="line.product_uom_id" groups="uom.group_uom"/>
|
||||
</td>
|
||||
<td t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<td t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<span class="text-nowrap" t-field="line.price_unit"/>
|
||||
</td>
|
||||
<td t-if="display_discount" t-attf-class="text-right {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<td t-if="display_discount" t-attf-class="text-end {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<span class="text-nowrap" t-field="line.discount"/>
|
||||
</td>
|
||||
<td t-attf-class="text-left {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<td t-attf-class="text-start {{ 'd-none d-md-table-cell' if report_type == 'html' else '' }}">
|
||||
<span t-esc="', '.join(map(lambda x: (x.description or x.name), line.tax_ids))" id="line_tax_ids"/>
|
||||
</td>
|
||||
<td class="text-right o_price_total">
|
||||
<td class="text-end o_price_total">
|
||||
<span class="text-nowrap" t-field="line.price_subtotal" groups="account.group_show_line_subtotals_tax_excluded"/>
|
||||
<span class="text-nowrap" t-field="line.price_total" groups="account.group_show_line_subtotals_tax_included"/>
|
||||
</td>
|
||||
@@ -145,7 +145,7 @@
|
||||
</tr>
|
||||
|
||||
<t t-if="current_section and (line_last or lines[line_index+1].display_type == 'line_section')">
|
||||
<tr class="is-subtotal text-right">
|
||||
<tr class="is-subtotal text-end">
|
||||
<td colspan="99">
|
||||
<strong class="mr16">Subtotal</strong>
|
||||
<span
|
||||
@@ -161,7 +161,7 @@
|
||||
|
||||
<div class="clearfix mb-4">
|
||||
<div id="total" class="row">
|
||||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ml-auto">
|
||||
<div t-attf-class="#{'col-6' if report_type != 'html' else 'col-sm-7 col-md-6'} ms-auto">
|
||||
<table class="table table-sm" style="page-break-inside: avoid;">
|
||||
|
||||
<!--Tax totals-->
|
||||
@@ -175,9 +175,9 @@
|
||||
<t t-foreach="payments_vals" t-as="payment_vals">
|
||||
<tr t-if="payment_vals['is_exchange'] == 0">
|
||||
<td>
|
||||
<i class="oe_form_field text-right oe_payment_label">Paid on <t t-esc="payment_vals['date']" t-options='{"widget": "date"}'/></i>
|
||||
<i class="oe_form_field text-end oe_payment_label">Paid on <t t-esc="payment_vals['date']" t-options='{"widget": "date"}'/></i>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span t-esc="payment_vals['amount']" t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -185,7 +185,7 @@
|
||||
<t t-if="len(payments_vals) > 0">
|
||||
<tr class="border-black">
|
||||
<td><strong>Amount Due</strong></td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span t-field="o.amount_residual"/>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -252,7 +252,7 @@
|
||||
<tr class="border-black o_subtotal">
|
||||
<td><strong t-esc="subtotal['name']"/></td>
|
||||
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span
|
||||
t-att-class="oe_subtotal_footer_separator"
|
||||
t-esc="subtotal['formatted_amount']"
|
||||
@@ -267,7 +267,7 @@
|
||||
<!--Total amount with all taxes-->
|
||||
<tr class="border-black o_total">
|
||||
<td><strong>Total</strong></td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span t-esc="tax_totals['formatted_amount_total']"/>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -290,13 +290,13 @@
|
||||
<t t-esc="amount_by_group['formatted_tax_group_base_amount']"/>
|
||||
</span>
|
||||
</td>
|
||||
<td class="text-right o_price_total">
|
||||
<td class="text-end o_price_total">
|
||||
<span class="text-nowrap" t-esc="amount_by_group['formatted_tax_group_amount']"/>
|
||||
</td>
|
||||
</t>
|
||||
<t t-else="">
|
||||
<td><span class="text-nowrap" t-esc="amount_by_group['tax_group_name']"/></td>
|
||||
<td class="text-right o_price_total">
|
||||
<td class="text-end o_price_total">
|
||||
<span class="text-nowrap" t-esc="amount_by_group['formatted_tax_group_amount']" />
|
||||
</td>
|
||||
</t>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<th><span>Invoice Date</span></th>
|
||||
<th><span>Invoice Number</span></th>
|
||||
<th><span>Reference</span></th>
|
||||
<th class="text-right"><span>Amount</span></th>
|
||||
<th class="text-end"><span>Amount</span></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -51,7 +51,7 @@
|
||||
<td><span t-field="inv.invoice_date"/></td>
|
||||
<td><span t-field="inv.name"/></td>
|
||||
<td><span t-field="inv.ref"/></td>
|
||||
<td class="text-right"><span t-field="inv.amount_total"/></td>
|
||||
<td class="text-end"><span t-field="inv.amount_total"/></td>
|
||||
</tr>
|
||||
<!-- PAYMENTS/REVERSALS -->
|
||||
<tr t-foreach="inv._get_reconciled_invoices_partials()[0]" t-as="par">
|
||||
@@ -60,14 +60,14 @@
|
||||
<td><span t-field="payment.date"/></td>
|
||||
<td><span t-field="payment.name"/></td>
|
||||
<td><span t-field="payment.ref"/></td>
|
||||
<td class="text-right">-<span t-esc="amount" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/></td>
|
||||
<td class="text-end">-<span t-esc="amount" t-options="{'widget': 'monetary', 'display_currency': o.currency_id}"/></td>
|
||||
</tr>
|
||||
<!-- BALANCE -->
|
||||
<tr>
|
||||
<td/>
|
||||
<td><strong>Due Amount for <span t-field="inv.name"/></strong></td>
|
||||
<td/>
|
||||
<td class="text-right"><strong><span t-field="inv.amount_residual"/></strong></td>
|
||||
<td class="text-end"><strong><span t-field="inv.amount_residual"/></strong></td>
|
||||
</tr>
|
||||
</t>
|
||||
</t>
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
<t t-foreach="docs" t-as="o">
|
||||
<t t-call="web.internal_layout">
|
||||
<div class="page">
|
||||
<div class="border border-top-0 border-right-0 border-left-0 border-info">
|
||||
<div class="border border-top-0 border-end-0 border-start-0 border-info">
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<h4 class="text-right w-100">
|
||||
<h4 class="text-end w-100">
|
||||
<strong>
|
||||
<span t-if="o.journal_id.type == 'bank'">Bank Statement</span>
|
||||
<span t-else="">Cash Statement</span>
|
||||
@@ -49,10 +49,10 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table table-lg m-0 table-borderless border border-right-0 border-left-0 border-info">
|
||||
<table class="table table-lg m-0 table-borderless border border-end-0 border-start-0 border-info">
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="pt-2 pb-2 pl-0 pr-0">
|
||||
<td class="pt-2 pb-2 ps-0 pe-0">
|
||||
<table class="table table-borderless m-0">
|
||||
<tr>
|
||||
<td class="p-0 w-25">
|
||||
@@ -63,7 +63,7 @@
|
||||
<span t-esc="o.line_ids and o.line_ids.sorted(lambda line: line.date)[0].date" t-options='{"widget": "date"}'/>
|
||||
</strong>
|
||||
</td>
|
||||
<td class="text-right p-0">
|
||||
<td class="text-end p-0">
|
||||
<strong>
|
||||
<span t-field="o.balance_start"/>
|
||||
</strong>
|
||||
@@ -78,7 +78,7 @@
|
||||
<span t-esc="o.line_ids and o.line_ids.sorted(lambda line: line.date)[-1].date" t-options='{"widget": "date"}'/>
|
||||
</strong>
|
||||
</td>
|
||||
<td class="text-right p-0">
|
||||
<td class="text-end p-0">
|
||||
<strong>
|
||||
<span t-field="o.balance_end_real"/>
|
||||
</strong>
|
||||
@@ -93,20 +93,20 @@
|
||||
<table class="table table-borderless m-0">
|
||||
<tbody>
|
||||
<tr t-foreach="o.line_ids" t-as="line" class="pb-2">
|
||||
<td class="pl-0 pr-0">
|
||||
<td class="ps-0 pe-0">
|
||||
<table class="table table-borderless">
|
||||
<tr>
|
||||
<td class="p-0 w-25">
|
||||
<span class="d-block font-weight-bold" t-field="line.date"/>
|
||||
<span class="d-block fw-bold" t-field="line.date"/>
|
||||
</td>
|
||||
<td class="p-0">
|
||||
<span class="d-block font-weight-bold" t-if="line.partner_id" t-field="line.partner_id"/>
|
||||
<span class="d-block fw-bold" t-if="line.partner_id" t-field="line.partner_id"/>
|
||||
<span class="d-block" t-if="line.partner_bank_id" t-field="line.partner_bank_id"/>
|
||||
<span class="d-block" t-if="line.payment_ref" t-field="line.payment_ref"/>
|
||||
<span class="d-block" t-if=" not is_html_empty(line.narration)" t-field="line.narration"/>
|
||||
</td>
|
||||
<td class="text-right p-0">
|
||||
<span class="d-block font-weight-bold" t-field="line.amount"/>
|
||||
<td class="text-end p-0">
|
||||
<span class="d-block fw-bold" t-field="line.amount"/>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@@ -329,7 +329,7 @@
|
||||
<button name="action_update_terms" icon="fa-arrow-right" type="object" string="Update Terms" class="btn-link"/>
|
||||
</div>
|
||||
<field name="preview_ready" invisible="1"/>
|
||||
<div class="mt4 ml-1" attrs="{'invisible': [('preview_ready', '=', False)]}">
|
||||
<div class="mt4 ms-1" attrs="{'invisible': [('preview_ready', '=', False)]}">
|
||||
<a class="btn-link" href="/terms" role="button">
|
||||
<i class="fa fa-arrow-right"></i>
|
||||
Preview
|
||||
|
||||
@@ -3,9 +3,9 @@
|
||||
<template id="account.account_terms_conditions_setting_banner" name="Account Terms and Conditions Setting Banner">
|
||||
<div id="terms_conditions" t-ignore="true" class="text-center">
|
||||
<span>This is a preview of your Terms & Conditions.</span>
|
||||
<a t-att-href="backend_url"><i class="fa fa-arrow-right mr-1"/>Back to settings</a>
|
||||
<a t-att-href="backend_url"><i class="fa fa-arrow-right me-1"/>Back to settings</a>
|
||||
</div>
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close"> × </button>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
</template>
|
||||
|
||||
<template id="account_terms_conditions_page" name="Terms & Conditions">
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
<field name="is_email" />
|
||||
<b><label for="is_email"/></b>
|
||||
</div>
|
||||
<div class="text-left d-inline-block mr8" attrs="{'invisible': ['|', ('is_email','=', False), ('invoice_without_email', '=', False)]}">
|
||||
<div class="text-start d-inline-block mr8" attrs="{'invisible': ['|', ('is_email','=', False), ('invoice_without_email', '=', False)]}">
|
||||
<field name="invoice_without_email" class="mr4"/>
|
||||
</div>
|
||||
<div name="mail_form" attrs="{'invisible': [('is_email', '=', False)]}">
|
||||
|
||||
@@ -81,7 +81,7 @@
|
||||
<field name="tax_ids" optional="hide" widget="many2many_tags"/>
|
||||
<field name="tag_ids" optional="hide" widget="many2many_tags"/>
|
||||
<field name="allowed_journal_ids" optional="hide" widget="many2many_tags"/>
|
||||
<button name="action_read_account" type="object" string="Setup" class="float-right btn-secondary"/>
|
||||
<button name="action_read_account" type="object" string="Setup" class="float-end btn-secondary"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -17,22 +17,22 @@
|
||||
<t t-set="last_tx" t-value="invoice.get_portal_last_transaction()"/>
|
||||
<td class="tx_status text-center">
|
||||
<t t-if="invoice.state == 'posted' and invoice.payment_state in ('not_paid', 'partial') and (last_tx.state not in ['pending', 'authorized', 'done', 'cancel'] or (last_tx.state == 'pending' and last_tx.provider in ('none', 'transfer')))">
|
||||
<span class="badge badge-pill badge-info"><i class="fa fa-fw fa-clock-o"></i><span class="d-none d-md-inline"> Waiting for Payment</span></span>
|
||||
<span class="badge rounded-pill text-bg-info"><i class="fa fa-fw fa-clock-o"></i><span class="d-none d-md-inline"> Waiting for Payment</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'posted' and last_tx.state == 'authorized'">
|
||||
<span class="badge badge-pill badge-primary"><i class="fa fa-fw fa-check"/><span class="d-none d-md-inline"> Authorized</span></span>
|
||||
<span class="badge rounded-pill text-bg-primary"><i class="fa fa-fw fa-check"/><span class="d-none d-md-inline"> Authorized</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'posted' and last_tx.state == 'pending' and last_tx.provider not in ('none', 'transfer')">
|
||||
<span class="badge badge-pill badge-warning"><span class="d-none d-md-inline"> Pending</span></span>
|
||||
<span class="badge rounded-pill text-bg-warning"><span class="d-none d-md-inline"> Pending</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'posted' and invoice.payment_state in ('paid', 'in_payment') or last_tx.state == 'done'">
|
||||
<span class="badge badge-pill badge-success"><i class="fa fa-fw fa-check"></i><span class="d-none d-md-inline"> Paid</span></span>
|
||||
<span class="badge rounded-pill text-bg-success"><i class="fa fa-fw fa-check"></i><span class="d-none d-md-inline"> Paid</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'posted' and invoice.payment_state == 'reversed'">
|
||||
<span class="badge badge-pill badge-success"><i class="fa fa-fw fa-check"></i><span class="d-none d-md-inline"> Reversed</span></span>
|
||||
<span class="badge rounded-pill text-bg-success"><i class="fa fa-fw fa-check"></i><span class="d-none d-md-inline"> Reversed</span></span>
|
||||
</t>
|
||||
<t t-if="invoice.state == 'cancel'">
|
||||
<span class="badge badge-pill badge-danger"><i class="fa fa-fw fa-remove"></i><span class="d-none d-md-inline"> Cancelled</span></span>
|
||||
<span class="badge rounded-pill text-bg-danger"><i class="fa fa-fw fa-remove"></i><span class="d-none d-md-inline"> Cancelled</span></span>
|
||||
</t>
|
||||
</td>
|
||||
</xpath>
|
||||
@@ -45,10 +45,10 @@
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h3 class="modal-title">Pay with</h3>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">×</button>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div t-if="acquirers or tokens" id="payment_method" class="text-left col-md-13">
|
||||
<div t-if="acquirers or tokens" id="payment_method" class="text-start col-md-13">
|
||||
<t t-call="payment.checkout"/>
|
||||
</div>
|
||||
<div t-else="" class="alert alert-warning">
|
||||
@@ -69,7 +69,7 @@
|
||||
<div class="d-grid">
|
||||
<a href="#" t-if="invoice.state == 'posted' and invoice.payment_state in ('not_paid', 'partial') and invoice.amount_total and invoice.move_type == 'out_invoice' and (pending_manual_txs or not tx_ids or invoice.amount_paid < invoice.amount_total)"
|
||||
|
||||
class="btn btn-primary mb-2" data-toggle="modal" data-target="#pay_with">
|
||||
class="btn btn-primary mb-2" data-bs-toggle="modal" data-bs-target="#pay_with">
|
||||
<i class="fa fa-fw fa-arrow-circle-right"/> Pay Now
|
||||
</a>
|
||||
<div t-if="tx_ids and not pending_manual_txs and not invoice.amount_residual and invoice.payment_state not in ('paid', 'in_payment')" class="alert alert-info py-1 mb-2" >
|
||||
|
||||
@@ -375,7 +375,7 @@
|
||||
<div class="col-6">
|
||||
<strong><span><t t-esc="record.name.value"/></span></strong>
|
||||
</div>
|
||||
<div class="col-6 text-right">
|
||||
<div class="col-6 text-end">
|
||||
<strong><t t-esc="record.date.value"/></strong>
|
||||
</div>
|
||||
</div>
|
||||
@@ -384,7 +384,7 @@
|
||||
<span><t t-esc="record.account_id.value"/></span>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<span class="float-right text-right">
|
||||
<span class="float-end text-end">
|
||||
<field name="amount" widget="monetary"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
|
||||
.o_custom_icon {
|
||||
margin: 0 0.15em;
|
||||
@include size(1em);
|
||||
width: 1em;
|
||||
height: 1em;
|
||||
border: 3px solid #875A7B;
|
||||
border-radius: 100%;
|
||||
transform: translateY(2px);
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<template id="providers" name="OAuth Providers">
|
||||
<t t-if="len(providers) > 0">
|
||||
<em t-attf-class="d-block text-center text-muted small my-#{len(providers) if len(providers) < 3 else 3}">- or -</em>
|
||||
<div class="o_auth_oauth_providers list-group mt-1 mb-1 text-left">
|
||||
<div class="o_auth_oauth_providers list-group mt-1 mb-1 text-start">
|
||||
<a t-foreach="providers" t-as="p" class="list-group-item list-group-item-action py-2" t-att-href="p['auth_link']">
|
||||
<i t-att-class="p['css_class']"/>
|
||||
<t t-esc="p['body']"/>
|
||||
|
||||
@@ -65,7 +65,7 @@
|
||||
<p class="alert alert-success" t-if="message" role="status">
|
||||
<t t-esc="message"/>
|
||||
</p>
|
||||
<a href="/web/login" class="btn btn-link btn-sm float-left" role="button">Back to Login</a>
|
||||
<a href="/web/login" class="btn btn-link btn-sm float-start" role="button">Back to Login</a>
|
||||
</div>
|
||||
|
||||
<form class="oe_reset_password_form" role="form" method="post" t-if="not message">
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
<xpath expr="//sheet" position="before">
|
||||
<div class="alert alert-success text-center o_form_header" attrs="{'invisible': [('signup_valid', '!=', True)]}" role="status">
|
||||
<a class="close" data-dismiss="alert" href="#" aria-label="Close"><i title="Close" class="small fa fa-times"/></a>
|
||||
<a class="close" data-bs-dismiss="alert" href="#" aria-label="Close"><i title="Close" class="small fa fa-times"/></a>
|
||||
<div attrs="{'invisible': [('state', '!=', 'active')]}">
|
||||
<strong>A password reset has been requested for this user. An email containing the following link has been sent:</strong>
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<input type="hidden" name="csrf_token" t-att-value="request.csrf_token()"/>
|
||||
<input type="hidden" name="redirect" t-att-value="redirect"/>
|
||||
<div class="form-group">
|
||||
<label class="font-weight-bold" for="totp_token">Authentication Code</label>
|
||||
<label class="fw-bold" for="totp_token">Authentication Code</label>
|
||||
<input id="totp_token" name="totp_token" class="form-control mb-2"
|
||||
autocomplete="off" inputmode="numeric" autofocus="autofocus" required="required" placeholder="e.g. 123456"/>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<sheet>
|
||||
<div class="o_auth_totp_enable_2FA container">
|
||||
<div class="mb-3 w-100">
|
||||
<h3 class="font-weight-bold">Authenticator App Setup</h3>
|
||||
<h3 class="fw-bold">Authenticator App Setup</h3>
|
||||
<ul>
|
||||
<div class="d-md-none d-block">
|
||||
<li>
|
||||
@@ -42,24 +42,24 @@
|
||||
<div class="text-center d-none d-md-block">
|
||||
<field name="qrcode" readonly="True" widget="image"/>
|
||||
|
||||
<h3 class="font-weight-bold"><a data-toggle="collapse"
|
||||
<h3 class="fw-bold"><a data-bs-toggle="collapse"
|
||||
href="#collapseTotpSecret" role="button" aria-expanded="false"
|
||||
aria-controls="collapseTotpSecret">Cannot scan it?</a></h3>
|
||||
<div class="collapse" id="collapseTotpSecret">
|
||||
<field name="secret" widget="CopyClipboardChar" readonly="1" class="mb-3 pl-3"/>
|
||||
<field name="secret" widget="CopyClipboardChar" readonly="1" class="mb-3 ps-3"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Mobile Version -->
|
||||
<div class="text-center d-block d-md-none">
|
||||
<field name="secret" widget="CopyClipboardChar" readonly="1" class="mb-3 pl-3"/>
|
||||
<field name="secret" widget="CopyClipboardChar" readonly="1" class="mb-3 ps-3"/>
|
||||
</div>
|
||||
|
||||
<h3 class="font-weight-bold">Enter your six-digit code below</h3>
|
||||
<h3 class="fw-bold">Enter your six-digit code below</h3>
|
||||
<div class="mt-2">
|
||||
<label for="code" class="px-0">Verification Code</label>
|
||||
<div class="d-flex align-items-center">
|
||||
<field required="True" name="code" autocomplete="off" class="px-0 mr-2" placeholder="e.g. 123456"/>
|
||||
<field required="True" name="code" autocomplete="off" class="px-0 me-2" placeholder="e.g. 123456"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -608,7 +608,7 @@ var DataImport = AbstractAction.extend({
|
||||
},
|
||||
// For each choice, if field is required, make it bold in the list
|
||||
formatResultCssClass: function (object) {
|
||||
if (object.required) { return "font-weight-bold text-decoration-underline"; }
|
||||
if (object.required) { return "fw-bold text-decoration-underline"; }
|
||||
return "";
|
||||
},
|
||||
placeholder: _t('To import, select a field...'),
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
overflow: auto;
|
||||
label {
|
||||
font-weight: normal;
|
||||
&.custom-control-label {
|
||||
&.form-check-label {
|
||||
left: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -61,11 +61,11 @@
|
||||
<t t-name="ImportView.preview">
|
||||
<thead>
|
||||
<tr class="oe_import_grid-header">
|
||||
<td class="oe_import_grid-cell border-0 font-weight-bold" style="width: 20%;">
|
||||
<td class="oe_import_grid-cell border-0 fw-bold" style="width: 20%;">
|
||||
<span class="o_single_line_text" title="File Column">File Column</span></td>
|
||||
<td class="oe_import_grid-cell border-0 font-weight-bold" style="width: 15%;" >
|
||||
<td class="oe_import_grid-cell border-0 fw-bold" style="width: 15%;" >
|
||||
<span class="o_single_line_text" title="File Column">Odoo Field</span></td>
|
||||
<td class="oe_import_grid-cell border-0 font-weight-bold">
|
||||
<td class="oe_import_grid-cell border-0 fw-bold">
|
||||
<span class="o_single_line_text" title="File Column">Comments</span></td>
|
||||
</tr>
|
||||
</thead>
|
||||
@@ -73,11 +73,11 @@
|
||||
<t t-set="columns" t-value="headers || preview"/>
|
||||
<tr t-if="columns" t-foreach="columns" t-as="column" class="oe_import_grid-row">
|
||||
<td class="oe_import_grid-cell oe_import_name_cell">
|
||||
<span class="o_import_header_name o_single_line_text font-weight-bold" t-att-title="column">
|
||||
<span class="o_import_header_name o_single_line_text fw-bold" t-att-title="column">
|
||||
<span t-if="column" t-esc="column"/>
|
||||
<span t-else="">Untitled</span>
|
||||
</span>
|
||||
<span t-if="options['has_headers']" class="font-italic small o_import_preview">
|
||||
<span t-if="options['has_headers']" class="fst-italic small o_import_preview">
|
||||
<t t-esc="preview[column_index][0]"/>
|
||||
</span>
|
||||
</td>
|
||||
@@ -220,7 +220,7 @@
|
||||
field corresponding to the column. This makes imports
|
||||
simpler especially when the file has many columns.</p>
|
||||
</div>
|
||||
<div class="o_import_partial_alert alert alert-warning d-none mx-2 my-2 font-weight-bold">
|
||||
<div class="o_import_partial_alert alert alert-warning d-none mx-2 my-2 fw-bold">
|
||||
Click 'Resume' to proceed with the import, resuming at line
|
||||
<span class="o_import_partial_count">0</span>.<br/>
|
||||
You can test or reload your file before resuming the import.
|
||||
@@ -239,9 +239,9 @@
|
||||
<div class="oe_import_with_file">
|
||||
<h4>Imported file</h4>
|
||||
<div class="mb-2 d-flex align-items-center">
|
||||
<i class="fa fa-file white mr-2"></i>
|
||||
<div id="oe_imported_file" class="font-italic truncate"></div>
|
||||
<span id="oe_imported_file_extension" class="font-italic"></span>
|
||||
<i class="fa fa-file white me-2"></i>
|
||||
<div id="oe_imported_file" class="fst-italic truncate"></div>
|
||||
<span id="oe_imported_file_extension" class="fst-italic"></span>
|
||||
</div>
|
||||
|
||||
<div class="oe_import_has_multiple_sheets flex-column mt-2">
|
||||
@@ -249,9 +249,9 @@
|
||||
<input class="oe_import_sheet oe_import_dropdown" id="oe_import_sheet"/>
|
||||
</div>
|
||||
|
||||
<input type="checkbox" class="oe_import_has_header custom-control-input"
|
||||
<input type="checkbox" class="oe_import_has_header form-check-input"
|
||||
id="oe_import_has_header" checked="checked"/>
|
||||
<label class="custom-control-label" for="oe_import_has_header">Use first row as header</label>
|
||||
<label class="form-check-label" for="oe_import_has_header">Use first row as header</label>
|
||||
|
||||
<div class="o_import_formatting">
|
||||
<h4 class="mt-3">Formatting</h4>
|
||||
@@ -270,15 +270,15 @@
|
||||
|
||||
<div class="o_import_batch">
|
||||
<h4 class="mt-3">Batch Import</h4>
|
||||
<div class="o_import_batch_alert font-weight-bold d-none pb-2">
|
||||
<div class="o_import_batch_alert fw-bold d-none pb-2">
|
||||
The file will be imported by batches
|
||||
</div>
|
||||
<div class="d-flex">
|
||||
<div class="oe_import_options oe_import_batch_limit w-50 pr-1">
|
||||
<div class="oe_import_options oe_import_batch_limit w-50 pe-1">
|
||||
<label class="mb-1" for="oe_import_batch_limit">Batch limit</label>
|
||||
<input class="w-100" id="oe_import_batch_limit" value="2000"/>
|
||||
</div>
|
||||
<div class="oe_import_options w-50 pl-1" title="Warning: ignores the labels line, empty lines and
|
||||
<div class="oe_import_options w-50 ps-1" title="Warning: ignores the labels line, empty lines and
|
||||
lines composed only of empty cells">
|
||||
<label class="mb-1" for="oe_import_row_start">Start at line</label>
|
||||
<input class="w-100" id="oe_import_row_start" value="1"/>
|
||||
@@ -299,16 +299,16 @@ lines composed only of empty cells">
|
||||
<div class="oe_import_debug_option">
|
||||
<h4 class="mt-3">Advanced</h4>
|
||||
<div title="If the model uses openchatter, history tracking will set up subscriptions and send notifications during the import, but lead to a slower import.">
|
||||
<input type="checkbox" id="oe_import_tracking" class="custom-control-input"/>
|
||||
<label class="custom-control-label" for="oe_import_tracking">
|
||||
<input type="checkbox" id="oe_import_tracking" class="form-check-input"/>
|
||||
<label class="form-check-label" for="oe_import_tracking">
|
||||
Track history during import
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<input type="checkbox" class="oe_import_advanced_mode custom-control-input" checked="checked"
|
||||
<input type="checkbox" class="oe_import_advanced_mode form-check-input" checked="checked"
|
||||
id="oe_import_advanced_mode"/>
|
||||
<label class="custom-control-label" for="oe_import_advanced_mode">Allow matching with subfields</label>
|
||||
<label class="form-check-label" for="oe_import_advanced_mode">Allow matching with subfields</label>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -337,7 +337,7 @@ lines composed only of empty cells">
|
||||
<span>0%</span>
|
||||
</div>
|
||||
</div>
|
||||
<a class="o_progress_stop_import ml-2" role="button"><i class="fa fa-close" aria-label="Stop Import"/></a>
|
||||
<a class="o_progress_stop_import ms-2" role="button"><i class="fa fa-close" aria-label="Stop Import"/></a>
|
||||
</div>
|
||||
</div>
|
||||
<div t-else="">
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<t t-if="widget.pending_users.length">
|
||||
<p class="o_form_label pt-3">Pending Invitations:</p>
|
||||
<span t-foreach="widget.pending_users" t-as="pending">
|
||||
<a href="#" class="badge badge-pill text-primary o_web_settings_user" t-att-data-user-id="pending[0]"> <t t-esc="pending[1]"/> </a>
|
||||
<a href="#" class="badge rounded-pill text-primary o_web_settings_user" t-att-data-user-id="pending[0]"> <t t-esc="pending[1]"/> </a>
|
||||
</span>
|
||||
<t t-if="widget.pending_users.length < widget.pending_count">
|
||||
<br/>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<div class="col-12 col-lg-6 o_setting_box" id="active_user_setting">
|
||||
<div class="o_setting_right_pane">
|
||||
<span class="fa fa-lg fa-users" aria-label="Number of active users"/>
|
||||
<field name='active_user_count' class="w-auto pl-3 font-weight-bold"/>
|
||||
<field name='active_user_count' class="w-auto ps-3 fw-bold"/>
|
||||
<span class='o_form_label' attrs="{'invisible':[('active_user_count', '>', '1')]}">
|
||||
Active User
|
||||
</span>
|
||||
@@ -42,7 +42,7 @@
|
||||
<div class='o_setting_right_pane'>
|
||||
<!-- TODO This is not an ideal solution but it looks ok on the interface -->
|
||||
<div class="w-50">
|
||||
<field name="language_count" class="w-auto pl-1 font-weight-bold"/>
|
||||
<field name="language_count" class="w-auto ps-1 fw-bold"/>
|
||||
<span class='o_form_label' attrs="{'invisible':[('language_count', '>', '1')]}">
|
||||
Language
|
||||
</span>
|
||||
@@ -67,7 +67,7 @@
|
||||
<div class="col-12 col-lg-6 o_setting_box" id="company_details_settings">
|
||||
<field name="company_id" invisible="1"/>
|
||||
<div class="o_setting_right_pane">
|
||||
<field name="company_name" class="font-weight-bold"/>
|
||||
<field name="company_name" class="fw-bold"/>
|
||||
<br/>
|
||||
<field name="company_informations" class="text-muted" style="width: 90%;"/>
|
||||
<br/>
|
||||
@@ -95,7 +95,7 @@
|
||||
</div>
|
||||
<div class="col-12 col-lg-6 o_setting_box" id="companies_setting">
|
||||
<div class="o_setting_right_pane">
|
||||
<field name='company_count' class="w-auto pl-1 font-weight-bold"/>
|
||||
<field name='company_count' class="w-auto ps-1 fw-bold"/>
|
||||
<span class='o_form_label' attrs="{'invisible':[('company_count', '>', '1')]}">
|
||||
Company
|
||||
</span>
|
||||
@@ -136,7 +136,7 @@
|
||||
<div class="o_setting_right_pane" id="sms_settings">
|
||||
<div class="o_form_label">
|
||||
Send SMS
|
||||
<a href="https://www.odoo.com/documentation/master/applications/marketing/sms_marketing/pricing/pricing_and_faq.html" title="Documentation" class="ml-1 o_doc_link" target="_blank"></a>
|
||||
<a href="https://www.odoo.com/documentation/master/applications/marketing/sms_marketing/pricing/pricing_and_faq.html" title="Documentation" class="ms-1 o_doc_link" target="_blank"></a>
|
||||
</div>
|
||||
<div class="text-muted">
|
||||
Send texts to your contacts
|
||||
|
||||
@@ -35,9 +35,9 @@
|
||||
<div class="o-dashboard-action mx-3 my-1" t-att-data-idx="action_index">
|
||||
<h3 t-attf-class="o-dashboard-action-header {{action.title ? '' : 'oe_header_empty'}} p-2 m-2">
|
||||
<span> <t t-esc="action.title"/> </span>
|
||||
<span class="btn float-right p-1 text-muted" t-on-click="() => this.closeAction(column, action)"><i class="fa fa-close"/></span>
|
||||
<span class="btn float-right p-1 text-muted" t-if="!action.isFolded" t-on-click="() => this.toggleAction(action)"><i class="fa fa-window-minimize"/></span>
|
||||
<span class="btn float-right p-1 text-muted" t-if="action.isFolded" t-on-click="() => this.toggleAction(action)"><i class="fa fa-window-maximize"/></span>
|
||||
<span class="btn float-end p-1 text-muted" t-on-click="() => this.closeAction(column, action)"><i class="fa fa-close"/></span>
|
||||
<span class="btn float-end p-1 text-muted" t-if="!action.isFolded" t-on-click="() => this.toggleAction(action)"><i class="fa fa-window-minimize"/></span>
|
||||
<span class="btn float-end p-1 text-muted" t-if="action.isFolded" t-on-click="() => this.toggleAction(action)"><i class="fa fa-window-maximize"/></span>
|
||||
</h3>
|
||||
<BoardAction t-if="!action.isFolded" action="action" />
|
||||
</div>
|
||||
|
||||
@@ -55,7 +55,7 @@
|
||||
</div>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr>
|
||||
<td width="130px;">
|
||||
<div style="border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<div style="border-top-start-radius: 3px; border-top-end-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='EEEE', lang_code=object.env.lang) or ''">Tuesday</t>
|
||||
</div>
|
||||
<div style="font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;">
|
||||
@@ -64,7 +64,7 @@
|
||||
<div style='font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;'>
|
||||
<t t-out="format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format='MMMM y', lang_code=object.env.lang) or ''">May 2021</t>
|
||||
</div>
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold ; border: 1px solid #875A7B; border-bottom-left-radius: 3px;">
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-end-radius: 3px; font-weight: bold ; border: 1px solid #875A7B; border-bottom-start-radius: 3px;">
|
||||
<t t-if="not object.event_id.allday">
|
||||
<div>
|
||||
<t t-out="format_time(time=object.event_id.start, tz=object.mail_tz, time_format='short', lang_code=object.env.lang) or ''">11:00 AM</t>
|
||||
@@ -183,7 +183,7 @@
|
||||
</div>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr>
|
||||
<td width="130px;">
|
||||
<div style="border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<div style="border-top-start-radius: 3px; border-top-end-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<t t-out='format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="EEEE", lang_code=object.env.lang) or ""'>Tuesday</t>
|
||||
</div>
|
||||
<div style="font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;">
|
||||
@@ -192,7 +192,7 @@
|
||||
<div style='font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;'>
|
||||
<t t-out='format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="MMMM y", lang_code=object.env.lang) or ""'>May 2021</t>
|
||||
</div>
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;">
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-end-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-start-radius: 3px;">
|
||||
<t t-if="not object.event_id.allday">
|
||||
<div>
|
||||
<t t-out='format_time(time=object.event_id.start, tz=object.mail_tz, time_format="short", lang_code=object.env.lang) or ""'>11:00 AM</t>
|
||||
@@ -284,7 +284,7 @@
|
||||
</div>
|
||||
<table border="0" cellpadding="0" cellspacing="0"><tr>
|
||||
<td width="130px;">
|
||||
<div style="border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<div style="border-top-start-radius: 3px; border-top-end-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<t t-out='format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="EEEE", lang_code=object.env.lang) or ""'>Tuesday</t>
|
||||
</div>
|
||||
<div style="font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;">
|
||||
@@ -293,7 +293,7 @@
|
||||
<div style='font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;'>
|
||||
<t t-out='format_datetime(dt=object.event_id.start, tz=object.mail_tz if not object.event_id.allday else None, dt_format="MMMM y", lang_code=object.env.lang) or ""'>May 2021</t>
|
||||
</div>
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;">
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-end-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-start-radius: 3px;">
|
||||
<t t-if="not object.event_id.allday">
|
||||
<div>
|
||||
<t t-out='format_time(time=object.event_id.start, tz=object.mail_tz, time_format="short", lang_code=object.env.lang) or ""'>11:00 AM</t>
|
||||
@@ -374,7 +374,7 @@
|
||||
<table border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td width="130px;">
|
||||
<div style="border-top-left-radius: 3px; border-top-right-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<div style="border-top-start-radius: 3px; border-top-end-radius: 3px; font-size: 12px; border-collapse: separate; text-align: center; font-weight: bold; color: #ffffff; min-height: 18px; background-color: #875A7B; border: 1px solid #875A7B;">
|
||||
<t t-out="format_datetime(dt=object.start, tz=mail_tz if not object.allday else None, dt_format='EEEE', lang_code=object.env.lang) "></t>
|
||||
</div>
|
||||
<div style="font-size: 48px; min-height: auto; font-weight: bold; text-align: center; color: #5F5F5F; background-color: #F8F8F8; border: 1px solid #875A7B;">
|
||||
@@ -383,7 +383,7 @@
|
||||
<div style='font-size: 12px; text-align: center; font-weight: bold; color: #ffffff; background-color: #875A7B;'>
|
||||
<t t-out="format_datetime(dt=object.start, tz=mail_tz if not object.allday else None, dt_format='MMMM y', lang_code=object.env.lang)"></t>
|
||||
</div>
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-right-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-left-radius: 3px;">
|
||||
<div style="border-collapse: separate; color: #5F5F5F; text-align: center; font-size: 12px; border-bottom-end-radius: 3px; font-weight: bold; border: 1px solid #875A7B; border-bottom-start-radius: 3px;">
|
||||
<t t-if="not object.allday">
|
||||
<div>
|
||||
<t t-out="format_time(time=object.start, tz=mail_tz, time_format='short', lang_code=object.env.lang)"></t>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
@extend .o_status;
|
||||
|
||||
&.accepted {
|
||||
background-color: theme-color('success');
|
||||
background-color: map-get($theme-colors, 'success');
|
||||
}
|
||||
|
||||
&.tentative {
|
||||
@@ -10,7 +10,7 @@
|
||||
}
|
||||
|
||||
&.declined {
|
||||
background-color: theme-color('danger');
|
||||
background-color: map-get($theme-colors, 'danger');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -84,11 +84,11 @@
|
||||
}
|
||||
|
||||
.o_attendee_border_accepted {
|
||||
border-color: theme-color('success');
|
||||
border-color: map-get($theme-colors, 'success');
|
||||
}
|
||||
.o_attendee_border_declined {
|
||||
border-color: theme-color('danger');
|
||||
border-color: map-get($theme-colors, 'danger');
|
||||
}
|
||||
.o_attendee_border_tentative {
|
||||
border-color: theme-color('light');
|
||||
border-color: map-get($theme-colors, 'light');
|
||||
}
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<span t-att-class="!meeting.allday and is_next_meeting ? 'o_meeting_filter o_meeting_bold' : 'o_meeting_filter'" t-att-data-res_model="activity.model" t-att-data-res_id="meeting.id" t-att-data-model_name="activity.name" t-att-title="meeting.name">
|
||||
<span><t t-esc="meeting.name"/></span>
|
||||
</span>
|
||||
<span t-if="meeting.start" class="float-right">
|
||||
<span t-if="meeting.start" class="float-end">
|
||||
<t t-if="meeting.allday">All Day</t>
|
||||
<t t-else=''>
|
||||
<t t-set="is_next_meeting" t-value="false"/>
|
||||
@@ -49,8 +49,8 @@
|
||||
|
||||
<t t-name="Calendar.attendee.status.popover" t-extend="CalendarView.event.popover">
|
||||
<t t-jquery=".o_cw_popover_delete" t-operation="after">
|
||||
<div t-if="widget.displayAttendeeAnswerChoice()" class="btn-group o-calendar-attendee-status ml-2">
|
||||
<a href="#" class="btn btn-secondary dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<div t-if="widget.displayAttendeeAnswerChoice()" class="btn-group o-calendar-attendee-status ms-2">
|
||||
<a href="#" class="btn btn-secondary dropdown-toggle" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||
<i t-attf-class="fa fa-circle o-calendar-attendee-status-icon #{widget.selectedStatusInfo.color}"/> <span class="o-calendar-attendee-status-text" t-esc="widget.selectedStatusInfo.text"></span>
|
||||
</a>
|
||||
<div class="dropdown-menu overflow-hidden">
|
||||
@@ -70,7 +70,7 @@
|
||||
|
||||
<t t-name="Calendar.calendar-box">
|
||||
<div t-attf-class="#{record.is_highlighted ? 'o_event_hightlight' : ''} #{typeof color === 'number' ? _.str.sprintf('o_calendar_color_%s', color) : 'o_calendar_color_1'} fc-event o_event o_attendee_status_#{record.is_alone ? 'alone' : record.attendee_status} py-0" >
|
||||
<div t-attf-class="#{record.attendee_status != 'accepted' ? 'font-weight-normal' : ''} o_event_title mr-2">
|
||||
<div t-attf-class="#{record.attendee_status != 'accepted' ? 'fw-normal' : ''} o_event_title me-2">
|
||||
<span t-if="record.is_alone" class="fa fa-exclamation-circle"/>
|
||||
<t t-esc="record.display_name"/>
|
||||
</div>
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="clearfix mb16" t-if="attendee.state != 'needsAction'">
|
||||
<span class="float-right badge badge-info">
|
||||
<span class="float-end badge text-bg-info">
|
||||
<t t-if="attendee.state == 'accepted'">Yes I'm going.</t>
|
||||
<t t-if="attendee.state == 'declined'">No I'm not going.</t>
|
||||
<t t-if="attendee.state == 'tentative'">Tentative</t>
|
||||
|
||||
@@ -253,7 +253,7 @@
|
||||
<field name="email" widget="email"/>
|
||||
<span>Status: <field name="state" /></span>
|
||||
|
||||
<div class="text-right">
|
||||
<div class="text-end">
|
||||
<button name="do_tentative" states="needsAction,declined,accepted" string="Uncertain" type="object" class="btn fa fa-asterisk"/>
|
||||
<button name="do_accept" states="needsAction,tentative,declined" string="Accept" type="object" class="btn fa fa-check text-success"/>
|
||||
<button name="do_decline" states="needsAction,tentative,accepted" string="Decline" type="object" class="btn fa fa-times-circle text-danger"/>
|
||||
|
||||
@@ -13,8 +13,8 @@
|
||||
</field>
|
||||
<xpath expr="//div[hasclass('oe_kanban_bottom_left')]" position="inside">
|
||||
<a t-if="record.meeting_count.value>0" data-type="object" data-name="schedule_meeting"
|
||||
href="#" class="oe_kanban_action oe_kanban_action_a mr-1">
|
||||
<span class="badge badge-pill">
|
||||
href="#" class="oe_kanban_action oe_kanban_action_a me-1">
|
||||
<span class="badge rounded-pill">
|
||||
<i class="fa fa-fw fa-calendar" aria-label="Meetings" role="img" title="Meetings"/>
|
||||
<t t-out="record.meeting_count.value"/>
|
||||
</span>
|
||||
|
||||
@@ -6,10 +6,10 @@
|
||||
<t t-foreach="opportunities" t-as="lead">
|
||||
<div>
|
||||
<span>Merged the Lead/Opportunity</span>
|
||||
<span class="font-weight-bold" t-field="lead.name"/>
|
||||
<span class="fw-bold" t-field="lead.name"/>
|
||||
<span>into this one.</span>
|
||||
</div>
|
||||
<blockquote class="border-left" data-o-mail-quote="1">
|
||||
<blockquote class="border-start" data-o-mail-quote="1">
|
||||
<div t-if="lead.expected_revenue">
|
||||
<span>Expected Revenues:</span>
|
||||
<span t-if="lead.expected_revenue">
|
||||
@@ -66,9 +66,9 @@
|
||||
</div>
|
||||
<div t-if="lead.tag_ids" name="tag_ids" class="d-flex flex-row">
|
||||
Tags:
|
||||
<div class="ml-2 d-flex flex-row">
|
||||
<div class="ms-2 d-flex flex-row">
|
||||
<div t-foreach="lead.tag_ids" t-as="tag" t-esc="tag.name"
|
||||
t-attf-class="badge badge-pill o_tag_color_#{tag.color} d-inline-block"/>
|
||||
t-attf-class="badge rounded-pill o_tag_color_#{tag.color} d-inline-block"/>
|
||||
</div>
|
||||
</div>
|
||||
<div t-if="lead.user_id" class="mt-3">
|
||||
@@ -83,7 +83,7 @@
|
||||
<div>
|
||||
<div class="mt-3"
|
||||
t-if="lead.contact_name or lead.partner_name or lead.phone or lead.mobile or lead.email_from or lead.website">
|
||||
<div class="font-weight-bold">
|
||||
<div class="fw-bold">
|
||||
Contact Details:
|
||||
</div>
|
||||
<div t-if="lead.contact_name">
|
||||
@@ -115,7 +115,7 @@
|
||||
<div class="mt-3"
|
||||
t-if="lead.street or lead.street2 or lead.zip or lead.city or lead.state_id or lead.country_id"
|
||||
name="address">
|
||||
<div class="font-weight-bold">
|
||||
<div class="fw-bold">
|
||||
Address:
|
||||
</div>
|
||||
<div t-if="lead.street" t-field="lead.street"/>
|
||||
@@ -127,7 +127,7 @@
|
||||
</div>
|
||||
<div class="mt-3" name="marketing"
|
||||
t-if="lead.campaign_id or lead.medium_id or lead.source_id">
|
||||
<div class="font-weight-bold">
|
||||
<div class="fw-bold">
|
||||
Marketing:
|
||||
</div>
|
||||
<div t-if="lead.campaign_id">
|
||||
@@ -145,7 +145,7 @@
|
||||
<div>
|
||||
The contacts below have been added as followers of this lead
|
||||
because they have been contacted less than 30 days ago on
|
||||
<span class="font-weight-bold" t-esc="lead.name"/>.
|
||||
<span class="fw-bold" t-esc="lead.name"/>.
|
||||
</div>
|
||||
<ul>
|
||||
<li t-foreach="lead_followers" t-as="follower">
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
<widget name="web_ribbon" title="Won" attrs="{'invisible': [('probability', '<', 100)]}" />
|
||||
<div class="oe_title">
|
||||
<h1><field class="o_text_overflow" name="name" placeholder="e.g. Product Pricing"/></h1>
|
||||
<h2 class="o_row no-gutters align-items-end">
|
||||
<h2 class="o_row g-0 align-items-end">
|
||||
<div class="col" attrs="{'invisible': [('type', '=', 'lead')]}">
|
||||
<label for="expected_revenue" class="oe_edit_only" />
|
||||
<div class="o_row">
|
||||
@@ -61,7 +61,7 @@
|
||||
</div>
|
||||
<div class="col" attrs="{'invisible': [('type', '=', 'lead')]}" groups="crm.group_use_recurring_revenues">
|
||||
<div class="o_row">
|
||||
<field name="recurring_revenue" class="pr-2 oe_inline" widget="monetary" options="{'currency_field': 'company_currency'}"/>
|
||||
<field name="recurring_revenue" class="pe-2 oe_inline" widget="monetary" options="{'currency_field': 'company_currency'}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col" attrs="{'invisible': [('type', '=', 'lead')]}" groups="crm.group_use_recurring_revenues">
|
||||
@@ -470,11 +470,11 @@
|
||||
<field name="phone" string="Phone" />
|
||||
<label for="expected_revenue"/>
|
||||
<div class="o_row">
|
||||
<field name="expected_revenue" class="oe_inline mr-5" widget="monetary" options="{'currency_field': 'company_currency'}"/>
|
||||
<field name="expected_revenue" class="oe_inline me-5" widget="monetary" options="{'currency_field': 'company_currency'}"/>
|
||||
<field name="priority" class="oe_inline" nolabel="1" widget="priority"/>
|
||||
</div>
|
||||
<div class="o_row" groups="crm.group_use_recurring_revenues">
|
||||
<field name="recurring_revenue" class="oe_inline pr-4" widget="monetary" options="{'currency_field': 'company_currency'}"/>
|
||||
<field name="recurring_revenue" class="oe_inline pe-4" widget="monetary" options="{'currency_field': 'company_currency'}"/>
|
||||
<field name="recurring_plan" class="oe_inline" placeholder="E.g. Monthly"
|
||||
attrs="{'required': [('recurring_revenue', '!=', 0)]}" options="{'no_create': True, 'no_open': True}"/>
|
||||
</div>
|
||||
@@ -556,7 +556,7 @@
|
||||
</div>
|
||||
|
||||
<div class="o_dropdown_kanban dropdown">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-toggle="dropdown" data-display="static" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-bs-toggle="dropdown" data-bs-display="static" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
|
||||
@@ -277,7 +277,7 @@
|
||||
<t t-else="">Open Opportunities</t>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-4 text-right text-truncate">
|
||||
<div class="col-4 text-end text-truncate">
|
||||
<field name="opportunities_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -289,7 +289,7 @@
|
||||
<t t-else="">Overdue Opportunities</t>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-4 text-right text-truncate">
|
||||
<div class="col-4 text-end text-truncate">
|
||||
<field name="opportunities_overdue_amount" widget="monetary" options="{'currency_field': 'currency_id'}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -103,7 +103,7 @@
|
||||
<div class="row mt16" attrs="{'invisible': ['|', ('crm_use_auto_assignment', '=', False), ('crm_auto_assignment_action', '=', 'manual')]}">
|
||||
<label string="Repeat every" for="crm_auto_assignment_interval_type" class="col-lg-3 o_light_label"/>
|
||||
<field name="crm_auto_assignment_interval_number"
|
||||
class="oe_inline mr-2"
|
||||
class="oe_inline me-2"
|
||||
attrs="{'required': [('crm_use_auto_assignment', '=', True), ('crm_auto_assignment_action', '=', 'auto')]}"/>
|
||||
<field name="crm_auto_assignment_interval_type"
|
||||
class="oe_inline"
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
<xpath expr="//div[hasclass('oe_kanban_bottom_left')]" position="inside">
|
||||
<a t-if="record.opportunity_count.value>0" href="#"
|
||||
data-type="object" data-name="action_view_opportunity"
|
||||
class="oe_kanban_action oe_kanban_action_a mr-1">
|
||||
<span class="badge badge-pill">
|
||||
class="oe_kanban_action oe_kanban_action_a me-1">
|
||||
<span class="badge rounded-pill">
|
||||
<i class="fa fa-fw fa-star" aria-label="Opportunities"
|
||||
role="img" title="Opportunities"/>
|
||||
<t t-out="record.opportunity_count.value"/>
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
<field name="use_leads"/>
|
||||
</xpath>
|
||||
<xpath expr="//div[@id='utm_statistics']" position="inside">
|
||||
<div class="mr-3"
|
||||
<div class="me-3"
|
||||
groups="sales_team.group_sale_salesman"
|
||||
t-att-title="record.use_leads.raw_value ? 'Leads' : 'Opportunities'">
|
||||
<i class="fa fa-star text-muted"></i>
|
||||
<small class="font-weight-bold"><field name="crm_lead_count"/></small>
|
||||
<small class="fw-bold"><field name="crm_lead_count"/></small>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
<group name="requests">
|
||||
<group>
|
||||
<div class="o_row">
|
||||
<field name="lead_number" attrs="{'readonly': [('state', '=', 'done')]}" nolabel="1" class="oe_inline col-md-2 pl-0"/>
|
||||
<field name="lead_number" attrs="{'readonly': [('state', '=', 'done')]}" nolabel="1" class="oe_inline col-md-2 ps-0"/>
|
||||
<field name="search_type" widget="selection" attrs="{'readonly': [('state', '=', 'done')]}" nolabel="1" class="oe_inline col-md-6"/>
|
||||
</div>
|
||||
</group>
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
<table style="width:100%;
|
||||
border-top-style: solid;border-top-color: #eeeeee;border-top-width: 1px;
|
||||
border-bottom-style: solid;border-bottom-color: #eeeeee;border-bottom-width: 1px;
|
||||
border-left-style: solid;border-left-color: #eeeeee;border-left-width: 1px;
|
||||
border-right-style: solid;border-right-color: #eeeeee;border-right-width: 1px;" t-if="people_data">
|
||||
border-start-style: solid;border-start-color: #eeeeee;border-start-width: 1px;
|
||||
border-end-style: solid;border-end-color: #eeeeee;border-end-width: 1px;" t-if="people_data">
|
||||
<thead>
|
||||
<tr style="background-color: #eeeeee">
|
||||
<th t-attf-style="padding: 5px; width: {{hasPhoneNumbers and '30%;' or '50%;'}}">
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
|
||||
<label for="notify_frequency" invisible="1" />
|
||||
<div class="o_row" attrs="{'invisible': ['|', ('recycle_mode', '=', 'automatic'), ('notify_user_ids', '=', [])]}">
|
||||
<span class="mr-1">Every</span>
|
||||
<span class="me-1">Every</span>
|
||||
<field name="notify_frequency" attrs="{'required': [('notify_user_ids', '!=', [])]}" />
|
||||
<field name="notify_frequency_period" attrs="{'required': [('notify_user_ids', '!=', [])]}" />
|
||||
</div>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
</t>
|
||||
</div>
|
||||
<div t-if="picking.carrier_id.get_return_label_from_portal and picking.return_label_ids">
|
||||
<a class="ml-3" t-attf-href="/web/content/#{picking.return_label_ids[:1].id}" target="_blank">
|
||||
<a class="ms-3" t-attf-href="/web/content/#{picking.return_label_ids[:1].id}" target="_blank">
|
||||
Print Return Label
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
<div class="o_row">
|
||||
<field name='display_price' widget="monetary" options="{'currency_field': 'currency_id'}" attrs="{'invisible': [('carrier_id','=', False)]}"/>
|
||||
<button name="update_price" type="object" attrs="{'invisible': [('delivery_type','in', ('fixed', 'base_on_rule'))]}">
|
||||
<i class="fa fa-arrow-right mr-1"/>Get rate
|
||||
<i class="fa fa-arrow-right me-1"/>Get rate
|
||||
</button>
|
||||
</div>
|
||||
</group>
|
||||
|
||||
@@ -260,8 +260,8 @@
|
||||
}
|
||||
#header {
|
||||
padding: 20px 30px 25px 30px;
|
||||
border-left: 1px solid #875a7b;
|
||||
border-right: 1px solid #875a7b;
|
||||
border-start: 1px solid #875a7b;
|
||||
border-end: 1px solid #875a7b;
|
||||
}
|
||||
.global_layout {
|
||||
padding: 25px 30px 30px 30px;
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
</div>
|
||||
<div class="o_setting_right_pane">
|
||||
<label string="Digest Email" for="digest_emails"/>
|
||||
<a href="https://www.odoo.com/documentation/master/applications/general/digest_emails.html" title="Documentation" class="ml-1 o_doc_link" target="_blank"></a>
|
||||
<a href="https://www.odoo.com/documentation/master/applications/general/digest_emails.html" title="Documentation" class="ms-1 o_doc_link" target="_blank"></a>
|
||||
<div class="text-muted" id="msg_module_digest">
|
||||
Add new users as recipient of a periodic email with key metrics
|
||||
</div>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<field name="stage_id" ref="event_stage_booked"/>
|
||||
<field name="tag_ids" eval="[(4, ref('event.event_tag_category_1_tag_1')), (4, ref('event.event_tag_category_2_tag_1'))]"/>
|
||||
<field name="ticket_instructions" type="html">
|
||||
<div class="text-center font-weight-bold py-3">Important ticket information</div>
|
||||
<div class="text-center fw-bold py-3">Important ticket information</div>
|
||||
<ul>
|
||||
<li>Please come <b>at least</b> 30 minutes before the beginning of the event.</li>
|
||||
<li>Tickets can be printed or scanned directly from your phone.</li>
|
||||
@@ -243,7 +243,7 @@
|
||||
<p>And this time, we go fully ONLINE! Meet us in our live streams from the comfort of your house.<br/>
|
||||
Special discount codes will be handed out during the various streams, make sure to be there on time.</p>
|
||||
<p class="mb-3">For any additional information, please contact us at <a href="mailto:events@idea.com">events@idea.com</a>.</p>
|
||||
<div class="bg-light rounded-right border-left border-secondary p-3 mb-5" style="border-left-width: 3px !important;">
|
||||
<div class="bg-light rounded-end border-start border-secondary p-3 mb-5" style="border-start-width: 3px !important;">
|
||||
<p class="mb-1">This event is fully online and FREE, if you have paid for tickets, you should get a refund.<br/>
|
||||
It will require a good Internet connection to get the best video quality.</p>
|
||||
</div>
|
||||
|
||||
@@ -15,19 +15,19 @@
|
||||
<div class="oe_structure"/>
|
||||
<div class="o_event_foldable_badge_ticket_wrapper p-2">
|
||||
<div class="o_event_foldable_badge_ticket_wrapper_top page">
|
||||
<h5 class="o_event_foldable_badge_event_name text-odoo font-weight-bold text-center" t-field="event.name"/>
|
||||
<h5 class="o_event_foldable_badge_event_name text-odoo fw-bold text-center" t-field="event.name"/>
|
||||
<div class="text-center o_event_foldable_badge_font_small">
|
||||
<span itemprop="startDate" t-out="event.date_begin.date()"
|
||||
class="font-weight-bold"/>
|
||||
class="fw-bold"/>
|
||||
<span itemprop="startDateTime" t-out="event.date_begin"
|
||||
class="font-weight-bold"
|
||||
class="fw-bold"
|
||||
t-options='{"widget": "datetime", "time_only": True, "tz_name": event.date_tz, "hide_seconds": True}'/>
|
||||
<span class="fa fa-arrow-right o_event_foldable_badge_font_faded"/>
|
||||
<span t-if="not event.is_one_day"
|
||||
itemprop="endDate" t-out="event.date_end.date()"
|
||||
class="font-weight-bold"/>
|
||||
class="fw-bold"/>
|
||||
<span itemprop="endDateTime" t-out="event.date_end"
|
||||
class="font-weight-bold"
|
||||
class="fw-bold"
|
||||
t-options='{"widget": "datetime", "time_only": True, "tz_name": event.date_tz, "hide_seconds": True}'/>
|
||||
</div>
|
||||
<div class="o_event_foldable_badge_font_faded o_event_foldable_badge_font_small text-center">
|
||||
@@ -63,21 +63,21 @@
|
||||
<div class="oe_structure"/>
|
||||
<div class="h-50 col-12 row m-0">
|
||||
<div class="col-6 h-100 p-0">
|
||||
<div class="o_event_foldable_badge_step font-weight-bold">1</div>
|
||||
<div class="o_event_foldable_badge_step fw-bold">1</div>
|
||||
<img src="/event/static/src/img/how_to_fold_1.png" class="w-100 h-100" alt="How to Fold (1)"/>
|
||||
</div>
|
||||
<div class="col-6 h-100 p-0">
|
||||
<div class="o_event_foldable_badge_step font-weight-bold">2</div>
|
||||
<div class="o_event_foldable_badge_step fw-bold">2</div>
|
||||
<img src="/event/static/src/img/how_to_fold_2.png" class="w-100 h-100" alt="How to Fold (2)"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="h-50 col-12 row m-0">
|
||||
<div class="col-6 h-100 p-0">
|
||||
<div class="o_event_foldable_badge_step font-weight-bold">3</div>
|
||||
<div class="o_event_foldable_badge_step fw-bold">3</div>
|
||||
<img src="/event/static/src/img/how_to_fold_3.png" class="w-100 h-100" alt="How to Fold (3)"/>
|
||||
</div>
|
||||
<div class="col-6 h-100 p-0">
|
||||
<div class="o_event_foldable_badge_step font-weight-bold">4</div>
|
||||
<div class="o_event_foldable_badge_step fw-bold">4</div>
|
||||
<img src="/event/static/src/img/how_to_fold_4.png" class="w-100 h-100" alt="How to Fold (4)"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -117,18 +117,18 @@
|
||||
<div class="o_event_full_page_ticket_font_faded">
|
||||
Event Ticket For
|
||||
</div>
|
||||
<h5 class="o_event_full_page_ticket_event_name text-odoo font-weight-bold py-0 my-0" t-field="event.name"/>
|
||||
<h5 class="o_event_full_page_ticket_event_name text-odoo fw-bold py-0 my-0" t-field="event.name"/>
|
||||
<span itemprop="startDate" t-out="event.date_begin.date()"
|
||||
class="font-weight-bold"/>
|
||||
class="fw-bold"/>
|
||||
<span itemprop="startDateTime" t-out="event.date_begin"
|
||||
class="font-weight-bold"
|
||||
class="fw-bold"
|
||||
t-options='{"widget": "datetime", "time_only": True, "hide_seconds": True, "tz_name": event.date_tz}'/>
|
||||
<span class="fa fa-arrow-right o_event_full_page_ticket_font_faded"/>
|
||||
<span t-if="not event.is_one_day"
|
||||
itemprop="endDate" t-out="event.date_end.date()"
|
||||
class="font-weight-bold"/>
|
||||
class="fw-bold"/>
|
||||
<span itemprop="endDateTime" t-out="event.date_end"
|
||||
class="font-weight-bold"
|
||||
class="fw-bold"
|
||||
t-options='{"widget": "datetime", "time_only": True, "hide_seconds": True, "tz_name": event.date_tz}'/>
|
||||
<span itemprop="timeZone" class="o_event_full_page_ticket_font_faded small">(<t t-out="event.date_tz"/>)</span>
|
||||
<div t-if="event.address_id" class="o_event_full_page_ticket_font_faded">
|
||||
@@ -147,7 +147,7 @@
|
||||
<img t-att-src="image_data_uri(event.organizer_id.image_128)" class="o_event_full_page_ticket_event_logo mb-2"/>
|
||||
</span>
|
||||
<div t-if="attendee and attendee.partner_id" class="mb-2 o_event_full_page_ticket_side_info_booked_by">
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps font-weight-bold">Booked By</div>
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps fw-bold">Booked By</div>
|
||||
<div class="o_event_full_page_ticket_small" t-field="attendee.partner_id"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -179,12 +179,12 @@
|
||||
<div class="row footer o_event_full_page_ticket_footer d-block">
|
||||
<div class="o_event_full_page_ticket_powered_by bg-odoo text-white text-center p-2 w-100">
|
||||
<t t-if="event.organizer_id">
|
||||
<span class="font-weight-bold" t-field="event.organizer_id.name"></span>
|
||||
<span t-if="event.organizer_id.phone" class="pl-3 fa fa-phone"/>
|
||||
<span class="fw-bold" t-field="event.organizer_id.name"></span>
|
||||
<span t-if="event.organizer_id.phone" class="ps-3 fa fa-phone"/>
|
||||
<span t-if="event.organizer_id.phone" t-field="event.organizer_id.phone"/>
|
||||
<span t-if="event.organizer_id.email_normalized" class="pl-3 fa fa-envelope"/>
|
||||
<span t-if="event.organizer_id.email_normalized" class="ps-3 fa fa-envelope"/>
|
||||
<span t-if="event.organizer_id.email_normalized" t-field="event.organizer_id.email_normalized"/>
|
||||
<span t-if="event.organizer_id.website" class="pl-3 fa fa-globe"/>
|
||||
<span t-if="event.organizer_id.website" class="ps-3 fa fa-globe"/>
|
||||
<span t-if="event.organizer_id.website" t-field="event.organizer_id.website"/>
|
||||
</t>
|
||||
<t t-else="">
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
<field name="legend_normal" invisible="1"/>
|
||||
<field name="legend_done" invisible="1"/>
|
||||
<widget name="web_ribbon" text="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<field name="kanban_state" widget="state_selection" class="ml-auto float-right"/>
|
||||
<field name="kanban_state" widget="state_selection" class="ms-auto float-end"/>
|
||||
<div class="oe_title">
|
||||
<label for="name" string="Event Name"/>
|
||||
<h1><field class="o_text_overflow" name="name" placeholder="e.g. Conference for Architects"/></h1>
|
||||
@@ -191,7 +191,7 @@
|
||||
</div>
|
||||
<div><t t-esc="luxon.DateTime.fromJSDate(record.date_begin.raw_value).toFormat('t')"/></div>
|
||||
<div t-if="luxon.DateTime.fromJSDate(record.date_begin.raw_value).toFormat('DDMMYYYY') !== luxon.DateTime.fromJSDate(record.date_end.raw_value).toFormat('DDMMYYYY')">
|
||||
<i class="fa fa-arrow-right mr-2 o_event_fontsize_09" title="End date"/>
|
||||
<i class="fa fa-arrow-right me-2 o_event_fontsize_09" title="End date"/>
|
||||
<t t-esc="luxon.DateTime.fromJSDate(record.date_end.raw_value).toFormat('d MMM')"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -210,8 +210,8 @@
|
||||
</a>
|
||||
<t t-set="total_seats" t-value="record.seats_reserved.raw_value + record.seats_used.raw_value"/>
|
||||
<div class="pt-2 pt-md-0" t-if="total_seats > 0 and ! record.auto_confirm.raw_value"><br/>
|
||||
<a class="pl-2" name="%(event_registration_action_stats_from_event)d" type="action" context="{'search_default_confirmed': True}">
|
||||
<i class="fa fa-level-up fa-rotate-90" title="Confirmed"/><span class="pl-2"><t t-esc="total_seats"/> Confirmed</span>
|
||||
<a class="ps-2" name="%(event_registration_action_stats_from_event)d" type="action" context="{'search_default_confirmed': True}">
|
||||
<i class="fa fa-level-up fa-rotate-90" title="Confirmed"/><span class="ps-2"><t t-esc="total_seats"/> Confirmed</span>
|
||||
</a>
|
||||
</div>
|
||||
</h5>
|
||||
|
||||
@@ -106,7 +106,7 @@
|
||||
<templates>
|
||||
<t t-name="event_attendees_kanban_icons_desktop">
|
||||
<div class="d-none d-md-block h-100">
|
||||
<div id="event_attendees_kanban_icons_desktop" class="h-100 float-right p-2 d-flex align-items-end flex-column">
|
||||
<div id="event_attendees_kanban_icons_desktop" class="h-100 float-end p-2 d-flex align-items-end flex-column">
|
||||
<t t-if="record.active.raw_value">
|
||||
<a class="btn btn-md btn-primary" string="Confirm Registration" name="action_confirm" type="object" states="draft" role="button">
|
||||
<i class="fa fa-check" role="img" aria-label="Confirm button" title="Confirm Registration"/>
|
||||
@@ -121,7 +121,7 @@
|
||||
</div>
|
||||
</t>
|
||||
<t t-name="event_attendees_kanban_icons_mobile">
|
||||
<div id="event_attendees_kanban_icons_mobile" class="d-md-none h-100 pl-4">
|
||||
<div id="event_attendees_kanban_icons_mobile" class="d-md-none h-100 ps-4">
|
||||
<t t-if="record.active.raw_value">
|
||||
<a class="btn btn-primary d-flex justify-content-center align-items-center h-100 w-100"
|
||||
string="Confirm Registration" name="action_confirm" type="object" states="draft" role="button">
|
||||
@@ -144,15 +144,15 @@
|
||||
<span class="bg-danger">Archived</span>
|
||||
</div>
|
||||
<div class="row h-100">
|
||||
<div class="col-9 pr-0">
|
||||
<div class="col-9 pe-0">
|
||||
<div class="oe_kanban_content h-100">
|
||||
<div class="o_kanban_record_body pt-1 pl-2 h-100 d-flex flex-column">
|
||||
<div class="o_kanban_record_body pt-1 ps-2 h-100 d-flex flex-column">
|
||||
<b class="o_kanban_record_title"><field name="name"/></b>
|
||||
<field class="o_text_overflow" name="event_id" invisible="context.get('default_event_id')" />
|
||||
<span class="o_text_overflow" attrs="{'invisible': [('partner_id', '=', False)]}">Booked by <field name="partner_id" /></span>
|
||||
<div id="event_ticket_id" class="o_field_many2manytags o_field_widget d-flex mt-auto">
|
||||
<t t-if="record.event_ticket_id.raw_value">
|
||||
<div t-attf-class="badge badge-pill o_tag_color_#{(record.event_ticket_id.raw_value % 11) + 1}" >
|
||||
<div t-attf-class="badge rounded-pill o_tag_color_#{(record.event_ticket_id.raw_value % 11) + 1}" >
|
||||
<b><span class="o_badge_text o_text_overflow"><t t-out="record.event_ticket_id.value"/></span></b>
|
||||
</div>
|
||||
</t>
|
||||
@@ -160,7 +160,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="event_attendees_kanban_icons" class="col-3 pl-0">
|
||||
<div id="event_attendees_kanban_icons" class="col-3 ps-0">
|
||||
<t t-call="event_attendees_kanban_icons_desktop"/>
|
||||
<t t-call="event_attendees_kanban_icons_mobile"/>
|
||||
</div>
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
<template id="crm_lead_merge_summary_inherit_event_crm" inherit_id="crm.crm_lead_merge_summary">
|
||||
<xpath expr="//div[@name='marketing']" position="after">
|
||||
<div class="mt-3 mb-3" name="event" t-if="lead.event_lead_rule_id or lead.event_id">
|
||||
<div class="font-weight-bold">
|
||||
<div class="fw-bold">
|
||||
Event:
|
||||
</div>
|
||||
<div t-if="lead.event_id">
|
||||
|
||||
@@ -3,17 +3,17 @@
|
||||
<template id="event_report_template_full_page_ticket_inherit_sale" inherit_id="event.event_report_template_full_page_ticket">
|
||||
<xpath expr="//div[hasclass('o_event_full_page_ticket_side_info_booked_by')]" position="before">
|
||||
<div t-if="attendee and attendee.sale_order_id" class="mb-2">
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps font-weight-bold">Order Ref</div>
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps fw-bold">Order Ref</div>
|
||||
<div class="o_event_full_page_ticket_small" t-field="attendee.sale_order_id"/>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//div[hasclass('o_event_full_page_ticket_side_info')]" position="inside">
|
||||
<div t-if="attendee and attendee.sale_order_id" class="mb-2">
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps font-weight-bold">Order Date</div>
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps fw-bold">Order Date</div>
|
||||
<div class="o_event_full_page_ticket_small" t-out="attendee.sale_order_id.date_order.date()"/>
|
||||
</div>
|
||||
<div t-if="attendee and attendee.sale_order_line_id.price_total">
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps font-weight-bold">Price</div>
|
||||
<div class="o_event_full_page_ticket_font_faded o_event_full_page_ticket_small_caps fw-bold">Price</div>
|
||||
<div class="o_event_full_page_ticket_small" t-field="attendee.sale_order_line_id.price_total"
|
||||
t-options="{'widget': 'monetary', 'display_currency': attendee.sale_order_line_id.currency_id}"/>
|
||||
</div>
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
<field name="price"/>
|
||||
</field>
|
||||
<xpath expr="//div[hasclass('col-8')]" position="after">
|
||||
<div class="col-4 text-right"><strong> <t t-out="record.price.value"/></strong></div>
|
||||
<div class="col-4 text-end"><strong> <t t-out="record.price.value"/></strong></div>
|
||||
</xpath>
|
||||
<xpath expr="//div[hasclass('row')]" position="after">
|
||||
<div t-out="record.product_id.value"/>
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
<div></div>
|
||||
<div attrs="{'invisible': [('server_type', '!=', 'gmail')]}">
|
||||
<span attrs="{'invisible': ['|', ('server_type', '!=', 'gmail'), ('google_gmail_refresh_token', '=', False)]}"
|
||||
class="badge badge-success">
|
||||
class="badge text-bg-success">
|
||||
Gmail Token Valid
|
||||
</span>
|
||||
<button type="object"
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<div></div>
|
||||
<div attrs="{'invisible': [('use_microsoft_outlook_service', '=', False)]}">
|
||||
<span attrs="{'invisible': ['|', ('use_microsoft_outlook_service', '=', False), ('microsoft_outlook_refresh_token', '=', False)]}"
|
||||
class="badge badge-success">
|
||||
class="badge text-bg-success">
|
||||
Outlook Token Valid
|
||||
</span>
|
||||
<button type="object"
|
||||
|
||||
@@ -75,7 +75,7 @@
|
||||
sample="1">
|
||||
<field name="active" invisible="1"/>
|
||||
<field name="expires_today" invisible="1"/>
|
||||
<field name="name" class="font-weight-bold" />
|
||||
<field name="name" class="fw-bold" />
|
||||
<field name="start_date" />
|
||||
<field name="expiration_date" widget="remaining_days"/>
|
||||
<field name="days_left" invisible="1"/>
|
||||
@@ -104,7 +104,7 @@
|
||||
<div>
|
||||
<strong>
|
||||
<field name="vehicle_id" widget="res_partner_many2one"/>
|
||||
<span class="float-right badge badge-secondary">
|
||||
<span class="float-end badge text-bg-secondary">
|
||||
<field name="state"/>
|
||||
</span>
|
||||
</strong>
|
||||
@@ -238,7 +238,7 @@
|
||||
<label for="odometer"/>
|
||||
<div class="o_row">
|
||||
<field name="odometer" class="oe_inline"/>
|
||||
<field name="odometer_unit" class="pl-1 pl-sm-0"/>
|
||||
<field name="odometer_unit" class="ps-1 ps-sm-0"/>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
@@ -292,12 +292,12 @@
|
||||
<div t-attf-class="oe_kanban_global_click container" class="o_kanban_record_has_image_fill">
|
||||
<div class="oe_kanban_details">
|
||||
<div class="o_kanban_record_top">
|
||||
<img t-att-src="kanban_image('fleet.vehicle', 'image_128', record.vehicle_id.raw_value)" t-att-alt="record.vehicle_id.value" class="o_image_24_cover float-left"/>
|
||||
<div class="o_kanban_record_headings pl-2 pr-2">
|
||||
<img t-att-src="kanban_image('fleet.vehicle', 'image_128', record.vehicle_id.raw_value)" t-att-alt="record.vehicle_id.value" class="o_image_24_cover float-start"/>
|
||||
<div class="o_kanban_record_headings ps-2 pe-2">
|
||||
<div class="text-truncate o_kanban_record_title">
|
||||
<strong>
|
||||
<field name="vehicle_id"/>
|
||||
<span t-attf-class="float-right badge #{['todo', 'running'].indexOf(record.state.raw_value) > -1 ? 'badge-secondary' : ['cancelled'].indexOf(record.state.raw_value) > -1 ? 'badge-danger' : 'badge-success'}">
|
||||
<span t-attf-class="float-end badge #{['todo', 'running'].indexOf(record.state.raw_value) > -1 ? 'text-bg-secondary' : ['cancelled'].indexOf(record.state.raw_value) > -1 ? 'text-bg-danger' : 'text-bg-success'}">
|
||||
<field name="state"/>
|
||||
</span>
|
||||
</strong>
|
||||
@@ -309,7 +309,7 @@
|
||||
</div>
|
||||
<div class="text-truncate">
|
||||
<field name="purchaser_id"/>
|
||||
<span class="float-right"><field name="date"/></span>
|
||||
<span class="float-end"><field name="date"/></span>
|
||||
</div>
|
||||
<div class="text-truncate">
|
||||
<field name="vendor_id"/>
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<div>
|
||||
<div class="o_kanban_record_title">
|
||||
<field name="name"/>
|
||||
<div class="o_kanban_details float-right">
|
||||
<div class="o_kanban_details float-end">
|
||||
<span class="text-muted">
|
||||
<t t-if="record.phone.raw_value"><field name="phone"/><br/></t>
|
||||
<t t-if="record.email.raw_value"><field name="email"/></t>
|
||||
@@ -206,7 +206,7 @@
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_vignette oe_semantic_html_override oe_kanban_global_click">
|
||||
<div class="o_dropdown_kanban dropdown">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
|
||||
@@ -370,7 +370,7 @@
|
||||
<label for="value"/>
|
||||
<div class="o_row">
|
||||
<field name="value" class="oe_inline"/>
|
||||
<field name="unit" class="ml-2"/>
|
||||
<field name="unit" class="ms-2"/>
|
||||
</div>
|
||||
<field name="date"/>
|
||||
</group>
|
||||
@@ -405,12 +405,12 @@
|
||||
<div>
|
||||
<strong>
|
||||
<field name="vehicle_id"/>
|
||||
<span class="float-right"><field name="date"/></span>
|
||||
<span class="float-end"><field name="date"/></span>
|
||||
</strong>
|
||||
</div>
|
||||
<div>
|
||||
<span><field name="driver_id"/></span>
|
||||
<span class="float-right"><field name="value"/> Km</span>
|
||||
<span class="float-end"><field name="value"/> Km</span>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Earn your first points and join the adventure !</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_newbie_badge.svg"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_newbie_badge.svg"/>
|
||||
</div>
|
||||
</field>
|
||||
<field name="karma_min">1</field>
|
||||
@@ -28,7 +28,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank to show the rest of the world you exist.</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_student_badge.svg"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_student_badge.svg"/>
|
||||
</div>
|
||||
</field>
|
||||
<field name="karma_min">100</field>
|
||||
@@ -41,7 +41,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank to improve your status!</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_bachelor_badge.svg"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_bachelor_badge.svg"/>
|
||||
</div>
|
||||
</field>
|
||||
<field name="karma_min">500</field>
|
||||
@@ -54,7 +54,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank and become a Master!</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_master_badge.svg"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_master_badge.svg"/>
|
||||
</div>
|
||||
</field>
|
||||
<field name="karma_min">2000</field>
|
||||
@@ -67,7 +67,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank and become a powerful user!</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_doctor_badge.svg"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_doctor_badge.svg"/>
|
||||
</div>
|
||||
</field>
|
||||
<field name="karma_min">10000</field>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank and gain a very nice mug !</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_mug.png"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_mug.png"/>
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
@@ -14,7 +14,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank and gain a very magic wand !</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_wand.png"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_wand.png"/>
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
@@ -23,7 +23,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank and gain a very nice hat !</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_hat.png"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_hat.png"/>
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
@@ -32,7 +32,7 @@
|
||||
<field name="description_motivational" type="html">
|
||||
<div class="d-flex align-items-center">
|
||||
<div class="flex-grow-1">Reach the next rank and gain a very nice unicorn !</div>
|
||||
<img class="ml-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_unicorn.png"/>
|
||||
<img class="ms-3 img img-fluid" style="max-height: 72px;" src="/gamification/static/img/rank_misc_unicorn.png"/>
|
||||
</div>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -169,7 +169,7 @@
|
||||
<div t-attf-class="oe_kanban_card oe_kanban_global_click o_kanban_gamification #{record.end_date.raw_value < record.last_update.raw_value and record.state.raw_value == 'failed' ? 'oe_kanban_color_2' : ''} #{record.end_date.raw_value < record.last_update.raw_value and record.state.raw_value == 'reached' ? 'oe_kanban_color_5' : ''}">
|
||||
<div class="o_kanban_content">
|
||||
<p><strong><h4 class="oe_goal_name text-center" tooltip="kanban-tooltip"><field name="definition_id" /></h4></strong></p>
|
||||
<div class="float-left">
|
||||
<div class="float-start">
|
||||
<img class="o_image_24_cover" t-att-src="kanban_image('res.users', 'avatar_128', record.user_id.raw_value)" t-att-title="record.user_id.value" t-att-alt="record.user_id.value"/>
|
||||
</div>
|
||||
<field name="user_id" />
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
<button type="button" id="google_sync_pending" class="o_google_sync_button o_google_sync_pending btn btn-secondary btn">
|
||||
<b><i class='fa fa-refresh'/> Google</b>
|
||||
</button>
|
||||
<button type="button" id="google_sync_configured" class="mr-1 o_google_sync_button o_google_sync_button_configured btn badge-primary">
|
||||
<button type="button" id="google_sync_configured" class="me-1 o_google_sync_button o_google_sync_button_configured btn text-bg-primary">
|
||||
<b>
|
||||
<i id="google_check" class='fa fa-check'/>
|
||||
<i id="google_stop" class='fa fa-times' style="display: none"/>&nbsp;Google
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
<div></div>
|
||||
<div attrs="{'invisible': [('smtp_authentication', '!=', 'gmail')]}">
|
||||
<span attrs="{'invisible': ['|', ('smtp_authentication', '!=', 'gmail'), ('google_gmail_refresh_token', '=', False)]}"
|
||||
class="badge badge-success">
|
||||
class="badge text-bg-success">
|
||||
Gmail Token Valid
|
||||
</span>
|
||||
<button type="object"
|
||||
|
||||
@@ -9,11 +9,11 @@
|
||||
<div id="msg_module_google_gmail" position="replace">
|
||||
<div class="row mt16" id="gmail_client_identifier">
|
||||
<label string="Client ID" for="google_gmail_client_identifier" class="col-lg-3 o_light_label"/>
|
||||
<field name="google_gmail_client_identifier" class="ml-2"/>
|
||||
<field name="google_gmail_client_identifier" class="ms-2"/>
|
||||
</div>
|
||||
<div class="row mt16" id="gmail_client_secret">
|
||||
<label string="Client Secret" for="google_gmail_client_secret" class="col-lg-3 o_light_label"/>
|
||||
<field name="google_gmail_client_secret" class="ml-2"/>
|
||||
<field name="google_gmail_client_secret" class="ms-2"/>
|
||||
</div>
|
||||
</div>
|
||||
</field>
|
||||
|
||||
@@ -134,21 +134,21 @@
|
||||
<div class="o_kanban_record_top">
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title">
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_present'">
|
||||
<!-- Employee is present/connected and it is normal according to his work schedule -->
|
||||
<span class="fa fa-circle text-success" role="img" aria-label="Present"
|
||||
title="Present" name="presence_present">
|
||||
</span>
|
||||
</div>
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_absent'">
|
||||
<!-- Employee is absent and it is normal according to his work schedule -->
|
||||
<span class="fa fa-circle-o text-muted" role="img" aria-label="Absent"
|
||||
title="Absent" name="presence_absent">
|
||||
</span>
|
||||
</div>
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_absent_active'">
|
||||
<!-- Employee is connected but according to his work schedule, he should not work for now -->
|
||||
<span class="fa fa-circle-o text-success" role="img"
|
||||
@@ -157,7 +157,7 @@
|
||||
</span>
|
||||
</div>
|
||||
<!-- Employee is not here but according to his work schedule, he should be connected -->
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_to_define'">
|
||||
<span class="fa fa-circle text-warning" role="img"
|
||||
aria-label="To define" title="To define"
|
||||
@@ -174,7 +174,7 @@
|
||||
<li t-if="record.work_email.raw_value"><field name="work_email" /></li>
|
||||
<li t-if="record.work_phone.raw_value" class="o_force_ltr"><field name="work_phone" /></li>
|
||||
</ul>
|
||||
<div class="oe_kanban_content position-absolute fixed-bottom mr-2">
|
||||
<div class="oe_kanban_content position-absolute fixed-bottom me-2">
|
||||
<div class="o_kanban_record_bottom">
|
||||
<div class="oe_kanban_bottom_left"/>
|
||||
<div class="oe_kanban_bottom_right">
|
||||
|
||||
@@ -272,7 +272,7 @@
|
||||
<div class="o_kanban_record_top">
|
||||
<div class="o_kanban_record_headings">
|
||||
<strong class="o_kanban_record_title">
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_present'"
|
||||
name="presence_present">
|
||||
<!-- Employee is present/connected and it is normal according to his work schedule -->
|
||||
@@ -280,7 +280,7 @@
|
||||
title="Present" name="presence_present">
|
||||
</span>
|
||||
</div>
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_absent'"
|
||||
name="presence_absent">
|
||||
<!-- Employee is not present and it is normal according to his work schedule -->
|
||||
@@ -288,7 +288,7 @@
|
||||
title="Absent" name="presence_absent">
|
||||
</span>
|
||||
</div>
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_absent_active'"
|
||||
name="presence_absent_active">
|
||||
<!-- Employee is connected but according to his work schedule,
|
||||
@@ -299,7 +299,7 @@
|
||||
name="presence_absent_active">
|
||||
</span>
|
||||
</div>
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_to_define'"
|
||||
name="presence_to_define">
|
||||
<!-- Employee is not here but according to his work schedule, he should be connected -->
|
||||
@@ -320,10 +320,10 @@
|
||||
<li t-if="record.work_phone.raw_value" class="o_force_ltr"><field name="work_phone" /></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="oe_kanban_content position-absolute fixed-bottom mr-2 o_hr_employee_kanban_bottom">
|
||||
<div class="oe_kanban_content position-absolute fixed-bottom me-2 o_hr_employee_kanban_bottom">
|
||||
<div class="o_kanban_record_bottom">
|
||||
<div class="oe_kanban_bottom_left"/>
|
||||
<div class="oe_kanban_bottom_right float-right">
|
||||
<div class="oe_kanban_bottom_right float-end">
|
||||
<a title="Chat" icon="fa-comments" href="#" class="ml8 o_employee_chat_btn" attrs="{'invisible': [('user_id','=', False)]}" role="button"><i class="fa fa-comments"/></a>
|
||||
<div class="hr_activity_container">
|
||||
<field name="activity_ids" widget="kanban_activity"/>
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
<group>
|
||||
<label for="no_of_recruitment"/>
|
||||
<div class="o_row" name="recruitment_target">
|
||||
<field name="no_of_recruitment" class="col-3 pl-0"/>
|
||||
<span class="pl-1">new Employees</span>
|
||||
<field name="no_of_recruitment" class="col-3 ps-0"/>
|
||||
<span class="ps-1">new Employees</span>
|
||||
</div>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -43,16 +43,16 @@
|
||||
<label for="hr_presence_control_email" class="o_light_label"/>
|
||||
</div>
|
||||
<div class="d-flex ml32" attrs="{'invisible': ['|', ('module_hr_presence', '=', False), ('hr_presence_control_email', '=', False)]}">
|
||||
<span class="flex-shrink-0 ml8 mr-2">Minimum number of emails to sent </span>
|
||||
<field name="hr_presence_control_email_amount" class="ml-2 oe_inline"/>
|
||||
<span class="flex-shrink-0 ml8 me-2">Minimum number of emails to sent </span>
|
||||
<field name="hr_presence_control_email_amount" class="ms-2 oe_inline"/>
|
||||
</div>
|
||||
<div class="d-flex" attrs="{'invisible': [('module_hr_presence', '=', False)]}">
|
||||
<field name="hr_presence_control_ip" class="ml16"/>
|
||||
<label for="hr_presence_control_ip" class="o_light_label"/>
|
||||
</div>
|
||||
<div class="d-flex ml32" attrs="{'invisible': ['|', ('module_hr_presence', '=', False), ('hr_presence_control_ip', '=', False)]}">
|
||||
<span class="flex-shrink-0 ml8 mr-2">IP Addresses (comma-separated)</span>
|
||||
<field name="hr_presence_control_ip_list" class="ml-2 oe_inline"/>
|
||||
<span class="flex-shrink-0 ml8 me-2">IP Addresses (comma-separated)</span>
|
||||
<field name="hr_presence_control_ip_list" class="ms-2 oe_inline"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -92,7 +92,7 @@
|
||||
</h1>
|
||||
</div>
|
||||
<div class="row">
|
||||
<h2 class="col-6 pl-0">
|
||||
<h2 class="col-6 ps-0">
|
||||
<field name="job_title" placeholder="Job Position" attrs="{'readonly': [('can_edit', '=', False)]}"/>
|
||||
</h2>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
<t t-name="HrAttendanceCardLayout">
|
||||
<div class="o_hr_attendance_kiosk_mode_container o_home_menu_background d-flex flex-column align-items-center justify-content-center h-100 text-center">
|
||||
<span class="o_hr_attendance_kiosk_backdrop position-absolute top-0 start-0 end-0 bottom-0 bg-black-25"/>
|
||||
<div class="o_hr_attendance_clock bg-black-50 p-3 py-md-2 m-0 mt-md-5 mr-md-5 h2 text-white text-monospace"/>
|
||||
<div class="o_hr_attendance_clock bg-black-50 p-3 py-md-2 m-0 mt-md-5 me-md-5 h2 text-white font-monospace"/>
|
||||
<div t-attf-class="o_hr_attendance_kiosk_mode flex-grow-1 flex-md-grow-0 card pb-3 px-0 px-lg-5 {{kioskModeClasses ? kioskModeClasses : '' }}">
|
||||
<div class="card-body d-flex flex-column p-0 p-md-4">
|
||||
<t t-out="bodyContent"></t>
|
||||
@@ -112,12 +112,12 @@
|
||||
<h3 class="mt-4 mb0 text-muted">Please enter your PIN to <b t-if="checked_in">check out</b><b t-else="">check in</b></h3>
|
||||
<div class="row">
|
||||
<div class="col-md-8 offset-md-2 o_hr_attendance_pin_pad">
|
||||
<div class="row no-gutters" >
|
||||
<div class="row g-0" >
|
||||
<div class="col-12 mb8 mt8">
|
||||
<input class="o_hr_attendance_PINbox border-0 bg-white fs-1 text-center" type="password" disabled="true"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row no-gutters">
|
||||
<div class="row g-0">
|
||||
<t t-foreach="['1', '2', '3', '4', '5', '6', '7', '8', '9', ['C', 'btn-warning'], '0', ['ok', 'btn-primary']]" t-as="btn_name">
|
||||
<div class="col-4 p-1">
|
||||
<a href="#" t-attf-class="o_hr_attendance_PINbox_button btn {{btn_name[1]? btn_name[1] : 'btn-secondary border'}} btn-block btn-lg {{ 'o_hr_attendance_pin_pad_button_' + btn_name[0] }} d-flex align-items-center justify-content-center">
|
||||
@@ -164,7 +164,7 @@
|
||||
<t t-if="widget.total_overtime_float > 0">
|
||||
Total extra hours: <span t-esc="widget.total_overtime"/>
|
||||
</t>
|
||||
<h3 class="o_hr_attendance_random_message font-italic mb24"/>
|
||||
<h3 class="o_hr_attendance_random_message fst-italic mb24"/>
|
||||
<div class="o_hr_attendance_warning_message mt24 alert alert-warning" style="display:none" role="alert"/>
|
||||
</div>
|
||||
<div t-else="" class="flex-grow-1">
|
||||
|
||||
@@ -143,10 +143,10 @@
|
||||
</div>
|
||||
<div class="oe_kanban_details">
|
||||
<div id="textbox">
|
||||
<div class="float-right" t-if="record.attendance_state.raw_value == 'checked_in'">
|
||||
<div class="float-end" t-if="record.attendance_state.raw_value == 'checked_in'">
|
||||
<span id="oe_hr_attendance_status" class="fa fa-circle text-success me-1" role="img" aria-label="Available" title="Available"></span>
|
||||
</div>
|
||||
<div class="float-right" t-if="record.attendance_state.raw_value == 'checked_out'">
|
||||
<div class="float-end" t-if="record.attendance_state.raw_value == 'checked_out'">
|
||||
<span id="oe_hr_attendance_status" class="fa fa-circle text-warning me-1"
|
||||
role="img" aria-label="Not available" title="Not available">
|
||||
</span>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<div>
|
||||
<field name="display_name"/>
|
||||
</div>
|
||||
<div class="pl-3">
|
||||
<div class="ps-3">
|
||||
<field name="under_contract_state" widget="state_selection" readonly="1"/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -186,7 +186,7 @@
|
||||
<field name="job_id"/>
|
||||
</div>
|
||||
<div class="oe_kanban_bottom_right">
|
||||
<span class="float-right">
|
||||
<span class="float-end">
|
||||
<field name="employee_id" widget="many2one_avatar_employee"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -52,7 +52,7 @@
|
||||
<div>
|
||||
<field name="resource_calendar_id" required="1" nolabel="1"/>
|
||||
<span attrs="{'invisible': [('calendar_mismatch', '=', False)]}"
|
||||
class="fa fa-exclamation-triangle text-danger o_calendar_warning ml-3"
|
||||
class="fa fa-exclamation-triangle text-danger o_calendar_warning ms-3"
|
||||
data-tooltip-template="hr_contract.CalendarMismatch"
|
||||
data-tooltip-info='{
|
||||
"text":"Calendar Mismatch : The employee's calendar does not match this contract's calendar. This could lead to unexpected behaviors."
|
||||
@@ -141,7 +141,7 @@
|
||||
<sheet>
|
||||
<div class="oe_button_box" name="button_box"/>
|
||||
<widget name="web_ribbon" title="Archived" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
|
||||
<div class="oe_title pr-0" name="title">
|
||||
<div class="oe_title pe-0" name="title">
|
||||
<h1 class="d-flex flex-row justify-content-between">
|
||||
<field name="name" class="text-truncate" placeholder="Contract Reference"/>
|
||||
<field name="kanban_state" widget="state_selection" readonly="1"/>
|
||||
@@ -164,7 +164,7 @@
|
||||
<div id="resource_calendar_warning">
|
||||
<field name="resource_calendar_id" required="1" nolabel="1" options="{'no_open': True, 'no_create': True}"/>
|
||||
<span attrs="{'invisible': ['|', ('calendar_mismatch', '=', False), ('state', '!=', 'open')]}"
|
||||
class="fa fa-exclamation-triangle text-danger o_calendar_warning ml-3"
|
||||
class="fa fa-exclamation-triangle text-danger o_calendar_warning ms-3"
|
||||
data-tooltip-template="hr_contract.CalendarMismatch"
|
||||
data-tooltip-info='{
|
||||
"text":"Calendar Mismatch : The employee's calendar does not match this contract's calendar. This could lead to unexpected behaviors."
|
||||
@@ -272,7 +272,7 @@
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_card oe_kanban_global_click">
|
||||
<div class="o_dropdown_kanban dropdown" t-if="!selection_mode" groups="hr_contract.group_hr_contract_manager">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-toggle="dropdown" data-display="static" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-bs-toggle="dropdown" data-bs-display="static" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
@@ -290,10 +290,10 @@
|
||||
<field name="job_id"/>
|
||||
</div>
|
||||
<div class="oe_kanban_bottom_right">
|
||||
<span class="float-right">
|
||||
<span class="float-end">
|
||||
<field name="employee_id" widget="many2one_avatar_employee"/>
|
||||
</span>
|
||||
<span class="float-right mr4">
|
||||
<span class="float-end mr4">
|
||||
<field name="kanban_state" widget="state_selection"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
@@ -39,8 +39,8 @@
|
||||
<th>Unit Price</th>
|
||||
<th>Taxes</th>
|
||||
<th class="text-center">Qty</th>
|
||||
<th class="text-right">Price</th>
|
||||
<th t-if="o.is_multiple_currency" class="text-right">Price in Company Currency</th>
|
||||
<th class="text-end">Price</th>
|
||||
<th t-if="o.is_multiple_currency" class="text-end">Price in Company Currency</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@@ -70,11 +70,11 @@
|
||||
<td class="text-center">
|
||||
<span t-field="line.quantity"/>
|
||||
</td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span t-field="line.total_amount"
|
||||
t-options='{"widget": "monetary", "display_currency": line.currency_id}'/>
|
||||
</td>
|
||||
<td t-if="o.is_multiple_currency" class="text-right">
|
||||
<td t-if="o.is_multiple_currency" class="text-end">
|
||||
<span t-field="line.total_amount_company"/>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -86,7 +86,7 @@
|
||||
<table class="table table-sm">
|
||||
<tr class="border-black">
|
||||
<td><strong>Total</strong></td>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<span t-field="o.total_amount"
|
||||
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
|
||||
</td>
|
||||
|
||||
@@ -10,7 +10,8 @@
|
||||
|
||||
.o_view_nocontent_expense_receipt:before {
|
||||
@extend %o-nocontent-init-image;
|
||||
@include size(300px, 230px);
|
||||
width: 300px;
|
||||
height: 230px;
|
||||
background: transparent url(/hr_expense/static/img/nocontent.png) no-repeat center;
|
||||
background-size: 300px 230px;
|
||||
margin-bottom: 0.75rem;
|
||||
|
||||
@@ -8,12 +8,12 @@
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//t[@id='account.JournalBodySalePurchase']//div[hasclass('o_kanban_primary_right')]" position="inside">
|
||||
<div class="row" t-if="dashboard.number_expenses_to_pay">
|
||||
<div class="col overflow-hidden text-left">
|
||||
<div class="col overflow-hidden text-start">
|
||||
<a type="object" t-if="journal_type == 'purchase'" name="open_expenses_action">
|
||||
<t t-esc="dashboard.number_expenses_to_pay"/> Expenses to Process
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-auto text-right">
|
||||
<div class="col-auto text-end">
|
||||
<span t-if="journal_type == 'purchase'"><t t-esc="dashboard.sum_expenses_to_pay"/></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -67,7 +67,7 @@
|
||||
<field name="quantity" optional="hide"/>
|
||||
<field name="tax_ids" optional="hide" widget="many2many_tags" groups="account.group_account_invoice,account.group_account_readonly"/>
|
||||
<field name="amount_tax_company" optional="hide" groups="account.group_account_invoice,account.group_account_readonly"/>
|
||||
<field name="attachment_number" nolabel="1" class='fa fa-paperclip pr-0' attrs="{'invisible': [('attachment_number', '=', 0)]}"/>
|
||||
<field name="attachment_number" nolabel="1" class='fa fa-paperclip pe-0' attrs="{'invisible': [('attachment_number', '=', 0)]}"/>
|
||||
<field name="total_amount_company" optional="show" sum="Total Company Currency" widget='monetary' options="{'currency_field': 'company_currency_id'}" decoration-bf="True"/>
|
||||
<field name="total_amount" optional="hide" decoration-bf="True" groups="base.group_multi_currency"/>
|
||||
<field name="currency_id" optional="hide" groups="base.group_multi_currency"/>
|
||||
@@ -142,7 +142,7 @@
|
||||
<field name="product_id" required="1" attrs="{'readonly': [('sheet_is_editable', '=', False)]}" context="{'default_can_be_expensed': 1, 'tree_view_ref': 'hr_expense.product_product_expense_tree_view', 'form_view_ref': 'hr_expense.product_product_expense_form_view'}"/>
|
||||
<label for="product_description" string="" attrs="{'invisible': ['|', ('product_description', '=', False), ('product_id', '=', False)]}"/>
|
||||
<div class="o_row" attrs="{'invisible': ['|', ('product_description', '=', False), ('product_id', '=', False)]}">
|
||||
<field name ="product_description" class="font-italic"/>
|
||||
<field name ="product_description" class="fst-italic"/>
|
||||
</div>
|
||||
<field name="unit_amount" required="1" force_save="1" widget="monetary" options="{'currency_field': 'currency_id', 'field_digits': True}" attrs="{'invisible': [('product_has_cost', '=', False)], 'readonly': ['|', ('sheet_is_editable', '=', False), ('product_has_cost', '=', True)]}"/>
|
||||
<field name="product_uom_category_id" invisible="1"/>
|
||||
@@ -173,11 +173,11 @@
|
||||
options="{'no_create': True}"/>
|
||||
</div>
|
||||
<div class="d-flex pt-2">
|
||||
<span attrs="{'invisible': [('product_has_tax', '=', False)]}" class="oe_inline o_form_label ml-1 mr-1"> ( </span>
|
||||
<span attrs="{'invisible': [('product_has_tax', '=', False)]}" class="oe_inline o_form_label ms-1 me-1"> ( </span>
|
||||
<field name="amount_tax"
|
||||
class="pl-0"
|
||||
class="ps-0"
|
||||
attrs="{'invisible': [('product_has_tax', '=', False)]}"/>
|
||||
<span attrs="{'invisible': [('product_has_tax', '=', False)]}" class="oe_inline o_form_label ml-1 mr-3"> ) </span>
|
||||
<span attrs="{'invisible': [('product_has_tax', '=', False)]}" class="oe_inline o_form_label ms-1 me-3"> ) </span>
|
||||
</div>
|
||||
</div>
|
||||
</group><group>
|
||||
@@ -248,7 +248,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<strong class="o_kanban_record_title"><span><t t-esc="record.name.value"/></span></strong>
|
||||
<strong class="o_kanban_record_subtitle float-right"><span class="text-right"><field name="total_amount" widget="monetary"/></span></strong>
|
||||
<strong class="o_kanban_record_subtitle float-end"><span class="text-end"><field name="total_amount" widget="monetary"/></span></strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt8">
|
||||
@@ -256,7 +256,7 @@
|
||||
<span><t t-esc="record.employee_id.value"/> <t t-esc="record.date.value"/></span>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<span class="float-right text-right">
|
||||
<span class="float-end text-end">
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'reported': 'primary', 'refused': 'danger', 'done': 'warning',
|
||||
'approved': 'success'}}"/>
|
||||
</span>
|
||||
@@ -765,8 +765,8 @@
|
||||
<field name="analytic_account_id" optional="show" domain="['|', ('company_id', '=', parent.company_id), ('company_id', '=', False)]" groups="analytic.group_analytic_accounting"/>
|
||||
<field name="analytic_tag_ids" optional="hide" widget="many2many_tags" groups="analytic.group_analytic_tags"/>
|
||||
<field name="account_id" optional="hide" readonly="True"/>
|
||||
<button name="action_get_attachment_view" type="object" icon="fa-paperclip" aria-label="View Attachments" title="View Attachments" class="float-right pr-0" readonly="True"/>
|
||||
<field name="attachment_number" class="text-right pl-0 pr-4" width="1" nolabel="1"/>
|
||||
<button name="action_get_attachment_view" type="object" icon="fa-paperclip" aria-label="View Attachments" title="View Attachments" class="float-end pe-0" readonly="True"/>
|
||||
<field name="attachment_number" class="text-end ps-0 pe-4" width="1" nolabel="1"/>
|
||||
<field name="product_has_cost" invisible="True"/>
|
||||
<field name="unit_amount" optional="hide" widget="monetary" attrs="{'readonly': [('product_has_cost', '=', False)]}" options="{'currency_field': 'currency_id'}"/>
|
||||
<field name="currency_id" optional="hide" readonly="True"/>
|
||||
@@ -826,7 +826,7 @@
|
||||
<div class="row">
|
||||
<div class="col-12">
|
||||
<strong class="o_kanban_record_title"><span><t t-esc="record.name.value"/></span></strong>
|
||||
<strong class="o_kanban_record_subtitle float-right"><span class="text-right"><field name="total_amount" widget="monetary"/></span></strong>
|
||||
<strong class="o_kanban_record_subtitle float-end"><span class="text-end"><field name="total_amount" widget="monetary"/></span></strong>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row mt8">
|
||||
@@ -834,7 +834,7 @@
|
||||
<span><t t-esc="record.employee_id.value"/> <t t-esc="record.accounting_date.value"/></span>
|
||||
</div>
|
||||
<div class="col-6">
|
||||
<span class="float-right text-right">
|
||||
<span class="float-end text-end">
|
||||
<field name="state" widget="label_selection" options="{'classes': {'draft': 'default', 'submit': 'default', 'cancel': 'danger', 'post': 'warning',
|
||||
'done': 'success'}}"/>
|
||||
</span>
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<div t-if="state.departmentLeaves.length === 0">
|
||||
None
|
||||
</div>
|
||||
<div t-foreach="state.departmentLeaves" t-as="leave" t-key="leave_index" t-attf-class="d-flex flex-row justify-content-between {{leave.sameEmployee ? 'font-weight-bold': ''}}">
|
||||
<div t-foreach="state.departmentLeaves" t-as="leave" t-key="leave_index" t-attf-class="d-flex flex-row justify-content-between {{leave.sameEmployee ? 'fw-bold': ''}}">
|
||||
<span><t t-esc="leave.employee_id[1]"/>: <t t-esc="leave.number_of_days"/> day(s)</span>
|
||||
<span><t t-esc="leave.dateFrom"/> - <t t-esc="leave.dateTo"/></span>
|
||||
</div>
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$o-hr-holidays-border-color: gray('300');
|
||||
$o-hr-holidays-border-color: map-get($grays, '300');
|
||||
|
||||
.o_hr_holidays_hierarchy {
|
||||
margin-left: -$o-horizontal-padding;
|
||||
|
||||
@@ -137,7 +137,7 @@
|
||||
padding: 16px;
|
||||
}
|
||||
.col_right {
|
||||
background-color: gray('200');
|
||||
background-color: map-get($grays, '200');
|
||||
padding-top: 28px;
|
||||
}
|
||||
.o_hr_leave_date {
|
||||
|
||||
@@ -13,11 +13,11 @@
|
||||
<t t-name="hr_holidays.calendar.popover.placeholder">
|
||||
<div t-attf-class="o_cw_popover popover card shadow #{typeof color === 'number' ? _.str.sprintf('o_calendar_color_%s', color) : ''}" role="tooltip">
|
||||
<div class="arrow"/>
|
||||
<div class="card-header d-flex justify-content-between py-2 pr-2">
|
||||
<div class="card-header d-flex justify-content-between py-2 pe-2">
|
||||
<h4 class="popover-header border-0 p-0 pt-1"/>
|
||||
<div class="ml-4">
|
||||
<div class="ms-4">
|
||||
<i t-if="calendarIcon" t-attf-class="fa {{calendarIcon}}"></i>
|
||||
<span class="o_cw_popover_close ml-1"><i class="fa fa-close small"/></span>
|
||||
<span class="o_cw_popover_close ms-1"><i class="fa fa-close small"/></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_cw_body">
|
||||
@@ -42,16 +42,16 @@
|
||||
</ul>
|
||||
<div class="card-footer border-top" t-if="widget.canEdit or widget.canDelete">
|
||||
<a t-if="widget.canEdit" href="#" class="btn btn-primary o_cw_popover_edit">Edit</a>
|
||||
<a t-if="widget.canDelete" href="#" class="btn btn-secondary o_cw_popover_delete ml-2">Delete</a>
|
||||
<a t-if="widget.canDelete" href="#" class="btn btn-secondary o_cw_popover_delete ms-2">Delete</a>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
<t t-name="FieldRadioIcon.button">
|
||||
<div t-if="mode === 'edit'" class="custom-control custom-radio o_radio_item" aria-atomic="true">
|
||||
<input type="radio" class="custom-control-input o_radio_input" t-att-checked="checked ? true : undefined" t-att-disabled="disabled ? true : undefined"
|
||||
<div t-if="mode === 'edit'" class="custom-control form-check o_radio_item" aria-atomic="true">
|
||||
<input type="radio" class="form-check-input o_radio_input" t-att-checked="checked ? true : undefined" t-att-disabled="disabled ? true : undefined"
|
||||
t-att-name="name" t-att-data-value="value[0]" t-att-data-index="index" t-att-id="id"/>
|
||||
<label class="custom-control-label o_form_label" t-att-for="id"><img t-attf-src="/hr_holidays/static/src/img/icons/{{value[1]}}" width="48" height="48" /></label>
|
||||
<label class="form-check-label o_form_label" t-att-for="id"><img t-attf-src="/hr_holidays/static/src/img/icons/{{value[1]}}" width="48" height="48" /></label>
|
||||
</div>
|
||||
<div t-else="">
|
||||
<img t-attf-src="/hr_holidays/static/src/img/icons/{{value[1]}}" width="48" height="48"/>
|
||||
|
||||
@@ -256,7 +256,7 @@
|
||||
<tree string="Allocation Requests" sample="1" decoration-info="state == 'draft'">
|
||||
<field name="employee_id" decoration-muted="not active_employee"/>
|
||||
<field name="department_id" optional="hide"/>
|
||||
<field name="holiday_status_id" class="font-weight-bold"/>
|
||||
<field name="holiday_status_id" class="fw-bold"/>
|
||||
<field name="name"/>
|
||||
<field name="duration_display" string="Duration"/>
|
||||
<field name="date_from" string="Validity Start" optional="hide"/>
|
||||
@@ -355,21 +355,21 @@
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="oe_kanban_global_click container">
|
||||
<div class="row no-gutters">
|
||||
<div class="row g-0">
|
||||
<div class="col-3">
|
||||
<img t-att-src="kanban_image('hr.employee', 'avatar_128', record.employee_id.raw_value)"
|
||||
t-att-title="record.employee_id.value"
|
||||
t-att-alt="record.employee_id.value"
|
||||
class="o_image_64_cover float-left mr4"/>
|
||||
class="o_image_64_cover float-start mr4"/>
|
||||
</div>
|
||||
<div class="col-9">
|
||||
<span class="badge badge-pill float-right mt4 mr16"><t t-esc="record.number_of_days.value"/> days</span>
|
||||
<span class="badge rounded-pill float-end mt4 mr16"><t t-esc="record.number_of_days.value"/> days</span>
|
||||
<strong class="o_kanban_record_title"><t t-esc="record.employee_id.value"/></strong>
|
||||
<div class="text-muted o_kanban_record_subtitle">
|
||||
<t t-esc="record.holiday_status_id.value"/>
|
||||
</div>
|
||||
<div class="o_dropdown_kanban dropdown" groups="base.group_user">
|
||||
<a role="button" class="dropdown-toggle o-no-caret btn" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<a role="button" class="dropdown-toggle o-no-caret btn" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
@@ -380,14 +380,14 @@
|
||||
<div t-if="['validate', 'refuse'].includes(record.state.raw_value)">
|
||||
<span t-if="record.state.raw_value === 'validate'" class="fa fa-check text-muted" aria-label="validated"/>
|
||||
<span t-else="" class="fa fa-ban text-muted" aria-label="refused"/>
|
||||
<t t-set="classname" t-value="{'validate': 'badge-success', 'refuse': 'badge-danger'}[record.state.raw_value] || 'badge-light'"/>
|
||||
<span t-attf-class="badge badge-pill {{ classname }}"><t t-esc="record.state.value"/></span>
|
||||
<t t-set="classname" t-value="{'validate': 'text-bg-success', 'refuse': 'text-bg-danger'}[record.state.raw_value] || 'text-bg-light'"/>
|
||||
<span t-attf-class="badge rounded-pill {{ classname }}"><t t-esc="record.state.value"/></span>
|
||||
</div>
|
||||
<div t-if="record.can_approve.raw_value">
|
||||
<button t-if="record.state.raw_value === 'confirm'" name="action_validate" type="object" class="btn btn-link btn-sm pl-0">
|
||||
<button t-if="record.state.raw_value === 'confirm'" name="action_validate" type="object" class="btn btn-link btn-sm ps-0">
|
||||
<i class="fa fa-check"/> Validate
|
||||
</button>
|
||||
<button t-if="record.state.raw_value === 'confirm'" name="action_refuse" type="object" class="btn btn-link btn-sm pl-0">
|
||||
<button t-if="record.state.raw_value === 'confirm'" name="action_refuse" type="object" class="btn btn-link btn-sm ps-0">
|
||||
<i class="fa fa-times"/> Refuse
|
||||
</button>
|
||||
</div>
|
||||
@@ -411,7 +411,7 @@
|
||||
<img t-att-src="activity_image('hr.employee', 'avatar_128', record.employee_id.raw_value)" t-att-title="record.employee_id.value" t-att-alt="record.employee_id.value"/>
|
||||
<div>
|
||||
<field name="employee_id"/>
|
||||
<span class="ml-3 text-muted">
|
||||
<span class="ms-3 text-muted">
|
||||
<field name="number_of_days"/> days
|
||||
</span>
|
||||
<field name="holiday_status_id" muted="1" display="full"/>
|
||||
|
||||
@@ -111,7 +111,7 @@
|
||||
</div>
|
||||
<div>
|
||||
<span>Max Time Off: <field name="max_leaves"/></span>
|
||||
<span class="float-right">Time Off Taken: <field name="leaves_taken"/></span>
|
||||
<span class="float-end">Time Off Taken: <field name="leaves_taken"/></span>
|
||||
</div>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
@@ -109,15 +109,15 @@
|
||||
<templates>
|
||||
<t t-name="kanban-box">
|
||||
<div class="d-flex flex-column justify-content-between oe_kanban_global_click container">
|
||||
<div class="row no-gutters">
|
||||
<div class="row g-0">
|
||||
<div class="o_leave_kanban_info col-12">
|
||||
<span class="badge badge-pill float-right mt4 mr16"><t t-esc="record.number_of_days.value"/> days</span>
|
||||
<span class="badge rounded-pill float-end mt4 mr16"><t t-esc="record.number_of_days.value"/> days</span>
|
||||
<strong class="o_kanban_record_title"><t t-esc="record.employee_id.value"/></strong>
|
||||
<div class="text-muted o_kanban_record_subtitle">
|
||||
<t t-esc="record.holiday_status_id.value"/>
|
||||
</div>
|
||||
<div class="o_dropdown_kanban dropdown" groups="base.group_user">
|
||||
<a role="button" class="dropdown-toggle o-no-caret btn" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<a role="button" class="dropdown-toggle o-no-caret btn" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
@@ -137,25 +137,25 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex justify-content-end">
|
||||
<div class="mr-2 d-flex align-items-center" t-if="['validate', 'refuse'].includes(record.state.raw_value)">
|
||||
<span t-if="record.state.raw_value === 'validate'" class="fa fa-check text-muted mr-1" aria-label="validated"/>
|
||||
<span t-else="" class="fa fa-ban text-muted mr-1" aria-label="refused"/>
|
||||
<t t-set="classname" t-value="{'validate': 'badge-success', 'refuse': 'badge-danger'}[record.state.raw_value] || 'badge-light'"/>
|
||||
<span t-attf-class="badge badge-pill {{ classname }}"><t t-esc="record.state.value"/></span>
|
||||
<div class="me-2 d-flex align-items-center" t-if="['validate', 'refuse'].includes(record.state.raw_value)">
|
||||
<span t-if="record.state.raw_value === 'validate'" class="fa fa-check text-muted me-1" aria-label="validated"/>
|
||||
<span t-else="" class="fa fa-ban text-muted me-1" aria-label="refused"/>
|
||||
<t t-set="classname" t-value="{'validate': 'text-bg-success', 'refuse': 'text-bg-danger'}[record.state.raw_value] || 'text-bg-light'"/>
|
||||
<span t-attf-class="badge rounded-pill {{ classname }}"><t t-esc="record.state.value"/></span>
|
||||
</div>
|
||||
<div class="mr-2 align-items-center" t-if="['confirm', 'validate1'].includes(record.state.raw_value)">
|
||||
<button t-if="record.state.raw_value === 'confirm'" name="action_approve" type="object" class="btn btn-link btn-sm pl-0">
|
||||
<div class="me-2 align-items-center" t-if="['confirm', 'validate1'].includes(record.state.raw_value)">
|
||||
<button t-if="record.state.raw_value === 'confirm'" name="action_approve" type="object" class="btn btn-link btn-sm ps-0">
|
||||
<i class="fa fa-thumbs-up"/> Approve
|
||||
</button>
|
||||
<button t-if="record.state.raw_value === 'validate1'" name="action_validate" type="object" class="btn btn-link btn-sm pl-0" groups="hr_holidays.group_hr_holidays_manager">
|
||||
<button t-if="record.state.raw_value === 'validate1'" name="action_validate" type="object" class="btn btn-link btn-sm ps-0" groups="hr_holidays.group_hr_holidays_manager">
|
||||
<i class="fa fa-check"/> Validate
|
||||
</button>
|
||||
<button t-if="['confirm', 'validate1'].includes(record.state.raw_value)" name="action_refuse" type="object" class="btn btn-link btn-sm pl-0">
|
||||
<button t-if="['confirm', 'validate1'].includes(record.state.raw_value)" name="action_refuse" type="object" class="btn btn-link btn-sm ps-0">
|
||||
<i class="fa fa-times"/> Refuse
|
||||
</button>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<button t-if="record.supported_attachment_ids_count.raw_value > 0" name="action_documents" type="object" class="btn btn-link btn-sm pl-0">
|
||||
<div class="text-end">
|
||||
<button t-if="record.supported_attachment_ids_count.raw_value > 0" name="action_documents" type="object" class="btn btn-link btn-sm ps-0">
|
||||
<i class="fa fa-paperclip"> <field name="supported_attachment_ids_count" nolabel="1"/></i>
|
||||
</button>
|
||||
</div>
|
||||
@@ -178,7 +178,7 @@
|
||||
<img t-att-src="kanban_image('hr.employee', 'avatar_128', record.employee_id.raw_value)"
|
||||
t-att-title="record.employee_id.value"
|
||||
t-att-alt="record.employee_id.value"
|
||||
class="o_image_64_cover float-left mr4"/>
|
||||
class="o_image_64_cover float-start mr4"/>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr="//div[hasclass('o_leave_kanban_info')]" position="attributes">
|
||||
@@ -202,7 +202,7 @@
|
||||
<img t-att-src="activity_image('hr.employee', 'avatar_128', record.employee_id.raw_value)" t-att-title="record.employee_id.value" t-att-alt="record.employee_id.value" width="50" height="50"/>
|
||||
<div>
|
||||
<field name="name"/>
|
||||
<span class="ml-3 text-muted">
|
||||
<span class="ms-3 text-muted">
|
||||
<field name="number_of_days"/> days
|
||||
</span>
|
||||
<div class="text-muted">
|
||||
@@ -312,7 +312,7 @@
|
||||
<field name="request_unit_hours" attrs="{
|
||||
'readonly': [('state', 'not in', ('draft', 'confirm'))],
|
||||
'invisible': [('leave_type_request_unit', '!=', 'hour')]
|
||||
}" class="ml-5"/>
|
||||
}" class="ms-5"/>
|
||||
<label for="request_unit_hours" attrs="{
|
||||
'invisible': [('leave_type_request_unit', '!=', 'hour')]
|
||||
}"/>
|
||||
@@ -522,7 +522,7 @@
|
||||
<field name="all_employee_ids" widget="many2many_avatar_employee" decoration-muted="not active_employee" string="Employees" />
|
||||
<field name="department_id" optional="hidden"/>
|
||||
<field name="holiday_type" string="Mode" groups="base.group_no_one"/>
|
||||
<field name="holiday_status_id" class="font-weight-bold"/>
|
||||
<field name="holiday_status_id" class="fw-bold"/>
|
||||
<field name="name"/>
|
||||
<field name="date_from"/>
|
||||
<field name="date_to"/>
|
||||
|
||||
@@ -88,14 +88,14 @@
|
||||
</xpath>
|
||||
<xpath expr="//strong[hasclass('o_kanban_record_title')]" position="inside">
|
||||
<!-- Employee is absent, in holiday but he is connected -->
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_holiday_present'">
|
||||
<span class="fa fa-plane text-success" role="img" aria-label="Present but on leave"
|
||||
title="Present but on leave" name="presence_absent_active">
|
||||
</span>
|
||||
</div>
|
||||
<!-- Employee is on holiday, not present and not connected -->
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_holiday_absent'"
|
||||
name="presence_absent">
|
||||
<span class="fa fa-plane text-warning" role="img" aria-label="To define" title="On Leave"/>
|
||||
@@ -119,7 +119,7 @@
|
||||
<xpath expr="//div[@name='presence_absent_active']" position="after">
|
||||
<!-- Employee is absent, in holiday but he is connected -->
|
||||
<!-- green plane -->
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_holiday_present'">
|
||||
<span class="fa fa-plane text-success" role="img" aria-label="Present but on leave"
|
||||
title="Present but on leave" name="presence_absent_active">
|
||||
@@ -127,7 +127,7 @@
|
||||
</div>
|
||||
<!-- Employee is on holiday, not present and not connected -->
|
||||
<!-- orange plane -->
|
||||
<div class="float-right"
|
||||
<div class="float-end"
|
||||
t-if="record.hr_icon_display.raw_value == 'presence_holiday_absent'"
|
||||
name="presence_absent">
|
||||
<span class="fa fa-plane text-warning" role="img" aria-label="To define" title="On Leave"/>
|
||||
|
||||
@@ -91,7 +91,7 @@ var FieldOrgChart = AbstractField.extend({
|
||||
}
|
||||
orgData.view_employee_id = self.recordData.id;
|
||||
self.$el.html(QWeb.render("hr_org_chart", orgData));
|
||||
self.$('[data-toggle="popover"]').each(function () {
|
||||
self.$('[data-bs-toggle="popover"]').each(function () {
|
||||
$(this).popover({
|
||||
html: true,
|
||||
title: function () {
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
border-left: 1px solid $o-hr-org-chart-border-color;
|
||||
|
||||
.o_org_chart_title {
|
||||
color: gray('600')
|
||||
color: map-get($grays, '600')
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -67,7 +67,8 @@
|
||||
&:before {
|
||||
@include o-hr-org-chart-line;
|
||||
border-width: 0 0 $o-hr-org-chart-entry-line-w $o-hr-org-chart-entry-line-w;
|
||||
@include size(($o-hr-org-chart-entry-pic-size*0.5) - ($o-hr-org-chart-entry-v-gap*2), $o-hr-org-chart-entry-pic-size*0.5 + $o-hr-org-chart-entry-v-gap*2 );
|
||||
width: ($o-hr-org-chart-entry-pic-size*0.5) - ($o-hr-org-chart-entry-v-gap*2);
|
||||
height: $o-hr-org-chart-entry-pic-size*0.5 + $o-hr-org-chart-entry-v-gap*2 ;
|
||||
@include o-position-absolute(
|
||||
$left: $o-hr-org-chart-entry-pic-size*0.5 - $o-hr-org-chart-entry-line-w*0.5,
|
||||
$top: 100%
|
||||
@@ -105,7 +106,8 @@
|
||||
&:before {
|
||||
@include o-hr-org-chart-line;
|
||||
border-top-width: $o-hr-org-chart-entry-line-w;
|
||||
@include size($tmp-gap-base, 0);
|
||||
width: $tmp-gap-base;
|
||||
height: 0;
|
||||
@include o-position-absolute(
|
||||
$left: $tmp-gap-base*-0.5 + $o-hr-org-chart-entry-pic-size*0.1 + $o-hr-org-chart-entry-line-w*0.5,
|
||||
$top: $o-hr-org-chart-entry-pic-size*0.5
|
||||
@@ -150,9 +152,9 @@
|
||||
float: right;
|
||||
cursor: pointer;
|
||||
margin-right: 5px;
|
||||
color: gray('600');
|
||||
color: map-get($grays, '600');
|
||||
background: $o-hr-org-chart-bg;
|
||||
border: 1px solid gray('600');
|
||||
border: 1px solid map-get($grays, '600');
|
||||
&:hover {
|
||||
color: $o-brand-primary;
|
||||
border-color: $o-brand-primary;
|
||||
@@ -166,7 +168,7 @@
|
||||
display: block;
|
||||
line-height: 1.2;
|
||||
font-size: 11px;
|
||||
color: lighten(gray('600'), 15%);
|
||||
color: lighten(map-get($grays, '600'), 15%);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -209,7 +211,7 @@
|
||||
display: block;
|
||||
|
||||
.o_media_heading {
|
||||
color: lighten(gray('600'), 5%);
|
||||
color: lighten(map-get($grays, '600'), 5%);
|
||||
font-size: 13px;
|
||||
}
|
||||
}
|
||||
@@ -223,7 +225,7 @@
|
||||
color: $o-brand-primary;
|
||||
}
|
||||
strong {
|
||||
color: lighten(gray('600'), 5%);
|
||||
color: lighten(map-get($grays, '600'), 5%);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -267,7 +269,8 @@
|
||||
}
|
||||
|
||||
span {
|
||||
@include size(30px, 30px);
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-right: 10px;
|
||||
border-radius: 100%;
|
||||
background-position: center;
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
<div class="flex-grow-1">
|
||||
<span
|
||||
t-if="employee.indirect_sub_count > 0"
|
||||
class="badge badge-pill"
|
||||
class="badge rounded-pill"
|
||||
tabindex="0"
|
||||
data-trigger="focus"
|
||||
t-att-data-emp-name="employee.name"
|
||||
t-att-data-emp-id="employee.id"
|
||||
t-att-data-emp-dir-subs="employee.direct_sub_count"
|
||||
t-att-data-emp-ind-subs="employee.indirect_sub_count"
|
||||
data-toggle="popover">
|
||||
data-bs-toggle="popover">
|
||||
<t t-esc="employee.indirect_sub_count"/>
|
||||
</span>
|
||||
|
||||
@@ -113,13 +113,13 @@
|
||||
</t>
|
||||
|
||||
<t t-name="hr_orgchart_emp_popover">
|
||||
<div class="popover o_org_chart_popup" role="tooltip"><div class="arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>
|
||||
<div class="popover o_org_chart_popup" role="tooltip"><div class="tooltip-arrow"></div><h3 class="popover-header"></h3><div class="popover-body"></div></div>
|
||||
</t>
|
||||
|
||||
<t t-name="hr_orgchart_emp_popover_content">
|
||||
<table class="table table-sm">
|
||||
<thead>
|
||||
<td class="text-right"><t t-esc="employee.direct_sub_count"/></td>
|
||||
<td class="text-end"><t t-esc="employee.direct_sub_count"/></td>
|
||||
<td>
|
||||
<a href="#" class="o_employee_sub_redirect" data-type='direct'
|
||||
t-att-data-employee-name="employee.name" t-att-data-employee-id="employee.id">
|
||||
@@ -128,7 +128,7 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="text-right">
|
||||
<td class="text-end">
|
||||
<t t-esc="employee.indirect_sub_count - employee.direct_sub_count"/>
|
||||
</td>
|
||||
<td>
|
||||
@@ -138,7 +138,7 @@
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="text-right"><t t-esc="employee.indirect_sub_count"/></td>
|
||||
<td class="text-end"><t t-esc="employee.indirect_sub_count"/></td>
|
||||
<td>
|
||||
<a href="#" class="o_employee_sub_redirect" data-type='total'
|
||||
t-att-data-employee-name="employee.name" t-att-data-employee-id="employee.id">
|
||||
@@ -153,7 +153,7 @@
|
||||
<div class="d-flex align-items-center">
|
||||
<span class="flex-shrink-0" t-att-style='"background-image:url(\"/web/image/hr.employee.public/" + employee.id + "/avatar_1024/\")"'/>
|
||||
<b class="flew-grow-1"><t t-esc="employee.name"/></b>
|
||||
<a href="#" class="ml-auto o_employee_redirect" t-att-data-employee-id="employee.id"><i class="fa fa-external-link" role="img" aria-label='Redirect' title="Redirect"></i></a>
|
||||
<a href="#" class="ms-auto o_employee_redirect" t-att-data-employee-id="employee.id"><i class="fa fa-external-link" role="img" aria-label='Redirect' title="Redirect"></i></a>
|
||||
</div>
|
||||
</t>
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
<field name="name" readonly="1"/>
|
||||
<field name="stage_id"/>
|
||||
<field name="priority" widget="priority" optional="show"/>
|
||||
<field name="partner_mobile" widget="phone" readonly="1" optional="show" class="text-right"/>
|
||||
<field name="partner_mobile" widget="phone" readonly="1" optional="show" class="text-end"/>
|
||||
<field name="categ_ids" widget="many2many_tags" options="{'color_field': 'color'}" optional="show"/>
|
||||
<field name="user_id" widget="many2one_avatar_user" optional="show"/>
|
||||
<field name="interviewer_id" widget="many2one_avatar_user" optional="hide"/>
|
||||
@@ -344,9 +344,9 @@
|
||||
<div class="ribbon ribbon-top-right" attrs="{'invisible': [('date_closed', '=', False)]}">
|
||||
<span class="bg-success">Hired</span>
|
||||
</div>
|
||||
<span class="badge badge-pill badge-danger float-end mr-4" attrs="{'invisible': ['|', ('active', '=', True), ('refuse_reason_id', '=', False)]}">Refused</span>
|
||||
<span class="badge rounded-pill text-bg-danger float-end me-4" attrs="{'invisible': ['|', ('active', '=', True), ('refuse_reason_id', '=', False)]}">Refused</span>
|
||||
<div class="o_dropdown_kanban dropdown">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu" data-display="static">
|
||||
<a class="dropdown-toggle o-no-caret btn" role="button" data-bs-toggle="dropdown" href="#" aria-label="Dropdown menu" title="Dropdown menu" data-bs-display="static">
|
||||
<span class="fa fa-ellipsis-v"/>
|
||||
</a>
|
||||
<div class="dropdown-menu" role="menu">
|
||||
@@ -373,7 +373,7 @@
|
||||
<t t-if="record.partner_mobile.raw_value"><i class="fa fa-mobile mr4" role="img" aria-label="Mobile" title="Mobile"/><field name="partner_mobile" widget="phone"/><br/></t>
|
||||
<div class="o_kanban_record_bottom mt4">
|
||||
<div class="oe_kanban_bottom_left">
|
||||
<div class="float-left mr4" groups="base.group_user">
|
||||
<div class="float-start mr4" groups="base.group_user">
|
||||
<field name="priority" widget="priority"/>
|
||||
</div>
|
||||
<div class="o_kanban_inline_block mr8">
|
||||
@@ -386,7 +386,7 @@
|
||||
<t t-esc="record.attachment_number.raw_value"/>
|
||||
</span>
|
||||
</a>
|
||||
<div class="o_kanban_state_with_padding ml-1 mr-2" >
|
||||
<div class="o_kanban_state_with_padding ms-1 me-2" >
|
||||
<field name="kanban_state" widget="kanban_state_selection"/>
|
||||
<field name="legend_normal" invisible="1"/>
|
||||
<field name="legend_blocked" invisible="1"/>
|
||||
@@ -811,7 +811,7 @@
|
||||
<field name="is_warning_visible" invisible="1"/>
|
||||
<span attrs="{'invisible': [('is_warning_visible', '=', False)]}">
|
||||
<span
|
||||
class="fa fa-exclamation-triangle text-danger pl-3">
|
||||
class="fa fa-exclamation-triangle text-danger ps-3">
|
||||
</span>
|
||||
<span class="text-danger">
|
||||
All applications will lose their hired date and hired status.
|
||||
@@ -967,13 +967,13 @@
|
||||
<div class="col-4">
|
||||
<h3 class="o_kanban_record_title"><field name="source_id"/></h3>
|
||||
</div>
|
||||
<div class="col-8 text-right">
|
||||
<div class="col-8 text-end">
|
||||
<div><field name="job_id"/></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="o_kanban_record_body mt-3">
|
||||
<div class="text-right">
|
||||
<div class="text-end">
|
||||
<field name="email" attrs="{'invisible': [('has_domain', '=', False)]}" widget="email"/>
|
||||
<button name="create_alias" class="btn btn-primary mb-2" type="object" attrs="{'invisible': ['|', ('has_domain', '=', False), ('email', '!=', False)]}">Generate Email</button>
|
||||
</div>
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
<div class="o_setting_right_pane" id="sms_settings">
|
||||
<div class="o_form_label">
|
||||
Send SMS
|
||||
<a href="https://www.odoo.com/documentation/master/applications/marketing/sms_marketing/pricing/pricing_and_faq.html" title="Documentation" class="ml-1 o_doc_link" target="_blank"></a>
|
||||
<a href="https://www.odoo.com/documentation/master/applications/marketing/sms_marketing/pricing/pricing_and_faq.html" title="Documentation" class="ms-1 o_doc_link" target="_blank"></a>
|
||||
</div>
|
||||
<div class="text-muted">
|
||||
Send texts to your contacts
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
attrs="{'invisible': ['|', ('skill_id', '=', False), ('skill_type_id', '=', False)]}"/>
|
||||
<div class="o_row"
|
||||
attrs="{'invisible': ['|', ('skill_id', '=', False), ('skill_type_id', '=', False)]}">
|
||||
<span class="col-4 pl-0">
|
||||
<span class="col-4 ps-0">
|
||||
<field name="skill_level_id"
|
||||
attrs="{'readonly': [('skill_id', '=', False)]}"
|
||||
context="{'from_skill_level_dropdown': True}" />
|
||||
|
||||
@@ -43,12 +43,14 @@
|
||||
|
||||
&.o_resume_timeline_cell {
|
||||
div {
|
||||
@include size($o-hrs-timeline-dot-size);
|
||||
width: $o-hrs-timeline-dot-size;
|
||||
height: $o-hrs-timeline-dot-size;
|
||||
}
|
||||
|
||||
&:before {
|
||||
@include o-position-absolute(0, $left: ($o-hrs-timeline-dot-size * .5 + $o-hrs-timeline-entry-padding));
|
||||
@include size(1px, 100%);
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
margin-left: -.01rem;
|
||||
background-color: $border-color;
|
||||
content: "";
|
||||
@@ -126,7 +128,7 @@
|
||||
.o_form_view.o_form_editable {
|
||||
.o_form_sheet .o_hr_skills_group {
|
||||
.o_group_name {
|
||||
background-color: gray('200');
|
||||
background-color: map-get($grays, '200');
|
||||
}
|
||||
|
||||
.o_resume_group_header .btn {
|
||||
@@ -144,7 +146,7 @@
|
||||
}
|
||||
|
||||
&.o_group_skills .o_group_name > b, .o_horizontal_separator {
|
||||
color: color-contrast(gray('200'));
|
||||
color: color-contrast(map-get($grays, '200'));
|
||||
font-style: italic;
|
||||
}
|
||||
}
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user