- comune residenza anche sulla email

- comune non obbligatorio... Skippa
This commit is contained in:
Surya Paolo
2025-11-27 03:14:56 +01:00
parent 2dca358cd3
commit 281be361ba
7 changed files with 117 additions and 19 deletions

View File

@@ -373,6 +373,10 @@ export const shared_consts = {
label: 'Con Provincia inserita', label: 'Con Provincia inserita',
value: 16777216, //FILTER_USER_PROVINCE: value: 16777216, //FILTER_USER_PROVINCE:
}, },
{
label: 'Con Comune inserito',
value: 8589934592, //FILTER_USER_COMUNE: 8589934592,
},
], ],
RECFILTRI_UTENTE_FACIL: [ RECFILTRI_UTENTE_FACIL: [

View File

@@ -145,7 +145,7 @@ export default defineComponent({
}); });
const userstoverify = computed(() => { const userstoverify = computed(() => {
return userStore.my.profile.userstoverify; return contact.value.profile.userstoverify;
}); });
// Step definitions // Step definitions
@@ -159,15 +159,20 @@ export default defineComponent({
}, },
label: t('tutorial.step_residence'), label: t('tutorial.step_residence'),
checkOk: function (): boolean { checkOk: function (): boolean {
return contact.value
? (!!contact.value.profile.resid_str_comune &&
contact.value.profile.resid_str_comune !== '' &&
contact.value.profile.resid_str_comune !== '0') ||
contact.value.profile.noComune
: false;
},
checkOkReal: function (): boolean {
return contact.value return contact.value
? !!contact.value.profile.resid_str_comune && ? !!contact.value.profile.resid_str_comune &&
contact.value.profile.resid_str_comune !== '' && contact.value.profile.resid_str_comune !== '' &&
contact.value.profile.resid_str_comune !== '0' contact.value.profile.resid_str_comune !== '0'
: false; : false;
}, },
checkOkReal: function (): boolean {
return this.checkOk();
},
icon: 'fas fa-map-marker-alt', icon: 'fas fa-map-marker-alt',
required: true, required: true,
})); }));
@@ -185,7 +190,8 @@ export default defineComponent({
return ( return (
userStore.IsMyCircuitByName(mycircuit.value.name) || userStore.IsMyCircuitByName(mycircuit.value.name) ||
userStore.IsAskedCircuitByName(mycircuit.value.name) || userStore.IsAskedCircuitByName(mycircuit.value.name) ||
userStore.my.profile.noCircuit contact.value.profile.noCircuit ||
contact.value.profile.noComune
); );
} }
return false; return false;
@@ -215,9 +221,10 @@ export default defineComponent({
return ( return (
userStore.IsMyCircuitByName(circuititalia.value.name) || userStore.IsMyCircuitByName(circuititalia.value.name) ||
userStore.IsAskedCircuitByName(circuititalia.value.name) || userStore.IsAskedCircuitByName(circuititalia.value.name) ||
userStore.my.profile.noCircIta || contact.value.profile.noCircIta ||
userStore.my.profile.noCircuit || contact.value.profile.noCircuit ||
userStore.my.profile.insert_circuito_ita contact.value.profile.noComune ||
contact.value.profile.insert_circuito_ita
); );
} }
return false; return false;
@@ -422,6 +429,12 @@ export default defineComponent({
return isSalta(currentStep.value.step); return isSalta(currentStep.value.step);
}); });
const isCurrentStepComune = computed(() => {
if (!currentStep.value) return false;
// Mostra bottone Salta se lo step corrente è un circuito (locale o italia)
return currentStep.value.step === STEP_CITY;
});
const isCurrentStepCircuit = computed(() => { const isCurrentStepCircuit = computed(() => {
if (!currentStep.value) return false; if (!currentStep.value) return false;
// Mostra bottone Salta se lo step corrente è un circuito (locale o italia) // Mostra bottone Salta se lo step corrente è un circuito (locale o italia)
@@ -500,7 +513,7 @@ export default defineComponent({
try { try {
const response = await Api.SendReq('/api/telegram/generate-token', 'POST', { const response = await Api.SendReq('/api/telegram/generate-token', 'POST', {
username: userStore.my.username, username: contact.value.username,
}); });
verificationToken.value = response.data.token; verificationToken.value = response.data.token;
@@ -699,10 +712,9 @@ export default defineComponent({
function isSalta(step: number) { function isSalta(step: number) {
return ( return (
(step === STEP_CIRCUIT && mycircuit.value && userStore.my.profile.noCircuit) || (step === STEP_CITY && contact.value.profile.noComune) ||
(step === STEP_CIRCUIT_ITALIA && (step === STEP_CIRCUIT && contact.value.profile.noCircuit) ||
circuititalia.value && (step === STEP_CIRCUIT_ITALIA && contact.value.profile.noCircIta)
userStore.my.profile.noCircIta)
); );
} }
@@ -721,7 +733,7 @@ export default defineComponent({
persistent: false, persistent: false,
}) })
.onOk(() => { .onOk(() => {
userStore.savenoCircuit(isAskedToCircuit()); userStore.savenoCircuit(true); // isAskedToCircuit()
// Avanza allo step successivo // Avanza allo step successivo
if (canGoNext.value) { if (canGoNext.value) {
goToNextStep(); goToNextStep();
@@ -733,6 +745,8 @@ export default defineComponent({
}); });
} else if (mystep === STEP_CIRCUIT_ITALIA) { } else if (mystep === STEP_CIRCUIT_ITALIA) {
askToConfirmSkipItalia(mystep); askToConfirmSkipItalia(mystep);
} else if (mystep === STEP_CITY) {
askToConfirmSkipComune(mystep);
} }
} }
@@ -763,6 +777,39 @@ export default defineComponent({
return false; return false;
}); });
} }
function askToConfirmSkipComune(mystep: number) {
let msg = t('circuit.skipcomune');
if (!stepCircuit.value.checkOk()) {
msg = t('circuit.skipcomune_circuiti_non_entrato');
}
return $q
.dialog({
message: msg,
html: true,
ok: {
label: t('dialog.yes'),
push: false,
},
title: '',
cancel: true,
persistent: false,
})
.onOk(() => {
if (mystep === STEP_CITY) {
userStore.savenoComune(true);
}
// Avanza allo step successivo
if (canGoNext.value) {
goToNextStep();
}
return true;
})
.onCancel(() => {
return false;
});
}
// ======================================== // ========================================
// TUTORIAL METHODS // TUTORIAL METHODS
@@ -782,6 +829,7 @@ export default defineComponent({
const firstIncompleteIndex = orderedSteps.value.findIndex( const firstIncompleteIndex = orderedSteps.value.findIndex(
(step) => !step.completed (step) => !step.completed
); );
console.log('firstIncompleteIndex', firstIncompleteIndex);
if (firstIncompleteIndex !== -1) { if (firstIncompleteIndex !== -1) {
currentStepIndex.value = firstIncompleteIndex; currentStepIndex.value = firstIncompleteIndex;
updateExpandedSteps(); updateExpandedSteps();
@@ -798,6 +846,12 @@ export default defineComponent({
strProv.value, strProv.value,
card.value card.value
); );
// Se la provincia selezionata non esiste, mostra comunque il primo Circuito in cui si è entrati !
if (!strProv.value && contact.value.profile.mycircuits.length >= 0) {
mycircuit.value = circuitStore.getCircuitByName(
contact.value.profile.mycircuits[0].circuitname
);
}
if (!globalStore.isPresenteCardsByProv(strProv.value)) { if (!globalStore.isPresenteCardsByProv(strProv.value)) {
if (contact.value && contact.value.profile.resid_card) { if (contact.value && contact.value.profile.resid_card) {
contact.value.profile.resid_card = ''; contact.value.profile.resid_card = '';
@@ -882,6 +936,11 @@ export default defineComponent({
card.value card.value
); );
} }
if (!mycircuit.value && !strProv.value && contact.value.profile.mycircuits.length >= 0) {
mycircuit.value = circuitStore.getCircuitByName(
contact.value.profile.mycircuits[0].circuitname
);
}
} }
}); });
@@ -955,6 +1014,7 @@ export default defineComponent({
t, t,
updateContact, updateContact,
strProv, strProv,
isCurrentStepComune,
}; };
}, },
}); });

View File

@@ -216,11 +216,16 @@
class="q-mt-md" class="q-mt-md"
/> />
<p class="step-description"> <p v-if="contact.profile.resid_province" class="step-description">
Entra nel circuito locale per scambiare beni e servizi con le persone Entra nel circuito locale per scambiare beni e servizi con le persone
vicino a te. vicino a te.
</p> </p>
<div v-if="!contact.profile.resid_province" class="q-ma-sm q-pa-sm bordered" style="border: 2px solid red;">
⚠️ Attenzione: Se non si sceglie il Comune di Residenza (il passaggio precedente) non è possibile poter scegliere la Provincia in cui accedere al Circuito RIS del tuo territorio.
</div>
<q-select <q-select
v-if="mylistcircuits && mylistcircuits.length > 1" v-if="mylistcircuits && mylistcircuits.length > 1"
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'" :behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
@@ -293,9 +298,9 @@
<q-space /> <q-space />
<!-- Bottone Salta (Solo per circuiti) --> <!-- Bottone Salta (Solo per circuiti e Comune) -->
<q-btn <q-btn
v-if="isCurrentStepCircuit" v-if="isCurrentStepCircuit || isCurrentStepComune"
rounded rounded
color="negative" color="negative"
icon="skip_next" icon="skip_next"

View File

@@ -166,6 +166,7 @@ export interface IUserProfile {
stepTutorial: number stepTutorial: number
noNameSurname: boolean noNameSurname: boolean
noCircuit: boolean noCircuit: boolean
noComune?: boolean
noCircIta: boolean noCircIta: boolean
insert_circuito_ita?: boolean insert_circuito_ita?: boolean
noFoto: boolean noFoto: boolean

View File

@@ -272,6 +272,15 @@
mykey="Biografia" mykey="Biografia"
:myvalue="myuser.profile.biografia" :myvalue="myuser.profile.biografia"
/> />
<CKeyAndValue
mykey="Saltato Comune"
:myvalue="myuser.profile.noComune"
:show-set-button="true"
:on-set-value="userStore.savenoComune"
:valuetoSet="false"
:param2="myuser._id"
button-tooltip="Reset No Comune"
/>
<CKeyAndValue <CKeyAndValue
mykey="Saltato Circuito Prov" mykey="Saltato Circuito Prov"
:myvalue="myuser.profile.noCircuit" :myvalue="myuser.profile.noCircuit"

View File

@@ -1512,8 +1512,10 @@ const msg_it = {
link_chat: 'Gruppo Telegram {name}', link_chat: 'Gruppo Telegram {name}',
link_group: 'Gruppo Telegram', link_group: 'Gruppo Telegram',
chat_gruppo_telegram_circuito: 'Entra nella chat di Gruppo Telegram dove conoscerai persone della tua provincia', chat_gruppo_telegram_circuito: 'Entra nella chat di Gruppo Telegram dove conoscerai persone della tua provincia',
skipentercircuit: 'Confermare di non voler entrare ora nel Circuito RIS?\nLo si potrà comunque fare in un secondo momento, dal menu "Circuiti".', skipentercircuit: 'Confermare di non voler entrare ora nel Circuito RIS?\nLo si potrà comunque fare in un secondo momento, dal menu "Profilo" -> "Modifica Profilo".',
skipentercircuit_italia: 'Confermare di non voler entrare ora nel Circuito RIS ITALIA?\nLo si potrà comunque fare in un secondo momento, dal menu "Circuiti".', skipentercircuit_italia: 'Confermare di non voler entrare ora nel Circuito RIS ITALIA?\nLo si potrà comunque fare in un secondo momento, dal menu "Profilo" -> "Modifica Profilo".',
skipcomune: 'Confermare di non voler inserire il Comune di Residenza?\nLo si potrà comunque fare in un secondo momento, dal menu "Profilo" -> "Modifica Profilo".',
skipcomune_circuiti_non_entrato: 'Confermare di non voler inserire il Comune di Residenza?\n\nIn questo modo non sarà possibile poter far richiesta di entrare nel Circuito RIS del tuo territorio.\n\nLo si potrà comunque fare in un secondo momento, dal menu "Profilo" -> "Modifica Profilo".',
vaialcircuito: 'Vai al Circuito', vaialcircuito: 'Vai al Circuito',
iscritti: 'iscritti trovati', iscritti: 'iscritti trovati',
addtothereceiverlist: 'Aggiungiti alla Lista dei Riceventi', addtothereceiverlist: 'Aggiungiti alla Lista dei Riceventi',

View File

@@ -112,6 +112,7 @@ export const DefaultUser: IUserFields = {
stepTutorial: 0, stepTutorial: 0,
noNameSurname: false, noNameSurname: false,
noCircuit: false, noCircuit: false,
noComune: false,
noCircIta: false, noCircIta: false,
insert_circuito_ita: false, insert_circuito_ita: false,
noFoto: false, noFoto: false,
@@ -189,6 +190,7 @@ export const DefaultProfile: IUserProfile = {
stepTutorial: 0, stepTutorial: 0,
noNameSurname: false, noNameSurname: false,
noCircuit: false, noCircuit: false,
noComune: false,
noCircIta: false, noCircIta: false,
insert_circuito_ita: false, insert_circuito_ita: false,
noFoto: false, noFoto: false,
@@ -1281,6 +1283,21 @@ export const useUserStore = defineStore('UserStore', {
} }
return await this.execDbOpUser({ mydata }); return await this.execDbOpUser({ mydata });
}, },
async savenoComune(val: boolean, userId?: string) {
const mydata = {
_id: userId ? userId : this.my._id,
dbop: 'noComune',
value: val,
};
if (userId) {
} else {
if (this.my.profile.noComune !== val) {
this.my.profile.noComune = val;
}
}
return await this.execDbOpUser({ mydata });
},
async setPwdComeQuellaDellAdmin(val: boolean, userId?: string) { async setPwdComeQuellaDellAdmin(val: boolean, userId?: string) {
const mydata = { const mydata = {
_id: userId, _id: userId,