首页 > 其他分享 >odoo17 新增模块教程, 实战案例详细教程

odoo17 新增模块教程, 实战案例详细教程

时间:2024-11-18 19:15:19浏览次数:3  
标签:xml 教程 group odoo17 odoo send user 模块 fields

新增模块

python3 ./odoo-bin scaffold group_send ./addons

在这里插入图片描述

会增加一个文件夹

在这里插入图片描述

配置模块

核心在于__manifest__.py

# -*- coding: utf-8 -*-
{
    'name': "Group Send",

    'summary': "Short (1 phrase/line) summary of the module's purpose",

    'description': """
Long description of module's purpose
    """,

    'author': "My Company",
    'website': "https://www.yourcompany.com",

    # Categories can be used to filter modules in modules listing
    # Check https://github.com/odoo/odoo/blob/15.0/odoo/addons/base/data/ir_module_category_data.xml
    # for the full list
    'category': 'Uncategorized',
    'version': '0.1',

    # any module necessary for this one to work correctly
    'depends': ['base'],

    # always loaded
    'data': [
        'security/ir.model.access.csv',
        'views/views.xml',
        'views/templates.xml',
    ],
    # only loaded in demonstration mode
    'demo': [
        'demo/demo.xml',
    ],
    'installable': True,
    'application': True,
    'license': 'LGPL-3',
}

定义模型

models/user.py

from odoo import models, fields

class User(models.Model):
    _name = 'group_send.user'
    _description = 'Group Send User'

    name = fields.Char(string='Name', required=True)
    is_email = fields.Boolean(string='IsEmail')
    is_tg = fields.Boolean(string='IsTG')
    email = fields.Char(string='Email')
    tg = fields.Char(string='tg')

定义视图

修改view/views.xml

<?xml version="1.0" encoding="utf-8"?>
<odoo>
    <!-- 用户表单视图 -->
    <record id="group_send_form_view" model="ir.ui.view">
        <field name="name">group.send.user.form</field>
        <field name="model">group_send.user</field>
        <field name="arch" type="xml">
            <form string="Group Send Users">
                <sheet>
                    <group>
                        <field name="name"/>
                        <field name="is_email"/>
                        <field name="is_tg"/>
                    </group>
                    <notebook>
                        <page string="Contact Information">
                            <field name="email" colspan="4" />
                            <field name="tg" colspan="4" />
                        </page>
                    </notebook>
                </sheet>
            </form>
        </field>
    </record>

    <!-- 用户列表视图 -->
    <record id="group_send_tree_view" model="ir.ui.view">
        <field name="name">group.send.user.tree</field>
        <field name="model">group_send.user</field>
        <field name="arch" type="xml">
            <tree string="Group Send Users">
                <field name="name"/>
                <field name="is_email"/>
                <field name="is_tg"/>
                <field name="email"/>
                <field name="tg"/>
            </tree>
        </field>
    </record>

    <!-- 用户搜索视图 -->
    <record id="group_send_search_view" model="ir.ui.view">
        <field name="name">group.send.user.search</field>
        <field name="model">group_send.user</field>
        <field name="arch" type="xml">
            <search>
                <field name="name"/>
                <field name="email"/>
                <field name="tg"/>
                <group string="Group By">
                    <filter string="Email" name="email" context="{'group_by': 'email'}"/>
                    <filter string="TG" name="tg" context="{'group_by': 'tg'}"/>
                </group>
            </search>
        </field>
    </record>

    <!-- 用户视图 -->
    <record id="group_send_action" model="ir.actions.act_window">
        <field name="name">Group Send Users</field>
        <field name="res_model">group_send.user</field>
        <field name="view_mode">tree,form</field>
    </record>

    <!-- menu -->
    <menuitem
            id="group_send_menu"
            name="Group Send"
            action="group_send_action"
            groups="base.group_user"
            sequence="100"/>
</odoo>

这里就遇到坑了, 主要是菜单出不来, 菜单最重要的声明是:

<menuitem
           id="group_send_menu"
           name="Group Send"
           action="group_send_action"
           groups="base.group_user"
           sequence="100"/>

首先, 如果要在主菜单显示, 这么是不需要parent属性的, 其次, 必须要有groups属性.

但是这个时候菜单还出不来, 需要修改 ir.model.access.csv

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_group_send_user,group_send_user,model_group_send_user,base.group_user,1,1,1,1

打开调试模式

如果是在开发阶段, 最好打开odoo的调试模式, 使用快捷键ctrl+k, 然后搜索debug.

在这里插入图片描述

更新应用

打开apps应用列表页面, 更新应用. 更新了之后, 就有了Group Send了.
在这里插入图片描述

激活了以后点击菜单:
在这里插入图片描述

最终效果

点击Group Send以后, 就是新增的页面了.
在这里插入图片描述

标签:xml,教程,group,odoo17,odoo,send,user,模块,fields
From: https://blog.csdn.net/qq_37703224/article/details/143862667

相关文章

  • 【Python + Jupyter】安装教程:
    【Python+Jupyter】安装教程:一、安装 Python安装Python没啥说的,傻瓜式点击默认选项即可:Python下载地址:https://www.python.org/downloads/windows/ (若访问不通畅,可尝试切网络,比如手机热点等)在下载页面找到 StableReleases,一定是StableReleases,不能是 Pre-releases,......
  • STEP7 V5.6 安装教程(附安装包下载)
    STEP7V5.6是一款编程软件,主要用于西门子系列工控产品的编程、监控和参数设置,是SIMATIC工业软件的重要组成部分。它适用于西门子S7-300、S7-400、ET200等产品,具有多种版本,如STEP7Basic、STEP7和STEP7Professional等。STEP7的所有功能均有大量的在线帮助,用户可以使用鼠标打......
  • Endnote 20文献管理中文软件安装包下载地址及安装教程!
    EndNote是SCI(ThomsonScientific公司)的官方软件,支持国际期刊的参考文献格式有3776种,写作模板几百种,涵盖各个领域的杂志。简单来说EndNote的功能就是替你管理文献,一键插入固定格式的参考文献。应该是在科研人员中最为流行的一款文献管理软件。Endnote整合了文献搜索、导......
  • 免费Office Tool Plus使用教程
    1.下载OfficeToolPlushttps://otp.landian.vip/zh-cn/2.安装3.激活输入命令:ospp/insLicIDMondoVolume/sethst:kms.loli.beer/setprt:1688/act可以免费的使用office了......
  • AI绘图教程|Stable Diffusion(SD)文生图参数详解及吉尼龟小案例
    SD学习绘图最开始的第一步是文生图,这也是最基础的学习,今天我带大家先学习下文生图stablediffusion整合包可以扫描下方,免费获取01—文生图参数01*模型选择*模型选择主要分大模型选择和VAE模型选择,这里根据你画的图具体进行选择,这个参数的选择难度不大。02**Cli......
  • 大数据时代--Hadoop的学习介绍,安装配置过程#全世界最细致万字教程(*拌面版
    前言:        让我们回到世界转变为数字时代之前的日子。那时,生成的数据量非常小,速度相对缓慢,几乎所有数据都是文件,行和列的形式,存储或处理这种数据并不麻烦,因为单个存储单元和处理器结合就可以完成这项工作,随着时间的流逝,互联网席卷了全球,每微秒都会产生大量以多种形......
  • Gradio 和 Streamlit 安装与使用教程
    最近SealosDevbox有点火......
  • markdowm基础使用教程
    Markdown标题语法要创建标题,在单词或短语前面添加井号(#),几级标题就用几个#。Markdown强调语法粗体(Bold)要加粗文本,在单词或短语的前后各添加两个星号(**)A斜体(Italic)要用斜体显示文本,在单词或短语前后添加一个星号(*)A粗体(Bold)和斜体(Italic)要同时用粗体和斜体突出显......
  • FaceBook用visa万事达虚拟信用卡广告支付教程
    Facebook是一个全球知名的社交网络服务网站这个在全球范围内享有广泛知名度和影响力的社交平台,自2004年2月4日上线以来,已经深刻地改变了人们的社交方式和信息传播模式。作为一个综合性的社交网络服务网站,Facebook不仅提供了用户与朋友、家人、同事以及更广泛社交网络中的个体保......
  • 【PhpStorm 2024 软件下载与入门级安装教程】-高效智能的 PHP IDE
    支持主流框架PhpStorm完美支持Symfony、Drupal、WordPress、ZendFramework、Laravel、Magento、Joomla!、CakePHP、Yii...等各种主流框架。全能的PHP工具内建编辑器实际“了解”您的代码并且深刻理解其结构,支持所有PHP语言功能,在开发现代技术和维护遗留项目皆可完美适用。......