This question has been flagged
6 Replies
16108 Views

Hi,

I would like to install a e-banking module. I'm using openERP v7.0 on a virtual ubuntu server v12. Now if I try to install any community module from apps.openerp.com, I've get the following error:

> OpenERP Server Error
> 
> Client Traceback (most recent call
> last):   File
> "/usr/lib/pymodules/python2.7/openerp/addons/web/http.py",
> line 203, in dispatch
>     response["result"] = method(self, **self.params)   File "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py",
> line 1133, in call_button
>     action = self._call_kw(req, model, method, args, {})   File
> "/usr/lib/pymodules/python2.7/openerp/addons/web/controllers/main.py",
> line 1121, in _call_kw
>     return getattr(req.session.model(model),
> method)(*args, **kwargs)   File
> "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py",
> line 43, in proxy
>     result = self.proxy.execute_kw(self.session._db,
> self.session._uid,
> self.session._password, self.model,
> method, args, kw)   File
> "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py",
> line 31, in proxy_method
>     result = self.session.send(self.service_name,
> method, *args)   File
> "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py",
> line 104, in send
>     raise xmlrpclib.Fault(openerp.tools.ustr(e),
> formatted_info)
> 
> 
> Server Traceback (most recent call
> last):   File
> "/usr/lib/pymodules/python2.7/openerp/addons/web/session.py",
> line 90, in send
>     return openerp.netsvc.dispatch_rpc(service_name,
> method, args)   File
> "/usr/lib/pymodules/python2.7/openerp/netsvc.py",
> line 293, in dispatch_rpc
>     result = ExportService.getService(service_name).dispatch(method,
> params)   File
> "/usr/lib/pymodules/python2.7/openerp/service/web_services.py",
> line 626, in dispatch
>     res = fn(db, uid, *params)   File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py",
> line 188, in execute_kw
>     return self.execute(db, uid, obj, method, *args, **kw or {})   File
> "/usr/lib/pymodules/python2.7/openerp/osv/osv.py",
> line 131, in wrapper
>     return f(self, dbname, *args, **kwargs)   File "/usr/lib/pymodules/python2.7/openerp/osv/osv.py",
> line 197, in execute
>     res = self.execute_cr(cr, uid, obj, method, *args, **kw)   File
> "/usr/lib/pymodules/python2.7/openerp/osv/osv.py",
> line 185, in execute_cr
>     return getattr(object, method)(cr, uid, *args, **kw)   File
> "/usr/lib/pymodules/python2.7/openerp/addons/base/module/module.py",
> line 424, in button_immediate_install
>     return self._button_immediate_function(cr,
> uid, ids, self.button_install,
> context=context)   File
> "/usr/lib/pymodules/python2.7/openerp/addons/base/module/module.py",
> line 475, in
> _button_immediate_function
>     _, pool = pooler.restart_pool(cr.dbname,
> update_module=True)   File
> "/usr/lib/pymodules/python2.7/openerp/pooler.py",
> line 39, in restart_pool
>     registry = RegistryManager.new(db_name,
> force_demo, status, update_module)  
> File
> "/usr/lib/pymodules/python2.7/openerp/modules/registry.py",
> line 218, in new
>     openerp.modules.load_modules(registry.db,
> force_demo, status, update_module)  
> File
> "/usr/lib/pymodules/python2.7/openerp/modules/loading.py",
> line 348, in load_modules
>     processed = load_marked_modules(cr, graph,
> states_to_load, force, status, report,
> loaded_modules, update_module)   File
> "/usr/lib/pymodules/python2.7/openerp/modules/loading.py",
> line 259, in load_marked_modules
>     loaded, processed = load_module_graph(cr, graph,
> progressdict, report=report,
> skip_modules=loaded_modules,
> perform_checks=perform_checks)   File
> "/usr/lib/pymodules/python2.7/openerp/modules/loading.py",
> line 162, in load_module_graph
>     load_openerp_module(package.name)   File
> "/usr/lib/pymodules/python2.7/openerp/modules/module.py",
> line 405, in load_openerp_module
>     __import__('openerp.addons.' + module_name)   File
> "/usr/lib/pymodules/python2.7/openerp/modules/module.py",
> line 133, in load_module
>     mod = imp.load_module('openerp.addons.' +
> module_part, f, path, descr)   File
> "/usr/lib/pymodules/python2.7/openerp/addons/account_banking/__init__.py",
> line 29, in <module>
>     import banking_import_transaction   File
> "/usr/lib/pymodules/python2.7/openerp/addons/account_banking/banking_import_transaction.py",
> line 36, in <module>
>     from account_banking import sepa   File
> "/usr/lib/pymodules/python2.7/openerp/addons/account_banking/account_banking.py",
> line 64, in <module>
>     from wizard.banktools import get_or_create_bank   File
> "/usr/lib/pymodules/python2.7/openerp/addons/account_banking/wizard/__init__.py",
> line 22, in <module>
>     import bank_payment_manual   File "/usr/lib/pymodules/python2.7/openerp/addons/account_banking/wizard/bank_payment_manual.py",
> line 27, in <module>
>     import wizard ImportError: No module named wizard

I've tried to install at last 6 different community modules. I always get the same error: "ImportError: No module named wizard". Well the community modules are designed for openERP v6.1, but almost all community modules only support v6.1. They don't support v7. My question is: Is this error appearing because the modules only support v6.1 or is there an other problem existing? Can anybody help me to fix it? Thanks a lot!

Regards

Michael

Avatar
Discard
Best Answer

This could resolve your issue. ImportError: No module named wizard

You can see difference between Interface Wizard and Memory Wizard.

You can follow the given conversion steps for conversion:


Convert wizard.interface class into osv.osv_memeory class:

class wizard_class(wizard.interface):

Convert it like this:

class wizard_class(osv.osv_memeory):

and write _columns and methods inside this class.


Convert views from py to xml:

my_form = <?xml version="1.0"?>
<form string="Category Summary">
    <group colspan="4">
        <button name="check" type="object"/>
    </group>
</form>

Convert fields into osv.fields inside _columns:

my_fields = { 'partner_id': {'string': 'Partner', 'type': 'many2one', 'relation':'res.partner',}, }

Convert it like this:

_columns = {
    'partner_id': fields.many2one('res.partner', 'Partner'),
}

If there is any methods, put them inside the class.


Understand the flow first then remove following code from interface py:

states = {
    'init': {
        'actions': [],
        'result': {'type':'form', 'arch':my_form, 'fields':my_fields, 'state':[
            ('end','Cancel'), ('check','Print')]}
    },
    'check': {
        'actions': [],
        'result': {'type':'print', 'report': 'report_name',  'state':'end'}
    },
}

Here ('check','Print') is called from <button="check" which then call given report.

This are the rough steps, not standard steps. I follow this steps for conversion.

Hope this will help you.

Thank you.

Avatar
Discard
Author

I've seen this post, but I don't understand, how I should convert it to "osv.TransientModel". And why TransientModel.. I don't get it..

In short you have to convert it into osv.osv_memeory wizard.

Author

I hope you mean I should just replace the occurence "wizard.instance" within the code with "osv.osv_memory" - but I think, you mean something more complicated... I'll try

In v7 osv.osv_memory is deprecated and you should use osv.TransientModel instead.

hi . i will make changes that mentioned above. But the same error "wizard_cheque_state_process.py", line 21, in <module> ImportError: No module named wizard" is appeared while trying to install the loan module.

Author Best Answer

Sudhir Arya: In your linked thread you explained, it could be fixed like following:

I guess there might be a wizard.interface somewhere in your module.

OpenERP v5, v6 and v6.1 supports wizard.interface but v7 does not support it anymore.

You have convert those interface wizards into osv.TransientModel, after that your module will be installed in version-7.

But how do I convert it to osv.TransientModel? Inside my account banking module I've found one occurence of wizard.interface:

import wizard import pooler

class payment_manual(wizard.interface): def _action_set_state_sent(self, cursor, uid, data, context):

How do I convert it to the transien model thing?

Thanks!

Avatar
Discard
Best Answer

I managed to install "product_variant_multi" on V7!

Found that there is another "addons" directory under server, in my case "/opt/openerp/server/openerp/addons". Copied the "product_variant_multi.zip" in there and then logged in as "admin" went to "Settings - Update Modules List".

After this it listed under "Installed Modules" with filter removed.

PS: This method worked also with "product_variant_configurator.zip" but failed so far with "sale_product_multistep_configurator.zip". Do not know why!

Avatar
Discard
Author

Strange... I only find a directory called psa/ - there is no openerp. But if I read the comments about product_variant_configurator in http://apps.openerp.com it is normal that it works on v7. Although, there are some error appearing (look at the errors), but thx.

Best Answer

The error you get is because you are using account_banking from V6.1 or V6.0.

The solution is to use the right module version for V7.0

Avatar
Discard
Best Answer

Are you passing the web/addons path to your OpenERP installation? If you run OpenERP by command line, you can do something like this:

python server/openerp-server --log-level=debug --addons-path=/home/user/openerp/addons/,/home/user/openerp/web/addons/, -r openerp_user -w openerp_password

note: /home/user/openerp/web/addons/

Avatar
Discard
Author

Well, I've put the module inside /usr/lib/pymodules/python2.7/openerp/addons like I've read on several posts inside the forum. Is it important to use /home/user/openerp/addons/ ? So I'm not explicitly passing the path. There is no need to because /usr/lib/pymodules/python2.7/openerp/addons is default.

Best Answer

Check your addons folder to see if you have wizard.zip. Or you could remove any .zip folders that you have added to the addons folder lately.

Avatar
Discard