Skip to content

Commit

Permalink
Merge pull request #3930 from evarisk-micka/add_tool_fixrisk
Browse files Browse the repository at this point in the history
#3917 [Tools] add: new tool to fix every risk with a corrupted category
  • Loading branch information
nicolas-eoxia committed May 30, 2024
2 parents 4ebaf02 + 9e50788 commit 3ecd559
Show file tree
Hide file tree
Showing 4 changed files with 119 additions and 8 deletions.
15 changes: 11 additions & 4 deletions core/tpl/riskanalysis/risk/digiriskdolibarr_risklist_view.tpl.php
Original file line number Diff line number Diff line change
Expand Up @@ -315,6 +315,7 @@
$usertmp->fetchAll();
$usersList = $usertmp->users;
$timeSpentSortedByTasks = $digiriskTask->fetchAllTimeSpentAllUsers('AND fk_element > 0', 'element_datehour', 'DESC', 1);
$dangerCategories = $risk->getDangerCategories();

$riskAssessment->ismultientitymanaged = 1;

Expand Down Expand Up @@ -633,7 +634,6 @@
</div>
<ul class="saturne-dropdown-content wpeo-gridlayout grid-5 grid-gap-0">
<?php
$dangerCategories = $risk->getDangerCategories();
if ( ! empty($dangerCategories) ) :
foreach ($dangerCategories as $dangerCategory) : ?>
<li class="item dropdown-item wpeo-tooltip-event" data-is-preset="<?php echo ''; ?>" data-id="<?php echo $dangerCategory['position'] ?>" aria-label="<?php echo $dangerCategory['name'] ?>">
Expand Down Expand Up @@ -837,7 +837,6 @@ class="risk-evaluation-cotation cotation"><?php echo $shownCotation; ?></div>
</div>
<ul class="saturne-dropdown-content wpeo-gridlayout grid-5 grid-gap-0">
<?php
$dangerCategories = $risk->getDangerCategories();
if ( ! empty($dangerCategories) ) :
foreach ($dangerCategories as $dangerCategory) : ?>
<li class="item dropdown-item wpeo-tooltip-event" data-is-preset="<?php echo ''; ?>" data-id="<?php echo $dangerCategory['position'] ?>" aria-label="<?php echo $dangerCategory['name'] ?>">
Expand Down Expand Up @@ -1030,6 +1029,16 @@ class="risk-evaluation-cotation cotation"><?php echo $shownCotation; ?></div>
print '<div class="div-title-and-table-responsive">';
print_barre_liste($title, $page, $_SERVER["PHP_SELF"], $param, $sortfield, $sortorder, $massactionbutton, $num, $nbtotalofrecords, $risk->picto, 0, $newcardbutton, '', $limit, 0, 0, 1);

$corruptedRisks = saturne_fetch_all_object_type('Risk', '', '', 0, 0, ['customsql' => 't.category NOT BETWEEN 0 AND ' . count($dangerCategories) . ' AND t.type = "' . $riskType . '"']);

if (is_array($corruptedRisks) && !empty($corruptedRisks)) {
print '<div class="wpeo-notice notice-warning notice-red">';
print '<div class="notice-content">';
print '<a href="' . dol_buildpath('/custom/digiriskdolibarr/view/digirisktools.php', 2) . '">' . '<div class="notice-subtitle"><b>' . $langs->trans('NumberOfRisksCorrupted', count($corruptedRisks)) . ' : ' . $langs->trans('RepairRisks') . '</b></div></a>';
print '</div>';
print '</div>';
}

include DOL_DOCUMENT_ROOT . '/core/tpl/massactions_pre.tpl.php';

if ($search_all) {
Expand Down Expand Up @@ -1113,7 +1122,6 @@ class="risk-evaluation-cotation cotation"><?php echo $shownCotation; ?></div>
<?php endif; ?>
<ul class="saturne-dropdown-content wpeo-gridlayout grid-5 grid-gap-0">
<?php
$dangerCategories = $risk->getDangerCategories();
if ( ! empty($dangerCategories) ) :
foreach ($dangerCategories as $dangerCategory) : ?>
<li class="item dropdown-item wpeo-tooltip-event classfortooltip" data-is-preset="<?php echo ''; ?>" data-id="<?php echo $dangerCategory['position'] ?>" aria-label="<?php echo $dangerCategory['name'] ?>">
Expand Down Expand Up @@ -1286,7 +1294,6 @@ class="risk-evaluation-cotation cotation"><?php echo $shownCotation; ?></div>
<?php if ($conf->global->DIGIRISKDOLIBARR_RISK_CATEGORY_EDIT) : ?>
<ul class="saturne-dropdown-content wpeo-gridlayout grid-5 grid-gap-0">
<?php
$dangerCategories = $risk->getDangerCategories();
if ( ! empty($dangerCategories) ) :
foreach ($dangerCategories as $dangerCategory) : ?>
<li class="item dropdown-item wpeo-tooltip-event classfortooltip" data-is-preset="<?php echo ''; ?>" data-id="<?php echo $dangerCategory['position'] ?>" aria-label="<?php echo $dangerCategory['name'] ?>">
Expand Down
6 changes: 6 additions & 0 deletions langs/fr_FR/digiriskdolibarr.lang
Original file line number Diff line number Diff line change
Expand Up @@ -1004,6 +1004,7 @@ RisksRepartitionByDigiriskElement = Répartition des risques par

# Data - Donnée
Environment = Environnement
Riskenvironmental = Risque environnemental
RiskEnvironmentals = Risques environnementaux
Riskenvironmentals = Risques environnementaux
DigiriskElementRiskenvironmentalsList = Liste des risques environnementaux
Expand Down Expand Up @@ -1444,6 +1445,11 @@ AdvancedImport = Import avancé
AdvancedImportDescription = Permet d'importer chaque élément indépendamment (Arborescence, risques et signalisations)
DataMigrationWordPressToDolibarr = Migration des données de WordPress vers Dolibarr
DataMigrationDolibarrToDolibarr = Migration des données de Dolibarr vers Dolibarr
RepairRisks = Réparer les risques
NumberOfRisksCorrupted = Vous avez %s risque(s) dont la catégorie est corrompue, allez sur la page "Outils" pour le(s) réparer
NoRiskToRepair = Aucun risque à réparer
RiskSuccessfullyRepaired = Risques réparés avec succès
CorruptedCategoryOnRiskList = Liste des risques dont la catégorie est corrompue

#
# Other
Expand Down
1 change: 0 additions & 1 deletion view/digiriskelement/digiriskelement_risk.php
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@
// Load DigiriskDolibarr libraries
require_once __DIR__ . '/../../class/digiriskelement.class.php';
require_once __DIR__ . '/../../class/digiriskstandard.class.php';
require_once __DIR__ . '/../../class/digiriskelement.class.php';
require_once __DIR__ . '/../../class/riskanalysis/risk.class.php';
require_once __DIR__ . '/../../class/riskanalysis/riskassessment.class.php';
require_once __DIR__ . '/../../core/modules/digiriskdolibarr/riskanalysis/riskassessment/mod_riskassessment_standard.php';
Expand Down
105 changes: 102 additions & 3 deletions view/digirisktools.php
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
die('Include of digiriskdolibarr main fails');
}

global $conf, $db, $langs, $user;
global $conf, $db, $langs, $moduleNameLowerCase, $user;

require_once DOL_DOCUMENT_ROOT . '/core/lib/admin.lib.php';
require_once DOL_DOCUMENT_ROOT . '/core/lib/images.lib.php';
Expand Down Expand Up @@ -77,10 +77,14 @@
$numberingModuleName = [
'project/task' => $conf->global->PROJECT_TASK_ADDON,
];
list($refTaskMod) = saturne_require_objects_mod($numberingModuleName, $moduleNameLowerCase);
list($refTaskMod) = saturne_require_objects_mod($numberingModuleName, $moduleNameLowerCase);

$upload_dir = $conf->digiriskdolibarr->multidir_output[$conf->entity ?? 1];

$dangerCategories = $risk->getDangerCategories();
$risk->type = 'riskenvironmental';
$environmentalCategories = $risk->getDangerCategories();

// Security check - Protection if external user
$permissiontoread = $user->rights->digiriskdolibarr->adminpage->read;
$permtoupload = $user->rights->ecm->upload;
Expand Down Expand Up @@ -783,6 +787,31 @@
}
}

if ($action == 'repair_category') {
// @TODO move into saturne when we will repair every fields of every objects
if (is_array($_POST) && !empty($_POST)) {
$errors = [];
foreach($_POST as $key => $value) {
if (strstr($key, 'search_') && dol_strlen($value) > 0 && $value >= 0 && $value <= count($dangerCategories)) {
$riskId = trim($key, 'search_');
$risk->fetch($riskId);
$result = $risk->setValueFrom('category', $value);

if ($result <= 0) {
$errors[] = $risk->errors;
}
}
}
}

if (!empty($errors)) {
setEventMessages($risk->error, $errors, 'errors');
} else {
setEventMessages($langs->trans('RiskSuccessfullyRepaired'), []);
}
$action = '';
}

/*
* View
*/
Expand Down Expand Up @@ -938,7 +967,77 @@
print '</td>';
print '</tr>';
print '</table>';
print '</form>';
print '</form>';

print load_fiche_titre($langs->trans('CorruptedCategoryOnRiskList'), '', '');

print '<form class="repair-category" name="repairCategory" id="repairCategory" action="' . $_SERVER['PHP_SELF'] . '" method="POST">';
print '<input type="hidden" name="token" value="' . newToken() . '">';
print '<input type="hidden" name="action" value="repair_category">';

print '<table class="noborder centpercent">';
print '<tr class="liste_titre">';
print '<td class="center">' . $langs->trans('RiskCategory') . '</td>';
print '<td>' . $langs->trans('Risk') . '</td>';
print '<td>' . $langs->trans('Type') . '</td>';
print '<td>' . $langs->trans('Description') . '</td>';
print '<td>' . $langs->trans('DigiriskElement') . '</td>';
print '</tr>';

$corruptedRisks = saturne_fetch_all_object_type('Risk', '', '', 0, 0, ['customsql' => 't.category NOT BETWEEN 0 AND ' . count($dangerCategories)]);

if (is_array($corruptedRisks) && !empty($corruptedRisks)) {
foreach ($corruptedRisks as $key => $risk) {
$digiriskElement->fetch($risk->fk_element);
print '<tr class="oddeven">';
print '<td class="center">'
?>
<div class="wpeo-dropdown dropdown-large dropdown-grid category-danger padding" style="position: inherit">
<input class="input-hidden-danger" type="hidden" name="<?php echo 'search_' . $key ?>" />
<div class="dropdown-toggle dropdown-add-button button-cotation">
<span class="wpeo-button button-square-50 button-grey"><i class="fas fa-exclamation-triangle button-icon"></i></span>
<img class="danger-category-pic wpeo-tooltip-event hidden" src="" aria-label="" />
</div>
<ul class="saturne-dropdown-content wpeo-gridlayout grid-5 grid-gap-0">
<?php
if ($risk->type == 'risk') {
if (!empty($dangerCategories)) :
foreach ($dangerCategories as $dangerCategory) : ?>
<li class="item dropdown-item wpeo-tooltip-event classfortooltip" data-is-preset="<?php echo ''; ?>" data-id="<?php echo $dangerCategory['position'] ?>" aria-label="<?php echo $dangerCategory['name'] ?>">
<img src="<?php echo DOL_URL_ROOT . '/custom/digiriskdolibarr/img/categorieDangers/' . $dangerCategory['thumbnail_name'] . '.png'?>" class="attachment-thumbail size-thumbnail photo photowithmargin" alt="" loading="lazy" width="48" height="48">
</li>
<?php endforeach;
endif;
} else {
if (!empty($environmentalCategories)) :
foreach ($environmentalCategories as $environmentalCategory) : ?>
<li class="item dropdown-item wpeo-tooltip-event classfortooltip" data-is-preset="<?php echo ''; ?>" data-id="<?php echo $environmentalCategory['position'] ?>" aria-label="<?php echo $environmentalCategory['name'] ?>">
<img src="<?php echo DOL_URL_ROOT . '/custom/digiriskdolibarr/img/categorieDangers/' . $environmentalCategory['thumbnail_name'] . '.png'?>" class="attachment-thumbail size-thumbnail photo photowithmargin" alt="" loading="lazy" width="48" height="48">
</li>
<?php endforeach;
endif;
}?>
</ul>
</div>
<?php
print '</td>';
print '<td>' . $risk->getNomUrl(1, 'nolink') . '</td>';
print '<td>' . $langs->trans(ucfirst($risk->type)) . '</td>';
print '<td>' . $risk->description . '</td>';
print '<td>' . $digiriskElement->getNomUrl(1, '', 0, '', -1, 1) . '</td>';
print '</tr>';
}
$button = '<input type="submit" class="wpeo-button button reposition" value="' . $langs->trans('RepairRisks') . '">';
} else {
print '<tr class="oddeven"><td colspan="5" class="opacitymedium">' . $langs->trans('NoRiskToRepair') . '</td></tr>';
$button = '<span class="butActionRefused">' . $langs->trans('RepairRisks') . '</span>';
}

print '</table>';
print '<div class="tabsAction">';
print $button;
print '</div>';
print '</form>';
}

// End of page
Expand Down

0 comments on commit 3ecd559

Please sign in to comment.