[IMP] import/export UIs

Task 40692

Various changes to import/export (mainly) UIs:

* default to excel & "full" (non-import-compatible) export
* auto-detect encoding of CSV using chardet
* remember column -> field mapping after having imported a file (useful
   for repeated imports where auto-matching failed)
* better handle localised booleans & column names
* automatically select source list view's fields when exporting
* better integrate import templates feature and add a number of templates
This commit is contained in:
Jigar Patel
2018-07-17 15:19:05 +02:00
committed by xmo-odoo
parent 57676dc7d1
commit b60de0db41
37 changed files with 440 additions and 266 deletions
+28 -22
View File
@@ -1281,21 +1281,26 @@
</div>
<div t-name="ExportDialog" class="o_export">
<p role="status">
This wizard will export all data that matches the current search criteria to a CSV file.
You can export all data or only the fields that can be reimported after modification.
</p>
<div class="row">
<div class="col-md-6">
<label>Export Type :</label>
<strong>What do you want to do?</strong>
<div class="o_import_compat">
<div><input type="radio" name="o_import_compat_name" value="yes" checked="checked"/><label>Import-Compatible Export</label></div>
<div><input type="radio" name="o_import_compat_name" value=""/><label>Export all Data</label></div>
<div class="radio">
<label>
<input type="radio" name="o_import_compat_name" value="" checked="checked"/>
Use data in a spreadsheet (export all data)
</label>
</div>
<div class="radio">
<label>
<input type="radio" name="o_import_compat_name" value="yes"/>
Update data (import-compatible export)
</label>
</div>
</div>
</div>
<div class="col-md-6">
<label>Export Formats :</label>
<strong>Export Format:</strong>
<div class="o_export_format"/>
</div>
</div>
@@ -1323,19 +1328,20 @@
</div>
</div>
</div>
<p t-name="Export.DomainMessage">
<strong t-if="!record.ids_to_export" role="alert">Please pay attention that all records matching your search filter will be exported. Not only the selected ids.</strong>
<strong t-if="record.ids_to_export" role="alert">Please note that only the selected ids will be exported.</strong>
</p>
<div t-name="Export.TreeItems"
t-foreach="fields" t-as="field"
t-att-data-id="field.id"
class="o_export_tree_item"
tabindex="-1" role="treeitem"> <!-- tabindex make the div focusable -->
<span t-if="field.children &amp;&amp; (field.id).split('/').length != 3"
class="o_expand_parent fa fa-plus" role="img" aria-label="Expand parents" title="Expand parents"/>
<span class="o_tree_column" t-att-title="debug and field.id or None"><t t-esc="field.string"/></span>
</div>
<t t-name="Export.TreeItems">
<t t-foreach="fields" t-as="field">
<t t-set="has_child" t-value="field.children &amp;&amp; (field.id).split('/').length != 3" />
<div t-att-data-id="field.id" t-attf-class="o_export_tree_item #{has_child ? 'haschild' : ''}" tabindex="-1" role="treeitem"> <!-- tabindex make the div focusable -->
<t t-if="has_child">
<span class="o_expand o_expand_parent fa fa-chevron-right" role="img" aria-label="Expand parents" title="Expand parents"/>
<span class="o_tree_column o_expand" t-att-title="debug and field.id or None"><t t-esc="field.string"/></span>
</t>
<t t-else="">
<span class="o_tree_column" t-att-title="debug and field.id or None"><t t-esc="field.string"/></span>
</t>
</div>
</t>
</t>
<t t-name="Export.SaveList">
<label>Save as:</label> <input type="text"/><button type="button" class="btn btn-sm btn-default">Ok</button>
</t>