odoo14 自建模块

5 篇文章 0 订阅

上一篇博客
使用odoo14 社区版

1 效果展示

在这里插入图片描述
在这里插入图片描述

2 代码 展示

创建以下文件夹和文件:
在这里插入图片描述

  • security:安全控制文件的存放
  • views:配置视图

manifest.py文件介绍

  • name:模块名
  • summary:模块简介
  • description:模块描述
  • author:作者
  • website:模块相关网站
  • category:分类。默认Uncategorized
  • version:版本
  • depends:默认base模块,可以添加依赖的其他模块
  • data:配置要用到的views文件
  • installable:默认是True。是否显示在前端
  • auto_intall:如果为True。则depends参数的模块都安装完成后,自动安装本模块。

bugmanage_record/model文件夹
_init_.py

from . import bugmanage_record
from . import follower

bugmanage_record.py

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class BugmanageRecord(models.Model):
    _name = 'bugmanage.record'
    _description = "bug"
    name = fields.Char('bug简述', required=True)
    detail = fields.Text(size=150)
    is_closed = fields.Boolean('是否关闭')
    close_reason = fields.Selection([('changed', '已修改'), ('cannot', '无法修改'), ('delay', '推迟')], string='关闭理由')
    user_id = fields.Many2one('res.users', string='负责人')
    follower_id = fields.Many2many('res.partner', string='关注者')

    # 用于按钮
    @api.model_create_multi
    def do_close(self):
        for item in self:
            item.is_closed = True
        return True

follower.py

# -*- coding: utf-8 -*-

from odoo import models, fields, api

class follower(models.Model):
    _inherit = 'res.partner'
    bug_ids = fields.Many2many('bugmanage.record', string='bug')

bugmanage_record/security文件夹
ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_bugmanage_record_group_user,bugmanage.record,model_bugmanage_record,base.group_user,1,1,1,1

bugmanage_record/static/description文件夹
放名为icon.png的图片当做logo
bugmanage_record/views文件夹
bugs.xml

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
  <data>
      <!-- 列表视图-->
      <record id="bugmanage_record_tree_view" model="ir.ui.view">
        <field name="name">bug列表</field>
        <field name="model">bugmanage.record</field>
        <field name="arch" type="xml">
          <tree>
              <field name="name"/>
              <field name="is_closed"/>
              <field name="user_id"/>
          </tree>
        </field>
      </record>
      <!--表单视图-->
      <record id="bugmanage_record_form_view" model="ir.ui.view">
        <field name="name">bug表单</field>
        <field name="model">bugmanage.record</field>
        <field name="arch" type="xml">
            <form>
                <header>
                    <button name="do_close" type="object" string="关闭bug" />
                </header>
                <sheet>
                    <group name="group_top" col="2">
                        <group name="group_left">
                            <field name="name"/>
                            <field name="is_closed"/>
                            <field name="user_id"/>
                        </group>
                        <group name="group_right">
                            <field name="close_reason"/>
                            <field name="follower_id"/>
                        </group>
                    </group>
                    <notebook>
                        <page string="详细内容">
                            <field name="detail" />
                        </page>
                    </notebook>
                </sheet>
            </form>
        </field>
      </record>
      <!--搜索视图-->
      <record id="bugmanage_record_search_view" model="ir.ui.view">
        <field name="name">bug搜索</field>
        <field name="model">bugmanage.record</field>
        <field name="arch" type="xml">
          <search>
              <field name="name"/>
              <field name="is_closed"/>
              <field name="user_id"/>
          </search>
        </field>
      </record>
      <!--  model里面的数据,展示在页面上-->
     <record id="bugmanage_record_act_window" model="ir.actions.act_window">
        <field name="name">bug window</field>
        <field name="res_model">bugmanage.record</field>
        <field name="view_mode">tree,form</field>
     </record>
      <!-- 菜单名-->
      <menuitem name="bug管理系统" id="bugmanage_record_menu_root" />
      <!--菜单分类-->
      <menuitem name="bug管理" id="sec_bugmanage_record_menu" parent="bugmanage_record_menu_root"/>
      <!--菜单动作-->
      <menuitem name="bug列表" id="bugmanage_record_menu_list" parent="sec_bugmanage_record_menu"
                action="bugmanage_record_act_window"/>
  </data>
</odoo>

follower.xml

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
  <data>
      <record id="bugmanage_record_follower_form_view" model="ir.ui.view">
        <field name="name">关注者</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form"/>
        <field name="arch" type="xml">
            <field name="mobile" position="after">
                <field name="bug_ids"/>
            </field>
        </field>
      </record>
      <record id="bugmanage_record_follower_act_window" model="ir.actions.act_window">
        <field name="name">follower window</field>
        <field name="res_model">res.partner</field>
        <field name="view_mode">form</field>
      </record>
      <menuitem name="关注者管理" id="sec_bugmanage_record_menu_2" parent="bugmanage_record_menu_root"/>
      <menuitem name="关注者" id="bugmanage_record_menu_2_form" parent="sec_bugmanage_record_menu_2"
                action="bugmanage_record_act_window"/>
  </data>
</odoo>

_init_.py

from . import model

_manifest_.py

# -*- coding: utf-8 -*-
{
    'name': "bug管理",
    'summary': """
        bug管理简介
        """,
    'description': """
        bug管理描述
    """,
    'author': "czt",
    'website': "http://www.yourcompany.com",
    'version': '0.1',
    'depends': [],
    'data': [
        'views/bugs.xml',
        'views/follower.xml',
        'security/ir.model.access.csv',

    ],
    'application': True,
}

3 安装模块

bug_manage文件夹下创建static/description文件夹,该文件夹下存放icon.png。这可以显示图标

./odoo-bin
  1. 设置>激活开发者模式
  2. 刷新本地模块列表
    在这里插入图片描述
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,我会尽力为您提供采购预付管理模块的方案。但请注意,我的回答仅供参考,具体实现方式还需要您自行考虑。 首先,采购预付管理模块需要包括以下功能: 1. 预付款单据的录入、审批和管理; 2. 预付款的支付和结算; 3. 预付款的跟踪和统计分析。 下面是一些实现方案的建议: 1. 预付款单据的录入、审批和管理 在odoo14可以利用采购管理模块来实现预付款单据的录入、审批和管理。对于供应商的预付款,可以通过创建一个新的单据类型来处理。该单据应包含供应商信息、付款金额、付款方式和应付款日期等必要信息。同时,还需要包括单据的审批流程来确保预付款的合理性和准确性。 2. 预付款的支付和结算 预付款的支付和结算可以通过odoo14的财务模块来完成。建议使用“预付账款”和“供应商账款”来记录和核算预付款的支付和结算。同时,可以设置付款条款和供应商账期来管理供应商的账款和支付时间。此外,还可以提供采购订单和预付款单据的结合来自动化预付款的结算过程。 3. 预付款的跟踪和统计分析 预付款的跟踪和统计分析可以通过odoo14的报表和分析模块来实现。可以建立与采购订单和供应商账款相关的报表和分析,以便监视预付款的使用情况以及供应商账款的清算情况。另外,还可以设置提醒和警报来及时警示供应商账款和预付款的风险。 以上是我为您提供的odoo14采购预付管理模块的一些方案。希望对您有帮助。谢谢!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

花生酱肠粉

觉得对您有帮助的话,可以打赏哦

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值