Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
3 Risposte
10633 Visualizzazioni

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
Abbandona

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.

Autore

can you post your code to use

Risposta migliore

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
Abbandona
Autore Risposta migliore

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
Abbandona
Post correlati Risposte Visualizzazioni Attività
0
giu 21
3066
0
ott 16
3917
1
mag 16
4917
1
gen 25
1091
3
lug 23
7004