diff --git a/src/assets/scss/components/statsBigBadges.scss b/src/assets/scss/components/statsBigBadges.scss index 6cb3c0a..8bde805 100644 --- a/src/assets/scss/components/statsBigBadges.scss +++ b/src/assets/scss/components/statsBigBadges.scss @@ -43,6 +43,75 @@ } } +.statsBigBadges__gridItemDoubleStats { + display: flex; + flex-direction: column; + padding: 16px; + border-radius: 6px; + border: 1px solid #858585; + background: #cecece; + align-items: center; + gap: 32px; + + span { + color: #FFF; + font-size: 18px; + font-style: normal; + font-weight: 600; + line-height: normal; + text-align: center; + } + + > span:first-of-type { + min-height: 50px; + } + + span.number { + font-size: 22px; + } + + .auxStats { + display: flex; + gap: 7px; + align-items: flex-start; + margin-top: auto; + + span { + font-size: 15px; + font-weight: 400; + text-align: left; + } + + span.badge { + display: inline-block; + padding: 5px 10px; + background-color: var(--card-full-background-color-4); + border-radius: 4px; + margin-right: 7px; + } + } + + &:nth-of-type(1) { + border: 1px solid var(--yellow-500); + background: var(--card-full-background-color-2); + } + + &:nth-of-type(2) { + border: 1px solid var(--yellow-500); + background: var(--card-full-background-color-3); + } + + &:nth-of-type(3) { + border: 1px solid var(--yellow-500); + background: var(--card-full-background-color-5); + } + + &:nth-of-type(4) { + border: 1px solid var(--yellow-500); + background: var(--card-full-background-color-7); + } +} + .statsBigBadges__grid { .statsBigBadges__gridItem { &:nth-of-type(1) { @@ -109,11 +178,27 @@ } } } + + &.doubleStatsItems { + grid-template-columns: repeat(4, minmax(220px, 1fr)); + } +} + +@media (max-width: 1290px) { + .statsBigBadges__grid { + &.doubleStatsItems { + grid-template-columns: repeat(2, minmax(220px, 1fr)); + } + } } @media (max-width: 820px) { .statsBigBadges__grid { grid-template-columns: 1fr; + + &.doubleStatsItems { + grid-template-columns: minmax(220px, 1fr); + } } } diff --git a/src/pages/BandoApplication/index.js b/src/pages/BandoApplication/index.js index 9968715..55db9b2 100644 --- a/src/pages/BandoApplication/index.js +++ b/src/pages/BandoApplication/index.js @@ -698,6 +698,7 @@ const BandoApplication = () => { : { const errGetStats = () => {} + const getDoubleStats = (data) => { + if (data.status === 'SUCCESS') { + console.log(data.data); + } + } + + const errGetDoubleStats = () => {} + const getStatValue = (key, fallback = '') => { return pathOr(fallback, [key], mainStats); } useEffect(() => { DashboardService.getEvaluationsStats(getStats, errGetStats); + DashboardService.getInstructorAmendmentsStats(getDoubleStats, errGetDoubleStats); }, []); return( diff --git a/src/pages/DashboardPreInstructor/index.js b/src/pages/DashboardPreInstructor/index.js index cbd94a5..9e67e92 100644 --- a/src/pages/DashboardPreInstructor/index.js +++ b/src/pages/DashboardPreInstructor/index.js @@ -31,12 +31,12 @@ const DashboardPreInstructor = () => { const errGetStats = () => {} - const getStatValue = (key, fallback = '') => { - return pathOr(fallback, [key], mainStats); + const getStatValue = (keys = [], fallback = '') => { + return pathOr(fallback, keys, mainStats); } useEffect(() => { - DashboardService.getEvaluationsStats(getStats, errGetStats); + DashboardService.getInstructorAmendmentsStats(getStats, errGetStats); }, []); return( @@ -49,49 +49,57 @@ const DashboardPreInstructor = () => {

{__('Riepilogo', 'gepafin')}

-
-
- {__('Totale domande', 'gepafin')} - +
+ {__('Domande da valutare', 'gepafin')} + + {/*
+ + {getStatValue(['assignedApplication', 'additionalApplicationPercentage'], 0)}% + {__('da ieri', 'gepafin')} +
*/}
-
- {__('In soccorso', 'gepafin')} - + {__('Domande valutate', 'gepafin')} + + {/*
+ + {getStatValue(['evaluatedApplication', 'dailyAverage'], 0)} + {__('media giornaliera', 'gepafin')} +
*/}
-
- {__('In valutazione', 'gepafin')} - -
-
- {__('Completate', 'gepafin')} - -
-
- {__('Tempo medio di valutazione', 'gepafin')} - + {__('Tempo medio valutazione', 'gepafin')} + + {/*
+ + {getStatValue(['averageEvaluationDays', 'timeDifferenceFromAverage'], 0)} + {__('rispetto alla media', 'gepafin')} +
*/}
-
- {__('Domande in scadenza (48h)', 'gepafin')} - + {__('Soccorsi istruttori in corso', 'gepafin')} + + locales="it-IT"/> + {/*
+ + {getStatValue(['amendmentInProgress', 'expiringToday'], 0)} + {__('in scadenza oggi', 'gepafin')} +
*/}
diff --git a/src/pages/DomandaEditInstructorManager/index.js b/src/pages/DomandaEditInstructorManager/index.js index c273bf2..0c0b095 100644 --- a/src/pages/DomandaEditInstructorManager/index.js +++ b/src/pages/DomandaEditInstructorManager/index.js @@ -37,6 +37,8 @@ import DownloadSignedApplication from '../DomandaEditPreInstructor/components/Do import ListOfFiles from '../DomandaEditPreInstructor/components/ListOfFiles'; import RepeaterFields from '../DomandaEditPreInstructor/components/RepeaterFields'; import getDateTimeFromISOstring from '../../helpers/getDateTimeFromISOstring'; +import ApplicationInfo from '../DomandaEditPreInstructor/components/ApplicationInfo'; +import ApplicationDownloadFiles from '../DomandaEditPreInstructor/components/ApplicationDownloadFiles'; const APP_EVALUATION_FLOW_ID = process.env.REACT_APP_EVALUATION_FLOW_ID; const APP_HUB_ID = process.env.REACT_APP_HUB_ID; @@ -553,67 +555,9 @@ const DomandaEditInstructorManager = () => { {!isAsyncRequest && !isEmpty(data) ?
-
-

- {__('ID domanda', 'gepafin')} - {data.applicationId} -

-

- {__('Protocollo', 'gepafin')} - {data.protocolNumber} -

- {APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE' - ?

- {__('NDG', 'gepafin')} - {data.ndg} -

: null} - {APP_HUB_ID !== 't7jh5wfg9QXylNaTZkPoE' - ?

- {__('Appuntamento', 'gepafin')} - {data.appointmentId} -

: null} -

- {__('Bando', 'gepafin')} - {data.callName} -

-

- {__('Referente Aziendale', 'gepafin')} - {data.beneficiary} -

-

- {__('Azienda Beneficiaria', 'gepafin')} - {data.companyName} -

-

- {__('Data ricezione', 'gepafin')} - {getDateTimeFromISOstring(data.submissionDate)} -

-

- {__('Data assegnazione', 'gepafin')} - {getDateTimeFromISOstring(data.assignedAt)} -

-

- {__('Aassegnato a', 'gepafin')} - {data.assignedUserName} -

-

- {__('Scadenza Valutazione', 'gepafin')} - {getDateFromISOstring(data.evaluationEndDate)} -

-

- {__('Stato', 'gepafin')} - {getBandoLabel(data.applicationStatus)} -

-
+ -
-

{__('Scarica documenti della domanda', 'gepafin')}

-
- - - -
-
+

{__('Documenti aggiuntivi', 'gepafin')}

@@ -628,56 +572,73 @@ const DomandaEditInstructorManager = () => { sourceName="evaluation"/>
-
-

{__('Checklist Valutazione', 'gepafin')}

-
-
-

{__('Lista', 'gepafin')}

-
-
- {data.checklist.map((o, i) =>
- updateEvaluationValue( - e.checked, - ['checklist', i, 'valid'] - )} - checked={o.valid}> - -
)} + {data.evaluationVersion === 'V2' + ?
+

{__('Documenti allegati', 'gepafin')}

+ {!isEmpty(data.files) + ? shouldDisableField(name) || evaluationShouldBeBlocked(data)} + name="files" + ndg={data.ndg} + applicationId={id}/> + :

{__('Nessun documento allegato', 'gepafin')}

} +
+ : null} + + {data.evaluationVersion === 'V1' + ?
+

{__('Checklist Valutazione', 'gepafin')}

+
+
+

{__('Lista', 'gepafin')}

+
+
+ {data.checklist.map((o, i) =>
+ updateEvaluationValue( + e.checked, + ['checklist', i, 'valid'] + )} + checked={o.valid}> + +
)} +
+
+ +

{__('Note', 'gepafin')}

+
+ updateEvaluationValue( + e.htmlValue, + ['note'] + )} + style={{ height: 80 * 3, width: '100%' }} + />
- -

{__('Note', 'gepafin')}

- updateEvaluationValue( - e.htmlValue, - ['note'] - )} - style={{ height: 80 * 3, width: '100%' }} - /> +

{__('Documenti allegati', 'gepafin')}

+ {!isEmpty(data.files) + ? shouldDisableField(name) || evaluationShouldBeBlocked(data)} + name="files" + ndg={data.ndg} + applicationId={id}/> + :

{__('Nessun documento allegato', 'gepafin')}

}
-
-

{__('Documenti allegati', 'gepafin')}

- {!isEmpty(data.files) - ? shouldDisableField(name) || evaluationShouldBeBlocked(data)} - name="files" - ndg={data.ndg} - applicationId={id}/> - :

{__('Nessun documento allegato', 'gepafin')}

} -
-
+ : null} {!isEmpty(data.amendmentDetails) ?
@@ -691,84 +652,86 @@ const DomandaEditInstructorManager = () => { applicationId={id}/>
: null} -
-

{__('Punteggi di valutazione', 'gepafin')}

- {data.criteria - ? - - - - - - - - - {data.criteria.map((o, i) => - - + + )} + + + + + + + + + + + +
{__('Parametro', 'gepafin')}{__('Punteggio', 'gepafin')}{__('Stato', 'gepafin')}
{o.label} -
- updateEvaluationValue( - e.value, - ['criteria', i, 'score'], - o.criteria - )}/> - + {data.evaluationVersion === 'V1' + ?
+

{__('Punteggi di valutazione', 'gepafin')}

+ {data.criteria + ? + + + + + + + + + {data.criteria.map((o, i) => + + - - )} - - - - - - - - - - - -
{__('Parametro', 'gepafin')}{__('Punteggio', 'gepafin')}{__('Stato', 'gepafin')}
{o.label} +
+ updateEvaluationValue( + e.value, + ['criteria', i, 'score'], + o.criteria + )}/> + / {o.maxScore} -
-
-
- {!isEmpty(o.criteriaMappedFields) - ?
-
{__('Punteggio:', 'gepafin')}{sum(data.criteria.map(o => o.score))} - {isAdmissible - ? : null} - {!isAdmissible - ? : null} -
{sprintf(__('Punteggio minimo per l\'ammissione: %d'), data.minScore)}
: null} -
+
+
+
+ {!isEmpty(o.criteriaMappedFields) + ?
+
{__('Punteggio:', 'gepafin')}{sum(data.criteria.map(o => o.score))} + {isAdmissible + ? : null} + {!isAdmissible + ? : null} +
{sprintf(__('Punteggio minimo per l\'ammissione: %d'), data.minScore)}
: null} +
+ : null}
@@ -832,7 +795,8 @@ const DomandaEditInstructorManager = () => {
diff --git a/src/pages/SoccorsoIstruttorioPreInstructor/index.js b/src/pages/SoccorsoIstruttorioPreInstructor/index.js index fd1cc4d..b0959b7 100644 --- a/src/pages/SoccorsoIstruttorioPreInstructor/index.js +++ b/src/pages/SoccorsoIstruttorioPreInstructor/index.js @@ -1,4 +1,4 @@ -import React, { useEffect, useState } from 'react'; +import React, { useEffect, useState, useCallback } from 'react'; import { __ } from '@wordpress/i18n'; import { pathOr } from 'ramda'; import NumberFlow from '@number-flow/react'; @@ -22,9 +22,9 @@ const SoccorsoIstruttorioPreInstructor = () => { const errGetStats = () => {} - const getStatValue = (key, fallback = '') => { + const getStatValue = useCallback((key, fallback = '') => { return pathOr(fallback, [key], mainStats); - } + }, [mainStats]); useEffect(() => { DashboardService.getAmendmentsStats(getStats, errGetStats); diff --git a/src/service/application-evaluation-service.js b/src/service/application-evaluation-service.js index 048cb46..cc20ea6 100644 --- a/src/service/application-evaluation-service.js +++ b/src/service/application-evaluation-service.js @@ -8,7 +8,21 @@ export default class ApplicationEvaluationService { NetworkService.get(`${API_BASE_URL}/applicationEvaluation/application`, callback, errCallback, queryParams); }; + static getEvaluationV2ByApplId = (callback, errCallback, queryParams) => { + NetworkService.get(`${API_BASE_URL}/applicationEvaluation/v2`, callback, errCallback, queryParams); + }; + + static getEvaluationVersionByApplId = (id, callback, errCallback, queryParams) => { + NetworkService.get(`${API_BASE_URL}/applicationEvaluation/application/${id}/version`, callback, errCallback, queryParams); + }; + static updateEvaluation = (assignedApplicationId, body, callback, errCallback, queryParams) => { NetworkService.put(`${API_BASE_URL}/applicationEvaluation/${assignedApplicationId}`, body, callback, errCallback, queryParams); }; + + static updateEvaluationV2 = (assignedApplicationId, formId, body, callback, errCallback, queryParams = []) => { + NetworkService.put(`${API_BASE_URL}/applicationEvaluation/v2/assignedApplication/${assignedApplicationId}`, body, callback, errCallback, [ + ['evaluationFormId', formId] + ]); + }; } diff --git a/src/service/dashboard-service.js b/src/service/dashboard-service.js index 093db59..bf30675 100644 --- a/src/service/dashboard-service.js +++ b/src/service/dashboard-service.js @@ -23,4 +23,8 @@ export default class DashboardService { static getBeneficiaryStatsForCompany = (id, callback, errCallback) => { NetworkService.get(`${API_BASE_URL}/dashboard/beneficiary/company/${id}`, callback, errCallback); }; + + static getInstructorAmendmentsStats = (callback, errCallback) => { + NetworkService.get(`${API_BASE_URL}/dashboard/instructor/amendment`, callback, errCallback); + }; }