mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
调整移动端将bar放在下方
This commit is contained in:
@@ -23,7 +23,7 @@
|
||||
|
||||
{
|
||||
'name': 'odoo 16 Customize OEM(Boost, Data reset)',
|
||||
'version': '16.23.05.24',
|
||||
'version': '16.23.05.25',
|
||||
'author': 'Sunpop.cn',
|
||||
'category': 'Productivity',
|
||||
'website': 'https://www.sunpop.cn',
|
||||
@@ -36,6 +36,7 @@
|
||||
customize my odoo.
|
||||
""",
|
||||
'depends': [
|
||||
'app_common',
|
||||
'base_setup',
|
||||
'web',
|
||||
'mail',
|
||||
@@ -71,11 +72,11 @@
|
||||
'app_odoo_customize/static/src/scss/app.scss',
|
||||
'app_odoo_customize/static/src/scss/ribbon.scss',
|
||||
'app_odoo_customize/static/src/scss/dialog.scss',
|
||||
'app_odoo_customize/static/src/js/app_window_title.js',
|
||||
'app_odoo_customize/static/src/js/user_menu.js',
|
||||
'app_odoo_customize/static/src/js/ribbon.js',
|
||||
'app_odoo_customize/static/src/js/dialog.js',
|
||||
'app_odoo_customize/static/src/webclient/**/*.xml',
|
||||
'app_odoo_customize/static/src/webclient/*.js',
|
||||
'app_odoo_customize/static/src/webclient/*.xml',
|
||||
],
|
||||
},
|
||||
'pre_init_hook': 'pre_init_hook',
|
||||
@@ -131,6 +132,7 @@
|
||||
39. Only erp manager can see debug menu..
|
||||
40. Fix support for enterprise version.
|
||||
41. Fix odoo bug, when click Preferences menu not hide in mobile.
|
||||
42. Add menu navbar setup for top or bottom. navigator footer support.
|
||||
|
||||
This module can help to white label the Odoo.
|
||||
Also helpful for training and support for your odoo end-user.
|
||||
|
||||
@@ -16,8 +16,11 @@
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_support_url', 'https://www.sunpop.cn/trial')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_account_title', 'My Online Account')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_account_url', 'https://www.sunpop.cn/my-account')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_ribbon_name', 'Sunpop.cn')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_enterprise_url', 'https://www.odooai.cn')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_ribbon_name', 'odooAi.cn')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_ribbon_color', '#f0f0f0')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_ribbon_background_color', 'rgba(255,0,0,.4)')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_navbar_pos_pc', 'top')"/>
|
||||
<function model="ir.config_parameter" name="set_param" eval="('app_navbar_pos_mobile', 'bottom')"/>
|
||||
</data>
|
||||
</openerp>
|
||||
@@ -29,4 +29,7 @@ class IrHttp(models.AbstractModel):
|
||||
# 增加多语言
|
||||
result['app_lang_list'] = self.env['res.lang'].search_read([], ['id', 'code', 'name'])
|
||||
result['is_erp_manager'] = self.env.user.has_group('base.group_erp_manager')
|
||||
# 增加 bar位置处理
|
||||
result['app_navbar_pos_pc'] = config_parameter.get_param('app_navbar_pos_pc', 'top')
|
||||
result['app_navbar_pos_mobile'] = config_parameter.get_param('app_navbar_pos_mobile', 'top')
|
||||
return result
|
||||
|
||||
@@ -17,39 +17,43 @@ class ResConfigSettings(models.TransientModel):
|
||||
help="When enable,User can quick switch language in user menu",
|
||||
config_parameter='app_show_lang')
|
||||
app_show_debug = fields.Boolean('Show Quick Debug', help="When enable,everyone login can see the debug menu",
|
||||
default=True, config_parameter='app_show_debug')
|
||||
config_parameter='app_show_debug')
|
||||
app_show_documentation = fields.Boolean('Show Documentation', help="When enable,User can visit user manual",
|
||||
default=False, config_parameter='app_show_documentation')
|
||||
config_parameter='app_show_documentation')
|
||||
# 停用
|
||||
app_show_documentation_dev = fields.Boolean('Show Developer Documentation',
|
||||
help="When enable,User can visit development documentation")
|
||||
app_show_support = fields.Boolean('Show Support', help="When enable,User can vist your support site",
|
||||
config_parameter='app_show_support')
|
||||
app_show_account = fields.Boolean('Show My Account', help="When enable,User can login to your website",
|
||||
default=False, config_parameter='app_show_account')
|
||||
config_parameter='app_show_account')
|
||||
app_show_enterprise = fields.Boolean('Show Enterprise Tag', help="Uncheck to hide the Enterprise tag",
|
||||
default=False, config_parameter='app_show_enterprise')
|
||||
config_parameter='app_show_enterprise')
|
||||
app_show_share = fields.Boolean('Show Share Dashboard', help="Uncheck to hide the Odoo Share Dashboard",
|
||||
default=False, config_parameter='app_show_share')
|
||||
config_parameter='app_show_share')
|
||||
app_show_poweredby = fields.Boolean('Show Powered by Odoo', help="Uncheck to hide the Powered by text",
|
||||
default=False, config_parameter='app_show_poweredby')
|
||||
onfig_parameter='app_show_poweredby')
|
||||
group_show_author_in_apps = fields.Boolean(string="Show Author in Apps Dashboard", implied_group='app_odoo_customize.group_show_author_in_apps',
|
||||
help="Uncheck to Hide Author and Website in Apps Dashboard")
|
||||
module_odoo_referral = fields.Boolean('Show Odoo Referral', help="Uncheck to remove the Odoo Referral")
|
||||
|
||||
app_documentation_url = fields.Char('Documentation Url', config_parameter='app_documentation_url',
|
||||
default='https://www.sunpop.cn/documentation/user/13.0/en/index.html')
|
||||
app_documentation_url = fields.Char('Documentation Url', config_parameter='app_documentation_url')
|
||||
app_documentation_dev_url = fields.Char('Developer Documentation Url', config_parameter='app_documentation_dev_url')
|
||||
app_support_url = fields.Char('Support Url', config_parameter='app_support_url',
|
||||
default='https://www.sunpop.cn/trial')
|
||||
app_account_title = fields.Char('My Odoo.com Account Title', config_parameter='app_account_title',
|
||||
default='My Online Account')
|
||||
app_account_url = fields.Char('My Odoo.com Account Url', config_parameter='app_account_url',
|
||||
default='https://www.sunpop.cn/my-account/')
|
||||
app_enterprise_url = fields.Char('Customize Module Url(eg. Enterprise)', config_parameter='app_enterprise_url',
|
||||
default='https://www.sunpop.cn')
|
||||
app_ribbon_name = fields.Char('Show Demo Ribbon', config_parameter='app_ribbon_name',
|
||||
default='*Sunpop.cn')
|
||||
app_support_url = fields.Char('Support Url', config_parameter='app_support_url')
|
||||
app_account_title = fields.Char('My Odoo.com Account Title', config_parameter='app_account_title')
|
||||
app_account_url = fields.Char('My Odoo.com Account Url', config_parameter='app_account_url')
|
||||
app_enterprise_url = fields.Char('Customize Module Url(eg. Enterprise)', config_parameter='app_enterprise_url')
|
||||
app_ribbon_name = fields.Char('Show Demo Ribbon', config_parameter='app_ribbon_name')
|
||||
app_navbar_pos_pc = fields.Selection(string="Navbar PC", selection=[
|
||||
('top', 'Top(Default)'),
|
||||
('bottom', 'Bottom'),
|
||||
# ('left', 'Left'),
|
||||
], config_parameter='app_navbar_pos_pc')
|
||||
app_navbar_pos_mobile = fields.Selection(string="Navbar Mobile", selection=[
|
||||
('top', 'Top(Default)'),
|
||||
('bottom', 'Bottom'),
|
||||
# ('left', 'Left'),
|
||||
], config_parameter='app_navbar_pos_mobile')
|
||||
|
||||
def set_module_url(self):
|
||||
sql = "UPDATE ir_module_module SET website = '%s' WHERE license like '%s' and website <> ''" % (self.app_enterprise_url, 'OEEL%')
|
||||
|
||||
@@ -1,13 +0,0 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { WebClient } from "@web/webclient/webclient";
|
||||
import { patch } from "@web/core/utils/patch";
|
||||
import { session } from "@web/session";
|
||||
|
||||
patch(WebClient.prototype, "app_odoo_customize.WebClient", {
|
||||
setup() {
|
||||
this._super.apply(this, arguments);
|
||||
const app_system_name = session.app_system_name || 'odooApp';
|
||||
this.title.setParts({ zopenerp: app_system_name }); // zopenerp is easy to grep
|
||||
}
|
||||
});
|
||||
@@ -17,6 +17,46 @@
|
||||
content: '/';
|
||||
}
|
||||
}
|
||||
// navbar在下方的特殊处理
|
||||
.o_web_client.navbar_pos_bottom {
|
||||
.o_navbar {
|
||||
display: block;
|
||||
.o_main_navbar {
|
||||
--o-navbar-height: 40px;
|
||||
}
|
||||
}
|
||||
//message
|
||||
.o_MessagingMenu_dropdownMenu:not(.o-isDeviceSmall) {
|
||||
bottom: var(--o-navbar-height) ;
|
||||
top: auto;
|
||||
}
|
||||
.o_MessagingMenu_dropdownMenu.o-isDeviceSmall {
|
||||
bottom: var(--o-navbar-height)+6!important; ;
|
||||
height: calc(100% - var(--o-navbar-height));
|
||||
top: 0;
|
||||
}
|
||||
//Activity
|
||||
.o_ActivityMenuView_dropdownMenu {
|
||||
bottom: var(--o-navbar-height) ;
|
||||
top: auto;
|
||||
}
|
||||
//userMenu
|
||||
.o_burger_menu {
|
||||
//height: 95%;
|
||||
}
|
||||
|
||||
// toggle处理
|
||||
.dropdown .dropdown-toggle::after {
|
||||
display: inline-block;
|
||||
margin-left: 3.4px;
|
||||
vertical-align: 3.4px;
|
||||
content: "";
|
||||
border-top: 0;
|
||||
border-right: 4px solid transparent;
|
||||
border-bottom: 4px solid;
|
||||
border-left: 4px solid transparent;
|
||||
}
|
||||
}
|
||||
// Colors replace to ent
|
||||
//$o-community-color: #875A7B;
|
||||
|
||||
|
||||
27
app_odoo_customize/static/src/webclient/webclient.js
Normal file
27
app_odoo_customize/static/src/webclient/webclient.js
Normal file
@@ -0,0 +1,27 @@
|
||||
/** @odoo-module **/
|
||||
|
||||
import { WebClient } from "@web/webclient/webclient";
|
||||
import { patch } from "@web/core/utils/patch";
|
||||
import { session } from "@web/session";
|
||||
|
||||
patch(WebClient.prototype, "app_odoo_customize.WebClient", {
|
||||
setup() {
|
||||
// 处理 navbar 全局可配置位置
|
||||
var self = this;
|
||||
self._super.apply(this, arguments);
|
||||
this.state.navbar_pos_pc = session.app_navbar_pos_pc || 'top';
|
||||
this.state.navbar_pos_mobile = session.app_navbar_pos_mobile || 'top';
|
||||
if (self.env.isSmall)
|
||||
this.state.navbar_pos = this.state.navbar_pos_mobile;
|
||||
else
|
||||
this.state.navbar_pos = this.state.navbar_pos_pc;
|
||||
if (this.state.navbar_pos === 'bottom') {
|
||||
document.body.className += ' navbar_pos_bottom';
|
||||
}
|
||||
|
||||
const app_system_name = session.app_system_name || 'odooAi';
|
||||
// zopenerp is easy to grep
|
||||
this.title.setParts({ zopenerp: app_system_name });
|
||||
|
||||
}
|
||||
});
|
||||
20
app_odoo_customize/static/src/webclient/webclient.xml
Normal file
20
app_odoo_customize/static/src/webclient/webclient.xml
Normal file
@@ -0,0 +1,20 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<templates xml:space="preserve">
|
||||
<!-- 移动端nav在下方,可配置处理-->
|
||||
<t t-name="app_web_enterprise.WebClient" t-inherit="web.WebClient" t-inherit-mode="extension">
|
||||
<xpath expr="//t/t" position="attributes">
|
||||
<attribute name="t-if">
|
||||
!state.fullscreen and state.navbar_pos!='bottom'
|
||||
</attribute>
|
||||
</xpath>
|
||||
<xpath expr="//MainComponentsContainer" position="after">
|
||||
<t t-if="!state.fullscreen and state.navbar_pos=='bottom'">
|
||||
<NavBar/>
|
||||
</t>
|
||||
<!-- <div class="row" style="height:200px">-->
|
||||
<!-- 增加Debug pad-->
|
||||
<!-- </div>-->
|
||||
</xpath>
|
||||
</t>
|
||||
|
||||
</templates>
|
||||
@@ -21,6 +21,14 @@
|
||||
</div>
|
||||
</div>
|
||||
</group>
|
||||
<group string="UI Config" name="app_ui_config">
|
||||
<group>
|
||||
<field name="app_navbar_pos_pc"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="app_navbar_pos_mobile"/>
|
||||
</group>
|
||||
</group>
|
||||
<group string="User Menu">
|
||||
<group>
|
||||
<field name="app_show_lang"/>
|
||||
|
||||
Reference in New Issue
Block a user