This question has been flagged
4 Replies
16389 Views

I was learning to create a custom module to Odoo using Odoo Development Essentials book by Daniel Reis.  I set up access rule permissions just like the examples in the book. I wonder what goes wrong on my module?

My ir.access.model.csv content is below:

id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_todo_task_group_user,todo.task.user,model_todo_task,base.group_user,1,1,1,1

The __openerp__.py looks like below:

    

# -*- coding: utf-8 -*-
{
    'name': "learn_todo",
    'summary': """ 
        Short (1 phrase/line) summary of the module's purpose, used as
         subtitle on modules listing or apps.openerp.com""",
     'description': """
         Long description of module's purpose """,
     'author': "Your Company",
     'website': "http://www.yourcompany.com",
 
# Categories can be used to filter modules in modules listing
# Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml
# for the full list
     'category': 'Uncategorized',
     'version': '0.1',
# any module necessary for this one to work correctly
     'depends': ['mail'],
# always loaded
     'data': [
         'templates.xml',
         'todo-view.xml',
         'security/ir.model.access.csv'
     ],
# only loaded in demonstration mode
    'demo': [
         'demo.xml'
    ]
}

The error trace

    

Traceback (most recent call last):
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/http.py", line 537, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/http.py", line 574, in dispatch
    result = self._call_function(**self.params)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/http.py", line 310, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/service/model.py", line 118, in wrapper
    return f(dbname, *args, **kwargs)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/http.py", line 307, in checked_call
    return self.endpoint(*a, **kw)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/http.py", line 803, in __call__
    return self.method(*args, **kw)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/http.py", line 403, in response_wrap
    response = f(*args, **kw)
  File "/Volumes/HFS/projects/odoo/github/odoo/addons/web/controllers/main.py", line 948, in call_button
    action = self._call_kw(model, method, args, {})
  File "/Volumes/HFS/projects/odoo/github/odoo/addons/web/controllers/main.py", line 936, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/api.py", line 250, in wrapper
    return old_api(self, *args, **kwargs)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/addons/base/module/module.py", line 447, in button_immediate_install
    return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/api.py", line 250, in wrapper
    return old_api(self, *args, **kwargs)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/addons/base/module/module.py", line 495, in _button_immediate_function
    registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/modules/registry.py", line 370, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/modules/loading.py", line 355, in load_modules
    loaded_modules, update_module)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/modules/loading.py", line 255, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/modules/loading.py", line 176, in load_module_graph
    _load_data(cr, module_name, idref, mode, kind='data')
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/modules/loading.py", line 118, in _load_data
    tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/tools/convert.py", line 895, in convert_file
    convert_csv_import(cr, module, pathname, fp.read(), idref, mode, noupdate)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/tools/convert.py", line 960, in convert_csv_import
    result, rows, warning_msg, dummy = registry[model].import_data(cr, uid, fields, datas,mode, module, noupdate, filename=fname_partial)
  File "/Volumes/HFS/projects/odoo/github/odoo/openerp/modules/registry.py", line 102, in __getitem__
    return self.models[model_name]
KeyError: u'learn'
Avatar
Discard

Hello, Load csv file first.

Author

Hi Jignesh, if you mean to put ir.model.access.csv first, it still get the same exception.

Author Best Answer

Ok I found the problem. I put my module in a folder named learn-todo. It should be learn_todo, using underscore instead of a dash.

Avatar
Discard
Best Answer

Hello  Firman I  face same issue . 

I thik this issue come when we use dash (-) place of  underscore (_).  

your module name shoud have   underscore (_)  not dash (-)


like.

module name------>Champion-Marketing -------------Incorrect

module name------>Champion_Marketing -------------Correct


Avatar
Discard