From 9c9db3825d9d308810dcf1d42a75073c44291ab7 Mon Sep 17 00:00:00 2001 From: Guillaume Heurtier <guillaume.heurtier@maarch.org> Date: Thu, 26 Nov 2020 11:04:46 +0100 Subject: [PATCH] FEAT #11896 TIME 1:45 check history privilege + show MP workflow status in summary sheet + fix var lang --- .../controllers/SummarySheetController.php | 12 ++++++++++++ src/core/lang/lang-en.php | 7 +++---- src/core/lang/lang-fr.php | 7 +++---- .../summarySheet/summary-sheet.component.ts | 18 ++++++++++++------ 4 files changed, 30 insertions(+), 14 deletions(-) diff --git a/src/app/resource/controllers/SummarySheetController.php b/src/app/resource/controllers/SummarySheetController.php index 4bee8e3ccfe..2898fed31d0 100755 --- a/src/app/resource/controllers/SummarySheetController.php +++ b/src/app/resource/controllers/SummarySheetController.php @@ -21,6 +21,7 @@ use Endroid\QrCode\QrCode; use Entity\models\EntityModel; use Entity\models\ListInstanceModel; use ExternalSignatoryBook\controllers\MaarchParapheurController; +use Group\controllers\PrivilegeController; use History\models\HistoryModel; use IndexingModel\models\IndexingModelFieldModel; use Note\models\NoteEntityModel; @@ -828,6 +829,13 @@ class SummarySheetController $users = []; foreach ($workflow as $item) { $label = $item['userDisplay'] . ' (' . ($item['mode'] == 'visa' ? _VISA_USER_MIN : _SIGNATORY) . ')'; + if (!empty($item['status'])) { + if ($item['status'] == 'VAL') { + $label .= ', ' . _MAARCH_PARAPHEUR_STATUS_VAL; + } elseif ($item['status'] == 'REF') { + $label .= ', ' . _MAARCH_PARAPHEUR_STATUS_REF; + } + } $users[] = ['user' => $label, 'date' => $item['processDate']]; } @@ -850,6 +858,10 @@ class SummarySheetController } } } elseif ($unit['unit'] == 'workflowHistory') { + if (!PrivilegeController::hasPrivilege(['privilegeId' => 'view_doc_history', 'userId' => $GLOBALS['id']])) { + continue; + } + $historyList = HistoryModel::get([ 'select' => ['record_id', 'event_date', 'user_id', 'info', 'remote_ip', 'count(1) OVER()'], 'where' => ['table_name in (?)', 'event_type like ?', 'record_id = ?'], diff --git a/src/core/lang/lang-en.php b/src/core/lang/lang-en.php index f98f3638043..4617caa1099 100755 --- a/src/core/lang/lang-en.php +++ b/src/core/lang/lang-en.php @@ -126,7 +126,6 @@ define('_EMAIL', 'Email'); define('_FAX', 'Fax'); define('_CHRONOPOST', 'Chronopost'); define('_FEDEX', 'Fedex'); -define('_REGISTERED_MAIL', 'Registered mail with acknowledgement of receipt'); define('_COURIER', 'Courier'); define('_NUMERIC_PACKAGE', 'Numeric package'); define('_OTHER', 'Other'); @@ -468,9 +467,6 @@ define("_RETENTION_RULE_FROZEN", "Retention rule frozen"); define("_BINDING_DOCUMENT", "Binding document"); define("_YES", "Yes"); define("_NO", "No"); -define("_RESET_BINDING_DOCUMENT", "Reset binding document"); -define("_SET_BINDING_DOCUMENT", "Mail was set as binding"); -define("_SET_NON_BINDING_DOCUMENT", "Mail was set as non binding"); define("_FREEZE_RETENTION_RULE", "Retention rule frozen"); define("_UNFREEZE_RETENTION_RULE", "Retention rule unfrozen"); @@ -499,3 +495,6 @@ define('_RESET_RECORD_MANAGEMENT', 'Reset record management'); define('_RESET_RECORD_MANAGEMENT_DESC', 'Reset record management'); define('_USER_SKIPPED', 'User skipped'); + +define('_MAARCH_PARAPHEUR_STATUS_VAL', 'Validé'); +define('_MAARCH_PARAPHEUR_STATUS_REF', 'Refusé'); diff --git a/src/core/lang/lang-fr.php b/src/core/lang/lang-fr.php index db3a45f9869..0e552f9d39c 100755 --- a/src/core/lang/lang-fr.php +++ b/src/core/lang/lang-fr.php @@ -126,7 +126,6 @@ define('_EMAIL', 'Courriel'); define('_FAX', 'Fax'); define('_CHRONOPOST', 'Chronopost'); define('_FEDEX', 'Fedex'); -define('_REGISTERED_MAIL', 'Courrier AR'); define('_COURIER', 'Coursier'); define('_NUMERIC_PACKAGE', 'Pli numérique'); define('_OTHER', 'Autre'); @@ -461,7 +460,6 @@ define("_DOC_ADD_TO_SIGNATORY_BOOK", "Courrier intégré au parapheur électroni define("_DOC_REMOVE_FROM_SIGNATORY_BOOK", "Courrier retiré du parapheur électronique"); define("_DOC_ADD_TO_MAILEVA", "Courrier intégré aux envois Maileva"); define("_DOC_REMOVE_FROM_MAILEVA", "Courrier retiré des envois Maileva"); -define("_RESET_BINDING_DOCUMENT", "Suppression de l'engagement du courrier"); define("_SET_BINDING_DOCUMENT", "Courrier défini comme engageant"); define("_SET_NON_BINDING_DOCUMENT", "Courrier défini comme non engageant"); define("_RETENTION_RULE_FROZEN", "Durée d'utilitée courante gelée"); @@ -469,8 +467,6 @@ define("_BINDING_DOCUMENT", "Document engageant"); define("_YES", "Oui"); define("_NO", "Non"); define("_RESET_BINDING_DOCUMENT", "Paramètre Document engageant supprimé"); -define("_SET_BINDING_DOCUMENT", "Le document a été défini comme engageant"); -define("_SET_NON_BINDING_DOCUMENT", "Le document a été défini comme non engageant"); define("_FREEZE_RETENTION_RULE", "La durée d'utilité courante a été gelée"); define("_UNFREEZE_RETENTION_RULE", "La durée d'utilité courante a été dégelée"); @@ -506,3 +502,6 @@ define('_RESET_RECORD_MANAGEMENT', 'Remise à zéro du circuit d\'archivage'); define('_RESET_RECORD_MANAGEMENT_DESC', 'Remise à zéro du circuit d\'archivage'); define('_USER_SKIPPED', 'Utilisateur passé'); + +define('_MAARCH_PARAPHEUR_STATUS_VAL', 'Validé'); +define('_MAARCH_PARAPHEUR_STATUS_REF', 'Refusé'); diff --git a/src/frontend/app/list/summarySheet/summary-sheet.component.ts b/src/frontend/app/list/summarySheet/summary-sheet.component.ts index ef79599c333..67d7300eb3a 100644 --- a/src/frontend/app/list/summarySheet/summary-sheet.component.ts +++ b/src/frontend/app/list/summarySheet/summary-sheet.component.ts @@ -7,6 +7,7 @@ import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { FunctionsService } from '@service/functions.service'; import { tap } from 'rxjs/operators'; import { DomSanitizer } from '@angular/platform-browser'; +import {PrivilegeService} from '@service/privileges.service'; @Component({ templateUrl: 'summary-sheet.component.html', @@ -121,17 +122,17 @@ export class SummarySheetComponent implements OnInit { enabled: true }, { - id: 'trafficRecords', - unit: 'trafficRecords', - label: this.translate.instant('lang.trafficRecordSummarySheet'), + id: 'workflowHistory', + unit: 'workflowHistory', + label: this.translate.instant('lang.history'), css: 'col-md-4 text-center', desc: [], enabled: true }, { - id: 'workflowHistory', - unit: 'workflowHistory', - label: this.translate.instant('lang.history'), + id: 'trafficRecords', + unit: 'trafficRecords', + label: this.translate.instant('lang.trafficRecordSummarySheet'), css: 'col-md-4 text-center', desc: [], enabled: true @@ -145,6 +146,7 @@ export class SummarySheetComponent implements OnInit { public dialogRef: MatDialogRef<SummarySheetComponent>, @Inject(MAT_DIALOG_DATA) public data: any, public functions: FunctionsService, + private privilegeService: PrivilegeService, private sanitizer: DomSanitizer) { } ngOnInit(): void { @@ -172,6 +174,10 @@ export class SummarySheetComponent implements OnInit { } }) ).subscribe(); + + if (!this.privilegeService.hasCurrentUserPrivilege('view_doc_history')) { + this.dataAvailable = this.dataAvailable.filter((item: any) => item.id !== 'workflowHistory'); + } } drop(event: CdkDragDrop<string[]>) { -- GitLab