- fix: "Circuito RIS {nomecircuito}" uniformati tutti quanti.

- fix Strette di mano dicitura.
- poter vedere e cliccare sul gruppo telegram della provincia (dalla lista dei circuiti).
This commit is contained in:
Surya Paolo
2024-04-25 23:26:16 +02:00
parent c79f6e8cc6
commit 7773c2a87b
11 changed files with 235 additions and 13 deletions

View File

@@ -253,7 +253,7 @@ CircuitSchema.statics.findAllIdApp = async function (idapp) {
CircuitSchema.statics.isCircuitAdmin = async function (idrec, username) {
const Circuit = this;
const mycirc = await Circuit.findOne({ _id: idrec }).lean();
if (mycirc) {
return mycirc.admins.some(admin => admin.username === username);
@@ -1315,7 +1315,7 @@ CircuitSchema.statics.CheckTransazioniCircuiti = async function (correggi) {
// CORREGGI DUPLICATI NEI CIRCUITI
for (const user of usersWithDuplicateCircuits) {
// Troviamo l'utente dal suo _id e aggiorniamo il suo documento
const arraycirc = await User.findOne({_id: user._id}).lean();
const arraycirc = await User.findOne({ _id: user._id }).lean();
let risdel = await User.updateOne(
{ _id: user._id },
@@ -1544,6 +1544,99 @@ CircuitSchema.statics.CheckTransazioniCircuiti = async function (correggi) {
};
CircuitSchema.statics.replaceAllCircuitNames = async function (idapp) {
const Circuit = this;
const { City } = require('../models/city');
const { Province } = require('../models/province');
const { MyGroup } = require('../models/mygroup');
const { User } = require('../models/user');
const myfind = { idapp };
let circuits = [];
try {
circuits = await Circuit.find(myfind);
let quanti = 0;
for (const circuit of circuits) {
if (!circuit || !circuit._id) {
console.error('Error: circuit is null or has no _id property');
continue;
}
const circuitId = circuit._id;
let provincia = '';
if (circuit.idCity && circuit.idCity.length > 0) {
provincia = await City.getProvinceByIdCity(circuit.idCity[0]);
}
if (!provincia)
provincia = circuit.strProv;
if (provincia) {
provincia = await Province.getStrProvinceByProv(provincia);
}
if (!provincia) {
console.log('PROVINCIA NON ESISTENTE !', circuit.name);
}
let path = '';
if (!circuit.showAlways) {
let newname = 'Circuito RIS ' + provincia;
// Se newname contiene 'ROMA', allora non aggiorna
if (circuit.name == 'RIS Roma Sud Est ' || circuit.name === 'Circuito RIS Roma Sud Est') {
newname = 'Circuito RIS Roma Sud Est';
} else if (circuit.name == 'Circuito RIS Roma Sud e Litora') {
newname = 'Circuito RIS Roma Sud e Litora';
} else if (circuit.name.trim() === 'RISO Roma Nord' || circuit.name.trim() === 'Circuito RISO Roma Nord') {
newname = 'Circuito RIS Roma Nord';
/* } else if (circuit.name == 'Circuito RIS Benevento' || circuit.name == 'Circuito RIS Campania') {
newname = 'Circuito RIS Campania';
path = 'riscampania'; */
} else if (circuit.name == 'Circuito RIS Milano Est') {
newname = 'Circuito RIS Milano Est';
} else if (circuit.name == 'Circuito RIS Repubblica di San Marino') {
newname = 'Circuito RIS Repubblica di San Marino';
}
if (((newname !== circuit.name) && (newname.indexOf('ROMA') === -1)) || path) {
console.log(`Sostituisci ${circuit.name} con ${newname}`);
quanti++;
if (path) {
// Update path
await Circuit.findOneAndUpdate({ _id: circuitId }, { $set: { path } })
.catch(e => console.error('Err ', e));
}
await Circuit.findOneAndUpdate({ _id: circuitId }, { $set: { name: newname } })
.catch(e => console.error('Err ', e));
// Rename profile.mycircuits.circuitname in User
await User.renameCircuitName(idapp, circuit.name, newname)
.catch(e => console.error('Err ', e));
await MyGroup.renameCircuitName(idapp, circuit.name, newname)
.catch(e => console.error('Err ', e));
}
}
}
console.log('Circuiti aggiornati: ' + quanti);
} catch (e) {
console.error('Err ', e);
return;
}
};
CircuitSchema.statics.addMovementByOrdersCart = async function (ordersCart, usernameDest, groupDest) {
const { User } = require('../models/user');

View File

@@ -628,6 +628,13 @@ MyGroupSchema.statics.getReceiveRISGroups = async function (idapp) {
};
MyGroupSchema.statics.renameCircuitName = async function (idapp, oldcircuitname, newcircuitname) {
return await this.updateMany({ idapp, 'mycircuits.circuitname': oldcircuitname }, { $set: { 'profile.mycircuits.$.circuitname': newcircuitname } });
};
MyGroupSchema.statics.setReceiveRisGroup = async function (idapp, groupname) {
return await this.findOneAndUpdate({

View File

@@ -1712,13 +1712,15 @@ UserSchema.methods.removeToken = function (token) {
});
};
// # Rimuove tutti i tokens di tutti gli utenti con idapp
// TODO: Cancellare i token che non hanno refreshToken, ad esempio quando l'utente esce dal browser
// TODO: Cancellare i token con data_login meno di 2 giorni fa, per esempio se l'utente si è disconnesso dal browser ma è ancora online
UserSchema.statics.SvuotaTuttiGliAccessiOnlineConToken = async function (idapp) {
const User = this;
return await User.updateMany({ idapp },
{ $set: { tokens: [] } });
};
{ $pull: { tokens: { refreshToken: { $exists: false } } } });
};
UserSchema.statics.getEmailByUsername = async function (idapp, username) {
@@ -1782,7 +1784,7 @@ UserSchema.statics.getUserByUsername = function (idapp, username) {
UserSchema.statics.getUserByUsernameTelegram = function (idapp, username_telegram) {
const User = this;
if (username_telegram[0] === '@'){
if (username_telegram[0] === '@') {
username_telegram = username_telegram.substring(1);
}
@@ -2162,6 +2164,14 @@ UserSchema.statics.removeFromCircuits = async function (idapp, username, circuit
const circuitId = await Circuit.getCircuitIdByName(idapp, circuitname);
let remove = false;
const circuit = await Circuit.findOne({ idapp, name: circuitname }).lean();
if (circuit) {
// Invio la notifica agli amministratori del circuito
const title = `L\'utente ${username} è uscito dal ${circuitname}`;
const msg = ``;
await tools.sendNotifToCircuitsAdmin(idapp, circuit, true, title, msg, '')
}
// Se il mio account non è stato utilizzato, allora lo cancello anche questo
const myaccount = await Account.getAccountByUsernameAndCircuitId(idapp, username, circuitId, false, false, '', '');
if (myaccount && myaccount.totTransato === 0) {
@@ -2460,6 +2470,10 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
},
},
};
const already_stretta = await User.isMyHandShake(idapp, usernameDest, usernameOrig);
const already_stretta_orig = await User.isMyHandShake(idapp, usernameOrig, usernameDest);
rec = await User.updateOne({ idapp, username: usernameDest }, update);
tools.sendNotificationByUsername(idapp, usernameDest, cmd, true, usernameOrig);
@@ -2470,8 +2484,11 @@ UserSchema.statics.setFriendsCmd = async function (req, idapp, usernameOrig, use
if (!disablenotif) {
const userDest = await User.getRecLangAndIdByUsername(idapp, usernameDest);
const user = await User.getRecLangAndIdByUsername(idapp, usernameOrig);
const already_stretta = await User.isMyHandShake(idapp, usernameDest, usernameOrig);
const msgDest = i18n.__({ phrase: 'HANDSHAKE_CONFIRMED', locale: userDest.lang }, usernameDest);
let msgDest = i18n.__({ phrase: 'HANDSHAKE_SENT_FROM_YOU', locale: userDest.lang }, usernameDest);
if (already_stretta)
msgDest = i18n.__({ phrase: 'HANDSHAKE_CONFIRMED', locale: userDest.lang }, usernameDest);
let phrase = 'HANDSHAKE_SET';
if (already_stretta) {
phrase = 'HANDSHAKE_ACCEPTED';
@@ -5786,6 +5803,12 @@ UserSchema.statics.addNewSite = async function (idappPass, body) {
};
UserSchema.statics.renameCircuitName = async function (idapp, oldcircuitname, newcircuitname) {
const User = this;
return await User.updateMany({ idapp, 'profile.mycircuits.circuitname': oldcircuitname }, { $set: { 'profile.mycircuits.$.circuitname': newcircuitname } });
};
UserSchema.statics.createNewSubRecord = async function (idapp, req) {
const User = this;