mirror of
https://github.com/guohuadeng/app-odoo.git
synced 2025-02-23 04:11:36 +02:00
fix #I7TB8W [app_common]增加通用的导入数据方法
This commit is contained in:
@@ -39,7 +39,7 @@
|
|||||||
|
|
||||||
{
|
{
|
||||||
'name': "odooai Odooapp Common Func",
|
'name': "odooai Odooapp Common Func",
|
||||||
'version': '16.23.05.09',
|
'version': '16.23.08.17',
|
||||||
'author': 'odooai.cn',
|
'author': 'odooai.cn',
|
||||||
'category': 'Base',
|
'category': 'Base',
|
||||||
'website': 'https://www.odooai.cn',
|
'website': 'https://www.odooai.cn',
|
||||||
|
|||||||
44
app_common/models/app_import.py
Normal file
44
app_common/models/app_import.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
import base64
|
||||||
|
import io
|
||||||
|
import csv
|
||||||
|
import os.path
|
||||||
|
|
||||||
|
from odoo import api, fields, models, modules, tools, SUPERUSER_ID, _
|
||||||
|
from odoo.tools import pycompat
|
||||||
|
|
||||||
|
|
||||||
|
def app_quick_import(cr, content_path, sep=None):
|
||||||
|
if not sep:
|
||||||
|
sep = '/'
|
||||||
|
dir_split = content_path.split(sep)
|
||||||
|
module_name = dir_split[0]
|
||||||
|
file_name = dir_split[2]
|
||||||
|
file_path, file_type = os.path.splitext(content_path)
|
||||||
|
model_name = file_name.replace(file_type, '')
|
||||||
|
file_path = modules.get_module_resource(module_name, dir_split[1], file_name)
|
||||||
|
content = open(file_path, 'rb').read()
|
||||||
|
env = api.Environment(cr, SUPERUSER_ID, {})
|
||||||
|
if file_type == '.csv':
|
||||||
|
file_type = 'text/csv'
|
||||||
|
elif file_type in ['.xls', '.xlsx']:
|
||||||
|
file_type = 'application/vnd.ms-excel'
|
||||||
|
import_wizard = env['base_import.import'].create({
|
||||||
|
'res_model': model_name,
|
||||||
|
'file_name': file_name,
|
||||||
|
'file_type': file_type,
|
||||||
|
'file': content,
|
||||||
|
})
|
||||||
|
preview = import_wizard.parse_preview({
|
||||||
|
# 'separator': ',',
|
||||||
|
'has_headers': True,
|
||||||
|
# 'quoting': '"',
|
||||||
|
})
|
||||||
|
result = import_wizard.execute_import(
|
||||||
|
preview["headers"],
|
||||||
|
preview["headers"],
|
||||||
|
preview["options"]
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
Reference in New Issue
Block a user