Merge pull request !141 from 李鹏宇/dev
This commit is contained in:
李鹏宇
2024-08-17 06:11:09 +00:00
committed by Gitee
91 changed files with 557 additions and 5775 deletions
-50
View File
@@ -1,50 +0,0 @@
# sphinx build directories
_build/
# dotfiles
.*
!.gitignore
!.github
!.mailmap
# compiled python files
*.py[co]
__pycache__/
# setup.py egg_info
*.egg-info
# emacs backup files
*~
# hg stuff
*.orig
status
# odoo filestore
odoo/filestore
# maintenance migration scripts
odoo/addons/base/maintenance
# generated for windows installer?
install/win32/*.bat
install/win32/meta.py
# needed only when building for win32
setup/win32/static/less/
setup/win32/static/wkhtmltopdf/
setup/win32/static/postgresql*.exe
# js tooling
node_modules
package-lock.json
package.json
.husky
# various virtualenv
/bin/
/build/
/dist/
/include/
/lib/
/man/
/share/
/src/
# avoid adding it after generation from tsconfig command
tsconfig.json
-64
View File
@@ -1,64 +0,0 @@
# -*- coding: utf-8 -*-
{
'name': "anita_theme_base",
'summary': """
Base for themes, it support free login for odoo
""",
'description': """
Odoo Login,
Odoo login page,
Odoo login theme
Login,
Anita Theme Base,
Anita Theme,
Awesome Theme,
Multi tab theme,
Pop form theme
""",
'author': "openErpNext",
'website': "https://base.openerpnext.com",
'live_test_url': 'https://base.openerpnext.com',
'license': 'OPL-1',
'images': ['static/description/screen_shot.png', 'static/description/banner.png'],
'support': 'codercrax@gmail.com',
'maintainer': 'openErpNext',
'category': 'Theme/Backend',
'version': '17.0.0.2',
'installable': True,
'application': True,
'auto_install': False,
'depends': ['base', 'web'],
'data': [],
'assets': {
'web.assets_backend': [
'anita_theme_base/static/css/anita_variables.scss',
'anita_theme_base/static/css/mixins/_flex.scss',
'anita_theme_base/static/css/mixins/_box_shadow.scss',
'anita_theme_base/static/css/mixins/_clearfix.scss',
'anita_theme_base/static/css/mixins/_float.scss',
'anita_theme_base/static/css/mixins/_hover.scss',
'anita_theme_base/static/css/mixins/_gradients.scss',
# 'anita_theme_base/static/css/mixins/_buttons.scss',
'anita_theme_base/static/css/anita_functions.scss',
'anita_theme_base/static/css/anita_form_controls.scss',
# 'anita_theme_base/static/css/anita_buttons.scss',
# 'anita_theme_base/static/css/anita_form_view.scss',
# 'anita_theme_base/static/css/anita_list_view.scss',
'anita_theme_base/static/css/anita_scroll.scss',
'anita_theme_base/static/css/anita_misc.scss',
]
}
}
-3
View File
@@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
from . import anita_view_extend
@@ -1,32 +0,0 @@
# -*- coding: utf-8 -*-
import inspect
from odoo import models, _
from odoo.exceptions import AccessError
from odoo.models import check_method_name
class AnitaViewExtend(models.Model):
'''
anita view extend current_theme_mode
'''
_inherit = 'ir.ui.view'
def _render_template(self, template, values=None):
"""
rewrite to change the title
:param template:
:param values:
:param engine:
:return:
"""
if template in ['web.login', 'web.webclient_bootstrap']:
if not values:
values = {}
values["title"] = self.env['ir.config_parameter'].sudo().get_param(
"anita_theme_base.window_default_title", "openErpNext")
return super(AnitaViewExtend, self)._render_template(
template, values=values)
-1
View File
@@ -1 +0,0 @@
this is base for anita themes
@@ -1,89 +0,0 @@
// Make the div behave like a button
.btn-group {
// Prevent double borders when buttons are next to each other
.btn + .btn,
.btn + .btn-group,
.btn-group + .btn,
.btn-group + .btn-group {
margin-left: -$btn-border-width;
}
}
.btn-group {
// Reset rounded corners
> .btn:not(:last-child):not(.dropdown-toggle),
> .btn-group:not(:last-child) > .btn {
@include border-right-radius(0);
}
> .btn:not(:first-child),
> .btn-group:not(:first-child) > .btn {
@include border-left-radius(0);
}
}
// Sizing
//
// Remix the default button sizing classes into new ones for easier manipulation.
.btn-group-sm > .btn { @extend .btn-sm; }
.btn-group-lg > .btn { @extend .btn-lg; }
//
// Split button dropdowns
//
.dropdown-toggle-split {
padding-right: $btn-padding-x * .75;
padding-left: $btn-padding-x * .75;
}
.btn-sm + .dropdown-toggle-split {
padding-right: $btn-padding-x-sm * .75;
padding-left: $btn-padding-x-sm * .75;
}
.btn-lg + .dropdown-toggle-split {
padding-right: $btn-padding-x-lg * .75;
padding-left: $btn-padding-x-lg * .75;
}
// The clickable button for toggling the menu
// Set the same inset shadow as the :active state
.btn-group.show .dropdown-toggle {
@include box-shadow($btn-active-box-shadow);
// Show no shadow for `.btn-link` since it has no other button styles.
&.btn-link {
@include box-shadow(none);
}
}
//
// Vertical button groups
//
.btn-group-vertical {
> .btn + .btn,
> .btn + .btn-group,
> .btn-group + .btn,
> .btn-group + .btn-group {
margin-top: -$btn-border-width;
}
// Reset rounded corners
> .btn:not(:last-child):not(.dropdown-toggle),
> .btn-group:not(:last-child) > .btn {
@include border-bottom-radius(0);
}
> .btn:not(:first-child),
> .btn-group:not(:first-child) > .btn {
@include border-top-radius(0);
}
}
@@ -1,140 +0,0 @@
.btn {
font-weight: $btn-font-weight;
// font-family: $btn-font-family;
border: $input-btn-border-width solid transparent;
@include button-size(
$btn-padding-y,
$btn-padding-x,
$btn-font-size,
$input-btn-line-height,
$btn-border-radius
);
@include transition($btn-transition);
&:hover,
&.hover {
cursor: pointer;
}
&:focus,
&.focus {
@include box-shadow(none);
}
&:not([disabled]):not(.disabled):active,
&:not([disabled]):not(.disabled).active {
background-image: none;
@include box-shadow(none);
}
&.btn-squared {
border-radius: 0;
}
&.btn-pill {
// border-radius: $btn-pill-border-radius;
}
}
//
// Alternate buttons
//
@each $color, $value in $theme-colors {
.btn-#{$color} {
@include button-variant($value);
}
}
// White buttons
.btn-white {
@include button-variant($white);
}
// Black buttons
.btn-black {
@include button-variant($black);
}
// Outlined default buttons
@each $color, $value in $theme-colors {
.btn-outline-#{$color} {
@include button-outline-variant($value);
}
}
// White outline buttons
.btn-outline-white {
@include button-outline-variant($white);
color: $white;
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active {
color: $black;
}
}
// Black outline buttons
.btn-outline-black {
@include button-outline-variant($black);
color: $black;
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active {
color: $white;
}
}
// Make a button look and behave like a link
.btn-link {
font-weight: $font-weight-normal;
color: $link-color;
@include hover {
color: $link-hover-color;
text-decoration: $link-hover-decoration;
}
&:focus,
&.focus {
text-decoration: $link-hover-decoration;
}
&:disabled {
color: $btn-link-disabled-color;
}
}
//
// Button Sizes
//
.btn-lg {
@include button-size(
$btn-padding-y-lg,
$btn-padding-x-lg,
$btn-font-size-lg,
$btn-line-height-lg,
$btn-border-radius-lg
);
}
.btn-sm {
@include button-size(
$btn-padding-y-sm,
$btn-padding-x-sm,
$btn-font-size-sm,
$btn-line-height-sm,
$btn-border-radius-sm
);
}
// Vertically space out multiple block buttons
.btn-block + .btn-block {
margin-top: $btn-block-spacing-y;
}
@@ -1,382 +0,0 @@
// Checkboxes and radios
.custom-control {
min-height: (1 * $line-height-base);
padding-left: $custom-control-gutter;
&:hover {
cursor: pointer;
}
.custom-control-label:before {
pointer-events: all;
}
}
.custom-control-inline {
margin-right: $custom-control-spacer-x;
}
.custom-control-input {
&:checked~.custom-control-label::before {
color: $custom-control-indicator-checked-color;
border-color: transparent;
// @include gradient-bg($custom-control-indicator-checked-bg);
box-shadow: $custom-control-indicator-checked-box-shadow;
}
&:focus~.custom-control-label::before {
// the mixin is not used here to make sure there is feedback
// box-shadow: $custom-control-indicator-focus-box-shadow;
}
&:active~.custom-control-label::before {
color: $custom-control-indicator-active-color;
background-color: $custom-control-indicator-active-bg;
box-shadow: $custom-control-indicator-active-box-shadow;
}
&:disabled {
~.custom-control-label {
color: $custom-control-description-disabled-color; // $custom-control-label-disabled-color
&:hover {
cursor: not-allowed;
}
&::before {
background-color: $custom-control-indicator-disabled-bg;
}
}
}
}
// Custom control indicators
// Build the custom controls out of psuedo-elements.
.custom-control-label {
position: static;
&:hover {
cursor: pointer;
}
// Background-color and (when enabled) gradient
&::before {
top: ($line-height-base - $custom-control-indicator-size) / 2.0;
left: 0 !important;
width: $custom-control-indicator-size;
height: $custom-control-indicator-size;
background-color: $custom-control-indicator-bg;
border: $custom-control-indicator-border;
transition: all 250ms cubic-bezier(.27, .01, .38, 1.06);
box-shadow: $custom-control-indicator-box-shadow;
}
// Foreground (icon)
&::after {
top: ($line-height-base - $custom-control-indicator-size) / 2.0;
width: $custom-control-indicator-size;
height: $custom-control-indicator-size;
background-size: $custom-control-indicator-bg-size;
}
}
// Custom Switches (core)
// Adjustments for the default Bootstrap custom switches.
.custom-switch {
padding-left: $custom-switch-padding-left;
.custom-control-label {
position: relative;
::before {
left: -2.25rem !important;
width: 1.75rem !important;
}
}
}
// Checkboxes
.custom-checkbox {
.custom-control-label::before {
@include border-radius($custom-checkbox-indicator-border-radius);
}
.custom-control-label::after {
content: '';
position: absolute;
top: ($custom-control-indicator-size - 0.9166rem) / 2.0;
left: ($custom-control-indicator-size - 0.4166rem) / 2.0;
width: 5px;
height: 11px;
opacity: 0;
transform: rotate(45deg) scale(0);
border-right: 2px solid $white;
border-bottom: 2px solid $white;
transition: $custom-checkbox-indicator-transition;
transition-delay: 100ms;
}
.custom-control-input:checked~.custom-control-label {
// &::before {
// background-image: none;
// }
&::after {
opacity: 1;
transform: rotate(45deg) scale(1);
background-image: $custom-checkbox-indicator-icon-checked;
}
}
.custom-control-input:indeterminate~.custom-control-label {
&::before {
border: none;
// @include gradient-bg($custom-checkbox-indicator-indeterminate-bg);
box-shadow: $custom-checkbox-indicator-indeterminate-box-shadow;
}
&::after {
content: '';
position: absolute;
transform: scale(1);
background-image: $custom-checkbox-indicator-icon-indeterminate;
background-color: $white;
border: none;
width: 10px;
height: 2px;
top: 11px;
left: 4px;
opacity: 1;
transition: none;
}
}
.custom-control-input:disabled:checked~.custom-control-label {
&::before {
background: $custom-control-indicator-disabled-bg;
border-color: $border-color;
}
&::after {
border-color: $border-color;
}
}
}
// Radios
.custom-radio {
.custom-control-label::before {
border-radius: $custom-radio-indicator-border-radius;
}
.custom-control-label::after {
content: '';
border-radius: 50%;
transform: scale(0);
background-image: none !important;
position: absolute;
background: #fff;
width: 8px;
height: 8px;
top: (($line-height-base - 8 / 12.0) / 2.0);
left: (($custom-control-indicator-size - 8 / 12.0) / 2.0);
transition: all 250ms cubic-bezier(.27, .01, .38, 1.06);
transition-delay: .1s;
opacity: 0;
transform: scale(0);
}
.custom-control-input:checked~.custom-control-label {
&::before {
//@include gradient-bg($custom-control-indicator-checked-bg);
}
&::after {
opacity: 1;
transform: scale(1);
}
}
.custom-control-input:disabled {
&:checked~.custom-control-label::before {
background-color: lighten($blueish-grey, 30%);
}
}
.custom-control-input:disabled:checked~.custom-control-label {
&::before {
background: $custom-control-indicator-disabled-bg;
border-color: $border-color;
}
&::after {
background: $border-color;
}
}
}
// Custom toggle
.custom-toggle {
position: relative;
padding-left: ($custom-toggle-width + 0.625rem);
.custom-control-label {
// Background
&::before {
position: absolute;
top: 0;
left: 0;
display: block;
width: $custom-toggle-width;
height: $custom-toggle-height;
background: $custom-toggle-background-color;
border-radius: $custom-toggle-border-radius;
border: $custom-toggle-border;
}
// Knob
&::after {
content: '';
position: absolute;
top: 0.25rem;
left: 0.25rem;
width: $custom-toggle-knob-width;
height: $custom-toggle-knob-height;
background: $input-border-color;
border-radius: $custom-toggle-knob-border-radius;
transition: 350ms;
}
}
// Checked state
.custom-control-input:checked~.custom-control-label {
// Background
&::before {
background: $custom-toggle-checked-background;
border-color: $custom-toggle-checked-border-color;
}
// Knob
&::after {
left: $custom-toggle-width - $custom-toggle-border-width - 0.1875rem;
transform: translateX(-100%);
background: $custom-toggle-checked-knob-background;
}
}
// Disabled and checked state
.custom-control-input:checked:disabled~.custom-control-label {
&::before {
background: $custom-control-indicator-disabled-bg;
border-color: $border-color;
}
&::after {
background: $border-color;
}
}
// Active state
.custom-control-input:active:not(:disabled)~.custom-control-label {
// Knob
&::after {
width: $custom-toggle-knob-active-width;
}
}
// Active, but not checked.
.custom-control-input:active:not(:checked)~.custom-control-label {
&::before {
background-color: $custom-toggle-background-color;
}
}
// Disabled and active.
.custom-control-input:disabled:active~.custom-control-label {
&::before {
background-color: $custom-control-indicator-disabled-bg;
}
}
// Focus state
.custom-control-input:focus {
&~.custom-control-label {
&::before {
// box-shadow: $custom-toggle-focus-box-shadow;
}
}
&:not(:checked)~.custom-control-label {
&::before {
// box-shadow: $input-focus-box-shadow;
}
}
}
&.custom-toggle-sm {
padding-left: 2.625rem;
.custom-control-label {
// Background
&::before {
top: .1875rem;
position: absolute;
display: block;
width: $custom-toggle-width-sm;
height: $custom-toggle-height-sm;
background: $custom-toggle-background-color;
border-radius: $custom-toggle-border-radius;
border: $custom-toggle-border;
}
// Knob
&::after {
content: '';
position: absolute;
top: .375rem;
left: 0.1875rem;
width: $custom-toggle-knob-width-sm;
height: $custom-toggle-knob-height-sm;
}
}
// Checked state
.custom-control-input:checked~.custom-control-label {
// Knob
&::after {
left: $custom-toggle-width-sm - $custom-toggle-border-width - 0.1875rem;
}
}
// Active state
.custom-control-input:active:not(:disabled)~.custom-control-label {
// Knob
&::after {
width: $custom-toggle-knob-active-width-sm;
}
}
}
}
.o_boolean_toggle {
.custom-control.custom-checkbox>label.custom-control-label {
&::before {
width: 2.6375rem;
max-height: 20px;
}
i.fa-check-circle {
right: 3px;
}
}
}
@@ -1,838 +0,0 @@
// form
$o-form-lightsecondary: lighten($o-brand-secondary, 25%) !default;
$o-chatter-min-width: 530px !default;
$o-form-sheet-min-width: 990px !default;
$o-font-size-base-touch: 12px;
.o_input,
.single-line,
.js_import_options input {
-webkit-appearance: none;
background-color: #fff;
background-image: none;
border-radius: 4px;
border: 1px solid #dcdfe6;
box-sizing: border-box;
color: #606266;
font-size: inherit;
height: 34px;
line-height: 34px;
outline: none;
padding: 0 10px;
width: 100%;
&:focus {
border-color: #66afe9;
outline: 0;
}
&:hover {
border-color: #c0c4cc;
}
input {
&.o_input {
height: 30px;
}
}
}
.o_form_view {
background-color: transparent;
.o_form_sheet_bg {
border-bottom: 1px solid #ddd;
background: transparent
}
.o_group {
.o_td_label {
border-right: none
}
}
.o_form_sheet_bg {
border: none;
background: transparent;
>.o_form_sheet {
min-width: inherit;
}
}
.o_form_statusbar {
@include media-breakpoint-down(sm) {
padding-left: 0px;
}
>.o_statusbar_status {
>.o_arrow_button.btn-primary.disabled:after {
border-left-color: #007bff;
}
}
.o_statusbar_buttons_dropdown.dropdown-toggle {
width: 80px;
padding-left: 0px;
border: none;
border-right: 1px solid;
border-radius: 0px;
}
.dropdown-menu {
padding: 5px;
button {
margin-bottom: 5px;
width: 150px;
text-overflow: ellipsis;
}
}
}
.oe_button_box {
+.oe_title,
+.oe_avatar+.oe_title {
width: auto;
}
}
.o_cp_pager {
margin-right: 5px;
display: flex;
align-items: center;
.o_pager_counter {
margin: 5px;
padding: 5px;
}
button {
max-height: 30px;
}
}
.table-responsive {
border-top: 1px solid #dee2e6;
}
.o_list_table {
border-top: 1px solid #dee2e6;
margin-top: 5px;
}
}
.o_form_view {
@include media-breakpoint-up(md) {
display: flex;
flex-flow: column nowrap;
min-height: 100%;
}
// Sheet
.o_form_sheet_bg {
flex: 1 0 auto;
border-bottom: 1px solid gray('300');
>.o_form_sheet {
@include make-container();
@include make-container-max-widths();
border: 1px solid gray('300');
box-shadow: 0 5px 20px -15px black;
margin: $o-sheet-vpadding * 0.2 auto;
@include media-breakpoint-up(md) {
margin: $o-sheet-vpadding*0.5 auto;
}
padding: $o-sheet-vpadding;
@include o-form-sheet-inner-right-padding;
@include o-form-sheet-inner-left-padding;
// Selection
>.o_selection {
float: right;
}
}
}
// Title & avatar
.oe_title {
color: $headings-color;
@include media-breakpoint-up(vsm, $o-extra-grid-breakpoints) {
padding-right: $o-innergroup-rpadding;
}
}
.oe_avatar+.oe_title {
padding-right: $o-avatar-size + 10;
}
// Groups
.o_group {
// all groups take width 100% in mobile
@mixin o-generate-groups($n) {
@for $i from 1 through $n {
.o_group_col_#{$i} {
@include media-breakpoint-down(md) {
width: 100%;
}
}
}
}
@include o-generate-groups($o-form-group-cols);
&.o_inner_group {
>tbody>tr>td {
padding: 0 $o-innergroup-rpadding 0 0;
}
}
@include media-breakpoint-up(vsm, $o-extra-grid-breakpoints) {
.o_field_widget {
&.o_text_overflow {
width: 1px !important;
// hack to make the table layout believe it is a small element (so that the table does not grow too much) ...
min-width: 100%;
// ... but in fact it takes the whole table space
}
}
.o_form_label {
margin-bottom: $o-form-spacing-unit;
}
}
@include media-breakpoint-down(md) {
&.o_label_nowrap .o_form_label {
white-space: normal;
}
}
}
// Labels
.o_form_label {
margin: auto;
text-align: right;
&.o_form_label_empty,
&.o_form_label_false {
opacity: 0.5;
font-weight: normal;
}
@include media-breakpoint-down(sm) {
font-size: $o-font-size-base-touch;
}
}
// Chatter
>.oe_chatter,
.o_FormRenderer_chatterContainer {
flex: 1000 0 auto;
@include make-container();
// @include make-container-max-widths();
padding: $grid-gutter-width*0.25 0;
}
@include media-breakpoint-up(xl) {
>.oe_chatter,
.o_FormRenderer_chatterContainer {
max-width: 530px;
}
}
// Notebooks
.o_notebook {
>.o_notebook_headers {
// @include o-form-sheet-negative-margin;
>.nav.nav-tabs {
@include o-form-sheet-inner-left-padding;
//border-bottom: $nav-tabs-border-width solid gray('400');
>.nav-item {
white-space: nowrap;
>.nav-link {
color: $body-color;
//border-color: gray('400');
//background-color: white;
&:hover,
&:focus,
&:active {
outline: none;
color: $link-color;
}
&.active {
//border-bottom-color: white;
&,
&:hover,
&:focus,
&:active {
color: $headings-color;
//border-top-color: $o-brand-odoo;
}
}
&.disabled {
color: $text-muted;
}
}
}
}
}
>.tab-content {
border-bottom: 1px solid gray('400');
>.tab-pane {
> :first-child {
// Reset margin to 0 and use tab-pane's padding
// to define the distance between panel and content
margin-top: 0;
// These elements will appear attached to the tabs
&.oe_form_field_html {
@include o-form-sheet-negative-margin;
margin-top: -$o-horizontal-padding;
border: none;
.note-editor.panel {
border: none;
}
.note-toolbar.panel-heading {
@include o-form-sheet-inner-left-padding;
@include o-form-sheet-inner-right-padding;
border-top: none;
padding-top: $o-horizontal-padding*0.3;
// background: white;
.btn-secondary {
@include o-hover-text-color($body-color, $link-color);
}
}
.note-editing-area,
.o_readonly {
padding: $card-spacer-y $card-spacer-x;
@include o-form-sheet-inner-left-padding;
@include o-form-sheet-inner-right-padding;
}
// If immediatly followed by an .oe_clear element, the note-editor it's the 'only'
// tab's element. Reset margins to push the bar at the bottom.
+.oe_clear:last-child {
margin-bottom: -$o-horizontal-padding - $o-sheet-vpadding - $o-form-spacing-unit;
}
}
&.o_field_x2many.o_field_x2many_list {
display: block;
width: auto;
@include o-form-sheet-negative-margin;
margin-top: -$o-horizontal-padding;
.o_pager {
button {
min-width: 34px;
}
}
.table-responsive {
border-top: 1px solid #dee2e6
}
// use original padding-left for handle cell in editable list
tr> :first-child.o_handle_cell {
padding-left: $o-horizontal-padding;
}
tr> :first-child {
@include o-form-sheet-inner-left-padding;
}
tr> :last-child {
@include o-form-sheet-inner-right-padding;
}
}
}
}
}
&:last-child>.tab-content {
border-bottom: none;
}
}
// Notebooks for small screen
@include media-breakpoint-down(sm) {
.o_notebook .o_notebook_headers {
overflow-x: auto;
&::-webkit-scrollbar {
display: none;
}
.nav.nav-tabs {
flex-flow: row nowrap;
}
}
.o_cp_buttons {
width: 100%;
div,
.o-kanban-button-new {
width: 100%;
}
}
.o_cp_action_menus {
padding: 5px;
}
}
// One2Many List views
.o_field_widget {
.o_list_table {
&.table-striped {
>tbody {
>tr:not(.o_data_row)>td {
border-top: none;
}
}
// Show "border" if tfoot has content only
>tfoot>tr {
// box-shadow: inset 0 1px 0 gray('300');
>td {
border: none;
&:empty {
padding: 0;
}
}
}
}
}
}
// Translate icon
.o_field_translate {
padding-right: 0;
}
// Specific style classes
.o_group.o_inner_group.oe_subtotal_footer {
border-top: 1px solid gray('300');
.oe_subtotal_footer_separator {
border-top: 1px solid gray('300');
}
}
// Status Bar
.o_form_statusbar {
position: sticky;
top: 0;
z-index: 1;
>.o_statusbar_status {
.dropdown-menu {
.o_arrow_button {
font-weight: 500;
padding: 0.75rem;
&.btn-primary.disabled {
font-weight: bold;
}
// Last element at the right should respect overall padding
&:first-of-type {
padding-right: $o-horizontal-padding;
}
}
}
}
}
@include media-breakpoint-up(xxl, $o-extra-grid-breakpoints) {
// flex-flow: row nowrap;
height: 100%;
>.o_form_sheet_bg {
flex: 1 1 auto; // Side chatter is disabled if this has to shrink but this was added for safety
// width: $o-form-sheet-min-width + 2 * $o-horizontal-padding;
// max-width: map-get($container-max-widths, xl) + 2 * $o-horizontal-padding; // would be logical but breaks no-chatter form views
padding: 0 $o-horizontal-padding;
overflow: auto;
border-bottom: none;
> :not(.o_form_sheet) {
margin-left: -$o-horizontal-padding;
margin-right: -$o-horizontal-padding;
}
>.o_form_sheet {
width: 100%;
max-width: map-get($container-max-widths, xl);
}
}
>.oe_chatter,
.o_FormRenderer_chatterContainer {
// flex: 1 1 auto; // Side chatter is disabled if this has to shrink but this was added for safety
width: $o-chatter-min-width;
max-width: 530px;
padding: 0;
overflow: auto;
border-left: 1px solid gray('300');
background-color: white;
.o_chatter_topbar {
height: $o-statusbar-height + $nav-tabs-border-width;
.btn,
.btn.o_active {
border-top: 0;
}
}
&.o_chatter_composer_active {
.o_chatter_topbar {
.btn,
.btn.o_active {
border-top: 0;
&:first-child {
border-left: 0;
}
}
}
}
.o_thread_composer {
border-width: 1px 0;
margin-top: 0;
// have mention drowdown below composer
.o_composer_mention_dropdown {
position: absolute;
top: 100%;
>.dropdown-menu {
top: 100%;
bottom: auto;
}
}
}
}
}
.o_field_widget {
&.o_field_many2one {
.o_external_button {
background: transparent;
min-width: 34px;
&:hover {
background: transparent;
}
&:focus {
outline: none;
background: transparent;
}
&:active {
background: transparent;
}
}
}
.o_input_dropdown>input {
height: 34px;
line-height: 34px;
padding-right: 15px;
cursor: pointer;
}
.o_field_color {
width: 24px;
height: 24px;
border-radius: 5px;
}
.o_input_dropdown {
.o_dropdown_arrow {
position: absolute;
line-height: 34px;
top: 0px;
bottom: 0px;
left: auto;
bottom: auto;
right: 8px;
color: #c0c4cc;
font-size: 14px;
cursor: pointer;
pointer-events: none;
-webkit-transition: -webkit-transform .3s;
transition: -webkit-transform .3s;
transition: transform .3s;
transition: transform .3s, -webkit-transform .3s;
-webkit-transform: rotateZ(180deg);
transform: rotateZ(180deg);
&.anita_reverse {
-webkit-transform: rotateZ(0);
transform: rotateZ(0)
}
&.dropdown_reverse {
-webkit-transform: rotateZ(0);
transform: rotateZ(0)
}
}
}
&.o_field_many2manytags {
overflow: hidden;
align-items: center;
.o_input_dropdown {
.o_dropdown_arrow {
right: 3px;
}
}
}
&.o_form_uri {
line-height: 36px;
}
}
}
// Overriden style when form view in modal
.modal .modal-dialog {
.o_form_view {
@include media-breakpoint-down(md) {
.o_group.o_inner_group>tbody>tr>td.o_td_label {
min-width: 100px;
}
}
}
&.modal-sm .o_form_view {
.o_group {
@include form-break-table;
}
}
}
// XXS form view specific rules
.o_form_view.o_xxs_form_view {
.o_group {
// Target XXS form view on mobile devices in portrait mode
@include media-breakpoint-down(sm) {
&.o_inner_group>tbody>tr>td {
.o_field_widget {
margin-bottom: $o-form-spacing-unit * 4;
}
}
}
.o_td_label .o_form_label {
font-weight: normal;
}
}
.o_form_label {
margin-top: 3px;
font-size: $o-label-font-size-factor * $o-font-size-base-touch;
font-weight: normal;
color: #6c757d;
&.o_form_label_empty {
display: none;
}
}
}
.form-control:focus {
color: #495057;
background-color: #FFFFFF;
border-color: #007bff;
outline: 0;
box-shadow: 0 0 0 0.2rem rgba(233, 236, 239, 0.25);
}
.ui-autocomplete {
margin-top: 3px;
}
.o_setting_right_pane {
.o_web_settings_invite {
margin: 8px;
}
}
.o_external_button {
background: none;
border: none;
&:hover {
background: none;
border: none;
box-shadow: none;
}
}
.note-editor {
border: 1px solid #dcdfe6 !important;
.panel-heading {
&.note-toolbar {
border-bottom: 1px solid #dcdfe6;
background-color: #ffffff;
color: #212529;
.btn {
border-left: none;
border-right: none;
background: transparent;
}
.dropdown-item {
background-color: #595964;
color: #C6C6C6;
}
.btn-group.show>.btn {
background: #dee2e6;
color: rgba(76, 76, 76, 0.82);
}
.dropdown-item:not(.d-none)~.dropdown-item {
border-top: none;
}
}
}
}
.o_input_dropdown {
.o_dropdown_arrow {
position: absolute;
line-height: 34px;
top: 0px;
bottom: 0px;
left: auto;
bottom: auto;
right: 8px;
color: #c0c4cc;
font-size: 14px;
cursor: pointer;
pointer-events: none;
-webkit-transition: -webkit-transform .3s;
transition: -webkit-transform .3s;
transition: transform .3s;
transition: transform .3s, -webkit-transform .3s;
-webkit-transform: rotateZ(180deg);
transform: rotateZ(180deg);
}
}
.o_field_binary_file {
.btn,
button {
margin-left: 5px;
}
}
.nav-tabs {
.nav-link.active,
.nav-item.show .nav-link {
color: #495057;
background-color: #FFFFFF;
border-color: #dee2e6 #dee2e6 #FFFFFF;
}
}
.o_field_binary_file>.btn {
padding: 0px 10px;
height: 34px;
line-height: 34px;
}
.o_required_modifier.o_input,
.o_required_modifier .o_input {
background-color: #f8f8ff !important;
}
.oe_title {
h1 {
padding: 10px 0px;
}
}
.o_form_view .o_form_statusbar>.o_statusbar_status>.o_arrow_button.btn-primary.disabled {
background-color: #006fe6;
}
.note-popover .popover .popover-body .dropdown-menu,
.panel-heading.note-toolbar .dropdown-menu {
border: none;
background-color: inherit;
border-color: inherit;
box-shadow: inherit;
}
.o_field_x2many_list {
border: 1px solid #dcdfe6;
.o_list_table {
border-top: none;
margin-top: 0px;
}
}
.o_form_view {
.o_notebook {
.tab-content {
padding: 10px
}
}
}
.o_boolean_toggle {
&.custom-control.custom-checkbox>label.custom-control-label::after {
content: none !important;
}
&.custom-control.custom-checkbox>label.custom-control-label::before,
&.custom-control.custom-checkbox>label.custom-control-label::after {
left: 1px !important;
}
}
@@ -1,91 +0,0 @@
// Bootstrap functions
//
// Utility mixins and functions for evalutating source code across our variables, maps, and mixins.
// Ascending
// Used to evaluate Sass maps like our grid breakpoints.
@mixin _assert-ascending($map, $map-name) {
$prev-key: null;
$prev-num: null;
@each $key, $num in $map {
@if $prev-num == null {
// Do nothing
} @else if not comparable($prev-num, $num) {
@warn "Potentially invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} whose unit makes it incomparable to #{$prev-num}, the value of the previous key '#{$prev-key}' !";
} @else if $prev-num >= $num {
@warn "Invalid value for #{$map-name}: This map must be in ascending order, but key '#{$key}' has value #{$num} which isn't greater than #{$prev-num}, the value of the previous key '#{$prev-key}' !";
}
$prev-key: $key;
$prev-num: $num;
}
}
// Starts at zero
// Another grid mixin that ensures the min-width of the lowest breakpoint starts at 0.
@mixin _assert-starts-at-zero($map) {
$values: map-values($map);
$first-value: nth($values, 1);
@if $first-value != 0 {
@warn "First breakpoint in `$grid-breakpoints` must start at 0, but starts at #{$first-value}.";
}
}
// Replace `$search` with `$replace` in `$string`
// Used on our SVG icon backgrounds for custom forms.
//
// @author Hugo Giraudel
// @param {String} $string - Initial string
// @param {String} $search - Substring to replace
// @param {String} $replace ('') - New value
// @return {String} - Updated string
@function str-replace($string, $search, $replace: "") {
$index: str-index($string, $search);
@if $index {
@return str-slice($string, 1, $index - 1) + $replace + str-replace(str-slice($string, $index + str-length($search)), $search, $replace);
}
@return $string;
}
// Color contrast
@mixin color-yiq($color) {
$r: red($color);
$g: green($color);
$b: blue($color);
$yiq: (($r * 299) + ($g * 587) + ($b * 114)) / 1000;
@if ($yiq >= 150) {
color: darken($color, 65);
} @else {
color: #fff;
}
}
// Retreive color Sass maps
@function color($key: "blue") {
@return map-get($colors, $key);
}
@function theme-color($key: "primary") {
@return map-get($theme-colors, $key);
}
@function grayscale($key: "100") {
@return map-get($grays, $key);
}
// Request a theme color level
@function theme-color-level($color-name: "primary", $level: 0) {
$color: theme-color($color-name);
$color-base: if($level > 0, #000, #fff);
@if $level < 0 {
// Lighter values need a quick double negative for the Sass math to work
@return mix($color-base, $color, $level * -1 * $theme-color-interval);
} @else {
@return mix($color-base, $color, $level * $theme-color-interval);
}
}
@@ -1,229 +0,0 @@
html .o_web_client > .o_action_manager > .o_action .o_content {
display: flex;
flex-direction: column;
&.o_component_with_search_panel {
flex-direction: row !important;
}
}
.o_list_view {
overflow: auto;
flex: 1 1 auto;
.custom-checkbox {
.custom-control-label::before {
border-radius: 2px;
}
}
thead>tr>th:nth-of-type(1) {
border-left: none;
}
.o_list_table {
tbody>tr>td:not(.o_list_record_selector):not(.o_handle_cell) {
vertical-align: middle !important;
}
.o_list_record_selector {
vertical-align: middle !important;
}
}
.table-responsive {
.o_list_table {
thead {
box-shadow: 0px 1px 5px 0px rgba(0, 0, 0, 0.1);
>tr {
min-height: 36px;
height: 36px;
}
}
thead,
thead tr th {
position: sticky !important;
top: 0;
z-index: 1;
background: white;
}
.o_list_record_selector {
width: 40px;
padding-left: 16px;
}
tfoot,
tfoot>tr>td {
position: sticky;
bottom: 0;
background: white;
background-color: $o-list-footer-bg-color;
}
.o_list_record_selector {
vertical-align: middle;
}
.o_column_sortable:not(.o_handle_cell) {
position: relative;
user-select: none;
}
tfoot {
background-color: none !important;
}
.o_data_row {
border-bottom-width: 1px;
border-bottom-color: #dcdfe6;
&.o_selected_row>.o_data_cell:not(.o_readonly_modifier):not(.o_invisible_modifier) {
background-color: transparent;
&:not(.o_remaining_days_cell) .o_input {
border: 1px solid #dcdfe6 !important;
height: 32px;
line-height: 32px;
}
}
}
thead {
>tr {
>th {
padding: 5px 4px !important;
border-top: none;
border-bottom: none;
&:not(.o_list_record_selector) {
border-left: none;
vertical-align: middle;
}
&:nth-of-type(1) {
border-left: none;
padding: 0px 10px !important;
}
}
}
}
// add the shaddow
tbody {
>tr {
>td {
// padding: 0px 10px !important;
&:not(.o_list_record_selector) {
&.o_list_button>button {
padding: 0.4rem 1.2rem;
}
&:not(.o_handle_cell) {
vertical-align: middle;
}
}
}
&:nth-of-type(odd) {
background-color: rgba(0, 0, 0, 0.01);
}
}
}
.o_list_record_remove {
padding-right: 0px !important;
line-height: 40px;
}
}
.o_field_cell,
.o_data_cell,
.o_column_sortable {
height: 30px;
line-height: 30px;
padding: 0 10px;
position: relative;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
box-sizing: border-box;
}
}
.o_optional_columns_dropdown_toggle,
.o_optional_columns {
top: 5px;
right: 5px;
}
.o_field_badge {
margin-top: 8px;
margin-left: 5px;
}
.o_optional_columns_dropdown_toggle,
.o_optional_columns {
top: 5px;
right: 5px;
}
}
.o_list_view {
.o_list_table {
tfoot {
background-color: none !important;
border-bottom: 1px solid #dcdfe6;
}
.o_data_row.o_selected_row>.o_data_cell:not(.o_readonly_modifier):not(.o_invisible_modifier) {
background-color: transparent;
}
thead>tr>th:not(.o_list_record_selector) {
border-left: none;
vertical-align: middle;
}
&.table-bordered {
border-collapse: collapse;
.tfoot {
border-top: none;
}
}
}
.o_field_x2many_list_row_add {
list-style: 30px;
height: 30px;
}
}
.o_list_buttons {
button {
margin-right: 5px;
}
}
.o_form_sheet {
.o_list_view {
.o_list_table {
thead {
box-shadow: none !important;
border-bottom: 1px solid #dcdfe6;
}
}
}
}
.table > :not(caption) > * > * {
border-bottom-color: #dcdfe6;
}
@@ -1,23 +0,0 @@
.o_filter_condition {
select:not(:first-child) {
margin-top: 5px;
}
}
.row {
.o_field_widget.o_readonly_modifier {
padding-top: calc(0.375rem + 1px);
padding-bottom: calc(0.375rem + 1px - 5px);
}
}
.o_input input {
border: none !important;
}
.o_form_status_indicator_buttons {
button {
margin-right: 0.5rem;
}
}
@@ -1,24 +0,0 @@
// scroll bar
::-webkit-scrollbar {
width: 6px;
height: 6px;
}
::-webkit-scrollbar-track {
background: #FFFFFF;
}
::-webkit-scrollbar-thumb {
background: #888;
border-radius: 3px;
}
::-webkit-scrollbar-thumb:increment,
::-webkit-scrollbar-thumb:decrement {
background: #000;
}
::-webkit-scrollbar-thumb:hover {
background: #555;
}
@@ -1,327 +0,0 @@
$white: #fff !default;
$gray-100: #f8f9fa !default;
$gray-200: #e9ecef !default;
$gray-300: #dee2e6 !default;
$gray-400: #ced4da !default;
$gray-500: #adb5bd !default;
$gray-600: #868e96 !default;
$gray-700: #495057 !default;
$gray-800: #343a40 !default;
$gray-900: #212529 !default;
$black: #000 !default;
$grays: () !default;
$grays: map-merge((
"100": $gray-100,
"200": $gray-200,
"300": $gray-300,
"400": $gray-400,
"500": $gray-500,
"600": $gray-600,
"700": $gray-700,
"800": $gray-800,
"900": $gray-900
), $grays);
$blue: #007bff !default;
$indigo: #674eec !default;
$purple: #8445f7 !default;
$pink: #ff4169 !default;
$red: #c4183c !default;
$orange: #fb7906 !default;
$yellow: #ffb400 !default;
$green: #17c671 !default;
$teal: #1adba2 !default;
$cyan: #00b8d8 !default;
$colors: () !default;
$colors: map-merge((
"blue": $blue,
"indigo": $indigo,
"purple": $purple,
"pink": $pink,
"red": $red,
"orange": $orange,
"yellow": $yellow,
"green": $green,
"teal": $teal,
"cyan": $cyan,
"white": $white,
"gray": $gray-600,
"gray-dark": $gray-800
), $colors);
$primary: $blue !default;
$secondary: $blueish-grey !default;
$success: $green !default;
$info: $cyan !default;
$warning: $yellow !default;
$danger: $red !default;
$light: $gray-200 !default;
$dark: $gray-900 !default;
// Options
$enable-rounded: true !default;
$enable-shadows: true !default;
$enable-gradients: false !default;
$enable-transitions: true !default;
$enable-hover-media-query: false !default;
$enable-fonts-import: true !default;
$theme-colors: () !default;
$theme-colors: map-merge((
"primary": $primary,
"secondary": $secondary,
"success": $success,
"info": $info,
"warning": $warning,
"danger": $danger,
"light": $light,
"dark": $dark
), $theme-colors);
$blueish-grey: #5A6169 !default;
// Easings
$ease-in-out-circ: cubic-bezier(.27,.01,.38,1.06);
// Transitions
$transition-duration: 250ms;
$transition-base: all $transition-duration $ease-in-out-circ !default;
$transition-fade: opacity 200ms ease-in-out !default;
$transition-collapse: height 350ms ease-in-out !default;
// Fonts
$google-fonts-import: 'https://fonts.googleapis.com/css?family=Poppins:300,400,500,600|Roboto+Mono' !default; // Includes: Poppins: Light, Regular, Medium, Semi-bold; Roboto Mono: Regular
$font-family-poppins-first: "Poppins", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default;
$font-family-system-first: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif !default;
$font-family-roboto-mono-first: "Roboto Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
$font-family-sans-serif: $font-family-system-first !default;
$font-family-monospace: $font-family-roboto-mono-first !default;
$font-family-base: $font-family-sans-serif !default;
$font-size-base: 1rem !default;
$font-size-lg: 1.25rem !default;
$font-size-sm: .875rem !default;
$font-weight-normal: 300 !default;
$font-weight-bold: 500 !default;
$font-weight-base: $font-weight-normal !default;
$line-height-base: 1.5 !default;
// Buttons
// For each of Bootstrap's buttons, define text, background and border color.
$btn-padding-y-lg: .75rem !default;
$btn-padding-x-lg: 1.75rem !default;
$btn-line-height-sm: $line-height-sm !default;
$btn-line-height-lg: $line-height-lg !default;
$btn-padding-y-sm: .35rem !default;
$btn-padding-x-sm: 1rem !default;
$input-btn-padding-y: .5rem !default;
$input-btn-padding-x: 1rem !default;
$input-btn-line-height: 1.125 !default;
$input-btn-padding-y-sm: .35rem !default;
$input-btn-padding-x-sm: .75rem !default;
$input-btn-padding-y-lg: .75rem !default;
$input-btn-padding-x-lg: 1rem !default;
$btn-pill-border-radius: 50px !default;
$btn-padding-y: .75rem !default;
$btn-padding-x: 1.25rem !default;
$btn-font-weight: $font-weight-normal !default;
$btn-font-size: .875rem !default;
$btn-font-size-sm: 0.75rem !default;
$btn-font-size-lg: 1.125rem !default;
$btn-font-family: $font-family-poppins-first !default;
$btn-box-shadow: none !default;
$input-btn-focus-width: .2rem !default;
$btn-active-box-shadow: inset 0 3px 5px rgba($black,.125) !default;
$btn-link-disabled-color: $gray-600 !default;
$btn-block-spacing-y: .5rem !default;
// Allows for customizing button radius independently from global border radius
$btn-border-radius: $border-radius !default;
$btn-border-radius-lg: $border-radius-lg !default;
$btn-border-radius-sm: $border-radius-sm !default;
$btn-border-width: 1px !default;
$btn-transition: $transition-base !default;
// Forms
$input-padding-y: $input-btn-padding-y !default;
$input-padding-x: $input-btn-padding-x !default;
$input-line-height: 1.5 !default;
$input-padding-y-sm: $input-btn-padding-y-sm !default;
$input-padding-x-sm: $input-btn-padding-x-sm !default;
$input-line-height-sm: 1.5 !default;
$input-padding-y-lg: $input-btn-padding-y-lg !default;
$input-padding-x-lg: $input-btn-padding-x-lg !default;
$input-line-height-lg: 1.5 !default;
$input-bg: $white !default;
$input-disabled-bg: #f5f6f7 !default;
$input-font-size: .95rem !default;
$input-color: $gray-700 !default;
$input-border-color: $border-color !default;
$input-btn-border-width: $border-width !default;
$input-box-shadow: none !default;
$input-border-width: $border-width !default;
$input-border-radius: $border-radius !default;
$input-border-radius-lg: $border-radius-lg !default;
$input-border-radius-sm: $border-radius-sm !default;
$input-focus-bg: $input-bg !default;
$input-focus-border-color: theme-color("primary") !default;
$input-focus-box-shadow: 0 .313rem .719rem rgba(theme-color("primary"),.1), 0 .156rem .125rem rgba($black, .06) !default;
$input-focus-color: $input-color !default;
$input-hover-border-color: darken($input-border-color, 15) !default;
$input-placeholder-color: $gray-600 !default;
$input-height-border: $input-border-width * 2 !default;
$input-height-inner: ($input-font-size * $input-line-height) + ($input-padding-y * 2) !default;
$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
$input-height-inner-sm: ($font-size-sm * $input-line-height-sm) + ($input-padding-y-sm * 2) !default;
$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
$input-height-inner-lg: ($font-size-lg * $input-line-height-lg) + ($input-padding-y-lg * 2) !default;
$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
$input-transition: box-shadow $transition-duration $ease-in-out-circ,
border $transition-duration $ease-in-out-circ !default;
$form-text-margin-top: .25rem !default;
$form-check-input-gutter: 1.25rem !default;
$form-check-input-margin-y: .313rem !default;
$form-check-input-margin-x: .313rem !default;
$form-check-inline-margin-x: .75rem !default;
$form-check-inline-input-margin-x: .3125rem !default;
$form-group-margin-bottom: 1rem !default;
$input-group-padding-y: 12px !default;
$input-group-padding-x: 14px !default;
$input-group-addon-bg: lighten($input-border-color, 19%) !default;
$input-group-addon-border-color: $input-border-color !default;
$input-group-addon-color: $input-frozen-color !default;
$custom-control-gutter: 1.688rem !default;
$custom-control-spacer-x: 1rem !default;
$custom-control-indicator-size: 1.125rem !default;
$custom-control-indicator-bg: $white !default;
$custom-control-indicator-bg-size: 50% 50% !default;
$custom-control-indicator-box-shadow: none !default;
$custom-control-indicator-border: 1px solid $border-color !default;
$custom-checkbox-indicator-transition: transform $transition-duration $ease-in-out-circ,
border $transition-duration $ease-in-out-circ !default;
$custom-control-indicator-disabled-bg: $gray-200 !default;
$custom-control-description-disabled-color: $gray-600 !default;
$custom-control-indicator-checked-color: $white !default;
$custom-control-indicator-checked-bg: theme-color("primary") !default;
$custom-control-indicator-checked-box-shadow: none !default;
$custom-control-indicator-focus-box-shadow: $input-focus-box-shadow !default;
$custom-control-indicator-active-color: $white !default;
$theme-color-primary: theme-color("primary") !default;
$custom-control-indicator-active-bg: lighten(#007bff, 35%) !default;
$custom-control-indicator-active-box-shadow: none !default;
// Custom checkbox
$custom-checkbox-indicator-border-radius: 2px !default;
$custom-checkbox-indicator-icon-checked: none !default;
$custom-checkbox-indicator-indeterminate-bg: theme-color("primary") !default;
$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
$custom-checkbox-indicator-icon-indeterminate: none !default;
$custom-checkbox-indicator-indeterminate-box-shadow: none !default;
// Custom radio
$custom-radio-indicator-border-radius: 50% !default;
// Custom switches (core)
$custom-switch-padding-left: 2.25rem !default;
// Custom toggle
$custom-toggle-width: 3.125rem !default;
$custom-toggle-height: 1.75rem !default;
$custom-toggle-border-width: 0.0625rem !default;
$custom-toggle-border: $custom-toggle-border-width solid $input-border-color !default;
$custom-toggle-background-color: $white !default;
$custom-toggle-border-radius: 100px !default;
$custom-toggle-focus-box-shadow: 0 .313rem .719rem rgba($green,.1), 0 .156rem .125rem rgba($black, .06) !default;
$custom-toggle-checked-background: theme-color("success") !default;
$custom-toggle-checked-border-color: $custom-toggle-checked-background !default;
$custom-toggle-checked-knob-background: $white !default;
$custom-toggle-knob-width: 1.25rem !default;
$custom-toggle-knob-height: 1.25rem !default;
$custom-toggle-knob-border-radius: 6.25rem !default;
$custom-toggle-knob-active-width: 1.625rem !default;
$custom-toggle-invalid-knob-background-color: #eb8c95 !default;
$custom-toggle-invalid-background-color: $white !default;
$custom-toggle-width-sm : 2.1875rem !default;
$custom-toggle-height-sm : 1.125rem !default;
$custom-toggle-knob-width-sm: .75rem !default;
$custom-toggle-knob-active-width-sm: 1rem !default;
$custom-toggle-knob-height-sm: .75rem !default;
$body-bg: $white !default;
$body-color: $blueish-grey !default;
// awesome
$sidebar_toggle_one_width: 70px;
$sidebar_toggle_two_width: 240px;
$o-font-size-base-touch: 12px;
$custom-file-height: 30px;
$custom-file-width: 200px;
// form
$o-form-lightsecondary: lighten($o-brand-secondary, 25%) !default;
$o-tooltip-background-color: $o-view-background-color !default;
$o-tooltip-color: $o-main-text-color !default;
$o-tooltip-arrow-color: $o-main-text-color !default;
// Needed for having no spacing between sheet and mail body in mass_mailing:
// Different required cancel paddings between web and web_enterprise
$o-sheet-cancel-tpadding: $o-horizontal-padding !default;
$o-sheet-cancel-bpadding: $o-horizontal-padding + $o-sheet-vpadding !default;
// Side chatter
$o-chatter-min-width: 530px !default;
// Safest for the next value would be map-get($container-max-widths, lg) as it
// is the minimal width of the default form view design for md/lg sizes
$o-form-sheet-min-width: 990px !default;
-135
View File
@@ -1,135 +0,0 @@
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLDz8Z11lFc-K.woff2') format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLDz8Z1JlFc-K.woff2') format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 300;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLDz8Z1xlFQ.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiEyp8kv8JHgFVrJJbecmNE.woff2') format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiEyp8kv8JHgFVrJJnecmNE.woff2') format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiEyp8kv8JHgFVrJJfecg.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLGT9Z11lFc-K.woff2') format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLGT9Z1JlFc-K.woff2') format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 500;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLGT9Z1xlFQ.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLEj6Z11lFc-K.woff2') format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2') format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 600;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLCz7Z11lFc-K.woff2') format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF6, U+1CF8-1CF9, U+200C-200D, U+20A8, U+20B9, U+25CC, U+A830-A839, U+A8E0-A8FB;
}
/* latin-ext */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2') format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 700;
font-display: swap;
src: url('/anita_theme_base/static/css/login/fonts/pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2') format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@@ -1,390 +0,0 @@
html,
body {
height: 100%;
}
body {
overflow: auto;
margin: 0;
padding: 0;
background-color: #182139;
background-size: cover;
}
.form-control {
height: auto;
border: 1px solid #bfc9d4;
color: #3b3f5c;
font-size: 15px;
padding: 8px 10px;
letter-spacing: 1px;
height: calc(1.4em + 1.4rem + 2px);
padding: .75rem 1.25rem;
border-radius: 6px;
}
.form-control:focus {
box-shadow: 0 0 5px 2px rgba(194, 213, 255, 0.6196078431372549);
border-color: #1b55e2;
color: #3b3f5c;
}
.form-form {
width: 50%;
display: flex;
flex-direction: column;
min-height: 100%;
margin: 0 auto;
}
.form-form .form-form-wrap {
max-width: 480px;
margin: 0 auto;
min-width: 311px;
min-height: 100%;
align-self: center;
width: 100%;
height: 100vh;
justify-content: center;
}
.form-form .form-container {
align-items: center;
display: flex;
flex-grow: 1;
width: 100%;
min-height: 100%;
}
.form-form .form-container .form-content {
display: block;
width: 100%;
padding: 25px;
background: #fff;
text-align: center;
border-radius: 15px;
border: 1px solid #e0e6ed;
-webkit-box-shadow: 0 4px 6px 0 rgba(85, 85, 85, 0.09019607843137255), 0 1px 20px 0 rgba(0, 0, 0, 0.08), 0px 1px 11px 0px rgba(0, 0, 0, 0.06);
-moz-box-shadow: 0 4px 6px 0 rgba(85, 85, 85, 0.09019607843137255), 0 1px 20px 0 rgba(0, 0, 0, 0.08), 0px 1px 11px 0px rgba(0, 0, 0, 0.06);
box-shadow: 0 4px 6px 0 rgba(85, 85, 85, 0.09019607843137255), 0 1px 20px 0 rgba(0, 0, 0, 0.08), 0px 1px 11px 0px rgba(0, 0, 0, 0.06);
}
.form-form .form-container .form-content h1 {
font-size: 32px;
color: #3b3f5c;
}
.form-form .form-container .form-content>p {
font-size: 13px;
color: #888ea8;
font-weight: 600;
margin-bottom: 35px;
}
.form-form .form-form-wrap .user-meta {
margin-bottom: 35px;
}
.form-form .form-form-wrap .user-meta img {
width: 52px;
height: 52px;
border-radius: 50%;
margin-right: 15px;
border: 4px solid #e0e6ed;
}
.form-form .form-form-wrap .user-meta div {
align-self: center;
}
.form-form .form-form-wrap .user-meta p {
font-size: 31px;
color: #3b3f5c;
margin-bottom: 0;
}
.form-form .form-form-wrap h1 .brand-name {
color: #3b3f5c;
font-weight: 600;
}
.form-form .form-form-wrap p.signup-link {
font-size: 14px;
color: #3b3f5c;
font-weight: 700;
margin-bottom: 15px;
text-align: center;
margin-top: 50px;
}
.form-form .form-form-wrap p.signup-link.register {
font-size: 13px;
color: #888ea8;
font-weight: 600;
margin-bottom: 25px;
margin-top: 0;
}
.form-form .form-form-wrap p.signup-link.recovery {
margin-top: 0;
}
.form-form .form-form-wrap p.signup-link a {
color: #1b55e2;
border-bottom: 1px solid;
}
.form-form .form-form-wrap form .field-wrapper.input {
padding: 11px 0px 16px 0;
border-bottom: none;
position: relative;
}
.form-form .form-form-wrap form .field-wrapper.input:focus {
border: 1px solid #000;
}
.form-form .form-form-wrap form .field-wrapper.toggle-pass p {
font-weight: 600;
color: #3b3f5c;
margin-bottom: 0;
}
.form-form .form-form-wrap form .field-wrapper .logged-in-user-name {
font-size: 37px;
color: #3b3f5c;
}
.form-form .form-form-wrap form .field-wrapper label {
font-size: 10px;
font-weight: 700;
color: #3b3f5c;
margin-bottom: 8px;
}
.form-form .form-form-wrap form .field-wrapper.terms_condition {
margin-bottom: 20px;
}
.form-form .form-form-wrap form .field-wrapper.terms_condition label {
font-size: 14px;
color: #888ea8;
padding-left: 31px;
font-weight: 100;
}
.form-form .form-form-wrap form .field-wrapper.terms_condition a {
color: #1b55e2;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-user {
top: 53px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-lock {
top: 48px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-at-sign {
top: 47px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-at-sign.register {
top: 53px;
}
.form-form .form-form-wrap form .field-wrapper svg:not(.feather-eye) {
position: absolute;
left: 12px;
color: #888ea8;
fill: rgba(0, 23, 55, 0.08);
width: 20px;
height: 20px;
}
.form-form .form-form-wrap form .field-wrapper svg.feather-eye {
position: absolute;
top: 46px;
right: 13px;
color: #888ea8;
fill: rgba(0, 23, 55, 0.08);
width: 17px;
cursor: pointer;
}
.form-form .form-form-wrap form .field-wrapper input {
display: inline-block;
vertical-align: middle;
border-radius: 6px;
min-width: 50px;
max-width: 635px;
width: 100%;
-ms-transition: all 0.2s ease-in-out 0s;
transition: all 0.2s ease-in-out 0s;
color: #3b3f5c;
font-weight: 600;
font-size: 16px;
padding: 13px 35px 13px 46px;
}
.form-form .form-form-wrap form .field-wrapper input::-webkit-input-placeholder {
color: #d3d3d3;
font-size: 14px;
}
.form-form .form-form-wrap form .field-wrapper input::-ms-input-placeholder {
color: #d3d3d3;
font-size: 14px;
}
.form-form .form-form-wrap form .field-wrapper input::-moz-placeholder {
color: #d3d3d3;
font-size: 14px;
}
.form-form .form-form-wrap form .field-wrapper {
width: 100%
}
.form-form .form-form-wrap form .field-wrapper button.btn {
align-self: center;
width: 100%;
padding: 11px 14px;
font-size: 16px;
letter-spacing: 2px;
}
.form-form .form-form-wrap form .field-wrapper a.forgot-pass-link {
font-weight: 600;
color: #888ea8;
display: block;
letter-spacing: 1px;
font-size: 12px;
margin-bottom: 8px;
}
.form-form .form-form-wrap form .field-wrapper .n-chk .new-control-indicator {
top: 2px;
border: 1px solid #bfc9d4;
background-color: #f1f2f3;
}
.form-form .form-form-wrap form .field-wrapper .n-chk .new-control-indicator:after {
top: 54%;
}
.new-control.new-checkbox.checkbox-primary>input:checked~span.new-control-indicator {
border: none;
}
.form-form .form-form-wrap form .division {
text-align: center;
font-size: 13px;
margin: 35px 0 38px 0;
}
.form-form .form-form-wrap form .social {
text-align: center;
}
.form-form .form-form-wrap form .social a {
background: transparent;
box-shadow: none;
border: 1px solid #e0e6ed;
padding: 12px 10px;
width: 181px;
}
.form-form .form-form-wrap form .social a.social-fb {
margin-right: 15px;
}
.form-form .form-form-wrap form .social a.social-fb svg {
color: #1b55e2;
}
.form-form .form-form-wrap form .social a.social-fb .brand-name {
color: #1b55e2;
}
@media (max-width: 991px) {
.form-form {
width: 100%;
}
.form-form .form-form-wrap {
min-width: auto;
margin: 0 auto;
}
.form-form .form-container .form-content {
border-radius: 15px;
}
}
@media (max-width: 575px) {
.form-form .form-form-wrap form .field-wrapper.toggle-pass {
margin-bottom: 28px;
}
.form-form .form-form-wrap form .social a.social-fb {
margin-right: auto;
margin-left: auto;
margin-bottom: 10px;
display: block;
}
.form-form .form-form-wrap form .social a.social-github {
margin-right: auto;
margin-left: auto;
margin-bottom: 10px;
display: block;
}
.form-form .form-container .form-content {
border: none;
border-radius: 0px;
}
}
@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {
.form-form .form-form-wrap {
width: 100%;
}
.form-form .form-container {
height: 100%;
}
}
@supports (-ms-ime-align: auto) {
.form-form .form-form-wrap {
height: 100%;
}
}
.btn {
transition: all 0.3s ease-out;
-webkit-transition: all 0.3s ease-out;
}
.main-container {
color: #fff;
}
.main-container .background {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
pointer-events: none;
display: block;
}
.main-container .background path {
opacity: .1;
fill: #e5edff;
border-color: #e2e8f0;
}
.bg-100 {
background-image: url('../../../images/bk1.jpg');
background-repeat: no-repeat;
background-size: cover;
}
@@ -1,282 +0,0 @@
*, ::after, ::before {
box-sizing: border-box;
}
.wrapper {
width: 100%;
height:100%
}
body {
font-size: 14px;
color: #525f7f;
background-color: #f8f9fe;
letter-spacing: 0.5px;
overflow-x: hidden;
font-family: "Roboto",sans-serif;
}
.authentication-header {
position: absolute;
background: #165078;
top: 0px;
left: 0px;
right: 0px;
height: 50%;
}
.d-flex {
display: flex !important;
}
.justify-content-center {
justify-content: center !important;
}
.align-items-center {
align-items: center !important;
}
.section-authentication-sign-in {
height: 100vh;
}
.btn {
display: inline-block;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: center;
text-decoration: none;
vertical-align: middle;
cursor: pointer;
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
background-color: transparent;
border: 1px solid transparent;
padding: .375rem .75rem;
font-size: 1rem;
border-radius: .25rem;
transition: color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.btn-primary {
color: #fff;
background-color: #0d6efd;
border-color: #0d6efd;
}
.my-4 {
margin-top: 1.5rem !important;
margin-bottom: 1.5rem !important;
}
.btn {
letter-spacing: 0.5px;
}
.btn-primary {
color: #fff;
background-color: #8833ff;
border-color: #8833ff;
}
[type=button]:not(:disabled), [type=reset]:not(:disabled), [type=submit]:not(:disabled), button:not(:disabled) {
cursor: pointer;
}
.bx {
font-family: "boxicons" !important;
font-weight: normal;
font-style: normal;
font-variant: normal;
line-height: inherit;
display: inline-block;
text-transform: none;
speak: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.btn i {
vertical-align: middle;
font-size: 1.3rem;
margin-top: -1em;
margin-bottom: -1em;
margin-right: 5px;
}
.form-check {
display: block;
min-height: 1.5rem;
padding-left: 1.5em;
margin-bottom: 0.12rem;
}
.form-switch {
padding-left: 2.5em;
}
.form-check-input {
width: 1em;
height: 1em;
margin-top: 0.25em;
vertical-align: top;
background-color: #fff;
background-repeat: no-repeat;
background-position: center;
background-size: contain;
border: 1px solid rgba(0,0,0,.25);
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
-webkit-print-color-adjust: exact;
color-adjust: exact;
}
.form-check .form-check-input {
float: left;
margin-left: -1.5em;
}
[type=checkbox].form-check-input {
border-radius: .25em;
}
:checked.form-check-input {
background-color: #0d6efd;
border-color: #0d6efd;
}
.form-switch .form-check-input {
width: 2em;
margin-left: -2.5em;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");
background-position: left center;
border-radius: 2em;
transition: background-position .15s ease-in-out;
}
:checked.form-check-input {
background-color: #8833ff;
border-color: #8833ff;
}
:checked[type=checkbox].form-check-input {
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e");
}
.form-switch :checked.form-check-input {
background-position: right center;
background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e");
}
label {
display: inline-block;
font-weight: 400 !important;
}
.form-label {
margin-bottom: 0.5rem;
}
.input-group {
position: relative;
display: flex;
flex-wrap: wrap;
align-items: stretch;
width: 100%;
}
.form-control {
display: block;
width: 100%;
padding: .375rem .75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
border-radius: .25rem;
transition: border-color .15s ease-in-out,box-shadow .15s ease-in-out;
}
.border-end-0 {
border-right: 0 !important;
}
.input-group > .form-control, .input-group > .form-select {
position: relative;
flex: 1 1 auto;
width: 1%;
min-width: 0px;
}
:not(.has-validation).input-group > :nth-last-child(n+3).dropdown-toggle, :not(.has-validation).input-group > :not(:last-child):not(.dropdown-menu):not(.dropdown-toggle) {
border-top-right-radius: 0px;
border-bottom-right-radius: 0px;
}
.input-group-text {
display: flex;
align-items: center;
padding: .375rem .75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: center;
white-space: nowrap;
background-color: #e9ecef;
border: 1px solid #ced4da;
border-radius: .25rem;
}
.bg-transparent {
background-color: transparent !important;
}
.input-group > :not(:first-child):not(.invalid-feedback):not(.invalid-tooltip):not(.valid-feedback):not(.valid-tooltip):not(.dropdown-menu) {
margin-left: -1px;
border-top-left-radius: 0px;
border-bottom-left-radius: 0px;
}
.login-separater span {
position: relative;
top: 26px;
margin-top: -10px;
background: #ffffff;
padding: 5px;
font-size: 12px;
color: #cbcbcb;
z-index: 1;
}
hr {
margin: 1rem 0;
color: inherit;
background-color: currentColor;
border: 0;
opacity: 0.25;
}
hr:not([size]) {
height: 1px;
}
.shadow-sm {
box-shadow: 0px 0.12rem 0.25rem rgba(0,0,0,0.075) !important;
}
.btn-white {
background-color: #fff;
border-color: #e7eaf3;
}
img, svg {
vertical-align: middle;
}
.me-2 {
margin-right: 0.5rem !important;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
margin-top: 0px;
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
}
.h3, h3 {
font-size: calc(1.3rem + 0.6vw);
}
/* @media all and (min-width:1200px) */
.h3, h3 {
font-size: 1.75rem;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
color: #32393f;
}
p {
margin-top: 0px;
margin-bottom: 1rem;
}
.card-body {
box-shadow: 1px -1px 20px 1px #403c4329;
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

@@ -1,441 +0,0 @@
body {
margin: 0;
font-family: -apple-system,BlinkMacSystemFont,"Poppins",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji" !important;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #212529;
text-align: left;
background-color: #fff;
}
body {
font-family: Nunito,sans-serif;
font-size: 0.8rem;
font-weight: 400;
color: #3a3a3a;
background: #f8f8f8;
}
body {
min-height: calc(-150px + 100%);
position: relative;
padding-bottom: 90px;
}
body {
overflow-x: hidden !important;
}
.rounded {
border-radius: .25rem !important;
}
.rounded {
border-radius: 50px !important;
}
body.no-footer {
padding-bottom: initial;
}
html {
font-family: sans-serif;
line-height: 1.15;
-webkit-text-size-adjust: 100%;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}
html {
width: 100%;
height: 100%;
background: #f8f8f8;
}
html {
width: 100%;
}
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
display: block;
}
.bootstrap-tagsinput.focus, .form-control:focus {
border-color: rgba(237,113,23,.6);
}
.has-float-label label::after, .has-float-label>span::after {
background: #fff;
}
.has-float-label label::after, .has-float-label > span::after {
content: " ";
display: block;
position: absolute;
height: 5px;
top: 3px;
left: -0.2em;
right: -0.2em;
z-index: -1;
}
.bootstrap-tagsinput, .form-control {
border-radius: .1rem;
outline: initial!important;
box-shadow: initial!important;
font-size: .8rem;
padding: .5rem .75rem;
line-height: 1;
border: 1px solid #d7d7d7;
background: #fff;
color: #3a3a3a;
border-color: #d7d7d7;
height: calc(2em + .8rem);
}
.fixed-background {
background: url(./images/bk.jpg) no-repeat center center fixed;
background-size: cover;
width: 100%;
height: 100%;
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
main.default-transition {
transition: margin-left .3s;
}
main {
margin: 0 !important;
height: 100%;
}
main .container {
height: 100%;
}
.background .mx-auto {
margin-left: auto !important;
margin-right: auto !important;
}
.card {
position: relative;
display: -webkit-box;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
min-width: 0px;
word-wrap: break-word;
background-color: #fff;
background-clip: border-box;
border: 1px solid rgba(0,0,0,0.125);
border-radius: .25rem;
}
.card {
border: initial;
background: #fff;
border-radius: .1rem;
box-shadow: 0px 1px 15px rgba(0,0,0,0.04), 0px 1px 6px rgba(0,0,0,0.04);
}
.auth-card {
display: flex;
flex-direction: row;
box-shadow: 0px 1px 15px rgba(0,0,0,0.04), 0px 1px 6px rgba(0,0,0,0.04);
}
.rounded .card {
border-radius: .75rem;
}
.rounded .card.auth-card {
border-top-left-radius: 1.25rem;
border-bottom-left-radius: 1.25rem;
}
.position-relative {
position: relative !important;
}
.auth-card .image-side {
position: absolute;
width: 40%;
background: url(./images/aside_bk.png) no-repeat center top;
background-size: cover;
padding: 80px 40px;
}
.image-side::before {
content: '';
height: 100%;
width: 100%;
background: rgba(77, 76, 178, 0.9);
position: absolute;
left: 0;
z-index: 0;
top:0px
}
.text-layer {
position: absolute;
left: 0px;
right: 0px;
bottom: 0px;
top: 0px;
background-size: cover;
display: flex;
align-items: center;
flex-direction: column;
padding: 80px 40px
}
.rounded .auth-card .image-side {
border-top-left-radius: 0.75rem;
border-bottom-left-radius: 0.75rem;
}
.auth-card .form-side {
width: 60%;
padding: 80px;
}
a {
color: #007bff;
text-decoration: none;
background-color: transparent;
}
a {
color: #3a3a3a;
transition: color .2s;
outline: initial !important;
}
h1, h2, h3, h4, h5, h6 {
margin-top: 0px;
margin-bottom: 0.5rem;
}
p {
margin-top: 0px;
margin-bottom: 1rem;
}
p {
font-size: 0.85rem;
line-height: 1.3rem;
font-family: Nunito,sans-serif;
}
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
margin-bottom: 0.5rem;
font-weight: 500;
line-height: 1.2;
}
h6, .h6 {
font-size: 1rem;
}
.text-white {
color: #fff !important;
}
.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 {
line-height: 1.3;
}
h6 {
font-size: 1rem;
}
label {
display: inline-block;
margin-bottom: 0.5rem;
}
.form-group {
margin-bottom: 1rem;
}
.mb-4, .my-4 {
margin-bottom: 1.5rem !important;
}
.has-float-label {
display: block;
position: relative;
}
.d-flex {
display: -webkit-box !important;
display: -ms-flexbox !important;
display: flex !important;
}
.justify-content-between {
-webkit-box-pack: justify !important;
-ms-flex-pack: justify !important;
justify-content: space-between !important;
}
.align-items-center {
-webkit-box-align: center !important;
-ms-flex-align: center !important;
align-items: center !important;
}
button {
border-radius: 0;
}
input, button, select, optgroup, textarea {
margin: 0;
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button, input {
overflow: visible;
}
button, select {
text-transform: none;
}
button {
color: #3a3a3a;
outline: initial !important;
}
button, [type='button'], [type='reset'], [type='submit'] {
-webkit-appearance: button;
}
button {
color: #3a3a3a;
outline: initial !important;
}
.btn {
display: inline-block;
font-weight: 400;
color: #212529;
text-align: center;
vertical-align: middle;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
background-color: transparent;
border: 1px solid transparent;
padding: .375rem .75rem;
font-size: 1rem;
line-height: 1.5;
border-radius: .25rem;
-webkit-transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;
transition: color 0.15s ease-in-out,background-color 0.15s ease-in-out,border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
}
.btn-primary {
color: #fff;
background-color: #007bff;
border-color: #007bff;
}
.btn-lg, .btn-group-lg > .btn {
padding: .5rem 1rem;
font-size: 1.25rem;
line-height: 1.5;
border-radius: .3rem;
}
.btn {
border-radius: 50px;
outline: initial !important;
box-shadow: none !important;
box-shadow: initial !important;
font-size: 0.8rem;
padding: .5rem 1.25rem .5rem 1.25rem;
transition: background-color box-shadow .1s linear;
}
.btn-shadow {
box-shadow: 0px 1px 2px 0px rgba(0,0,0,0.15), 0px 1px 3px 1px rgba(0,0,0,0.15) !important;
transition: background-color box-shadow .1s linear;
}
.btn-group-lg > .btn, .btn-group-sm > .btn, .btn-lg {
border-radius: 50px;
}
.btn-primary {
background-color: #00365a;
border-color: #00365a;
color: #fff;
}
.btn-group-lg > .btn, .btn-lg {
line-height: 1.5;
font-weight: 700;
letter-spacing: 0.05rem;
padding: .75rem 2.6rem .6rem 2.6rem;
}
button:not(:disabled), [type='button']:not(:disabled), [type='reset']:not(:disabled), [type='submit']:not(:disabled) {
cursor: pointer;
}
.form-control {
display: block;
width: 100%;
height: calc(1.5em + 2px + 0.75rem);
padding: .375rem .75rem;
font-size: 1rem;
font-weight: 400;
line-height: 1.5;
color: #495057;
background-color: #fff;
background-clip: padding-box;
border: 1px solid #ced4da;
border-radius: .25rem;
-webkit-transition: border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out;
transition: border-color 0.15s ease-in-out,box-shadow 0.15s ease-in-out,-webkit-box-shadow 0.15s ease-in-out;
}
.bootstrap-tagsinput, .form-control {
border-radius: .1rem;
outline: initial !important;
box-shadow: initial !important;
font-size: 0.8rem;
padding: .5rem .75rem;
line-height: 1;
border: 1px solid #d7d7d7;
background: #fff;
color: #3a3a3a;
border-color: #d7d7d7;
height: calc(2em + 0.8rem);
}
.has-float-label label, .has-float-label > span, .has-top-label label, .has-top-label > span {
color: rgba(58, 58, 58, 0.7);
}
.has-float-label label, .has-float-label > span:last-of-type {
position: absolute;
cursor: text;
font-size: 90%;
opacity: 1;
top: -0.4em;
left: 0.75rem;
z-index: 3;
line-height: 1;
padding: 0 1px;
}
.logo-single {
width: 110px;
height: 35px;
background: url(../logos/black.svg) no-repeat;
background-position: center center;
display: inline-block;
margin-bottom: 60px;
}
h2, .h2 {
font-size: 2rem;
}
.text-white {
color: #fff !important;
}
.mb-0, .my-0 {
margin-bottom: 0px !important;
}
.white {
color: #fff !important;
}
@media all and (max-width:768px) {
.auth-card .form-side {
width: 100%;
padding: 40px;
}
.auth-card .image-side {
display: none;
}
}
File diff suppressed because it is too large Load Diff
@@ -1,2 +0,0 @@
<svg id="Capa_1" enable-background="new 0 0 510 510" height="512" viewBox="0 0 510 510" width="512" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><linearGradient id="lg1"><stop offset="0" stop-color="#7faef4"/><stop offset="1" stop-color="#4c8df1"/></linearGradient><linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="72.017" x2="448.659" xlink:href="#lg1" y1="30.771" y2="407.412"/><linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="393.324" x2="118.808" xlink:href="#lg1" y1="393.324" y2="118.808"/><linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="220.253" x2="342.575" y1="220.253" y2="342.575"><stop offset="0" stop-color="#4166bf"/><stop offset="1" stop-color="#4256ac"/></linearGradient><linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="368.352" x2="227.221" y1="309.634" y2="168.502"><stop offset="0" stop-color="#4256ac" stop-opacity="0"/><stop offset="1" stop-color="#1b1464"/></linearGradient><linearGradient id="lg2"><stop offset="0" stop-color="#ebeff0"/><stop offset="1" stop-color="#e3e5e4"/></linearGradient><linearGradient id="SVGID_5_" gradientUnits="userSpaceOnUse" x1="51.502" x2="399.05" xlink:href="#lg2" y1="-7.217" y2="340.331"/><linearGradient id="SVGID_6_" gradientUnits="userSpaceOnUse" x1="232.637" x2="276.114" xlink:href="#lg2" y1="303.885" y2="381.967"/><g><path d="m239.907 2.943c-38.555 15.625-127.875 53.362-171.842 62.404-9.715 1.998-16.648 10.61-16.648 20.528v127.182c0 99.733 44.909 194.164 122.273 257.105l23.878 19.426c33.451 27.215 81.411 27.215 114.863 0l23.878-19.426c77.364-62.941 122.273-157.376 122.273-257.109v-127.178c0-9.918-6.933-18.53-16.648-20.528-43.967-9.042-133.287-46.779-171.841-62.404-9.683-3.924-20.503-3.924-30.186 0z" fill="url(#SVGID_1_)"/><g><circle cx="255" cy="255" fill="url(#SVGID_2_)" r="169.321"/><path d="m405.238 255c0 45.321-20.067 85.954-51.801 113.5-26.365 22.886-60.783 22.738-98.437 22.738-37.275 0-71.379.426-97.639-22.05-32.195-27.555-52.599-68.489-52.599-114.188 0-82.974 67.264-150.238 150.238-150.238s150.238 67.264 150.238 150.238z" fill="url(#SVGID_3_)"/><path d="m255.332 127.937c-38.909 0-68.676 29.767-68.676 68.676 0 20.788 7.232 39.467 21.552 52.363l121.193 121.193c5.079-3.425 19.423 2.333 24.035-1.67 31.734-27.546 51.802-68.178 51.802-113.499 0-2.749-.079-5.48-.225-8.193l-97.318-97.318c-12.896-14.32-31.575-21.552-52.363-21.552z" fill="url(#SVGID_4_)"/><circle cx="255" cy="196.281" fill="url(#SVGID_5_)" r="70.452"/><path d="m348.476 315.4c19.076 12.239 20.97 39.524 3.686 54.185-.199.169-.398.337-.598.505-26.113 21.943-59.795 35.145-96.564 35.145-37.133 0-71.107-13.469-97.327-35.793-.102-.087-.204-.174-.306-.261-17.185-14.694-15.152-41.941 3.917-54.088 26.972-17.181 59.001-27.131 93.351-27.131 34.573 0 66.77 10.069 93.841 27.438z" fill="url(#SVGID_6_)"/></g></g></svg>

Before

Width:  |  Height:  |  Size: 2.8 KiB

@@ -1,4 +0,0 @@
@mixin box-shadow($shadow...) {
box-shadow: $shadow;
}
@@ -1,92 +0,0 @@
@mixin button-variant( $background, $border: $background, $hover-background: darken($background, 5%), $hover-border: $hover-background, $hover-box-shadow: 0 4px 10px rgba($background, .25), $active-background: darken($background, 5%), $active-border: darken($border, 10%), $active-box-shadow: inset 0 3px 5px rgba($black, .125)) {
color: color-yiq($background);
border-color: $border;
// @include gradient-bg($background);
@include box-shadow($btn-box-shadow);
@include hover {
color: color-yiq($hover-background);
//@include gradient-bg($hover-background);
border-color: $hover-border;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05), $hover-box-shadow;
}
&:focus,
&.focus {
box-shadow: 0 0 0 3px rgba($background, .15), 0 3px 15px rgba($background, 0.2), 0 2px 5px rgba($black, .1);
}
// Disabled comes first so active can properly restyle
&.disabled,
&:disabled {
background-color: $background;
border-color: $border;
box-shadow: none;
cursor: not-allowed;
}
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show>&.dropdown-toggle {
color: color-yiq($active-background);
background-color: $active-background;
border-color: $active-border;
background-image: none;
//box-shadow: $active-box-shadow !important;
}
}
@mixin button-outline-variant( $color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
$button-text-color: $color; // Fix light or white outlined buttons
@if ($color==theme-color("light") or $color==$white) {
$button-text-color: color-yiq($color);
}
background-color: transparent;
background-image: none;
border-color: $color;
color: $button-text-color;
&:hover {
color: color-yiq($color);
background-color: $active-background;
border-color: $active-border;
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05), 0 4px 10px rgba($color, .25);
}
&:focus,
&.focus {
box-shadow: 0 0 0 3px rgba($color, .15), 0 3px 15px rgba($color, 0.2), 0 2px 5px rgba($black, .1) !important;
}
&.disabled,
&:disabled {
color: $color;
background-color: transparent;
box-shadow: none;
}
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show>&.dropdown-toggle {
color: color-yiq($active-background);
background-color: $active-background;
border-color: $active-border;
// &:focus {
// // Avoid using mixin so we can pass custom focus shadow properly
// // box-shadow: inset 0 3px 5px rgba($black, .125) !important;
// }
}
}
// Button sizes
@mixin button-size( $padding-y, $padding-x, $font-size, $line-height, $border-radius) {
padding: $padding-y $padding-x;
font-size: $font-size;
line-height: $line-height;
border-radius: $border-radius;
}
@@ -1,7 +0,0 @@
@mixin clearfix() {
&::after {
display: block;
clear: both;
content: "";
}
}
@@ -1,74 +0,0 @@
@mixin awesome-flex {
display: -webkit-box;
display: -webkit-flex;
display: -moz-box;
display: -ms-flexbox;
display: flex;
}
@mixin awesome-align-items-center {
-webkit-box-align: center;
-webkit-align-items: center;
-moz-box-align: center;
-ms-flex-align: center;
align-items: center;
}
@mixin awesome-justify-content-center {
-webkit-box-pack: center;
-webkit-justify-content: center;
-moz-box-pack: center;
-ms-flex-pack: center;
justify-content: center;
}
@mixin awesome-justify-content-between {
-webkit-box-pack: justify;
-webkit-justify-content: space-between;
-moz-box-pack: justify;
-ms-flex-pack: justify;
justify-content: space-between;
}
@mixin awesome-flex-row {
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-direction: row;
-moz-box-orient: horizontal;
-moz-box-direction: normal;
-ms-flex-direction: row;
flex-direction: row;
}
@mixin awesome-flex-column {
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
-webkit-flex-direction: column;
-moz-box-orient: vertical;
-moz-box-direction: normal;
-ms-flex-direction: column;
flex-direction: column;
}
@mixin gradient-bg($color) {
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
}
@mixin box-shadow($shadow...) {
box-shadow: $shadow;
}
@mixin border-radius($radius: $border-radius) {
-webkit-border-radius: $radius;
-moz-border-radius: $radius;
border-radius: $radius;
}
// @mixin awesome-trainsition-all ($seconds) {
// -webkit-transition: all $seconds;
// -moz-transition: all $seconds;
// -ms-transition: all $seconds;
// -o-transition: all $seconds;
// transition: all $seconds;
// }
@@ -1,10 +0,0 @@
@mixin float-left {
float: left !important;
}
@mixin float-right {
float: right !important;
}
@mixin float-none {
float: none !important;
}
@@ -1,41 +0,0 @@
// Gradients
@mixin gradient-bg($color) {
background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
}
// Horizontal gradient, from left to right
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-x($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
background-repeat: repeat-x;
}
// Vertical gradient, from top to bottom
//
// Creates two color stops, start and end, by specifying a color and position for each color stop.
@mixin gradient-y($start-color: #555, $end-color: #333, $start-percent: 0%, $end-percent: 100%) {
background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
background-repeat: repeat-x;
}
@mixin gradient-directional($start-color: #555, $end-color: #333, $deg: 45deg) {
background-image: linear-gradient($deg, $start-color, $end-color);
background-repeat: repeat-x;
}
@mixin gradient-x-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
background-repeat: no-repeat;
}
@mixin gradient-y-three-colors($start-color: #00b3ee, $mid-color: #7a43b6, $color-stop: 50%, $end-color: #c3325f) {
background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
background-repeat: no-repeat;
}
@mixin gradient-radial($inner-color: #555, $outer-color: #333) {
background-image: radial-gradient(circle, $inner-color, $outer-color);
background-repeat: no-repeat;
}
@mixin gradient-striped($color: rgba(255,255,255,.15), $angle: 45deg) {
background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
}
@@ -1,26 +0,0 @@
@mixin hover {
&:hover { @content; }
}
@mixin hover-focus {
&:hover,
&:focus {
@content;
}
}
@mixin plain-hover-focus {
&,
&:hover,
&:focus {
@content;
}
}
@mixin hover-focus-active {
&:hover,
&:focus,
&:active {
@content;
}
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 101 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

@@ -1,81 +0,0 @@
<div class="container">
<div class="oe_styling_v8">
<div class="overflow-hidden mb-5 my-3 p-4 deep-3"
style="background-color:#fbfcfd; border-radius:20px; border: 1px solid #d2caca66;">
<div class="container">
<div class="row">
<p style="width: 100%; font-size: 18px; text-indent:1em;" class="px-sm-4 p-2">
This module is base of our themes, it contains all the common features of our themes.
</p>
</div>
</div>
</div>
<h2 class="w-100 text-center mb-3">(Current Realse V16.0.0.2 -- 2023.1.5)</h2>
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
<img src="./banner.png" style="width:100%; " />
</div>
<h2>
Our Other Products
</h2>
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
<div class="container">
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
<b>Awesome theme Pro</b>
</h3>
<hr class="mb-4 mt-0">
<a href="https://apps.odoo.com/apps/themes/15.0/awesome_theme_pro/">
<img src="./awesome_theme.gif" class="img img-fluid mt-3" loading="lazy">
</a>
</div>
</div>
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
<div class="container">
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
<b>Anita Modeler</b>
</h3>
<hr class="mb-4 mt-0">
<a href="https://apps.odoo.com/apps/modules/14.0/anita_modeler/">
<img src="./anita_modeler.png" class="img img-fluid mt-3" loading="lazy">
</a>
</div>
</div>
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
<div class="container">
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
<b>Anita List</b>
</h3>
<hr class="mb-4 mt-0">
<a href="https://apps.odoo.com/apps/modules/15.0/anita_list/">
<img src="./anita_list.gif" class="img img-fluid mt-3" loading="lazy">
</a>
</div>
</div>
<div class="shadow row my-5 p-3 pb-2 overflow-hidden"
style="background-color:#fbfcfd; border-radius: 5px; border: 1px solid #d2caca66;">
<div class="container">
<h3 style="opacity:1; padding:10px 0px; color:#201111; letter-spacing:0.2em; text-transform:uppercase">
<b>Admin Theme</b>
</h3>
<hr class="mb-4 mt-0">
<a href="https://apps.odoo.com/apps/modules/15.0/anita_list/">
<img src="./admin_theme.gif" class="img img-fluid mt-3" loading="lazy">
</a>
</div>
</div>
</div>
</div>
Binary file not shown.

Before

Width:  |  Height:  |  Size: 527 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 377 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 KiB

@@ -1,36 +0,0 @@
/** @odoo-module **/
import { Component, useState, useExternalListener} from "@odoo/owl";
import { registry } from "@web/core/registry";
import { Dropdown } from "@web/core/dropdown/dropdown";
import { DropdownItem } from "@web/core/dropdown/dropdown_item";
import { useService } from "@web/core/utils/hooks";
export class ThemeCustomizer extends Component {
setup() {
super.setup();
this.actionService = useService("action");
}
_on_toggle_click() {
// url action
this.actionService.doAction({
type: "ir.actions.act_url",
url: "https://apps.odoo.com/apps/themes/15.0/anita_theme_setting/",
target: "current",
});
}
}
ThemeCustomizer.template = "anita_theme_base.customizer";
ThemeCustomizer.components = {
Dropdown: Dropdown,
DropdownItem: DropdownItem,
};
export const systrayItem = {
Component: ThemeCustomizer,
};
registry.category("systray").add("anita_theme_base.customizer", systrayItem, { sequence: 1 });
@@ -1,372 +0,0 @@
.customizer {
width: 395px;
right: -500px;
padding: 0;
background-color: #FFF;
z-index: 1001;
position: fixed;
top: 0;
bottom: 0;
height: 100vh;
-webkit-transition: right .4s cubic-bezier(.05, .74, .2, .99);
transition: right .4s cubic-bezier(.05, .74, .2, .99);
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
border-left: 1px solid rgba(0, 0, 0, .05);
box-shadow: 0 15px 30px 0 rgba(0, 0, 0, .11), 0 5px 15px 0 rgba(0, 0, 0, .08);
color: #212529;
a, label, span, i {
color: #212529;
}
i {
&:hover {
color: #71639e !important;
}
}
@include media-breakpoint-down(sm) {
right: -550px;
width: 100%;
}
&.show {
right: 0
}
.dropdown {
height: 100% !important;
.dropdown-toggle {
height: 100% !important;
}
}
svg {
&:hover {
path {
fill: #71639e;
}
}
}
.customizer-content {
position: relative;
ul.navbar-nav {
li.nav-item {
&:focus {
outline: none;
}
a.nav-link {
padding: 5px;
}
}
}
.theme_mode_tool_bar {
height: 30px;
line-height: 30px;
border-top: 1px solid #dee2e6;
border-bottom: 1px solid #dee2e6;
background-color: #eee;
text-align: center;
margin-top: -1px;
.create_new_theme_mode {
font-size: 1.1rem;
}
}
.add_new_style_icon {
fill: #dee2e6;
}
.operation-toolbar {
height: 30px;
background-color: #f2f2f2;
border-bottom: 1px solid #dee2e6;
.tool-bar-icon {
margin: 0px 5px;
}
}
.mode_tools {
position: absolute;
right: 1rem;
}
.style-preview-box {
position: relative;
width: 100px;
height: 60px;
box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
overflow: hidden;
background-size: cover;
&:hover {
transform: translate3d(0px, 0px, -2px);
}
.preview-sidebar-box {
width: 30px;
border-right: 1px solid #dee2e6;
}
.preview-main-box {
.admin_header-box {
height: 30px
}
.footer-box {
height: 30px;
}
}
.preview-header {
border-bottom: 1px solid #ebebeb;
}
.preview-footer {
border-top: 1px solid #ebebeb;
}
.nav-pills {
.nav-link.active, .nav-pills .show {
> .nav-link {
background-color: transparent !important;
border: 1px solid #e3e3e3 !important
}
}
}
}
.theme-style-contianer {
.theme_style_tab {
padding: 5px;
box-sizing: border-box;
background: transparent;
border: 1px solid;
border-color: transparent;
margin: 1px;
&:hover {
border-color: #5A8DEE !important;
.operation-toolbar {
top: 0px;
}
}
&.active {
background: transparent;
border: 1px solid darken($color: #5A8DEE, $amount: 10) !important;
}
}
.theme_style_tool_bar {
.theme_style_tab {
.tool_bar_item {
font-size: 16px;
&:hover {
color: black;
border-color: #5A8DEE !important;
}
}
}
}
}
.style_tool_bar {
background-color: #eee;
height: 30px;
}
.style_item_container {
.style_item_group {
.style_items {
.style_item {
margin-left: 10px;
width: 220px;
.title {
height: 30px;
line-height: 30px;
display: flex;
}
.color-container {
.style_color_item {
margin-left: 5px;
}
.pickr {
margin: 5px;
.pcr-button:before {
background: transparent !important;
}
}
.color_value {
display: flex;
align-items: center;
justify-items: left;
}
}
.colorpicker-input-addon {
border: 1px solid #dee2e6;
}
}
}
.style_item_group_name {
height: 30px;
line-height: 30px;
border-top: 1px solid #dee2e6;
border-bottom: 1px solid #dee2e6;
background-color: #eee;
text-align: center;
margin-top: -1px;
.style_group_dropdown {
&.dropdown-toggle {
font-size: 0.75rem;
&::after {
display: none !important;
}
}
}
}
.style_sub_group_name {
color: #182139;
background: rgba(238,238,238,0.51);
height: 30px;
line-height: 30px;
padding-left: 10px;
border-bottom: 1px solid #dee2e6;
.sub_group_toggler i {
font-size: 0.75rem;
}
}
.sub-group-body {
.style_group_dropdown {
&.dropdown-toggle {
font-size: 0.75rem;
&::after {
display: none !important;
}
}
}
.sub_group_panel {
background: #f6f6f6;
}
}
.add_style_item {
float: right;
}
.add_item_group_container {
margin-bottom: -1.5rem;
border-bottom: none;
}
}
.add_new_group {
height: 30px;
line-height: 30px;
border-top: none;
border-bottom: 1px solid #dee2e6;
background-color: #eee;
text-align: center;
}
}
}
.customizer-close {
position: absolute;
right: 10px;
top: 10px;
padding: 7px;
width: auto;
z-index: 10;
color: #727E8C;
i {
font-size: 1.3rem
}
.customizer-toggle {
background: #5A8DEE;
color: #FFF;
display: block;
box-shadow: -3px 0 8px rgba(0, 0, 0, .1);
border-top-left-radius: 6px;
border-bottom-left-radius: 6px;
position: absolute;
top: 50%;
width: 38px;
height: 38px;
left: -39px;
text-align: center;
line-height: 44px;
cursor: pointer
}
.color-box {
height: 30px;
width: 30px;
margin: .5rem;
border-radius: .3rem;
cursor: pointer;
&.selected {
box-shadow: 0 0 0 3px rgba(52, 144, 220, .5)
}
}
ul.list-inline li {
display: inline-block;
}
h5 {
margin-bottom: .5rem;
font-family: Rubik, Helvetica, Arial, serif;
font-weight: 400;
line-height: 1.2;
color: #475F7B;
}
.custom-control-label {
padding-top: 2px;
}
}
.top_title {
height: 60px;
flex-shrink: 0;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
border-bottom: 1px solid #ebebeb;
box-shadow: -1px 2px 25px 0 rgba(0, 0, 0, 0.1);
}
.customizer-footer {
align-self: flex-end;
flex-shrink: 0;
border-top: 1px solid rgb(235, 235, 235);
background-color: rgba(255, 255, 255, 0.733);
box-shadow: 0 -4px 25px 0 rgba(0,0,0,.1);
height: 50px;
width: 100%;
button {
margin-left: 0.5rem;
}
}
}
@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<templates id="template" xml:space="preserve">
<!-- style setting -->
<div t-name="anita_theme_base.customizer" class="dropdown" owl="1">
<a role="button" href="#" class="customizer-toggle dropdown-toggle o-no-caret o-dropdown--narrow" t-on-click="_on_toggle_click">
<span class="fa fa-cog fa-fw"/>
</a>
</t>
</templates>
+37 -108
View File
@@ -274,24 +274,6 @@
}
}
.btn-secondary {
color: $secondary_text_color !important;
background-color: $secondary_color !important;
border-color: $secondary_border_color !important;
&:hover {
color: $secondary_text_hover_color !important;
background-color: $secondary_hover_color !important;
border-color: $secondary_border_hover_color !important;
}
&:not(:disabled):not(.disabled).active {
color: $secondary_text_active_color !important;
background-color: $secondary_active_color !important;
border-color: $secondary_border_active_color !important;
}
}
.btn-light {
color: $text_color !important;
background-color: $light_background_color !important;
@@ -335,7 +317,7 @@
// }
.o_searchview_facet {
border: 1px solid darken($color: $light_border_color, $amount: 3) !important;
//border:1px solid darken($color: $light_border_color, $amount: 3) !important;
background: $semi_dark_background_color !important;
.o_searchview_facet_label {
@@ -443,13 +425,13 @@
#{$mode_selectors} {
.custom-control-label::before {
border: 1px solid $semi_dark_border_color !important;
//border:1px solid $semi_dark_border_color !important;
background-color: $light_background_color !important;
}
.custom-control-input {
&:disabled~.custom-control-label::before {
border: 1px solid $semi_dark_border_color !important;
//border:1px solid $semi_dark_border_color !important;
background-color: $light_background_color !important;
}
@@ -460,7 +442,7 @@
&:not(:disabled):active~.custom-control-label::before {
color: $text_color !important;
background-color: transparent !important;
border: 1px solid $light_background_color !important;
//border:1px solid $light_background_color !important;
}
}
@@ -491,7 +473,7 @@
border-color: $primary_border_color !important;
color: $text_color !important;
background: $light_background_color !important;
border: 1px solid $primary_border_color !important;
//border:1px solid $primary_border_color !important;
}
.custom-file-label {
@@ -573,7 +555,7 @@
.dropdown-menu {
box-shadow: 0 6px 12px $_shadow_color !important;
color: $_text_color !important;
border: 1px solid $_light_border_color !important;
//border:1px solid $_light_border_color !important;
background-color: $_light_background_color !important;
.dropdown-item {
@@ -675,7 +657,7 @@
.popover.clockpicker-popover {
overflow: hidden !important;
border: 1px solid $_light_background_color !important;
//border:1px solid $_light_background_color !important;
&.popover-title {
background-color: $_light_background_color !important;
@@ -688,7 +670,7 @@
}
.calendar-table {
border: 0px solid $_primary_border_color !important;
//border:0px solid $_primary_border_color !important;
background-color: $_light_background_color !important;
color: $_primary_text_color !important;
@@ -705,7 +687,7 @@
-webkit-filter: drop-shadow(0 1px 3px $_shadow_color) !important;
filter: drop-shadow(0 1px 3px $_shadow_color) !important;
background-color: $_light_background_color !important;
border: 1px solid $_primary_border_color !important;
//border:1px solid $_primary_border_color !important;
.clockpicker-tick {
color: inherit !important
@@ -724,13 +706,13 @@
// .select2-container {
// .select2-choice {
// background-color: $light_background_color;
// border: 1px solid $semi_dark_background_color;
// //border:1px solid $semi_dark_background_color;
// }
// }
.select2-drop {
background-color: $_light_background_color;
// border: 1px solid $_primary_border_color;
// //border:1px solid $_primary_border_color;
.select2-results {
background-color: $_light_background_color;
@@ -745,7 +727,7 @@
}
&.select2-drop-active {
border: 1px solid $_secondary_border_color !important;
//border:1px solid $_secondary_border_color !important;
}
}
}
@@ -757,7 +739,7 @@
.nav-pills .show>.nav-link {
color: $link_text_active_color !important;
background-color: $semi_dark_background_color !important;
border: 1px solid $light_border_color !important;
//border:1px solid $light_border_color !important;
}
.nav-tabs {
@@ -837,19 +819,19 @@
#{$mode_selectors} {
.input-group-text {
background-color: $light_background_color !important;
border: 1px solid $primary_border_color !important;
//border:1px solid $primary_border_color !important;
}
}
#{$mode_selectors} {
.btn.btn-outline-light {
border: 1px solid $primary_border_color !important;
//border:1px solid $primary_border_color !important;
color: #c7c7c7 !important;
&:hover {
background: 0 0 !important;
color: #d6d6d6 !important;
border: 1px solid $primary_border_color !important
//border:1px solid $primary_border_color !important
}
}
}
@@ -1088,7 +1070,7 @@
>.o_form_sheet {
min-width: initial;
border: 1px solid $light_border_color !important;
//border:1px solid $light_border_color !important;
background: $semi_dark_background_color !important;
// box-shadow: 2px 1px 20px 0px $_shadow_color !important;
box-shadow: none !important;
@@ -1132,15 +1114,15 @@
.o_input:not(.o-autocomplete--input),
.single-line {
background: $input_background_color !important;
border: 1px solid $input_border_color !important;
//border:1px solid $input_border_color !important;
color: $input_text_color !important;
&:focus {
border: 1px solid $primary_color !important;
//border:1px solid $primary_color !important;
}
&:hover {
border: 1px solid $primary_border_color !important;
//border:1px solid $primary_border_color !important;
}
}
@@ -1219,7 +1201,7 @@
.awesome_panel_toggler {
background-color: $light_background_color !important;
border: 1px solid $light_border_color !important;
//border:1px solid $light_border_color !important;
border-left-color: $light_background_color !important;
@include media-breakpoint-down(xs) {
@@ -1250,18 +1232,18 @@
}
> div {
border: 1px solid $light_background_color !important;
//border:1px solid $light_background_color !important;
background-color: $light_background_color !important;
}
}
.o_kanban_quick_create {
border: 1px solid $light_background_color !important;
//border:1px solid $light_background_color !important;
background-color: $light_background_color !important;
}
.o_kanban_ghost {
border: none !important;
//border:none !important;
}
}
@@ -1280,7 +1262,7 @@
#{$mode_selectors} .input-group-text {
background-color: $light_background_color !important;
border: 1px solid $light_border_color !important;
//border:1px solid $light_border_color !important;
&:focus {
outline: none !important;
@@ -1293,7 +1275,7 @@
box-shadow: 0 6px 12px $_shadow_color !important;
color: $primary_text_color !important;
background-color: $dark_background_color !important;
border: 1px solid $light_border_color !important;
//border:1px solid $light_border_color !important;
border-radius: 3px;
.ui-menu-item:hover,
@@ -1392,7 +1374,7 @@
}
.note-editable {
border: 1px solid $light_border_color;
//border:1px solid $light_border_color;
background: $dark_background_color;
color: $text_color;
}
@@ -1450,7 +1432,7 @@
padding: 8px 8px !important;
width: 240px !important;
height: 100% !important;
border: none !important;
//border:none !important;
box-shadow: 0 0 20px -10px !important;
background-color: $light_background_color !important;
}
@@ -1720,7 +1702,7 @@
.colorpicker-input-addon {
i {
border: 1px solid $dark_border_color !important;
//border:1px solid $dark_border_color !important;
}
}
}
@@ -1810,57 +1792,9 @@
}
}
#{$mode_selectors} {
.o_form_view {
.o_form_statusbar {
background-color: $secondary_color !important;
border-bottom: 1px solid $light_border_color !important;
padding-left: 25px !important;
// box-shadow: 0px 4px 16px $_shadow_color !important;
&>.o_statusbar_status {
&>.o_arrow_button:not(:first-child) {
&:after {
border-left: 11px solid $secondary_color !important;
}
&:before {
border-left-color: $light_border_color !important;
}
}
.o_arrow_button.btn-primary.disabled {
background-color: $primary_color !important;
&:after {
border-left-color: $primary_color !important;
}
}
}
}
.o_required_modifier {
&.o_input,
.o_input {
background-color: $input_background_color !important;
&:focus {
border-color: $primary_color !important;
}
&:hover {
border-color: $light_border_color !important;
}
}
}
}
}
#{$mode_selectors} {
.note-editor {
border: 1px solid $light_background_color !important;
//border:1px solid $light_background_color !important;
.note-editing-area {
.note-editable {
@@ -1945,7 +1879,7 @@
}
.o_input {
border: none !important;
//border:none !important;
}
}
}
@@ -1954,7 +1888,7 @@
#{$mode_selectors} {
.o_setting_search {
background: $secondary_color !important;
border: none !important;
//border:none !important;
input {
border-bottom: none !important;
@@ -1976,16 +1910,11 @@
}
}
.o_form_statusbar {
box-shadow: none !important;
border: none !important;
}
.o_control_panel {
.o_panel {
.o_setting_search {
.searchInput {
border: 1px solid $light_border_color !important;
//border:1px solid $light_border_color !important;
padding: 2px 10px !important;
border-radius: 50px;
height: 34px;
@@ -1995,7 +1924,7 @@
}
@include media-breakpoint-down(sm) {
border: none !important;
//border:none !important;
}
}
}
@@ -2030,7 +1959,7 @@
@include media-breakpoint-down(sm) {
.o_setting_search {
border: 1px solid $primary_border_color !important;
//border:1px solid $primary_border_color !important;
border-radius: 30px;
padding: 0px 15px;
line-height: 30px;
@@ -2136,7 +2065,7 @@
.o_calendar_mini {
.ui-widget-content {
border: 1px solid $primary_border_color !important;
//border:1px solid $primary_border_color !important;
background: $light_background_color !important;
color: $primary_text_color !important;
}
@@ -2144,7 +2073,7 @@
}
.o_field_x2many_list {
border: 1px solid $light_border_color !important;
//border:1px solid $light_border_color !important;
}
}
@@ -26,7 +26,7 @@ class SoongApprovalUsers(models.Model):
approval_user = fields.Many2one('soong.user.role', string='审批角色')
approval_user_datetime = fields.Datetime(string='审批时间')
approval_user_notice = fields.Char(string='审批意见')
approval_user_sign = fields.Binary(string='审批签署')
# approval_user_sign = fields.Binary(string='审批签署')
approval_user_state = fields.Selection([('will', '待审批')], string='状态')
approval_notice_state = fields.Selection([
('0', '审批已阅'),
+1 -2
View File
@@ -49,8 +49,7 @@ class SoongWorkflow(models.Model):
default = dict(default or {})
default['name'] = ''
default['model_id'] = False
default['node_ids'] = self.node_ids
default['link_ids'] = self.link_ids
# [0,0...]
return super(SoongWorkflow, self).copy(default)
@api.constrains("node_ids")
@@ -14,7 +14,7 @@
<field name="approval_notice_state" widget="badge" decoration-danger="approval_notice_state == '2'" decoration-info="approval_notice_state == '0'" decoration-success="approval_notice_state == '1'"/>
<field name="approval_user_datetime"/>
<field name="approval_user_notice"/>
<field name="approval_user_sign" widget="image" options='{"size": [80, 40]}'/>
<!-- <field name="approval_user_sign" widget="image" options='{"size": [80, 40]}'/>-->
</tree>
</field>
</record>
@@ -19,7 +19,7 @@ class SoongApprovalNoticeWizard(models.TransientModel):
('2', '审批拒绝'),
], string='意见类型', default='0')
approval_user_notice = fields.Many2one('soong.note', string='审批意见')
approval_user_sign = fields.Binary(string="审批签署", copy=False)
# approval_user_sign = fields.Binary(string="审批签署", copy=False)
def confirm(self):
self.ensure_one()
@@ -31,7 +31,7 @@ class SoongApprovalNoticeWizard(models.TransientModel):
'approval_user_notice': self.approval_user_notice.name,
'approval_user_id': self.env.user.id,
'approval_user_datetime': fields.datetime.now(),
'approval_user_sign': self.approval_user_sign,
# 'approval_user_sign': self.approval_user_sign,
'approval_notice_state': self.approval_notice_state,
})
wkf_btn_obj = self.env["soong.workflow.node.button"]
@@ -8,9 +8,9 @@
<group>
<field name="approval_user_notice"/>
</group>
<group>
<field name="approval_user_sign" widget="signature" options="{'size': ['',200]}"/>
</group>
<!-- <group>-->
<!-- <field name="approval_user_sign" widget="signature" options="{'size': ['',200]}"/>-->
<!-- </group>-->
<footer>
<button name="confirm" string="确认" type="object" class="oe_highlight"/>
<button string="返回" class="btn-secondary" special="cancel"/>
-3
View File
@@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
from . import models
-21
View File
@@ -1,21 +0,0 @@
# -*- coding: utf-8 -*-
{
'name': "Yuthon Property",
'summary': "物业管理",
'description': """
""",
'author': 'pengyuthon',
'website': 'https://www.pengyuthon.com',
'category': 'Human Resources/Attendances',
'version': '0.1',
'license': 'LGPL-3',
'depends': ['base', 'product', 'sale_renting', 'yuthon_res_partner'],
'data': [
'security/ir.model.access.csv',
'views/yuthon_product_template_views.xml',
],
'installable': True,
'application': True,
}
-3
View File
@@ -1,3 +0,0 @@
# -*- coding: utf-8 -*-
from . import yuthon_product_template
@@ -1,4 +0,0 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

@@ -1 +0,0 @@
<svg width="50" height="50" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="M28 16c0 5.523-4.477 10-10 10S8 21.523 8 16 12.477 6 18 6s10 4.477 10 10Z" fill="#1AD3BB"/><path d="M43 24a5 5 0 1 1-10 0 5 5 0 0 1 10 0Zm-27 7h26a4 4 0 0 1 4 4v5a4 4 0 0 1-4 4H16V31Z" fill="#005E7A"/><path d="M4 31h16c7.18 0 13 5.82 13 13H17C9.82 44 4 38.18 4 31Z" fill="#1AD3BB"/><path d="M23.549 12.128 22.425 11l-5.532 5.556-3.319-3.335-1.123 1.129a1.552 1.552 0 0 0 0 2.188L16.892 21l6.657-6.685a1.55 1.55 0 0 0 0-2.187Z" fill="#fff"/></svg>

Before

Width:  |  Height:  |  Size: 539 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

+28
View File
@@ -0,0 +1,28 @@
# -*- coding: utf-8 -*-
{
'name': "Yuthon Sale Renting",
'summary': "物业租赁拓展",
'description': """
""",
'author': 'pengyuthon',
'website': 'https://www.pengyuthon.com',
'category': 'Human Resources/Attendances',
'version': '0.1',
'license': 'LGPL-3',
'depends': ['sale_renting', 'mail', 'documents', 'soong_workflow'],
'data': [
'data/sale_renting_code_data.xml',
'security/ir.model.access.csv',
'views/property_assess_views.xml',
'views/property_confirm_views.xml',
'views/property_move_views.xml',
'views/property_open_rent_views.xml',
'views/property_record_views.xml',
'views/yuthon_product_template_views.xml',
'views/menus.xml',
],
'installable': True,
'application': True,
}
@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="property_assess_code_sequence" model="ir.sequence">
<field name="name">物业评估编号</field>
<field name="code">property_assess_code</field>
<field name="prefix">PG%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
<record id="property_confirm_code_sequence" model="ir.sequence">
<field name="name">物业成交确认编号</field>
<field name="code">property_confirm_code</field>
<field name="prefix">QR%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
<record id="property_move_code_sequence" model="ir.sequence">
<field name="name">物业调拨编号</field>
<field name="code">property_move_code</field>
<field name="prefix">DB%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
<record id="property_open_rent_code_sequence" model="ir.sequence">
<field name="name">物业公开招租编号</field>
<field name="code">property_open_rent_code</field>
<field name="prefix">GK%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
<record id="property_record_code_sequence" model="ir.sequence">
<field name="name">物业备案编号</field>
<field name="code">property_record_code</field>
<field name="prefix">PG%(y)s%(month)s%(day)s</field>
<field name="padding">3</field>
</record>
</odoo>
+9
View File
@@ -0,0 +1,9 @@
# -*- coding: utf-8 -*-
from . import yuthon_product_template
from . import property_assess
from . import property_confirm
from . import property_move
from . import property_open_rent
from . import property_record
@@ -0,0 +1,32 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api, exceptions, _
class PropertyAssess(models.Model):
_name = 'property.assess'
_description = '物业评估审批'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin', 'soong.workflow.mixin']
_rec_name = 'name'
name = fields.Char(string='标题')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('property_assess_code'))
property_documents_ids = fields.Many2many('documents.document', string="评估文件")
property_assess_line_ids = fields.One2many('property.assess.line', 'property_assess_id', string="评估文件")
class PropertyAssessLine(models.Model):
_name = 'property.assess.line'
property_assess_id = fields.Many2one('property.assess', string='关联审批')
product_id = fields.Many2one('product.product', string="待评估物业")
partner_id = fields.Many2one('res.partner', string="评估公司")
assess_type = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api, exceptions, _
class PropertyConfirm(models.Model):
_name = 'property.confirm'
_description = '物业成交确认审批'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin', 'soong.workflow.mixin']
_rec_name = 'name'
name = fields.Char(string='标题')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('property_confirm_code'))
@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api, exceptions, _
class PropertyMove(models.Model):
_name = 'property.move'
_description = '物业调拨审批'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin', 'soong.workflow.mixin']
_rec_name = 'name'
name = fields.Char(string='标题')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('property_move_code'))
@@ -0,0 +1,29 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api, exceptions, _
class PropertyOpenRent(models.Model):
_name = 'property.open.rent'
_description = '物业公开招租审批'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin', 'soong.workflow.mixin']
_rec_name = 'name'
name = fields.Char(string='标题')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('property_open_rent_code'))
# property_open_rent_line_ids = fields.One2many('property.assess.line', 'property_open_rent_id', string="评估文件")
#
#
# class PropertyOpenRentLine(models.Model):
# _name = 'property.open.rent.line'
#
# property_open_rent_id = fields.Many2one('property.open.rent', string='关联审批')
# product_id = fields.Many2one('product.product', string="物业")
# property_note = fields.Text(string="物业描述")
@@ -0,0 +1,33 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api, exceptions, _
class PropertyRecord(models.Model):
_name = 'property.record'
_description = '物业备案审批'
_inherit = ['mail.thread.main.attachment', 'mail.activity.mixin', 'soong.workflow.mixin']
_rec_name = 'name'
name = fields.Char(string='标题')
code = fields.Char(string="编号", default=lambda self: self.env['ir.sequence'].next_by_code('property_record_code'))
property_documents_ids = fields.Many2many('documents.document', string="评估文件")
property_record_line_ids = fields.One2many('property.record.line', 'property_record_id', string="评估文件")
class PropertyRecordLine(models.Model):
_name = 'property.record.line'
property_record_id = fields.Many2one('property.record', string='关联审批')
product_id = fields.Many2one('product.product', string="物业")
product_code = fields.Char(string="评估编号")
partner_id = fields.Many2one('res.partner', string="评估公司")
property_statu = fields.Char(string="评估状态")
property_type = fields.Selection([('rent_money', '租金'), ('value', '价值')], string="评估类别")
property_m2 = fields.Float(string="评估面积")
@@ -0,0 +1,8 @@
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_property_assess,property_assess,model_property_assess,base.group_user,1,1,1,1
access_property_confirm,property_confirm,model_property_confirm,base.group_user,1,1,1,1
access_property_move,property_move,model_property_move,base.group_user,1,1,1,1
access_property_open_rent,property_open_rent,model_property_open_rent,base.group_user,1,1,1,1
access_property_record,property_record,model_property_record,base.group_user,1,1,1,1
1 id name model_id:id group_id:id perm_read perm_write perm_create perm_unlink
2 access_property_assess property_assess model_property_assess base.group_user 1 1 1 1
3 access_property_confirm property_confirm model_property_confirm base.group_user 1 1 1 1
4 access_property_move property_move model_property_move base.group_user 1 1 1 1
5 access_property_open_rent property_open_rent model_property_open_rent base.group_user 1 1 1 1
6 access_property_record property_record model_property_record base.group_user 1 1 1 1
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

@@ -0,0 +1 @@
<svg width="50" height="50" viewBox="0 0 50 50" xmlns="http://www.w3.org/2000/svg"><path d="M27.435 17.137 7.493 37.08a4.029 4.029 0 1 0 5.697 5.698l19.942-19.942a4.029 4.029 0 1 0-5.697-5.698Z" fill="#1AD3BB"/><path d="M27.435 17.137 7.493 37.08a4.029 4.029 0 1 0 5.697 5.698l19.942-19.942a4.029 4.029 0 1 0-5.697-5.698Z" fill="#1AD3BB"/><path fill-rule="evenodd" clip-rule="evenodd" d="M22.45 10.729a8.058 8.058 0 0 0 0 11.396l5.698 5.697a8.058 8.058 0 0 0 11.395 0l6.41-6.41a8.058 8.058 0 0 0 0-11.395l-5.698-5.698a8.058 8.058 0 0 0-11.395 0l-6.41 6.41Zm17.805 3.561a3.022 3.022 0 1 0-4.273-4.273 3.022 3.022 0 0 0 4.273 4.273Z" fill="#985184"/><path d="m28.149 27.822 4.986-4.985a4.03 4.03 0 0 0-5.698-5.698l-4.986 4.986 5.698 5.697Z" fill="#005E7A"/></svg>

After

Width:  |  Height:  |  Size: 762 B

+39
View File
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<menuitem
id="property_approval_menu"
parent="sale_renting.rental_menu_root"
name="物业审批管理"
sequence="1"/>
<menuitem
id="property_move_approval_menu"
parent="property_approval_menu"
name="物业调拨审批"
action="property_move_action"
sequence="1"/>
<menuitem
id="property_assess_approval_menu"
parent="property_approval_menu"
name="物业评估审批"
action="property_assess_action"
sequence="2"/>
<menuitem
id="property_record_approval_menu"
parent="property_approval_menu"
name="物业备案审批"
action="property_record_action"
sequence="3"/>
<menuitem
id="property_open_rent_approval_menu"
parent="property_approval_menu"
name="物业公开招租审批"
action="property_open_rent_action"
sequence="4"/>
<menuitem
id="property_confirm_approval_menu"
parent="property_approval_menu"
name="物业成交确认审批"
action="property_confirm_action"
sequence="5"/>
</odoo>
@@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_assess_tree" model="ir.ui.view">
<field name="name">property.assess.tree</field>
<field name="model">property.assess</field>
<field name="arch" type="xml">
<tree string="物业评估">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<record id="view_property_assess_form" model="ir.ui.view">
<field name="name">property.assess.form</field>
<field name="model">property.assess</field>
<field name="arch" type="xml">
<form string="物业评估">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
<field name="property_documents_ids">
<tree>
<field name="name"/>
</tree>
</field>
</group>
</group>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="property_assess_action" model="ir.actions.act_window">
<field name="name">物业评估审批</field>
<field name="res_model">property.assess</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_confirm_tree" model="ir.ui.view">
<field name="name">property.confirm.tree</field>
<field name="model">property.confirm</field>
<field name="arch" type="xml">
<tree string="成交确认">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<record id="view_property_confirm_form" model="ir.ui.view">
<field name="name">property.confirm.form</field>
<field name="model">property.confirm</field>
<field name="arch" type="xml">
<form string="成交确认">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
</group>
</group>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="property_confirm_action" model="ir.actions.act_window">
<field name="name">物业成交确认审批</field>
<field name="res_model">property.confirm</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_move_tree" model="ir.ui.view">
<field name="name">property.move.tree</field>
<field name="model">property.move</field>
<field name="arch" type="xml">
<tree string="物业调拨">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<record id="view_property_move_form" model="ir.ui.view">
<field name="name">property.move.form</field>
<field name="model">property.move</field>
<field name="arch" type="xml">
<form string="物业调拨">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
</group>
</group>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="property_move_action" model="ir.actions.act_window">
<field name="name">物业调拨审批</field>
<field name="res_model">property.move</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_open_rent_tree" model="ir.ui.view">
<field name="name">property.open.rent.tree</field>
<field name="model">property.open.rent</field>
<field name="arch" type="xml">
<tree string="物业公开招租">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<record id="view_property_open_rent_form" model="ir.ui.view">
<field name="name">property.open.rent.form</field>
<field name="model">property.open.rent</field>
<field name="arch" type="xml">
<form string="物业公开招租">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
</group>
</group>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="property_open_rent_action" model="ir.actions.act_window">
<field name="name">物业公开招租</field>
<field name="res_model">property.open.rent</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>
@@ -0,0 +1,66 @@
<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="view_property_record_tree" model="ir.ui.view">
<field name="name">property.record.tree</field>
<field name="model">property.record</field>
<field name="arch" type="xml">
<tree string="物业备案">
<field name="name"/>
<field name="code"/>
</tree>
</field>
</record>
<record id="view_property_record_form" model="ir.ui.view">
<field name="name">property.record.form</field>
<field name="model">property.record</field>
<field name="arch" type="xml">
<form string="物业备案">
<sheet>
<div class="oe_title">
<label for="name"/>
<h1>
<field name="name" required="1"/>
</h1>
</div>
<group>
<group>
<field name="code"/>
<field name="property_documents_ids">
<tree>
<field name="name"/>
</tree>
</field>
</group>
</group>
<notebook>
<page name="property_data" string="物业信息">
<field name="property_record_line_ids">
<tree>
<field name="product_id"/>
<field name="product_code"/>
<field name="partner_id"/>
<field name="property_statu"/>
<field name="property_type"/>
<field name="property_m2"/>
</tree>
</field>
</page>
</notebook>
</sheet>
<div class="o_attachment_preview"/>
<div class="oe_chatter">
<field name="message_follower_ids" groups="base.group_user"/>
<field name="activity_ids"/>
<field name="message_ids"/>
</div>
</form>
</field>
</record>
<record id="property_record_action" model="ir.actions.act_window">
<field name="name">物业备案审批</field>
<field name="res_model">property.record</field>
<field name="view_mode">tree,form</field>
</record>
</odoo>