Commit 6c476a4b by Иван Кубота

fix multiselect when need single bug

parent 20843987
Pipeline #557 failed with stage
...@@ -6,8 +6,8 @@ ...@@ -6,8 +6,8 @@
2. Дает возможность участвовать в акциях: назначать ""Любимый продукт"", покупать товары по ценникам желтого цвета. 2. Дает возможность участвовать в акциях: назначать ""Любимый продукт"", покупать товары по ценникам желтого цвета.
3. Получать дополнительную ежедневную скидку на 6 продуктов, а также пользоваться дополнительными возможностями, подключившись к боту или мобильному приложению. 3. Получать дополнительную ежедневную скидку на 6 продуктов, а также пользоваться дополнительными возможностями, подключившись к боту или мобильному приложению.
", /2/images/cards/1.jpg ", /2/images/cards/1.jpg
4,Преимущества Карты,3,"Если покупатель не является держателем нашей карты, подарите ее бесплатно и расскажите о преимуществах, а также предложите активировать ее на кассе.", 4,Преимущества Карты,2,"Если покупатель не является держателем нашей карты, подарите ее бесплатно и расскажите о преимуществах, а также предложите активировать ее на кассе.",
,Обслуживание клиента на кассе,4,"По стандартам нашей компании клиент на кассе обслуживается по следующему алгоритму: ,Обслуживание клиента на кассе,2,"По стандартам нашей компании клиент на кассе обслуживается по следующему алгоритму:
1. Поприветствуйте покупателя. 1. Поприветствуйте покупателя.
2. Поинтересуйтесь, нужен ли пакет. 2. Поинтересуйтесь, нужен ли пакет.
3. Просканируйте продукты и сложите покупки аккуратно в пакеты. 3. Просканируйте продукты и сложите покупки аккуратно в пакеты.
......
...@@ -445,12 +445,13 @@ data = {tags:[], connections:[], more:[], standardQuestions: {}, standardAnswers ...@@ -445,12 +445,13 @@ data = {tags:[], connections:[], more:[], standardQuestions: {}, standardAnswers
var tagsHash = {}; var tagsHash = {};
data.more = data.more.concat([ data.more = data.more.concat([
{p: '1cards.csv', i: '1components.csv'}, {p: '1cards.csv', i: '1components.csv'},
{q: '2questions.csv', a: '2answers.csv', c: '2cards.csv'}, {q: '2questions.csv', a: '2answers.csv', c: '2cards_2020_2_21.csv'},
{q: '3questions.csv', a: '3answers.csv', c: '3cards.csv'}, {q: '3questions.csv', a: '3answers.csv', c: '3cards.csv'},
{q: '4questions.csv', a: '4answers.csv', c: '4cards.csv'} {q: '4questions.csv', a: '4answers.csv', c: '4cards.csv'}
]); ]);
let id = 1; let id = 1;
let theInc = ()=>id++; let theInc = ()=>id++;
let was = {};
if(data.more){ if(data.more){
for( let i = 0, _i = data.more.length; i < _i; i++ ){ for( let i = 0, _i = data.more.length; i < _i; i++ ){
var adishen = i*300; var adishen = i*300;
...@@ -557,7 +558,14 @@ data = {tags:[], connections:[], more:[], standardQuestions: {}, standardAnswers ...@@ -557,7 +558,14 @@ data = {tags:[], connections:[], more:[], standardQuestions: {}, standardAnswers
description: a.description, description: a.description,
image: a.image image: a.image
}]; }];
data.products[a.iID] = a; //debugger
if(a.id in was){
was[a.id].items.push(a.items[0]);
}else{
was[a.id] = a;
data.products[ a.iID ] = a;
}
}, },
index: 'id' index: 'id'
}) })
......
...@@ -74,7 +74,7 @@ const qB = { ...@@ -74,7 +74,7 @@ const qB = {
similarClusters = Object.keys(similarTags) similarClusters = Object.keys(similarTags)
.map(k=>({k, v:similarTags[k]})) .map(k=>({k, v:similarTags[k]}))
.filter( a => a.v.length >= minAmount); .filter( a => a.v.length >= minAmount && a.v.filter(av=>av.use).length>0);
log.push(`Clusters that have >= ${minSimilarTags} similar tags: `+Object.values(similarClusters).length); log.push(`Clusters that have >= ${minSimilarTags} similar tags: `+Object.values(similarClusters).length);
...@@ -89,7 +89,7 @@ const qB = { ...@@ -89,7 +89,7 @@ const qB = {
let result; let result;
if(single){ if(single){
result = rand(filtered); result = rand(filtered.filter(p=>p.use));
log.push('Matched product: '+result.title); log.push('Matched product: '+result.title);
}else{ }else{
...@@ -98,9 +98,13 @@ const qB = { ...@@ -98,9 +98,13 @@ const qB = {
return false; return false;
} }
result = shuffle(filtered).slice(0, doNotTrim?filtered.length:rand(minAmount, maxAmount)); let used = rand(filtered.filter(p=>p.use)),
other = filtered.slice();
other.splice(other.indexOf(used));
result = shuffle([used].concat(other).slice(0, doNotTrim? filtered.length: rand(minAmount, maxAmount)));
log.push('Base products:'); log.push('Base products:');
result.forEach(p => log.push(` > ${p.title}`)) result.forEach(p => log.push(` > ${p.title}`));
log.push(''); log.push('');
} }
...@@ -247,6 +251,8 @@ const qB = { ...@@ -247,6 +251,8 @@ const qB = {
} }
const possibility = products.map(p=>{ const possibility = products.map(p=>{
if(!p.use)
return false;
const similar = qB.getProductsWithTags({ const similar = qB.getProductsWithTags({
products: allProducts, products: allProducts,
tags: p.getTags(), tags: p.getTags(),
...@@ -292,6 +298,8 @@ const qB = { ...@@ -292,6 +298,8 @@ const qB = {
const product = products[ i ]; const product = products[ i ];
/* if(this.withPhoto && !product.image) /* if(this.withPhoto && !product.image)
continue;*/ continue;*/
if(!product.use)
continue;
const cmps = product const cmps = product
.getComponents() .getComponents()
.filter(cmp => products.filter(p=>p.containsComponent(cmp)).length === 1) .filter(cmp => products.filter(p=>p.containsComponent(cmp)).length === 1)
......
...@@ -94,12 +94,14 @@ const quizGenerator = function(type, photo, subType) { ...@@ -94,12 +94,14 @@ const quizGenerator = function(type, photo, subType) {
if(subType === void 0){ if(subType === void 0){
log = quizGenerator.log = [ 'Random seed: ' + initialSeed, 'Quiz generate ' + type + ( photo ? ' with photo' : '' ) + ' ' + ( subType ? `${lapk( subType.type )}` : '. FAIL' ) ]; log = quizGenerator.log = [ 'Random seed: ' + initialSeed, 'Quiz generate ' + type + ( photo ? ' with photo' : '' ) + ' ' + ( subType ? `${lapk( subType.type )}` : '. FAIL' ) ];
photo = true; photo = true;
type='radio';
subType = probabilityRand(quizTypes[ 'radio' + ( photo ? 'Photo' : '' ) ]); subType = probabilityRand(quizTypes[ 'radio' + ( photo ? 'Photo' : '' ) ]);
log = quizGenerator.log = [ 'Change type to radioPhoto' ]; log = quizGenerator.log = [ 'Change type to radioPhoto' ];
}else{ }else{
log = quizGenerator.log = [ 'Random seed: ' + initialSeed, 'Quiz generate ' + type + ( photo ? ' with photo' : '' ) + ' ' + ( subType ? `${lapk( subType.type )}` : '. FAIL' ) ]; log = quizGenerator.log = [ 'Random seed: ' + initialSeed, 'Quiz generate ' + type + ( photo ? ' with photo' : '' ) + ' ' + ( subType ? `${lapk( subType.type )}` : '. FAIL' ) ];
} }
}else if(attempt<30){ }else if(attempt<60){
log = quizGenerator.log; log = quizGenerator.log;
log.push('\nATTEMPT FAILED!\n\n'+ log.push('\nATTEMPT FAILED!\n\n'+
'------------------------\n' + '------------------------\n' +
......
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