init app-odoo 15 from 13
9
app_odoo_customize/__init__.py
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from . import models
|
||||||
|
from . import hooks
|
||||||
|
from .hooks import pre_init_hook
|
||||||
|
from .hooks import post_init_hook
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
172
app_odoo_customize/__manifest__.py
Normal file
@@ -0,0 +1,172 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Created on 2018-11-26
|
||||||
|
# author: 广州尚鹏,https://www.sunpop.cn
|
||||||
|
# email: 300883@qq.com
|
||||||
|
# resource of Sunpop
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
# Odoo12在线用户手册(长期更新)
|
||||||
|
# https://www.sunpop.cn/documentation/user/12.0/en/index.html
|
||||||
|
|
||||||
|
# Odoo12在线开发者手册(长期更新)
|
||||||
|
# https://www.sunpop.cn/documentation/12.0/index.html
|
||||||
|
|
||||||
|
# Odoo10在线中文用户手册(长期更新)
|
||||||
|
# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
|
||||||
|
|
||||||
|
# Odoo10离线中文用户手册下载
|
||||||
|
# https://www.sunpop.cn/odoo10_user_manual_document_offline/
|
||||||
|
# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
|
||||||
|
# https://www.sunpop.cn/odoo10_developer_document_offline/
|
||||||
|
# description:
|
||||||
|
|
||||||
|
{
|
||||||
|
'name': 'odoo 15 Customize OEM(Boost, Data reset)',
|
||||||
|
'version': '15.21.10.01',
|
||||||
|
'author': 'Sunpop.cn',
|
||||||
|
'category': 'Productivity',
|
||||||
|
'website': 'https://www.sunpop.cn',
|
||||||
|
'license': 'LGPL-3',
|
||||||
|
'sequence': 2,
|
||||||
|
'summary': """
|
||||||
|
1 click customize odoo, reset data. For quick develop. Set brand, boost, reset data, debug. Language Switcher.
|
||||||
|
Easy Delete data.reset account chart.
|
||||||
|
customize my odoo.
|
||||||
|
""",
|
||||||
|
'description': """
|
||||||
|
|
||||||
|
App Customize Odoo (Change Title,Language,Documentation,Quick Debug)
|
||||||
|
============
|
||||||
|
White label odoo.
|
||||||
|
Support Odoo 14, 13, 12, 11, 10, 9.
|
||||||
|
You can config odoo, make it look like your own platform.
|
||||||
|
1. Deletes Odoo label in footer
|
||||||
|
2. Replaces "Odoo" in Windows title
|
||||||
|
3. Customize Documentation, Support, About links and title in usermenu
|
||||||
|
4. Adds "Developer mode" link to the top right-hand User Menu.
|
||||||
|
5. Adds Quick Language Switcher to the top right-hand User Menu.
|
||||||
|
6. Adds Country flags to the top right-hand User Menu.
|
||||||
|
7. Adds English and Chinese user documentation access to the top right-hand User Menu.
|
||||||
|
8. Adds developer documentation access to the top right-hand User Menu.
|
||||||
|
9. Customize "My odoo.com account" button
|
||||||
|
10. Standalone setting panel, easy to setup.
|
||||||
|
11. Provide 236 country flags.
|
||||||
|
12. Multi-language Support.
|
||||||
|
13. Change Powered by Odoo in login screen.(Please change '../views/app_odoo_customize_view.xml' #15)
|
||||||
|
14. Quick delete test data in Apps: Sales/POS/Purchase/MRP/Inventory/Accounting/Project/Message/Workflow etc.
|
||||||
|
15. Reset All the Sequence to beginning of 1: SO/PO/MO/Invoice...
|
||||||
|
16. Fix odoo reload module translation bug while enable english language
|
||||||
|
17. Stop Odoo Auto Subscribe(Moved to app_odoo_boost)
|
||||||
|
18. Show/Hide Author and Website in Apps Dashboard
|
||||||
|
19. One Click to clear all data (Sometime pls click twice)
|
||||||
|
20. Show quick upgrade in app dashboard, click to show module info not go to odoo.com
|
||||||
|
21. Can clear and reset account chart. Be cautious
|
||||||
|
22. Update online manual and developer document to odoo12
|
||||||
|
23. Add reset or clear website blog data
|
||||||
|
24. Customize Odoo Native Module(eg. Enterprise) Url
|
||||||
|
25. Add remove expense data
|
||||||
|
26. Add multi uninstall modules
|
||||||
|
27. Add odoo boost modules link.
|
||||||
|
28. Easy Menu manager.
|
||||||
|
29. Apps version compare. Add Install version in App list. Add Local updatable filter in app list.
|
||||||
|
30. 1 key export app translate file like .po file.
|
||||||
|
31. Show or hide odoo Referral in the top menu.
|
||||||
|
32. Fix odoo bug of complete name bug of product category and stock location..
|
||||||
|
33. Add Demo Ribbon Setting.
|
||||||
|
34. Add Remove all quality data.
|
||||||
|
35. Fixed for odoo 14.
|
||||||
|
36. Add refresh translate for multi module.
|
||||||
|
37. Easy noupdate manage for External Identifiers(xml_id)
|
||||||
|
38. Add Draggable Dialog enable.
|
||||||
|
39. Only erp manager can see debug menu..
|
||||||
|
40. Fix support for enterprise version.
|
||||||
|
|
||||||
|
This module can help to white label the Odoo.
|
||||||
|
Also helpful for training and support for your odoo end-user.
|
||||||
|
The user can get the help document just by one click.
|
||||||
|
## 在符合odoo开源协议的前提下,去除odoo版权信息,自定义你的odoo
|
||||||
|
可完全自行设置下列 odoo 选项,让 odoo 看上去像是你的软件产品
|
||||||
|
支持Odoo 14,13,12, 11, 10, 9 版本,社区版企业版通用
|
||||||
|
1. 删除菜单导航页脚的 Odoo 标签
|
||||||
|
2. 将弹出窗口中 "Odoo" 设置为自定义名称
|
||||||
|
3. 自定义用户菜单中的 Documentation, Support, About 的链接
|
||||||
|
4. 在用户菜单中增加快速切换开发模式
|
||||||
|
5. 在用户菜单中增加快速切换多国语言
|
||||||
|
6. 对语言菜单进行美化,设置国旗图标
|
||||||
|
7. 在用户菜单中增加中/英文用户手册,可以不用翻墙加速了
|
||||||
|
8. 在用户菜单中增加开发者手册,含python教程,jquery参考,Jinja2模板,PostgresSQL参考
|
||||||
|
9. 在用户菜单中自定义"My odoo.com account"
|
||||||
|
10. 单独设置面板,每个选项都可以自定义
|
||||||
|
11. 提供236个国家的国旗文件(部份需要自行设置文件名)
|
||||||
|
12. 多语言版本
|
||||||
|
13. 自定义登陆界面中的 Powered by Odoo
|
||||||
|
14. 快速删除测试数据,支持模块包括:销售/POS门店/采购/生产/库存/会计/项目/消息与工作流等.
|
||||||
|
15. 将各类单据的序号重置,从1开始,包括:SO/PO/MO/Invoice 等
|
||||||
|
16. 修复odoo启用英文后模块不显示中文的Bug
|
||||||
|
17. 可停用odoo自动订阅功能,避免“同样对象关注2次”bug,同时提升性能
|
||||||
|
18. 显示/隐藏应用的作者和网站-在应用安装面板中
|
||||||
|
19. 一键清除所有数据(视当前数据情况,有时需点击2次)
|
||||||
|
20. 在应用面板显示快速升级按键,点击时不会导航至 odoo.com
|
||||||
|
21. 清除并重置会计科目表
|
||||||
|
22. 全新升级将odoo12用户及开发手册导航至国内网站,或者自己定义的网站
|
||||||
|
23. 增加清除网站数据功能
|
||||||
|
24. 自定义 odoo 原生模块跳转的url(比如企业版模块)
|
||||||
|
25. 增加删除费用报销数据功能
|
||||||
|
26. 增加批量卸载模块功能
|
||||||
|
27. 增加odoo加速功能
|
||||||
|
28. 快速管理顶级菜单
|
||||||
|
29. App版本比较,快速查看可本地更新的模块
|
||||||
|
30. 一键导出翻译文件 po
|
||||||
|
31. 显示或去除 odoo 推荐
|
||||||
|
32. 增加修复品类及区位名的操作
|
||||||
|
33. 增加 Demo 的显示设置
|
||||||
|
34. 增加清除质检数据
|
||||||
|
35. 优化至odoo14适用
|
||||||
|
36. 可为多个模块强制更新翻译
|
||||||
|
37. noupdate字段的快速管理,主要针对 xml_id
|
||||||
|
38. 对话框可拖拽
|
||||||
|
39. 只有系统管理员可以操作快速debug
|
||||||
|
""",
|
||||||
|
'images': ['static/description/banner.gif'],
|
||||||
|
'depends': [
|
||||||
|
'base_setup',
|
||||||
|
'web',
|
||||||
|
'mail',
|
||||||
|
'iap',
|
||||||
|
# 'digest',
|
||||||
|
# when enterprise
|
||||||
|
# 'web_mobile'
|
||||||
|
],
|
||||||
|
'data': [
|
||||||
|
'security/res_groups.xml',
|
||||||
|
'security/ir.model.access.csv',
|
||||||
|
'views/app_odoo_customize_views.xml',
|
||||||
|
'views/app_theme_config_settings_views.xml',
|
||||||
|
'views/res_config_settings_views.xml',
|
||||||
|
'views/ir_views.xml',
|
||||||
|
'views/ir_module_module_views.xml',
|
||||||
|
'views/ir_translation_views.xml',
|
||||||
|
'views/ir_ui_menu_views.xml',
|
||||||
|
'views/ir_ui_view_views.xml',
|
||||||
|
'views/ir_model_fields_views.xml',
|
||||||
|
'views/ir_model_data_views.xml',
|
||||||
|
# data
|
||||||
|
'data/ir_config_parameter_data.xml',
|
||||||
|
'data/ir_module_module_data.xml',
|
||||||
|
# 'data/digest_template_data.xml',
|
||||||
|
'data/res_company_data.xml',
|
||||||
|
],
|
||||||
|
'qweb': [
|
||||||
|
'static/src/xml/*.xml',
|
||||||
|
],
|
||||||
|
'demo': [],
|
||||||
|
'test': [],
|
||||||
|
'css': [],
|
||||||
|
'js': [],
|
||||||
|
# 'pre_init_hook': 'pre_init_hook',
|
||||||
|
# 'post_init_hook': 'post_init_hook',
|
||||||
|
'installable': True,
|
||||||
|
'application': True,
|
||||||
|
'auto_install': True,
|
||||||
|
}
|
||||||
156
app_odoo_customize/data/digest_template_data.xml
Normal file
@@ -0,0 +1,156 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<record id="digest.digest_mail_template" model="mail.template">
|
||||||
|
<field name="body_html"><![CDATA[
|
||||||
|
<table style="width: 100%; border-spacing: 0; font-family: Helvetica,Arial,Verdana,sans-serif;">
|
||||||
|
<tr>
|
||||||
|
<td align="center" valign="top" style="border-collapse: collapse; padding: 0">
|
||||||
|
% set user = ctx.get('user', user)
|
||||||
|
% set company = user.company_id
|
||||||
|
% set data = object.compute_kpis(company, user)
|
||||||
|
% set tips = object.compute_tips(company, user)
|
||||||
|
% set kpi_actions = object.compute_kpis_actions(company, user)
|
||||||
|
% set kpis = data.yesterday.keys()
|
||||||
|
<table style="width: 100%; max-width: 600px; border-spacing: 0; border: 1px solid #e7e7e7; border-bottom: none; color: #6e7172; line-height: 23px; text-align: left;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; padding: 10px 40px; text-align: left;">
|
||||||
|
<strong style="margin-left: -22px; color: #000000; font-size: 22px; line-height: 32px;">${company.name} at a glance</strong>
|
||||||
|
<div style="color: #000000; font-size: 15px; margin-left:-22px;">${datetime.date.today().strftime('%B %d, %Y')}</div>
|
||||||
|
</td>
|
||||||
|
<td style="text-align: right; padding: 10px 40px">
|
||||||
|
<img style="padding: 0px; margin: 0px; height: auto; width: 80px;" src="/logo.png?company=${company.id}"/>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr><td colspan="2" style="text-align: center;">
|
||||||
|
<hr width="95%" style="background-color: rgb(204,204,204); border: medium none; clear: both; display: block; font-size: 0px; min-height: 1px; line-height: 0; margin: 16px 0px 16px 14px;"/>
|
||||||
|
</td></tr>
|
||||||
|
</table>
|
||||||
|
% for kpi in kpis:
|
||||||
|
<table style="border-spacing: 0; width: 100%; max-width: 600px;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; background-color: #ffffff; border-left: 1px solid #e7e7e7; border-right: 1px solid #e7e7e7; line-height: 21px; padding: 0 20px 10px 20px; text-align: left;"><br/>
|
||||||
|
<span style="color: #3d466e; font-size: 18px; font-weight: 500; line-height: 23px;">${object.fields_get()[kpi]['string']}</span>
|
||||||
|
%if kpi in kpi_actions:
|
||||||
|
<span style="float: right;">
|
||||||
|
<a href="/web#action=${kpi_actions[kpi]}">View more</a>
|
||||||
|
</span>
|
||||||
|
%endif
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; margin: 0; padding:0;">
|
||||||
|
<table style="width: 100%; border-spacing: 0; background-color: #f9f9f9; border: 1px solid #e7e7e7; border-top: none;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; margin: 0; padding: 0; display: block; border-top: 2px solid #56b3b5;">
|
||||||
|
<table style="width: 100%; max-width: 199px; border-spacing: 0;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; padding: 20px; text-align: center;">
|
||||||
|
<span style="color: #56b3b5; font-size: 35px; font-weight: bold; text-decoration: none; line-height: 36px;">${data['yesterday'][kpi][kpi]}</span><br/>
|
||||||
|
<span style="color: #888888; display: inline-block; font-size: 12px; line-height: 18px; text-transform: uppercase;">Yesterday</span>
|
||||||
|
% if data['yesterday'][kpi]['margin'] != 0.0:
|
||||||
|
<span style="color: #888888; display: block; font-size: 12px; line-height: 18px; text-transform: uppercase;">
|
||||||
|
% if data['yesterday'][kpi]['margin'] > 0.0:
|
||||||
|
<span style="color: #0bbc22;">▲</span>${"%.2f" % data['yesterday'][kpi]['margin']} %
|
||||||
|
% endif
|
||||||
|
% if data['yesterday'][kpi]['margin'] < 0.0:
|
||||||
|
<span style="color: #ff0000;">▼</span>${"%.2f" % data['yesterday'][kpi]['margin']} %
|
||||||
|
% endif
|
||||||
|
</span>
|
||||||
|
% endif
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td style="border-collapse: collapse; margin: 0; padding: 0; border-top: 2px solid #9a5b82;">
|
||||||
|
<table style="width: 100%; max-width: 199px; border-spacing: 0; margin: 0; padding: 0;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; padding: 20px; text-align: center;">
|
||||||
|
<span style="color: #9a5b82; font-size: 35px; font-weight: bold; text-decoration: none; line-height: 36px;">${data['lastweek'][kpi][kpi]}</span><br/>
|
||||||
|
<span style="color: #888888; display: inline-block; font-size: 12px; line-height: 18px; text-transform: uppercase;">Last 7 Days</span>
|
||||||
|
% if data['lastweek'][kpi]['margin'] != 0.0:
|
||||||
|
<span style="color: #888888; display: block; font-size: 12px; line-height: 18px; text-transform: uppercase;">
|
||||||
|
% if data['lastweek'][kpi]['margin'] > 0.0:
|
||||||
|
<span style="color: #0bbc22;">▲</span>${"%.2f" % data['lastweek'][kpi]['margin']} %
|
||||||
|
% endif
|
||||||
|
% if data['lastweek'][kpi]['margin'] < 0.0:
|
||||||
|
<span style="color: #ff0000;">▼</span>${"%.2f" % data['lastweek'][kpi]['margin']} %
|
||||||
|
%endif
|
||||||
|
</span>
|
||||||
|
%endif
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
<td style="border-collapse: collapse; margin: 0; padding: 0; border-top: 2px solid #56b3b5;">
|
||||||
|
<table style="width: 100%; max-width: 199px; border-spacing: 0; margin: 0; padding: 0;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; margin: 0; padding: 20; text-align: center;">
|
||||||
|
<span style="color: #56b3b5; font-size: 35px; font-weight: bold; text-decoration: none; line-height: 36px">${data['lastmonth'][kpi][kpi]}</span><br/>
|
||||||
|
<span style="color: #888888; display: inline-block; font-size: 12px; line-height: 18px; text-transform: uppercase;">Last 30 Days</span>
|
||||||
|
% if data['lastmonth'][kpi]['margin'] != 0.0:
|
||||||
|
<span style="color: #888888; display: block; font-size: 12px; line-height: 18px; text-transform: uppercase;">
|
||||||
|
% if data['lastmonth'][kpi]['margin'] > 0.0:
|
||||||
|
<span style="color: #0bbc22;">▲</span>${"%.2f" % data['lastmonth'][kpi]['margin']} %
|
||||||
|
% endif
|
||||||
|
% if data['lastmonth'][kpi]['margin'] < 0.0:
|
||||||
|
<span style="color: #ff0000;">▼</span>${"%.2f" % data['lastmonth'][kpi]['margin']} %
|
||||||
|
%endif
|
||||||
|
</span>
|
||||||
|
%endif
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
% endfor
|
||||||
|
% if tips:
|
||||||
|
<table style="width: 100%; max-width: 600px; margin-top: 5px; border: 1px solid #e7e7e7;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; background-color: #ffffff; line-height: 21px; padding: 0px 20px;"><br/>
|
||||||
|
<div style="color: #3d466e; line-height: 23px;">${ctx['tip_description']|safe}</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
% endif
|
||||||
|
<table style="width: 100%; max-width: 600px; margin-top: 5px; border: 1px solid #e7e7e7;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; background-color: #ffffff; line-height: 21px; padding: 0 20px 10px 20px; text-align: center;"><br/>
|
||||||
|
<div style="color: #3d466e; font-size: 16px; font-weight: 600; line-height: 23px;">Run your business from anywhere with Odoo Mobile.</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div style="text-align: center;"><a href="https://www.sunpop.cn" target="_blank"><img src="/digest/static/src/img/google_play.png" style="display: inline-block; height: 30px; margin-left: auto; margin-right: 12px;"/></a><a href="https://www.sunpop.cn" target="_blank"><img src="/digest/static/src/img/app_store.png" style="display: inline-block; height: 30px; margin-left: 12px; margin-right: auto;"/></a>
|
||||||
|
</div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
<table style="margin-top: 5px; border: 1px solid #e7e7e7; font-size: 15px; width: 100%; max-width: 600px;">
|
||||||
|
<tr>
|
||||||
|
<td style="border-collapse: collapse; margin: 0; padding: 10px 20px;">
|
||||||
|
% if user.has_group('base.group_system'):
|
||||||
|
<div style="margin-top: 20px;">
|
||||||
|
Want to customize the email?
|
||||||
|
<a href="/web#view_type=form&model=digest.digest&id=${object.id}" target="_blank" style="color: #875A7B;">Choose the metrics you care about</a>
|
||||||
|
</div>
|
||||||
|
<br />
|
||||||
|
% endif
|
||||||
|
<p style="font-size: 11px; margin-top: 10px;">
|
||||||
|
<strong>
|
||||||
|
Sent by
|
||||||
|
<a href="https://www.odoo.com" style="text-decoration: none; color: #875A7B;">Odoo</a> - <a href="/web#view_type=form&model=digest.digest&id=${object.id}" target="_blank" style="color: #888888;">Unsubscribe</a>
|
||||||
|
</strong>
|
||||||
|
</p>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
]]></field>
|
||||||
|
</record>
|
||||||
|
</odoo>
|
||||||
24
app_odoo_customize/data/ir_config_parameter_data.xml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<openerp>
|
||||||
|
<data noupdate="1">
|
||||||
|
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_system_name', 'odooApp13')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_lang', 'True')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_debug', 'True')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_documentation', 'True')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_documentation_dev', 'True')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_support', 'True')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_account', 'True')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_enterprise', 'False')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_share', 'False')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_show_poweredby', 'False')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_documentation_url', 'https://www.sunpop.cn/documentation/user/13.0/zh_CN/index.html')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_documentation_dev_url', 'https://www.sunpop.cn/documentation/13.0/index.html')"/>
|
||||||
|
<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_ribbon_color', '#f0f0f0')"/>
|
||||||
|
<function model="ir.config_parameter" name="set_param" eval="('app_ribbon_background_color', 'rgba(255,0,0,.4)')"/>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
||||||
68
app_odoo_customize/data/ir_module_module_data.xml
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<data>
|
||||||
|
<record model="ir.module.module" id="base.module_web_studio">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_timesheet_grid">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_account_accountant">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_helpdesk">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_hr_appraisal">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_marketing_automation">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_mrp_plm">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_quality_control">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_sale_ebay">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_sale_subscription">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_sign">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_stock_barcode">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_voip">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_website_calendar">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_mrp_workorder">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
|
||||||
|
<record model="ir.module.module" id="base.module_web_mobile">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
9
app_odoo_customize/data/res_company_data.xml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<odoo>
|
||||||
|
<data noupdate="1">
|
||||||
|
<!-- 创建数据库时首个公司信息 -->
|
||||||
|
<record id="base.main_company" model="res.company">
|
||||||
|
<field name="website">https://www.sunpop.cn</field>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</odoo>
|
||||||
49
app_odoo_customize/hooks.py
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
# Created on 2018-10-12
|
||||||
|
# author: 广州尚鹏,https://www.sunpop.cn
|
||||||
|
# email: 300883@qq.com
|
||||||
|
# resource of Sunpop
|
||||||
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl).
|
||||||
|
|
||||||
|
# Odoo在线中文用户手册(长期更新)
|
||||||
|
# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
|
||||||
|
|
||||||
|
# Odoo10离线中文用户手册下载
|
||||||
|
# https://www.sunpop.cn/odoo10_user_manual_document_offline/
|
||||||
|
# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
|
||||||
|
# https://www.sunpop.cn/odoo10_developer_document_offline/
|
||||||
|
# description:
|
||||||
|
|
||||||
|
from odoo import api, SUPERUSER_ID, _
|
||||||
|
|
||||||
|
|
||||||
|
def pre_init_hook(cr):
|
||||||
|
try:
|
||||||
|
# 更新企业版指向
|
||||||
|
sql = "UPDATE ir_module_module SET website = '%s' WHERE license like '%s' and website <> ''" % ('https://www.sunpop.cn', 'OEEL%')
|
||||||
|
cr.execute(sql)
|
||||||
|
cr.commit()
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def post_init_hook(cr, registry):
|
||||||
|
# a = check_module_installed(cr, ['app_web_superbar','aaaaa'])
|
||||||
|
pass
|
||||||
|
# cr.execute("")
|
||||||
|
|
||||||
|
def uninstall_hook(cr, registry):
|
||||||
|
"""
|
||||||
|
数据初始化,卸载时执行
|
||||||
|
"""
|
||||||
|
pass
|
||||||
|
|
||||||
|
def check_module_installed(cr, modules):
|
||||||
|
# modules 输入参数是个 list,如 ['base', 'sale']
|
||||||
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||||
|
installed = False
|
||||||
|
m = env['ir.module.module'].sudo().search([('name', 'in', modules), ('state', 'in', ['installed', 'to install', 'to upgrade'])])
|
||||||
|
if len(m) == len(modules):
|
||||||
|
installed = True
|
||||||
|
return len(m)
|
||||||
|
|
||||||
535
app_odoo_customize/i18n/zh_CN.po
Normal file
@@ -0,0 +1,535 @@
|
|||||||
|
# Translation of Odoo Server.
|
||||||
|
# This file contains the translation of the following modules:
|
||||||
|
# * app_odoo_customize
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: Odoo Server 13.0+e-20200628\n"
|
||||||
|
"Report-Msgid-Bugs-To: \n"
|
||||||
|
"POT-Creation-Date: 2020-11-02 08:16+0000\n"
|
||||||
|
"PO-Revision-Date: 2020-11-02 08:16+0000\n"
|
||||||
|
"Last-Translator: \n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"MIME-Version: 1.0\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Content-Transfer-Encoding: \n"
|
||||||
|
"Plural-Forms: \n"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#. openerp-web
|
||||||
|
#: code:addons/app_odoo_customize/static/src/xml/res_config_edition.xml:0
|
||||||
|
#, python-format
|
||||||
|
msgid "(Sunpop.cn Professional Edition)"
|
||||||
|
msgstr "(Sunpop.cn 专业版)"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid ""
|
||||||
|
"<span class=\"col-3 col-lg-2 text-left\">\n"
|
||||||
|
" Accounting <span class=\"fa fa-lg fa-building-o\" title=\"Values set here are company-specific.\" groups=\"base.group_multi_company\"/>\n"
|
||||||
|
" </span>"
|
||||||
|
msgstr ""
|
||||||
|
"<span class=\"col-3 col-lg-2 text-left\">\n"
|
||||||
|
" 财务 <span class=\"fa fa-lg fa-building-o\" title=\"只处理当前公司的数据.\" groups=\"base.group_multi_company\"/>\n"
|
||||||
|
" </span>"
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">All Business</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">所有业务数据</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Base Models</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">基础数据</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Expense</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">费用</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Inventory</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">库存</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">MRP</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">制造</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">POS</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">POS收银</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Project</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">项目</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Purchase</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">采购</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Quality</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">质检</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Sale</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">销售</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Website And Blog</span>"
|
||||||
|
msgstr "<span class=\"col-3 col-lg-2 text-left\">网站与博客</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "<span>Set to False to hide</span>"
|
||||||
|
msgstr "<span>设置为 False 则不显示</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#. openerp-web
|
||||||
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Activate the developer mode"
|
||||||
|
msgstr "激活开发者模式"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#. openerp-web
|
||||||
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Activate the developer mode (with assets)"
|
||||||
|
msgstr "激活开发者模式 (assets)"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Apply"
|
||||||
|
msgstr "应用"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "取消"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Clean and reset Account Chart"
|
||||||
|
msgstr "清除会计科目,便于重置"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Click to set"
|
||||||
|
msgstr "点击设置"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model,name:app_odoo_customize.model_res_config_settings
|
||||||
|
msgid "Config Settings"
|
||||||
|
msgstr "配置设置"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.actions.act_window,name:app_odoo_customize.action_app_theme_config
|
||||||
|
#: model:ir.ui.menu,name:app_odoo_customize.menu_app_theme_config
|
||||||
|
msgid "Customize Debrand"
|
||||||
|
msgstr "定制我的odoo"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_enterprise_url
|
||||||
|
msgid "Customize Module Url(eg. Enterprise)"
|
||||||
|
msgstr "自定义模块链接(如企业版)"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Data Cleaning (Be careful to do that!)"
|
||||||
|
msgstr "数据清理(请谨慎操作!)"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#. openerp-web
|
||||||
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Deactivate the developer mode"
|
||||||
|
msgstr "取消开发者模式"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All BOM"
|
||||||
|
msgstr "删除所有物料清单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Expense and Sheet"
|
||||||
|
msgstr "删除所有费用与报销申请"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid ""
|
||||||
|
"Delete All MRP/Sale/Purchase/Account/MRP/Inventory/Project/Message/Workflow"
|
||||||
|
msgstr ""
|
||||||
|
"清除所有业务数据 MRP/Sale/Purchase/Account/MRP/Inventory/Project/Message/Workflow"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Manufacturing Order"
|
||||||
|
msgstr "删除所有生产单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Message"
|
||||||
|
msgstr "删除所有消息"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Move/Picking/Package/Lot"
|
||||||
|
msgstr "删除所有库存调拨/拣货/包装/批次数据"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All POS Order"
|
||||||
|
msgstr "删除所有POS订单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Product"
|
||||||
|
msgstr "删除所有产品及变体"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Product Attribute"
|
||||||
|
msgstr "删除所有产品属性"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Project/Task/Forecast"
|
||||||
|
msgstr "删除所有项目/任务/预测"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Purchase Order and Requisition"
|
||||||
|
msgstr "删除所有询价单、采购单,采购招标"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Quality"
|
||||||
|
msgstr "删除所有质检单据"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Quality Setting"
|
||||||
|
msgstr "删除所有质检设置"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Sales Order"
|
||||||
|
msgstr "删除所有报价单、销售单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Voucher/Invoice/Bill"
|
||||||
|
msgstr "删除所有收据/发票/账单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Website/Blog"
|
||||||
|
msgstr "删除所有网站/博客"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Delete All Workflow"
|
||||||
|
msgstr "删除所有工作流"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_documentation_dev_url
|
||||||
|
msgid "Developer Documentation Url"
|
||||||
|
msgstr "开发者手册链接"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#. openerp-web
|
||||||
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
|
#, python-format
|
||||||
|
msgid "Developer Manual"
|
||||||
|
msgstr "开发者手册"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_web_environment_ribbon_backend__display_name
|
||||||
|
msgid "Display Name"
|
||||||
|
msgstr "显示名称"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_documentation_url
|
||||||
|
msgid "Documentation Url"
|
||||||
|
msgstr "用户手册链接"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.actions.act_window,name:app_odoo_customize.action_server_module_multi_get_po
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.app_module_view_kanban
|
||||||
|
msgid "Export Translation"
|
||||||
|
msgstr "导出翻译"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_web_environment_ribbon_backend__id
|
||||||
|
msgid "ID"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model,name:app_odoo_customize.model_base_language_install
|
||||||
|
msgid "Install Language"
|
||||||
|
msgstr "安装语言"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_web_environment_ribbon_backend____last_update
|
||||||
|
msgid "Last Modified on"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.ui.menu,name:app_odoo_customize.menu_app_demo_data
|
||||||
|
msgid "Load demo data"
|
||||||
|
msgstr "加载演示数据"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_ir_module_module__local_updatable
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.app_view_module_filter
|
||||||
|
msgid "Local updatable"
|
||||||
|
msgstr "可本地更新"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model,name:app_odoo_customize.model_ir_module_module
|
||||||
|
msgid "Module"
|
||||||
|
msgstr "模块"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_account_title
|
||||||
|
msgid "My Odoo.com Account Title"
|
||||||
|
msgstr "我的帐户显示标题"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_account_url
|
||||||
|
msgid "My Odoo.com Account Url"
|
||||||
|
msgstr "我的帐户链接"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Please confirm to delete the select data?"
|
||||||
|
msgstr "您确认要删除指定数据?"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.replace_login
|
||||||
|
msgid "Powered by <span>odooApp</span>"
|
||||||
|
msgstr "技术支持 <span>Sunpop.cn</span>"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.actions.server,name:app_odoo_customize.action_server_module_multi_refresh_po
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.app_module_view_kanban
|
||||||
|
msgid "Refresh Translation"
|
||||||
|
msgstr "刷新翻译"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Reset Category And Location Complete Name"
|
||||||
|
msgstr "重置品类及区位显示名"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_system_name
|
||||||
|
msgid "Setup System Name,which replace Odoo"
|
||||||
|
msgstr "设定系统名称,代替原 Odoo 字样"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__group_show_author_in_apps
|
||||||
|
#: model:res.groups,name:app_odoo_customize.group_show_author_in_apps
|
||||||
|
msgid "Show Author in Apps Dashboard"
|
||||||
|
msgstr "显示应用的作者-在安装面板中"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_ribbon_name
|
||||||
|
msgid "Show Demo Ribbon"
|
||||||
|
msgstr "显示全站测试标签"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_documentation_dev
|
||||||
|
msgid "Show Developer Documentation"
|
||||||
|
msgstr "显示开发者文档"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_documentation
|
||||||
|
msgid "Show Documentation"
|
||||||
|
msgstr "显示文档"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_enterprise
|
||||||
|
msgid "Show Enterprise Tag"
|
||||||
|
msgstr "显示升级企业版标签提醒"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_account
|
||||||
|
msgid "Show My Account"
|
||||||
|
msgstr "显示我的帐户"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__module_odoo_referral
|
||||||
|
msgid "Show Odoo Referral"
|
||||||
|
msgstr "显示Odoo推荐"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_poweredby
|
||||||
|
msgid "Show Powered by Odoo"
|
||||||
|
msgstr "显示Powered by Odoo"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_debug
|
||||||
|
msgid "Show Quick Debug"
|
||||||
|
msgstr "显示快速调试"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_lang
|
||||||
|
msgid "Show Quick Language Switcher"
|
||||||
|
msgstr "显示快速多语言切换"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:res.groups,name:app_odoo_customize.group_show_quick_upgrade
|
||||||
|
msgid "Show Quick Upgrade in Apps Dashboard"
|
||||||
|
msgstr "在应用面板显示快速升级按键"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_share
|
||||||
|
msgid "Show Share Dashboard"
|
||||||
|
msgstr "显示分享Odoo"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_show_support
|
||||||
|
msgid "Show Support"
|
||||||
|
msgstr "显示支持"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_support_url
|
||||||
|
msgid "Support Url"
|
||||||
|
msgstr "支持链接"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,field_description:app_odoo_customize.field_res_config_settings__app_system_name
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "System Name"
|
||||||
|
msgstr "系统名称"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.app_edit_menu_access_search
|
||||||
|
msgid "Top Menu"
|
||||||
|
msgstr "顶级菜单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__group_show_author_in_apps
|
||||||
|
msgid "Uncheck to Hide Author and Website in Apps Dashboard"
|
||||||
|
msgstr "不选中则会隐藏 App 作者及网站"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_enterprise
|
||||||
|
msgid "Uncheck to hide the Enterprise tag"
|
||||||
|
msgstr "不选中则会隐藏升级到企业版标签"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_share
|
||||||
|
msgid "Uncheck to hide the Odoo Share Dashboard"
|
||||||
|
msgstr "不选中则会隐藏odoo分享"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_poweredby
|
||||||
|
msgid "Uncheck to hide the Powered by text"
|
||||||
|
msgstr "不勾选则不显示Odoo Powered by"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__module_odoo_referral
|
||||||
|
msgid "Uncheck to remove the Odoo Referral"
|
||||||
|
msgstr "不勾选则不显示Odoo推荐"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.app_module_view_kanban
|
||||||
|
msgid "Uninstall"
|
||||||
|
msgstr "卸载"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.actions.server,name:app_odoo_customize.action_server_module_multi_uninstall
|
||||||
|
msgid "Uninstall Modules"
|
||||||
|
msgstr "卸载应用"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.app_module_view_kanban
|
||||||
|
msgid "Upgrade"
|
||||||
|
msgstr "升级"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "User Menu"
|
||||||
|
msgstr "用户菜单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "User Menu Content"
|
||||||
|
msgstr "菜单项具体操作设置"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model,name:app_odoo_customize.model_ir_ui_view
|
||||||
|
msgid "View"
|
||||||
|
msgstr "视图"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "Visit our website for more apps and Support. https://www.sunpop.cn"
|
||||||
|
msgstr "请访问我们的网站获取更多支持. http://www.sunpop.cn"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model,name:app_odoo_customize.model_web_environment_ribbon_backend
|
||||||
|
msgid "Web Environment Ribbon Backend"
|
||||||
|
msgstr "全站测试标签"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_account
|
||||||
|
msgid "When enable,User can login to your website"
|
||||||
|
msgstr "启用后,会显示登录到你的网站"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_lang
|
||||||
|
msgid "When enable,User can quick switch language in user menu"
|
||||||
|
msgstr "启用后,会显示快速语言切换菜单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_documentation_dev
|
||||||
|
msgid "When enable,User can visit development documentation"
|
||||||
|
msgstr "启用后,会显示开发手册链接"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_documentation
|
||||||
|
msgid "When enable,User can visit user manual"
|
||||||
|
msgstr "启用后,会显示用户手册链接"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_support
|
||||||
|
msgid "When enable,User can vist your support site"
|
||||||
|
msgstr "启用后,会显示在线支持链接"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model:ir.model.fields,help:app_odoo_customize.field_res_config_settings__app_show_debug
|
||||||
|
msgid "When enable,everyone login can see the debug menu"
|
||||||
|
msgstr "启用后,会显示快速调试菜单"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "White Label Setting"
|
||||||
|
msgstr "个性化odoo设置"
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#. openerp-web
|
||||||
|
#: code:addons/app_odoo_customize/static/src/xml/res_config_edition.xml:0
|
||||||
|
#: model:ir.ui.menu,name:app_odoo_customize.menu_app_group
|
||||||
|
#, python-format
|
||||||
|
msgid "odooApp"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#. module: app_odoo_customize
|
||||||
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
msgid "odooApp Customize Settings"
|
||||||
|
msgstr "odooApp 定制化设置"
|
||||||
8
app_odoo_customize/models/__init__.py
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from . import res_config_settings
|
||||||
|
from . import ir_ui_view
|
||||||
|
from . import base_language_install
|
||||||
|
from . import ir_module_module
|
||||||
|
from . import web_environment_ribbon_backend
|
||||||
|
# from . import ir_ui_menu
|
||||||
18
app_odoo_customize/models/base_language_install.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# License LGPL-3.0 or later (http://www.gnu.org/licenses/lgpl.html).
|
||||||
|
|
||||||
|
from odoo import api, fields, models, _
|
||||||
|
|
||||||
|
|
||||||
|
class BaseLanguageInstall(models.TransientModel):
|
||||||
|
_inherit = "base.language.install"
|
||||||
|
|
||||||
|
def lang_install(self):
|
||||||
|
self.ensure_one()
|
||||||
|
if self.overwrite:
|
||||||
|
self.env.cr.execute("""
|
||||||
|
delete from ir_translation
|
||||||
|
where lang=%s
|
||||||
|
""", (self.lang,))
|
||||||
|
self.env.cr.commit()
|
||||||
|
return super(BaseLanguageInstall, self).lang_install()
|
||||||
58
app_odoo_customize/models/ir_module_module.py
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from odoo import api, fields, models, modules, tools, _
|
||||||
|
|
||||||
|
import operator
|
||||||
|
|
||||||
|
class IrModule(models.Model):
|
||||||
|
_inherit = 'ir.module.module'
|
||||||
|
|
||||||
|
# attention: Incorrect field names !!
|
||||||
|
# installed_version refers the latest version (the one on disk)
|
||||||
|
# latest_version refers the installed version (the one in database)
|
||||||
|
# published_version refers the version available on the repository
|
||||||
|
# installed_version = fields.Char('Latest Version', compute='_get_latest_version')
|
||||||
|
# latest_version = fields.Char('Installed Version', readonly=True)
|
||||||
|
|
||||||
|
local_updatable = fields.Boolean('Local updatable', compute='_get_latest_version', compute_sudo=False, default=False, store=True)
|
||||||
|
|
||||||
|
def module_multi_uninstall(self):
|
||||||
|
""" Perform the various steps required to uninstall a module completely
|
||||||
|
including the deletion of all database structures created by the module:
|
||||||
|
tables, columns, constraints, etc.
|
||||||
|
"""
|
||||||
|
modules = self.browse(self.env.context.get('active_ids'))
|
||||||
|
[module.button_immediate_uninstall() for module in modules if module not in ['base', 'web']]
|
||||||
|
|
||||||
|
# 更新翻译,当前语言
|
||||||
|
def module_multi_refresh_po(self):
|
||||||
|
lang = self.env.user.lang
|
||||||
|
modules = self.browse(self.env.context.get('active_ids'))
|
||||||
|
# 先清理, odoo原生经常清理不干净
|
||||||
|
for rec in modules:
|
||||||
|
translate = self.env['ir.translation'].search([
|
||||||
|
('lang', '=', lang),
|
||||||
|
('module', '=', rec.name)
|
||||||
|
])
|
||||||
|
translate.sudo().unlink()
|
||||||
|
# 再重载
|
||||||
|
self.sudo().with_context(overwrite=True)._update_translations(lang)
|
||||||
|
|
||||||
|
def button_get_po(self):
|
||||||
|
self.ensure_one()
|
||||||
|
action = self.env.ref('app_odoo_customize.action_server_module_multi_get_po').read()[0]
|
||||||
|
action['context'].update({
|
||||||
|
'default_lang': self.env.user.lang,
|
||||||
|
})
|
||||||
|
return action
|
||||||
|
|
||||||
|
@api.depends('name', 'state')
|
||||||
|
def _get_latest_version(self):
|
||||||
|
default_version = modules.adapt_version('1.0')
|
||||||
|
for module in self:
|
||||||
|
module.installed_version = self.get_module_info(module.name).get('version', default_version)
|
||||||
|
if module.installed_version and module.latest_version and operator.gt(module.installed_version, module.latest_version):
|
||||||
|
module.local_updatable = True
|
||||||
|
else:
|
||||||
|
module.local_updatable = False
|
||||||
|
|
||||||
26
app_odoo_customize/models/ir_ui_menu.py
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import re
|
||||||
|
|
||||||
|
from odoo import api, fields, models, tools, _
|
||||||
|
|
||||||
|
MENU_ITEM_SEPARATOR = "/"
|
||||||
|
NUMBER_PARENS = re.compile(r"\(([0-9]+)\)")
|
||||||
|
|
||||||
|
|
||||||
|
class IrUiMenu(models.Model):
|
||||||
|
_inherit = 'ir.ui.menu'
|
||||||
|
|
||||||
|
def _get_full_name(self, level=6):
|
||||||
|
""" Return the full name of ``self`` (up to a certain level). """
|
||||||
|
if level <= 0:
|
||||||
|
return '...'
|
||||||
|
if self.parent_id:
|
||||||
|
try:
|
||||||
|
name = self.parent_id._get_full_name(level - 1) + MENU_ITEM_SEPARATOR + (self.name or "")
|
||||||
|
except Exception:
|
||||||
|
name = self.name or "..."
|
||||||
|
else:
|
||||||
|
name = self.name
|
||||||
|
return name
|
||||||
|
|
||||||
18
app_odoo_customize/models/ir_ui_view.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from odoo import api, fields, models, _
|
||||||
|
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
class View(models.Model):
|
||||||
|
_inherit = 'ir.ui.view'
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def render_template(self, template, values=None, engine='ir.qweb'):
|
||||||
|
if template in ['web.login', 'web.webclient_bootstrap']:
|
||||||
|
if not values:
|
||||||
|
values = {}
|
||||||
|
values["title"] = self.env['ir.config_parameter'].sudo().get_param("app_system_name", "odooApp")
|
||||||
|
return super(View, self).render_template(template, values=values, engine=engine)
|
||||||
541
app_odoo_customize/models/res_config_settings.py
Normal file
@@ -0,0 +1,541 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import logging
|
||||||
|
|
||||||
|
from odoo import api, fields, models, _
|
||||||
|
|
||||||
|
_logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
class ResConfigSettings(models.TransientModel):
|
||||||
|
_inherit = 'res.config.settings'
|
||||||
|
|
||||||
|
app_system_name = fields.Char('System Name', help="Setup System Name,which replace Odoo")
|
||||||
|
app_show_lang = fields.Boolean('Show Quick Language Switcher',
|
||||||
|
help="When enable,User can quick switch language in user menu")
|
||||||
|
app_show_debug = fields.Boolean('Show Quick Debug', help="When enable,everyone login can see the debug menu")
|
||||||
|
app_show_documentation = fields.Boolean('Show Documentation', help="When enable,User can visit user manual")
|
||||||
|
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")
|
||||||
|
app_show_account = fields.Boolean('Show My Account', help="When enable,User can login to your website")
|
||||||
|
app_show_enterprise = fields.Boolean('Show Enterprise Tag', help="Uncheck to hide the Enterprise tag")
|
||||||
|
app_show_share = fields.Boolean('Show Share Dashboard', help="Uncheck to hide the Odoo Share Dashboard")
|
||||||
|
app_show_poweredby = fields.Boolean('Show Powered by Odoo', help="Uncheck to hide the Powered by text")
|
||||||
|
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')
|
||||||
|
app_documentation_dev_url = fields.Char('Developer Documentation Url')
|
||||||
|
app_support_url = fields.Char('Support Url')
|
||||||
|
app_account_title = fields.Char('My Odoo.com Account Title')
|
||||||
|
app_account_url = fields.Char('My Odoo.com Account Url')
|
||||||
|
app_enterprise_url = fields.Char('Customize Module Url(eg. Enterprise)')
|
||||||
|
app_ribbon_name = fields.Char('Show Demo Ribbon')
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def get_values(self):
|
||||||
|
res = super(ResConfigSettings, self).get_values()
|
||||||
|
ir_config = self.env['ir.config_parameter'].sudo()
|
||||||
|
app_system_name = ir_config.get_param('app_system_name', default='odooApp')
|
||||||
|
|
||||||
|
app_show_lang = True if ir_config.get_param('app_show_lang') == "True" else False
|
||||||
|
app_show_debug = True if ir_config.get_param('app_show_debug') == "True" else False
|
||||||
|
app_show_documentation = True if ir_config.get_param('app_show_documentation') == "True" else False
|
||||||
|
app_show_documentation_dev = True if ir_config.get_param('app_show_documentation_dev') == "True" else False
|
||||||
|
app_show_support = True if ir_config.get_param('app_show_support') == "True" else False
|
||||||
|
app_show_account = True if ir_config.get_param('app_show_account') == "True" else False
|
||||||
|
app_show_enterprise = True if ir_config.get_param('app_show_enterprise') == "True" else False
|
||||||
|
app_show_share = True if ir_config.get_param('app_show_share') == "True" else False
|
||||||
|
app_show_poweredby = True if ir_config.get_param('app_show_poweredby') == "True" else False
|
||||||
|
|
||||||
|
app_documentation_url = ir_config.get_param('app_documentation_url',
|
||||||
|
default='https://www.sunpop.cn/documentation/user/12.0/en/index.html')
|
||||||
|
app_documentation_dev_url = ir_config.get_param('app_documentation_dev_url',
|
||||||
|
default='https://www.sunpop.cn/documentation/12.0/index.html')
|
||||||
|
app_support_url = ir_config.get_param('app_support_url', default='https://www.sunpop.cn/trial/')
|
||||||
|
app_account_title = ir_config.get_param('app_account_title', default='My Online Account')
|
||||||
|
app_account_url = ir_config.get_param('app_account_url', default='https://www.sunpop.cn/my-account/')
|
||||||
|
app_enterprise_url = ir_config.get_param('app_enterprise_url', default='https://www.sunpop.cn')
|
||||||
|
app_ribbon_name = ir_config.get_param('app_ribbon_name', default='*Sunpop.cn')
|
||||||
|
res.update(
|
||||||
|
app_system_name=app_system_name,
|
||||||
|
app_show_lang=app_show_lang,
|
||||||
|
app_show_debug=app_show_debug,
|
||||||
|
app_show_documentation=app_show_documentation,
|
||||||
|
app_show_documentation_dev=app_show_documentation_dev,
|
||||||
|
app_show_support=app_show_support,
|
||||||
|
app_show_account=app_show_account,
|
||||||
|
app_show_enterprise=app_show_enterprise,
|
||||||
|
app_show_share=app_show_share,
|
||||||
|
app_show_poweredby=app_show_poweredby,
|
||||||
|
|
||||||
|
app_documentation_url=app_documentation_url,
|
||||||
|
app_documentation_dev_url=app_documentation_dev_url,
|
||||||
|
app_support_url=app_support_url,
|
||||||
|
app_account_title=app_account_title,
|
||||||
|
app_account_url=app_account_url,
|
||||||
|
app_enterprise_url=app_enterprise_url,
|
||||||
|
app_ribbon_name=app_ribbon_name
|
||||||
|
)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def set_values(self):
|
||||||
|
super(ResConfigSettings, self).set_values()
|
||||||
|
ir_config = self.env['ir.config_parameter'].sudo()
|
||||||
|
ir_config.set_param("app_system_name", self.app_system_name or "")
|
||||||
|
ir_config.set_param("app_show_lang", self.app_show_lang or "False")
|
||||||
|
ir_config.set_param("app_show_debug", self.app_show_debug or "False")
|
||||||
|
ir_config.set_param("app_show_documentation", self.app_show_documentation or "False")
|
||||||
|
ir_config.set_param("app_show_documentation_dev", self.app_show_documentation_dev or "False")
|
||||||
|
ir_config.set_param("app_show_support", self.app_show_support or "False")
|
||||||
|
ir_config.set_param("app_show_account", self.app_show_account or "False")
|
||||||
|
ir_config.set_param("app_show_enterprise", self.app_show_enterprise or "False")
|
||||||
|
ir_config.set_param("app_show_share", self.app_show_share or "False")
|
||||||
|
ir_config.set_param("app_show_poweredby", self.app_show_poweredby or "False")
|
||||||
|
|
||||||
|
ir_config.set_param("app_documentation_url",
|
||||||
|
self.app_documentation_url or "https://www.sunpop.cn/documentation/user/12.0/en/index.html")
|
||||||
|
ir_config.set_param("app_documentation_dev_url",
|
||||||
|
self.app_documentation_dev_url or "https://www.sunpop.cn/documentation/12.0/index.html")
|
||||||
|
ir_config.set_param("app_support_url", self.app_support_url or "https://www.sunpop.cn/trial/")
|
||||||
|
ir_config.set_param("app_account_title", self.app_account_title or "My Online Account")
|
||||||
|
ir_config.set_param("app_account_url", self.app_account_url or "https://www.sunpop.cn/my-account/")
|
||||||
|
ir_config.set_param("app_enterprise_url", self.app_enterprise_url or "https://www.sunpop.cn")
|
||||||
|
ir_config.set_param("app_ribbon_name", self.app_ribbon_name or "*Sunpop.cn")
|
||||||
|
|
||||||
|
def set_module_url(self):
|
||||||
|
sql = "UPDATE ir_module_module SET website = '%s' WHERE license like '%s' and website <> ''" % (self.app_enterprise_url, 'OEEL%')
|
||||||
|
try:
|
||||||
|
self._cr.execute(sql)
|
||||||
|
self._cr.commit()
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
|
||||||
|
# 清数据,o=对象, s=序列
|
||||||
|
def remove_app_data(self, o, s=[]):
|
||||||
|
for line in o:
|
||||||
|
# 检查是否存在
|
||||||
|
try:
|
||||||
|
if not self.env['ir.model']._get(line):
|
||||||
|
continue
|
||||||
|
except Exception as e:
|
||||||
|
_logger.warning('remove data error get ir.model: %s,%s', line, e)
|
||||||
|
continue
|
||||||
|
obj_name = line
|
||||||
|
obj = self.pool.get(obj_name)
|
||||||
|
if not obj:
|
||||||
|
# 有时安装出错数据乱,没有 obj 但有 table
|
||||||
|
t_name = obj_name.replace('.', '_')
|
||||||
|
else:
|
||||||
|
t_name = obj._table
|
||||||
|
|
||||||
|
sql = "delete from %s" % t_name
|
||||||
|
# 增加多公司处理
|
||||||
|
try:
|
||||||
|
self._cr.execute(sql)
|
||||||
|
self._cr.commit()
|
||||||
|
except Exception as e:
|
||||||
|
_logger.warning('remove data error: %s,%s', line, e)
|
||||||
|
# 更新序号
|
||||||
|
for line in s:
|
||||||
|
domain = ['|', ('code', '=ilike', line + '%'), ('prefix', '=ilike', line + '%')]
|
||||||
|
try:
|
||||||
|
seqs = self.env['ir.sequence'].sudo().search(domain)
|
||||||
|
if seqs.exists():
|
||||||
|
seqs.write({
|
||||||
|
'number_next': 1,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
_logger.warning('reset sequence data error: %s,%s', line, e)
|
||||||
|
return True
|
||||||
|
|
||||||
|
def remove_sales(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除销售单据
|
||||||
|
'sale.order.line',
|
||||||
|
'sale.order',
|
||||||
|
# 销售提成,自用
|
||||||
|
# 'sale.commission.line',
|
||||||
|
# 不能删除报价单模板
|
||||||
|
# 'sale.order.template.option',
|
||||||
|
# 'sale.order.template.line',
|
||||||
|
# 'sale.order.template',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'sale',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_product(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除产品数据
|
||||||
|
'product.product',
|
||||||
|
'product.template',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'product.product',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_product_attribute(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除产品属性
|
||||||
|
'product.attribute.value',
|
||||||
|
'product.attribute',
|
||||||
|
]
|
||||||
|
seqs = []
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_pos(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除POS单据
|
||||||
|
'pos.payment',
|
||||||
|
'pos.order.line',
|
||||||
|
'pos.order',
|
||||||
|
'pos.session',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'pos.',
|
||||||
|
]
|
||||||
|
res = self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
# 更新要关帐的值,因为 store=true 的计算字段要重置
|
||||||
|
|
||||||
|
try:
|
||||||
|
statement = self.env['account.bank.statement'].sudo().search([])
|
||||||
|
for s in statement:
|
||||||
|
s._end_balance()
|
||||||
|
except Exception as e:
|
||||||
|
_logger.error('reset sequence data error: %s', e)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def remove_purchase(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除采购单据
|
||||||
|
'purchase.order.line',
|
||||||
|
'purchase.order',
|
||||||
|
'purchase.requisition.line',
|
||||||
|
'purchase.requisition',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'purchase.',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_expense(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除
|
||||||
|
'hr.expense.sheet',
|
||||||
|
'hr.expense',
|
||||||
|
'hr.payslip',
|
||||||
|
'hr.payslip.run',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'hr.expense.',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_mrp(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除生产单据
|
||||||
|
'mrp.workcenter.productivity',
|
||||||
|
'mrp.workorder',
|
||||||
|
'mrp.production.workcenter.line',
|
||||||
|
'change.production.qty',
|
||||||
|
'mrp.production',
|
||||||
|
'mrp.production.product.line',
|
||||||
|
'mrp.unbuild',
|
||||||
|
'change.production.qty',
|
||||||
|
'sale.forecast.indirect',
|
||||||
|
'sale.forecast',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'mrp.',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_mrp_bom(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除生产BOM
|
||||||
|
'mrp.bom.line',
|
||||||
|
'mrp.bom',
|
||||||
|
]
|
||||||
|
seqs = []
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_inventory(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除库存单据
|
||||||
|
'stock.quant',
|
||||||
|
'stock.move.line',
|
||||||
|
'stock.package_level',
|
||||||
|
'stock.quantity.history',
|
||||||
|
'stock.quant.package',
|
||||||
|
'stock.move',
|
||||||
|
# 'stock.pack.operation',
|
||||||
|
'stock.picking',
|
||||||
|
'stock.scrap',
|
||||||
|
'stock.picking.batch',
|
||||||
|
'stock.inventory.line',
|
||||||
|
'stock.inventory',
|
||||||
|
'stock.valuation.layer',
|
||||||
|
'stock.production.lot',
|
||||||
|
# 'stock.fixed.putaway.strat',
|
||||||
|
'procurement.group',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'stock.',
|
||||||
|
'picking.',
|
||||||
|
'procurement.group',
|
||||||
|
'product.tracking.default',
|
||||||
|
'WH/',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_account(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除财务会计单据
|
||||||
|
'payment.transaction',
|
||||||
|
# 'account.voucher.line',
|
||||||
|
# 'account.voucher',
|
||||||
|
# 'account.invoice.line',
|
||||||
|
# 'account.invoice.refund',
|
||||||
|
# 'account.invoice',
|
||||||
|
'account.bank.statement.line',
|
||||||
|
'account.payment',
|
||||||
|
'account.analytic.line',
|
||||||
|
'account.analytic.account',
|
||||||
|
'account.partial.reconcile',
|
||||||
|
'account.move.line',
|
||||||
|
'hr.expense.sheet',
|
||||||
|
'account.move',
|
||||||
|
]
|
||||||
|
res = self.remove_app_data(to_removes, [])
|
||||||
|
|
||||||
|
# extra 更新序号
|
||||||
|
domain = [
|
||||||
|
('company_id', '=', self.env.company.id),
|
||||||
|
'|', ('code', '=ilike', 'account.%'),
|
||||||
|
'|', ('prefix', '=ilike', 'BNK1/%'),
|
||||||
|
'|', ('prefix', '=ilike', 'CSH1/%'),
|
||||||
|
'|', ('prefix', '=ilike', 'INV/%'),
|
||||||
|
'|', ('prefix', '=ilike', 'EXCH/%'),
|
||||||
|
'|', ('prefix', '=ilike', 'MISC/%'),
|
||||||
|
'|', ('prefix', '=ilike', '账单/%'),
|
||||||
|
('prefix', '=ilike', '杂项/%')
|
||||||
|
]
|
||||||
|
try:
|
||||||
|
seqs = self.env['ir.sequence'].search(domain)
|
||||||
|
if seqs.exists():
|
||||||
|
seqs.write({
|
||||||
|
'number_next': 1,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
_logger.error('reset sequence data error: %s,%s', domain, e)
|
||||||
|
return res
|
||||||
|
|
||||||
|
def remove_account_chart(self):
|
||||||
|
company_id = self.env.company.id
|
||||||
|
self = self.with_context(force_company=company_id, company_id=company_id)
|
||||||
|
to_removes = [
|
||||||
|
# 清除财务科目,用于重设
|
||||||
|
'res.partner.bank',
|
||||||
|
'account.move.line',
|
||||||
|
'account.invoice',
|
||||||
|
'account.payment',
|
||||||
|
'account.bank.statement',
|
||||||
|
'account.tax.account.tag',
|
||||||
|
'account.tax',
|
||||||
|
'account.account.account.tag',
|
||||||
|
'wizard_multi_charts_accounts',
|
||||||
|
'account.journal',
|
||||||
|
'account.account',
|
||||||
|
]
|
||||||
|
# todo: 要做 remove_hr,因为工资表会用到 account
|
||||||
|
# 更新account关联,很多是多公司字段,故只存在 ir_property,故在原模型,只能用update
|
||||||
|
try:
|
||||||
|
field1 = self.env['ir.model.fields']._get('product.template', "taxes_id").id
|
||||||
|
field2 = self.env['ir.model.fields']._get('product.template', "supplier_taxes_id").id
|
||||||
|
|
||||||
|
sql = "delete from ir_default where (field_id = %s or field_id = %s) and company_id=%d" \
|
||||||
|
% (field1, field2, company_id)
|
||||||
|
sql2 = "update account_journal set bank_account_id=NULL where company_id=%d;" % company_id
|
||||||
|
self._cr.execute(sql)
|
||||||
|
self._cr.execute(sql2)
|
||||||
|
|
||||||
|
self._cr.commit()
|
||||||
|
except Exception as e:
|
||||||
|
_logger.error('remove data error: %s,%s', 'account_chart: set tax and account_journal', e)
|
||||||
|
|
||||||
|
# 增加对 pos的处理
|
||||||
|
if self.env['ir.model']._get('pos.config'):
|
||||||
|
self.env['pos.config'].write({
|
||||||
|
'journal_id': False,
|
||||||
|
})
|
||||||
|
# todo: 以下处理参考 res.partner的合并,将所有m2o的都一次处理,不需要次次找模型
|
||||||
|
# partner 处理
|
||||||
|
try:
|
||||||
|
rec = self.env['res.partner'].search([])
|
||||||
|
for r in rec:
|
||||||
|
r.write({
|
||||||
|
'property_account_receivable_id': None,
|
||||||
|
'property_account_payable_id': None,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
_logger.error('remove data error: %s,%s', 'account_chart', e)
|
||||||
|
# 品类处理
|
||||||
|
try:
|
||||||
|
rec = self.env['product.category'].search([])
|
||||||
|
for r in rec:
|
||||||
|
r.write({
|
||||||
|
'property_account_income_categ_id': None,
|
||||||
|
'property_account_expense_categ_id': None,
|
||||||
|
'property_account_creditor_price_difference_categ': None,
|
||||||
|
'property_stock_account_input_categ_id': None,
|
||||||
|
'property_stock_account_output_categ_id': None,
|
||||||
|
'property_stock_valuation_account_id': None,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
# 产品处理
|
||||||
|
try:
|
||||||
|
rec = self.env['product.template'].search([])
|
||||||
|
for r in rec:
|
||||||
|
r.write({
|
||||||
|
'property_account_income_id': None,
|
||||||
|
'property_account_expense_id': None,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
|
# 库存计价处理
|
||||||
|
try:
|
||||||
|
rec = self.env['stock.location'].search([])
|
||||||
|
for r in rec:
|
||||||
|
r.write({
|
||||||
|
'valuation_in_account_id': None,
|
||||||
|
'valuation_out_account_id': None,
|
||||||
|
})
|
||||||
|
except Exception as e:
|
||||||
|
pass # raise Warning(e)
|
||||||
|
|
||||||
|
seqs = []
|
||||||
|
res = self.remove_app_data(to_removes, seqs)
|
||||||
|
self.env.company.write({'chart_template_id': False})
|
||||||
|
return res
|
||||||
|
|
||||||
|
def remove_project(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除项目
|
||||||
|
'account.analytic.line',
|
||||||
|
'project.task',
|
||||||
|
'project.forecast',
|
||||||
|
'project.project',
|
||||||
|
]
|
||||||
|
seqs = []
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_quality(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除质检数据
|
||||||
|
'quality.check',
|
||||||
|
'quality.alert',
|
||||||
|
# 'quality.point',
|
||||||
|
# 'quality.alert.stage',
|
||||||
|
# 'quality.alert.team',
|
||||||
|
# 'quality.point.test_type',
|
||||||
|
# 'quality.reason',
|
||||||
|
# 'quality.tag',
|
||||||
|
]
|
||||||
|
seqs = [
|
||||||
|
'quality.check',
|
||||||
|
'quality.alert',
|
||||||
|
# 'quality.point',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_quality_setting(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除质检设置
|
||||||
|
'quality.point',
|
||||||
|
'quality.alert.stage',
|
||||||
|
'quality.alert.team',
|
||||||
|
'quality.point.test_type',
|
||||||
|
'quality.reason',
|
||||||
|
'quality.tag',
|
||||||
|
]
|
||||||
|
return self.remove_app_data(to_removes)
|
||||||
|
|
||||||
|
def remove_website(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除网站数据,w, w_blog
|
||||||
|
'blog.tag.category',
|
||||||
|
'blog.tag',
|
||||||
|
'blog.post',
|
||||||
|
'blog.blog',
|
||||||
|
'product.wishlist',
|
||||||
|
'website.published.multi.mixin',
|
||||||
|
'website.published.mixin',
|
||||||
|
'website.multi.mixin',
|
||||||
|
'website.visitor',
|
||||||
|
'website.redirect',
|
||||||
|
'website.seo.metadata',
|
||||||
|
# 'website.page',
|
||||||
|
# 'website.menu',
|
||||||
|
# 'website',
|
||||||
|
]
|
||||||
|
seqs = []
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_message(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除消息数据
|
||||||
|
'mail.message',
|
||||||
|
'mail.followers',
|
||||||
|
'mail.activity',
|
||||||
|
]
|
||||||
|
seqs = []
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_workflow(self):
|
||||||
|
to_removes = [
|
||||||
|
# 清除工作流
|
||||||
|
'wkf.workitem',
|
||||||
|
'wkf.instance',
|
||||||
|
]
|
||||||
|
seqs = []
|
||||||
|
return self.remove_app_data(to_removes, seqs)
|
||||||
|
|
||||||
|
def remove_all_biz(self):
|
||||||
|
self.remove_account()
|
||||||
|
self.remove_quality()
|
||||||
|
self.remove_inventory()
|
||||||
|
self.remove_purchase()
|
||||||
|
self.remove_mrp()
|
||||||
|
self.remove_sales()
|
||||||
|
self.remove_project()
|
||||||
|
self.remove_pos()
|
||||||
|
self.remove_expense()
|
||||||
|
self.remove_message()
|
||||||
|
return True
|
||||||
|
|
||||||
|
def reset_cat_loc_name(self):
|
||||||
|
ids = self.env['product.category'].search([
|
||||||
|
('parent_id', '!=', False)
|
||||||
|
], order='complete_name')
|
||||||
|
for rec in ids:
|
||||||
|
try:
|
||||||
|
rec._compute_complete_name()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
ids = self.env['stock.location'].search([
|
||||||
|
('location_id', '!=', False),
|
||||||
|
('usage', '!=', 'views'),
|
||||||
|
], order='complete_name')
|
||||||
|
for rec in ids:
|
||||||
|
try:
|
||||||
|
rec._compute_complete_name()
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
return True
|
||||||
36
app_odoo_customize/models/web_environment_ribbon_backend.py
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
# Copyright 2017 ACSONE SA/NV
|
||||||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
|
||||||
|
|
||||||
|
from odoo import api, models
|
||||||
|
|
||||||
|
|
||||||
|
class WebEnvironmentRibbonBackend(models.AbstractModel):
|
||||||
|
|
||||||
|
_name = "web.environment.ribbon.backend"
|
||||||
|
_description = "Web Environment Ribbon Backend"
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _prepare_ribbon_format_vals(self):
|
||||||
|
return {"db_name": self.env.cr.dbname}
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def _prepare_ribbon_name(self):
|
||||||
|
name_tmpl = self.env["ir.config_parameter"].sudo().get_param("app_ribbon_name") or False
|
||||||
|
vals = self._prepare_ribbon_format_vals()
|
||||||
|
return name_tmpl and name_tmpl.format(**vals) or name_tmpl
|
||||||
|
|
||||||
|
@api.model
|
||||||
|
def get_environment_ribbon(self):
|
||||||
|
"""
|
||||||
|
This method returns the ribbon data from ir config parameters
|
||||||
|
:return: dictionary
|
||||||
|
"""
|
||||||
|
ir_config_model = self.env["ir.config_parameter"]
|
||||||
|
name = self._prepare_ribbon_name()
|
||||||
|
return {
|
||||||
|
"name": name,
|
||||||
|
"color": ir_config_model.sudo().get_param("app_ribbon_color"),
|
||||||
|
"background_color": ir_config_model.sudo().get_param(
|
||||||
|
"app_ribbon_background_color"
|
||||||
|
),
|
||||||
|
}
|
||||||
92
app_odoo_customize/readme.md
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
##App Odoo Customize(Debranding Title,Language,Documentation,Quick Debug,Quick Data Clear)
|
||||||
|
============
|
||||||
|
White label odoo.
|
||||||
|
Support Odoo 13,12, 11, 10, 9. Including communicate and enterprise version.
|
||||||
|
You can config odoo, make it look like your own platform.
|
||||||
|
1. Deletes Odoo label in footer
|
||||||
|
2. Replaces "Odoo" in Windows title
|
||||||
|
3. Customize Documentation, Support, About links and title in usermenu
|
||||||
|
4. Adds "Developer mode" link to the top right-hand User Menu.
|
||||||
|
5. Adds Quick Language Switcher to the top right-hand User Menu.
|
||||||
|
6. Adds Country flags to the top right-hand User Menu.
|
||||||
|
7. Adds English and Chinese user documentation access to the top right-hand User Menu.
|
||||||
|
8. Adds developer documentation access to the top right-hand User Menu.
|
||||||
|
9. Customize "My odoo.com account" button
|
||||||
|
10. Standalone setting panel, easy to setup.
|
||||||
|
11. Provide 236 country flags.
|
||||||
|
12. Multi-language Support.
|
||||||
|
13. Change Powered by Odoo in login screen.(Please change '../views/app_odoo_customize_view.xml' #15)
|
||||||
|
14. Quick delete test data in Apps: Sales/POS/Purchase/MRP/Inventory/Accounting/Project/Message/Workflow etc.
|
||||||
|
15. Reset All the Sequence to beginning of 1: SO/PO/MO/Invoice...
|
||||||
|
16. Fix odoo reload module translation bug while enable english language
|
||||||
|
17. Stop Odoo Auto Subscribe(Performance Improve)
|
||||||
|
18. Show/Hide Author and Website in Apps Dashboard
|
||||||
|
19. One Click to clear all data (Sometime pls click twice)
|
||||||
|
20. Show quick upgrade in app dashboard, click to show module info not go to odoo.com
|
||||||
|
21. Can clear and reset account chart. Be cautious
|
||||||
|
22. Update online manual and developer document to odoo12
|
||||||
|
23. Add reset or clear website blog data
|
||||||
|
24. Customize Odoo Native Module(eg. Enterprise) Url
|
||||||
|
25. Add remove expense data
|
||||||
|
26. Add multi uninstall modules
|
||||||
|
27. Add odoo boost modules link.
|
||||||
|
|
||||||
|
This module can help to white label the Odoo.
|
||||||
|
Also helpful for training and support for your odoo end-user.
|
||||||
|
The user can get the help document just by one click.
|
||||||
|
|
||||||
|
For more support
|
||||||
|
https://www.sunpop.cn
|
||||||
|
|
||||||
|
## 在符合odoo开源协议的前提下,去除odoo版权信息,自定义你的odoo
|
||||||
|
可完全自行设置下列 odoo 选项,让 odoo 看上去像是你的软件产品
|
||||||
|
支持Odoo 13,12, 11, 10, 9 版本,社区版企业版通用
|
||||||
|
|
||||||
|
1. 删除菜单导航页脚的 Odoo 标签
|
||||||
|
2. 将弹出窗口中 "Odoo" 设置为自定义名称
|
||||||
|
3. 自定义用户菜单中的 Documentation, Support, About 的链接
|
||||||
|
4. 在用户菜单中增加快速切换开发模式
|
||||||
|
5. 在用户菜单中增加快速切换多国语言
|
||||||
|
6. 对语言菜单进行美化,设置国旗图标
|
||||||
|
7. 在用户菜单中增加中/英文用户手册,可以不用翻墙加速了
|
||||||
|
8. 在用户菜单中增加开发者手册,含python教程,jquery参考,Jinja2模板,PostgresSQL参考
|
||||||
|
9. 在用户菜单中自定义"My odoo.com account"
|
||||||
|
10. 单独设置面板,每个选项都可以自定义
|
||||||
|
11. 提供236个国家的国旗文件(部份需要自行设置文件名)
|
||||||
|
12. 多语言版本
|
||||||
|
13. 自定义登陆界面中的 Powered by Odoo
|
||||||
|
14. 快速删除测试数据,支持模块包括:销售/POS门店/采购/生产/库存/会计/项目/消息与工作流等.
|
||||||
|
15. 将各类单据的序号重置,从1开始,包括:SO/PO/MO/Invoice 等
|
||||||
|
16. 修复odoo启用英文后模块不显示中文的Bug
|
||||||
|
17. 可停用odoo自动订阅功能,避免“同样对象关注2次”bug,同时提升性能
|
||||||
|
18. 显示/隐藏应用的作者和网站-在应用安装面板中
|
||||||
|
19. 一键清除所有数据(视当前数据情况,有时需点击2次)
|
||||||
|
20. 在应用面板显示快速升级按键,点击时不会导航至 odoo.com
|
||||||
|
21. 清除并重置会计科目表
|
||||||
|
22. 全新升级将odoo12用户及开发手册导航至国内网站,或者自己定义的网站
|
||||||
|
23. 增加清除网站数据功能
|
||||||
|
24. 自定义 odoo 原生模块跳转的url(比如企业版模块)
|
||||||
|
25. 增加删除费用报销数据功能
|
||||||
|
26. 增加批量卸载模块功能
|
||||||
|
27. 增加odoo加速功能
|
||||||
|
|
||||||
|
使用方法:将解压后的 app_odoo_customize 放到 odoo的 addons目录下,激活开发者模式,应用-->更新应用列表,
|
||||||
|
找到 "App odoo Customize"模块,安装即可。
|
||||||
|
|
||||||
|
|
||||||
|
## 其它技术资源:
|
||||||
|
# Odoo12在线用户手册(长期更新)
|
||||||
|
# https://www.sunpop.cn/documentation/user/12.0/en/index.html
|
||||||
|
|
||||||
|
# Odoo12在线开发者手册(长期更新)
|
||||||
|
# https://www.sunpop.cn/documentation/12.0/index.html
|
||||||
|
|
||||||
|
# Odoo10在线中文用户手册(长期更新)
|
||||||
|
# https://www.sunpop.cn/documentation/user/10.0/zh_CN/index.html
|
||||||
|
|
||||||
|
# Odoo10离线中文用户手册下载
|
||||||
|
# https://www.sunpop.cn/odoo10_user_manual_document_offline/
|
||||||
|
# Odoo10离线开发手册下载-含python教程,jquery参考,Jinja2模板,PostgresSQL参考(odoo开发必备)
|
||||||
|
# https://www.sunpop.cn/odoo10_developer_document_offline/
|
||||||
|
# description:
|
||||||
|
|
||||||
2
app_odoo_customize/security/ir.model.access.csv
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
|
||||||
|
"access_ir_config_parameter_system","ir_config_parameter_system","base.model_ir_config_parameter","base.group_user",1,0,0,0
|
||||||
|
19
app_odoo_customize/security/res_groups.xml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<openerp>
|
||||||
|
<data noupdate="0">
|
||||||
|
<record id="group_show_author_in_apps" model="res.groups">
|
||||||
|
<field name="name">Show Author in Apps Dashboard</field>
|
||||||
|
<field name="category_id" ref="base.module_category_hidden"/>
|
||||||
|
</record>
|
||||||
|
<record id="group_show_quick_upgrade" model="res.groups">
|
||||||
|
<field name="name">Show Quick Upgrade in Apps Dashboard</field>
|
||||||
|
<field name="category_id" ref="base.module_category_hidden"/>
|
||||||
|
</record>
|
||||||
|
<!--系统设置默认值-->
|
||||||
|
<!--1 默认显示快速升级-->
|
||||||
|
<record id="base.group_user" model="res.groups">
|
||||||
|
<field name="implied_ids"
|
||||||
|
eval="[(4, ref('app_odoo_customize.group_show_quick_upgrade'))]"/>
|
||||||
|
</record>
|
||||||
|
</data>
|
||||||
|
</openerp>
|
||||||
BIN
app_odoo_customize/static/description/app_web_enterprise_03.jpg
Normal file
|
After Width: | Height: | Size: 217 KiB |
BIN
app_odoo_customize/static/description/banner.gif
Normal file
|
After Width: | Height: | Size: 439 KiB |
BIN
app_odoo_customize/static/description/banner1.png
Normal file
|
After Width: | Height: | Size: 142 KiB |
BIN
app_odoo_customize/static/description/cnreadme.png
Normal file
|
After Width: | Height: | Size: 208 KiB |
BIN
app_odoo_customize/static/description/icon.png
Normal file
|
After Width: | Height: | Size: 78 KiB |
288
app_odoo_customize/static/description/index.html
Normal file
@@ -0,0 +1,288 @@
|
|||||||
|
<section class="oe_container app">
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_span12">
|
||||||
|
<h2 class="oe_slogan">App Odoo Customize, Odoo Boost</h2>
|
||||||
|
<h4 class="mt8">
|
||||||
|
If you are using odoo enterprise.<br>
|
||||||
|
<a href="https://www.odoo.com/apps/modules/13.0/app_web_enterprise/" target="_blank">
|
||||||
|
Get "app_web_enterprise" for more customize
|
||||||
|
</a>
|
||||||
|
</h4>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<a class="btn btn-block btn-success mt16 mb16" target="_blank" href="https://apps.odoo.com/apps/modules/13.0/app_app_web_enterprise/">
|
||||||
|
<img src="app_web_enterprise_03.jpg" style="border:1px solid black"/>
|
||||||
|
</a>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
<h4 class="mt8">
|
||||||
|
You can follow this repo on github. To get the latest update of free odoo app.
|
||||||
|
<p>https://github.com/guohuadeng/app-odoo</p>
|
||||||
|
</h4>
|
||||||
|
<h4 class="mt8">
|
||||||
|
Also you can
|
||||||
|
<a href="https://www.odoo.com/apps/modules/browse?author=Sunpop.cn" target="_blank">
|
||||||
|
get more powerful odoo apps from us.
|
||||||
|
</a>. like [superbar widget]
|
||||||
|
</h4>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<a href="https://www.odoo.com/apps/modules/browse?author=Sunpop.cn" target="_blank">
|
||||||
|
<img oe_demo oe_screenshot src="https://www.odoo.com/apps/modules/13.0/app_web_superbar/banner.gif"/>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo" style=" margin: 30px auto 0; padding: 0 15px 0 0; border:none; width: 96%;">
|
||||||
|
<p>This moduld allows user to quickly customize and debranding Odoo. Quick debug, Language Switcher,
|
||||||
|
Online Documentation Access,Quick Data Clear. </p>
|
||||||
|
<p class="mb16">Support Odoo 14,13, 12, 11, 10, 9. Including community and enterprise version. </p>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo" style=" margin: 30px auto 0; padding: 0 15px 0 0; border:none; width: 96%;">
|
||||||
|
<p>If you want to change the login page. </p>
|
||||||
|
<p class="mb16">Please modify the file \views\app_odoo_customize_views.xml </p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="oe_container app">
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_span12">
|
||||||
|
<h2 class="oe_slogan">This is a Long Term Support Apps.</h2>
|
||||||
|
<div class="oe_demo" style=" margin: 30px auto 0; padding: 0 15px 0 0; border:none; width: 96%;">
|
||||||
|
<h3>Update: v13.21.08.04</h3>
|
||||||
|
<p>39. Only erp manager can see debug menu..</p>
|
||||||
|
<p>38. Add Draggable Dialog enable.</p>
|
||||||
|
<p>37. Easy noupdate manage for External Identifiers(xml_id).</p>
|
||||||
|
<h3>Update: v13.20.08.29</h3>
|
||||||
|
<p>36. Add odoo 14 support.</p>
|
||||||
|
<h3>Update: v13.20.04.12</h3>
|
||||||
|
<p>31. Show or hide odoo Referral in the top menu.</p>
|
||||||
|
<h3>Update: v13.20.03.23</h3>
|
||||||
|
<p>30. 1 key export app translate file like .po file.</p>
|
||||||
|
<h3>Update: v13.20.02.25</h3>
|
||||||
|
<p>28. Easy Menu manager.</p>
|
||||||
|
<p>29. Add Install version in App list. Add Local updatable filter in app list.</p>
|
||||||
|
<h3>Update: v13.19.10.19</h3>
|
||||||
|
<p>27. Add Odoo 13 support, all function add</p>
|
||||||
|
<h3>Update: v12.19.04.30</h3>
|
||||||
|
<p>26. Add multi uninstall modules</p>
|
||||||
|
<h3>Update: v12.19.04.18</h3>
|
||||||
|
<p>25. Add remove expense data</p>
|
||||||
|
<h3>Update: v12.19.04.17</h3>
|
||||||
|
<p>Add Customize Odoo Native Module(eg. Enterprise) Url</p>
|
||||||
|
<h3>Update: v12.19.3.15</h3>
|
||||||
|
<p>Add reset or clear website blog data</p>
|
||||||
|
<h3>Update: v12.19.3.12</h3>
|
||||||
|
<p>Optimize chinese translate and document.</p>
|
||||||
|
<p>Fix bug: Data reset.</p>
|
||||||
|
<h3>Update: v12.19.1.20</h3>
|
||||||
|
<p>Fix bug: Save config error.</p>
|
||||||
|
<h3>Update: v12.19.1.05</h3>
|
||||||
|
<p>Fix bug: If you install Muk moudle, odooapp customize would pop error like "attachment_location". Sometime you need to uninstall this app and restart odoo, install again to take affect.</p>
|
||||||
|
<h3>Update: v12.0.12.25</h3>
|
||||||
|
<p>add 22. Update online manual and developer document to odoo12.</p>
|
||||||
|
<h3>Update: v12.0.11.08</h3>
|
||||||
|
<p>Add 21. Reset Account Chart.</p>
|
||||||
|
<h3>Update: v12.0.9.30</h3>
|
||||||
|
<p>Add 20. Show quick upgrade in app dashboard</p>
|
||||||
|
<h3>Update: v12.0.9.25</h3>
|
||||||
|
<p>Now ready for Odoo 13,12, please email to me. guohuadeng@hotmail.com</p>
|
||||||
|
<h3>Update: v12.0.7.23</h3>
|
||||||
|
<p>Fix Login bug when install website.</p>
|
||||||
|
<p>Add 19. One Click to clear all data (Sometime pls click twice)</p>
|
||||||
|
<p>Add 18. Show/Hide Author and Website in Apps Dashboard</p>
|
||||||
|
<h1 class="text-primary">More Powerful addons:</h1>
|
||||||
|
<p class="">
|
||||||
|
<a class="btn btn-block btn-success mt16 mb16" href="http://www.odoo.com/apps/modules/browse?author=Sunpop.cn">Sunpop.cn Awesome Odoo Addons</a>
|
||||||
|
</p>
|
||||||
|
<br>
|
||||||
|
<h3>Odoo 13, 12, 11, 10 Support. Community and Enterprise version support</h3>
|
||||||
|
<ul class="list-group">
|
||||||
|
<li class="list-group-item">1. Deletes Odoo label in footer</li>
|
||||||
|
<li class="list-group-item">2. Replaces "Odoo" in Windows title</li>
|
||||||
|
<li class="list-group-item">3. Customize Documentation, Support, About links and title in usermenu</li>
|
||||||
|
<li class="list-group-item">4. Adds "Developer mode" link to the top right-hand User Menu.</li>
|
||||||
|
<li class="list-group-item">5. Adds Quick Language Switcher to the top right-hand User Menu.</li>
|
||||||
|
<li class="list-group-item">6. Adds Country flags to the top right-hand User Menu.</li>
|
||||||
|
<li class="list-group-item">7. Adds English and Chinese user documentation access to the top right-hand User Menu.</li>
|
||||||
|
<li class="list-group-item">8. Adds developer documentation access to the top right-hand User Menu.</li>
|
||||||
|
<li class="list-group-item">9. Customize "My odoo.com account" button</li>
|
||||||
|
<li class="list-group-item">10. Standalone setting panel, easy to setup.</li>
|
||||||
|
<li class="list-group-item">11. Provide 236 country flags.</li>
|
||||||
|
<li class="list-group-item">12. Multi-language Support.</li>
|
||||||
|
<li class="list-group-item">13. Change Powered by Odoo in login screen.(Please change '../views/app_odoo_customize_view.xml' #15)</li>
|
||||||
|
<li class="list-group-item">14. Quick delete test data in Apps: Sales/POS/Purchase/MRP/Inventory/Accounting/Project/Base Models.</li>
|
||||||
|
<li class="list-group-item">15. Reset All the Sequence to beginning of 1: SO/PO/MO/Invoice...</li>
|
||||||
|
<li class="list-group-item">16. Fix odoo reload module translation bug while enable english language</li>
|
||||||
|
<li class="list-group-item">17. Stop Odoo Auto Subscribe(Performance Improve)</li>
|
||||||
|
<li class="list-group-item">18. Show/Hide Author and Website in Apps Dashboard (odoo 11 only)</li>
|
||||||
|
<li class="list-group-item">19. One Click to clear all data (Sometime pls click twice)</li>
|
||||||
|
<li class="list-group-item">20. Show quick upgrade in app dashboard, click to show module info not go to odoo.com</li>
|
||||||
|
<li class="list-group-item">21. Can clear and reset account chart. Be cautious.</li>
|
||||||
|
<li class="list-group-item">22. Update online manual and developer document to odoo12.</li>
|
||||||
|
<li class="list-group-item">23. Add reset or clear website blog data</li>
|
||||||
|
<li class="list-group-item">24. Customize Odoo Native Module(eg. Enterprise) Url</li>
|
||||||
|
<li class="list-group-item">25. Add remove expense data</li>
|
||||||
|
<li class="list-group-item">26. Add multi uninstall modules</li>
|
||||||
|
<li class="list-group-item">27. Add odoo boost modules link.</li>
|
||||||
|
<li class="list-group-item">28. Easy Menu manager.</li>
|
||||||
|
<li class="list-group-item">29. Apps version compare. Add Install version in App list. Add Local updatable filter in app list.</li>
|
||||||
|
<li class="list-group-item">30. 1 key export app translate file like .po file.</li>
|
||||||
|
<li class="list-group-item">32. Fix odoo bug of complete name bug of product category and stock location..</li>
|
||||||
|
<li class="list-group-item">33. Add Demo Ribbon Setting.</li>
|
||||||
|
<li class="list-group-item">34. Add Remove all quality data.</li>
|
||||||
|
<li class="list-group-item">35. Fixed for odoo 14.</li>
|
||||||
|
</ul>
|
||||||
|
<p>
|
||||||
|
This module can help to white label the Odoo.
|
||||||
|
Also helpful for training and support for your odoo end-user.<br/>
|
||||||
|
The user can get the help document just by one click.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="cnreadme.png" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%;">
|
||||||
|
<h2 class='oe_mt32'>Odoo Customize(Debranding Title,Language,Documentation,Quick Debug)</h2>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="banner.gif" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
<img src="set3.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%;">
|
||||||
|
<h2 class='oe_mt32'>Multi-language support: Chinese ready</h2>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set11.png" style="border:1px solid black"/>
|
||||||
|
</br>
|
||||||
|
<img src="set12.png" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style=" argin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%; ">
|
||||||
|
<h2 class='oe_mt32'>How to use: Go to Settings -> odooApp Settings</h2>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set1.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%; ">
|
||||||
|
<h2 class='oe_mt32'>Set System Icon (odoo 10 only)</h2>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set19.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%;">
|
||||||
|
<h2 class='oe_mt32'>Show/Hide Author and Website in Apps Dashboard</h2>
|
||||||
|
</div>
|
||||||
|
<p>Before</p>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set18-1.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
<p>After uncheck "Show Author in Apps Dashboard"</p>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set18-2.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%;">
|
||||||
|
<h2 class='oe_mt32'>Show quick upgrade in app dashboard, click to show module info not go to odoo.com</h2>
|
||||||
|
</div>
|
||||||
|
<p>No more redirect to odoo.com</p>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set20.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%;">
|
||||||
|
<h2 class='oe_mt32'>Setup more flags: just rename the flag pic to locale code of the country</h2>
|
||||||
|
<p>You can find the pictures in "\app-odoo\app_odoo_customize\static\src\img\flags"</p>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set2.png" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%;">
|
||||||
|
<h2 class='oe_mt32'>Customize Module Url(eg. Enterprise).</h2>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set21.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="oe_row oe_spaced" style="max-width: 95%;">
|
||||||
|
<div class="oe_demo"
|
||||||
|
style="margin: 20px auto; padding: 0 15px 0 0; border:none; border-top:solid 1px #dedede; width: 96%;">
|
||||||
|
<h2 class='oe_mt32'>Quick Delete test Data.</h2>
|
||||||
|
<p>You can quickly delete all the test data in Apps: Sales/POS/Purchase/MRP/Inventory/Accounting/Message/Workflow etc.</p>
|
||||||
|
</div>
|
||||||
|
<div class="oe_demo oe_screenshot">
|
||||||
|
<img src="set3.jpg" style="border:1px solid black"/>
|
||||||
|
<br/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<section class="oe_container oe_dark">
|
||||||
|
<div class="oe_row oe_spaced text-center">
|
||||||
|
<div class="oe_span12">
|
||||||
|
<h2 class="oe_slogan">Technical Help & Support</h2>
|
||||||
|
</div>
|
||||||
|
<div class="col-md-12 pad0">
|
||||||
|
<div class="oe_mt16">
|
||||||
|
<p><h4>
|
||||||
|
For any type of technical help & support requests, Feel free to contact us</h4></p>
|
||||||
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:guohuadeng@hotmail.com"><span
|
||||||
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
|
<i class="fa fa-envelope"></i> guohuadeng@hotmail.com</a>
|
||||||
|
<p><h4>
|
||||||
|
Via QQ: 300883 (App user would not get QQ or any other IM support. Only for odoo project customize.)</h4></p>
|
||||||
|
<a style="background: #002e5a none repeat scroll 0% 0%; color: rgb(255, 255, 255);position: relative; overflow: hidden;"
|
||||||
|
class="btn btn-warning btn-lg" rel="nofollow" href="mailto:300883@qq.com"><span
|
||||||
|
style="height: 354px; width: 354px; top: -147.433px; left: -6.93335px;" class="o_ripple"></span>
|
||||||
|
<i class="fa fa-envelope"></i> 300883@qq.com</a>
|
||||||
|
</div>
|
||||||
|
<div class="oe_mt16">
|
||||||
|
<h4>
|
||||||
|
Visit our website for more support.</h4>
|
||||||
|
<h4>https://www.sunpop.cn</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
BIN
app_odoo_customize/static/description/set1.jpg
Normal file
|
After Width: | Height: | Size: 230 KiB |
BIN
app_odoo_customize/static/description/set11.png
Normal file
|
After Width: | Height: | Size: 80 KiB |
BIN
app_odoo_customize/static/description/set12.png
Normal file
|
After Width: | Height: | Size: 144 KiB |
BIN
app_odoo_customize/static/description/set18-1.jpg
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
app_odoo_customize/static/description/set18-2.jpg
Normal file
|
After Width: | Height: | Size: 42 KiB |
BIN
app_odoo_customize/static/description/set19.jpg
Normal file
|
After Width: | Height: | Size: 9.1 KiB |
BIN
app_odoo_customize/static/description/set2.png
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
app_odoo_customize/static/description/set20.jpg
Normal file
|
After Width: | Height: | Size: 209 KiB |
BIN
app_odoo_customize/static/description/set21.jpg
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
app_odoo_customize/static/description/set3.jpg
Normal file
|
After Width: | Height: | Size: 75 KiB |
BIN
app_odoo_customize/static/src/img/flags/ar_SY.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
app_odoo_customize/static/src/img/flags/bg.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app_odoo_customize/static/src/img/flags/bs_BA.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
app_odoo_customize/static/src/img/flags/de_DE.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app_odoo_customize/static/src/img/flags/en_AU.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
app_odoo_customize/static/src/img/flags/en_GB.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
BIN
app_odoo_customize/static/src/img/flags/en_US.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_AR.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_BO.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_CL.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_CO.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_CR.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_DO.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_EC.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_ES.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_GT.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_MX.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_UY.png
Normal file
|
After Width: | Height: | Size: 23 KiB |
BIN
app_odoo_customize/static/src/img/flags/es_VE.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_afghanistan.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_algeria.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_american_samoa.png
Normal file
|
After Width: | Height: | Size: 34 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_andorra.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_angola.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_anguilla.png
Normal file
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 21 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_armenia.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_aruba.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_austria.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_azerbaijan.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_bahamas.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_bahrain.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_bangladesh.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_barbados.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_belarus.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_belgium.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_belize.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_benin.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_bermuda.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_bhutan.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_botswana.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 46 KiB |
|
After Width: | Height: | Size: 34 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_brunei.png
Normal file
|
After Width: | Height: | Size: 28 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_burkina_faso.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_burma.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_burundi.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cambodia.png
Normal file
|
After Width: | Height: | Size: 21 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cameroon.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_canada.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cape_verde.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cayman_islands.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 17 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_chad.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_checkered.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_comoros.png
Normal file
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 28 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_congo_republic.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cook_islands.png
Normal file
|
After Width: | Height: | Size: 32 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cote_divoire.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_croatia.png
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cuba.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_cyprus.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_czech_republic.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_denmark.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
app_odoo_customize/static/src/img/flags/flag_djibouti.png
Normal file
|
After Width: | Height: | Size: 18 KiB |