1
@@ -8,4 +8,12 @@
|
||||
.o_form_view:not(.o_field_highlight) .o_field_many2many_selection:focus-within .o_external_button,
|
||||
.o_form_view:not(.o_field_highlight) .o_field_many2many_selection:focus-within .o_dropdown_button {
|
||||
visibility: visible;
|
||||
}
|
||||
|
||||
.o_field_many2many_tags {
|
||||
.o_field_many2many_selection {
|
||||
.o_input:focus {
|
||||
background-image: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,24 +0,0 @@
|
||||
{
|
||||
"name": "Row Number in tree/list view",
|
||||
"version": "17.0.0.0.2",
|
||||
"summary": "Show row number in tree/list view.",
|
||||
"category": "Other",
|
||||
"depends": ["web"],
|
||||
"data": [],
|
||||
"assets": {
|
||||
"web.assets_backend": [
|
||||
"rowno_in_tree/static/src/views/list/list_render.xml",
|
||||
"rowno_in_tree/static/src/js/list_renderer.esm.js",
|
||||
]
|
||||
},
|
||||
"images": ["static/description/blue_banner.png"],
|
||||
"license": "LGPL-3",
|
||||
# Author
|
||||
"author": "Synodica Solutions Pvt. Ltd.",
|
||||
"website": "https://synodica.com",
|
||||
"maintainer": "Synodica Solutions Pvt. Ltd.",
|
||||
"support": "support@synodica.com",
|
||||
"installable": True,
|
||||
"application": True,
|
||||
"auto_install": False,
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
[build-system]
|
||||
requires = ["whool"]
|
||||
build-backend = "whool.buildapi"
|
||||
|
Before Width: | Height: | Size: 84 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 58 KiB |
|
Before Width: | Height: | Size: 37 KiB |
@@ -1,58 +0,0 @@
|
||||
<section class="oe_container">
|
||||
<div class="oe_row oe_spaced">
|
||||
<h2 class="oe_slogan">Show Number in List/Tree View</h2>
|
||||
<h3 class="oe_slogan">You can see the row number in tree/list view in Odoo backend list views.</h3>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_bg_img">
|
||||
<img class="oe_picture oe_screenshot" src="screen1.png">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container">
|
||||
<div class="oe_row oe_bg_img">
|
||||
<img class="oe_picture oe_screenshot" src="screen2.png">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row oe_bg_img">
|
||||
<img class="oe_picture oe_screenshot" src="screen3.png">
|
||||
</div>
|
||||
</section>
|
||||
<section class="oe_container">
|
||||
<div class="oe_row" style="text-align: center;">
|
||||
<h3 class="oe_slogan" style="opacity: 1;">You would love to have our other Apps!</h3>
|
||||
<br><br>
|
||||
<div width="100%">
|
||||
<div class="oe_bg_img" style="margin-bottom: 20px">
|
||||
<a href="https://apps.odoo.com/apps/modules/13.0/odoo_advance_search/" target="new"><img src="Odoo AdvanceSearch.png" style="margin-left:3%;border: solid;"></a>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
<a href="https://apps.odoo.com/apps/modules/12.0/connector_priceminister/" target="new"><img src="priceminister.png" style="width:20%;margin-left:3%;border: solid"></a>
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/product_approval_wf/" target="new"><img src="not-approved.png" style="width:20%;border:solid;margin-left:3%;"></a>
|
||||
<a href="https://apps.odoo.com/apps/modules/15.0/import_all_image_from_url/" target="new"><img src="import_img.png" style="width:20%;margin-left:3%;border: solid"></a>
|
||||
<a href="https://apps.odoo.com/apps/modules/16.0/delete_multiple_x2m_records/" target="new"><img src="multi_delete.png" style="width:20%;margin-left:3%;border: solid"></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section class="oe_container oe_dark">
|
||||
<div class="oe_row ">
|
||||
<div style="margin-bottom:10px;" class="oe_slogan text-center">
|
||||
<div class="oe_span12">
|
||||
<h3 class="text-center">Contact us for support, customization</h3>
|
||||
</div>
|
||||
<span>
|
||||
<a href="mailto:support@synodica.com">Write us</a>
|
||||
</span>
|
||||
</div>
|
||||
<div style="text-align:center">
|
||||
<span>Suggestions & Feedback to:</span> <a href="mailto:info@synodica.com">info@synodica.com </a>, <a href="mailto:nilesh@synodica.com">nilesh@synodica.com</a>, <a href="mailto:nikunj@synodica.com">nikunj@synodica.com</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 74 KiB |
|
Before Width: | Height: | Size: 116 KiB |
|
Before Width: | Height: | Size: 107 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 278 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 159 KiB |
@@ -1,24 +0,0 @@
|
||||
/* @odoo-module */
|
||||
|
||||
import {ListRenderer} from "@web/views/list/list_renderer";
|
||||
import {patch} from "@web/core/utils/patch";
|
||||
|
||||
patch(ListRenderer.prototype, {
|
||||
freezeColumnWidths() {
|
||||
const table = this.tableRef.el;
|
||||
const child_table = table.firstElementChild.firstElementChild;
|
||||
|
||||
if (!$(child_table.firstChild).hasClass("o_list_row_count_sheliya")) {
|
||||
const a = $(child_table).prepend(
|
||||
'<th class="o_list_row_number_header o_list_row_count_sheliya" style="width: 4% !important;">'
|
||||
);
|
||||
a.find("th.o_list_row_count_sheliya").html("#");
|
||||
}
|
||||
|
||||
const footer = table.querySelector("tfoot tr");
|
||||
if (footer && !$(footer.firstChild).hasClass("o_list_row_count_sheliya")) {
|
||||
$(footer).prepend('<td class="o_list_row_count_sheliya"></td>');
|
||||
}
|
||||
return super.freezeColumnWidths();
|
||||
},
|
||||
});
|
||||
@@ -1,47 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<template>
|
||||
|
||||
<t
|
||||
t-name="rowno_in_tree.add_number"
|
||||
t-inherit="web.ListRenderer.Rows"
|
||||
t-inherit-mode="extension"
|
||||
owl="1"
|
||||
>
|
||||
<xpath expr="//t[@t-foreach='list.records']" position="before">
|
||||
<t t-set="RowNumber" t-value="1" />
|
||||
</xpath>
|
||||
<xpath
|
||||
expr="//t[@t-call='{{ constructor.recordRowTemplate }}']"
|
||||
position="after"
|
||||
>
|
||||
<t t-set="RowNumber" t-value="RowNumber+1" />
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
<t
|
||||
t-name="rowno_in_tree.ListRenderer.RecordRowNumber"
|
||||
t-inherit="web.ListRenderer.RecordRow"
|
||||
t-inherit-mode="extension"
|
||||
owl="1"
|
||||
>
|
||||
<xpath expr="//tr/td[@t-if='hasSelectors']" position="before">
|
||||
<td tabindex="-1">
|
||||
<span t-esc="RowNumber" />
|
||||
</td>
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
<t
|
||||
t-name="rowno_in_tree.MoveListRenderer.RecordRowNumber"
|
||||
t-inherit="stock.MovesListRenderer.RecordRow"
|
||||
t-inherit-mode="extension"
|
||||
owl="1"
|
||||
>
|
||||
<xpath expr="//tr/td[@t-if='hasSelectors']" position="before">
|
||||
<td tabindex="-1">
|
||||
<span t-esc="RowNumber" />
|
||||
</td>
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
</template>
|
||||
@@ -62,8 +62,9 @@
|
||||
"assets": {
|
||||
"web.assets_backend": [
|
||||
# Custum Library
|
||||
"tree_view_advanced_filter/static/src/js/*.js",
|
||||
"tree_view_advanced_filter/static/src/css/main.scss",
|
||||
"tree_view_advanced_filter/static/src/libs/**/*",
|
||||
"tree_view_advanced_filter/static/src/tree_view_advanced_filter/**/*",
|
||||
"tree_view_advanced_filter/static/src/web_list_num/**/*",
|
||||
]
|
||||
},
|
||||
"images": ["static/description/banner.jpg"],
|
||||
|
||||
@@ -0,0 +1,410 @@
|
||||
.daterangepicker {
|
||||
position: absolute;
|
||||
color: inherit;
|
||||
background-color: #fff;
|
||||
border-radius: 4px;
|
||||
border: 1px solid #ddd;
|
||||
width: 278px;
|
||||
max-width: none;
|
||||
padding: 0;
|
||||
margin-top: 7px;
|
||||
top: 100px;
|
||||
left: 20px;
|
||||
z-index: 3001;
|
||||
display: none;
|
||||
font-family: arial;
|
||||
font-size: 15px;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
.daterangepicker:before, .daterangepicker:after {
|
||||
position: absolute;
|
||||
display: inline-block;
|
||||
border-bottom-color: rgba(0, 0, 0, 0.2);
|
||||
content: '';
|
||||
}
|
||||
|
||||
.daterangepicker:before {
|
||||
top: -7px;
|
||||
border-right: 7px solid transparent;
|
||||
border-left: 7px solid transparent;
|
||||
border-bottom: 7px solid #ccc;
|
||||
}
|
||||
|
||||
.daterangepicker:after {
|
||||
top: -6px;
|
||||
border-right: 6px solid transparent;
|
||||
border-bottom: 6px solid #fff;
|
||||
border-left: 6px solid transparent;
|
||||
}
|
||||
|
||||
.daterangepicker.opensleft:before {
|
||||
right: 9px;
|
||||
}
|
||||
|
||||
.daterangepicker.opensleft:after {
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.daterangepicker.openscenter:before {
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.daterangepicker.openscenter:after {
|
||||
left: 0;
|
||||
right: 0;
|
||||
width: 0;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
.daterangepicker.opensright:before {
|
||||
left: 9px;
|
||||
}
|
||||
|
||||
.daterangepicker.opensright:after {
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
.daterangepicker.drop-up {
|
||||
margin-top: -7px;
|
||||
}
|
||||
|
||||
.daterangepicker.drop-up:before {
|
||||
top: initial;
|
||||
bottom: -7px;
|
||||
border-bottom: initial;
|
||||
border-top: 7px solid #ccc;
|
||||
}
|
||||
|
||||
.daterangepicker.drop-up:after {
|
||||
top: initial;
|
||||
bottom: -6px;
|
||||
border-bottom: initial;
|
||||
border-top: 6px solid #fff;
|
||||
}
|
||||
|
||||
.daterangepicker.single .daterangepicker .ranges, .daterangepicker.single .drp-calendar {
|
||||
float: none;
|
||||
}
|
||||
|
||||
.daterangepicker.single .drp-selected {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.daterangepicker.show-calendar .drp-calendar {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.daterangepicker.show-calendar .drp-buttons {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.daterangepicker.auto-apply .drp-buttons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar {
|
||||
display: none;
|
||||
max-width: 270px;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.left {
|
||||
padding: 8px 0 8px 8px;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.right {
|
||||
padding: 8px;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.single .calendar-table {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table .next span, .daterangepicker .calendar-table .prev span {
|
||||
color: #fff;
|
||||
border: solid black;
|
||||
border-width: 0 2px 2px 0;
|
||||
border-radius: 0;
|
||||
display: inline-block;
|
||||
padding: 3px;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table .next span {
|
||||
transform: rotate(-45deg);
|
||||
-webkit-transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table .prev span {
|
||||
transform: rotate(135deg);
|
||||
-webkit-transform: rotate(135deg);
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table th, .daterangepicker .calendar-table td {
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
vertical-align: middle;
|
||||
min-width: 32px;
|
||||
width: 32px;
|
||||
height: 24px;
|
||||
line-height: 24px;
|
||||
font-size: 12px;
|
||||
border-radius: 4px;
|
||||
border: 1px solid transparent;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table {
|
||||
border: 1px solid #fff;
|
||||
border-radius: 4px;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table table {
|
||||
width: 100%;
|
||||
margin: 0;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.daterangepicker td.available:hover, .daterangepicker th.available:hover {
|
||||
background-color: #eee;
|
||||
border-color: transparent;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.daterangepicker td.week, .daterangepicker th.week {
|
||||
font-size: 80%;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.daterangepicker td.off, .daterangepicker td.off.in-range, .daterangepicker td.off.start-date, .daterangepicker td.off.end-date {
|
||||
background-color: #fff;
|
||||
border-color: transparent;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.daterangepicker td.in-range {
|
||||
background-color: #ebf4f8;
|
||||
border-color: transparent;
|
||||
color: #000;
|
||||
border-radius: 0;
|
||||
}
|
||||
|
||||
.daterangepicker td.start-date {
|
||||
border-radius: 4px 0 0 4px;
|
||||
}
|
||||
|
||||
.daterangepicker td.end-date {
|
||||
border-radius: 0 4px 4px 0;
|
||||
}
|
||||
|
||||
.daterangepicker td.start-date.end-date {
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.daterangepicker td.active, .daterangepicker td.active:hover {
|
||||
background-color: #357ebd;
|
||||
border-color: transparent;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.daterangepicker th.month {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.daterangepicker td.disabled, .daterangepicker option.disabled {
|
||||
color: #999;
|
||||
cursor: not-allowed;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.daterangepicker select.monthselect, .daterangepicker select.yearselect {
|
||||
font-size: 12px;
|
||||
padding: 1px;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
.daterangepicker select.monthselect {
|
||||
margin-right: 2%;
|
||||
width: 56%;
|
||||
}
|
||||
|
||||
.daterangepicker select.yearselect {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.daterangepicker select.hourselect, .daterangepicker select.minuteselect, .daterangepicker select.secondselect, .daterangepicker select.ampmselect {
|
||||
width: 50px;
|
||||
margin: 0 auto;
|
||||
background: #eee;
|
||||
border: 1px solid #eee;
|
||||
padding: 2px;
|
||||
outline: 0;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-time {
|
||||
text-align: center;
|
||||
margin: 4px auto 0 auto;
|
||||
line-height: 30px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-time select.disabled {
|
||||
color: #ccc;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-buttons {
|
||||
clear: both;
|
||||
text-align: right;
|
||||
padding: 8px;
|
||||
border-top: 1px solid #ddd;
|
||||
display: none;
|
||||
line-height: 12px;
|
||||
vertical-align: middle;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-selected {
|
||||
display: inline-block;
|
||||
font-size: 12px;
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-buttons .btn {
|
||||
margin-left: 8px;
|
||||
font-size: 12px;
|
||||
font-weight: bold;
|
||||
padding: 4px 8px;
|
||||
}
|
||||
|
||||
.daterangepicker.show-ranges.single.rtl .drp-calendar.left {
|
||||
border-right: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.daterangepicker.show-ranges.single.ltr .drp-calendar.left {
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.daterangepicker.show-ranges.rtl .drp-calendar.right {
|
||||
border-right: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.daterangepicker.show-ranges.ltr .drp-calendar.left {
|
||||
border-left: 1px solid #ddd;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges {
|
||||
float: none;
|
||||
text-align: left;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.daterangepicker.show-calendar .ranges {
|
||||
margin-top: 8px;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges ul {
|
||||
list-style: none;
|
||||
margin: 0 auto;
|
||||
padding: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges li {
|
||||
font-size: 12px;
|
||||
padding: 8px 12px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges li:hover {
|
||||
background-color: #eee;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges li.active {
|
||||
background-color: #08c;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
/* Larger Screen Styling */
|
||||
@media (min-width: 564px) {
|
||||
.daterangepicker {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges ul {
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.daterangepicker.single .ranges ul {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.daterangepicker.single .drp-calendar.left {
|
||||
clear: none;
|
||||
}
|
||||
|
||||
.daterangepicker.single .ranges, .daterangepicker.single .drp-calendar {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.daterangepicker {
|
||||
direction: ltr;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.left {
|
||||
clear: left;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.left .calendar-table {
|
||||
border-right: none;
|
||||
border-top-right-radius: 0;
|
||||
border-bottom-right-radius: 0;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.right {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.right .calendar-table {
|
||||
border-left: none;
|
||||
border-top-left-radius: 0;
|
||||
border-bottom-left-radius: 0;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.left .calendar-table {
|
||||
padding-right: 8px;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges, .daterangepicker .drp-calendar {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
|
||||
@media (min-width: 730px) {
|
||||
.daterangepicker .ranges {
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges {
|
||||
float: left;
|
||||
}
|
||||
|
||||
.daterangepicker.rtl .ranges {
|
||||
float: right;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.left {
|
||||
clear: none !important;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,131 @@
|
||||
//! moment.js locale configuration
|
||||
//! locale : Chinese (China) [zh-cn]
|
||||
//! author : suupic : https://github.com/suupic
|
||||
//! author : Zeno Zeng : https://github.com/zenozeng
|
||||
//! author : uu109 : https://github.com/uu109
|
||||
|
||||
;(function (global, factory) {
|
||||
typeof exports === 'object' && typeof module !== 'undefined'
|
||||
&& typeof require === 'function' ? factory(require('../moment')) :
|
||||
typeof define === 'function' && define.amd ? define(['../moment'], factory) :
|
||||
factory(global.moment)
|
||||
}(this, (function (moment) { 'use strict';
|
||||
|
||||
//! moment.js locale configuration
|
||||
|
||||
var zhCn = moment.defineLocale('zh-cn', {
|
||||
months: '一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月'.split(
|
||||
'_'
|
||||
),
|
||||
monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(
|
||||
'_'
|
||||
),
|
||||
weekdays: '星期日_星期一_星期二_星期三_星期四_星期五_星期六'.split('_'),
|
||||
weekdaysShort: '周日_周一_周二_周三_周四_周五_周六'.split('_'),
|
||||
weekdaysMin: '日_一_二_三_四_五_六'.split('_'),
|
||||
longDateFormat: {
|
||||
LT: 'HH:mm',
|
||||
LTS: 'HH:mm:ss',
|
||||
L: 'YYYY/MM/DD',
|
||||
LL: 'YYYY年M月D日',
|
||||
LLL: 'YYYY年M月D日Ah点mm分',
|
||||
LLLL: 'YYYY年M月D日ddddAh点mm分',
|
||||
l: 'YYYY/M/D',
|
||||
ll: 'YYYY年M月D日',
|
||||
lll: 'YYYY年M月D日 HH:mm',
|
||||
llll: 'YYYY年M月D日dddd HH:mm',
|
||||
},
|
||||
meridiemParse: /凌晨|早上|上午|中午|下午|晚上/,
|
||||
meridiemHour: function (hour, meridiem) {
|
||||
if (hour === 12) {
|
||||
hour = 0;
|
||||
}
|
||||
if (meridiem === '凌晨' || meridiem === '早上' || meridiem === '上午') {
|
||||
return hour;
|
||||
} else if (meridiem === '下午' || meridiem === '晚上') {
|
||||
return hour + 12;
|
||||
} else {
|
||||
// '中午'
|
||||
return hour >= 11 ? hour : hour + 12;
|
||||
}
|
||||
},
|
||||
meridiem: function (hour, minute, isLower) {
|
||||
var hm = hour * 100 + minute;
|
||||
if (hm < 600) {
|
||||
return '凌晨';
|
||||
} else if (hm < 900) {
|
||||
return '早上';
|
||||
} else if (hm < 1130) {
|
||||
return '上午';
|
||||
} else if (hm < 1230) {
|
||||
return '中午';
|
||||
} else if (hm < 1800) {
|
||||
return '下午';
|
||||
} else {
|
||||
return '晚上';
|
||||
}
|
||||
},
|
||||
calendar: {
|
||||
sameDay: '[今天]LT',
|
||||
nextDay: '[明天]LT',
|
||||
nextWeek: function (now) {
|
||||
if (now.week() !== this.week()) {
|
||||
return '[下]dddLT';
|
||||
} else {
|
||||
return '[本]dddLT';
|
||||
}
|
||||
},
|
||||
lastDay: '[昨天]LT',
|
||||
lastWeek: function (now) {
|
||||
if (this.week() !== now.week()) {
|
||||
return '[上]dddLT';
|
||||
} else {
|
||||
return '[本]dddLT';
|
||||
}
|
||||
},
|
||||
sameElse: 'L',
|
||||
},
|
||||
dayOfMonthOrdinalParse: /\d{1,2}(日|月|周)/,
|
||||
ordinal: function (number, period) {
|
||||
switch (period) {
|
||||
case 'd':
|
||||
case 'D':
|
||||
case 'DDD':
|
||||
return number + '日';
|
||||
case 'M':
|
||||
return number + '月';
|
||||
case 'w':
|
||||
case 'W':
|
||||
return number + '周';
|
||||
default:
|
||||
return number;
|
||||
}
|
||||
},
|
||||
relativeTime: {
|
||||
future: '%s后',
|
||||
past: '%s前',
|
||||
s: '几秒',
|
||||
ss: '%d 秒',
|
||||
m: '1 分钟',
|
||||
mm: '%d 分钟',
|
||||
h: '1 小时',
|
||||
hh: '%d 小时',
|
||||
d: '1 天',
|
||||
dd: '%d 天',
|
||||
w: '1 周',
|
||||
ww: '%d 周',
|
||||
M: '1 个月',
|
||||
MM: '%d 个月',
|
||||
y: '1 年',
|
||||
yy: '%d 年',
|
||||
},
|
||||
week: {
|
||||
// GB/T 7408-1994《数据元和交换格式·信息交换·日期和时间表示法》与ISO 8601:1988等效
|
||||
dow: 1, // Monday is the first day of the week.
|
||||
doy: 4, // The week that contains Jan 4th is the first week of the year.
|
||||
},
|
||||
});
|
||||
|
||||
return zhCn;
|
||||
|
||||
})));
|
||||
@@ -26,10 +26,14 @@ export const ListRendererCust = {
|
||||
},
|
||||
|
||||
_renderSearchPanel: async function () {
|
||||
await loadJS("https://cdn.jsdelivr.net/jquery/latest/jquery.min.js")
|
||||
await loadJS("https://cdn.jsdelivr.net/momentjs/latest/moment.min.js")
|
||||
await loadJS("https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js")
|
||||
await loadCSS("https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css")
|
||||
// await loadJS("https://cdn.jsdelivr.net/jquery/latest/jquery.min.js")
|
||||
// await loadJS("https://cdn.jsdelivr.net/momentjs/latest/moment.min.js")
|
||||
// await loadJS("https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.min.js")
|
||||
// await loadCSS("https://cdn.jsdelivr.net/npm/daterangepicker/daterangepicker.css")
|
||||
await loadJS("/tree_view_advanced_filter/static/src/libs/jquery.min.js");
|
||||
await loadJS("/tree_view_advanced_filter/static/src/libs/daterangepicker.min.js");
|
||||
await loadCSS("/tree_view_advanced_filter/static/src/libs/daterangepicker.css");
|
||||
await loadJS("/tree_view_advanced_filter/static/src/libs/moment/moment.min.js");
|
||||
var List = this.props.list;
|
||||
const bm_params = List.model.__bm_load_params__;
|
||||
const rootRef = this.rootRef.el
|
||||
@@ -62,6 +66,8 @@ export const ListRendererCust = {
|
||||
});
|
||||
|
||||
var $tr1 = $('<tr>').append(columns.map(columns => this._renderHeaderCellSearch(columns)));
|
||||
// 添加行号占位td
|
||||
$tr1.prepend($('<td>').addClass('web_list_num'));
|
||||
if (this.hasSelectors) {
|
||||
$tr1.prepend($('<td>').addClass('o_list_record_selector'));
|
||||
}
|
||||
@@ -156,7 +162,7 @@ export const ListRendererCust = {
|
||||
}
|
||||
|
||||
const selection_input = '<select class="input_text input_select" type="select" name=' + name + ' data_name=' + name + ' data_text=' + string + ' placeholder=' + description + ' style="height:25px;">'
|
||||
var option = '<option selected="selected" class="text-muted" value> -- Select -- </option>';
|
||||
var option = '<option selected="selected" class="text-muted" value> -- 选择 -- </option>';
|
||||
$.each(field.selection, function (index, value) {
|
||||
option += '<option value="' + value[0] + '">' + value[1] + '</option>'
|
||||
$(selection_input).add('<option value="' + value[0] + '">' + value[1] + '</option>')
|
||||
@@ -264,7 +270,7 @@ export const ListRendererCust = {
|
||||
var $input_date1 = $('<input>').attr({
|
||||
type: 'text',
|
||||
name: name,
|
||||
placeholder: 'Date Range',
|
||||
placeholder: '日期选择',
|
||||
autocomplete: "autocomplete",
|
||||
width: '150px',
|
||||
'class': 'input_text',
|
||||
@@ -280,7 +286,12 @@ export const ListRendererCust = {
|
||||
name: name,
|
||||
'class': 'remove_button fa fa-remove hidden_button',
|
||||
});
|
||||
$input_date1.daterangepicker();
|
||||
$input_date1.daterangepicker({
|
||||
locale: {
|
||||
applyLabel: '应用',
|
||||
cancelLabel: '取消',
|
||||
},
|
||||
});
|
||||
$input_date1.on('apply.daterangepicker', function (ev, picker) {
|
||||
$input_date1.val(picker.startDate.format('YYYY-MM-DD') + '/' + picker.endDate.format('YYYY-MM-DD'));
|
||||
var e = $.Event("keypress", {
|
||||
@@ -1,4 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
# from . import controllers
|
||||
# from . import models
|
||||
@@ -1,26 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
"name": "Web List Number",
|
||||
"summary": "列表序号 List Number, Row Number, Record Number",
|
||||
"version": "17.0.0.1",
|
||||
"category": "clearzZ/clearzZ",
|
||||
"website": "mailto:1801226631@qq.com",
|
||||
"author": "clearzZ",
|
||||
"license": "AGPL-3",
|
||||
"depends": ["base", "web"],
|
||||
"sequence": 4,
|
||||
"installable": True,
|
||||
"application": True,
|
||||
"auto_install": False,
|
||||
'data': [
|
||||
# 'security/ir.model.access.csv',
|
||||
# 'views/views.xml',
|
||||
# 'views/templates.xml',
|
||||
],
|
||||
'assets': {
|
||||
'web.assets_backend': [
|
||||
'web_list_number/static/src/views/list/*.*',
|
||||
]
|
||||
},
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 6.2 KiB |
@@ -1 +0,0 @@
|
||||
<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="12552"><path d="M917.333333 277.333333H277.333333V192h640v85.333333z m0 277.333334H277.333333v-85.333334h640v85.333334z m0 277.333333H277.333333v-85.333333h640v85.333333zM118.997333 278.613333v36.138667h107.541334V278.613333H195.498667V161.173333H165.290667L112.128 191.296l16.256 32.298667 23.765333-13.589334v68.586667H118.997333zM114.56 559.018667v31.808h108.181333V554.666667H169.877333l20.053334-20.053334c9.685333-9.386667 16.725333-18.346667 20.949333-26.837333 4.245333-8.618667 6.378667-17.621333 6.378667-27.008 0-14.634667-4.8-26.133333-14.592-34.133333-9.6-7.936-23.296-11.733333-40.768-11.733334-10.090667 0-19.925333 1.536-29.44 4.565334a77.44 77.44 0 0 0-24.170667 12.416l-1.429333 1.109333 13.930666 32.725333 2.389334-1.813333c5.610667-4.245333 11.178667-7.36 16.704-9.386667 5.696-2.026667 11.2-3.008 16.512-3.008 6.613333 0 11.093333 1.28 13.930666 3.498667 2.709333 2.133333 4.224 5.376 4.224 10.197333 0 3.754667-1.066667 7.594667-3.285333 11.52l-0.042667 0.042667c-2.112 3.968-5.824 8.874667-11.264 14.72L114.56 559.04zM221.482667 818.005333c0-9.450667-2.517333-17.642667-7.658667-24.426666a36.309333 36.309333 0 0 0-15.189333-11.946667 35.328 35.328 0 0 0 12.501333-11.093333 36.906667 36.906667 0 0 0 6.528-21.824c0-8.597333-2.304-16.256-6.954667-22.890667a44.288 44.288 0 0 0-19.584-15.146667c-8.234667-3.541333-17.792-5.269333-28.586666-5.269333-10.24 0-20.330667 1.493333-30.250667 4.522667-9.770667 2.88-17.813333 6.805333-24.042667 11.84l-1.386666 1.130666 13.909333 31.701334 2.346667-1.642667c5.888-4.096 12.010667-7.232 18.410666-9.386667l0.042667-0.042666c6.4-2.304 12.416-3.434667 18.005333-3.434667 5.696 0 9.685333 1.386667 12.373334 3.818667l0.064 0.064c2.752 2.282667 4.224 5.589333 4.224 10.24 0 4.288-1.493333 7.04-4.202667 8.789333-2.944 1.877333-8 3.008-15.637333 3.008h-21.546667v34.688H160.213333c7.893333 0 13.077333 1.194667 16 3.2 2.688 1.813333 4.245333 4.906667 4.245334 9.877333 0 5.418667-1.642667 8.768-4.48 10.730667l-0.042667 0.021333c-2.88 2.090667-8.234667 3.370667-16.576 3.370667-12.672 0-25.472-4.266667-38.4-12.906667l-2.346667-1.557333-13.866666 31.637333 1.365333 1.130667c6.08 5.034667 14.144 9.024 24.042667 12.053333h0.042666c9.941333 2.88 20.288 4.330667 31.061334 4.330667 18.176 0 32.810667-3.797333 43.626666-11.648 11.029333-8.064 16.597333-19.114667 16.597334-32.938667z" p-id="12553"></path></svg>
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
|
Before Width: | Height: | Size: 120 KiB |
|
Before Width: | Height: | Size: 119 KiB |
@@ -1,42 +0,0 @@
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport"
|
||||
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<title>Document</title>
|
||||
</head>
|
||||
<body>
|
||||
<div class="d-flex p-3 justify-content-center align-items-center flex-column flex-nowrap">
|
||||
<div class="d-flex justify-content-center w-100" style="border-bottom:solid 1px #dedede;">
|
||||
<h1>Web List Number</h1>
|
||||
</div>
|
||||
<div class="d-flex w-100 justify-content-center" style="color: white;padding: 20px;font-size: 20px">
|
||||
<div style="background-color: #7C7BAD;padding: 10px;border-radius: 0.25rem;margin: 0 20px 0 20px;">
|
||||
<i class="fa fa-check"/>Community
|
||||
</div>
|
||||
<div style="background-color: #875A7B;padding: 10px;border-radius: 0.25rem;margin: 0 20px 0 20px;">
|
||||
<i class="fa fa-check"/>Enterprise
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<h1 style="margin: 10px;padding: 10px">List View</h1>
|
||||
<img class="img-fluid img-thumbnail mb16" src="img2.png" alt="">
|
||||
</div>
|
||||
<div>
|
||||
<h1 style="margin: 10px;padding: 10px">Form View X2many Field List</h1>
|
||||
<img class="img-fluid img-thumbnail mb16" src="img1.png" alt="">
|
||||
</div>
|
||||
<div class="img-fluid img-thumbnail mb16 d-flex flex-column" style="width: 100%;text-align: center;padding: 20px">
|
||||
<h1 style="margin: 10px">If you encounter custom views causing the serial number to not appear.</h1>
|
||||
<h1 style="margin: 10px">
|
||||
<a class="btn btn-outline-info btn-info" style="color: white;padding: 10px;font-size: 20px" href="mailto:1801226631@qq.com">
|
||||
<i class="fa fa-envelope"/>
|
||||
1801226631@qq.com
|
||||
</a>
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||