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)',
|
||||
'version': '13.20.07.25',
|
||||
'version': '13.20.08.21',
|
||||
'author': 'Sunpop.cn',
|
||||
'category': 'Productivity',
|
||||
'website': 'https://www.sunpop.cn',
|
||||
@@ -74,6 +74,7 @@
|
||||
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.
|
||||
|
||||
This module can help to white label the Odoo.
|
||||
Also helpful for training and support for your odoo end-user.
|
||||
@@ -114,6 +115,7 @@
|
||||
31. 显示或去除 odoo 推荐
|
||||
32. 增加修复品类及区位名的操作
|
||||
33. 增加 Demo 的显示设置
|
||||
34. 增加清除质检数据
|
||||
""",
|
||||
'images': ['static/description/banner.gif'],
|
||||
'depends': [
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
#
|
||||
msgid ""
|
||||
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"
|
||||
"POT-Creation-Date: 2020-07-13 08:56+0000\n"
|
||||
"PO-Revision-Date: 2020-07-13 08:56+0000\n"
|
||||
"POT-Creation-Date: 2020-08-21 06:23+0000\n"
|
||||
"PO-Revision-Date: 2020-08-21 06:23+0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
"MIME-Version: 1.0\n"
|
||||
@@ -17,6 +17,7 @@ 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)"
|
||||
@@ -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>"
|
||||
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>"
|
||||
@@ -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>"
|
||||
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_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"
|
||||
@@ -86,6 +98,7 @@ 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)"
|
||||
@@ -134,6 +147,7 @@ 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"
|
||||
@@ -196,6 +210,11 @@ msgstr "删除所有项目/任务/预测"
|
||||
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 Sales Order"
|
||||
@@ -223,6 +242,7 @@ 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"
|
||||
@@ -293,7 +313,7 @@ msgstr "您确认要删除指定数据?"
|
||||
#. module: app_odoo_customize
|
||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.replace_login
|
||||
msgid "Powered by <span>odooApp</span>"
|
||||
msgstr "Powered by <span>Sunpop.cn</span>"
|
||||
msgstr "技术支持 <span>Sunpop.cn</span>"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#: model_terms:ir.ui.view,arch_db:app_odoo_customize.view_app_theme_config_settings
|
||||
@@ -440,7 +460,7 @@ msgstr "菜单项具体操作设置"
|
||||
#. module: app_odoo_customize
|
||||
#: model:ir.model,name:app_odoo_customize.model_ir_ui_view
|
||||
msgid "View"
|
||||
msgstr "查看"
|
||||
msgstr "视图"
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#: 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
|
||||
#. 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
|
||||
msgid "odooApp"
|
||||
msgstr "odooApp"
|
||||
msgstr ""
|
||||
|
||||
#. module: app_odoo_customize
|
||||
#: 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:
|
||||
pass
|
||||
|
||||
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', ],
|
||||
]
|
||||
# 清数据,o=对象, s=序列
|
||||
def remove_app_data(self, o, s=[]):
|
||||
try:
|
||||
for line in to_removes:
|
||||
obj_name = line[0]
|
||||
for line in o:
|
||||
obj_name = line
|
||||
obj = self.pool.get(obj_name)
|
||||
if obj:
|
||||
sql = "delete from %s" % obj._table
|
||||
self._cr.execute(sql)
|
||||
self._cr.commit()
|
||||
# 更新序号
|
||||
seqs = self.env['ir.sequence'].search([('code', 'like', 'sale%')])
|
||||
for seq in seqs:
|
||||
seq.write({
|
||||
self._cr.execute(sql)
|
||||
self._cr.commit()
|
||||
# 更新序号
|
||||
for line in s:
|
||||
domain = [('code', '=ilike', '%s' % line)]
|
||||
seqs = self.env['ir.sequence'].search(domain)
|
||||
seqs.write({
|
||||
'number_next': 1,
|
||||
})
|
||||
except Exception as e:
|
||||
_logger.error('remove data error: %s,%s', 'sale', e)
|
||||
_logger.error('remove data error: %s,%s', o, 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', ],
|
||||
'product.product',
|
||||
'product.template',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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()
|
||||
# 更新序号,针对自动产品编号
|
||||
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
|
||||
seqs = [
|
||||
'product.product',
|
||||
]
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
|
||||
def remove_product_attribute(self):
|
||||
to_removes = [
|
||||
# 清除产品属性
|
||||
['product.attribute.value', ],
|
||||
['product.attribute', ],
|
||||
'product.attribute.value',
|
||||
'product.attribute',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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
|
||||
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', ],
|
||||
'pos.payment',
|
||||
'pos.order.line',
|
||||
'pos.order',
|
||||
'pos.session',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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()
|
||||
# 更新序号
|
||||
seqs = self.env['ir.sequence'].search([('code', 'like', 'pos.%')])
|
||||
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()
|
||||
seqs = [
|
||||
'pos.%',
|
||||
]
|
||||
res = self.remove_app_data(to_removes, seqs)
|
||||
|
||||
# 更新要关帐的值,因为 store=true 的计算字段要重置
|
||||
statement = self.env['account.bank.statement'].search([])
|
||||
for s in statement:
|
||||
s._end_balance()
|
||||
return res
|
||||
|
||||
except Exception as e:
|
||||
_logger.error('remove data error: %s,%s', 'pos', e)
|
||||
return True
|
||||
|
||||
def remove_purchase(self):
|
||||
to_removes = [
|
||||
# 清除采购单据
|
||||
['purchase.order.line', ],
|
||||
['purchase.order', ],
|
||||
['purchase.requisition.line', ],
|
||||
['purchase.requisition', ],
|
||||
'purchase.order.line',
|
||||
'purchase.order',
|
||||
'purchase.requisition.line',
|
||||
'purchase.requisition',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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()
|
||||
# 更新序号
|
||||
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
|
||||
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', ],
|
||||
'hr.expense.sheet',
|
||||
'hr.expense',
|
||||
'hr.payslip',
|
||||
'hr.payslip.run',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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()
|
||||
# 更新序号
|
||||
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
|
||||
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', ],
|
||||
'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',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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()
|
||||
# 更新序号
|
||||
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
|
||||
seqs = [
|
||||
'mrp.%',
|
||||
]
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
|
||||
def remove_mrp_bom(self):
|
||||
to_removes = [
|
||||
# 清除生产BOM
|
||||
['mrp.bom.line', ],
|
||||
['mrp.bom', ],
|
||||
'mrp.bom.line',
|
||||
'mrp.bom',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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
|
||||
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', ],
|
||||
'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',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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()
|
||||
# 更新序号
|
||||
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
|
||||
seqs = [
|
||||
'stock.%',
|
||||
'picking.%',
|
||||
'WH/%',
|
||||
]
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
|
||||
def remove_account(self):
|
||||
to_removes = [
|
||||
# 清除财务会计单据
|
||||
['payment.transaction', ],
|
||||
['account.voucher.line', ],
|
||||
['account.voucher', ],
|
||||
['account.bank.statement.line', ],
|
||||
['account.payment', ],
|
||||
['account.analytic.line', ],
|
||||
['account.analytic.account', ],
|
||||
['account.invoice.line', ],
|
||||
['account.invoice.refund', ],
|
||||
['account.invoice', ],
|
||||
['account.partial.reconcile', ],
|
||||
['account.move.line', ],
|
||||
['hr.expense.sheet', ],
|
||||
['account.move', ],
|
||||
'payment.transaction',
|
||||
'account.voucher.line',
|
||||
'account.voucher',
|
||||
'account.bank.statement.line',
|
||||
'account.payment',
|
||||
'account.analytic.line',
|
||||
'account.analytic.account',
|
||||
'account.invoice.line',
|
||||
'account.invoice.refund',
|
||||
'account.invoice',
|
||||
'account.partial.reconcile',
|
||||
'account.move.line',
|
||||
'hr.expense.sheet',
|
||||
'account.move',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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()
|
||||
seqs = []
|
||||
res = self.remove_app_data(to_removes, seqs)
|
||||
|
||||
# 更新序号
|
||||
seqs = self.env['ir.sequence'].search([
|
||||
'|', ('code', 'like', 'account.%'),
|
||||
'|', ('prefix', 'like', 'BNK1/'),
|
||||
'|', ('prefix', 'like', 'CSH1/'),
|
||||
'|', ('prefix', 'like', 'INV/'),
|
||||
'|', ('prefix', 'like', 'EXCH/'),
|
||||
'|', ('prefix', 'like', 'MISC/'),
|
||||
'|', ('prefix', 'like', '账单/'),
|
||||
('prefix', 'like', '杂项/')
|
||||
])
|
||||
for seq in seqs:
|
||||
seq.write({
|
||||
'number_next': 1,
|
||||
})
|
||||
except Exception as e:
|
||||
_logger.error('remove data error: %s,%s', 'account', e)
|
||||
return True
|
||||
# extra 更新序号
|
||||
seqs = self.env['ir.sequence'].search([
|
||||
'|', ('code', '=ilike', 'account.%'),
|
||||
'|', ('prefix', '=ilike', 'BNK1/%'),
|
||||
'|', ('prefix', '=ilike', 'CSH1/%'),
|
||||
'|', ('prefix', '=ilike', 'INV/%'),
|
||||
'|', ('prefix', '=ilike', 'EXCH/%'),
|
||||
'|', ('prefix', '=ilike', 'MISC/%'),
|
||||
'|', ('prefix', '=ilike', '账单/%'),
|
||||
('prefix', '=ilike', '杂项/%')
|
||||
])
|
||||
seqs.write({
|
||||
'number_next': 1,
|
||||
})
|
||||
return res
|
||||
|
||||
def remove_account_chart(self):
|
||||
to_removes = [
|
||||
# 清除财务科目,用于重设
|
||||
['res.partner.bank', ],
|
||||
['res.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', ],
|
||||
'res.partner.bank',
|
||||
'res.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
|
||||
@@ -477,113 +373,78 @@ class ResConfigSettings(models.TransientModel):
|
||||
except Exception as e:
|
||||
pass # raise Warning(e)
|
||||
|
||||
try:
|
||||
for line in to_removes:
|
||||
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
|
||||
seqs = []
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
|
||||
def remove_project(self):
|
||||
to_removes = [
|
||||
# 清除项目
|
||||
['account.analytic.line', ],
|
||||
['project.task', ],
|
||||
['project.forecast', ],
|
||||
['project.project', ],
|
||||
'account.analytic.line',
|
||||
'project.task',
|
||||
'project.forecast',
|
||||
'project.project',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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', 'project', e)
|
||||
return True
|
||||
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_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', ],
|
||||
'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',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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
|
||||
seqs = []
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
|
||||
def remove_message(self):
|
||||
to_removes = [
|
||||
# 清除消息数据
|
||||
['mail.message', ],
|
||||
['mail.followers', ],
|
||||
['mail.activity', ],
|
||||
'mail.message',
|
||||
'mail.followers',
|
||||
'mail.activity',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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
|
||||
seqs = []
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
|
||||
def remove_workflow(self):
|
||||
to_removes = [
|
||||
# 清除工作流
|
||||
['wkf.workitem', ],
|
||||
['wkf.instance', ],
|
||||
'wkf.workitem',
|
||||
'wkf.instance',
|
||||
]
|
||||
try:
|
||||
for line in to_removes:
|
||||
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
|
||||
seqs = []
|
||||
return self.remove_app_data(to_removes, seqs)
|
||||
|
||||
def remove_all_biz(self):
|
||||
self.remove_account()
|
||||
@@ -594,6 +455,7 @@ class ResConfigSettings(models.TransientModel):
|
||||
self.remove_project()
|
||||
self.remove_pos()
|
||||
self.remove_expense()
|
||||
self.remove_quality()
|
||||
self.remove_message()
|
||||
return True
|
||||
|
||||
|
||||
@@ -152,6 +152,11 @@
|
||||
<button string="Delete All Project/Task/Forecast" type="object" name="remove_project"
|
||||
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">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">
|
||||
<span class="col-3 col-lg-2 text-left">Website And Blog</span>
|
||||
<button string="Delete All Website/Blog" type="object" name="remove_website"
|
||||
|
||||
Reference in New Issue
Block a user