This question has been flagged
6079 Views

One template have 2 t-name. one gets data from py another one is for send getting data to py for operation. When call py controler method through ajax from one form with t-name it works but when call from another form with different t-name it not call the py method in odoo 10. i written this js code and xml code. plz find a solution for who to call py controller method.

openerp.sass_modules_configuration = function (instance) {

var QWeb = instance.web.qweb;

instance.web.client_actions.add('get_modules', 'instance.web.DataGenericImport');

instance.web.DataGenericImport = instance.web.Widget.extend({

template: 'GenericMapView',

init: function (parent, action) {

var self = this;

this._super.apply(this, arguments);

this.res_model = action.params.model;

this.parent_context = action.params.context || {};

this.id = null;

},

start: function () {

 

var self = this;

this.$(".get_modules").click(function() {

$.ajax({

url: "/sass_modules_configuration/get_modules",

type: "POST",

dataType: 'json',

traditional: true,

async: false,

beforeSend: function() {

$('body').prepend('<div id="ajaxFormLoader" style="position:fixed; top:0; right: 0; bottom:0; left:0; z-index: 10000; background: rgba(51, 136, 204, 0.3) url('+loaderIcon+') no-repeat center;"></div>');

},

success: function(data){

var installed_modules = []

var uninstalled_modules = []

for (var i=0; i<data.installed_modules.length;i++){

installed_modules.push(data.installed_modules[i]);

}

for (var i=0; i<data.uninstalled_modules.length;i++){

uninstalled_modules.push(data.uninstalled_modules[i]);

}  

return self.$el.html(QWeb.render('GenericMappedtView',{'installed_module_list': installed_modules,'uninstalled_module_list': uninstalled_modules}));

}

});

});

$('.install-modules').click(function(){

var self = this;

var product_data = new FormData();

var request = new XMLHttpRequest();

request.onreadystatechange = function() {

if (request.readyState === 4){

if( request.status == 200) {

}

}

};

console.log(product_data);

request.open("POST", "/sass_modules_configuration/install_modules");

request.send(product_data);

});

}

});

};

xml code -->>

<template id="template" xml:space="preserve">

<t t-name="GenericMapView">

<form action="" method="post" enctype="multipart/form-data" class="oe_import" id="form">

<div class="oe_view_manager oe_view_manager_current">

<div class="oe_view_manager_header">

<h1 class="align">Manage Modules</h1>

</div>

</div>

<div class="oe_import_box">

<button class='get_modules btn btn-info' type="button">Get Modules</button>

</div>

<!-- <div id="flash_success" style="padding-left:0 15px; 15px 0"/> -->

</form>

</t>

<t t-name="GenericMappedtView">

<form action="/sass_modules_configuration/install_modules" method="post" >

<input type="hidden" name="csrf_token" t-att-value="csrf_token"/>

<div class="oe_import_box">

<span><h1 class="align">Manage Modules</h1></span>

<div class="display_list oe_import_box">

<div><h2 class="align">Installed Modules<hr/></h2></div>

<div>

<ul>

<li t-foreach="installed_module_list" t-as="module">

<input type="checkbox" name="installed" checked="checked" readonly="True" t-att-value="module"/>

<label for="installed"><t t-esc="module"/></label>

</li>

</ul>

</div>

</div>

<div class="display_list oe_import_box">

<div><h2 class="align">Not Installed Modules<hr/></h2></div>

<button class='install-modules btn btn-info' type="button">Install</button>

<div>

<ul>

<li t-foreach="uninstalled_module_list" t-as="module">

<input type="checkbox" name="uninstalled" id="to_install" t-att-value="module"/>

<label for="uninstalled"><t t-esc="module"/></label>

</li>

</ul>

</div>

</div>

</div>

</form>

</t>

</template>

Avatar
Discard

update question with the route, also check the type given in route.