• Odoo中同步更新模板文件的文件名


    效果:

    PY文件代码:

    class RhwlDataUploadWizard(osv.osv_memory):
        _name = 'rhwl.data.upload.wizard'
    
        _columns = {
            "excel_name": fields.char(u"EXCEL文件名"),
            "excel_file_templet": fields.binary(u"模板下载"),
            "setting_id": fields.many2one("rhwl.lims.base.setting", string=u"检测项目", domain="[('is_product','=',True)]"),
            "operation_type": fields.selection([("1", u"样本信息导入"),
                                                ("2", u"实验结果上传"),
                                                ("3", u"更新样本信息")], u"操作类型", required=True),
            "file_bin": fields.binary(string=u"文件"),
        }
    
    
        _defaults = {
            "operation_type": "1",
        }
    
        def _get_data_templet(self, setting_code, operation_type):
            project_path = os.path.dirname(os.path.dirname(__file__))
            excel_name = ""
            if operation_type == "1":
                excel_name = "Virus_Sample_Templet_HPV"
    
            if operation_type == "2":
                excel_name = "Virus_Result_Templet_Acid"
    
            if operation_type == "3":
                excel_name = "Virus_Update_Sample_Templet"
    
            if not excel_name:
                return False
    
            templet_path = os.path.join(project_path, "templet%s%s.xls" % (os.sep, excel_name))
            with open(templet_path, 'rb') as fp:
                excel_templet = base64.encodestring(fp.read())
    
            return excel_templet
    
        @api.onchange("setting_id", "operation_type")
        def onchange_setting_operation(self):
            if self.operation_type and self.setting_id:
                self.excel_file_templet = self._get_data_templet(self.setting_id, self.operation_type)
                if self.operation_type == "1":
                    self.excel_name = "Create_Sample_Templet.xls"
                elif self.operation_type == "2":
                    self.excel_name = "Sample_Result_Templet.xls"
                elif self.operation_type == "3":
                    self.excel_name = "Update_Sample_Templet.xls"

    XML文件:

    <record id="rhwl_data_upload_wizard_view_form" model="ir.ui.view">
                <field name="name">rhwl data upload wizard</field>
                <field name="model">rhwl.data.upload.wizard</field>
                <field name="arch" type="xml">
                    <form string="Parameters">
                        <group>
                            <field name="excel_name" class="excel_name"   invisible="1"/>
                            <field name="excel_file_templet" class="file_templet" filename="excel_name" readonly="1" />
                            <field name="operation_type"  style='60%' />
                            <field name="setting_id"  style='60%' />
                            <field name="file_bin" />
                        </group>
                        <footer>
                            <button name="action_data_upload" string="上传" type="object"  class="oe_highlight"/>
                            or
                            <button string="Cancel" class="oe_link" special="cancel" />
                        </footer>
                    </form>
    
                </field>
            </record>
    
            <record id="action_rhwl_data_upload" model="ir.actions.act_window">
                <field name="name">数据上传</field>
                <field name="type">ir.actions.act_window</field>
                <field name="res_model">rhwl.data.upload.wizard</field>
                <field name="view_type">form</field>
                <field name="view_mode">form_data_upload_wizard</field>
                <field name="context">{'data_update':'1'}</field>
                <field name="target">new</field>
            </record>

    JS文件:

        instance.web.views.add('form_data_upload_wizard', 'instance.web.rhwl_virus.FormView');
        instance.web.rhwl_virus.FormView = instance.web.FormView.extend({
            init: function () {
                this._super.apply(this, arguments);
                var self = this;
            },
            on_form_changed: function() {
                this._super.apply(this, arguments);
                var self = this;
                var excel_name = self.$el.find(".excel_name").children("input").val();
                if(excel_name){
                    self.$el.find(".file_templet").children(".oe_form_uri").html(excel_name);
                }
            }
        });
  • 相关阅读:
    jquery blockUI插件实现遮罩层
    ckeditor粘入word内容如何默认设置为保留样式
    抓紧时间把c学习一下
    4G时代的解释
    。。。。
    几个常用的VS快捷键
    清除html标记并截取前50个字符
    SQL Server 2005 sp2安装后导入数据出错的处理方法
    自己做的一道机试题
    敏捷合同摘自网络
  • 原文地址:https://www.cnblogs.com/dancesir/p/14606779.html
Copyright © 2020-2023  润新知