i have done simple customize module in openerp
with using python and xml. but I cannot import in openerp. My module is not shown in openerp.
this is __init__py
import os
os.environ['TZ'] = 'UTC' # Set the timezone...
import time # ... *then* import time.
del os
del time
# The hard-coded super-user id (a.k.a. administrator, or root user).
SUPERUSER_ID = 1
import addons
import cli
import conf
import loglevels
import modules
import netsvc
import osv
import pooler
import release
import report
import service
import sql_db
import tools
import workflow
import sim
# backward compatilbility
# TODO: This is for the web addons, can be removed later.
wsgi = service
wsgi.register_wsgi_handler = wsgi.wsgi_server.register_wsgi_handler
# Is the server running in multi-process mode (e.g. behind Gunicorn).
# If this is True, the processes have to communicate some events,
# e.g. database update or cache invalidation. Each process has also
# its own copy of the data structure and we don't need to care about
# locks between threads.
multi_process = False
# vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4:
this is __openerp__.py
{
'name': 'Student Information Management',
'version': '0.1',
'category': 'Tools',
'description': """This module is for the Student Information Management.""",
'author': 'Mir Nauman Tahir',
'website': 'http://mirnauman.wordpress.com/',
'depends': ['base'],
'init_xml': [],
'update_xml': ['sim_view.xml'],
'demo_xml': [],
'installable': True,
'active': True,
}
this is sim_view.xml
<?xml version="1.0"?>
<openerp>
<data>
<!-- ============== student================= -->
<!-- 1st part of the sim_view start-->
<record model="ir.ui.view" id="student_form">
<field name="name">Student</field>
<field name="model">sim.student</field>
<field name="type">form</field>
<field name="arch" type="xml">
<form string="Student" version="7.0">
<field name="name"/>
<field name="student_name"/>
<field name="father_name"/>
<field name="gender"/>
<field name="contact_no"/>
</form>
</field>
</record>
<!-- 1st part of the sim_view end-->
<!--2nd part of the sim_view start-->
<record model="ir.ui.view" id="student_tree">
<field name="name">Student</field>
<field name="model">sim.student</field>
<field name="type">tree</field>
<field name="arch" type="xml">
<tree string="Student">
<field name="name"/>
<field name="student_name"/>
<field name="father_name"/>
<field name="gender"/>
<field name="contact_no"/>
</tree>
</field>
</record>
<!--2nd part of the sim_view end-->
<!-- 3rd part of the sim_view start-->
<record model="ir.actions.act_window" id="action_student">
<field name="name">Student</field>
<field name="res_model">sim.student</field>
<field name="view_type">form</field>
<field name="view_mode">tree,form</field>
</record>
<!--3rd part of the sim_view end-->
<!--4th part of the sim_view start-->
<menuitem name="SIM/Student/StudentInfo" id="menu_sim_student" action="action_student"/>
<!--4th part of the sim_view end-->
</data>
</openerp>
this sim.py
from openerp.osv import fields
class student(osv.osv):
_name = "sim.student"
_description = "This table is for keeping personal data of student"
_columns = {
'name': fields.char('Registration Number',size=256,required=True),
'student_name': fields.char('Student Name',size=256,required=True),
'father_name': fields.char('Father Name',size=256),
'gender':fields.selection([('male','Male'),('female','Female')],'Gender'),
'contact_no':fields.char('Contact Number',size=256)
}
student()
I cannot see my module in openerp. How can I fix this?
The only issue i can see here is that your
openerp.py
file name is not correct the name should be__openerp__
, plus in the__init__.py
file you should import thesim.py
file, and no need to import all of those modules that you wrote there, keep only the necessary libraries and modules you need.Once again Make sure that you have put your module inside addons directory where all
the other modules exists. not inside server's addons, it should be inside main addons.
f you want to see a custom module in OpenERP 7, it must first be in the addons directory.
Go to Settings > Modules > Update Modules List
Click Update
You must have Technical Features enabled for the user you are logged in as.
Then go to Settings > Modules > Installed Modules
Remove the [Installed] filter and search for your custom module.
Custom modules will not appear in Settings > Modules > Apps because that view will only display Modules/Apps that are found online.
In order to see a custom module in OpenERP 7, it must first be in the
addons
directory.Go to
Settings
>Modules
>Update Modules List
Click
Update
You must have
Technical Features
enabled for the user you are logged in as.Then go to
Settings
>Modules
>Installed Modules
Remove the
[Installed]
filter and search for your custom module.Custom modules will not appear in
Settings
>Modules
>Apps
because that view will only displayModules/Apps
that are found online.As @Zak said,
__init__.py
need only need to import thesim
which is the python file you are using in the module. In__openerp__.py
file, i cant find any error. The problem I found is in thesim.py
file!!! You are importing onlyfields
fromopenerp.osv
. Your class is now inheriting the osv folder. Your class should inherit the osv file's osv class(class name: Model ). For openerp functionality, you have to importosv
fromopenerp.osv
. Please modify the sim.py withfrom openerp.osv import osv, fields
.this will work fine. Try this. Update all your files.
After updating all your files, Restart the server, update module list and find your module in Settings > Modules > Installed Modules - remove installed from there and write your module's name (i.e sim) over there.
Hope this will definitely work.