This question has been flagged
4 Replies
11255 Views

I would like to know whether the OpenErp v7 supports the angularJS Framework or not ???

Avatar
Discard
Best Answer

Out of the box Openerp only supports backbone as a javascript framework and there are some works done by community to use marionett.

Avatar
Discard
Best Answer

I don't think so... well, it depends, you can develop your application with AngularJS and query and update OpenERP information without any problem. You can do that via xml-rpc calls, that's a safe way to do that.

OpenERP allows you to develop web modules that extend OpenERP's web module, you have more information on this capability in this link:

https://doc.openerp.com/trunk/web/module/

or in the web training page:

https://doc.openerp.com/trunk/training/

Now, if you want to have further information on how to extend OpenERP's web module:

http://thierry-godin.developpez.com/openerp/tutorial-module-creation-pos-modification-english-version/

Hope this information helps,

Avatar
Discard
Author

thankz for sharing the useful links....

Best Answer

Done some experimenting with Angular 2 and Odoo V7.

So far it seems a good solution to create custom widgets in typescript and integrate these in the Odoo V7 client.

Create your new widget and supply the instance as a parameter so Angular 2 can use dependency injection to inject the instance in your services.

instance.web.form.MyWidget = instance.web.form.FormWidget.extend({        
template: "my_widget_template",
start: function() {
this._super();
System.import('app/main')
.then((module) => { module.main(instance); })
.catch(function(err){ console.error(err); });
console.log(instance);
}
});
instance.web.form.custom_widgets.add('angular2_widget', 'instance.web.form.MyWidget');


Now you have access to the Odoo V7 instance and access the backend it via xml-rpc 


import {Injectable} from '@angular/core';
import {Attachment} from './attachments.component'
import {Inject} from '@angular/core'
@Injectable()
export class OdooService {
constructor(@Inject('openerp') private instance: any) {}
fuction1(attachment: Attachment) {
let model = new this.instance.web.Model('memory.ir.attachment')
Model.call('create', [{test: "Bob"}])
...
}
}


The xpl-rpc calls return deferred object. Just convert it to an observable and is plays nicely in angular

Avatar
Discard