Skip to content

Commit aad9c65

Browse files
export Confiance - WIP
1 parent a0ba4ea commit aad9c65

File tree

12 files changed

+381
-106
lines changed

12 files changed

+381
-106
lines changed

cli/pixano-cli.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ export function cli(argv) {
4141
.option('minio-endpoint', 'Minio endpoint', 'minio-storage.apps.confianceai-public.irtsysx.fr')
4242
.option('minio-accessKey', 'Minio accessKey', "developer")
4343
.option('minio-secretKey', 'Minio secretKey', "password")
44-
.option('data-provider', 'Data Provider url', 'http://localhost:3011') // 'http://192.168.102.130:3010')
44+
.option('data-provider', 'Data Provider url', 'http://localhost:3010') // 'http://192.168.102.130:3010')
4545
//.option('data-provider', 'Data Provider url', ' http://debiai-data-provider-os:3011') //version interne Kubernetes, ecrasé par YAML
4646
.example('pixano /path/to/workspace','The most common way to use Pixano:')
4747
.example('pixano --workspace /path/to/workspace --port 5001','Run on a specific port:')

config/minio.json

Lines changed: 0 additions & 8 deletions
This file was deleted.

config/minio_old.json

Lines changed: 0 additions & 9 deletions
This file was deleted.

frontend/src/actions/media.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,14 @@ export const importFromKafka = () => (dispatch) => {
8484
return GET('/api/v1/datasets/import_from_kafka', dispatch);
8585
}
8686

87+
/**
88+
* partial (by image) export to Data Provider (Confiance).
89+
*/
90+
export const partialExporttoDP = (task_name, media_id) => (dispatch) => {
91+
//console.log("partialExporttoDP");
92+
return GET('/api/v1/dataprovider/partial_export_to_dataprovider/'+task_name+'/'+media_id, dispatch);
93+
}
94+
8795
/**
8896
* get project list from Data Provider (Confiance).
8997
*/

frontend/src/views/app-dashboard-admin.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -705,7 +705,7 @@ class AppDashboardAdmin extends TemplatePage {
705705
return html`
706706
<div id="overview" class="section">
707707
<h1 class="display-4" style="margin: auto;">Select a task: </h1>
708-
<mwc-select label='Task' @selected=${(e) => {
708+
<mwc-select label='Task' style='width: 400px' @selected=${(e) => {
709709
if (tasks[e.detail.index] && tasks[e.detail.index].name !== taskName) {
710710
store.dispatch(updateTaskName(tasks[e.detail.index].name));
711711
this.refreshGrid();

frontend/src/views/app-datasets-manager.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -571,7 +571,7 @@ class AppDatasetsManager extends connect(store)(TemplatePage) {
571571
return html`
572572
<div id="overview" class="section">
573573
<h1 class="display-4" style="margin: auto;">Select a dataset: </h1>
574-
<mwc-select label='Dataset' @selected=${(e) => {
574+
<mwc-select label='Dataset' style='width: 400px' @selected=${(e) => {
575575
if (this.datasets[e.detail.index] && this.datasets[e.detail.index].id !== datasetId) {
576576
this.datasetIdx = e.detail.index;
577577
this.refreshGrid();

frontend/src/views/app-label.js

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import '@material/mwc-icon-button';
1313
import '@material/mwc-snackbar';
1414

1515
import { AppExplore } from './app-explore';
16+
import { partialExporttoDP } from '../actions/media';
17+
1618

1719
class AppLabel extends AppExplore {
1820
static get properties() {
@@ -114,6 +116,18 @@ class AppLabel extends AppExplore {
114116
console.log('_submissionHelper');
115117
await store.dispatch(putJob(objective));
116118
await store.dispatch(putLabels());
119+
120+
//Confiance DP export
121+
//TODO: test si on est dans Confiance (mais pour le moment on va dire que oui)
122+
//TODO: export sur Submit only (+validate/Reject)? sur skip too ?
123+
if(objective !== 'skip') {
124+
const taskName = getState().application.taskName;
125+
const media_id = getState('media').info.id;
126+
await store.dispatch(partialExporttoDP(taskName, media_id))
127+
.then(ret => { console.log("Export OK"+ ret); })
128+
.catch(err => { console.log("ERROR Export", err); this.errorPopup("EXPORT ERROR\n" + err.message); })
129+
}
130+
117131
} // Job has either been reassigned to someone else or is dead.
118132
catch (err) { console.log('err1', err); this.errorPopup(err.message); }
119133

@@ -152,7 +166,7 @@ class AppLabel extends AppExplore {
152166
}
153167

154168
/**
155-
* Submit job.
169+
* Skip job.
156170
*/
157171
skip() {
158172
this._submissionHelper('skip');

frontend/src/views/app-project-manager.js

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,16 @@ class AppProjectManager extends connect(store)(TemplatePage) {
111111
browserElem.open = true;
112112
}
113113

114+
/**
115+
* Fired when exporting a project to Confiance DB
116+
*/
117+
onExportToDP() {
118+
const browserElem = this.shadowRoot.getElementById('dialog-import-export-path');
119+
this.importExportText = 'export';
120+
browserElem.mode = 'export';
121+
browserElem.open = true;
122+
}
123+
114124
/**
115125
* Fired when importing a project
116126
*/
@@ -407,10 +417,14 @@ class AppProjectManager extends connect(store)(TemplatePage) {
407417
type="button"
408418
title="Copy database with annotation and their status into an archive"
409419
@click="${() => snapshotProject()}">Snapshot</mwc-button>
410-
<mwc-button outlined
420+
<mwc-button outlined
411421
type="button"
412422
title="Export annotations only to json files"
413423
@click="${this.onExport}">Export</mwc-button>
424+
<mwc-button outlined
425+
type="button"
426+
title="Export annotations to Confiance DataBase"
427+
@click="${this.onExportToDP}">Export to Confiance DB</mwc-button>
414428
<mwc-button outlined
415429
type="button"
416430
title="Import annotations from json files"
@@ -430,20 +444,21 @@ class AppProjectManager extends connect(store)(TemplatePage) {
430444
const taskName = t ? t.name : '';
431445
const datasetId = t ? t.dataset.id : '';
432446
const pluginName = t ? t.spec.plugin_name : '';
447+
//Note: style removed from "${this.tasks.map((t) => html`<mwc-tab label="Task ${t.name}" style="max-width: 200px;"></mwc-tab>`)}"
433448
return html`
434449
<form class="section">
435450
${this.taskHeader}
436451
<div>
437452
<mwc-tab-bar @MDCTabBar:activated=${this.onTabChanged} activeindex="${this.taskIdx}">
438-
${this.tasks.map((t) => html`<mwc-tab label="Task ${t.name}" style="max-width: 200px;"></mwc-tab>`)}
439-
<mwc-button outlined
453+
<mwc-button outlined
440454
id="add-task"
441455
class="add-task ${this.tasks.length ? 'multi' : 'single'}"
442456
style=${this.creatingTask ? 'display: none;' : 'display: flex;'}
443457
type="button"
444458
icon="add"
445459
title="Add new annotation task"
446460
@click="${this.onAddTask}">New task</mwc-button>
461+
${this.tasks.map((t) => html`<mwc-tab label="Task ${t.name}"></mwc-tab>`)}
447462
</mwc-tab-bar>
448463
<div style="${t != undefined && this.tasks.length ? 'display: block;' : 'display: none;'}">
449464
<div class="form-group" style="display: flex; flex-wrap: wrap;">

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"fs": "0.0.1-security",
3535
"git-rev-sync": "^3.0.2",
3636
"glob": "^7.1.6",
37+
"google-palette": "^1.1.0",
3738
"image-thumbnail": "1.0.14",
3839
"jsonwebtoken": "^8.5.1",
3940
"kafkajs": "^1.15.0",

server/router.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ const { get_tasks,
4040
projects_from_dataprovider,
4141
selections_from_dataprovider,
4242
id_list_from_dataprovider,
43+
partial_export_to_dataprovider,
44+
export_tasks_to_dataprovider,
4345
export_tasks } = require('./routes/tasks');
4446
const { snapshot_project } = require('./routes/project');
4547
const { get_results,
@@ -77,6 +79,8 @@ router.delete('/users/:username', middleware.checkToken, delete_user);
7779
router.get('/profile', middleware.checkToken, get_profile);
7880

7981
//for Confiance data provider
82+
router.get('/dataprovider/export_tasks_to_dataprovider/:task_name', middleware.checkToken, export_tasks_to_dataprovider);
83+
router.get('/dataprovider/partial_export_to_dataprovider/:task_name/:media_id', middleware.checkToken, partial_export_to_dataprovider);
8084
router.get('/dataprovider/projects_from_dataprovider', middleware.checkToken, projects_from_dataprovider);
8185
router.get('/dataprovider/selections_from_dataprovider/:project_name', middleware.checkToken, selections_from_dataprovider);
8286
router.get('/dataprovider/id_list_from_dataprovider/:project_name/:sel_id/:sel_name', middleware.checkToken, id_list_from_dataprovider);

0 commit comments

Comments
 (0)