mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
update common
This commit is contained in:
@@ -23,7 +23,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
'name': 'Customize odoo OEM (Boost, My Odoo)',
|
'name': 'Customize odoo OEM (Boost, My Odoo)',
|
||||||
'version': '13.20.07.25',
|
'version': '13.20.08.21',
|
||||||
'author': 'Sunpop.cn',
|
'author': 'Sunpop.cn',
|
||||||
'category': 'Productivity',
|
'category': 'Productivity',
|
||||||
'website': 'https://www.sunpop.cn',
|
'website': 'https://www.sunpop.cn',
|
||||||
@@ -74,6 +74,7 @@
|
|||||||
31. Show or hide odoo Referral in the top menu.
|
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.
|
33. Add Demo Ribbon Setting.
|
||||||
|
34. Add Remove all quality data.
|
||||||
|
|
||||||
This module can help to white label the Odoo.
|
This module can help to white label the Odoo.
|
||||||
Also helpful for training and support for your odoo end-user.
|
Also helpful for training and support for your odoo end-user.
|
||||||
@@ -114,6 +115,7 @@
|
|||||||
31. 显示或去除 odoo 推荐
|
31. 显示或去除 odoo 推荐
|
||||||
32. 增加修复品类及区位名的操作
|
32. 增加修复品类及区位名的操作
|
||||||
33. 增加 Demo 的显示设置
|
33. 增加 Demo 的显示设置
|
||||||
|
34. 增加清除质检数据
|
||||||
""",
|
""",
|
||||||
'images': ['static/description/banner.gif'],
|
'images': ['static/description/banner.gif'],
|
||||||
'depends': [
|
'depends': [
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
#
|
#
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: Odoo Server 13.0+e-20200628\n"
|
"Project-Id-Version: Odoo Server 13.0+e\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2020-07-13 08:56+0000\n"
|
"POT-Creation-Date: 2020-08-21 06:23+0000\n"
|
||||||
"PO-Revision-Date: 2020-07-13 08:56+0000\n"
|
"PO-Revision-Date: 2020-08-21 06:23+0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -17,6 +17,7 @@ msgstr ""
|
|||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#. openerp-web
|
#. 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
|
#: code:addons/app_odoo_customize/static/src/xml/res_config_edition.xml:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "(Sunpop.cn Professional Edition)"
|
msgid "(Sunpop.cn Professional Edition)"
|
||||||
@@ -67,6 +68,11 @@ msgstr "<span class=\"col-3 col-lg-2 text-left\">项目</span>"
|
|||||||
msgid "<span class=\"col-3 col-lg-2 text-left\">Purchase</span>"
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Purchase</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
|
||||||
|
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
|
#. module: app_odoo_customize
|
||||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
#: 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>"
|
msgid "<span class=\"col-3 col-lg-2 text-left\">Sale</span>"
|
||||||
@@ -77,8 +83,14 @@ msgstr "<span class=\"col-3 col-lg-2 text-left\">销售</span>"
|
|||||||
msgid "<span class=\"col-3 col-lg-2 text-left\">Website And Blog</span>"
|
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>"
|
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
|
#. module: app_odoo_customize
|
||||||
#. openerp-web
|
#. 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
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Activate the developer mode"
|
msgid "Activate the developer mode"
|
||||||
@@ -86,6 +98,7 @@ msgstr "激活开发者模式"
|
|||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#. openerp-web
|
#. 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
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Activate the developer mode (with assets)"
|
msgid "Activate the developer mode (with assets)"
|
||||||
@@ -134,6 +147,7 @@ msgstr "数据清理(请谨慎操作!)"
|
|||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#. openerp-web
|
#. 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
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Deactivate the developer mode"
|
msgid "Deactivate the developer mode"
|
||||||
@@ -196,6 +210,11 @@ msgstr "删除所有项目/任务/预测"
|
|||||||
msgid "Delete All Purchase Order and Requisition"
|
msgid "Delete All Purchase Order and Requisition"
|
||||||
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"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
msgid "Delete All Sales Order"
|
msgid "Delete All Sales Order"
|
||||||
@@ -223,6 +242,7 @@ msgstr "开发者手册链接"
|
|||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#. openerp-web
|
#. 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
|
#: code:addons/app_odoo_customize/static/src/xml/customize_user_menu.xml:0
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "Developer Manual"
|
msgid "Developer Manual"
|
||||||
@@ -293,7 +313,7 @@ msgstr "您确认要删除指定数据?"
|
|||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.replace_login
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.replace_login
|
||||||
msgid "Powered by <span>odooApp</span>"
|
msgid "Powered by <span>odooApp</span>"
|
||||||
msgstr "Powered by <span>Sunpop.cn</span>"
|
msgstr "技术支持 <span>Sunpop.cn</span>"
|
||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
@@ -440,7 +460,7 @@ msgstr "菜单项具体操作设置"
|
|||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#: model:ir.model,name:app_odoo_customize.model_ir_ui_view
|
#: model:ir.model,name:app_odoo_customize.model_ir_ui_view
|
||||||
msgid "View"
|
msgid "View"
|
||||||
msgstr "查看"
|
msgstr "视图"
|
||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
@@ -489,11 +509,12 @@ msgstr "个性化odoo设置"
|
|||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#. openerp-web
|
#. 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
|
#: code:addons/app_odoo_customize/static/src/xml/res_config_edition.xml:0
|
||||||
#: model:ir.ui.menu,name:app_odoo_customize.menu_app_group
|
#: model:ir.ui.menu,name:app_odoo_customize.menu_app_group
|
||||||
#, python-format
|
#, python-format
|
||||||
msgid "odooApp"
|
msgid "odooApp"
|
||||||
msgstr "odooApp"
|
msgstr ""
|
||||||
|
|
||||||
#. module: app_odoo_customize
|
#. module: app_odoo_customize
|
||||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||||
|
|||||||
@@ -113,323 +113,219 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def remove_sales(self):
|
# 清数据,o=对象, s=序列
|
||||||
to_removes = [
|
def remove_app_data(self, o, s=[]):
|
||||||
# 清除销售单据
|
|
||||||
['sale.order.line', ],
|
|
||||||
['sale.order', ],
|
|
||||||
# 销售提成,自用
|
|
||||||
['sale.commission.line', ],
|
|
||||||
# 不能删除报价单模板
|
|
||||||
# ['sale.order.template.option', ],
|
|
||||||
# ['sale.order.template.line', ],
|
|
||||||
# ['sale.order.template', ],
|
|
||||||
]
|
|
||||||
try:
|
try:
|
||||||
for line in to_removes:
|
for line in o:
|
||||||
obj_name = line[0]
|
obj_name = line
|
||||||
obj = self.pool.get(obj_name)
|
obj = self.pool.get(obj_name)
|
||||||
if obj:
|
if obj:
|
||||||
sql = "delete from %s" % obj._table
|
sql = "delete from %s" % obj._table
|
||||||
self._cr.execute(sql)
|
self._cr.execute(sql)
|
||||||
self._cr.commit()
|
self._cr.commit()
|
||||||
|
self._cr.execute(sql)
|
||||||
|
self._cr.commit()
|
||||||
# 更新序号
|
# 更新序号
|
||||||
seqs = self.env['ir.sequence'].search([('code', 'like', 'sale%')])
|
for line in s:
|
||||||
for seq in seqs:
|
domain = [('code', '=ilike', '%s' % line)]
|
||||||
seq.write({
|
seqs = self.env['ir.sequence'].search(domain)
|
||||||
|
seqs.write({
|
||||||
'number_next': 1,
|
'number_next': 1,
|
||||||
})
|
})
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
_logger.error('remove data error: %s,%s', 'sale', e)
|
_logger.error('remove data error: %s,%s', o, e)
|
||||||
return True
|
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):
|
def remove_product(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除产品数据
|
# 清除产品数据
|
||||||
['product.product', ],
|
'product.product',
|
||||||
['product.template', ],
|
'product.template',
|
||||||
]
|
]
|
||||||
try:
|
seqs = [
|
||||||
for line in to_removes:
|
'product.product',
|
||||||
obj_name = line[0]
|
]
|
||||||
obj = self.pool.get(obj_name)
|
return self.remove_app_data(to_removes, seqs)
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
# 更新序号,针对自动产品编号
|
|
||||||
seqs = self.env['ir.sequence'].search([('code', '=', 'product.product')])
|
|
||||||
for seq in seqs:
|
|
||||||
seq.write({
|
|
||||||
'number_next': 1,
|
|
||||||
})
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'product', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_product_attribute(self):
|
def remove_product_attribute(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除产品属性
|
# 清除产品属性
|
||||||
['product.attribute.value', ],
|
'product.attribute.value',
|
||||||
['product.attribute', ],
|
'product.attribute',
|
||||||
]
|
]
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
return self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'product_attr', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_pos(self):
|
def remove_pos(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除POS单据
|
# 清除POS单据
|
||||||
['pos.payment', ],
|
'pos.payment',
|
||||||
['pos.order.line', ],
|
'pos.order.line',
|
||||||
['pos.order', ],
|
'pos.order',
|
||||||
['pos.session', ],
|
'pos.session',
|
||||||
]
|
]
|
||||||
try:
|
seqs = [
|
||||||
for line in to_removes:
|
'pos.%',
|
||||||
obj_name = line[0]
|
]
|
||||||
obj = self.pool.get(obj_name)
|
res = self.remove_app_data(to_removes, seqs)
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
# 更新序号
|
|
||||||
seqs = self.env['ir.sequence'].search([('code', 'like', 'pos.%')])
|
|
||||||
for seq in seqs:
|
|
||||||
seq.write({
|
|
||||||
'number_next': 1,
|
|
||||||
})
|
|
||||||
# 更新要关帐的值,因为 store=true 的计算字段要重置
|
# 更新要关帐的值,因为 store=true 的计算字段要重置
|
||||||
statement = self.env['account.bank.statement'].search([])
|
statement = self.env['account.bank.statement'].search([])
|
||||||
for s in statement:
|
for s in statement:
|
||||||
s._end_balance()
|
s._end_balance()
|
||||||
|
return res
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'pos', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_purchase(self):
|
def remove_purchase(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除采购单据
|
# 清除采购单据
|
||||||
['purchase.order.line', ],
|
'purchase.order.line',
|
||||||
['purchase.order', ],
|
'purchase.order',
|
||||||
['purchase.requisition.line', ],
|
'purchase.requisition.line',
|
||||||
['purchase.requisition', ],
|
'purchase.requisition',
|
||||||
]
|
]
|
||||||
try:
|
seqs = [
|
||||||
for line in to_removes:
|
'purchase.%',
|
||||||
obj_name = line[0]
|
]
|
||||||
obj = self.pool.get(obj_name)
|
return self.remove_app_data(to_removes, seqs)
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
# 更新序号
|
|
||||||
seqs = self.env['ir.sequence'].search([('code', 'like', 'purchase.%')])
|
|
||||||
for seq in seqs:
|
|
||||||
seq.write({
|
|
||||||
'number_next': 1,
|
|
||||||
})
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'purchase', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_expense(self):
|
def remove_expense(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除
|
# 清除
|
||||||
['hr.expense.sheet', ],
|
'hr.expense.sheet',
|
||||||
['hr.expense', ],
|
'hr.expense',
|
||||||
['hr.payslip', ],
|
'hr.payslip',
|
||||||
['hr.payslip.run', ],
|
'hr.payslip.run',
|
||||||
]
|
]
|
||||||
try:
|
seqs = [
|
||||||
for line in to_removes:
|
'hr.expense.%',
|
||||||
obj_name = line[0]
|
]
|
||||||
obj = self.pool.get(obj_name)
|
return self.remove_app_data(to_removes, seqs)
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
# 更新序号
|
|
||||||
seqs = self.env['ir.sequence'].search([
|
|
||||||
('code', 'like', 'hr.expense.%')])
|
|
||||||
for seq in seqs:
|
|
||||||
seq.write({
|
|
||||||
'number_next': 1,
|
|
||||||
})
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'expense', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_mrp(self):
|
def remove_mrp(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除生产单据
|
# 清除生产单据
|
||||||
['mrp.workcenter.productivity', ],
|
'mrp.workcenter.productivity',
|
||||||
['mrp.workorder', ],
|
'mrp.workorder',
|
||||||
['mrp.production.workcenter.line', ],
|
'mrp.production.workcenter.line',
|
||||||
['change.production.qty', ],
|
'change.production.qty',
|
||||||
['mrp.production', ],
|
'mrp.production',
|
||||||
['mrp.production.product.line', ],
|
'mrp.production.product.line',
|
||||||
['mrp.unbuild', ],
|
'mrp.unbuild',
|
||||||
['change.production.qty', ],
|
'change.production.qty',
|
||||||
['sale.forecast.indirect', ],
|
'sale.forecast.indirect',
|
||||||
['sale.forecast', ],
|
'sale.forecast',
|
||||||
]
|
]
|
||||||
try:
|
seqs = [
|
||||||
for line in to_removes:
|
'mrp.%',
|
||||||
obj_name = line[0]
|
]
|
||||||
obj = self.pool.get(obj_name)
|
return self.remove_app_data(to_removes, seqs)
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
# 更新序号
|
|
||||||
seqs = self.env['ir.sequence'].search([('code', 'like', 'mrp.%')])
|
|
||||||
for seq in seqs:
|
|
||||||
seq.write({
|
|
||||||
'number_next': 1,
|
|
||||||
})
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'mrp', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_mrp_bom(self):
|
def remove_mrp_bom(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除生产BOM
|
# 清除生产BOM
|
||||||
['mrp.bom.line', ],
|
'mrp.bom.line',
|
||||||
['mrp.bom', ],
|
'mrp.bom',
|
||||||
]
|
]
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
return self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'mrp_bom', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_inventory(self):
|
def remove_inventory(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除库存单据
|
# 清除库存单据
|
||||||
['stock.quant', ],
|
'stock.quant',
|
||||||
['stock.move.line', ],
|
'stock.move.line',
|
||||||
['stock.package.level', ],
|
'stock.package.level',
|
||||||
['stock.quantity.history', ],
|
'stock.quantity.history',
|
||||||
['stock.quant.package', ],
|
'stock.quant.package',
|
||||||
['stock.move', ],
|
'stock.move',
|
||||||
# ['stock.pack.operation', ],
|
# 'stock.pack.operation',
|
||||||
['stock.picking', ],
|
'stock.picking',
|
||||||
['stock.scrap', ],
|
'stock.scrap',
|
||||||
['stock.picking.batch', ],
|
'stock.picking.batch',
|
||||||
['stock.inventory.line', ],
|
'stock.inventory.line',
|
||||||
['stock.inventory', ],
|
'stock.inventory',
|
||||||
['stock.valuation.layer', ],
|
'stock.valuation.layer',
|
||||||
['stock.production.lot', ],
|
'stock.production.lot',
|
||||||
# ['stock.fixed.putaway.strat', ],
|
# 'stock.fixed.putaway.strat',
|
||||||
['procurement.group', ],
|
'procurement.group',
|
||||||
]
|
]
|
||||||
try:
|
seqs = [
|
||||||
for line in to_removes:
|
'stock.%',
|
||||||
obj_name = line[0]
|
'picking.%',
|
||||||
obj = self.pool.get(obj_name)
|
'WH/%',
|
||||||
if obj:
|
]
|
||||||
sql = "delete from %s" % obj._table
|
return self.remove_app_data(to_removes, seqs)
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
# 更新序号
|
|
||||||
seqs = self.env['ir.sequence'].search([
|
|
||||||
'|', ('code', 'like', 'stock.%'),
|
|
||||||
'|', ('code', 'like', 'picking.%'),
|
|
||||||
'|', ('prefix', '=', 'WH/IN/'),
|
|
||||||
'|', ('prefix', '=', 'WH/INT/'),
|
|
||||||
'|', ('prefix', '=', 'WH/OUT/'),
|
|
||||||
'|', ('prefix', '=', 'WH/PACK/'),
|
|
||||||
('prefix', '=', 'WH/PICK/')
|
|
||||||
])
|
|
||||||
for seq in seqs:
|
|
||||||
seq.write({
|
|
||||||
'number_next': 1,
|
|
||||||
})
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'inventory', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_account(self):
|
def remove_account(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除财务会计单据
|
# 清除财务会计单据
|
||||||
['payment.transaction', ],
|
'payment.transaction',
|
||||||
['account.voucher.line', ],
|
'account.voucher.line',
|
||||||
['account.voucher', ],
|
'account.voucher',
|
||||||
['account.bank.statement.line', ],
|
'account.bank.statement.line',
|
||||||
['account.payment', ],
|
'account.payment',
|
||||||
['account.analytic.line', ],
|
'account.analytic.line',
|
||||||
['account.analytic.account', ],
|
'account.analytic.account',
|
||||||
['account.invoice.line', ],
|
'account.invoice.line',
|
||||||
['account.invoice.refund', ],
|
'account.invoice.refund',
|
||||||
['account.invoice', ],
|
'account.invoice',
|
||||||
['account.partial.reconcile', ],
|
'account.partial.reconcile',
|
||||||
['account.move.line', ],
|
'account.move.line',
|
||||||
['hr.expense.sheet', ],
|
'hr.expense.sheet',
|
||||||
['account.move', ],
|
'account.move',
|
||||||
]
|
]
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
res = self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
|
|
||||||
# 更新序号
|
# extra 更新序号
|
||||||
seqs = self.env['ir.sequence'].search([
|
seqs = self.env['ir.sequence'].search([
|
||||||
'|', ('code', 'like', 'account.%'),
|
'|', ('code', '=ilike', 'account.%'),
|
||||||
'|', ('prefix', 'like', 'BNK1/'),
|
'|', ('prefix', '=ilike', 'BNK1/%'),
|
||||||
'|', ('prefix', 'like', 'CSH1/'),
|
'|', ('prefix', '=ilike', 'CSH1/%'),
|
||||||
'|', ('prefix', 'like', 'INV/'),
|
'|', ('prefix', '=ilike', 'INV/%'),
|
||||||
'|', ('prefix', 'like', 'EXCH/'),
|
'|', ('prefix', '=ilike', 'EXCH/%'),
|
||||||
'|', ('prefix', 'like', 'MISC/'),
|
'|', ('prefix', '=ilike', 'MISC/%'),
|
||||||
'|', ('prefix', 'like', '账单/'),
|
'|', ('prefix', '=ilike', '账单/%'),
|
||||||
('prefix', 'like', '杂项/')
|
('prefix', '=ilike', '杂项/%')
|
||||||
])
|
])
|
||||||
for seq in seqs:
|
seqs.write({
|
||||||
seq.write({
|
|
||||||
'number_next': 1,
|
'number_next': 1,
|
||||||
})
|
})
|
||||||
except Exception as e:
|
return res
|
||||||
_logger.error('remove data error: %s,%s', 'account', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_account_chart(self):
|
def remove_account_chart(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除财务科目,用于重设
|
# 清除财务科目,用于重设
|
||||||
['res.partner.bank', ],
|
'res.partner.bank',
|
||||||
['res.bank', ],
|
'res.bank',
|
||||||
['account.move.line'],
|
'account.move.line',
|
||||||
['account.invoice'],
|
'account.invoice',
|
||||||
['account.payment'],
|
'account.payment',
|
||||||
['account.bank.statement', ],
|
'account.bank.statement',
|
||||||
['account.tax.account.tag', ],
|
'account.tax.account.tag',
|
||||||
['account.tax', ],
|
'account.tax',
|
||||||
['account.account.account.tag', ],
|
'account.account.account.tag',
|
||||||
['wizard_multi_charts_accounts'],
|
'wizard_multi_charts_accounts',
|
||||||
['account.journal', ],
|
'account.journal',
|
||||||
['account.account', ],
|
'account.account',
|
||||||
]
|
]
|
||||||
# todo: 要做 remove_hr,因为工资表会用到 account
|
# todo: 要做 remove_hr,因为工资表会用到 account
|
||||||
# 更新account关联,很多是多公司字段,故只存在 ir_property,故在原模型,只能用update
|
# 更新account关联,很多是多公司字段,故只存在 ir_property,故在原模型,只能用update
|
||||||
@@ -477,113 +373,78 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
pass # raise Warning(e)
|
pass # raise Warning(e)
|
||||||
|
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
return self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
|
||||||
if obj:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
|
|
||||||
|
|
||||||
sql = "update res_company set chart_template_id=null;"
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
# 更新序号
|
|
||||||
except Exception as e:
|
|
||||||
pass
|
|
||||||
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_project(self):
|
def remove_project(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除项目
|
# 清除项目
|
||||||
['account.analytic.line', ],
|
'account.analytic.line',
|
||||||
['project.task', ],
|
'project.task',
|
||||||
['project.forecast', ],
|
'project.forecast',
|
||||||
['project.project', ],
|
'project.project',
|
||||||
]
|
]
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
return self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
def remove_quality(self):
|
||||||
if obj:
|
to_removes = [
|
||||||
sql = "delete from %s" % obj._table
|
# 清除质检数据
|
||||||
self._cr.execute(sql)
|
'quality.check',
|
||||||
self._cr.commit()
|
'quality.alert',
|
||||||
# 更新序号
|
# 'quality.point',
|
||||||
except Exception as e:
|
# 'quality.alert.stage',
|
||||||
_logger.error('remove data error: %s,%s', 'project', e)
|
# 'quality.alert.team',
|
||||||
return True
|
# '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_website(self):
|
def remove_website(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除网站数据,w, w_blog
|
# 清除网站数据,w, w_blog
|
||||||
['blog.tag.category', ],
|
'blog.tag.category',
|
||||||
['blog.tag', ],
|
'blog.tag',
|
||||||
['blog.post', ],
|
'blog.post',
|
||||||
['blog.blog', ],
|
'blog.blog',
|
||||||
['product.wishlist', ],
|
'product.wishlist',
|
||||||
['website.published.multi.mixin', ],
|
'website.published.multi.mixin',
|
||||||
['website.published.mixin', ],
|
'website.published.mixin',
|
||||||
['website.multi.mixin', ],
|
'website.multi.mixin',
|
||||||
['website.visitor', ],
|
'website.visitor',
|
||||||
['website.redirect', ],
|
'website.redirect',
|
||||||
['website.seo.metadata', ],
|
'website.seo.metadata',
|
||||||
# ['website.page', ],
|
# 'website.page',
|
||||||
# ['website.menu', ],
|
# 'website.menu',
|
||||||
# ['website', ],
|
# 'website',
|
||||||
]
|
]
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
return self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
|
||||||
if obj and obj._table:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'website', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_message(self):
|
def remove_message(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除消息数据
|
# 清除消息数据
|
||||||
['mail.message', ],
|
'mail.message',
|
||||||
['mail.followers', ],
|
'mail.followers',
|
||||||
['mail.activity', ],
|
'mail.activity',
|
||||||
]
|
]
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
return self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
|
||||||
if obj and obj._table:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'message', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_workflow(self):
|
def remove_workflow(self):
|
||||||
to_removes = [
|
to_removes = [
|
||||||
# 清除工作流
|
# 清除工作流
|
||||||
['wkf.workitem', ],
|
'wkf.workitem',
|
||||||
['wkf.instance', ],
|
'wkf.instance',
|
||||||
]
|
]
|
||||||
try:
|
seqs = []
|
||||||
for line in to_removes:
|
return self.remove_app_data(to_removes, seqs)
|
||||||
obj_name = line[0]
|
|
||||||
obj = self.pool.get(obj_name)
|
|
||||||
if obj and obj._table:
|
|
||||||
sql = "delete from %s" % obj._table
|
|
||||||
self._cr.execute(sql)
|
|
||||||
self._cr.commit()
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
_logger.error('remove data error: %s,%s', 'workflow', e)
|
|
||||||
return True
|
|
||||||
|
|
||||||
def remove_all_biz(self):
|
def remove_all_biz(self):
|
||||||
self.remove_account()
|
self.remove_account()
|
||||||
@@ -594,6 +455,7 @@ class ResConfigSettings(models.TransientModel):
|
|||||||
self.remove_project()
|
self.remove_project()
|
||||||
self.remove_pos()
|
self.remove_pos()
|
||||||
self.remove_expense()
|
self.remove_expense()
|
||||||
|
self.remove_quality()
|
||||||
self.remove_message()
|
self.remove_message()
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
@@ -152,6 +152,11 @@
|
|||||||
<button string="Delete All Project/Task/Forecast" type="object" name="remove_project"
|
<button string="Delete All Project/Task/Forecast" type="object" name="remove_project"
|
||||||
confirm="Please confirm to delete the select data?" class="oe_highlight"/>
|
confirm="Please confirm to delete the select data?" class="oe_highlight"/>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-12 col-lg-12 mb4">
|
||||||
|
<span class="col-3 col-lg-2 text-left">Quality</span>
|
||||||
|
<button string="Delete All Quality" type="object" name="remove_quality"
|
||||||
|
confirm="Please confirm to delete the select data?" class="oe_highlight"/>
|
||||||
|
</div>
|
||||||
<div class="col-12 col-lg-12 mb4">
|
<div class="col-12 col-lg-12 mb4">
|
||||||
<span class="col-3 col-lg-2 text-left">Website And Blog</span>
|
<span class="col-3 col-lg-2 text-left">Website And Blog</span>
|
||||||
<button string="Delete All Website/Blog" type="object" name="remove_website"
|
<button string="Delete All Website/Blog" type="object" name="remove_website"
|
||||||
|
|||||||
Reference in New Issue
Block a user