diff --git a/sonar-project.properties b/sonar-project.properties
new file mode 100755
index 0000000000000000000000000000000000000000..ac23dc737b4c8526fd37b7eea17116aa0a74cd66
--- /dev/null
+++ b/sonar-project.properties
@@ -0,0 +1,18 @@
+# must be unique in a given SonarQube instance
+sonar.projectKey=my:project
+# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
+sonar.projectName=Maarch Parapheur 21.03
+sonar.projectVersion=1.0
+ 
+# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
+# This property is optional if sonar.modules is set. 
+sonar.sources=src
+ 
+# Encoding of the source code. Default is default system encoding
+#sonar.sourceEncoding=UTF-8
+
+sonar.exclusions=node_modules/**/* , vendor/**/* , sql/** , test/**/* , .git/**
+
+sonar.tests=test/unitTests/build
+sonar.php.tests.reportPath=test/unitTests/build/tests-phpunit.xml
+sonar.php.coverage.reportPaths=test/unitTests/build/tests-clover.xml
diff --git a/src/app/workflow/models/WorkflowTemplateModel.php b/src/app/workflow/models/WorkflowTemplateModel.php
index 849cf3056b28390f345bdcacad29dd0df08f6a0d..f646b0c2a46fea941c236aa27ad0cb7eb85dcd03 100755
--- a/src/app/workflow/models/WorkflowTemplateModel.php
+++ b/src/app/workflow/models/WorkflowTemplateModel.php
@@ -102,20 +102,4 @@ class WorkflowTemplateModel
 
         return true;
     }
-
-//    public static function getWithItems(array $args = [])
-//    {
-//        ValidatorModel::arrayType($args, ['select', 'where', 'data', 'orderBy']);
-//
-//        $listTemplates = DatabaseModel::select([
-//            'select'    => empty($args['select']) ? ['*'] : $args['select'],
-//            'table'     => ['list_templates', 'list_templates_items'],
-//            'left_join' => ['list_templates.id = list_templates_items.list_template_id'],
-//            'where'     => empty($args['where']) ? [] : $args['where'],
-//            'data'      => empty($args['data']) ? [] : $args['data'],
-//            'order_by'  => empty($args['orderBy']) ? [] : $args['orderBy']
-//        ]);
-//
-//        return $listTemplates;
-//    }
 }
diff --git a/src/core/models/DatabasePDO.php b/src/core/models/DatabasePDO.php
index 4a590d69bc4c990c4c4f317fb00b7b079aa9b525..f70150cd6bc45cfc7e5faa34d2f1eae3940b79b9 100755
--- a/src/core/models/DatabasePDO.php
+++ b/src/core/models/DatabasePDO.php
@@ -102,7 +102,7 @@ class DatabasePDO
         if (!empty($data)) {
             $tmpData = [];
             $position = 0;
-            foreach ($data as $key => $value) {
+            foreach ($data as $value) {
                 if (is_array($value)) {
                     $placeholders = implode(',', array_fill(0, count($value), '?'));
                     $position = strpos($queryString, '(?)', $position + 1);
diff --git a/src/frontend/app/administration/connection/ldap/ldap-list.component.html b/src/frontend/app/administration/connection/ldap/ldap-list.component.html
index f897d4f56564ba9d316855caced9d840ca563b71..384d396ba0dff03f640711392c8a7bf1e93b0480 100644
--- a/src/frontend/app/administration/connection/ldap/ldap-list.component.html
+++ b/src/frontend/app/administration/connection/ldap/ldap-list.component.html
@@ -18,7 +18,6 @@
 <ion-content #mainContent>
     <ion-list>
         <ion-item style="display: flex;">
-            <!--<ion-checkbox slot="start"></ion-checkbox>-->
             <ion-label color="primary" matSort [matSortActive]="displayedColumns[0]" matSortDirection='asc'
                 style="display: flex;font-size: 12px;align-items: center;" (matSortChange)="sortData($event)">
                 <ng-container *ngFor="let col of displayedColumns">
@@ -37,7 +36,6 @@
         </ion-item>
         <ion-virtual-scroll [items]="sortedData" approxItemHeight="50px">
             <ion-item *virtualItem="let element" style="display: flex;">
-                <!--<ion-checkbox slot="start"></ion-checkbox>-->
                 <ion-label style="display: flex;cursor: pointer;"
                     routerLink="/administration/connections/ldaps/{{element.id}}">
                     <div style="flex: 1" *ngFor="let col of displayedColumns">
diff --git a/src/frontend/app/administration/group/group.component.html b/src/frontend/app/administration/group/group.component.html
index d23a74a4cab79ca2a5f0bf034722d646d302cafb..2f9eacbabc53d578c50177a956efa5ec6a7ac457 100644
--- a/src/frontend/app/administration/group/group.component.html
+++ b/src/frontend/app/administration/group/group.component.html
@@ -33,7 +33,6 @@
         <ion-card *ngIf="!creationMode" style="height: 400px;">
             <ion-list>
                 <ion-item style="display: flex;">
-                    <!--<ion-checkbox slot="start"></ion-checkbox>-->
                     <ion-label color="primary" matSort [matSortActive]="displayedColumns[1]" matSortDirection='asc'
                         style="display: flex;font-size: 12px;align-items: center;" (matSortChange)="sortData($event)">
                         <ng-container *ngFor="let col of displayedColumns">
@@ -53,7 +52,6 @@
                 </ion-item>
                 <ion-virtual-scroll [items]="sortedData" approxItemHeight="50px">
                     <ion-item *virtualItem="let element" style="display: flex;">
-                        <!--<ion-checkbox slot="start"></ion-checkbox>-->
                         <ion-label style="display: flex;cursor: pointer;"
                             routerLink="/administration/users/{{element.id}}">
                             <div style="flex: 1" *ngFor="let col of displayedColumns">
diff --git a/src/frontend/app/administration/group/groups-list.component.html b/src/frontend/app/administration/group/groups-list.component.html
index 440bfc70e9cf75e9fb1ce15aba35ba018a11b032..cbfd736695bb43679860532e9b76e98655e64a5b 100644
--- a/src/frontend/app/administration/group/groups-list.component.html
+++ b/src/frontend/app/administration/group/groups-list.component.html
@@ -17,7 +17,6 @@
 <ion-content #mainContent>
   <ion-list>
     <ion-item style="display: flex;">
-      <!--<ion-checkbox slot="start"></ion-checkbox>-->
       <ion-label color="primary" matSort [matSortActive]="displayedColumns[0]" matSortDirection='asc' style="display: flex;font-size: 12px;align-items: center;" (matSortChange)="sortData($event)">
         <ng-container *ngFor="let col of displayedColumns">
           <div [mat-sort-header]="col" disableClear style="flex: 1" *ngIf="col!=='actions'">
@@ -34,7 +33,6 @@
     </ion-item>
     <ion-virtual-scroll [items]="sortedData" approxItemHeight="50px">
       <ion-item *virtualItem="let element" style="display: flex;">
-        <!--<ion-checkbox slot="start"></ion-checkbox>-->
         <ion-label style="display: flex;cursor: pointer;" routerLink="/administration/groups/{{element.id}}">
           <div style="flex: 1" *ngFor="let col of displayedColumns">
             {{element[col]}}
diff --git a/src/frontend/app/administration/user/users-list.component.html b/src/frontend/app/administration/user/users-list.component.html
index 2201dc0630b37afe100c0620907305531a677b34..281d3f0c1c76fee8098aee786d2cbc60b832166a 100644
--- a/src/frontend/app/administration/user/users-list.component.html
+++ b/src/frontend/app/administration/user/users-list.component.html
@@ -17,7 +17,6 @@
 <ion-content #mainContent>
   <ion-list>
     <ion-item style="display: flex;">
-      <!--<ion-checkbox slot="start"></ion-checkbox>-->
       <ion-label color="primary" matSort [matSortActive]="displayedColumns[1]" matSortDirection='asc' style="display: flex;font-size: 12px;align-items: center;" (matSortChange)="sortData($event)">
         <ng-container *ngFor="let col of displayedColumns">
           <div [mat-sort-header]="col" disableClear style="flex: 1" *ngIf="col!=='actions'">
@@ -34,7 +33,6 @@
     </ion-item>
     <ion-virtual-scroll [items]="sortedData" approxItemHeight="50px">
       <ion-item *virtualItem="let element" style="display: flex;">
-        <!--<ion-checkbox slot="start"></ion-checkbox>-->
         <ion-label style="display: flex;cursor: pointer;" routerLink="/administration/users/{{element.id}}">
           <div style="flex: 1" *ngFor="let col of displayedColumns">
             {{element[col]}}
diff --git a/src/frontend/app/app.component.scss b/src/frontend/app/app.component.scss
index e16e3c2f13aa702713f88aa430ca4e0027ac3d13..f618ed4438e281ecf47c14fe74762069ee1a5781 100644
--- a/src/frontend/app/app.component.scss
+++ b/src/frontend/app/app.component.scss
@@ -7,7 +7,7 @@
 .right-menu {
     --width: 350px;
     --min-width: 350px;
-    --max-width: 350px%;
+    --max-width: 350px;
 }
 
 .right-menu-responsive {
diff --git a/src/frontend/app/document/document.component.ts b/src/frontend/app/document/document.component.ts
index f6c4e4d22025a5238aaf2a30e382ee7ede1bb41b..ca900928451d5245775244c5da785f194fcc5a1d 100755
--- a/src/frontend/app/document/document.component.ts
+++ b/src/frontend/app/document/document.component.ts
@@ -278,10 +278,6 @@ export class DocumentComponent implements OnInit {
         });
         await modal.present();
         const { data } = await modal.onWillDismiss();
-        if (data === 'success') {
-
-        }
-        // console.log('dissmiss');
     }
 
     scrollToElem() {
diff --git a/src/frontend/app/documentDateList/document-date-list.component.scss b/src/frontend/app/documentDateList/document-date-list.component.scss
index dcb435a878d572f54cceed96995d8a35f68e322f..d6ceb1f43fc060b1ed4b9a8444bc5fc6587943ad 100644
--- a/src/frontend/app/documentDateList/document-date-list.component.scss
+++ b/src/frontend/app/documentDateList/document-date-list.component.scss
@@ -7,12 +7,8 @@
     position: absolute;
     border: dashed 1px grey;
     background: rgba(255, 255, 255, 0.6) none repeat scroll 0% 0%;
-    position: absolute;
-    // margin-right: 10px;
     background: none;
     font: sans-serif;
-    // overflow: hidden;
-    // margin-bottom: 26px;
 }
 
 svg {
diff --git a/src/frontend/app/documentSignList/document-sign-list.component.scss b/src/frontend/app/documentSignList/document-sign-list.component.scss
index 4e3264163c61cebbc3ba0a9e1c766fe751ef5dfe..bc8e5e71f1dee45947af4aae6b2fa187fb3da9fa 100644
--- a/src/frontend/app/documentSignList/document-sign-list.component.scss
+++ b/src/frontend/app/documentSignList/document-sign-list.component.scss
@@ -7,12 +7,8 @@
     position: absolute;
     border: dashed 1px grey;
     background: rgba(255, 255, 255, 0.6) none repeat scroll 0% 0%;
-    position: absolute;
-    // margin-right: 10px;
     background: none;
     font: sans-serif;
-    // overflow: hidden;
-    // margin-bottom: 26px;
 }
 
 svg {
diff --git a/src/frontend/app/login/updatePassword/updatePassword.component.html b/src/frontend/app/login/updatePassword/updatePassword.component.html
index 91f07bd8e660054860f410812dfe38055fb5ea92..edc083eef14897e64cd1255578a3777ab384c4fc 100644
--- a/src/frontend/app/login/updatePassword/updatePassword.component.html
+++ b/src/frontend/app/login/updatePassword/updatePassword.component.html
@@ -64,36 +64,3 @@
         </ion-item>
     </form>
 </ion-content>
-<!--<div class="login-content">
-    <mat-icon svgIcon="maarchLogo" class="maarchLogo"></mat-icon>
-    <mat-card class="login-form">
-        <form (ngSubmit)="updatePassword()">
-            <div class="alert-message alert-message-info" role="alert">
-                {{'lang.logInOncePasswordChanged' | translate}}
-            </div>
-            <mat-form-field class="input-row">
-                <input name="newPassword" matInput [(ngModel)]="password.newPassword"
-                    placeholder="{{'lang.newPassword' | translate}}" [type]="hideNewPassword ? 'password' : 'text'"
-                    (keyup)="checkPasswordValidity(password.newPassword)">
-                <mat-icon matSuffix (click)="hideNewPassword = !hideNewPassword" class="fa fa-2x"
-                    [ngClass]="[hideNewPassword ? 'fa-eye-slash' : 'fa-eye']">
-                </mat-icon>
-                <mat-hint style="color:red;">{{handlePassword.errorMsg | translate}}</mat-hint>
-            </mat-form-field>
-            <mat-form-field class="input-row">
-                <input name="passwordConfirmation" matInput [(ngModel)]="password.passwordConfirmation"
-                    placeholder="{{'lang.passwordConfirmation' | translate}}"
-                    [type]="hideNewPasswordConfirm ? 'password' : 'text'">
-                <mat-icon matSuffix (click)="hideNewPasswordConfirm = !hideNewPasswordConfirm" class="fa fa-2x"
-                    [ngClass]="[hideNewPasswordConfirm ? 'fa-eye-slash' : 'fa-eye']"></mat-icon>
-                <mat-hint style="color:red;" *ngIf="password.passwordConfirmation !== password.newPassword">
-                    {{'lang.passwordNotMatch' | translate}}</mat-hint>
-                <mat-hint style="color:green;"
-                    *ngIf="password.passwordConfirmation === password.newPassword && password.newPassword.length > 0 && password.passwordConfirmation.length> 0">
-                    {{'lang.samePassword' | translate}}</mat-hint>
-            </mat-form-field>
-            <button type="submit" mat-button [disabled]="allowValidate() || loading">{{labelButton | translate}}</button>
-            <button mat-button routerLink="/login">{{'lang.cancel' | translate}}</button>
-        </form>
-    </mat-card>
-</div>-->
\ No newline at end of file
diff --git a/src/frontend/app/search/search.component.ts b/src/frontend/app/search/search.component.ts
index 30864340fd855370eb15cc1fec42f74654012dbf..f54a29608642aaa696e98c439f13136aa3fa2911 100644
--- a/src/frontend/app/search/search.component.ts
+++ b/src/frontend/app/search/search.component.ts
@@ -350,8 +350,8 @@ export class SearchComponent implements OnInit {
             this.http.put(`../rest/documents/${item.id}/workflows/interrupt`, {})
                 .pipe(
                     tap(() => {
-                        this.notificationService.success('lang.documentInterrupted'),
-                            resolve(true);
+                        this.notificationService.success('lang.documentInterrupted');
+                        resolve(true);
                     }),
                     catchError((err: any) => {
                         this.notificationService.handleErrors(err);