Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • MaitresNageurs/README/LabelsTower
  • perus/LabelsTower
  • DeletedUser/LabelsTower
  • chamont/LabelsTower
  • erichard/LabelsTower
5 results
Show changes
function send_simple_request(address) {
/*
Return response to request send at address on the web-server
:param address: String
:return: (JSON) String
*/
var xhr = new XMLHttpRequest();
xhr.open("GET", address, false);
xhr.send();
console.log(xhr.status);
return (xhr.responseText);
}
\ No newline at end of file
function setCookie(label_name, value) {
/**
* Create a cookie for ten years?
*/
var today = new Date();
var expires = new Date();
expires.setTime(today.getTime() + (10*365*24*60*60*1000));
document.cookie = label_name + "=" + value + ";expires=" + expires.toGMTString();
}
function getCookie(label_name) {
/**
* Retrieve the value of a cookie due to it's label_name.
*/
var regex = new RegExp("(?:; )?" + label_name + "=([^;]*);?");
if (regex.test(document.cookie))
return (RegExp["$1"]);
else
return null;
}
function labels_tab_to_str(labels) {
/**
* Transform tab of labels to string.
* ex : [{'id_label': 1, 'label_name': "Learn C++", 'father_id': 6}]
* = 1, Learn C++, 6|...
*/
var result = "";
var inter = []
for (var i = 0; labels[i]; i++)
inter.push([labels[i]['id'], labels[i]['label_name'], labels[i]['father_id']]);
result = inter.join('|');
return (result);
}
function str_to_labels_tab(str) {
/**
* Transform string to 2D tab.
* Ex : "42, test, 5|56, salut, 3" =>
* [[42, 'test', 5], [56, 'salut', 3]]
*/
var result = [];
var split = str.split('|');
for (var i = 0; split[i]; i++) {
var inter = split[i].split(',')
if (inter.length == 2)
result.push({'id': inter[0], 'label_name': inter[1]});
else
result.push({'id': inter[0], 'label_name': inter[1], 'father_id': inter[2]});
}
return (result);
}
function save_session() {
/**
* Save mandatory_labels and unselect_tab in Cookies.
*/
setCookie("cookies_mandatory_labels", labels_tab_to_str(hierarchy.mandatory_labels));
setCookie("cookies_forbiden_labels", labels_tab_to_str(hierarchy.forbiden_labels));
}
function setup_session() {
/**
* Return 0 no cookies are found return 0.
* Else return 1 if old_tab cookie are found => the initialization of tutos
* and labels is done from the labels contained in old_tab.
* need to be initialise (return 0).
*/
var success = 0;
if (getCookie('cookies_mandatory_labels') != null && getCookie('cookies_mandatory_labels').length != 0)
hierarchy.mandatory_labels = str_to_labels_tab(getCookie('cookies_mandatory_labels'));
if (getCookie('cookies_forbiden_labels') != null && getCookie('cookies_forbiden_labels').length != 0)
hierarchy.forbiden_labels = str_to_labels_tab(getCookie('cookies_forbiden_labels'));
if (getCookie('cookies_mandatory_labels') != null && getCookie('cookies_mandatory_labels').length != 0) {
update_elements_and_labels();
success = 1;
} else if (getCookie('cookies_forbiden_labels') != null && getCookie('cookies_forbiden_labels').length != 0) {
update_elements_and_labels();
success = 1;
}
return (success);
}
\ No newline at end of file
function update_elements_and_labels(){
/*
Update elements and labels when user change mandatory or forbiden labels.
:return: void
*/
//step-1 parse the parameters into the URL
url =""
url += "/sort/search/"+hierarchy.mandatory_labels.length
if(hierarchy.mandatory_labels.length>0){
url += "/"+get_ids(hierarchy.mandatory_labels,"id")
if(hierarchy.forbiden_labels.length>0){
url +="/"+get_ids(hierarchy.forbiden_labels,"id")
}
}else{
if(hierarchy.forbiden_labels.length>0){
url +="/"+get_ids(hierarchy.forbiden_labels,"id")
}
}
//step-2 get the updated elements and labels list
//result<-[elements, labels]
results = JSON.parse(send_simple_request(url));
//step-3 update vues
result.selected_elements = results[0]
hierarchy.high_discriminating_labels = results[1]
}
function get_ids(labels,column){
/*
Return all the id of the labels
:param labels : List[Dict[int, str]]
:param varaiable : column : chaine de caratère
:return: String
*/
var chaine = ""
labels.forEach(function(label){
chaine += label[column]+",";
});
chaine = chaine.slice(0,-1);
return chaine;
}
\ No newline at end of file
This diff is collapsed.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>user authentification API</title>
</head>
<body>
<table>
<tr>
<th></th>
<th>function</th>
<th>URL</th>
<th>return</th>
</tr>
<tr>
<td>1</td>
<td>login</td>
<td>/auth/login</td>
<td>true or false</td>
</tr>
</table>
</body>
</html>
\ No newline at end of file
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Browse</title>
<link rel="stylesheet" href="static/css/annimation.css">
<link rel="stylesheet" href="static/css/main.css">
<link rel="stylesheet" href="static/css/header.css">
<link rel="stylesheet" href="static/css/hierarchy.css">
<link rel="stylesheet" href="static/css/result.css">
<!-- Bootstrap -->
<link rel="stylesheet" href="static/css/bootstrap.css" media="screen">
<!-- VueJs -->
<script src="static/js/vue.js"></script>
<style type="text/css">[v-cloak] {display: none;}</style>
</head>
<body>
<div class='container'>
<br><br>
<div id="header" v-cloak>
<div class="row">
<div class="col-md-12" id="project_title">
<a href="/" style="text-decoration:none; color: 124f66;">
<h1 style="display: inline;"><b> [[ txt['project_name'] ]] </b></h1>
</a>
</div>
</div>
</div>
<br>
<div class="row">
<!-- <div class="col-md-1"></div> -->
<div class="col-md-3">
<div id='hierarchy' class="panel panel-primary" v-cloak>
<div class="panel-heading title">
<span id="hierarchy-title_ang" @click="reset()" title="Reset labels selection">[[ txt['Label'] ]]</span>
</div>
<div class="pannel-body hierarchy">
<!-- HIERARCHY.MANDATORY_LABELS -->
<span v-for='(label, index) in mandatory_labels'>
<img title="Deselect the elements bearing this label" class="hierarchy-icone_left" @click="rm_mandatory_label(index)" src="static/img/plus-encadre.png" onmouseover="this.src='static/img/plus-encadre-vert.png'" onmouseout="this.src='static/img/plus-encadre.png'">
<span :title="label['label_name']"><b>{{ redim_labels(label['label_name']) }}</b></span>
<img class="hierarchy-icone_right" src="static/img/moins.png" style="visibility: hidden;"><br> <!-- MARQUEUR (elliot)-->
</span>
<!-- HIERARCHY.MANDATORY_LABELS -->
<!-- HIERARCHY.FORBIDEN_LABELS -->
<span v-if="forbiden_labels.length != 0" v-for='(label, index) in forbiden_labels'>
<img class="hierarchy-icone_left" src="static/img/plus.png" style="visibility: hidden;">
<span :title="label['label_name']"><b>{{ redim_labels(label['label_name']) }}</b></span>
<img title="Authorizes elements bearing this label" class="hierarchy-icone_right" @click="rm_forbiden_label(index)" src="static/img/moins-encadre.png" onmouseover="this.src='static/img/moins-encadre-rouge.png'" onmouseout="this.src='static/img/moins-encadre.png'">
<br>
</span>
<!-- HIERARCHY.FORBIDEN_LABELS -->
<!-- HIERARCHY.HIGH_DISCRIMATING_LABELS -->
<div v-if="loading == 1">
<div id="hierarchy-separator" v-if="(mandatory_labels.length > 0 || forbiden_labels.length > 0) && high_discriminating_labels.length > 0">
<img src="static/img/monSeparateur.png"/>
</div>
<transition-group name="new_labels">
<span v-for='(label, index) in high_discriminating_labels' v-bind:key="label['label_name']">
<img title="Selects elements with this label" class="hierarchy-icone_left" @click="add_mandatory_label(index, 'new')" src="static/img/plus.png" onmouseover="this.src='static/img/plus-vert.png'" onmouseout="this.src='static/img/plus.png'">
<span :title="label['label_name']"><b>{{ redim_labels(label['label_name']) }}</b></span>
<img title="Prohibits elements with this label" class="hierarchy-icone_right" @click="add_forbiden_label(index, 'new')" src="static/img/moins.png" onmouseover="this.src='static/img/moins-rouge.png'" onmouseout="this.src='static/img/moins.png'">
<br>
</span>
</transition-group>
</div>
<!-- HIERARCHY.HIGH_DISCRIMATING_LABELS -->
</div>
</div>
</div>
<div class="col-md-9" id="result" v-cloak>
<div class="panel panel-primary">
<div class="panel-heading title">
<span id="result-title">
<span >{{ selected_elements.length }}{{ selected_elements.length > 1 ? " Elements":" Element"}} </span>
</span>
</div>
<!-- PRINT ELEMENTS -->
<ul v-if="loading == 1" class="list-group" v-bind:style="'max-height: '+((width_window > 991) ? (height_window - 151 - 70) : (450))+'px;'">
<li class="list-group-item" v-for='element in selected_elements' v-bind:key="element['id']">
<span>
<b class="single_result" v-bind:title="(redim_element(element['element_name']).indexOf('...') == -1) ? '' : element['element_name']">{{ redim_element(element['element_name']) }}</b>
</span>
</li>
</ul>
</div>
</div>
</div>
</div>
</body>
<script src="static/js/search_new_elements.js"></script>
<script src="static/js/ajax.js"></script>
<script src="static/js/cookies.js"></script>
<script>
function init_research() {
/**
* Initialise the two different part of hierarchy and
* the array that contain all elements.
*/
setup = setup_session();
if (setup == 0) {
update_elements_and_labels();
}
}
function update_loading(value) {
/**
* The 'loading' value is common to both hierarchy and
* result views. When it is equal to 0, the content of
* hierarchy.high_discriminating_labels (new labels) and result.selected_elements
* (new elements) must not be display. After modifications, loading
* changes to one and they are displayed.
*/
hierarchy.loading = value;
result.loading = value;
}
var hierarchy = new Vue ({
el: '#hierarchy',
data: {
/**
* - 'mandatory_labels' contain all labels previously selected. They
* are used for select the elements and they are signaled by a plus.
* - 'forbiden_labels' contain all labels previously selected. They
* are used for select the elements and they are signaled by a minus.
* - 'high_discriminating_labels' contain the labels generated thanks to elements.
* For 'loading' see update_loading function above.
*/
mandatory_labels: [],
forbiden_labels: [],
high_discriminating_labels: [],
size_div: 0,
loading: 1
},
methods: {
reset : function() {
/**
* Clear all array of hierarchy.
*/
hierarchy.mandatory_labels = [];
hierarchy.high_discriminating_labels = [];
hierarchy.forbiden_labels = [];
result.selected_elements = [];
update_loading(0);
update_elements_and_labels();
save_session();
update_loading(1);
},
add_mandatory_label: function(index) {
/**
* Move selected label from [high_discriminating_labels => mandatory_labels]
*/
update_loading(0);
hierarchy.mandatory_labels.push(hierarchy.high_discriminating_labels[index]);
hierarchy.high_discriminating_labels.splice(index, 1);
update_elements_and_labels();
save_session();
update_loading(1);
},
rm_mandatory_label: function(index) {
/**
* If a label in 'mandatory_labels' is selected, it is deleted
* of this tab. If this tab is empty, the high_discriminating_labels
* is filled with the main labels (labels without father).
*/
update_loading(0);
hierarchy.mandatory_labels.splice(hierarchy.mandatory_labels.indexOf(hierarchy.mandatory_labels[index]), 1);
update_elements_and_labels();
save_session();
update_loading(1);
},
add_forbiden_label: function(index) {
/**
* After click on cross of high_discriminating_labels.
* This label is add to forbiden_labels and it is remove from previous high_discriminating_labels.
* Next the list of elements is updated.
*/
update_loading(0);
hierarchy.forbiden_labels.push(hierarchy.high_discriminating_labels[index]);
hierarchy.high_discriminating_labels.splice(index, 1);
update_elements_and_labels();
save_session();
update_loading(1);
},
rm_forbiden_label: function(index) {
/**
* After click on minus of labels from forbiden_labels, this label
* is remove of this tab and the list of elements is updated.
*/
update_loading(0);
hierarchy.forbiden_labels.splice(index, 1);
update_elements_and_labels();
save_session();
update_loading(1);
},
redim_labels(name) {
/**
* In function of the len of hierarchy div and name length,
* the label name is truncated.
**/
var size_div = hierarchy.size_div;
if (size_div <= 213 && name.length > 12)
return (name.slice(0, 8)+"...");
else if (size_div <= 270 && name.length > 15)
return (name.slice(0, 10)+"...");
else if (size_div <= 368 && name.length > 23)
return (name.slice(0, 16)+"...");
else if (size_div <= 462 && name.length > 43)
return (name.slice(0, 29)+"...");
else if (size_div <= 581 && name.length > 43)
return (name.slice(0, 40)+"...");
else if (size_div <= 690 && name.length > 59)
return (name.slice(0, 56)+"...");
else if (size_div <= 720 && name.length > 73)
return (name.slice(0, 70)+"...");
return (name);
}
}
});
var result = new Vue ({
el: '#result',
data: {
/**
* - 'selected_elements'
* contain all elements to display on this form : [id, name].
* - 'loading'* - size_div
* contain the size (width of the result block) for be able to truncate
* the name of elements.
*/
selected_elements: [],
loading: 1,
size_div: 0,
height_window: 0,
width_window: 0
},
methods: {
redim_element(name) {
/**
* In function of the length of result div and name length,
* the name of the element is truncated.
**/
size_div = result.size_div;
if (size_div <= 643 && name.length >= 27)
return (name.slice(0, 22)+"...");
else if (size_div <= 649 && name.length >= 29)
return (name.slice(0, 26)+"...");
else if (size_div <= 695 && name.length >= 36)
return (name.slice(0, 29)+"...");
else if (size_div <= 716 && name.length >= 36)
return (name.slice(0, 33)+"...");
else if (size_div <= 750 && name.length > 40)
return (name.slice(0, 35)+"...");
else if (size_div <= 878 && name.length >= 50)
return (name.slice(0, 45)+"...");
return (name);
}
}
});
var footer = new Vue ({
el: '#footer',
data: {
},
methods: {
}
});
var header = new Vue ({
el: '#header',
data: {
},
methods: {
}
});
window.onresize = function () {
/**
* If the size of the window varies the value of this variables changes.
**/
hierarchy.size_div = document.getElementById("hierarchy").offsetWidth;
result.size_div = document.getElementById("result").offsetWidth;
result.height_window = window.innerHeight;
result.width_window = window.innerWidth;
};
result.size_div = document.getElementById("result").offsetWidth;
hierarchy.size_div = document.getElementById("hierarchy").offsetWidth;
result.height_window = window.innerHeight;
result.width_window = window.innerWidth;
init_research();
</script>
</html>
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
INSERT INTO ELEMENT VALUES(45,'Python 3, premier pas');
INSERT INTO ELEMENT VALUES(46,'Pandas');
INSERT INTO ELEMENT VALUES(47,'Mon premier programme MPI');
INSERT INTO ELEMENT VALUES(48,'TensorFlow');
INSERT INTO ELEMENT VALUES(49,'Python Panda DataFrames');
INSERT INTO ELEMENT VALUES(50,'Rudiments de Machine Learning');
INSERT INTO ELEMENT VALUES(51,'Root');
INSERT INTO ELEMENT VALUES(52,'Geant');
INSERT INTO ELEMENT VALUES(53,'Les caches');
INSERT INTO ELEMENT VALUES(54,'L''alignement des données');
INSERT INTO ELEMENT VALUES(55,'Profilage avec Perf');
INSERT INTO ELEMENT VALUES(56,'Rudiments de calcul flottant');
INSERT INTO ELEMENT VALUES(57,'Rudiments de vectorisation');
INSERT INTO ELEMENT VALUES(58,'Random123');
INSERT INTO ELEMENT VALUES(59,'QuantStack Xsimd');
INSERT INTO ELEMENT VALUES(60,'Mon premier programme OpenCL');
INSERT INTO ELEMENT VALUES(61,'Initiation à Kokkos');
INSERT INTO ELEMENT VALUES(62,'Le modèle Roofline');
INSERT INTO ELEMENT VALUES(63,'Mon premier programme OpenMP');
INSERT INTO ELEMENT VALUES(64,'HDF5');
INSERT INTO ELEMENT VALUES(65,'Spack');
INSERT INTO ELEMENT VALUES(66,'Module');
INSERT INTO ELEMENT VALUES(67,'CMake');
INSERT INTO ELEMENT VALUES(27,'Gitlab CI TP 1');
INSERT INTO ELEMENT VALUES(28,'Gitlab CI TP 2');
INSERT INTO ELEMENT VALUES(1,'Inférence de type (auto)');
INSERT INTO ELEMENT VALUES(2,'Références jetables (&&) et déplacement de données');
INSERT INTO ELEMENT VALUES(3,'Fonctions lambda');
INSERT INTO ELEMENT VALUES(4,'Dive into Go');
INSERT INTO ELEMENT VALUES(5,'Passer de Python 2 à Python 3');
INSERT INTO ELEMENT VALUES(6,'Piscine Ada');
INSERT INTO ELEMENT VALUES(7,'Plongeon MultiLangages');
INSERT INTO ELEMENT VALUES(8,'Petit aperçu de l''utilisation de Spark');
INSERT INTO ELEMENT VALUES(9,'Git 1 : Introduction');
INSERT INTO ELEMENT VALUES(10,'Git 2 : gestion de versions');
INSERT INTO ELEMENT VALUES(11,'Git 3 : gestion de branches');
INSERT INTO ELEMENT VALUES(12,'Git 4 : à plusieurs');
INSERT INTO ELEMENT VALUES(13,'Sphinx : un outil de génération de documentations');
INSERT INTO ELEMENT VALUES(14,'Plongeon LimeSurvey');
INSERT INTO ELEMENT VALUES(15,'Aperçu de la base de données MongoDB');
INSERT INTO ELEMENT VALUES(16,'Plongeon PyQt4');
INSERT INTO ELEMENT VALUES(17,'Docker 0 : installer sous Linux');
INSERT INTO ELEMENT VALUES(18,'Docker 0 : installer sous MacOSX');
INSERT INTO ELEMENT VALUES(19,'Docker 0 : installer sous Windows');
INSERT INTO ELEMENT VALUES(20,'Docker 0 : installer sur du vieux matériel Apple');
INSERT INTO ELEMENT VALUES(21,'Docker 0 : installer sur un vieux Windows');
INSERT INTO ELEMENT VALUES(22,'Docker 1 : run');
INSERT INTO ELEMENT VALUES(23,'Docker 2 : Build');
INSERT INTO ELEMENT VALUES(24,'Docker 3 : Network');
INSERT INTO ELEMENT VALUES(25,'Docker 3 : volume');
INSERT INTO ELEMENT VALUES(29,'Docker 4 : compose');
INSERT INTO ELEMENT VALUES(30,'Docker 6 : compose advanced');
INSERT INTO ELEMENT VALUES(31,'Kubernetes');
INSERT INTO ELEMENT VALUES(32,'Mon premier notebook');
INSERT INTO ELEMENT VALUES(68,'Functional programming & Scala');
INSERT INTO ELEMENT VALUES(69,'Singularity 1 : utilisation basique');
INSERT INTO ELEMENT VALUES(70,'Singularity 2 : utilisation d''openMPI');
INSERT INTO ELEMENT VALUES(71,'Singularity 3 : utilisation avancée');
INSERT INTO ELEMENT VALUES(33,'Introduction to Functional Programming in OCaml');
INSERT INTO ELEMENT VALUES(34,'Cryptography I');
INSERT INTO ELEMENT VALUES(35,'Cryptography II');
INSERT INTO ELEMENT VALUES(36,'Introduction to Cyber Security');
INSERT INTO ELEMENT VALUES(37,'Machine Learning');
INSERT INTO ELEMENT VALUES(38,'The Rust Programming Language');
INSERT INTO ELEMENT VALUES(39,'Pro Git (en)');
INSERT INTO ELEMENT VALUES(40,'Pro Git (fr)');
INSERT INTO ELEMENT VALUES(72,'Data Analysis and Visualization with R');
INSERT INTO ELEMENT VALUES(73,'Data Analysis and Visualization with Python');
INSERT INTO LABEL VALUES(23,'Programmation',NULL);
INSERT INTO LABEL VALUES(24,'Languages',23);
INSERT INTO LABEL VALUES(25,'C++',24);
INSERT INTO LABEL VALUES(26,'Python',24);
INSERT INTO LABEL VALUES(27,'Data Science',23);
INSERT INTO LABEL VALUES(29,'Software Engineering',23);
INSERT INTO LABEL VALUES(30,'Git',55);
INSERT INTO LABEL VALUES(31,'Gitlab',29);
INSERT INTO LABEL VALUES(32,'Documentation',29);
INSERT INTO LABEL VALUES(33,'Notebooks',23);
INSERT INTO LABEL VALUES(34,'Jupyter',33);
INSERT INTO LABEL VALUES(35,'Database',23);
INSERT INTO LABEL VALUES(36,'Human-Machine Interfaces',23);
INSERT INTO LABEL VALUES(37,'Exploitation',NULL);
INSERT INTO LABEL VALUES(38,'Continuous Integration',37);
INSERT INTO LABEL VALUES(39,'Containers',37);
INSERT INTO LABEL VALUES(40,'Docker',39);
INSERT INTO LABEL VALUES(41,'Orchestration',37);
INSERT INTO LABEL VALUES(42,'Kubernetes',41);
INSERT INTO LABEL VALUES(43,'Office',NULL);
INSERT INTO LABEL VALUES(46,'Rust',24);
INSERT INTO LABEL VALUES(47,'OCaml',24);
INSERT INTO LABEL VALUES(48,'Functional',23);
INSERT INTO LABEL VALUES(49,'Scientific Computing',23);
INSERT INTO LABEL VALUES(51,'Machine learning',49);
INSERT INTO LABEL VALUES(52,'Parallelism',49);
INSERT INTO LABEL VALUES(53,'Security',NULL);
INSERT INTO LABEL VALUES(54,'Encryption',53);
INSERT INTO LABEL VALUES(55,'Versioning',29);
INSERT INTO LABEL VALUES(58,'Singularity',39);
INSERT INTO LABEL VALUES(60,'MPI',59);
INSERT INTO LABEL VALUES(59,'High Performance Computing',49);
INSERT INTO LABEL VALUES(45,'In2p3',NULL);
INSERT INTO LABEL VALUES(56,'English',NULL);
INSERT INTO LABEL VALUES(57,'French',NULL);
INSERT INTO LABEL VALUES(64,'Scala',24);
INSERT INTO LABEL VALUES(61,'Physics',NULL);
INSERT INTO LABEL VALUES(65,'R',24);
INSERT INTO LABEL VALUES(62,'Package Management',29);
INSERT INTO LABEL VALUES(63,'Build Process of Software',29);
INSERT INTO ALIAS VALUES('Coding',2);
INSERT INTO ALIAS VALUES('Languages',3);
INSERT INTO ALIAS VALUES('Langage',3);
INSERT INTO ALIAS VALUES('Language',3);
INSERT INTO ALIAS VALUES('CPP',4);
INSERT INTO ALIAS VALUES('C Plus Plus',4);
INSERT INTO ALIAS VALUES('Big Data',7);
INSERT INTO ALIAS VALUES('Données massives',7);
INSERT INTO ALIAS VALUES('Software Engineering',8);
INSERT INTO ALIAS VALUES('Notebook',12);
INSERT INTO ALIAS VALUES('Databases',14);
INSERT INTO ALIAS VALUES('Base de donnée',14);
INSERT INTO ALIAS VALUES('Database',14);
INSERT INTO ALIAS VALUES('Interface Homme-Machine',15);
INSERT INTO ALIAS VALUES('GUI',15);
INSERT INTO ALIAS VALUES('Graphic User Interfaces',15);
INSERT INTO ALIAS VALUES('Graphic User Interface',15);
INSERT INTO ALIAS VALUES('Administration',16);
INSERT INTO ALIAS VALUES('ASR',16);
INSERT INTO ALIAS VALUES('Administration Systèmes et Réseaux',16);
INSERT INTO ALIAS VALUES('Administration Système et Réseau',16);
INSERT INTO ALIAS VALUES('Continuous Integration',17);
INSERT INTO ALIAS VALUES('Conteneur',18);
INSERT INTO ALIAS VALUES('Containers',18);
INSERT INTO ALIAS VALUES('Container',18);
INSERT INTO ALIAS VALUES('Desktop Tools',22);
INSERT INTO ALIAS VALUES('Desktop Tool',22);
INSERT INTO ALIAS VALUES('Office',22);
INSERT INTO ALIAS VALUES('Calcul',49);
INSERT INTO ELEMENT_LABEL VALUES(1,23);
INSERT INTO ELEMENT_LABEL VALUES(1,24);
INSERT INTO ELEMENT_LABEL VALUES(1,25);
INSERT INTO ELEMENT_LABEL VALUES(1,45);
INSERT INTO ELEMENT_LABEL VALUES(1,57);
INSERT INTO ELEMENT_LABEL VALUES(2,23);
INSERT INTO ELEMENT_LABEL VALUES(2,24);
INSERT INTO ELEMENT_LABEL VALUES(2,25);
INSERT INTO ELEMENT_LABEL VALUES(2,45);
INSERT INTO ELEMENT_LABEL VALUES(2,57);
INSERT INTO ELEMENT_LABEL VALUES(3,23);
INSERT INTO ELEMENT_LABEL VALUES(3,24);
INSERT INTO ELEMENT_LABEL VALUES(3,25);
INSERT INTO ELEMENT_LABEL VALUES(3,45);
INSERT INTO ELEMENT_LABEL VALUES(3,57);
INSERT INTO ELEMENT_LABEL VALUES(4,23);
INSERT INTO ELEMENT_LABEL VALUES(4,45);
INSERT INTO ELEMENT_LABEL VALUES(4,57);
INSERT INTO ELEMENT_LABEL VALUES(5,23);
INSERT INTO ELEMENT_LABEL VALUES(5,24);
INSERT INTO ELEMENT_LABEL VALUES(5,26);
INSERT INTO ELEMENT_LABEL VALUES(5,45);
INSERT INTO ELEMENT_LABEL VALUES(5,57);
INSERT INTO ELEMENT_LABEL VALUES(6,23);
INSERT INTO ELEMENT_LABEL VALUES(6,45);
INSERT INTO ELEMENT_LABEL VALUES(6,57);
INSERT INTO ELEMENT_LABEL VALUES(7,23);
INSERT INTO ELEMENT_LABEL VALUES(7,45);
INSERT INTO ELEMENT_LABEL VALUES(7,57);
INSERT INTO ELEMENT_LABEL VALUES(8,23);
INSERT INTO ELEMENT_LABEL VALUES(8,27);
INSERT INTO ELEMENT_LABEL VALUES(8,45);
INSERT INTO ELEMENT_LABEL VALUES(8,57);
INSERT INTO ELEMENT_LABEL VALUES(9,23);
INSERT INTO ELEMENT_LABEL VALUES(9,29);
INSERT INTO ELEMENT_LABEL VALUES(9,30);
INSERT INTO ELEMENT_LABEL VALUES(9,45);
INSERT INTO ELEMENT_LABEL VALUES(9,55);
INSERT INTO ELEMENT_LABEL VALUES(9,57);
INSERT INTO ELEMENT_LABEL VALUES(10,23);
INSERT INTO ELEMENT_LABEL VALUES(10,29);
INSERT INTO ELEMENT_LABEL VALUES(10,30);
INSERT INTO ELEMENT_LABEL VALUES(10,45);
INSERT INTO ELEMENT_LABEL VALUES(10,55);
INSERT INTO ELEMENT_LABEL VALUES(10,57);
INSERT INTO ELEMENT_LABEL VALUES(11,23);
INSERT INTO ELEMENT_LABEL VALUES(11,29);
INSERT INTO ELEMENT_LABEL VALUES(11,30);
INSERT INTO ELEMENT_LABEL VALUES(11,45);
INSERT INTO ELEMENT_LABEL VALUES(11,55);
INSERT INTO ELEMENT_LABEL VALUES(11,57);
INSERT INTO ELEMENT_LABEL VALUES(12,23);
INSERT INTO ELEMENT_LABEL VALUES(12,29);
INSERT INTO ELEMENT_LABEL VALUES(12,30);
INSERT INTO ELEMENT_LABEL VALUES(12,45);
INSERT INTO ELEMENT_LABEL VALUES(12,55);
INSERT INTO ELEMENT_LABEL VALUES(12,57);
INSERT INTO ELEMENT_LABEL VALUES(13,23);
INSERT INTO ELEMENT_LABEL VALUES(13,29);
INSERT INTO ELEMENT_LABEL VALUES(13,32);
INSERT INTO ELEMENT_LABEL VALUES(13,45);
INSERT INTO ELEMENT_LABEL VALUES(13,57);
INSERT INTO ELEMENT_LABEL VALUES(14,43);
INSERT INTO ELEMENT_LABEL VALUES(14,45);
INSERT INTO ELEMENT_LABEL VALUES(14,57);
INSERT INTO ELEMENT_LABEL VALUES(15,23);
INSERT INTO ELEMENT_LABEL VALUES(15,35);
INSERT INTO ELEMENT_LABEL VALUES(15,45);
INSERT INTO ELEMENT_LABEL VALUES(15,57);
INSERT INTO ELEMENT_LABEL VALUES(16,23);
INSERT INTO ELEMENT_LABEL VALUES(16,36);
INSERT INTO ELEMENT_LABEL VALUES(16,45);
INSERT INTO ELEMENT_LABEL VALUES(16,57);
INSERT INTO ELEMENT_LABEL VALUES(17,37);
INSERT INTO ELEMENT_LABEL VALUES(17,39);
INSERT INTO ELEMENT_LABEL VALUES(17,40);
INSERT INTO ELEMENT_LABEL VALUES(17,45);
INSERT INTO ELEMENT_LABEL VALUES(17,57);
INSERT INTO ELEMENT_LABEL VALUES(18,37);
INSERT INTO ELEMENT_LABEL VALUES(18,39);
INSERT INTO ELEMENT_LABEL VALUES(18,40);
INSERT INTO ELEMENT_LABEL VALUES(18,45);
INSERT INTO ELEMENT_LABEL VALUES(18,57);
INSERT INTO ELEMENT_LABEL VALUES(19,37);
INSERT INTO ELEMENT_LABEL VALUES(19,39);
INSERT INTO ELEMENT_LABEL VALUES(19,40);
INSERT INTO ELEMENT_LABEL VALUES(19,45);
INSERT INTO ELEMENT_LABEL VALUES(19,57);
INSERT INTO ELEMENT_LABEL VALUES(20,37);
INSERT INTO ELEMENT_LABEL VALUES(20,39);
INSERT INTO ELEMENT_LABEL VALUES(20,40);
INSERT INTO ELEMENT_LABEL VALUES(20,45);
INSERT INTO ELEMENT_LABEL VALUES(20,57);
INSERT INTO ELEMENT_LABEL VALUES(21,37);
INSERT INTO ELEMENT_LABEL VALUES(21,39);
INSERT INTO ELEMENT_LABEL VALUES(21,40);
INSERT INTO ELEMENT_LABEL VALUES(21,45);
INSERT INTO ELEMENT_LABEL VALUES(21,57);
INSERT INTO ELEMENT_LABEL VALUES(22,37);
INSERT INTO ELEMENT_LABEL VALUES(22,39);
INSERT INTO ELEMENT_LABEL VALUES(22,40);
INSERT INTO ELEMENT_LABEL VALUES(22,45);
INSERT INTO ELEMENT_LABEL VALUES(22,57);
INSERT INTO ELEMENT_LABEL VALUES(23,37);
INSERT INTO ELEMENT_LABEL VALUES(23,39);
INSERT INTO ELEMENT_LABEL VALUES(23,40);
INSERT INTO ELEMENT_LABEL VALUES(23,45);
INSERT INTO ELEMENT_LABEL VALUES(23,57);
INSERT INTO ELEMENT_LABEL VALUES(24,37);
INSERT INTO ELEMENT_LABEL VALUES(24,39);
INSERT INTO ELEMENT_LABEL VALUES(24,40);
INSERT INTO ELEMENT_LABEL VALUES(24,45);
INSERT INTO ELEMENT_LABEL VALUES(24,57);
INSERT INTO ELEMENT_LABEL VALUES(25,37);
INSERT INTO ELEMENT_LABEL VALUES(25,39);
INSERT INTO ELEMENT_LABEL VALUES(25,40);
INSERT INTO ELEMENT_LABEL VALUES(25,45);
INSERT INTO ELEMENT_LABEL VALUES(25,57);
INSERT INTO ELEMENT_LABEL VALUES(27,23);
INSERT INTO ELEMENT_LABEL VALUES(27,29);
INSERT INTO ELEMENT_LABEL VALUES(27,31);
INSERT INTO ELEMENT_LABEL VALUES(27,37);
INSERT INTO ELEMENT_LABEL VALUES(27,38);
INSERT INTO ELEMENT_LABEL VALUES(27,45);
INSERT INTO ELEMENT_LABEL VALUES(27,57);
INSERT INTO ELEMENT_LABEL VALUES(28,23);
INSERT INTO ELEMENT_LABEL VALUES(28,29);
INSERT INTO ELEMENT_LABEL VALUES(28,31);
INSERT INTO ELEMENT_LABEL VALUES(28,37);
INSERT INTO ELEMENT_LABEL VALUES(28,38);
INSERT INTO ELEMENT_LABEL VALUES(28,45);
INSERT INTO ELEMENT_LABEL VALUES(28,57);
INSERT INTO ELEMENT_LABEL VALUES(29,37);
INSERT INTO ELEMENT_LABEL VALUES(29,39);
INSERT INTO ELEMENT_LABEL VALUES(29,40);
INSERT INTO ELEMENT_LABEL VALUES(29,41);
INSERT INTO ELEMENT_LABEL VALUES(29,45);
INSERT INTO ELEMENT_LABEL VALUES(29,57);
INSERT INTO ELEMENT_LABEL VALUES(30,37);
INSERT INTO ELEMENT_LABEL VALUES(30,39);
INSERT INTO ELEMENT_LABEL VALUES(30,40);
INSERT INTO ELEMENT_LABEL VALUES(30,41);
INSERT INTO ELEMENT_LABEL VALUES(30,45);
INSERT INTO ELEMENT_LABEL VALUES(30,57);
INSERT INTO ELEMENT_LABEL VALUES(31,37);
INSERT INTO ELEMENT_LABEL VALUES(31,39);
INSERT INTO ELEMENT_LABEL VALUES(31,41);
INSERT INTO ELEMENT_LABEL VALUES(31,42);
INSERT INTO ELEMENT_LABEL VALUES(31,45);
INSERT INTO ELEMENT_LABEL VALUES(31,57);
INSERT INTO ELEMENT_LABEL VALUES(32,23);
INSERT INTO ELEMENT_LABEL VALUES(32,24);
INSERT INTO ELEMENT_LABEL VALUES(32,26);
INSERT INTO ELEMENT_LABEL VALUES(32,33);
INSERT INTO ELEMENT_LABEL VALUES(32,34);
INSERT INTO ELEMENT_LABEL VALUES(32,45);
INSERT INTO ELEMENT_LABEL VALUES(32,57);
INSERT INTO ELEMENT_LABEL VALUES(33,23);
INSERT INTO ELEMENT_LABEL VALUES(33,24);
INSERT INTO ELEMENT_LABEL VALUES(33,47);
INSERT INTO ELEMENT_LABEL VALUES(33,48);
INSERT INTO ELEMENT_LABEL VALUES(33,56);
INSERT INTO ELEMENT_LABEL VALUES(34,23);
INSERT INTO ELEMENT_LABEL VALUES(34,53);
INSERT INTO ELEMENT_LABEL VALUES(34,54);
INSERT INTO ELEMENT_LABEL VALUES(34,56);
INSERT INTO ELEMENT_LABEL VALUES(35,23);
INSERT INTO ELEMENT_LABEL VALUES(35,53);
INSERT INTO ELEMENT_LABEL VALUES(35,54);
INSERT INTO ELEMENT_LABEL VALUES(35,56);
INSERT INTO ELEMENT_LABEL VALUES(36,43);
INSERT INTO ELEMENT_LABEL VALUES(36,53);
INSERT INTO ELEMENT_LABEL VALUES(36,56);
INSERT INTO ELEMENT_LABEL VALUES(37,23);
INSERT INTO ELEMENT_LABEL VALUES(37,49);
INSERT INTO ELEMENT_LABEL VALUES(37,51);
INSERT INTO ELEMENT_LABEL VALUES(37,56);
INSERT INTO ELEMENT_LABEL VALUES(38,23);
INSERT INTO ELEMENT_LABEL VALUES(38,24);
INSERT INTO ELEMENT_LABEL VALUES(38,46);
INSERT INTO ELEMENT_LABEL VALUES(38,49);
INSERT INTO ELEMENT_LABEL VALUES(38,52);
INSERT INTO ELEMENT_LABEL VALUES(38,56);
INSERT INTO ELEMENT_LABEL VALUES(39,23);
INSERT INTO ELEMENT_LABEL VALUES(39,29);
INSERT INTO ELEMENT_LABEL VALUES(39,30);
INSERT INTO ELEMENT_LABEL VALUES(39,55);
INSERT INTO ELEMENT_LABEL VALUES(39,56);
INSERT INTO ELEMENT_LABEL VALUES(40,23);
INSERT INTO ELEMENT_LABEL VALUES(40,29);
INSERT INTO ELEMENT_LABEL VALUES(40,30);
INSERT INTO ELEMENT_LABEL VALUES(40,55);
INSERT INTO ELEMENT_LABEL VALUES(40,57);
INSERT INTO ELEMENT_LABEL VALUES(45,26);
INSERT INTO ELEMENT_LABEL VALUES(45,24);
INSERT INTO ELEMENT_LABEL VALUES(45,23);
INSERT INTO ELEMENT_LABEL VALUES(45,57);
INSERT INTO ELEMENT_LABEL VALUES(46,26);
INSERT INTO ELEMENT_LABEL VALUES(46,24);
INSERT INTO ELEMENT_LABEL VALUES(46,23);
INSERT INTO ELEMENT_LABEL VALUES(47,59);
INSERT INTO ELEMENT_LABEL VALUES(47,49);
INSERT INTO ELEMENT_LABEL VALUES(47,23);
INSERT INTO ELEMENT_LABEL VALUES(47,60);
INSERT INTO ELEMENT_LABEL VALUES(48,27);
INSERT INTO ELEMENT_LABEL VALUES(48,23);
INSERT INTO ELEMENT_LABEL VALUES(48,51);
INSERT INTO ELEMENT_LABEL VALUES(48,49);
INSERT INTO ELEMENT_LABEL VALUES(48,57);
INSERT INTO ELEMENT_LABEL VALUES(46,57);
INSERT INTO ELEMENT_LABEL VALUES(47,57);
INSERT INTO ELEMENT_LABEL VALUES(49,57);
INSERT INTO ELEMENT_LABEL VALUES(49,26);
INSERT INTO ELEMENT_LABEL VALUES(49,24);
INSERT INTO ELEMENT_LABEL VALUES(49,23);
INSERT INTO ELEMENT_LABEL VALUES(49,27);
INSERT INTO ELEMENT_LABEL VALUES(50,51);
INSERT INTO ELEMENT_LABEL VALUES(50,49);
INSERT INTO ELEMENT_LABEL VALUES(50,23);
INSERT INTO ELEMENT_LABEL VALUES(50,57);
INSERT INTO ELEMENT_LABEL VALUES(51,57);
INSERT INTO ELEMENT_LABEL VALUES(51,61);
INSERT INTO ELEMENT_LABEL VALUES(51,25);
INSERT INTO ELEMENT_LABEL VALUES(51,24);
INSERT INTO ELEMENT_LABEL VALUES(51,23);
INSERT INTO ELEMENT_LABEL VALUES(52,57);
INSERT INTO ELEMENT_LABEL VALUES(52,61);
INSERT INTO ELEMENT_LABEL VALUES(52,25);
INSERT INTO ELEMENT_LABEL VALUES(52,24);
INSERT INTO ELEMENT_LABEL VALUES(52,23);
INSERT INTO ELEMENT_LABEL VALUES(53,57);
INSERT INTO ELEMENT_LABEL VALUES(53,49);
INSERT INTO ELEMENT_LABEL VALUES(53,23);
INSERT INTO ELEMENT_LABEL VALUES(54,57);
INSERT INTO ELEMENT_LABEL VALUES(54,49);
INSERT INTO ELEMENT_LABEL VALUES(54,23);
INSERT INTO ELEMENT_LABEL VALUES(55,57);
INSERT INTO ELEMENT_LABEL VALUES(55,49);
INSERT INTO ELEMENT_LABEL VALUES(55,23);
INSERT INTO ELEMENT_LABEL VALUES(56,57);
INSERT INTO ELEMENT_LABEL VALUES(56,49);
INSERT INTO ELEMENT_LABEL VALUES(56,23);
INSERT INTO ELEMENT_LABEL VALUES(57,57);
INSERT INTO ELEMENT_LABEL VALUES(57,49);
INSERT INTO ELEMENT_LABEL VALUES(57,23);
INSERT INTO ELEMENT_LABEL VALUES(58,57);
INSERT INTO ELEMENT_LABEL VALUES(58,49);
INSERT INTO ELEMENT_LABEL VALUES(58,23);
INSERT INTO ELEMENT_LABEL VALUES(59,57);
INSERT INTO ELEMENT_LABEL VALUES(59,49);
INSERT INTO ELEMENT_LABEL VALUES(59,23);
INSERT INTO ELEMENT_LABEL VALUES(60,57);
INSERT INTO ELEMENT_LABEL VALUES(60,49);
INSERT INTO ELEMENT_LABEL VALUES(60,23);
INSERT INTO ELEMENT_LABEL VALUES(61,57);
INSERT INTO ELEMENT_LABEL VALUES(61,49);
INSERT INTO ELEMENT_LABEL VALUES(61,23);
INSERT INTO ELEMENT_LABEL VALUES(62,57);
INSERT INTO ELEMENT_LABEL VALUES(62,49);
INSERT INTO ELEMENT_LABEL VALUES(62,23);
INSERT INTO ELEMENT_LABEL VALUES(63,57);
INSERT INTO ELEMENT_LABEL VALUES(63,49);
INSERT INTO ELEMENT_LABEL VALUES(63,23);
INSERT INTO ELEMENT_LABEL VALUES(64,23);
INSERT INTO ELEMENT_LABEL VALUES(64,57);
INSERT INTO ELEMENT_LABEL VALUES(64,61);
INSERT INTO ELEMENT_LABEL VALUES(65,62);
INSERT INTO ELEMENT_LABEL VALUES(65,29);
INSERT INTO ELEMENT_LABEL VALUES(65,23);
INSERT INTO ELEMENT_LABEL VALUES(65,57);
INSERT INTO ELEMENT_LABEL VALUES(66,57);
INSERT INTO ELEMENT_LABEL VALUES(66,59);
INSERT INTO ELEMENT_LABEL VALUES(66,49);
INSERT INTO ELEMENT_LABEL VALUES(66,23);
INSERT INTO ELEMENT_LABEL VALUES(66,62);
INSERT INTO ELEMENT_LABEL VALUES(66,29);
INSERT INTO ELEMENT_LABEL VALUES(67,63);
INSERT INTO ELEMENT_LABEL VALUES(67,29);
INSERT INTO ELEMENT_LABEL VALUES(67,23);
INSERT INTO ELEMENT_LABEL VALUES(67,57);
INSERT INTO ELEMENT_LABEL VALUES(68,48);
INSERT INTO ELEMENT_LABEL VALUES(68,64);
INSERT INTO ELEMENT_LABEL VALUES(68,57);
INSERT INTO ELEMENT_LABEL VALUES(68,24);
INSERT INTO ELEMENT_LABEL VALUES(68,23);
INSERT INTO ELEMENT_LABEL VALUES(69,57);
INSERT INTO ELEMENT_LABEL VALUES(69,58);
INSERT INTO ELEMENT_LABEL VALUES(69,39);
INSERT INTO ELEMENT_LABEL VALUES(69,37);
INSERT INTO ELEMENT_LABEL VALUES(70,57);
INSERT INTO ELEMENT_LABEL VALUES(70,58);
INSERT INTO ELEMENT_LABEL VALUES(70,39);
INSERT INTO ELEMENT_LABEL VALUES(70,37);
INSERT INTO ELEMENT_LABEL VALUES(70,60);
INSERT INTO ELEMENT_LABEL VALUES(70,59);
INSERT INTO ELEMENT_LABEL VALUES(70,49);
INSERT INTO ELEMENT_LABEL VALUES(70,23);
INSERT INTO ELEMENT_LABEL VALUES(71,57);
INSERT INTO ELEMENT_LABEL VALUES(71,58);
INSERT INTO ELEMENT_LABEL VALUES(71,39);
INSERT INTO ELEMENT_LABEL VALUES(71,37);
INSERT INTO ELEMENT_LABEL VALUES(72,65);
INSERT INTO ELEMENT_LABEL VALUES(72,24);
INSERT INTO ELEMENT_LABEL VALUES(72,23);
INSERT INTO ELEMENT_LABEL VALUES(72,56);
INSERT INTO ELEMENT_LABEL VALUES(72,27);
INSERT INTO ELEMENT_LABEL VALUES(73,56);
INSERT INTO ELEMENT_LABEL VALUES(73,26);
INSERT INTO ELEMENT_LABEL VALUES(73,24);
INSERT INTO ELEMENT_LABEL VALUES(73,23);
INSERT INTO ELEMENT_LABEL VALUES(73,27);
COMMIT;
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
INSERT INTO ELEMENT VALUES(1,'renault, rouge, 2000');
INSERT INTO ELEMENT VALUES(2,'renault, bleu, 2000');
INSERT INTO ELEMENT VALUES(3,'renault, 2000');
INSERT INTO ELEMENT VALUES(4,'peugeot, 2000');
INSERT INTO LABEL VALUES(1,'annee',NULL);
INSERT INTO LABEL VALUES(2,'2000',1);
INSERT INTO LABEL VALUES(3,'2017',1);
INSERT INTO LABEL VALUES(4,'marque',NULL);
INSERT INTO LABEL VALUES(5,'renault',4);
INSERT INTO LABEL VALUES(6,'peugeot',4);
INSERT INTO LABEL VALUES(7,'couleur',NULL);
INSERT INTO LABEL VALUES(8,'rouge',7);
INSERT INTO LABEL VALUES(9,'bleu',7);
INSERT INTO ALIAS VALUES('millesime',1);
INSERT INTO ALIAS VALUES('le nouveau millenaire',2);
INSERT INTO ALIAS VALUES('y a pas longtemps',3);
INSERT INTO ELEMENT_LABEL VALUES(1,1);
INSERT INTO ELEMENT_LABEL VALUES(1,2);
INSERT INTO ELEMENT_LABEL VALUES(1,4);
INSERT INTO ELEMENT_LABEL VALUES(1,5);
INSERT INTO ELEMENT_LABEL VALUES(1,7);
INSERT INTO ELEMENT_LABEL VALUES(1,8);
INSERT INTO ELEMENT_LABEL VALUES(2,1);
INSERT INTO ELEMENT_LABEL VALUES(2,2);
INSERT INTO ELEMENT_LABEL VALUES(2,4);
INSERT INTO ELEMENT_LABEL VALUES(2,5);
INSERT INTO ELEMENT_LABEL VALUES(2,7);
INSERT INTO ELEMENT_LABEL VALUES(2,9);
INSERT INTO ELEMENT_LABEL VALUES(3,1);
INSERT INTO ELEMENT_LABEL VALUES(3,2);
INSERT INTO ELEMENT_LABEL VALUES(3,4);
INSERT INTO ELEMENT_LABEL VALUES(3,5);
INSERT INTO ELEMENT_LABEL VALUES(4,1);
INSERT INTO ELEMENT_LABEL VALUES(4,2);
INSERT INTO ELEMENT_LABEL VALUES(4,4);
INSERT INTO ELEMENT_LABEL VALUES(4,6);
COMMIT;
# Directory for the test database instanciation
This is the directory where we can create a database for the tests.
## Requirements
We use SQLite for the tests.
If one wants also to take profit of the utility scripts provided in the current directory, the command `/usr/bin/env bash` (used as a shebang in the scripts) must return a valid bash shell.
## Scripts
The script `init_db.sh` requires a python3 environment where the wheel from the `../../dist` directory has been already installed with `pip3`.
If the wheel is not already installed, rather use `pip_init_db.sh`. This is typically useful if you create your database with a docker command.
#!/usr/bin/env bash
# This ensures that we are in this script directory,
# even if we call it from another one.
SCRIPT_NAME=${BASH_SOURCE[0]}
cd `dirname ${SCRIPT_NAME}`
export LABELSTOWER_ENV="demo.config.Config${LT_CFG}"
echo LABELSTOWER_ENV "demo.config.Config${LT_CFG}"
rm -f ${LT_CFG}.sqlite
cd .. # so to see demo_blog
python3 -c 'from demo.models import db; from demo import create_app; db.create_all(app=create_app());'
cd instance
sqlite3 ${LT_CFG}.sqlite ".read Data${LT_CFG}.sql"
#!/usr/bin/env bash
# This ensures that we are in this script directory,
# even if we call it from another one.
SCRIPT_NAME=${BASH_SOURCE[0]}
cd `dirname ${SCRIPT_NAME}`
cd ../..
dist/install.sh
test/instance/init_voiture_db.sh # mais où se trouve ou qui génère ce script ?
\ No newline at end of file
#!/usr/bin/env python3
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///../instance/Voiture.sqlite'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
import labelstower
labelstower.bp.db = SQLAlchemy(app)
import sys, doctest
(failure_count, test_count) = doctest.testmod(labelstower.getter,verbose=True)
sys.exit(failure_count)
#!/usr/bin/env bash
# This ensures that we are in this script directory,
# even if we call it from another one.
SCRIPT_NAME=${BASH_SOURCE[0]}
cd `dirname ${SCRIPT_NAME}`
PWD=`pwd`
UP1=`dirname ${PWD}`
export PYTHONPATH=`dirname ${UP1}`
./run_doctest.py