• odoo13笔记点


    • tree视图上上对某个字典进行排序(默认是asc升序,desc降序)

    1. <tree default_order="applicant_date desc">
    2. <field name="applicant_date"/>
    3. tree>
    • 过程型的展示, 草稿----》已提交-----》审批中----》
    <field name="state" widget="statusbar" readonly="1"/>
    • 在create和write函数中传入的参数vals值中是没有的,无法直接从vals中获取。那怎么样可以让create函数和write函数获取到只读字段的值呢,方法其实很简单
      force_save='1',字面意思就可以看出来,这个属性是强制保存的意思,这样,只读字段就可以保存了
    <field name="hr_department_id" readonly="1" force_save="1"/>
    • xml中    default_focus="1"
       default_focus:该字段是否获得默认焦点
    • postgresql中批量更新数据的sql
    1. UPDATE account_account SET distribution_id = B.id
    2. FROM eno_fin_account B WHERE A.code = B.code
    • odoo删除时弹框提示
    1. def unlink(self):
    2. """
    3. 重写删除函数
    4. :return:
    5. """
    6. for rec in self:
    7. if rec.state != 'created':
    8. raise ValidationError('仅允许删除状态为草稿的调动申请单!')
    9. return super(EnoHrApplicationResignation, self).unlink()
    • 继承原表,给原表中的下拉框里面添加值,即给selection中添加值
    1. # 员工状态添加
    2. def _selection_state(self):
    3. res = super(EnoHrEmployee, self)._selection_state()
    4. res += [
    5. ('to_be_hired', '待入职'),
    6. ('practice', '实习')
    7. ]
    8. return res

        state = fields.Selection(selection=_selection_state)
    子类继承,给父类添加下拉框的内容
    application_model = fields.Selection(selection_add=[('eno_hr', '人力资源')])

    • odoo中的已失效的挂件
    <widget name="web_ribbon" title="已失效" bg_color="bg-danger" attrs="{'invisible': [('active', '=', True)]}"/>
    • odoo中两个时间的间隔
    1. def get_difference_year(self, do_date):
    2. """获取日期do_date和当前日期的年份差"""
    3. if do_date:
    4. return relativedelta(fields.Date.today(), do_date).years
    5. else:
    6. return 0
    • postgresql根据查询的条件,然后删除对应的数据,套三级
    1. delete from row_data where num not in(select mid from
    2. (select min(num) mid from row_data group by name,place,company,scale,salary,education,experience,label,welfare,type) as a);
    • odoo个性化导入按钮
    1. <field name="context">{'src_action': 'sdszl_hpm_personal_position_import_action'}field>
    2. <act_window id="personal_position_import_action"
    3. name="导入"
    4. res_model="sdszl.hpm.personal.position.import"
    5. binding_model="sdszl.hpm.personal.position"
    6. view_mode="form"
    7. view_id="sdszl_hpm_personal_position_import_form"
    8. target="new"
    9. context="{'on_tree': '2', 'src_action': 'sdszl_hpm_personal_position_import_action'}"/>
    • postgresql还原数据库
    1. pg_restore -d "数据库名"-h localhost -p 5432 -U postgres -O
    2. postgres是数据库角色名称
    • 进入docker容器内部
    docker exec -it 容器名称 /bin/bash
    • 行表,明细行可以多选
    1. <xpath expr="/form/sheet/notebook/page[1]/field[@name='eno_hpm_secondary_distribution_ids']"
    2. position="attributes">
    3. <attribute name="widget">multi_select_treeattribute>
    4. <attribute name="res_model">eno.hpm.employeeattribute>
    5. <attribute name="res_field">nameattribute>
    6. xpath>
    • python碰见setup.py的模块怎么安装
    1. python setup.py build
    2. python setup.py install
    • odoo中的many2One()字段,让其只能选一次

            widget="o2m_unique"

  • 相关阅读:
    二、Node.js内置API(fs、path、http)
    java+jsp基于ssm汽车配件管理系统-计算机毕业设计
    你有对象类,我有结构体,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang结构体(struct)的使用EP06
    使用vscode Container开发调试envoy
    【前后缀 + 推公式整理】 Codeforces Round #813 (Div. 2) D. Empty Graph
    猴子也能学会的jQuery第四期——jQuery选择器大全
    day26-过滤器Filter
    健身房会员管理系统(Java+Web+MySQL)
    Aigtek:介电弹性体高压放大器在软体机器人研究中的应用
    【爬虫进阶】猿人学任务一之JS混淆(难度2.0)
  • 原文地址:https://blog.csdn.net/wei18791957243/article/details/126125887