Commit 9eb23466 by Иван Кубота

Merge branch 'master' into m2

parents 65638767 09075ed1
......@@ -16,10 +16,16 @@ const options = yargs
.option("n", { alias: "nolog", describe: "no text log in object", type: "boolean"})
.option("d", { alias: "dir", describe: "database dir", type: "string"})
.option("f", { alias: "fake", describe: "add fake images", type: "boolean"})
.option("c", { alias: "category", describe: "1 - product, 2 - standard", type: "string"})
.option("i", { alias: "id", describe: "return question with id. use it with `seed` arg", type: "number"})
.argv;
let categoryFixed = false;
if(options.c)
categoryFixed = true;
options.c = options.category = (parseInt(options.c)|0) || 1;
const greeting = `Hello, ${options.name}!`;
......@@ -53,42 +59,89 @@ const sources = [
"js/controller/quizBits/radioPhoto.js"
];
const rand = function(a, b){
if(Array.isArray(a)){
return a[Math.random.seeded()*a.length|0];
}
if(typeof a === 'object' && 'max' in a){
b = a.max;
a = a.min || 0;
}
a = Math.ceil(a);
b = Math.floor(b);
return Math.floor(Math.random.seeded() * (b - a + 1)) + a;
return (r-a)*(b-a)|0;
};
var js = sources.map(a=>'./public/'+a).map(n=>fs.readFileSync(n)+'').join('\n\n');
if(options.dir)
process.env.KUS_DATA_DIR = options.dir;
const data = require("../db.js");
const body = 'const window = {};'+js+'; return {quizGenerator, initDataProvider, seeded: Math.random.seeded}';
const body = 'const window = {};'+js+'; return {quizGenerator, standardGenerator, initDataProvider, seeded: Math.random.seeded, rand}';
var ctx = new Function('',body)();
const rand = ctx.rand,
seeded = ctx.seeded;
//console.log(options);
data.after = function(){
if( options.seed )
ctx.seeded.setStringSeed( options.seed );
let countStdQ = Object.values(data.standardQuestions).length;
let state = {id: rand(0,countStdQ-1)};
if(options.random){
if(options.i){
const quiz = [];
let last = {}, cur, used = {};
for( let i = 0; i < 100; i++ ){
cur = {
m: seeded() > 24 / ( 46 + 24 ),
p: seeded() > 0.7,
c: 1
};
if( last.c === 1 && seeded() > 0.5 ){
cur = {
c: 2
};
let id;
do{
id = rand(0,countStdQ-1);
}while(id in used);
used[id] = true;
cur.id = id;
}
quiz.push(cur);
last = cur;
}
if( options.seed )
ctx.seeded.setStringSeed( options.i+options.seed );
state = quiz[options.i];
options.c = options.category = quiz[options.i].c;
if(options.c === 1){
options.m = options.multiple = quiz[ options.i ].m;
options.p = options.photo = quiz[ options.i ].p;
}
}else{
options.m = options.multiple = seeded() > 24 / ( 46 + 24 );
options.p = options.photo = seeded() > 0.7;
options.c = options.category =seeded() > 0.6 ? 2 : 1;
}
}
if( options.fake ){
for(var i = 0; i < 10; i++){
rand(Object.values(data.products)).image = 'https://robohash.org/'+Math.random().toString(36)
rand(Object.values(data.products)).image = 'https://robohash.org/'+seeded.toString(36)
}
}
ctx.initDataProvider( data );
if( options.seed )
ctx.seeded.setStringSeed( options.seed );
const result = ctx.quizGenerator( options.multiple ? 'checkbox' : 'radio', options.photo );
let result;
if(options.category === 1){
result = ctx.quizGenerator( options.multiple ? 'checkbox' : 'radio', options.photo );
}else{
result = ctx.standardGenerator(()=>state.id)
}
if( options.verbose ){
console.log( result.log.join( '\n' ) )
......
[
{
"id": 1,
"image": "https://vkusvill.ru/upload/resize/161031/161031_530x300x85_c.jpg"
},
{
"id": 2,
"image": "https://vkusvill.ru/upload/resize/93710/93710_530x300x85_c.jpg"
},
{
"id": 3,
"image": "https://vkusvill.ru/upload/resize/93352/93352_530x300x85_c.jpg"
},
{
"id": 4,
"image": "https://vkusvill.ru/upload/resize/95146/95146_530x300x85_c.jpg"
},
{
"id": 5,
"image": "https://vkusvill.ru/upload/resize/96634/96634_530x300x85_c.jpg"
},
{
"id": 7,
"image": "https://vkusvill.ru/upload/resize/113263/113263_530x300x85_c.jpg"
},
{
"id": 8,
"image": "https://vkusvill.ru/upload/resize/95818/95818_530x300x85_c.jpg"
},
{
"id": 9,
"image": "https://vkusvill.ru/upload/resize/93853/93853_530x300x85_c.jpg"
},
{
"id": 10,
"image": "https://vkusvill.ru/upload/resize/94377/94377_530x300x85_c.jpg"
},
{
"id": 12,
"image": "https://vkusvill.ru/upload/resize/94017/94017_530x300x85_c.jpg"
},
{
"id": 13,
"image": "https://vkusvill.ru/upload/resize/157871/157871_530x300x85_c.jpg"
},
{
"id": 14,
"image": "https://vkusvill.ru/upload/resize/162506/162506_530x300x85_c.jpg"
},
{
"id": 15,
"image": "https://vkusvill.ru/upload/resize/154668/154668_530x300x85_c.jpg"
},
{
"id": 16,
"image": "https://vkusvill.ru/upload/resize/161019/161019_530x300x85_c.jpg"
},
{
"id": 17,
"image": "https://vkusvill.ru/upload/resize/113263/113263_530x300x85_c.jpg"
},
{
"id": 18,
"image": "https://vkusvill.ru/upload/resize/96735/96735_530x300x85_c.jpg"
},
{
"id": 19,
"image": "https://vkusvill.ru/upload/resize/94387/94387_530x300x85_c.jpg"
},
{
"id": 20,
"image": "https://vkusvill.ru/upload/resize/157888/157888_530x300x85_c.jpg"
},
{
"id": 21,
"image": "https://vkusvill.ru/upload/resize/96601/96601_530x300x85_c.jpg"
},
{
"id": 22,
"image": "https://vkusvill.ru/upload/resize/93260/93260_530x300x85_c.jpg"
},
{
"id": 23,
"image": "https://vkusvill.ru/upload/resize/95442/95442_530x300x85_c.jpg"
},
{
"id": 24,
"image": "https://vkusvill.ru/upload/resize/93248/93248_530x300x85_c.jpg"
},
{
"id": 25,
"image": "https://vkusvill.ru/upload/resize/158195/158195_530x300x85_c.jpg"
},
{
"id": 26,
"image": "https://vkusvill.ru/upload/resize/96005/96005_530x300x85_c.jpg"
},
{
"id": 27,
"image": "https://vkusvill.ru/upload/resize/95103/95103_530x300x85_c.jpg"
},
{
"id": 28,
"image": "https://vkusvill.ru/upload/resize/95101/95101_530x300x85_c.jpg"
},
{
"id": 29,
"image": "https://vkusvill.ru/upload/resize/95099/95099_530x300x85_c.jpg"
},
{
"id": 30,
"image": "https://vkusvill.ru/upload/resize/157890/157890_530x300x85_c.jpg"
},
{
"id": 31,
"image": "https://vkusvill.ru/upload/resize/94937/94937_530x300x85_c.jpg"
},
{
"id": 32,
"image": "https://vkusvill.ru/upload/resize/93938/93938_530x300x85_c.jpg"
},
{
"id": 33,
"image": "https://vkusvill.ru/upload/resize/93844/93844_530x300x85_c.jpg"
},
{
"id": 34,
"image": "https://vkusvill.ru/upload/resize/95596/95596_530x300x85_c.jpg"
},
{
"id": 36,
"image": "https://vkusvill.ru/upload/resize/95618/95618_530x300x85_c.jpg"
},
{
"id": 37,
"image": "https://vkusvill.ru/upload/resize/93625/93625_530x300x85_c.jpg"
},
{
"id": 38,
"image": "https://vkusvill.ru/upload/resize/95620/95620_530x300x85_c.jpg"
},
{
"id": 39,
"image": "https://vkusvill.ru/upload/resize/93749/93749_530x300x85_c.jpg"
},
{
"id": 40,
"image": "https://vkusvill.ru/upload/resize/157311/157311_530x300x85_c.jpg"
},
{
"id": 41,
"image": "https://vkusvill.ru/upload/resize/153082/153082_530x300x85_c.jpg"
},
{
"id": 42,
"image": "https://vkusvill.ru/upload/resize/99730/99730_530x300x85_c.jpg"
},
{
"id": 43,
"image": "https://vkusvill.ru/upload/resize/96081/96081_530x300x85_c.jpg"
},
{
"id": 44,
"image": "https://vkusvill.ru/upload/resize/95513/95513_530x300x85_c.jpg"
},
{
"id": 45,
"image": "https://vkusvill.ru/upload/resize/162524/162524_530x300x85_c.jpg"
},
{
"id": 46,
"image": "https://vkusvill.ru/upload/resize/94357/94357_530x300x85_c.jpg"
},
{
"id": 47,
"image": "https://vkusvill.ru/upload/resize/96042/96042_530x300x85_c.jpg"
},
{
"id": 48,
"image": "https://vkusvill.ru/upload/resize/96046/96046_530x300x85_c.jpg"
},
{
"id": 49,
"image": "https://vkusvill.ru/upload/resize/96040/96040_530x300x85_c.jpg"
},
{
"id": 50,
"image": "https://vkusvill.ru/upload/resize/157295/157295_530x300x85_c.jpg"
},
{
"id": 51,
"image": "https://vkusvill.ru/upload/resize/93247/93247_530x300x85_c.jpg"
},
{
"id": 52,
"image": "https://vkusvill.ru/upload/resize/93481/93481_530x300x85_c.jpg"
},
{
"id": 53,
"image": "https://vkusvill.ru/upload/resize/95610/95610_530x300x85_c.jpg"
},
{
"id": 54,
"image": "https://vkusvill.ru/upload/resize/162486/162486_530x300x85_c.jpg"
},
{
"id": 55,
"image": "https://vkusvill.ru/upload/resize/162528/162528_530x300x85_c.jpg"
},
{
"id": 56,
"image": "https://vkusvill.ru/upload/resize/94876/94876_530x300x85_c.jpg"
},
{
"id": 57,
"image": "https://vkusvill.ru/upload/resize/96643/96643_530x300x85_c.jpg"
},
{
"id": 58,
"image": "https://vkusvill.ru/upload/resize/94257/94257_530x300x85_c.jpg"
},
{
"id": 59,
"image": "https://vkusvill.ru/upload/resize/161126/161126_530x300x85_c.jpg"
},
{
"id": 60,
"image": "https://vkusvill.ru/upload/resize/151246/151246_530x300x85_c.jpg"
},
{
"id": 61,
"image": "https://vkusvill.ru/upload/resize/93373/93373_530x300x85_c.jpg"
},
{
"id": 62,
"image": "https://vkusvill.ru/upload/resize/36233/36233_530x300x85_c.jpg"
},
{
"id": 63,
"image": "https://vkusvill.ru/upload/resize/94623/94623_530x300x85_c.jpg"
},
{
"id": 64,
"image": "https://vkusvill.ru/upload/resize/93376/93376_530x300x85_c.jpg"
},
{
"id": 65,
"image": "https://vkusvill.ru/upload/resize/94097/94097_530x300x85_c.jpg"
},
{
"id": 66,
"image": "https://vkusvill.ru/upload/resize/94756/94756_530x300x85_c.jpg"
},
{
"id": 67,
"image": "https://vkusvill.ru/upload/resize/93810/93810_530x300x85_c.jpg"
},
{
"id": 68,
"image": "https://vkusvill.ru/upload/resize/141107/141107_530x300x85_c.jpg"
},
{
"id": 69,
"image": "https://vkusvill.ru/upload/resize/155586/155586_530x300x85_c.jpg"
},
{
"id": 70,
"image": "https://vkusvill.ru/upload/resize/94249/94249_530x300x85_c.jpg"
},
{
"id": 71,
"image": "https://vkusvill.ru/upload/resize/95069/95069_530x300x85_c.jpg"
},
{
"id": 72,
"image": "https://vkusvill.ru/upload/resize/157319/157319_530x300x85_c.jpg"
},
{
"id": 73,
"image": "https://vkusvill.ru/upload/resize/96449/96449_530x300x85_c.jpg"
},
{
"id": 74,
"image": "https://vkusvill.ru/upload/resize/157301/157301_530x300x85_c.jpg"
},
{
"id": 75,
"image": "https://vkusvill.ru/upload/resize/36472/36472_530x300x85_c.jpg"
},
{
"id": 76,
"image": "https://vkusvill.ru/upload/resize/95379/95379_530x300x85_c.jpg"
},
{
"id": 77,
"image": "https://vkusvill.ru/upload/resize/93384/93384_530x300x85_c.jpg"
},
{
"id": 78,
"image": "https://vkusvill.ru/upload/resize/154670/154670_530x300x85_c.jpg"
},
{
"id": 79,
"image": "https://vkusvill.ru/upload/resize/151259/151259_530x300x85_c.jpg"
},
{
"id": 80,
"image": "https://vkusvill.ru/upload/resize/161017/161017_530x300x85_c.jpg"
},
{
"id": 81,
"image": "https://vkusvill.ru/upload/resize/157291/157291_530x300x85_c.jpg"
},
{
"id": 82,
"image": "https://vkusvill.ru/upload/resize/93193/93193_530x300x85_c.jpg"
},
{
"id": 83,
"image": "https://vkusvill.ru/upload/resize/94935/94935_530x300x85_c.jpg"
},
{
"id": 84,
"image": "https://vkusvill.ru/upload/resize/96307/96307_530x300x85_c.jpg"
},
{
"id": 85,
"image": "https://vkusvill.ru/upload/resize/149089/149089_530x300x85_c.jpg"
},
{
"id": 86,
"image": "https://vkusvill.ru/upload/resize/96318/96318_530x300x85_c.jpg"
},
{
"id": 87,
"image": "https://vkusvill.ru/upload/resize/95216/95216_530x300x85_c.jpg"
},
{
"id": 88,
"image": "https://vkusvill.ru/upload/resize/93367/93367_530x300x85_c.jpg"
},
{
"id": 89,
"image": "https://vkusvill.ru/upload/resize/95948/95948_530x300x85_c.jpg"
},
{
"id": 90,
"image": "https://vkusvill.ru/upload/resize/162484/162484_530x300x85_c.jpg"
},
{
"id": 91,
"image": "https://vkusvill.ru/upload/resize/154664/154664_530x300x85_c.jpg"
},
{
"id": 92,
"image": "https://vkusvill.ru/upload/resize/93323/93323_530x300x85_c.jpg"
},
{
"id": 93,
"image": "https://vkusvill.ru/upload/resize/96491/96491_530x300x85_c.jpg"
},
{
"id": 94,
"image": "https://vkusvill.ru/upload/resize/96247/96247_530x300x85_c.jpg"
},
{
"id": 95,
"image": "https://vkusvill.ru/upload/resize/157293/157293_530x300x85_c.jpg"
},
{
"id": 96,
"image": "https://vkusvill.ru/upload/resize/156148/156148_530x300x85_c.jpg"
},
{
"id": 97,
"image": "https://vkusvill.ru/upload/resize/96593/96593_530x300x85_c.jpg"
},
{
"id": 98,
"image": "https://vkusvill.ru/upload/resize/96391/96391_530x300x85_c.jpg"
},
{
"id": 99,
"image": "https://vkusvill.ru/upload/resize/94957/94957_530x300x85_c.jpg"
},
{
"id": 100,
"image": "https://vkusvill.ru/upload/resize/157898/157898_530x300x85_c.jpg"
},
{
"id": 101,
"image": "https://vkusvill.ru/upload/resize/143429/143429_530x300x85_c.jpg"
},
{
"id": 102,
"image": "https://vkusvill.ru/upload/resize/95864/95864_530x300x85_c.jpg"
},
{
"id": 103,
"image": "https://vkusvill.ru/upload/resize/94555/94555_530x300x85_c.jpg"
},
{
"id": 104,
"image": "https://vkusvill.ru/upload/resize/95751/95751_530x300x85_c.jpg"
}
]
\ No newline at end of file
id,question_id,text,correct,,
1,1,Наша молочная продукция с короткими сроками реализации.,0,,1
,1,"Чтобы молоко хорошо хранилось, мы используем сухое молоко",1,,0
,1,"Мы не используем растительные жиры, загустители и добавки",0,,
,1,Все наше молоко проходит тщательный процесс стерилизации,1,,
,2,"Конечно, ведь наши производители используют только натуральное отборное сырье . Молоко не стерилизуют, а только лишь пастеризуют,убивая вредные бактерии, но сохраняя полезные. У детской продукции короткие сроки хранения, всего 5-7 суток.",1,,
,2,"Конечно, ведь наши производители используют только натуральное отборное сырье . Молоко не пастеризуют, а только лишь стерилизуют,убивая вредные бактерии, но сохраняя полезные. У детской продукции короткие сроки хранения, всего 5-7 суток.",0,,
,2,"Конечно, ведь наши производители используют только натуральное отборное сырье . Молоко не стерилизуют, а только лишь пастеризуют,убивая вредные бактерии, но сохраняя полезные. У детской продукции короткие сроки хранения, всего 2-3 суток.",0,,
,2,"Конечно, ведь наши производители используют только отборное непастеризованное молоко. У детской продукции короткие сроки хранения, всего 5-7 суток. И нежный приятный деткам вкус.",0,,
,3,"Козье молоко легче усваивается, чем коровье, не вызывает аллергии. Продукты из козьего молока рекомендуются людям с лактозной недостаточностью.",1,,
,3,"Козье молоко подходит людям, которым надоело коровье молоко и они хотят попробовать что -то новенькое.",0,,
,3,"Козье молоко легче усваивается, чем коровье, не вызывает аллергии. Продукты из козьего молока рекомендуются людям с лактозной недостаточностью. Но абсолютно не подходит маленьким детям, поскольку в нем отсутствуют казеины, необходимые растущему организму.",0,,
,4,"Не применяют при выращивании скота гормоны роста, а применение антибиотиков не превышает допустимые требования по безопасности. Мясо регулярно проходит проверку на инъецирование, наличие гормонов и антибиотиков.",1,,
,4,"Не применяют при выращивании скота гормоны роста, а применение антибиотиков вообще не допустимо. Мясо регулярно проходит проверку на инъецирование, наличие гормонов и антибиотиков.",0,,
,4,"Отдают предпочтение мясным, а не мясомолочным, породам коров, когда речь идет о говядине. И свиньям только определенных пород, если речь идет о свинине.",0,,
,5,"Содержание глазури на нашей замороженной рыбе не превышает 2%, мы не увеличиваем вес продукта, за счет льда.",0,,
,5,"Содержание глазури на нашей замороженной рыбе не превышает 5%, мы не увеличиваем вес продукта, за счет льда.",1,,
,5,"Рыбу взвешивают в охлажденном виде, а лишь потом замораживают, таким образом покупатели не переплачивают за ""лед""",0,,
,6,Изготовлены из высококачественной дикой рыбы.,0,,
,6,"Изготовлены из высококачественного сырья, в основном из дикой рыбы, исключение составляет форель и семга. В Пресервах используются только натуральные специи и никаких искусственных консервантов.",1,,
,6,Изготовлены из высококачественной дикой рыбы. В Пресервах используются только натуральные специи и никаких искусственных консервантов.,0,,
,7,"Высококачественный продукт, прошедший все необходимые проверки и цельные кусочки рыбы.",1,,
,7,Хороший качественный продукт приятного цвета и запаха,0,,
,7,Рыбу готовую к употреблению,0,,
,8,В магазинах Вкусвилл реализуются овощи и фрукты лишь Российского происхождения.,0,,
,8,"В магазинах Вкусвилл продаются овощи и фрукты которые произрастают на территории России и стран СНГ. Импортные овощи и фрукты появляются в наших магазинах только, когда речь идет об экзотических плодах или когда в нашей стране и странах СНГ заканчивается сезон.",1,,
,8,"В магазинах Вкусвилл продаются овощи и фрукты которые произрастают на территории России и стран СНГ. Импортные овощи и фрукты появляются в наших магазинах только, когда речь идет об экзотических плодах.",0,,
,9,Бездрожжевые хлеба без улучшителей вкуса,0,,
,9,Хлеба выпекаемые на дрожжах,0,,
,9,Хлеба богатые клетчаткой из цельнозерновой муки,0,,
,9,Хлебцы приготовленные с использованием нерафинированного масла полученного путем первого холодного отжима семян подсолнечника,1,,
,10,Маргарина и кокосового масла,0,,
,10,Сливочного и пальмового масла,0,,
,10,Подсолнечного и кокосового масла,0,,
,10,Маргарина и пальмового масла,1,,
,11,Очищенная родниковая природная вода с сохраненным минеральным балансом.,1,,
,11,"Чистая вода, прошедшая фильтрацию",0,,
,11,Обладает омолаживающим эффектом,0,,
,12,"Мы не продаем восстановленные соки, все соки прямого отжима. В составе только фрукты.",1,,
,12,"Мы продаем качественные восстановленные соки, в составе которых только фрукты.",0,,
,12,"У наших соков предельно простой состав: вода и фруктовое пюре без ароматизаторов, красителей и консервантов.",0,,
,13,Производители наших морсов используют отечественные ягоды для производства морсов.,1,,
,13,"Производители наших морсов используют натуральные пюре без ароматизаторов, красителей и консервантов.",0,,
,13,Производители наших морсов используют отечественные ягоды для производства морсов и иностранные в не сезон.,0,,
,14,Сидр,0,,
,14,Вино,1,,
,14,Пиво,0,,
,14,Медовуха,0,,
,15,"Легкие блюда, предназначенные для полезного перекуса, приготовленные из ягод, фруктов, орехов, шоколада без термообработки и добавления сахара.",1,,
,15,"Легкие блюда, предназначенные для полезного перекуса :сушеные ягоды, фрукты, овощи обжаренные без добавления масла",0,,
,15,Миксы из сушеных ягод и фруктов,0,,
,16,Из твердых сортов пшеницы,1,,
,16,Из мягких сортов пшеницы,0,,
,16,Из смешанных сортов пшеницы,0,,
,16,Из всех вышеперечисленных сортов пшеницы,0,,
,17,"Мясные полуфабрикаты делаются из качественного охлажденного сырья, без добавления сои, разрыхлителей, усилителей вкуса. Для придания пикантности используются только натуральные специи и маринады.",1,,
,17,Мясные полуфабрикаты делаются из качественного охлажденного или замороженного сырья. Для придания пикантности используются только натуральные специи и маринады.,0,,
,17,"Мясные полуфабрикаты делаются из качественного замороженного сырья по старинным русским рецептам, что помогает добиться ""домашнего вкуса""",0,,
,18,Так как наши производители одни из не многих не добавляют в колбасу нитрата натрия.,1,,
,18,Все дело в особой технологии приготовления,0,,
,18,"Наши колбасы сделаны из отборного охлажденного мяса без консервантов, заменителей и стабилизаторов.",0,,
,19,Булгур,1,,
,19,Чечевица,1,,
,19,Киноа,1,,
,19,Кускус,1,,
,20,в России,1,,
,20,в России и странах СНГ,0,,
,20,в Индии,0,,
,21,Курага,0,,
,21,Цукаты,1,,
,21,Хлопья ячменные,0,,
,21,Хлопья гречневые,0,,
,22,температура,1,,
,22,относительная влажность,1,,
,22,световой режим,1,,
,22,срок годности,0,,
,23,прибор предназначен для измерения относительной влажности и температуры воздуха внутри помещений,1,,
,23,прибор предназначен для поддержания необходимой относительной влажности и температуры воздуха внутри помещений,0,,
,23,"прибор предназначен для измерения температуры, относительной влажности воздуха, освещенности внутри помещений",0,,
,24,Полностью соответствовать предъявляемым к ней требованиям безопасности,1,,
,24,Сохранять свои потребительские свойства,1,,
,24,Быть пригодна для использования по назначению,1,,
,25,От нуля часов указанной даты,1,,
,25,От часа утра указанной даты,0,,
,25,От 23.00 указанной даты,0,,
,26,От даты производства,1,,
,26,От даты фасовки/розлива/упаковки.,0,,
,27,Не помыла руки перед началом работы,0,,
,27,Не подобрала волосы под шапочку,0,,
,27,Пришла на работу с признаками кишечной дисфункции,0,,
,27,Пообедала в неположенном месте,0,,
,27,Пришла в ярких ювелирных украшениях,0,,
,27,"Лена все сделала правильно, ни каких санитарных норм не нарушила",1,,
,28,2009,1,,
,28,2012,0,,
,28,2008,0,,
,28,2000,0,,
,29,2009,0,,
,29,2012,1,,
,29,2008,0,,
,29,2000,0,,
,30,Андрей Кривенко,1,,
,30,Артем Кривенко,0,,
,30,Евгений Щепин,0,,
,30,Валерий Разгуляев,0,,
,31,Сайт www.vkusvill.ru,1,,
,31,"Социальные сети (группы Избёнка ""ВКонтакте"", ""Facebook"", ""Одноклассниках""),",1,,
,31,Горячая линия,1,,
,31,почта info@izbenka.msk.ru,1,,
,31,"Бот ""ВкусВилл"" в Telegram",1,,
,31,"Письмо г. Москва, ул Щепкина, д 42, стр. 2А.",0,,
,32,Дарится бесплатно,1,,
,32,Дает возможность покупать товары по спец. ценникам желтого цвета.,1,,
,32,Дает возможность назначать Любимый продукт,1,,
,32,Дает возможность покупать товары по спец. ценникам оранжевого цвета.,0,,
,32,"Дает дополнительные преимущества, подключившись к боту и мобильному приложению",1,,
,32,Дает возможность накапливать бонусы на карту за любые продукты,0,,
,33,Подарить бесплатно и рассказать о ее преимуществах,1,,
,33,"Подарить карту, если клиент пробивает чек на любую сумму",0,,
,33,"Подарить карту, если клиент приобрел продуктов более чем на 500рублей",0,,
,33,Подарить бесплатно,0,,
,33,Предложить преобрести карту и рассказать о ее преимуществах,0,,
,33,Положить карту клиенту в пакет с покупками,0,,
,34,Количество бонусов от 30 рублей,1,,
,34,Любимый продукт (если есть),1,,
,34,"Адрес магазина, где находится клиент",0,,
,34,Имя владельца карты,1,,
,35,Сумма покупки,1,,
,35,Сумма полученных денег от покупателя,1,,
,35,Сумма сдачи,1,,
,35,В какой валюте принята оплата,0,,
,36,"Положить чек в пакет, а сдачу на монетницу",0,,
,36,Отдать чек и сдачу в руки,0,,
,36,"Положить сдачу на монетницу,а сверху чек",1,,
,37,Ноль на весах,0,,
,37,"Один раз ""минус 20 гр"" после того, как положили товар на весы",0,,
,37,"2 раза ""минус 20 грамм"", после того, как положили товар на весы",1,,
,37,Подбор товара,0,,
,38,Ноль на весах,0,,
,38,"Один раз ""минус 20 гр"" после того, как положили товар на весы",1,,
,38,"2 раза ""минус 20 грамм"", после того, как положили товар на весы",0,,
,38,Подбор товара,0,,
,39,Ноль на весах,1,,
,39,"Один раз ""минус 20 гр""",0,,
,39,"2 раза ""минус 20 грамм""",0,,
,39,Подбор товара,0,,
,40,Нужно обязательно позвать старшего продавца.,1,,
,40,"Самостоятельно, нажав нужную клавишу",0,,
,40,"Попросить помочь коллегу, который умеет это делать",0,,
,40,"Нужно позвать Галю, у нее ключ",0,,
,41,Позвать старшего продавца,1,,
,41,Забрать товар и отдать деньги клиенту из кассы,0,,
,41,Мы делаем возвраты только при наличии чека,0,,
,42,Совершить покупку свыше 500 руб за два дня подряд,1,,
,42,Совершить покупку свыше 500 рублей за один день,1,,
,43,Ежедневно без ограничений в течение 6 дней (сегодня на завтра),1,,
,43,Любимый продукт менять нельзя,0,,
,44,В день назначения,0,,
,44,"После назначения, на следующий день",1,,
,44,При повторной покупке свыше 500 рублей,0,,
,45,Неограниченное количество.,1,,
,45,Не более 5 штук,0,,
,45,Один,0,,
,46,"Выбираем товар в чеке, на который покупатель хочет сделать скидку на сегодня, заходим в """"Прочие операции"" и выбираем ""Любимый продукт на сегодня""",1,,
,46,"Сообщить покупателю, что мы не обещаем делать делать скидку сегодня на сегодня.",0,,
,47,Позвать старшего продавца. С его разрешения можно заменить ЛП на один день,1,,
,47,"Заменить любимый продукт самостоятельно ,нажав повторно на ""Прочие операции"" и выбрать ""ЛП на сегодня"", далее ""Вернуться в окно регистрации",0,,
,47,"Если есть на остатках, но клиент не нашел его в зале, заменить ЛП на один день не возможно",0,,
,48,"Если ЛП стоит товар, которого на данный момент уже нет на остатках во всех магазинах ВкусВилл.",1,,
,48,Если товар выведен и его уже нет в конкретном магазине,1,,
,48,Если товар отсутствует в магазине более 14 дней.,1,,
,49,Паспорт РФ,1,,
,49,Загранпаспорт,1,,
,49,Временное удостоверение личности гражданина РФ,1,,
,49,Удостоверение личности моряка,1,,
,49,Водительские права,1,,
,49,Служебный паспорт,1,,
,49,Дипломатический паспорт,1,,
,49,Военный билет,1,,
,49,Вид на жительство,1,,
,49,Разрешение на временное проживание лица без гражданства РФ,1,,
,49,Удостоверение беженца и свидетельство о предоставление временного убежища на территории РФ,1,,
,49,Студенческий билет,0,,
,49,Пропуск на работу,0,,
,49,Свидетельство о браке,0,,
,50,"За реализацию спиртного несовершеннолетним - продавцам, кассирам и лицам, отпускающим товар, может грозить административная ответственность.",1,,
,50,Так положено по стандартам компании,0,,
,50,"В соответствии с Федеральным законом - продажа алкогольной продукции, разрешена, только при предъявлении удостоверении личности.",0,,
,51,да,0,,
,51,нет,1,,
,52,Предложить пакет,1,,
,52,Поприветствовать,1,,
,52,Предложить новинку,0,,
,53,"Товар оформляется старшим продавцом и отдается курьеру, который специально за ним приезжает!Если не приезжает в течение 3х дней -выбрасываем",1,,
,53,Товар оформляется и фотографируется старшим продавцом. Вся информация отправляется технологам. В магазине товар утилизируется.,0,,
,54,Сниженная цена по карте магазина,1,,
,54,"Сниженная цена при покупки от 2-х или 3-х одинаковых наименований , наличие карты не имеет значения",0,,
,54,Скидка 40 % на товар с подходящим сроком реализации,0,,
,54,Новинка,0,,
,55,Сниженная цена по карте магазина,0,,
,55,"Сниженная цена при покупки от 2-х или 3-х одинаковых наименований , наличие карты не имеет значения",1,,
,55,Скидка 40 % на товар с подходящим сроком реализации,0,,
,55,Новинка,0,,
,56,Сниженная цена по карте магазина,0,,
,56,"Сниженная цена при покупки от 2-х или 3-х одинаковых наименований , наличие карты не имеет значения",0,,
,56,Скидка 40 % на товар с подходящим сроком реализации,1,,
,56,Новинка,0,,
,57,Сниженная цена по карте магазина,0,,
,57,"Сниженная цена при покупки от 2-х или 3-х одинаковых наименований , наличие карты не имеет значения",0,,
,57,Скидка 40 % на товар с подходящим сроком реализации,0,,
,57,Новинка,1,,
,58,"честность, доверие, ответственность, хорошие взаимоотношения и взаимопомощь",1,,
,58,"доверие, партнерство, развитие",0,,
,58,"трудолюбие, открытость, взаимопомощь",0,,
,59,"Зарплату нам платит не начальник, а довольные покупатели!",1,,
,59,Довольный клиент- довольный сотрудник.,0,,
,59,Здоровое питание -во все семьи,0,,
,60,Отсутствие просроченных продуктов на кассе.,1,,
,60,"Делать скидку 40% на товар с самым старым сроком годности, если в магазине оказывается три разных срока годности данного товара.",1,,
,60,"Никогда не проявлять грубость, непрофессионализм, чёрствость.",1,,
,60,Не обсуждать клиентов в торговом зале.,1,,
,60,"Из двух задач, выбирать ту, которая важнее для покупателей, находящихся в магазине",1,,
,60,Пускать в магазин с животными и создавать места для привязи рядом с магазином,0,,
,60,Продавать алкоголь без предъявления документа.,0,,
,60,"Подсказывать покупателю, что он может получить скидку по любимому продукту, поменяв на другой - из-за отсутствия текущего ЛП на остатках магазина",0,,
,60,Поставлять в магазин товар определённого производителя,0,,
,61,Пускать в магазин с животными и создавать места для привязи рядом с магазином,1,,
,61,Продавать алкоголь без предъявления документа.,1,,
,61,Поставлять в магазин товар определённого производителя,1,,
,62,Заказ собран к открытию магазина,1,,
,62,Самые свежие сроки,1,,
,62,Обратная связь с покупателем,1,,
,62,Заказ собран к закрытию магазина,0,,
,62,Заказ собран и слава Богу,0,,
,62,"Если нет того, что указано в заказе, собираем аналоги",0,,
,63,Температура,1,,
,63,Относительная влажность,1,,
,63,Световой режим,1,,
,63,Срок годности,0,,
,64,Прибор предназначен для измерения относительной влажности и температуры воздуха внутри помещений,1,,
,64,Прибор предназначен для поддержания необходимой относительной влажности и температуры воздуха внутри помещений,0,,
,64,"Прибор предназначен для измерения температуры, относительной влажности воздуха, освещенности внутри помещений",0,,
,65,Полностью соответствовать предъявляемым к ней требованиям безопасности,1,,
,65,Сохранять свои потребительские свойства,1,,
,65,Быть пригодна для использования по назначению,1,,
,66,От нуля часов указанной даты,1,,
,66,От часа утра указанной даты,0,,
,66,От 23.00 указанной даты,0,,
,67,От даты производства,1,,
,67,От даты фасовки/розлива/упаковки.,0,,
,68,Не помыла руки перед началом работы,0,,
,68,Не подобрала волосы под шапочку,0,,
,68,Пришла на работу с признаками кишечной дисфункции,0,,
,68,Пообедала в неположенном месте,0,,
,68,Пришла в ярких ювелирных украшениях ,0,,
,68,"Лена все сделала правильно, ни каких санитарных норм не нарушила",1,,
\ No newline at end of file
id,card_info_id,text,image,type
1,1,"Выберите утверждение , которое НЕ относится к нашей молочной продукции:",,checkbox
2,1,Порекомендуете ли вы наши детские кисломолочные продукты покупателям с детьми? ,,radio
3,1,Кому подходит козье молоко?,,radio
4,1,Закончите фразу: Наши производители мясной продукции:,,radio
5,1,"Клиент хочет купить замороженную рыбу, но не хочет переплачивать за вес льда, ваш комментарий:",,radio
6,1,"Закончите фразу: все товары из категории ""рыбная гастрономия"":",,radio
7,1,"Какое из описаний подходит наиболее точно: Открыв банку с рыбной консервой, клиент увидит:",,radio
8,1,Какое из ниже ниже представленных утверждений верно:,,radio
9,1,Какой продукт покупатель НЕ найдет на полках наших магазинов?,,radio
10,1,"При изготовлении наших десертов не используют консерванты, улучшители и стабилизаторы, а также никакого:",,radio
11,1,В чем уникальность нашей воды?,,radio
12,1,Что можете сказать о наших соках?,,radio
13,1,Какое из ниже представленных выражений верное:,,radio
14,1,Какого из ниже представленных напитков нет в ассортименте магазинов Вкусвилл?,,radio
15,1,Что такое полезные снеки ВкусВилл?,,radio
16,1,На полках наших магазинов можно найти макаронные изделия:,,radio
17,1,"Покупатели хвалят наши продукты из мяса и птицы за их ""домашний вкус"" и качество, как производителям удается добится таких отзывов?",,radio
18,1,Почему у нашей колбасы не привлекательный цвет?,,radio
19,1,Какие редкие крупы можно найти в магазинах ВкусВилл?,,checkbox
20,1,Чаи ВкусВилл выращивают:,,radio
21,1,"Мюсли Ягодные. Состав: хлопья пшеничные, хлопья овсяные, клюква, клубника вяленая, курага, цукаты, хлопья ячменные,;хлопья ржаные, хлопья из пророщенной пшеницы;семена тыквы, ядро миндаля, хлопья гречневые, ядро фисташки, отруби пшеничные. Назовите лишний ингредиент в составе, который поставщики Вкусвилл никогда не используют при приготовлении мюсли.",,radio
22,1,Что относится к условиям хранения пищевых продуктов?,,checkbox
23,1,Что такое гигрометр психрометрический?,,radio
24,1,"В течение срока годности, пищева продукция должна:",,checkbox
25,1,"Если время изготовления продукта не указанно, от какого времени исчесляется срок годности?",,radio
26,1,"От какой даты, считается срок годности, если на упаковке указаны дата производства и дата фасовки (розлива, упаковки)?",,radio
27,1,"Лена пришла на работу в 08.00, переоделась в рабочую форму , помыла руки, собрала волосы в хвост, одела козырек и вышла в торговый зал. Коллеге Ире она рассказала, что вчера муж подарил ей шикарные гранатовые бусы и массивные серьги, в перерыв обязательно покажет фото. Во время обеда Лена взяла Питу Бургер и вышла на улицу -перекусить и насладиться теплым осенним деньком. После перекура тщательно помыла руки и продезинфицировала. В 20.00 Лена закончила паботу и побежала на маникюр. Какое правило санитарной безопасности нарушила Лена?",,radio
28,1,"С какого года на рынке компания ""Избёнка""?",,radio
29,1,"В каком году открылся первый магазин ""ВкусВилл""",,radio
30,1,"Кто основатель проекта ""ВкусВилл""",,radio
31,1,Где покупатель может оставить отзыв или предложение?,,checkbox
32,1,Каковы преимущества карты во ВкусВилл?,,checkbox
33,1,Покупатель не является держателем карты. Ваши действия?,,radio
34,1,Что необходимо сообщить клиенту после прокатки карты на кассе,,checkbox
35,1,"Если клиент расплачивается наличными, что необходимо озвучить на кассе?",,checkbox
36,1,Как правильно выдать чек покупателю?,,radio
37,1,"Какую клавишу необходимо нажать на кассе после взвешивания, если вы собираетесь пробить 3 яблока, сложенных в зеленый контейнер",,radio
38,1,"Какую клавишу необходимо нажать на кассе после взвешивания, если вы собираетесь пробить 3 яблока, сложенных в прозрачный контейнер",,radio
39,1,"Какую клавишу необходимо нажать на кассе в первую очередь, если вы собираетесь пробить 3 яблока, сложенных в пакет",,radio
40,1,Как осуществить отказ от позиции или отмену чека?,,radio
41,1,Как сделать возврат?,,radio
42,1,Каковы условия назначения Любимого продукта?,,checkbox
43,1,Как часто можно менять Любимый продукт ?,,radio
44,1,Когда начинает действовать скидка на Любимый продукт?,,radio
45,1,Какое количество любимого продукта можно купить за 1 раз?,,radio
46,1,"Что делать, если ЛП отсутствует и покупатель хочет назначить скидку на другой товар только на сегодня?",,radio
47,1,"Что делать, если ЛП у покупателя отсутствует в зале, но есть на остатках?",,radio
48,1,В каком случае замена ЛП на 1 день приведет к его установке на весь срок действия?,,checkbox
49,1,Какие документы могут считаться удостоверением личности при продаже алкогольной продукции?,,checkbox
50,1,"Почему необходимо спрашивать документы, при продаже алкогольной продукции",,radio
51,1,Нужно ли спрашивать документы при продаже безалкогольного пива?,,radio
52,1,Что обязательно перед пробитием товара на кассе?,,checkbox
53,1,"Как правильно поступать с возвратом товара, в котором есть посторонний предмет?",,radio
54,1,Желтый ценник это-,,radio
55,1,Оранжевый ценник это-,,radio
56,1,Зеленый ценник это-,,radio
57,1,Синий ценник это-,,radio
58,1,Наши ценности,,radio
59,1,Наш девиз,,radio
60,1,Что обещают наши консультанты,,checkbox
61,1,Что НЕ обещают наши консультанты,,checkbox
62,1,"Назовите 3 принципа сервиса ""Закажи и забери"". ",,checkbox
63,2,Что относится к условиям хранения пищевых продуктов?,,checkbox
64,3,Что такое гигрометр психрометрический?,,radio
65,4,"В течение срока годности, пищевая продукция должна:",,checkbox
66,6,"Если время изготовления продукта не указанно, от какого времени исчесляется срок годности?",,radio
67,7,"От какой даты, считается срок годности, если на упаковке указаны дата производства и дата фасовки (розлива, упаковки)?",,radio
68,8,"Лена пришла на работу в 08.00, переоделась в рабочую форму , помыла руки, собрала волосы в хвост, одела козырек и вышла в торговый зал. Коллеге Ире она рассказала, что вчера муж подарил ей шикарные гранатовые бусы и массивные серьги, в перерыв обязательно покажет фото. Во время обеда Лена взяла Питу Бургер и вышла на улицу -перекусить и насладиться теплым осенним деньком. После перекура тщательно помыла руки и продезинфицировала. В 20.00 Лена закончила паботу и побежала на маникюр. Какое правило санитарной безопасности нарушила Лена?",,radio
\ No newline at end of file
......@@ -48,6 +48,52 @@ data = {tags, connections};
index: 'iID'
});
data.standardQuestions = await readCSV({
fileName: path.join(base,'standard_questions.csv'),
keys: {
'id': 'qID',
'card_info_id': 'cardInfoID',
'text': 'title',
'image': 'image',
'type': 'multiple'
},
types: {
qID: Number,
cardInfoID: Number,
title: String,
image: String,
multiple: String,
},
postProcess: (a) => {
a.answers = [];
a.multiple = a.multiple === 'checkbox';
},
index: 'qID'
});
const standardAnswers = await readCSV({
fileName: path.join(base,'standard_answers.csv'),
keys: {
'question_id': 'qID',
'text': 'title',
'correct': 'correct',
},
types: {
qID: Number,
title: String,
correct: Number
},
postProcess: (a, inc) => {
a.id = inc();
a.answers = [];
a.correct = a.correct === 1;
},
index: 'id'
});
Object.values(standardAnswers).forEach(a=>{
data.standardQuestions[a.qID].answers.push(a);
});
data.products = await readCSV({
fileName: path.join(base,'products.csv'),
keys: {
......@@ -71,6 +117,8 @@ data = {tags, connections};
index: 'id'
});
var dumped = [{"id":1,"title":"Блины \"Карбонара\"","image":"/upload/resize/161031/161031_530x300x85_c.jpg"},{"id":2,"title":"Блины с начинкой жюльен","image":"/upload/resize/93710/93710_530x300x85_c.jpg"},{"id":3,"title":"Блины с ветчиной (из свинины) и с сыром","image":"/upload/resize/93352/93352_530x300x85_c.jpg"},{"id":4,"title":"Блины с мясом","image":"/upload/resize/95146/95146_530x300x85_c.jpg"},{"id":5,"title":"Блины постные с картофелем и грибами","image":"/upload/resize/96634/96634_530x300x85_c.jpg"},{"id":6,"title":"Варенье вишневое, 50 г"},{"id":7,"title":"Малина дроблёная с сахаром","image":"/upload/resize/113263/113263_530x300x85_c.jpg"},{"id":8,"title":"Варенье из слив с лимоном и имбирем","image":"/upload/resize/95818/95818_530x300x85_c.jpg"},{"id":9,"title":"Варенье черничное","image":"/upload/resize/93853/93853_530x300x85_c.jpg"},{"id":10,"title":"Варенье из клубники с мятой","image":"/upload/resize/94377/94377_530x300x85_c.jpg"},{"id":11,"title":"Голубцы ленивые в сметанном соусе"},{"id":12,"title":"Лингвини с креветками и с соусом с тыквой","image":"/upload/resize/94017/94017_530x300x85_c.jpg"},{"id":13,"title":"Котлетки рыбные с запечёнными овощами","image":"/upload/resize/157871/157871_530x300x85_c.jpg"},{"id":14,"title":"Паста с лососем в сливочном соусе","image":"/upload/resize/162506/162506_530x300x85_c.jpg"},{"id":15,"title":"Голубцы с курицей в томатном соусе","image":"/upload/resize/154668/154668_530x300x85_c.jpg"},{"id":16,"title":"Бейгл с кунжутом","image":"/upload/resize/161019/161019_530x300x85_c.jpg"},{"id":17,"title":"Хлеб бородинский бездрожжевой","image":"/upload/resize/113263/113263_530x300x85_c.jpg"},{"id":18,"title":"Чиабатта","image":"/upload/resize/96735/96735_530x300x85_c.jpg"},{"id":19,"title":"Хлеб Печерский масличный","image":"/upload/resize/94387/94387_530x300x85_c.jpg"},{"id":20,"title":"Слойка Свердловская","image":"/upload/resize/157888/157888_530x300x85_c.jpg"},{"id":21,"title":"Мидии мясо варено-мороженное","image":"/upload/resize/96601/96601_530x300x85_c.jpg"},{"id":22,"title":"Кальмар филе очищенный зам.","image":"/upload/resize/93260/93260_530x300x85_c.jpg"},{"id":23,"title":"Креветка северная варено-мороженая","image":"/upload/resize/95442/95442_530x300x85_c.jpg"},{"id":24,"title":"Кальмар кольца зам.","image":"/upload/resize/93248/93248_530x300x85_c.jpg"},{"id":25,"title":"Кальмар тушка зам.","image":"/upload/resize/158195/158195_530x300x85_c.jpg"},{"id":26,"title":"Шпинат свежезамороженный","image":"/upload/resize/96005/96005_530x300x85_c.jpg"},{"id":27,"title":"Смесь Гавайская с/м","image":"/upload/resize/95103/95103_530x300x85_c.jpg"},{"id":28,"title":"Смесь мексиканская с/м","image":"/upload/resize/95101/95101_530x300x85_c.jpg"},{"id":29,"title":"Весенние овощи с/м","image":"/upload/resize/95099/95099_530x300x85_c.jpg"},{"id":30,"title":"Смесь овощная для вок с/м","image":"/upload/resize/157890/157890_530x300x85_c.jpg"},{"id":31,"title":"Колбаса «Сервелат Коньячный» в/к","image":"/upload/resize/94937/94937_530x300x85_c.jpg"},{"id":32,"title":"Колбаса «Особенная» из индейки варёная","image":"/upload/resize/93938/93938_530x300x85_c.jpg"},{"id":33,"title":"Колбаса запеченная из индейки","image":"/upload/resize/93844/93844_530x300x85_c.jpg"},{"id":34,"title":"Колбаса «Брауншвейг. полусухая» с/к в/у","image":"/upload/resize/95596/95596_530x300x85_c.jpg"},{"id":35,"title":"Колбаса кровяная с гречкой"},{"id":36,"title":"Шампунь Яичный","image":"/upload/resize/95618/95618_530x300x85_c.jpg"},{"id":37,"title":"Шампунь мужской","image":"/upload/resize/93625/93625_530x300x85_c.jpg"},{"id":38,"title":"Шампунь молочный Миндаль","image":"/upload/resize/95620/95620_530x300x85_c.jpg"},{"id":39,"title":"Маска для волос Сладкий миндаль","image":"/upload/resize/93749/93749_530x300x85_c.jpg"},{"id":40,"title":"Шампунь твёрдый \"Крапивный\"","image":"/upload/resize/157311/157311_530x300x85_c.jpg"},{"id":41,"title":"Пастила фруктовая из персика","image":"/upload/resize/153082/153082_530x300x85_c.jpg"},{"id":42,"title":"Пастила яблочная натуральная","image":"/upload/resize/99730/99730_530x300x85_c.jpg"},{"id":43,"title":"Пастила яблочная хрустящая","image":"/upload/resize/96081/96081_530x300x85_c.jpg"},{"id":44,"title":"Пастила яблоко-вишня хрустящая","image":"/upload/resize/95513/95513_530x300x85_c.jpg"},{"id":45,"title":"Мармелад \"Облепиха\"","image":"/upload/resize/162524/162524_530x300x85_c.jpg"},{"id":46,"title":"Булгур","image":"/upload/resize/94357/94357_530x300x85_c.jpg"},{"id":47,"title":"Кускус","image":"/upload/resize/96042/96042_530x300x85_c.jpg"},{"id":48,"title":"Киноа","image":"/upload/resize/96046/96046_530x300x85_c.jpg"},{"id":49,"title":"Рис для плова Басмати экстрадлинный","image":"/upload/resize/96040/96040_530x300x85_c.jpg"},{"id":50,"title":"Рис \"Жасмин\"","image":"/upload/resize/157295/157295_530x300x85_c.jpg"},{"id":51,"title":"Йогурт греческий","image":"/upload/resize/93247/93247_530x300x85_c.jpg"},{"id":52,"title":"Иммуноцея с сиропом шиповника","image":"/upload/resize/93481/93481_530x300x85_c.jpg"},{"id":53,"title":"Мацони","image":"/upload/resize/95610/95610_530x300x85_c.jpg"},{"id":54,"title":"Скир \"Исландский\" 1,5%","image":"/upload/resize/162486/162486_530x300x85_c.jpg"},{"id":55,"title":"Творог 5%, 180 г","image":"/upload/resize/162528/162528_530x300x85_c.jpg"},{"id":56,"title":"Балык «Королевский» с/к","image":"/upload/resize/94876/94876_530x300x85_c.jpg"},{"id":57,"title":"Карпаччо из индейки с/к","image":"/upload/resize/96643/96643_530x300x85_c.jpg"},{"id":58,"title":"Шпек сыровяленый нарезка, 50 г","image":"/upload/resize/94257/94257_530x300x85_c.jpg"},{"id":59,"title":"Филе грудки индейки \"Су-вид\" в маринаде Корридо","image":"/upload/resize/161126/161126_530x300x85_c.jpg"},{"id":60,"title":"Ребрышки говяжьи, 400 г","image":"/upload/resize/151246/151246_530x300x85_c.jpg"},{"id":61,"title":"Вырезка из свинины","image":"/upload/resize/93373/93373_530x300x85_c.jpg"},{"id":62,"title":"Половина тушки кролика","image":"/upload/resize/36233/36233_530x300x85_c.jpg"},{"id":63,"title":"Стейк из индейки","image":"/upload/resize/94623/94623_530x300x85_c.jpg"},{"id":64,"title":"Филе бедра куриное бескостное","image":"/upload/resize/93376/93376_530x300x85_c.jpg"},{"id":65,"title":"Напиток Чай с лимоном","image":"/upload/resize/94097/94097_530x300x85_c.jpg"},{"id":66,"title":"Напиток «Чайный гриб» со стевией","image":"/upload/resize/94756/94756_530x300x85_c.jpg"},{"id":67,"title":"Напиток «Лимон-Имбирь»","image":"/upload/resize/93810/93810_530x300x85_c.jpg"},{"id":68,"title":"Вода минеральная Псыж 1л","image":"/upload/resize/141107/141107_530x300x85_c.jpg"},{"id":69,"title":"Напиток \"Кокосовый\" на бактериальной закваске","image":"/upload/resize/155586/155586_530x300x85_c.jpg"},{"id":70,"title":"Паштет мясной запеченный","image":"/upload/resize/94249/94249_530x300x85_c.jpg"},{"id":71,"title":"Паштет из тофу «По-испански»","image":"/upload/resize/95069/95069_530x300x85_c.jpg"},{"id":72,"title":"Риет из горбуши с миндалем","image":"/upload/resize/157319/157319_530x300x85_c.jpg"},{"id":73,"title":"Паштет мясной с печенью индейки и грушей","image":"/upload/resize/96449/96449_530x300x85_c.jpg"},{"id":74,"title":"Паштет из печени кролика с шампиньонами","image":"/upload/resize/157301/157301_530x300x85_c.jpg"},{"id":75,"title":"Суп Харчо","image":"/upload/resize/36472/36472_530x300x85_c.jpg"},{"id":76,"title":"Борщ вегетарианский","image":"/upload/resize/95379/95379_530x300x85_c.jpg"},{"id":77,"title":"Суп куриный с домашней лапшой","image":"/upload/resize/93384/93384_530x300x85_c.jpg"},{"id":78,"title":"Суп-пюре норвежский с сёмгой","image":"/upload/resize/154670/154670_530x300x85_c.jpg"},{"id":79,"title":"Уха русская с сёмгой","image":"/upload/resize/151259/151259_530x300x85_c.jpg"},{"id":80,"title":"Ассорти из омуля, муксуна, чира","image":"/upload/resize/161017/161017_530x300x85_c.jpg"},{"id":81,"title":"Ассорти рыбное х/к из скумбрии и горбуши","image":"/upload/resize/157291/157291_530x300x85_c.jpg"},{"id":82,"title":"Ассорти рыбное х/к ломтики","image":"/upload/resize/93193/93193_530x300x85_c.jpg"},{"id":83,"title":"Корюшка горячего копчения","image":"/upload/resize/94935/94935_530x300x85_c.jpg"},{"id":84,"title":"Муксун ломтики холодного копчения","image":"/upload/resize/96307/96307_530x300x85_c.jpg"},{"id":85,"title":"Салат с яблоком, свеклой и черносливом","image":"/upload/resize/149089/149089_530x300x85_c.jpg"},{"id":86,"title":"Салат Мимоза","image":"/upload/resize/96318/96318_530x300x85_c.jpg"},{"id":87,"title":"Салат «Грин Энерджи»","image":"/upload/resize/95216/95216_530x300x85_c.jpg"},{"id":88,"title":"Салат «Оливье»","image":"/upload/resize/93367/93367_530x300x85_c.jpg"},{"id":89,"title":"Салат винегрет с маринованной капустой","image":"/upload/resize/95948/95948_530x300x85_c.jpg"},{"id":90,"title":"Сыр \"Российский\" тёртый","image":"/upload/resize/162484/162484_530x300x85_c.jpg"},{"id":91,"title":"Сыр козий \"Кремчиз с брусникой и яблоком\"","image":"/upload/resize/154664/154664_530x300x85_c.jpg"},{"id":92,"title":"Сыр твердый «Грюнбергер»","image":"/upload/resize/93323/93323_530x300x85_c.jpg"},{"id":93,"title":"Сыр «Эдам»","image":"/upload/resize/96491/96491_530x300x85_c.jpg"},{"id":94,"title":"Сыр «Алтайский» полутвёрдый","image":"/upload/resize/96247/96247_530x300x85_c.jpg"},{"id":95,"title":"Тетрадь в линейку, 48 л","image":"/upload/resize/157293/157293_530x300x85_c.jpg"},{"id":96,"title":"Десерт молочный \"Ночь в Брюгге\"","image":"/upload/resize/156148/156148_530x300x85_c.jpg"},{"id":97,"title":"Панна-котта «Манго-маракуйя-апельсин»","image":"/upload/resize/96593/96593_530x300x85_c.jpg"},{"id":98,"title":"Пирожное постное «Трюфельное»","image":"/upload/resize/96391/96391_530x300x85_c.jpg"},{"id":99,"title":"Рулет бисквитный","image":"/upload/resize/94957/94957_530x300x85_c.jpg"},{"id":100,"title":"Пирожное \"Малиновое\" на кокосовом молоке","image":"/upload/resize/157898/157898_530x300x85_c.jpg"},{"id":101,"title":"Мята душистая","image":"/upload/resize/143429/143429_530x300x85_c.jpg"},{"id":102,"title":"Горный чабрец","image":"/upload/resize/95864/95864_530x300x85_c.jpg"},{"id":103,"title":"Чай с мятой и календулой в пакетиках","image":"/upload/resize/94555/94555_530x300x85_c.jpg"},{"id":104,"title":"Чай зеленый байховый в пакетиках","image":"/upload/resize/95751/95751_530x300x85_c.jpg"},{"id":105,"title":"Чай гречишный, в пирамидках"}];
dumped.filter(a=>a.image).forEach(a=>data.products[a.id].image = 'https://vkusvill.ru'+a.image)
fs.writeFileSync('tmp.json',JSON.stringify(Object.values(data.products).map(({id, title})=>({id, title}))))
......
cd /home/forge/kus-quizard
node .
\ No newline at end of file
node . -r -n
\ No newline at end of file
......@@ -51,6 +51,32 @@ const shuffle = function (a) {
}
return a;
};
const standardGenerator = function(random) {
const initialSeed = Math.random.seeded.getStringSeed();
const log = quizGenerator.log = ['Random seed: '+initialSeed];
const questionID = random(Object.values(dP.standardQuestions)),
q = dP.standardQuestions[questionID];
log.push('Creating standard question.');
log.push('It would be question number '+questionID);
log.push('');
log.push('Title '+q.title);
q.answers.forEach(
a =>
log.push((a.correct?'+':' ')+` > ${a.title}`));
return {
type: q.multiple ? 'checkbox': 'radio',
categoryId: 2,
productId: q.cardInfoID,
question: textFormat(q.title),
answers: shuffle(q.answers.map(a =>
a.correct ?
new Answer.Correct(a.title) :
new Answer.Wrong(a.title))),
image: !q.image?null:q.image,
log
};
};
const quizGenerator = function(type, photo, subType) {
return _quizGenerator(type, photo, subType);
},
......
......@@ -9,7 +9,8 @@ const store = new Store({
'productFilterByComponent': true,
'productFilterByTag': true,
'generateType': 'radio',
'generatePhoto': false
'generatePhoto': false,
generateCategory: 'product'
});
......
......@@ -3,7 +3,7 @@ const dataProvider = {
maxConnection: 0,
maxTagID: 0,
slice: {},
standardQuestions: {},
tags: [],
connections: {},
products: {}
......
......@@ -11,15 +11,17 @@ view.cmp.Answer = function(answer, type) {
view.page.Generate = function() {
const update = function() {
const photo = store.get('generatePhoto') === 'photo',
type = store.get('generateType');
type = store.get('generateType'),
category = store.get('generateCategory');
try{
seedInput.value = Math.random.seeded.getStringSeed();
const result = quizGenerator( type, photo );
const result = category === 'product' ? quizGenerator( type, photo ) : standardGenerator(({length})=>rand(0,length-1));
title.innerHTML = textFormat( result.question, true );
image.innerHTML = result.image ? `<img src="${result.image}" alt="img"/>` : '';
image.style.display = result.image ? 'block': 'none';
debug.value = result.log.join( '\n' )
D.removeChildren( answers );
D.appendChild( answers, result.answers.map( ( a ) => view.cmp.Answer( a, type ) ) );
......@@ -34,16 +36,28 @@ view.page.Generate = function() {
this.dom =
div({cls: 'generate-panel'},
div({cls: 'title-gradient'},
div({cls: 'generate-sub-menu'},
div({cls: 'generate-sub-menu'},
view.cmp.Menu({title: 'Единственный', id: 'radio', key: 'generateType'}),
view.cmp.Menu({title: 'Множественный', id: 'checkbox', key: 'generateType'})
view.cmp.Menu({title: 'Продукты', id: 'product', key: 'generateCategory'}),
view.cmp.Menu({title: 'Стандарты', id: 'standard', key: 'generateCategory'})
),
view.cmp.Switch({key: 'generateCategory'}, {
product: div({cls: 'generate-sub-menu'},
div({cls: 'generate-sub-menu'},
view.cmp.Menu({title: 'Единственный', id: 'radio', key: 'generateType'}),
view.cmp.Menu({title: 'Множественный', id: 'checkbox', key: 'generateType'})
),
div({cls: 'generate-sub-menu'},
view.cmp.Menu({title: 'С фото', id: 'photo', key: 'generatePhoto'}),
view.cmp.Menu({title: 'Без фото', id: 'noPhoto', key: 'generatePhoto'})
)
)
})
div({cls: 'generate-sub-menu'},
view.cmp.Menu({title: 'С фото', id: 'photo', key: 'generatePhoto'}),
view.cmp.Menu({title: 'Без фото', id: 'noPhoto', key: 'generatePhoto'})
)
)
),
div({cls: 'generate-controls'},
......@@ -74,6 +88,6 @@ view.page.Generate = function() {
);
store.sub(['generateType', 'generatePhoto'], update);
store.sub(['generateType', 'generatePhoto', 'generateCategory'], update);
};
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment