#5186 create parking section #197

Merged
jorgep merged 29 commits from 5186-CreateParkingSection into dev 2024-03-27 08:42:33 +00:00
Member
No description provided.
jorgep added 1 commit 2024-02-21 09:30:57 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
1af5b270a0
fear: refs #5186 WIP parking section
jorgep added 1 commit 2024-02-21 10:36:02 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
ddb6bdeb47
fix: refs #5186 parking routes
jorgep added 1 commit 2024-02-29 14:57:34 +00:00
jorgep added 1 commit 2024-03-01 07:42:53 +00:00
jorgep added 1 commit 2024-03-01 09:04:21 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
46bcba99bc
fix: refs #5186 margin top
jorgep added 1 commit 2024-03-01 10:10:27 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
ebbe38a14e
fix: refs #5186 parking routes
jorgep added 1 commit 2024-03-01 10:25:13 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
67d97eef8f
fix: refs #5186 add searchbar
jorgep added 1 commit 2024-03-01 11:00:18 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
37985d853b
fix: refs #5186 add locale
jorgep added 1 commit 2024-03-01 11:17:33 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
b5edc98732
fix: refs #5186 add all fields basic data & summary
jorgep added 1 commit 2024-03-01 11:29:37 +00:00
jorgep added 1 commit 2024-03-06 08:02:10 +00:00
jorgep added 1 commit 2024-03-07 15:02:55 +00:00
jorgep added 1 commit 2024-03-08 09:37:43 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
300e384f75
feat: refs #5186 add e2e
jorgep requested review from jgallego 2024-03-08 10:09:02 +00:00
jorgep requested review from alexm 2024-03-08 10:09:02 +00:00
jorgep added the
CR / Tests passed
label 2024-03-08 10:09:09 +00:00
jorgep changed title from WIP: #5186 create parking section to #5186 create parking section 2024-03-08 10:09:15 +00:00
jorgep requested review from jsegarra 2024-03-08 10:09:21 +00:00
jorgep reviewed 2024-03-08 10:10:35 +00:00
@ -405,3 +405,3 @@
<div
class="column items-center logs origin-log"
class="column items-center logs origin-log q-mt-md"
v-for="(originLog, originLogIndex) in logTree"
Author
Member

No se veía en algunos caso el primer registro.

No se veía en algunos caso el primer registro.
jsegarra requested changes 2024-03-08 13:18:12 +00:00
@ -0,0 +41,4 @@
<VnInput v-model="data.row" :label="t('parking.basicData.row')" />
<VnInput v-model="data.column" :label="t('parking.basicData.column')" />
</VnRow>
<VnRow>
Member

El campo debería ser requerido si al enviar nulo da error.

O cambiar el mensaje de error en salix para que sea mas informativo al usuario y no de pie a pensar que algo está hecho mal.

El campo debería ser requerido si al enviar nulo da error. O cambiar el mensaje de error en salix para que sea mas informativo al usuario y no de pie a pensar que algo está hecho mal.
Author
Member

Esto habría que aplicarlo a nivel de FormModel, actualmente pasa en cualquier sección que inserte un campo que es obligatorio en bd, yo crearía tarea para hacer refactor de formModel. De momento, lo soluciono con la prop is-clearable="false". Pero que baraje @alexm y @jgallego si crear tarea.

Esto habría que aplicarlo a nivel de FormModel, actualmente pasa en cualquier sección que inserte un campo que es obligatorio en bd, yo crearía tarea para hacer refactor de formModel. De momento, lo soluciono con la prop is-clearable="false". Pero que baraje @alexm y @jgallego si crear tarea.
jorgep marked this conversation as resolved
@ -0,0 +29,4 @@
<template #body="{ entity: parking }">
<QCard class="vn-one">
<QCardSection class="q-pa-none">
<a class="header" :href="`#/parking/${entityId}/basic-data`">
Member

Diria que no tiene el estilo correcto

Diria que no tiene el estilo correcto
jorgep marked this conversation as resolved
@ -0,0 +39,4 @@
<template>
<template v-if="stateStore.isHeaderMounted()">
<Teleport to="#searchbar">
<VnSearchbar
Member

La opcion de PArking en el breadcrum no lleva a la parking, pero si monta bien la URL

La opcion de PArking en el breadcrum no lleva a la parking, pero si monta bien la URL
jorgep marked this conversation as resolved
jgallego approved these changes 2024-03-08 13:29:39 +00:00
Dismissed
jorgep added 1 commit 2024-03-11 08:37:41 +00:00
jorgep dismissed jgallego’s review 2024-03-11 08:37:42 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

jorgep added 1 commit 2024-03-11 09:11:17 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
37f155aa85
fix: refs #5186 css, required files & routes
jorgep requested review from jsegarra 2024-03-11 09:11:35 +00:00
jsegarra reviewed 2024-03-11 10:40:27 +00:00
@ -0,0 +22,4 @@
<template>
<FetchData
url="Sectors"
:filter="{ fields: ['id', 'description'] }"
Member

Podemos usar los valores de filter.include.scope.fields?

Podemos usar los valores de filter.include.scope.fields?
Member

Me ha gustado como lo has enfocado al reves de lo que decia! 👌

Me ha gustado como lo has enfocado al reves de lo que decia! 👌
jorgep marked this conversation as resolved
jsegarra requested changes 2024-03-11 10:43:42 +00:00
@ -0,0 +6,4 @@
const firstDetailBtn =
':nth-child(1) > :nth-child(1) > .card-list-body > .actions > .q-btn';
const summaryHeader = '.summaryBody .header';
const screen = '.q-page-container > .q-drawer-container > .fullscreen';
Member

Ya hay un comando para ello. Busca por el valor de la variable en el archivo commands

Ya hay un comando para ello. Busca por el valor de la variable en el archivo commands
Author
Member

Le cambio el nombre oir closeSideMenu, ya que cerraría cualquiera de los 2. También modifico el selector , porque directamente con .fullscreen no funciona en esa sección. Así funciona en cualquier sección.

Le cambio el nombre oir closeSideMenu, ya que cerraría cualquiera de los 2. También modifico el selector , porque directamente con .fullscreen no funciona en esa sección. Así funciona en cualquier sección.
jorgep marked this conversation as resolved
jorgep added 2 commits 2024-03-11 14:22:56 +00:00
jorgep requested review from jsegarra 2024-03-11 14:23:01 +00:00
jsegarra approved these changes 2024-03-12 05:46:52 +00:00
Dismissed
alexm reviewed 2024-03-13 07:07:55 +00:00
alexm requested changes 2024-03-13 08:20:22 +00:00
@ -683,6 +684,36 @@ export default {
recyclable: 'Recyclable',
},
},
parking: {
Member

Hacer lo que hablamos ayer de si la misma se usa dos veces pasarla a global

Hacer lo que hablamos ayer de si la misma se usa dos veces pasarla a global
jorgep marked this conversation as resolved
@ -741,6 +742,34 @@ export default {
recyclable: 'Reciclable',
},
},
parking: {
Member

Hacer lo que hablamos ayer de si la misma se usa dos veces pasarla a global

Hacer lo que hablamos ayer de si la misma se usa dos veces pasarla a global
Author
Member

code se repite varias veces, esta la paso a global y el resto a nivel de módulo.

code se repite varias veces, esta la paso a global y el resto a nivel de módulo.
jorgep marked this conversation as resolved
@ -0,0 +42,4 @@
<VnInput v-model="data.row" :label="t('parking.basicData.row')" />
<VnInput v-model="data.column" :label="t('parking.basicData.column')" />
</VnRow>
<VnRow>
Member

Al final un VnRow con un unico elemento se veia bien?

Al final un VnRow con un unico elemento se veia bien?
Author
Member

sí, te aplica el flex 1, ocupando todo el ancho

sí, te aplica el flex 1, ocupando todo el ancho
jorgep marked this conversation as resolved
jorgep added 1 commit 2024-03-13 14:11:33 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
e793b3dd93
feat: refs #5186 use global locales
jorgep dismissed jsegarra’s review 2024-03-13 14:11:33 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

jorgep requested review from alexm 2024-03-13 14:11:57 +00:00
jorgep reviewed 2024-03-13 14:13:00 +00:00
@ -3,3 +3,3 @@
import { useI18n } from 'vue-i18n';
const { t } = useI18n();
const { t, te } = useI18n();
Author
Member

la función "te" devuelve un booleano . Si existe true , si no false.

la función "te" devuelve un booleano . Si existe true , si no false.
Member

_Mientras que es común utilizar abreviaturas para ciertas palabras en nombres de variables, evita abreviaturas excesivas que puedan hacer que el código sea menos legible.

Evitar abreviaturas excesivas: Mientras que es común utilizar abreviaturas para ciertas palabras en nombres de variables, evita abreviaturas excesivas que puedan hacer que el código sea menos legible._

Jo en este cas no ho abreviaria. com a molt a tExist pq t si sabem q significa.
@juan com ho veus?

_Mientras que es común utilizar abreviaturas para ciertas palabras en nombres de variables, evita abreviaturas excesivas que puedan hacer que el código sea menos legible. Evitar abreviaturas excesivas: Mientras que es común utilizar abreviaturas para ciertas palabras en nombres de variables, evita abreviaturas excesivas que puedan hacer que el código sea menos legible._ Jo en este cas no ho abreviaria. com a molt a tExist pq t si sabem q significa. @juan com ho veus?
Member

No entiendo, la abreviatura es de la librería vue-i18n

No entiendo, la abreviatura es de la librería vue-i18n
Author
Member

Es nativo de i18n

Es nativo de i18n
alexm marked this conversation as resolved
jorgep reviewed 2024-03-13 14:13:36 +00:00
@ -15,0 +15,4 @@
const item = JSON.parse(JSON.stringify(props.item));
const [, , section] = item.title.split('.');
if (!te(item.title)) item.title = t(`globals.pageTitles.${section}`);
Author
Member

Si no encuentra la traducción, coge la global.

Si no encuentra la traducción, coge la global.
jorgep reviewed 2024-03-13 14:14:18 +00:00
@ -13,2 +13,3 @@
const item = computed(() => props.item); // eslint-disable-line vue/no-dupe-keys
const item = computed(() => {
const item = JSON.parse(JSON.stringify(props.item));
Author
Member

Es necesario hacerlo así para que no sea una referencia al mismo objeto.

Es necesario hacerlo así para que no sea una referencia al mismo objeto.
jorgep reviewed 2024-03-13 14:15:17 +00:00
@ -41,3 +41,4 @@
breadcrumb.title = useCamelCase(param.meta.title);
}
breadcrumb.locale = te(`${breadcrumb.root}.pageTitles.${breadcrumb.title}`)
Author
Member

Si existe la traducción específica , pone esta, si no la global

Si existe la traducción específica , pone esta, si no la global
Member

La clave i18n de las lineas 44 y 45 son iguales no?
Podemos reducir a 1 ocurrencia?

La clave i18n de las lineas 44 y 45 son iguales no? Podemos reducir a 1 ocurrencia?
Author
Member

No, "te" devuelve un booleano, "t" traduce

No, "te" devuelve un booleano, "t" traduce
Author
Member

No, "te" devuelve un booleano, "t" traduce

Tras hablar con Javier, guardo el valor en una variable.

> No, "te" devuelve un booleano, "t" traduce Tras hablar con Javier, guardo el valor en una variable.
Member

Bien, pero quizás para evitarte un ternario, te diría de usar un if con la operacion "te" y dentro le asignas el valor que quieras. Fuera del if resuelves la traducción asignandola a breadcumb.locale

Bien, pero quizás para evitarte un ternario, te diría de usar un if con la operacion "te" y dentro le asignas el valor que quieras. Fuera del if resuelves la traducción asignandola a breadcumb.locale
jorgep marked this conversation as resolved
jorgep reviewed 2024-03-13 14:16:18 +00:00
@ -84,2 +84,4 @@
copyClipboard: 'Copy on clipboard',
salesPerson: 'SalesPerson',
code: 'Code',
pageTitles: {
Author
Member

Esto se repite mucho. Yo crearía tarea para sustituir en todos los sitios esto.

Esto se repite mucho. Yo crearía tarea para sustituir en todos los sitios esto.
jorgep added 1 commit 2024-03-14 07:59:32 +00:00
jorgep added 1 commit 2024-03-14 14:05:27 +00:00
jorgep added 1 commit 2024-03-14 14:22:01 +00:00
gitea/salix-front/pipeline/pr-dev There was a failure building this commit Details
dd91449818
feat: refs #5186 use global locales
alexm requested changes 2024-03-18 08:06:30 +00:00
@ -15,0 +17,4 @@
if (!te(item.title)) item.title = t(`globals.pageTitles.${section}`);
return item;
}); // eslint-disable-line vue/no-dupe-keys
Member

Si gastes una variable distinta a "item" ja no cal ficar esta linea.

Si gastes una variable distinta a "item" ja no cal ficar esta linea.
jorgep marked this conversation as resolved
@ -85,6 +85,12 @@ export default {
selectFile: 'Select a file',
Member

Traducciones duplicadas

Traducciones duplicadas
jorgep marked this conversation as resolved
@ -0,0 +27,4 @@
const setHeader = (entity) => (header.value = useCardDescription(entity.code, entity.id));
</script>
<template>
Member

No pot gastar les dades que hi han en la store? les seteges en parkingCard

No pot gastar les dades que hi han en la store? les seteges en parkingCard
Member

Alex tiene razón, sin embargo, deberías comprobar que en parkingCard y este fichero solicitas los mismos

Alex tiene razón, sin embargo, deberías comprobar que en parkingCard y este fichero solicitas los mismos
Author
Member

Es lo mismo, tienen la misma url y filtro.

Es lo mismo, tienen la misma url y filtro.
jorgep marked this conversation as resolved
@ -0,0 +16,4 @@
const entityId = computed(() => $props.id || route.params.id);
const filter = {
Member

No pot gastar les dades que hi han en la store? les seteges en parkingCard

No pot gastar les dades que hi han en la store? les seteges en parkingCard
Author
Member

Sí pero hay que modificar la lógica de CardSummary, voy a dejarme esto en pendiente. Hoy subiré la rama con los cambios aplicados para que puedas ver como lo he hecho en el descriptor. No altera el funcionamiento del resto de la página.

Sé que te refieres a importar arrayData en parking summary y usarlo en CardSummary pero eso no tiene sentido porque sigues haciendo la llamada en CardSummary para usar los datos. Yo esto lo abordaría en una tarea. Avisame si quieres que lo miremos en llamada mañana.

Sí pero hay que modificar la lógica de CardSummary, voy a dejarme esto en pendiente. Hoy subiré la rama con los cambios aplicados para que puedas ver como lo he hecho en el descriptor. No altera el funcionamiento del resto de la página. Sé que te refieres a importar arrayData en parking summary y usarlo en CardSummary pero eso no tiene sentido porque sigues haciendo la llamada en CardSummary para usar los datos. Yo esto lo abordaría en una tarea. Avisame si quieres que lo miremos en llamada mañana.
Author
Member

Tras hablar con Alex , decidimos hacer un refactor en CardSummary para que use el arrayData e intentarlo con FormModel también.

Tras hablar con Alex , decidimos hacer un refactor en CardSummary para que use el arrayData e intentarlo con FormModel también.
Author
Member

El formModel lo paso a otra tarea https://redmine.verdnatura.es/issues/7135, que se me está alargando la tarea,

El formModel lo paso a otra tarea https://redmine.verdnatura.es/issues/7135, que se me está alargando la tarea,
alexm requested changes 2024-03-18 08:29:40 +00:00
@ -85,6 +85,12 @@ export default {
selectFile: 'Select a file',
copyClipboard: 'Copy on clipboard',
salesPerson: 'SalesPerson',
code: 'Code',
Member

Se usa 7 veces. Deberia estar global.

Se usa 7 veces. Deberia estar global.
jorgep marked this conversation as resolved
@ -87,1 +87,4 @@
salesPerson: 'SalesPerson',
code: 'Code',
pageTitles: {
summary: 'Summary',
Member

Se usa 17 veces, deberia estar global o crear tarea

Se usa 17 veces, deberia estar global o crear tarea
Author
Member
https://redmine.verdnatura.es/issues/7132
@ -88,0 +88,4 @@
code: 'Code',
pageTitles: {
summary: 'Summary',
basicData: 'Basic data',
Member

Se usa 19 veces, debería estar global o crear tarea

Se usa 19 veces, debería estar global o crear tarea
jorgep marked this conversation as resolved
@ -88,0 +89,4 @@
pageTitles: {
summary: 'Summary',
basicData: 'Basic data',
log: 'Logs',
Member

Se usa 2 veces, debería estar global

Se usa 2 veces, debería estar global
jorgep marked this conversation as resolved
@ -665,6 +671,7 @@ export default {
summary: 'Summary',
basicData: 'Basic Data',
log: 'Logs',
parkingList: 'Parking list',
Member

Tu mismo la estas usando 2 veces. Poner global o como hablamos global para el modulo Parking

Tu mismo la estas usando 2 veces. Poner global o como hablamos global para el modulo Parking
jorgep marked this conversation as resolved
@ -85,6 +85,12 @@ export default {
selectFile: 'Seleccione un fichero',
Member

Las mismas repetidas pero en este caso en español

Las mismas repetidas pero en este caso en español
jorgep marked this conversation as resolved
jorgep added 1 commit 2024-03-18 08:58:02 +00:00
jorgep added 1 commit 2024-03-21 14:36:44 +00:00
jorgep added 1 commit 2024-03-21 15:44:10 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
f86c331afa
feat: refs #5186 use arrayData in descriptor
jorgep added 1 commit 2024-03-22 14:03:00 +00:00
gitea/salix-front/pipeline/pr-dev This commit looks good Details
d2efbb204f
feat: refs #5186 use arrayData in summary
jorgep requested review from alexm 2024-03-22 14:03:09 +00:00
jorgep reviewed 2024-03-22 14:04:35 +00:00
@ -200,3 +200,3 @@
<template>
<CardSummary
ref="summary"
data-key="InvoiceInSummary"
Author
Member

Como se hace uso de arrayData en InvoiceInCard, se le tiene que poner otra clave. Ya que no gasta el mismo origen de datos.

Como se hace uso de arrayData en InvoiceInCard, se le tiene que poner otra clave. Ya que no gasta el mismo origen de datos.
jorgep reviewed 2024-03-22 14:10:15 +00:00
@ -52,4 +58,2 @@
watch(
() => $props.url,
async (newUrl, lastUrl) => {
if (newUrl == lastUrl) return;
Author
Member

De momento, para que sea retrocompatible con el resto de secciones a la hora de abrir los descriptors, se hace la llamada siempre , pero si se hace refactor se puede evitar hacer la llamada. Pero ya usa los datos desde arrayData.

De momento, para que sea retrocompatible con el resto de secciones a la hora de abrir los descriptors, se hace la llamada siempre , pero si se hace refactor se puede evitar hacer la llamada. Pero ya usa los datos desde arrayData.
jorgep reviewed 2024-03-22 14:10:46 +00:00
@ -33,2 +44,3 @@
isSummary.value = String(route.path).endsWith('/summary');
fetch();
await fetch();
watch(props, async () => await fetch());
Author
Member

De momento, para que sea retrocompatible con el resto de secciones a la hora de abrir los summaryPopup, se hace la llamada siempre , pero si se hace refactor se puede evitar hacer la llamada. Pero ya usa los datos desde arrayData.

De momento, para que sea retrocompatible con el resto de secciones a la hora de abrir los summaryPopup, se hace la llamada siempre , pero si se hace refactor se puede evitar hacer la llamada. Pero ya usa los datos desde arrayData.
jorgep reviewed 2024-03-22 14:14:13 +00:00
@ -0,0 +19,4 @@
const entityId = computed(() => props.id || params.id);
const { store } = useArrayData('Parking');
const card = computed(() => store.data);
const filter = {
Author
Member

Yo valoraría crear un archivo general con los filtros de las cards de cada sección, porque si no hay que escribir el filtro. Si entramos en la sección summary no hay problema, se puede recoger el filtro desde la store, pero si abrimos el summaryProxy o popup, este no pasa por card y no tiene acceso al descriptor.

Yo valoraría crear un archivo general con los filtros de las cards de cada sección, porque si no hay que escribir el filtro. Si entramos en la sección summary no hay problema, se puede recoger el filtro desde la store, pero si abrimos el summaryProxy o popup, este no pasa por card y no tiene acceso al descriptor.
jorgep reviewed 2024-03-22 14:14:38 +00:00
@ -0,0 +15,4 @@
const { t } = useI18n();
const entityId = computed(() => $props.id || params.id);
const filter = {
Author
Member

Yo valoraría crear un archivo general con los filtros de las cards de cada sección, porque si no hay que escribir el filtro. Si entramos en la sección summary no hay problema, se puede recoger el filtro desde la store, pero si abrimos el summaryProxy o popup, este no pasa por card y no tiene acceso al descriptor.

Yo valoraría crear un archivo general con los filtros de las cards de cada sección, porque si no hay que escribir el filtro. Si entramos en la sección summary no hay problema, se puede recoger el filtro desde la store, pero si abrimos el summaryProxy o popup, este no pasa por card y no tiene acceso al descriptor.
jorgep added 1 commit 2024-03-25 07:57:59 +00:00
alexm approved these changes 2024-03-27 06:36:17 +00:00
Dismissed
jorgep added 1 commit 2024-03-27 07:36:15 +00:00
jorgep dismissed alexm’s review 2024-03-27 07:36:15 +00:00
Reason:

New commits pushed, approval review dismissed automatically according to repository settings

jgallego approved these changes 2024-03-27 08:10:07 +00:00
jsegarra added 2 commits 2024-03-27 08:37:02 +00:00
jorgep merged commit a9f7cfb8d4 into dev 2024-03-27 08:42:33 +00:00
jorgep deleted branch 5186-CreateParkingSection 2024-03-27 08:42:33 +00:00
Sign in to join this conversation.
No reviewers
No Milestone
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: verdnatura/salix-front#197
No description provided.