Ir al contenido
Menú
Se marcó esta pregunta
3 Respuestas
10505 Vistas

Hello friends!!

I have tried this for you!!

Who can help me enrich this code as a work team ;)

XML:

< class="oe_web_example_message">Press to upload!/h3>

<p class="oe_web_example_file">

<input type="file" id="fileUpload" name="file" />

<button>entire file</button>

</p>

<p class="oe_web_example_filesa" id="dvCSV">

<textarea name="dvCSVs" rows="4" cols="50"></textarea>

</p>

</div>

</templates>

Js:


openerp.test_paie = function (instance)

{

var QWeb = instance.web.qweb;

var _t = instance.web._t;

instance.seetek_paie.Mywidget = instance.web.form.FormWidget.extend(instance.web.form.ReinitializeWidgetMixin,{

template : "seetek_paie.Mywidget",

events: {

'click .oe_web_example_file button': 'Upload',

},

Upload: function () {

var fileUpload = document.getElementById("fileUpload");

var regex = /^([a-zA-Z0-9\s_\\.\-:])+(.csv|.txt)$/;

if (regex.test(fileUpload.value.toLowerCase())) {

if (typeof (FileReader) != "undefined") {

var reader = new FileReader();

var tabResult = new Array();

reader.onload = function (e) {

var table = document.createElement("table");

var rows = e.target.result.split("\n");

var y = new Array();

var matricule = new Array();

for (var i = 0; i < (rows.length - 1); i++) {

var row = table.insertRow(-1);

var cells = rows[i].split(",");

if (cells[0] != 0)

{ var mat = cells[0];}

console.log("La" + i + "ème matricule est \n"+ mat);

if (cells[0]!= "")

{matricule.push(cells[0]);}

// Affiche doc

for (var j = 0; j < cells.length; j++) {

var cell = row.insertCell(-1);

cell.innerHTML = cells[j];

}

}

console.log(matricule);

var days = new Array();

var heures = new Array();

for (var i = 1; i < rows.length; i++) {

var row = table.insertRow(-1);

var cells = rows[i].split(",");

days = rows[0].split(",");

var obj = {};

var obj2 = {};

for (var j = 0; j < cells.length; j++) {

obj2[j] = cells[j];

}

obj[i] = obj2;

heures.push(obj);

}

var my_jsons_days;

var my_jsons_days_all = new Array();

var oups;

for (var i = 0; i < (rows.length - 2); i++) {

var my_jsons_days_all_temp = new Array();

for (var dd = 1; dd < days.length; dd++) {

var z;

if (heures[i][i+1][dd] > 0) { z = 'T';} else {z = 'A'; }

my_jsons_days = {"day":days[dd],"hours":heures[i][i+1][dd],"nature":z};

my_jsons_days_all_temp.push(my_jsons_days);

}

oups = {"days": my_jsons_days_all_temp};

var jsonStrssEM = JSON.stringify(oups);

console.log(jsonStrssEM);

var node = document.createElement("LI");

var textnode = document.createTextNode(jsonStrssEM);

node.appendChild(textnode);

document.getElementById("myList2").appendChild(node);

}

var dvCSV = document.getElementById("dvCSV");

dvCSV.innerHTML = "";

dvCSV.appendChild(table);

}

reader.readAsText(fileUpload.files[0]);

} else {

alert("This browser does not support HTML5.");

}

} else {

alert("Please upload a valid CSV file.");

}

},


});

instance.web.form.custom_widgets.add('momo1', 'instance.test_paie.Mywidget');

};

Ihave tried it to upload a csv file and then make some treatment.

I didnt finish it yet you can use it and change it as you want ;)

Avatar
Descartar

Hello. First, use the code markup, and indent your code, please. Then, why doing a widget, when you can import csv files through the regular interface ? Did you read the documentation ?

Hi Drees, I have did custom modules to import the csv of bank statements, bill of materials (based on some conditions) etc. For both odoo 8 and 7. I did using a wizard and file object to read content from csv and functions to write the content to database. I can help you, if you have any doubts: akhilpsivan@outlook.com. And PY, if you want to check some conditions or do some process before importing data, its not possible through regular interface.

Autor

can you post your code to use

Mejor respuesta

Do you have to add the widget or something in your "columns" from your .py file?Or in your __openerp__.py?

In the xml file it would be something like this: <field name="name"  widget="MyWidget" />?


Avatar
Descartar
Autor Mejor respuesta

In the __openerp__.py file, you have to add attributes like this:


js': ['static/src/js/xxxxx.js'],

'css': ['static/src/css/xxxxxx.css'],

'qweb': ['static/src/xml/xxxxxxx.xml'],

Like in this link:

http://openerp-web-v7.readthedocs.org/en/latest/module.html

Avatar
Descartar
Publicaciones relacionadas Respuestas Vistas Actividad
0
jun 21
2960
0
oct 16
3836
1
may 16
4828
1
ene 25
958
3
jul 23
6821