mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
update customize
This commit is contained in:
@@ -22,8 +22,8 @@
|
||||
# description:
|
||||
|
||||
{
|
||||
'name': 'odoo Customize OEM(Boost, Data reset)',
|
||||
'version': '14.21.03.03',
|
||||
'name': 'odoo 14,13 Customize OEM(Boost, Data reset)',
|
||||
'version': '14.21.03.31',
|
||||
'author': 'Sunpop.cn',
|
||||
'category': 'Productivity',
|
||||
'website': 'https://www.sunpop.cn',
|
||||
@@ -35,7 +35,7 @@
|
||||
customize my odoo. odoo customize, odoo oem.
|
||||
""",
|
||||
'description': """
|
||||
|
||||
|
||||
App Customize Odoo (Change Title,Language,Documentation,Quick Debug)
|
||||
============
|
||||
White label odoo.
|
||||
@@ -72,12 +72,14 @@
|
||||
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.
|
||||
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(for odoo Enterprise).
|
||||
35. Add odoo 14 Support.
|
||||
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.
|
||||
|
||||
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.
|
||||
@@ -117,9 +119,11 @@
|
||||
31. 显示或去除 odoo 推荐
|
||||
32. 增加修复品类及区位名的操作
|
||||
33. 增加 Demo 的显示设置
|
||||
34. 增加清除质检数据 (企业版)
|
||||
34. 增加清除质检数据
|
||||
35. 优化至odoo14适用
|
||||
36. 可为多个模块强制更新翻译
|
||||
37. noupdate字段的快速管理,主要针对 xml_id
|
||||
38. 对话框可拖拽
|
||||
""",
|
||||
'images': ['static/description/banner.gif'],
|
||||
'depends': [
|
||||
@@ -143,6 +147,7 @@
|
||||
'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',
|
||||
|
||||
@@ -44,11 +44,11 @@
|
||||
</record>
|
||||
<record id="app_documentation_url" model="ir.config_parameter">
|
||||
<field name="key">app_documentation_url</field>
|
||||
<field name="value">https://www.sunpop.cn/documentation/user/12.0/zh_CN/index.html</field>
|
||||
<field name="value">https://www.sunpop.cn/documentation/user/13.0/zh_CN/index.html</field>
|
||||
</record>
|
||||
<record id="app_documentation_dev_url" model="ir.config_parameter">
|
||||
<field name="key">app_documentation_dev_url</field>
|
||||
<field name="value">https://www.sunpop.cn/documentation/12.0/index.html</field>
|
||||
<field name="value">https://www.sunpop.cn/documentation/13.0/index.html</field>
|
||||
</record>
|
||||
<record id="app_support_url" model="ir.config_parameter">
|
||||
<field name="key">app_support_url</field>
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
#
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: Odoo Server 13.0+e\n"
|
||||
"Project-Id-Version: Odoo Server 14.0+e-20200628\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2020-08-21 06:23+0000\n"
|
||||
"PO-Revision-Date: 2020-08-21 06:23+0000\n"
|
||||
"POT-Creation-Date: 2021-03-31 08:16+0000\n"
|
||||
"PO-Revision-Date: 2021-03-31 08:16+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -17,7 +17,6 @@ msgstr ""
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#. openerp-web
|
||||
#: code:addons/app_common13/app_odoo_customize/static/src/xml/res_config_edition.xml:0
|
||||
#: code:addons/app_odoo_customize/static/src/xml/res_config_edition.xml:0
|
||||
#, python-format
|
||||
msgid "(Sunpop.cn Professional Edition)"
|
||||
@@ -71,7 +70,7 @@ 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>"
|
||||
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
|
||||
@@ -90,7 +89,6 @@ msgstr "<span>设置为 False 则不显示</span>"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#. openerp-web
|
||||
#: code:addons/app_common13/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Activate the developer mode"
|
||||
@@ -98,7 +96,6 @@ msgstr "激活开发者模式"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#. openerp-web
|
||||
#: code:addons/app_common13/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Activate the developer mode (with assets)"
|
||||
@@ -147,7 +144,6 @@ msgstr "数据清理(请谨慎操作!)"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#. openerp-web
|
||||
#: code:addons/app_common13/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Deactivate the developer mode"
|
||||
@@ -213,7 +209,12 @@ 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 ""
|
||||
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
|
||||
@@ -242,7 +243,6 @@ msgstr "开发者手册链接"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#. openerp-web
|
||||
#: code:addons/app_common13/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||
#, python-format
|
||||
msgid "Developer Manual"
|
||||
@@ -316,9 +316,9 @@ msgid "Powered by <span>odooApp</span>"
|
||||
msgstr "技术支持 <span>Sunpop.cn</span>"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#: model:ir.actions.act_window,name:app_odoo_customize.action_server_module_multi_refresh_po
|
||||
msgid "Refresh Module Translation"
|
||||
msgstr "更新模块翻译"
|
||||
#: model:ir.actions.server,name:app_odoo_customize.action_server_module_multi_refresh_po
|
||||
msgid "Refresh Translation"
|
||||
msgstr "刷新翻译"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||
@@ -509,12 +509,11 @@ msgstr "启用后,会显示快速调试菜单"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||
msgid "Odoo Customize Setting"
|
||||
msgid "White Label Setting"
|
||||
msgstr "个性化odoo设置"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#. openerp-web
|
||||
#: code:addons/app_common13/app_odoo_customize/static/src/xml/res_config_edition.xml:0
|
||||
#: 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
|
||||
|
||||
@@ -116,6 +116,9 @@ class ResConfigSettings(models.TransientModel):
|
||||
# 清数据,o=对象, s=序列
|
||||
def remove_app_data(self, o, s=[]):
|
||||
for line in o:
|
||||
# 检查是否存在
|
||||
if not self.env['ir.model']._get(line):
|
||||
continue
|
||||
obj_name = line
|
||||
obj = self.pool.get(obj_name)
|
||||
if not obj:
|
||||
@@ -125,14 +128,20 @@ class ResConfigSettings(models.TransientModel):
|
||||
t_name = obj._table
|
||||
|
||||
sql = "delete from %s" % t_name
|
||||
# 增加多公司处理
|
||||
if hasattr(self.env[obj_name], 'company_id'):
|
||||
field = self.env[obj_name]._fields['company_id']
|
||||
if not field.related or field.store:
|
||||
sql = "%s where company_id=%d" % (sql, self.env.company.id)
|
||||
_logger.warning('remove_app_data where add company_id: %s' % obj_name)
|
||||
try:
|
||||
self._cr.execute(sql)
|
||||
self._cr.commit()
|
||||
# self._cr.commit()
|
||||
except Exception as e:
|
||||
_logger.error('remove data error: %s,%s', line, e)
|
||||
# 更新序号
|
||||
for line in s:
|
||||
domain = [('code', '=ilike', line + '%')]
|
||||
domain = ['|', ('code', '=ilike', line + '%'), ('prefix', '=ilike', line + '%')]
|
||||
try:
|
||||
seqs = self.env['ir.sequence'].sudo().search(domain)
|
||||
if seqs.exists():
|
||||
@@ -262,7 +271,7 @@ class ResConfigSettings(models.TransientModel):
|
||||
# 清除库存单据
|
||||
'stock.quant',
|
||||
'stock.move.line',
|
||||
'stock.package.level',
|
||||
'stock.package_level',
|
||||
'stock.quantity.history',
|
||||
'stock.quant.package',
|
||||
'stock.move',
|
||||
@@ -280,6 +289,7 @@ class ResConfigSettings(models.TransientModel):
|
||||
seqs = [
|
||||
'stock.',
|
||||
'picking.',
|
||||
'procurement.group',
|
||||
'WH/',
|
||||
]
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
@@ -306,6 +316,7 @@ class ResConfigSettings(models.TransientModel):
|
||||
|
||||
# extra 更新序号
|
||||
domain = [
|
||||
('company_id', '=', self.env.company.id),
|
||||
'|', ('code', '=ilike', 'account.%'),
|
||||
'|', ('prefix', '=ilike', 'BNK1/%'),
|
||||
'|', ('prefix', '=ilike', 'CSH1/%'),
|
||||
@@ -326,10 +337,11 @@ class ResConfigSettings(models.TransientModel):
|
||||
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',
|
||||
'res.bank',
|
||||
'account.move.line',
|
||||
'account.invoice',
|
||||
'account.payment',
|
||||
@@ -344,17 +356,18 @@ class ResConfigSettings(models.TransientModel):
|
||||
# todo: 要做 remove_hr,因为工资表会用到 account
|
||||
# 更新account关联,很多是多公司字段,故只存在 ir_property,故在原模型,只能用update
|
||||
try:
|
||||
# reset default tax,不管多公司
|
||||
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") % (field1, field2)
|
||||
sql2 = ("update account_journal set bank_account_id=NULL;")
|
||||
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:
|
||||
pass
|
||||
_logger.error('remove data error: %s,%s', 'account_chart: set tax and account_journal', e)
|
||||
|
||||
try:
|
||||
# 增加对 pos的处理
|
||||
sql = ("update pos_config set journal_id=NULL;")
|
||||
@@ -383,7 +396,7 @@ class ResConfigSettings(models.TransientModel):
|
||||
'property_stock_valuation_account_id': None,
|
||||
})
|
||||
except Exception as e:
|
||||
pass
|
||||
pass # raise Warning(e)
|
||||
try:
|
||||
rec = self.env['stock.location'].search([])
|
||||
for r in rec:
|
||||
@@ -392,10 +405,12 @@ class ResConfigSettings(models.TransientModel):
|
||||
'valuation_out_account_id': None,
|
||||
})
|
||||
except Exception as e:
|
||||
pass
|
||||
pass # raise Warning(e)
|
||||
|
||||
seqs = []
|
||||
return self.remove_app_data(to_removes, 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 = [
|
||||
@@ -481,14 +496,14 @@ class ResConfigSettings(models.TransientModel):
|
||||
|
||||
def remove_all_biz(self):
|
||||
self.remove_account()
|
||||
self.remove_quality()
|
||||
self.remove_inventory()
|
||||
self.remove_mrp()
|
||||
self.remove_purchase()
|
||||
self.remove_mrp()
|
||||
self.remove_sales()
|
||||
self.remove_project()
|
||||
self.remove_pos()
|
||||
self.remove_expense()
|
||||
self.remove_quality()
|
||||
self.remove_message()
|
||||
return True
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
##App Odoo Customize(Debranding Title,Language,Documentation,Quick Debug,Quick Data Clear)
|
||||
============
|
||||
White label odoo.
|
||||
Support Odoo 14,13,12, 11, 10, 9. Including communicate and enterprise version.
|
||||
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
|
||||
|
||||
@@ -47,6 +47,9 @@
|
||||
<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: v14.21.03.31</h3>
|
||||
<p>38. Add Draggable Dialog enable.</p>
|
||||
<p>37. Easy noupdate manage for External Identifiers(xml_id).</p>
|
||||
<h3>Update: v14.21.03.03</h3>
|
||||
<p>Fixed odoo Title.</p>
|
||||
<h3>Update: v14.20.12.29</h3>
|
||||
@@ -133,7 +136,6 @@
|
||||
<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>
|
||||
<li class="list-group-item">36. Add refresh translate for multi module.</li>
|
||||
</ul>
|
||||
<p>
|
||||
This module can help to white label the Odoo.
|
||||
|
||||
17
app_odoo_customize/static/src/js/dialog.js
Normal file
17
app_odoo_customize/static/src/js/dialog.js
Normal file
@@ -0,0 +1,17 @@
|
||||
odoo.define('app_odoo_customize.dialog', function (require) {
|
||||
'use strict';
|
||||
|
||||
var Dialog = require('web.Dialog');
|
||||
|
||||
Dialog.include({
|
||||
open: function () {
|
||||
this._super.apply(this, arguments);
|
||||
this._opened.then(function(){
|
||||
$(".modal-content").draggable({
|
||||
handle: ".modal-header"
|
||||
});
|
||||
});
|
||||
return this;
|
||||
},
|
||||
});
|
||||
});
|
||||
7
app_odoo_customize/static/src/scss/dialog.scss
Normal file
7
app_odoo_customize/static/src/scss/dialog.scss
Normal file
@@ -0,0 +1,7 @@
|
||||
.modal {
|
||||
.modal-content {
|
||||
.modal-header.ui-draggable-handle {
|
||||
cursor: move;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -4,11 +4,13 @@
|
||||
<xpath expr="//link[last()]" position="after">
|
||||
<link rel="stylesheet" type="text/scss" href="/app_odoo_customize/static/src/scss/app.scss"/>
|
||||
<link rel="stylesheet" type="text/scss" href="/app_odoo_customize/static/src/scss/ribbon.scss"/>
|
||||
<link rel="stylesheet" type="text/scss" href="/app_odoo_customize/static/src/scss/dialog.scss"/>
|
||||
</xpath>
|
||||
<xpath expr="script[last()]" position="after">
|
||||
<script type="text/javascript" src="/app_odoo_customize/static/src/js/app_window_title.js"></script>
|
||||
<script type="text/javascript" src="/app_odoo_customize/static/src/js/customize_user_menu.js"></script>
|
||||
<script type="text/javascript" src="/app_odoo_customize/static/src/js/ribbon.js"></script>
|
||||
<script type="text/javascript" src="/app_odoo_customize/static/src/js/dialog.js"></script>
|
||||
</xpath>
|
||||
</template>
|
||||
|
||||
|
||||
@@ -144,8 +144,12 @@
|
||||
</div>
|
||||
<div class="col-12 col-lg-12 mb4">
|
||||
<span class="col-3 col-lg-2 text-left">Accounting</span>
|
||||
<span class="fa fa-lg fa-building-o" title="Values set here are company-specific." groups="base.group_multi_company"/>
|
||||
<button string="Delete All Voucher/Invoice/Bill" type="object" name="remove_account"
|
||||
confirm="Please confirm to delete the select data?" class="oe_highlight"/>
|
||||
|
|
||||
<button string="Clean and reset Account Chart" type="object" name="remove_account_chart"
|
||||
confirm="Please confirm to delete the select data?" class="oe_highlight"/>
|
||||
</div>
|
||||
<div class="col-12 col-lg-12 mb4">
|
||||
<span class="col-3 col-lg-2 text-left">Project</span>
|
||||
@@ -179,9 +183,6 @@
|
||||
<button string="Delete All Workflow" type="object" name="remove_workflow"
|
||||
confirm="Please confirm to delete the select data?" class="oe_highlight"/>
|
||||
|
|
||||
<button string="Clean and reset Account Chart" type="object" name="remove_account_chart"
|
||||
confirm="Please confirm to delete the select data?" class="oe_highlight"/>
|
||||
|
|
||||
<button string="Reset Category And Location Complete Name" type="object" name="reset_cat_loc_name" class="oe_highlight"/>
|
||||
</div>
|
||||
<div class="col-12 col-lg-12 mb4">
|
||||
|
||||
23
app_odoo_customize/views/ir_model_data_views.xml
Normal file
23
app_odoo_customize/views/ir_model_data_views.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="app_view_model_data_list" model="ir.ui.view">
|
||||
<field name="name">app.ir.model.data.tree</field>
|
||||
<field name="model">ir.model.data</field>
|
||||
<field name="inherit_id" ref="base.view_model_data_list"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="res_id" position="after">
|
||||
<field name="noupdate"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
<record id="app_view_model_data_search" model="ir.ui.view">
|
||||
<field name="name">app.ir.model.data.search</field>
|
||||
<field name="model">ir.model.data</field>
|
||||
<field name="inherit_id" ref="base.view_model_data_search"/>
|
||||
<field name="arch" type="xml">
|
||||
<filter name="updatable" position="after">
|
||||
<filter string="No Updatable" name="noupdatable" domain="[('noupdate', '=', True)]"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -10,8 +10,11 @@
|
||||
<attribute name="groups"/>
|
||||
</field>
|
||||
<field name="installed_version" position="after">
|
||||
<field name="latest_version"/>
|
||||
<field name="local_updatable"/>
|
||||
<field name="latest_version" optional="hide"/>
|
||||
<field name="local_updatable" optional="show"/>
|
||||
</field>
|
||||
<field name="website" position="attributes">
|
||||
<attribute name="optional">hide</attribute>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
</record>
|
||||
|
||||
<record id="action_server_module_multi_refresh_po" model="ir.actions.server">
|
||||
<field name="name">Refresh Module Translation</field>
|
||||
<field name="name">Refresh Translation</field>
|
||||
<field name="type">ir.actions.server</field>
|
||||
<field name="binding_model_id" ref="base.model_ir_module_module" />
|
||||
<field name="model_id" ref="base.model_ir_module_module" />
|
||||
|
||||
Reference in New Issue
Block a user