There are many ways that we could build a module from scratch and I would like to show all of you by using a method.
Odoo provides a mechanism to help set up a new module, odoo-bin has a subcommand scaffold to create an empty module:
Go to command prompt in window then type
odoo-bin scaffold
eg. odoo-bin scaffold openacademy addons
After we create, it provide us with structures:

Then go to openacademy/__manifest__.py copy or type:
# -*- coding: utf-8 -*-Then go to openacademy/__init__.py copy and type:
{
'name': "Open Academy",
'summary': """Manage trainings""",
'description': """
Open Academy module for managing trainings:
- training courses
- training sessions
- attendees registration
""",
'author': "My Company",
'website': "http://www.yourcompany.com",
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/master/odoo/addons/base/module/module_data.xml
# for the full list
'category': 'Test',
'version': '0.1',
# any module necessary for this one to work correctly
'depends': ['base'],
# always loaded
'data': [
# 'security/ir.model.access.csv',
'templates.xml',
'views/openacademy.xml',
],
# only loaded in demonstration mode
'demo': [
'demo.xml',
],
}
# -*- coding: utf-8 -*-Then go to openacademy/controllers.py
from . import controllers
from . import models
# -*- coding: utf-8 -*-Then go to openacademy/models.py
from odoo import http
from odoo import models, fields, apiThen go to openacademy/views/openacademy.xml
class Course(models.Model):
_name = 'openacademy.course'
name = fields.Char(string="Title", required=True)
description = fields.Text()
<?xml version="1.0" encoding="UTF-8"?><odoo> <!-- window action --> <!-- The following tag is an action definition for a "window action", that is an action opening a view or a set of views --> <record model="ir.actions.act_window" id="course_list_action"> <field name="name">Courses</field> <field name="res_model">openacademy.course</field> <field name="view_type">form</field> <field name="view_mode">tree,form</field> <field name="help" type="html"> <p class="oe_view_nocontent_create">Create the first course </p> </field> </record> <!-- top level menu: no parent --> <menuitem id="main_openacademy_menu" name="Open Academy"/> <!-- A first level in the left side menu is needed before using action= attribute --> <menuitem id="openacademy_menu" name="Open Academy" parent="main_openacademy_menu"/> <!-- the following menuitem should appear *after* its parent openacademy_menu and *after* its action course_list_action --> <menuitem id="courses_menu" name="Courses" parent="openacademy_menu" action="course_list_action"/> <!-- Full id location: action="openacademy.course_list_action" It is not required when it is the same module --></odoo>After we copy and past code follow this structure ready. You could to (http://localhost:8069/web) then login by username and password that you config then go to setting menu -> click Activate the developer mode then click on App -> click Update App List then search Open Academy after you will see Open Academy module display and you could install it.








0 comments:
Post a Comment