update common

This commit is contained in:
ivan deng
2020-08-21 15:26:54 +08:00
parent 6f749af1be
commit 2e06ecaf8a
4 changed files with 240 additions and 350 deletions

View File

@@ -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': [

View File

@@ -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

View File

@@ -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)
seqs = self.env['ir.sequence'].search([('code', 'like', 'sale%')]) self._cr.commit()
for seq in seqs: # 更新序号
seq.write({ for line in s:
domain = [('code', '=ilike', '%s' % line)]
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 # 更新要关帐的值,因为 store=true 的计算字段要重置
self._cr.execute(sql) statement = self.env['account.bank.statement'].search([])
self._cr.commit() for s in statement:
# 更新序号 s._end_balance()
seqs = self.env['ir.sequence'].search([('code', 'like', 'pos.%')]) return res
for seq in seqs:
seq.write({
'number_next': 1,
})
# 更新要关帐的值,因为 store=true 的计算字段要重置
statement = self.env['account.bank.statement'].search([])
for s in statement:
s._end_balance()
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, })
}) return res
except Exception as e:
_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

View File

@@ -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"