Grosse Modifiche Completate !

This commit is contained in:
Paolo Arena
2020-05-11 22:43:14 +02:00
parent 9c7cf28a4a
commit c6acadb3e6
10 changed files with 269 additions and 229 deletions

View File

@@ -4,13 +4,17 @@ AGGIORNARE:
// ++Todo: DA FARE:
TESTARE -> inviare il msg anche al Sognatore della Gift Chat
- Aggiornare il titolo della Gift Chat (da 5/5 a 12/5)
- Aggiornare il testo sulla Placca (Data Inizio e Data Fine Doni)
X - Aggiornare il titolo della Gift Chat (da 5/5 a 12/5)
X - Aggiornare il testo sulla Placca (Data Inizio e Data Fine Doni)
// ++Todo: SISTEMARE:
// ++Todo: TOGLIERE!
- AGGIONARE AMBIENTE DI TEST
x- AGGIONARE AMBIENTE DI TEST
- ESEGUIRE LA CONVERSIONE 1 E 2 !
- CHECK getProssimiInLista
@@ -20,10 +24,10 @@ X - CONTROLLARE arrIdTelegramUsers
- TESTARE AGGIUNGI VIAGGIO
- Accorpare tutti i sotto account, in 1 unico !
- Nel campo note, metterci l'username vecchio.
x- Accorpare tutti i sotto account, in 1 unico !
x - Nel campo note, metterci l'username vecchio.
- Sistemare le navi con num_tess === 4 : indorder=0 e 46 :
x - Sistemare le navi con num_tess === 4 : indorder=0 e 46 :
Prendere quelli del num_tess === 3 e SOSTITUISCI ind_order del num_Tess = 4 con ind_order di num_tess = 3
-------------
@@ -52,3 +56,6 @@ SOSTITUISCI:
TRADURRE:
'Giorno in cui Inviare il DONO': 'Hai 4 giorni di tempo per inviare il tuo dono. Giorno di Chiusura:',
- Mettere le bandierine nella lista Zoom (su AYNI BOT).

View File

@@ -171,7 +171,7 @@ ListaIngressoSchema.statics.deleteUserInListaIngresso = async function (idapp, u
};
ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, username, invitante_username, lang, addednowreal, nuovo, dateins, note, added) {
ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, username, invitante_username, lang, addednowreal, nuovo, dateins, note, added, opt) {
const ListaIngresso = this;
const { User } = require('./user');
@@ -214,6 +214,16 @@ ListaIngressoSchema.statics.addUserInListaIngresso = async function (idapp, user
const nome = await User.getNameSurnameByUsername(idapp, username);
msgtext = '🔵 ' + nome + ' (' + username + ') ' + tools.gettranslate('ADDED_TOLISTAINGRESSO', lang);
await telegrambot.sendMsgTelegram(idapp, username, msgtext, true); // Anche a STAFF
if (!!opt) {
if (!!opt.sendmsgtoinvitante) {
if (opt.sendmsgtoinvitante) {
const nome = await User.getNameSurnameByUsername(idapp, invitante_username);
// msgtext = '🔵 ' + nome + ' (' + username + ') ' + tools.gettranslate('ADDED_TOLISTAINGRESSO', lang);
// await telegrambot.sendMsgTelegram(idapp, username, msgtext, true); // Anche a STAFF
}
}
}
}
}
return ris;
@@ -405,8 +415,7 @@ ListaIngressoSchema.statics.getProssimiInLista = async function (idapp, solonuov
for (const rec of arrlista) {
// ++Todo: TOGLIERE!
if (false) {
if (true) {
rec.numNaviEntrato = await Nave.getnumNaviByUsername(idapp, rec.username);
rec.numinvitati = await ListaIngresso.getnumInvitati(idapp, rec.username);
@@ -602,10 +611,6 @@ ListaIngressoSchema.statics.creaTessituraeConv = async function (idapp) {
}
}, { new: false });
// Crea Record ListaIngresso
// const newrecingr = await ListaIngresso.addUserInListaIngresso(idapp, myuser.username, invitante_username, myuser.lang, false, true, myuser.date_reg, note, added);
// Assegna l'Invitante agli Invitati ! trova tutti gli invitati che hanno questo username
const arrinvitati = await User.find({ idapp, aportador_solidario: myuser.username }, { username: 1 });
for (const invitato of arrinvitati) {

View File

@@ -10,6 +10,8 @@ const { User } = require('./user');
const { ObjectID } = require('mongodb');
const printf = require('util').format;
const shared_consts = require('../tools/shared_nodejs');
mongoose.Promise = global.Promise;
@@ -81,6 +83,7 @@ NaveSchema.statics.getTotInLista = async function (idapp) {
NaveSchema.statics.findByIndOrder = function (idapp, ind_order) {
const Nave = this;
try {
return Nave.findOne({
'idapp': idapp,
@@ -297,7 +300,6 @@ NaveSchema.statics.findRecByRigaColParent = async function (idapp, riga, col, nu
myrigacol.riga = lastrec.riga;
myrigacol.col = lastrec.col;
} else {
//lastrec = await User.findByIndOrder(idapp, 0);
lastrec = await Nave.findGeneric({ idapp, riga: 0, col: 0 });
break;
}
@@ -306,7 +308,6 @@ NaveSchema.statics.findRecByRigaColParent = async function (idapp, riga, col, nu
}
if (!lastrec) {
// return await User.findByIndOrder(idapp, 0);
return await Nave.findGeneric({ idapp, riga: 0, col: 0 });
}
@@ -452,13 +453,13 @@ function getQueryProj(myfilter) {
}
},
{
$unwind: "$mylista"
$replaceRoot: { newRoot: { $mergeObjects: [ { $arrayElemAt: [ "$mylista", 0 ] }, "$$ROOT" ] } }
},
{
$lookup: {
from: "users",
as: "user",
let: {username: '$mylista.username' },
let: {username: '$username' },
pipeline: [
{
$match: {
@@ -793,19 +794,22 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
if (!!recnavepersistente.tutor_namesurname)
data += '👤 ' + tools.get__('Tutor che affianchèra il Mediatore', lang) + ': "' + recnavepersistente.tutor_namesurname + '"' + tools.ACAPO;
data += '💬 ' + tools.get__('Giorno di Apertura GIFT CHAT', lang) + ': ' + tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang) + tools.ACAPO;
data += '💬 ' + printf(tools.get__('APERTURA_CHIUSURA_GIFT_CHAT', lang), tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang), tools.getstrDateLong(recnavepersistente.date_start, lang)) + tools.ACAPO;
data += '🎁 ' + tools.get__('Giorno in cui Inviare il DONO', lang) + ' : ' + tools.getstrDateLong(recnavepersistente.date_start, lang) + tools.ACAPO;
// data += '💬 ' + tools.get__('Giorno di Apertura GIFT CHAT', lang) + ': ' + tools.getstrDateLong(recnavepersistente.date_gift_chat_open, lang) + tools.ACAPO;
// data += '🎁 ' + tools.get__('Giorno in cui Inviare il DONO', lang) + ' : ' + tools.getstrDateLong(recnavepersistente.date_start, lang) + tools.ACAPO;
if (!!recnavepersistente.note_bot)
data += tools.get__('Note', lang) + ": " + recnavepersistente.note_bot + tools.ACAPO;
if (recnavepersistente.provvisoria)
mystrtemp = tools.get__('TEMPORANEA', lang) + ' ';
mystrtemp = '' + tools.get__('TEMPORANEA', lang) + ' ';
} else
data = "";
mystr = tools.ACAPO + tools.get__('NAVE', lang) + ' ' + '[' + riga + '.' + col + '] ' + mystrtemp + tools.ACAPO + data + tools.ACAPO + mystr;
mystr = tools.ACAPO + '⛵️ ' + tools.get__('NAVE', lang) + ' ' + '[' + riga + '.' + col + '] ' + mystrtemp + tools.ACAPO + data + tools.ACAPO + mystr;
return mystr;
} catch (e) {
@@ -815,36 +819,6 @@ NaveSchema.statics.getNavePos = async function (idapp, riga, col, solorecord, in
};
// async function Fuochi8Completati(idapp, params) {
// // Inviare un msg al Mediatore che può aprire la Chat con gli 8 fuochi
// const telegrambot = require('../telegram/telegrambot');
//
// let text = '\nCompletata NAVE [riga=' + params.riga + ',col=' + params.col + ', ind_order=' + params.ind_order + ']';
// console.log(text);
// tools.writeNaveLog(text);
//
// const { User } = require('./user');
//
// const rec = await User.findByIndOrder(idapp, params.ind_order);
//
// text = await Nave.getNaveByUser(idapp, params.ind_order, rec.lang, true);
//
// // Inviare un msg a questi 8 Fuochi, che la loro placca è Pronta !
//
// if (tools.isAbilitaNave(idapp)) {
// // .............
// }
//
// if (false) {
// await telegrambot.sendMsgTelegram(idapp, rec.username, text, true);
// } else {
// await telegrambot.sendMsgTelegramToTheAdmin(idapp, text);
// }
//
// // Inviare la placca a Managers
// // await telegrambot.sendMsgTelegramToTheManagers(idapp, txt);
// }
NaveSchema.statics.getArrPosizioniByIndOrder = async function (idapp, ind_order) {
const Nave = this;
@@ -911,7 +885,7 @@ NaveSchema.statics.showListaOrd = async function (idapp) {
for (const rec of arrrec) {
let recnavepersistente = await NavePersistente.findByRigaColByDonatore(idapp, rec.riga, rec.col, 0);
if (!!recnavepersistente) {
mystr += '[' + conta + '] [' + rec.riga + '.' + rec.col + '] ' + rec.ind_order + ' ' + rec.name + ' ' + rec.surname + ' (' + tools.getstrDateShort(recnavepersistente.date_start) + ')';
mystr += '[' + conta + '] [' + rec.riga + '.' + rec.col + '] ' + rec.ind_order + ' ' + rec.name + ' ' + rec.surname + ' (' + tools.getstrDateShort(recnavepersistente.date_gift_chat_open) + ')';
mystr += ' num_tess = ' + rec.num_tess;
mystr += '\n';
}
@@ -1097,7 +1071,7 @@ NaveSchema.statics.addUserFromListaIngresso_IntoNave = async function (init, ida
}
if ((params.riga === 4 + 3) && (params.col === (8 * 2) + 3)) {
// Si ritesse il Fondo AYNI nella Nave 3.3
const userFondo = await User.findByIndOrder(idapp, 0);
const userFondo = await User.findByIndex(idapp, 0);
params.ind_order = userFondo.ind_order;
params.id = userFondo._id;
params.num_tess = userFondo.num_tess;
@@ -1129,6 +1103,8 @@ NaveSchema.statics.generaNave = async function (idapp, mydata) {
numpersone: mydata.numpersone,
};
//++Todo: date_gift_chat_open e date_start : Ricalcolarle in Automatico...
params.primavolta = (params.riga === 1) && (params.col === 1);
// params.primavolta = false;
@@ -1141,7 +1117,7 @@ NaveSchema.statics.generaNave = async function (idapp, mydata) {
await NavePersistente.addRecordNavePersistenteByParams({ idapp, riga: 0, col: 0, riga1don: 0, col1don: 0 });
const userFondo = await User.findByIndOrder(idapp, 0);
const userFondo = await User.findByIndex(idapp, 0);
if (!userFondo || userFondo === undefined) {
await telegrambot.sendMsgTelegramToTheAdmin(idapp, 'Devi creare l\'utente FONDO , con ind_order = 0 ! ');
}
@@ -1270,7 +1246,7 @@ NaveSchema.statics.getNaveByUser = async function (idapp, username, lang, fuoco)
if (persistente.provvisoria) {
mystr += tools.ACAPO + tools.get__('NAVE', lang) + ' ' + '[' + mypos.riga + '.' + mypos.col + '] - ' + tools.get__('TEMPORANEA', lang) + tools.ACAPO + tools.ACAPO;
} else {
mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false, ind_order);
mystr += await Nave.getNavePos(idapp, mypos.riga, mypos.col, false, pos.ind_order);
}
}
// mystr += await Nave.getPlaccaPerDonatore(idapp, pos.riga, pos.col, false, rec);

View File

@@ -125,13 +125,13 @@ function getQueryProj(myfilter) {
}
},
{
$unwind: "$mylista"
$replaceRoot: { newRoot: { $mergeObjects: [ { $arrayElemAt: [ "$mylista", 0 ] }, "$$ROOT" ] } }
},
{
$lookup: {
from: "users",
as: "user",
let: {username: '$mylista.username' },
let: {username: '$username' },
pipeline: [
{
$match: {
@@ -196,6 +196,7 @@ NavePersistenteSchema.statics.getListaNavi = function (idapp) {
col: 1,
riga1don: 1,
col1don: 1,
date_gift_chat_open: 1,
date_start: 1,
provvisoria: 1,
DoniConfermati: 1,
@@ -252,6 +253,10 @@ NavePersistenteSchema.statics.getLastRigaCol = async function (idapp) {
return NavePersistente.findOne({ idapp }).sort({ _id: -1 });
};
NavePersistenteSchema.statics.getLastRigaColDefinitiva = async function (idapp) {
return NavePersistente.findOne({ idapp, provvisoria: false }).sort({ riga: -1, col: -1 });
};
NavePersistenteSchema.pre('save', async function (next) {
if (this.isNew) {
const myrec = await NavePersistente.findOne().limit(1).sort({ _id: -1 });

View File

@@ -405,6 +405,7 @@ UserSchema.statics.getUserShortDataByUsername = async function (idapp, username)
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
}, {
lang: 1,
index: 1,
ind_order: 1,
username: 1,
aportador_solidario: 1,
@@ -647,17 +648,24 @@ UserSchema.statics.getLastUser = function (idapp) {
return User.findOne({
idapp,
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
}).sort({ ind_order: -1 })
}).sort({ index: -1 })
};
UserSchema.statics.findByIndOrder = function (idapp, ind_order) {
const User = this;
return User.getRecByIndOrder(idapp, ind_order);
};
UserSchema.statics.findByIndex = function (idapp, index) {
const User = this;
try {
// ++Todo: non mettere tutti i campi !!
return User.findOne({
idapp,
ind_order,
index,
$or: [{ deleted: { $exists: false } }, { deleted: { $exists: true, $eq: false } }],
});
} catch (e) {
@@ -711,7 +719,7 @@ UserSchema.pre('save', async function (next) {
*/
next();
}catch (e) {
} catch (e) {
console.error(e.message);
}
});
@@ -855,12 +863,9 @@ UserSchema.statics.SetTelegramIdSuccess = async function (idapp, id, teleg_id) {
UserSchema.statics.getLangByIndOrder = async function (idapp, ind_order) {
const User = this;
return await User.findOne({ idapp, ind_order }, { lang: 1 })
.then((rec) => {
return (!!rec) ? rec.lang : '';
}).catch((e) => {
return 'it';
});
const rec = await User.getSmallRecByIndOrder(idapp, ind_order);
return (!!rec) ? rec.lang : '';
};
@@ -921,10 +926,14 @@ UserSchema.statics.getSmallRecByIndOrder = async function (idapp, ind_order) {
},
{
idapp: 1,
index: 1,
ind_order: 1,
old_order: 1,
username: 1,
name: 1,
surname: 1
lang: 1,
surname: 1,
'profile.teleg_id': 1,
});
if (!!rec)
@@ -938,6 +947,27 @@ UserSchema.statics.getSmallRecByIndOrder = async function (idapp, ind_order) {
};
UserSchema.statics.getRecByIndOrder = async function (idapp, ind_order) {
try {
const rec = await ListaIngresso.getarray(idapp,
{
idapp,
ind_order,
deleted: false,
});
if (!!rec)
return rec[0];
return null;
} catch (e) {
console.error('getRecByIndOrder', e);
}
};
UserSchema.statics.getusersManagers = async function (idapp) {
const User = this;
@@ -1142,7 +1172,10 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
dashboard.arrposizioni = await Nave.getArrPosizioniByUsername(idapp, username);
const arrrec = await ListaIngresso.getProssimiInLista(idapp, true);
let arrrec = [];
if (dashboard.arrimbarchi.length > 0) {
arrrec = await ListaIngresso.getProssimiInLista(idapp, true);
}
for (let myimbarco of dashboard.arrimbarchi) {
if (!!myimbarco.invitante_username)
@@ -1158,6 +1191,7 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
mypos._doc.nave_partenza = await NavePersistente.findByRigaColByDonatore(idapp, mypos.riga, mypos.col, 0);
}
//for (let indriga = 0; indriga < 10; indriga++) {
// dashboard.navi_partenza.push(await Nave.getPrimaNaveByRiga(idapp, indriga));
//}
@@ -1196,7 +1230,7 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
myrec.nave_partenza = await NavePersistente.findByRigaColByDonatore(idapp, myrec.riga, myrec.col, 0);
arrnew.push(myrec);
arrnew.push(myrec);
}
}
}
@@ -1212,6 +1246,7 @@ UserSchema.statics.getDashboard = async function (idapp, aportador_solidario, us
}
};
/*
UserSchema.statics.fixUsername = async function (idapp, aportador_solidario_ind_order, username) {
const User = this;
@@ -1229,6 +1264,7 @@ UserSchema.statics.fixUsername = async function (idapp, aportador_solidario_ind_
};
*/
UserSchema.statics.findByCellAndNameSurname = function (idapp, cell, name, surname) {
const User = this;
@@ -1371,7 +1407,7 @@ UserSchema.statics.visuUtentiNonInNavi = async function (idapp) {
visualizza = true;
if (visualizza) {
mystr += user.username + ' ' + user.name + ' ' + user.surname + ' [' + user.ind_order + '] [inv=' + user.numinvitati + ']'
mystr += user.username + ' ' + user.name + ' ' + user.surname + ' [' + user.index + '] [inv=' + user.numinvitati + ']'
trovato = true;
}
@@ -1524,7 +1560,7 @@ UserSchema.statics.getLastUsers = async function (idapp) {
name: 1,
surname: 1,
date_reg: 1,
ind_order: 1,
index: 1,
'profile.nationality': 1,
}).sort({ date_reg: -1 }).limit(lastn).then((arr) => {
//return JSON.stringify(arr)
@@ -1717,26 +1753,10 @@ async function addUtentiInLista(idapp, mode, arrusers) {
}
UserSchema.statics.deveRitessersi = async function (idapp, ind_order) {
const myrec = await User.findOne({
'idapp': idapp,
'ind_order': ind_order,
"profile.vuole_ritessersi": true
});
return (!!myrec)
};
UserSchema.statics.getUsernameByIndOrder = async function (idapp, ind_order) {
const myrec = await User.findOne({
'idapp': idapp,
'ind_order': ind_order,
}, { username: 1 });
return (!!myrec) ? myrec.username : ''
const myrec = await User.getSmallRecByIndOrder(idapp, ind_order);
return (!!myrec) ? myrec.username : '';
};
@@ -1755,7 +1775,7 @@ UserSchema.statics.ricalcolaIndex = async function (idapp) {
const User = this;
const arrusers = await User.find({ idapp }).sort({ ind_order: 1 });
let index = 1;
let index = 0;
try {
for (const user of arrusers) {
let field = {
@@ -1766,7 +1786,7 @@ UserSchema.statics.ricalcolaIndex = async function (idapp) {
const ris = await User.findOneAndUpdate({ _id: user._id }, { $set: field }, { new: false });
}
}catch (e) {
} catch (e) {
console.error(e.message);
}
@@ -1799,7 +1819,8 @@ UserSchema.statics.changeInvitante = async function (idapp, username, invitante_
// **
const rec_ingr = await ListaIngresso.findOne({ idapp, username: username });
if (!!rec_ingr) {
await ListaIngresso.findByIdAndUpdate(rec_ingr._id, { $set: { invitante_username, ind_order: ind_order_ingr } });
// await ListaIngresso.findByIdAndUpdate(rec_ingr._id, { $set: { invitante_username, ind_order: ind_order_ingr } });
await ListaIngresso.findByIdAndUpdate(rec_ingr._id, { $set: { invitante_username } });
}

View File

@@ -122,6 +122,8 @@ router.post('/getnavi', authenticate, async (req, res) => {
let arrnavi = await NavePersistente.findAllIdApp(idapp);
// let arrnavi = await NavePersistente.find({idapp, date_gift_chat_open: { $gte: tools.IncDateNow(-1000 * 3600 * 24 * 7 ) } }).sort({ riga: 1, col: 1 });
for (nave of arrnavi) {
//nave.rec = await Nave.getNaveByRigaCol(idapp, nave.riga, nave.col);
nave._doc.rec = {
@@ -153,8 +155,14 @@ router.post('/getnavi', authenticate, async (req, res) => {
router.post('/getdoninavi', authenticate, async (req, res) => {
const idapp = req.body.idapp;
const ricalcola = req.body.ricalcola;
const showall = req.body.showall;
let arrnavi = null;
if (showall)
arrnavi = await NavePersistente.findAllIdApp(idapp);
else
arrnavi = await NavePersistente.find({idapp, date_gift_chat_open: { $gte: tools.IncDateNow(-1000 * 3600 * 24 * 7 ) } }).sort({ riga: 1, col: 1 });
let arrnavi = await NavePersistente.findAllIdApp(idapp);
let test = false;
//arrnavi.push({ riga: indriga, col: indcol, rigadon: indriga + 3, coldon: (indcol * 8) - 7 });
@@ -168,7 +176,7 @@ router.post('/getdoninavi', authenticate, async (req, res) => {
index++;
}
} else {
arrnavi = await NavePersistente.findAllIdApp(idapp);
// arrnavi = await NavePersistente.findAllIdApp(idapp);
for (nave of arrnavi) {
if (nave.provvisoria || nave.DoniTotali !== nave.DoniConfermati) {
nave._doc.rec = await Nave.getNaveByRigaCol(idapp, nave.riga1don, nave.col1don);

View File

@@ -315,15 +315,15 @@ async function checkIfSbloccatiRequisiti(idapp, allData, id) {
// CHECK APORTADOR SOLIDARIO:
if (!!allData.useraportador) {
/*
const is9reqAportador = await User.isUserQualified9(idapp, allData.myuser.aportador_solidario);
/*
const is9reqAportador = await User.isUserQualified9(idapp, allData.myuser.aportador_solidario);
if (!allData.precDataAportador.is9req && is9reqAportador) {
// ORA HAI I 9 REQUISITI !
const msgtext = telegrambot.getCiao(idapp, allData.myuser.aportador_solidario, allData.useraportador.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.useraportador.lang);
telegrambot.sendMsgTelegram(idapp, allData.myuser.aportador_solidario, msgtext, true); // Anche a STAFF
}
*/
if (!allData.precDataAportador.is9req && is9reqAportador) {
// ORA HAI I 9 REQUISITI !
const msgtext = telegrambot.getCiao(idapp, allData.myuser.aportador_solidario, allData.useraportador.lang) + tools.gettranslate('HAI_I_9_REQUISITI', allData.useraportador.lang);
telegrambot.sendMsgTelegram(idapp, allData.myuser.aportador_solidario, msgtext, true); // Anche a STAFF
}
*/
}
}
@@ -405,7 +405,7 @@ router.patch('/chval', authenticate, async (req, res) => {
// Send Notification to the BOT
await telegrambot.sendMsgTelegram(idapp, mydata.notifBot.un, mydata.notifBot.txt);
addtext = '[Msg Inviato a ' + mydata.notifBot.un + ']:' + '\n' + mydata.notifBot.txt;
await telegrambot.sendMsgTelegramToTheManagers(idapp, addtext, true);
telegrambot.sendMsgTelegramToTheManagers(idapp, addtext, true);
}
if (mydata.table === 'users') {
@@ -534,107 +534,137 @@ router.patch('/callfunz', authenticate, async (req, res) => {
}
}
const myuser = await User.findOne({ idapp, username });
let myuser = await User.findOne({ idapp, username });
let rimosso = 0;
if (mydata.myfunc === shared_consts.CallFunz.SOSTITUISCI) { // SOSTITUISCI
username_da_sostituire = mydata.data.username_da_sostituire;
mianavedasost = await Nave.findOne({ idapp, riga: mydata.data.riga, col: mydata.data.col });
if (!!mianavedasost) {
// Sostituisci l'Utente
myusernuovo = await User.getUserShortDataByUsername(idapp, mydata.data.username);
let navepersistente = await NavePersistente.findByRigaColByDonatore(idapp, mydata.data.riga, mydata.data.col, 0);
// Sostituisci l'Utente
myusernuovo = await User.getUserShortDataByUsername(idapp, mydata.data.username);
let navepersistente = await NavePersistente.findByRigaColByDonatore(idapp, mydata.data.riga, mydata.data.col, 0);
if (!!myusernuovo) {
// Controlla prima se è in una Nave Temporanea, allora lo elimina
miaarrnavi = await Nave.find({ idapp, ind_order: myusernuovo.ind_order });
if (miaarrnavi) {
for (const mianave of miaarrnavi) {
let persistente = await NavePersistente.findByRigaColByDonatore(idapp, mianave.riga, mianave.col, 0);
if (persistente.provvisoria) {
if (!!myusernuovo) {
if (!mydata.data.AddImbarco && !!mianavedasost && mianavedasost.ind_order > 0) {
// Controlla prima se è in una Nave Temporanea, allora lo elimina dalla Nave Temporanea
miaarrnavi = await Nave.getArrPosizioniByUsername(idapp, username);
if (miaarrnavi) {
for (const mianave of miaarrnavi) {
let persistente = await NavePersistente.findByRigaColByDonatore(idapp, mianave.riga, mianave.col, 0);
if (persistente.provvisoria) {
fieldsvalue = {
ind_order: -1
};
let ris = await Nave.findByIdAndUpdate(mianave.id, { $set: fieldsvalue });
if (!!ris) {
rimosso++;
break; // Rimuovilo solo 1 !
}
}
}
}
}
if (!!myuser) {
if (!!mianavedasost && mianavedasost.ind_order >= 0) {
// Metti campo 'delete': true su ListaIngresso
olduseringresso = await ListaIngresso.findOne({ idapp, ind_order: mianavedasost.ind_order });
if (!!olduseringresso) {
let fieldsvalue = {
deleted: true
};
const risul = await ListaIngresso.findByIdAndUpdate(olduseringresso.id, { $set: fieldsvalue }, { new: false });
}
}
}
if (!!myuser) {
if (mydata.data.deleteUser && !!mianavedasost && mianavedasost.ind_order > 0) {
// Metti Deleted allo User
fieldsvalue = {
ind_order: -1
deleted: true
};
let ris = await Nave.findByIdAndUpdate(mianave.id, { $set: fieldsvalue });
if (!!ris) {
rimosso++;
}
await User.findByIdAndUpdate(myuser.id, { $set: fieldsvalue });
await telegrambot.sendMsgTelegramToTheManagers(idapp, `L\'utente ${myuser.name} ${myuser.surname} (${myuser.username}) è stato cancellato (nascosto) perchè sostituito (da ${req.user.name} ${req.user.surname} )`);
}
}
}
if (!!myuser) {
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// CONTROLLARE !!!
// ++Todo: Controllare che sia corretto che lo nascondo !!!
// Metti campo 'delete': true su ListaIngresso
olduseringresso = await ListaIngresso.findOne({ idapp, ind_order: old_ind_order });
if (!!olduseringresso) {
let fieldsvalue = {
deleted: true
};
const risul = await ListaIngresso.findByIdAndUpdate(olduseringresso.id, { $set: fieldsvalue }, { new: false });
let ind_order = -1;
let myingr = null;
// Estrai un ind_order dalla Lista, se era ancora in attesa
if (!mydata.data.AddImbarco)
myingr = await ListaIngresso.findOne({ idapp, added: false, username: myusernuovo.username });
if (!!myingr) {
ind_order = myingr.ind_order;
myingr.added = true;
await myingr.save();
} else {
// Crea un nuovo Ingresso
myingr = await ListaIngresso.addUserInListaIngresso(idapp, myuser.username, myuser.username, myuser.lang, false, true, null, null, true);
ind_order = myingr.ind_order;
await myingr.save();
}
}
if (!!myuser) {
// Metti Deleted allo User
// Aggiorna la Nave con il Nuovo
fieldsvalue = {
deleted: true
ind_order
};
await User.findByIdAndUpdate(myuser.id, { $set: fieldsvalue });
}
// Aggiorna la Nave con il Nuovo
fieldsvalue = {
ind_order: myusernuovo.ind_order
};
const dachi = req.user.name + ' ' + req.user.surname;
const dachi = req.user.name + ' ' + req.user.surname;
return await Nave.findByIdAndUpdate(mianavedasost.id, { $set: fieldsvalue })
.then(async (rec) => {
// tools.mylogshow(' REC TO MODIFY: ', rec);
if (!rec) {
return res.status(404).send();
} else {
if (mydata.notifBot && !!navepersistente.link_chat) {
// Send Notification to the BOT
let messaggio = tools.get__('SPOSTATO', req.user.lang);
return await Nave.findByIdAndUpdate(mianavedasost.id, { $set: fieldsvalue })
.then(async (rec) => {
// tools.mylogshow(' REC TO MODIFY: ', rec);
if (!rec) {
return res.status(404).send();
} else {
if (mydata.data.notifBot && !!navepersistente.link_chat) {
// Send Notification to the BOT
let messaggio = tools.get__('SPOSTATO', req.user.lang);
if (!!navepersistente.date_start) {
messaggio += tools.ACAPO + tools.get__('DATA_PART_NAVE', req.user.lang) + tools.getstrDateLong(navepersistente.date_start) + tools.ACAPO;
}
if (!!navepersistente.link_chat) {
messaggio += tools.ACAPO + tools.get__('ENTRA_GIFT_CHAT', req.user.lang) + navepersistente.link_chat + tools.ACAPO;
if (!!navepersistente.date_start) {
messaggio += tools.ACAPO + tools.get__('DATA_PART_NAVE', req.user.lang) + tools.getstrDateLong(navepersistente.date_gift_chat_open) + tools.ACAPO;
}
if (!!navepersistente.link_chat) {
messaggio += tools.ACAPO + '👉🏻👉🏻 <strong><a href="' + navepersistente.link_chat + '">' + tools.get__('ENTRA_GIFT_CHAT', req.user.lang) + '</a></strong> ' + tools.ACAPO;
}
const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col);
messaggio += tools.ACAPO + myplacca;
await telegrambot.sendMsgTelegram(idapp, myusernuovo.username, messaggio);
await telegrambot.sendMsgTelegramToTheManagers(idapp, mydata.notifBot.txt + ' ' + myusernuovo.name + ' ' + myusernuovo.surname + ' [da ' + dachi + ']' + tools.ACAPO + 'Inviato messaggio: ' + messaggio);
await telegrambot.sendMsgTelegram(idapp, req.user.username, mydata.notifBot.txt);
await telegrambot.sendMsgTelegram(idapp, req.user.username, myplacca);
}
const myplacca = await Nave.getNavePos(idapp, navepersistente.riga, navepersistente.col);
messaggio += tools.ACAPO + myplacca;
await telegrambot.sendMsgTelegram(idapp, myusernuovo.username, messaggio);
// const nomecognomeprima = myuser.name + ' ' + myuser.surname + '(' + myuser.username + ')';
// const nomecognomenuovo = await User.getNameSurnameByUsername(idapp,);
await telegrambot.sendMsgTelegramToTheManagers(idapp, mydata.notifBot.txt + ' ' + myusernuovo.name + ' ' + myusernuovo.surname + ' [da ' + dachi + ']' + tools.ACAPO + 'Inviato messaggio: ' + messaggio);
await telegrambot.sendMsgTelegram(idapp, req.user.username, mydata.notifBot.txt);
await telegrambot.sendMsgTelegram(idapp, req.user.username, myplacca);
res.send({ code: server_constants.RIS_CODE_OK, msg: '' });
}
// const nomecognomeprima = myuser.name + ' ' + myuser.surname + '(' + myuser.username + ')';
// const nomecognomenuovo = await User.getNameSurnameByUsername(idapp,);
res.send({ code: server_constants.RIS_CODE_OK, msg: '' });
}
}).catch((e) => {
tools.mylogserr('Error patch USER: ', e);
res.status(400).send();
})
}).catch((e) => {
tools.mylogserr('Error patch USER: ', e);
res.status(400).send();
})
}
}
} else if (mydata.myfunc === shared_consts.CallFunz.AGGIUNGI_NUOVO_IMBARCO) {
// Ottieni il prossimo Numero di Tessitura

View File

@@ -125,21 +125,6 @@ router.post('/', async (req, res) => {
// nomeaportador_corretto = recextra.aportador_solidario_originale_name_surname;
// }
const lastuser = await User.getLastUser(user.idapp);
// const lastextra = await ExtraList.getLastUser(user.idapp);
let lastindorder = 0;
if (lastuser) {
lastindorder = lastuser.ind_order;
}
//if (lastextra) {
// if (lastextra.ind_order > lastindorder)
// lastindorder = lastextra.ind_order;
//}
if (lastindorder > 0)
user.ind_order = lastindorder + 1;
const numero = user.name.slice(-1);
if ((numero === '2') || (numero === '3') || (numero === '4') || (numero === '5') || (numero === '6')) {
recorig = await User.findByCellAndNameSurname(user.idapp, user.profile.cell, user.name.slice(0, -1), user.surname);
@@ -238,7 +223,7 @@ router.post('/', async (req, res) => {
recextra.username = user.username;
await recextra.save();
await User.fixUsername(user.idapp, user.ind_order, user.username);
// await User.fixUsername(user.idapp, user.ind_order, user.username);
}
return token;
})
@@ -646,7 +631,7 @@ router.post('/dbop', authenticate, async (req, res) => {
lastrec = await User.find({ idapp }).sort({ _id: -1 }).limit(1);
let last = 1;
if (lastrec) {
last = lastrec[0].ind_order;
last = lastrec[0].index;
}
if (!last) {
last = 1;
@@ -655,15 +640,15 @@ router.post('/dbop', authenticate, async (req, res) => {
for (let ind = 0; ind < 100; ind++) {
let myuser = new User();
myuser._id = new ObjectID();
myuser.ind_order = last + ind + 1;
myuser.index = last + ind + 1;
myuser.idapp = idapp;
myuser.password = "$2a$12$DEaX1h5saTUVC43f7kubyOAlah1xHDgqQTfSIux0.RFDT9WGbyCaG";
myuser.lang = 'it';
myuser.email = "miaemail@email.it";
myuser.name = 'U' + myuser.ind_order;
myuser.surname = 'Ar' + myuser.ind_order;
myuser.name = 'U' + myuser.index;
myuser.surname = 'Ar' + myuser.index;
myuser.verified_email = true;
if (myuser.ind_order < 2)
if (myuser.index < 2)
myuser.perm = "3";
myuser.username = "Userna_" + myuser.name;
myuser.profile.special_req = true;

View File

@@ -462,7 +462,7 @@ module.exports = {
let userdest = mylocalsconf.user.aportador_solidario;
let langdest = mylocalsconf.user.lang;
let NameFrom = `${mylocalsconf.user.name} ${mylocalsconf.user.surname}`;
const ind_order = mylocalsconf.user.ind_order;
const index = mylocalsconf.user.index;
let aportador = '';
if (userdest) {
@@ -478,7 +478,7 @@ module.exports = {
NameFrom = await User.getNameSurnameByUsername(mylocalsconf.idapp, userdest) + aportador;
aportador = NameFrom;
}
text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`, ind_order, aportador);
text = printf(getstr(langdest, 'MSG_APORTADOR_USER_REGISTERED'), `${mylocalsconf.user.name} ${mylocalsconf.user.surname} (${mylocalsconf.user.username})`, index, aportador);
}
let addtext = "";
@@ -501,7 +501,7 @@ module.exports = {
if (usersmanagers) {
for (const rec of usersmanagers) {
await this.sendMsgTelegramByIdTelegram(idapp, rec.profile.teleg_id, emo.ROBOT_FACE + '[BOT-STAFF]' + emo.ADMIN + ': ' + text, undefined, undefined, true);
await tools.snooze(300)
await tools.snooze(200)
}
}
}
@@ -840,6 +840,10 @@ class Telegram {
}
geturlfaq() {
return tools.getHostByIdApp(this.idapp) + '/faq'
}
async IsTesto(msg) {
let risp = '';
@@ -855,7 +859,7 @@ class Telegram {
const rec = this.getRecInMem(msg);
let myname = '';
if (rec.user) {
myname = rec.user.name + ' ' + rec.user.surname + ' (n.' + rec.user.ind_order + ')';
myname = rec.user.name + ' ' + rec.user.surname + ' (n.' + rec.user.index + ')';
}
if (rec.statusmsg === Status.WAITFOR_RISPOSTA) {
@@ -917,7 +921,7 @@ class Telegram {
if (!!rec.user) {
const myrec = await User.getUserShortDataByUsername(this.idapp, rec.user.username);
risp += '\nSul sito ti sei registrato come:\n\n[N. ' + rec.user.ind_order + ']: ' + rec.user.name + ' ' + rec.user.surname + '\nUsername: ' + rec.user.username + '\n' + 'Email: ' + rec.user.email + '\nLang: ' + rec.user.lang + tools.ACAPO;
risp += '\nSul sito ti sei registrato come:\n\n[N. ' + rec.user.index + ']: ' + rec.user.name + ' ' + rec.user.surname + '\nUsername: ' + rec.user.username + '\n' + 'Email: ' + rec.user.email + '\nLang: ' + rec.user.lang + tools.ACAPO;
risp += 'Num Invitati: ' + myrec.numinvitati + tools.ACAPO;
risp += 'Num Invitati Attivi: ' + myrec.numinvitatiattivi + tools.ACAPO;
} else {
@@ -986,13 +990,14 @@ class Telegram {
risp = emo.JOY + emo.JOY + emo.JOY;
} else if (testo.length >= 10) {
noanswer = true;
risp = 'Questo messaggio è stato inviato alla Chat Help\nIo sono solo un Robot ' + emo.ROBOT_FACE + emo.JOY2 + '\n\nPer AIUTO, contatta la Chat AYNI - HELP';
let myfaq = this.geturlfaq();
risp = 'Io sono solo un Robot ' + emo.ROBOT_FACE + emo.JOY2 + '\n\nPer AIUTO, clicca qui:\n👉🏻👉🏻<a href="' + myfaq + '">FAQ di AIUTO</a> (risposte alle domande più frequenti)\n\nSe non trovi risposta allora contatta la Chat AYNI - HELP.\nGrazie\nStaff AYNI';
// risp += '\nClicca qui per entrare nella Chat AYNI - HELP di Supporto\n' + 'https://t.me/joinchat/AL2qKE80rxDkgbeMGO-0bw' + '\n\nI miei colleghi umani ti aiuteranno a risolvere !';
await local_sendMsgTelegramToTheManagers(this.idapp, testo, msg, rec.username_bo);
}
}
let keyboard = {};
let keyboard = null;
if (contastiera) {
keyboard = {
@@ -1250,6 +1255,7 @@ class Telegram {
if (!!mystrnave) {
mystr += '✨✨✨' + tools.get__('TUE_NAVI', this.getlang(msg)) + ':\n';
mystr += mystrnave;
} else {
if (!tuttie9) {
@@ -1291,7 +1297,7 @@ class Telegram {
let index = 1;
dashboard.downline.forEach((user) => {
mystr += emoji.get('star-struck') + ` ${index}°: `;
mystr += (user._doc.qualified) ? emo.CHECK_VERDE : emo.CROSS_ROSSA;
mystr += (user.qualified) ? emo.CHECK_VERDE : emo.CROSS_ROSSA;
mystr += `${user.name} ${user.surname} (${user.username})\n`;
index++;
});

View File

@@ -65,8 +65,8 @@ textlang = {
'HAI_I_9_REQUISITI': 'COMPLIMENTI!\nHai Completato TUTTI i 9 Passi della Guida! Grazie per Aiutare AYNI ad Espandersi!',
'NON_HAI_I_9_REQUISITI': 'Ricqorda che puoi Aiutare a far Crescere ed Espandere il Movimento, Condividendo con chiunque questo nostro viaggio!',
'INFO_LA_MIA_LAVAGNA': '✨ Lista dei Passi: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Per completare tutti i requisiti vai sul sito:\n%s\nPer vedere lo stato della tua Nave e dei tuoi invitati, clicca sulle 3 linee in alto a sinistra ed accedi alla voce "Lavagna".\n',
'INFO_LAVAGNA_SITO': 'Per vedere in dettaglio lo stato della tua Nave, sul sito AYNI, clicca sulle 3 linee in alto a sinistra ed accedi alla voce "Lavagna".\n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Per completare tutti i requisiti vai sul sito:\n%s\nPer vedere lo stato della tua Nave e dei tuoi invitati:\n 👉🏻 <a href="%s">Entra nella tua Lavagna</a>.\n',
'INFO_LAVAGNA_SITO': 'Per vedere in dettaglio lo <strong>STATO della tua Nave</strong>, sul sito AYNI\n 👉🏻 <a href="%s">Entra nella tua Lavagna</a>.\n',
'INFO_LINK_DA_CONDIVIDERE': 'Link da condividere ai tuoi invitati per farli registrare al sito di Ayni:\n\n%s',
'INFO_LINK_ZOOM': 'Link da condividere per partecipare allo Zoom (Conferenza OnLine):\n%s',
'ZOOM_CONFERENCE': 'Ecco il programma delle Conferenze (Zoom) aperti a TUTTI:',
@@ -91,7 +91,8 @@ textlang = {
'SCEGLI_VOCE': 'scegli una voce:',
'INVITATI_LISTA': 'I Tuoi Invitati (in verde con almeno i primi 7 Requisiti)',
'CIAO': 'Ciao',
'ADDED_TOLISTAINGRESSO': '<strong>Complimenti ! Hai completato i 7 Passi!🎊</strong>\nSei stato aggiunto alla Lista delle persone che entreranno nella Lista D\'Imbarco !\nNei prossimi giorni riceverai un messaggio quando la tua Nave partirà.',
'ADDED_TOLISTAINGRESSO': '<strong>Complimenti! 🎊</strong>\nSei stato aggiunto alla <strong>Lista D\'Imbarco</strong> !\nNei prossimi giorni riceverai un messaggio qui quando la tua Nave sarà pronta a partire.\nRicorda che per salire di graduatoria, puoi condividere il Movimento con i tuoi amici ❤️.',
'REGALATO_INVITANTE': 'da fare.... 😍🎊 Hai ricevuto in Regalo un Invitato {invitato} da parte di {mittente} !',
'NO_PROG': 'Attualmente non sei ancora dentro alla Lista d\'Imbarco!',
'SEND_LINK_CHAT_DONATORI': 'Ciao %s!\nLa tua NAVE sta finalmente Salpando!\nEntra nella Gift Chat della nave {%s} cliccando qui: %s',
'SEND_LINK_CHAT_SOGNATORE': 'Ciao %s!\nOggi Diventi Sognatore !!! 🎊🎊🎊 Entra nella Gift Chat della nave {%s} cliccando qui: %s',
@@ -104,8 +105,9 @@ textlang = {
'NAVE COMPLETATA': 'NAVE COMPLETATA',
'Doni Effettuati': 'Doni Effettuati',
'Tutor che affianchèra il Mediatore': 'Tutor che affianchèra il Mediatore',
'APERTURA_CHIUSURA_GIFT_CHAT': '%s: Apertura GIFT CHAT\n%s Chiusura GIFT CHAT\nNota Bene: Hai tempo 4 giorni dall\'apertura per entrare in Chat ed effettuare il tuo Dono, dopodichè effettueremo la sostituzione.',
'Giorno di Apertura GIFT CHAT': 'Giorno di Apertura GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Hai 4 giorni di tempo per inviare il tuo dono. Giorno di Chiusura:',
'Giorno in cui Inviare il DONO': 'Hai 4 giorni di tempo per inviare il tuo dono.\nGiorno di Chiusura',
'SPOSTATO': 'Sei stato Spostato in una Nuova Nave !',
'Note': 'Note',
'TEMPORANEA': 'TEMPORANEA',
@@ -132,7 +134,7 @@ textlang = {
'HAI_I_9_REQUISITI': 'ČESTITAMO!\nIzpolnil si VSEH 9 korakov v navodilih! Hvala ker pomagaš k širitvi AYNI !',
'NON_HAI_I_9_REQUISITI': 'Zapomni si, če želiš Pomagati Rasti in Širit Gibanje, lahko to storiš z delitvijo med ljudmi!',
'INFO_LA_MIA_LAVAGNA': '✨ Seznam Krajev: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Da izpolneš vse zahteve, pojdi na spletno stran:\n%s\nDa pogledaš status svoje Ladje in status svojih povabljencev, klikni na levi strani zgoraj na tri črte in izberi "Tabla".\n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Da izpolneš vse zahteve, pojdi na spletno stran:\n%s\nDa pogledaš status svoje Ladje in status svojih povabljencev, klikni na levi strani zgoraj na tri črte in izberi "Tabla".\n👉🏻 <a href="%s">Table</a>',
'INFO_LAVAGNA_SITO': 'Da lahko podrobno pogledaš status svoje Ladje,na spletni strani AYNI, klikni, na levi strani zgoraj, na tri črtice in izberi "Tabla".\n',
'INFO_LINK_DA_CONDIVIDERE': 'Link, ki ga deliš svojim povabljencem, da se lahko registrirajo na spletni strani Ayni:\n\n%s',
'INFO_LINK_ZOOM': 'Link, ki ga deliš za udeležbo na Zoom (Konferenca OnLine):\n%s',
@@ -171,8 +173,7 @@ textlang = {
'NAVE COMPLETATA': 'LADJE DOSTAVLJEN',
'Doni Effettuati': 'Darila narejena',
'Tutor che affianchèra il Mediatore': 'Tutor, ki bo podpiral Mediatorja',
'Giorno di Apertura GIFT CHAT': 'Dan odpiranja GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Dan za pošiljanje DARILA',
'APERTURA_CHIUSURA_GIFT_CHAT': '%s: Apertura GIFT CHAT\n%s Zapiranje DARILNEGA KLEPETA\nBodi pozoren: Časa imaš 4 dni od odprtja za vstop v Klepet- ladjico in izpeljati svoje Vplačilo, po tem času bomo izvedli zamenjavo',
'SPOSTATO': 'Prestavljen si v Novo Ladjico !',
'Note': 'Opombe',
'TEMPORANEA': 'ZAČASNA',
@@ -197,7 +198,7 @@ textlang = {
'HAI_I_9_REQUISITI': '¡FELICITACIONES!\n¡Has completado los 9 pasos de la Guía! Gracias por ayudar a AYNI a expandirse!',
'NON_HAI_I_9_REQUISITI': 'Recuerda que puedes ayudar a que el Movimiento crezca y se expanda compartiendo nuestro viaje con todos.!',
'INFO_LA_MIA_LAVAGNA': '✨ Lista de pasos: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Para completar todos los requisitos vaya al sitio:\n%s\nPara ver el estado de su nave y sus invitados, haga clic en las 3 líneas de arriba a la izquierda y vaya a "Pizarra".\n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Para completar todos los requisitos vaya al sitio:\n%s\nPara ver el estado de su nave y sus invitados,👉🏻 <a href="%s">Pizarra</a>.\n',
'INFO_LAVAGNA_SITO': 'Para ver en detalle el estado de su nave, en el sitio web de AYNI, haga clic en las 3 líneas de la parte superior izquierda y vaya a "Pizarra"..\n',
'INFO_LINK_DA_CONDIVIDERE': 'Enlaces para compartir con sus invitados para que se registren en el sitio web de Ayni:\n\n%s',
'INFO_LINK_ZOOM': 'Enlaces para compartir para participar en el Zoom (Conferencia en línea):\n%s',
@@ -236,8 +237,7 @@ textlang = {
'NAVE COMPLETATA': 'NAVE COMPLETADA',
'Doni Effettuati': 'Regalos Realizados',
'Tutor che affianchèra il Mediatore': 'Tutor de apoyo al Donante',
'Giorno di Apertura GIFT CHAT': 'Día de apertura GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Día en el que enviar el REGALO',
'APERTURA_CHIUSURA_GIFT_CHAT': '%s: Apertura del CHAT DE REGALOS\n%s Cierre del CHAT DE REGALOS\nNota: Tienes 4 días desde la apertura para entrar en el Chat y hacer tu Regalo, después de lo cual haremos el reemplazo',
'SPOSTATO': 'Has sido trasladado a una nueva nave !',
'Note': 'Notas',
'TEMPORANEA': 'TEMPORAL',
@@ -259,7 +259,7 @@ textlang = {
'HAI_I_9_REQUISITI': 'CONGRATULATIONS!\nYou have completed ALL 9 steps of the Guide! Thank you for Helping AYNI Expand!',
'NON_HAI_I_9_REQUISITI': 'Remember that you can help the Movement grow and expand by sharing our journey with everyone.!',
'INFO_LA_MIA_LAVAGNA': '✨ Step List: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'To complete all the requirements go to the site:%s\nTo see the status of your Ship and your guests, click on the 3 lines at the top left and go to "Dashboard"\n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'To complete all the requirements go to the site:%s\nTo see the status of your Ship and your guests\n👉🏻 <a href="%s">Dashboard</a>\n',
'INFO_LAVAGNA_SITO': 'To see in detail the status of your ship, on the AYNI website, click on the 3 lines at the top left and go to "Blackboard".\n',
'INFO_LINK_DA_CONDIVIDERE': 'Links to share with your guests to have them register on Ayni\'s website:\n\n%s',
'INFO_LINK_ZOOM': 'Links to share to participate in Zoom (Online Conference):\n%s',
@@ -298,8 +298,7 @@ textlang = {
'NAVE COMPLETATA': 'SHIP COMPLETED',
'Doni Effettuati': 'Gifts Made',
'Tutor che affianchèra il Mediatore': 'Tutor supporting the Mediator',
'Giorno di Apertura GIFT CHAT': 'Opening Day GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Day on which to send the Gift',
'APERTURA_CHIUSURA_GIFT_CHAT': '%s: Opening GIFT CHAT\n%s Closing GIFT CHAT\nNote: You have 4 days from the opening to enter the Chat and make your Gift, after which we will make the replacement.',
'SPOSTATO': 'You\'ve been moved to a New Ship !',
'Note': 'Note',
'TEMPORANEA': 'TEMPORARY',
@@ -325,8 +324,8 @@ textlang = {
'HAI_I_9_REQUISITI': 'FÉLICITATIONS!\n!Vous avez franchi les 9 étapes de la conduite ! Merci d\'avoir aidé AYNI à se développer!',
'NON_HAI_I_9_REQUISITI': 'N\'oubliez pas que vous pouvez aider le Mouvement à grandir et à se développer en partageant notre voyage avec tout le monde.!',
'INFO_LA_MIA_LAVAGNA': '✨ Liste des étapes: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Pour remplir toutes les conditions, rendez-vous sur le site:\n%s\nPour voir le statut de votre navire et de vos invités, cliquez sur les 3 lignes en haut à gauche et allez sur "Tableau noir".\n',
'INFO_LAVAGNA_SITO': 'Pour voir en détail le statut de votre navire, sur le site de l\'AYNI, cliquez sur les 3 lignes en haut à gauche et allez sur "Tableau noir".\n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Pour remplir toutes les conditions, rendez-vous sur le site:\n%s\nPour voir le statut de votre navire et de vos invités\n 👉🏻 <a href="%s">Tableau</a>.\n',
'INFO_LAVAGNA_SITO': 'Pour voir en détail le statut de votre navire, sur le site de l\'AYNI, cliquez sur les 3 lignes en haut à gauche et allez sur "Tableau".\n',
'INFO_LINK_DA_CONDIVIDERE': 'Liens à partager avec vos invités pour qu\'ils s\'inscrivent sur le site web d\'Ayni:\n\n%s',
'INFO_LINK_ZOOM': 'Liens à partager pour participer à Zoom (Conférence en ligne):\n%s',
'ZOOM_CONFERENCE': 'Vous trouverez ici les dates de programmation sur Zoom:',
@@ -364,8 +363,7 @@ textlang = {
'NAVE COMPLETATA': 'NAVIRE COMPLÉTÉ',
'Doni Effettuati': 'Don effectués',
'Tutor che affianchèra il Mediatore': 'Le tuteur qui soutient le Mediateur',
'Giorno di Apertura GIFT CHAT': 'Jour d\'ouverture GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Envoyer le jour il DONO',
'APERTURA_CHIUSURA_GIFT_CHAT': '%s : Chat d\'ouverture\n%s Clôture du GIFT CHAT\nNote: Vous avez 4 jours à partir de l\'ouverture pour entrer dans le Chat et faire votre Cadeau, après quoi nous ferons le remplacement',
'SPOSTATO': 'Vous avez été transféré sur un nouveau navire !',
'Note': 'Notes',
'TEMPORANEA': 'TEMPORAIRE',
@@ -391,7 +389,7 @@ textlang = {
'HAI_I_9_REQUISITI': 'FELICITAÇÕES!\nVocê completou TODAS as 9 etapas da condução! Obrigado por ajudar a AYNI a expandir!',
'NON_HAI_I_9_REQUISITI': 'Lembre-se que pode ajudar o Movimento a crescer e expandir-se, partilhando a nossa jornada com todos!',
'INFO_LA_MIA_LAVAGNA': '✨ Lista de etapas: ✨ \n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Para completar todos os requisitos ir para o sitio:\n%s\nPer vedere lo stato della tua Nave e dei tuoi invitati, clicca sulle 3 linee in alto a sinistra ed accedi alla voce "Lavagna".\n',
'INFO_LAVAGNA_SITO_COMPLETARE': 'Para completar todos os requisitos ir para o sitio:\n%s\nPara ver o estado do seu navio e dos seus convidados:\n 👉🏻 <a href="%s">Entre no seu Tablero</a>.\n',
'INFO_LAVAGNA_SITO': 'Para ver em detalhe o estado do seu navio, no site da AYNI, clique nas 3 linhas no canto superior esquerdo e vá para "DashBoard"..\n',
'INFO_LINK_DA_CONDIVIDERE': 'Links para partilhar com os seus convidados para que se registem no website da Ayni:\n\n%s',
'INFO_LINK_ZOOM': 'Links para partilhar para participar na Zoom (Conferência Online):\n%s',
@@ -430,8 +428,7 @@ textlang = {
'NAVE COMPLETATA': 'NAVIO COMPLETADO',
'Doni Effettuati': 'Regalo Feitos',
'Tutor che affianchèra il Mediatore': 'Tutor que apoia o Mediator',
'Giorno di Apertura GIFT CHAT': 'Dia de Abertura GIFT CHAT',
'Giorno in cui Inviare il DONO': 'Dia em que enviar o REGALO',
'APERTURA_CHIUSURA_GIFT_CHAT': '%s: Abertura do GIFT CHAT\n%s Fechamento GIFT CHAT\nNota: Você tem 4 dias desde a abertura para entrar no Chat e fazer o seu Presente, depois do qual faremos o substituição.',
'SPOSTATO': 'Você foi transferido para um novo navio !',
'Note': 'Notas',
'TEMPORANEA': 'TEMPORÁRIO',
@@ -466,10 +463,10 @@ module.exports = {
DONATORI: 1,
TUTTI: 2,
STR_SOGNATORE: 'Sognatore',
STR_MEDIATORE: 'Mediatore',
STR_MEDIATORI: 'Mediatori',
STR_DONATORI: 'Donatori',
STR_SOGNATORE: '<strong>Sognatore</strong>',
STR_MEDIATORE: '<strong>Mediatore</strong>',
STR_MEDIATORI: '<strong>Mediatori</strong>',
STR_DONATORI: '<strong>Donatori</strong>',
SOGNATORE: 'E1 🌈 ',
MEDIATORE: 'A1 💦 ',
SONOFUOCO: 0,