Skip to content

Commit 7a06dfa

Browse files
Merge pull request #4404 from Evarisk/develop
21.0.0
2 parents 6f4a65b + 76f7ae5 commit 7a06dfa

67 files changed

Lines changed: 2876 additions & 1954 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,18 @@
33
## Informations
44

55
- Numéro du module : 436302
6-
- Dernière mise à jour : 13/01/2025
6+
- Dernière mise à jour : 15/05/2025
77
- Éditeur : [Evarisk](https://evarisk.com)
88
- Thème : Eldy Menu
99
- Licence : GPLv3
1010
- Disponible sur : Windows - MacOS - Linux
1111

1212
### Version
1313

14-
- Version : 20.0.1
14+
- Version : 21.0.0
1515
- PHP : 7.4.33
16-
- Compatibilité : Dolibarr 20.0.0 - 20.0.4
17-
- Saturne Framework : 1.7.0
16+
- Compatibilité : Dolibarr 20.0.0 - 21.0.1
17+
- Saturne Framework : 21.0.0
1818

1919
## Liens
2020

admin/config/firepermit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@
159159

160160
print '<tr class="oddeven"><td><label for="MasterWorker">' . $langs->trans("MasterWorker") . '</label></td>';
161161
print '<td>' . $langs->trans("MasterWorkerDescription") . '</td>';
162-
$userlist = $form->select_dolusers(( ! empty($conf->global->DIGIRISKDOLIBARR_FIREPERMIT_MAITRE_OEUVRE) ? $conf->global->DIGIRISKDOLIBARR_FIREPERMIT_MAITRE_OEUVRE : $user->id), '', 0, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', 'minwidth300', 0, 1);
162+
$userlist = $form->select_dolusers(( ! empty($conf->global->DIGIRISKDOLIBARR_FIREPERMIT_MAITRE_OEUVRE) ? $conf->global->DIGIRISKDOLIBARR_FIREPERMIT_MAITRE_OEUVRE : $user->id), '', 0, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', 'minwidth300', 0, 1);
163163
print '<td>';
164164
print $form->selectarray('maitre_oeuvre', $userlist, ( ! empty($conf->global->DIGIRISKDOLIBARR_FIREPERMIT_MAITRE_OEUVRE) ? $conf->global->DIGIRISKDOLIBARR_FIREPERMIT_MAITRE_OEUVRE : $user->id), $langs->trans('SelectUser'), null, null, null, "40%", 0, 0, '', 'minwidth300', 1);
165165
print ' <a href="' . DOL_URL_ROOT . '/user/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '" target="_blank"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddUser") . '"></span></a>';

admin/config/preventionplan.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@
160160

161161
print '<tr class="oddeven"><td><label for="MasterWorker">' . $langs->trans("MasterWorker") . '</label></td>';
162162
print '<td>' . $langs->trans("MasterWorkerDescription") . '</td>';
163-
$userlist = $form->select_dolusers(( ! empty($conf->global->DIGIRISKDOLIBARR_PREVENTIONPLAN_MAITRE_OEUVRE) ? $conf->global->DIGIRISKDOLIBARR_PREVENTIONPLAN_MAITRE_OEUVRE : $user->id), '', 0, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', 'minwidth300', 0, 1);
163+
$userlist = $form->select_dolusers(( ! empty($conf->global->DIGIRISKDOLIBARR_PREVENTIONPLAN_MAITRE_OEUVRE) ? $conf->global->DIGIRISKDOLIBARR_PREVENTIONPLAN_MAITRE_OEUVRE : $user->id), '', 0, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', 'minwidth300', 0, 1);
164164
print '<td>';
165165
print $form->selectarray('maitre_oeuvre', $userlist, ( ! empty($conf->global->DIGIRISKDOLIBARR_PREVENTIONPLAN_MAITRE_OEUVRE) ? $conf->global->DIGIRISKDOLIBARR_PREVENTIONPLAN_MAITRE_OEUVRE : $user->id), $langs->trans('SelectUser'), null, null, null, "40%", 0, 0, '', 'minwidth300', 1);
166166
print ' <a href="' . DOL_URL_ROOT . '/user/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '" target="_blank"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddUser") . '"></span></a>';

admin/securityconf.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@
431431
if ($responsibleResources->ref == 'Responsible' && $responsibleResources->id[0] > 0) {
432432
$usertmp->fetch($responsibleResources->id[0]);
433433

434-
$userlist = $form->select_dolusers(GETPOST('responsible_socid'), '', 0, null, 0, '', '', 0, 0, 0, 'AND u.statut = 1', 0, '', 'minwidth300', 0, 1);
434+
$userlist = $form->select_dolusers(GETPOST('responsible_socid'), '', 0, null, 0, '', '', 0, 0, 0, '(u.statut:=:1)', 0, '', 'minwidth300', 0, 1);
435435
print '<tr>';
436436
print '<td class="" style="width:10%">' . $form->editfieldkey('ResponsibleToNotify', 'Responsible_id', '', $object, 0) . '</td>';
437437
print '<td>';
@@ -458,7 +458,7 @@
458458
if ( ! empty($user->socid)) {
459459
print $form->select_dolusers($user->socid, 'responsible_socid', 1, 1, 0, 0, 0, 0, 'minwidth300');
460460
} else {
461-
$userlist = $form->select_dolusers(GETPOST('responsible_socid'), '', 0, null, 0, '', '', 0, 0, 0, 'AND u.statut = 1', 0, '', 'minwidth300', 0, 1);
461+
$userlist = $form->select_dolusers(GETPOST('responsible_socid'), '', 0, null, 0, '', '', 0, 0, 0, '(u.statut:=:1)', 0, '', 'minwidth300', 0, 1);
462462
print '<tr>';
463463
print '<td class="" style="width:10%">' . $form->editfieldkey('ResponsibleToNotify', 'Responsible_id', '', $object, 0) . '</td>';
464464
print '<td>';

admin/socialconf.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -211,7 +211,7 @@
211211
print '<tr>';
212212
print '<td>' . $langs->trans("ActionOnUser") . '</td>';
213213
print '<td colspan="3" class="maxwidthonsmartphone">';
214-
print $form->select_dolusers($harassmentOfficer->id, 'HarassmentOfficer', 1, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', 'minwidth300');
214+
print $form->select_dolusers($harassmentOfficer->id, 'HarassmentOfficer', 1, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', 'minwidth300');
215215
if ( ! GETPOSTISSET('backtopage')) print ' <a href="' . DOL_URL_ROOT . '/user/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddUser") . '"></span></a>';
216216
print '</td></tr>';
217217

@@ -224,7 +224,7 @@
224224
print '<tr>';
225225
print '<td>' . $langs->trans("ActionOnUser") . '</td>';
226226
print '<td colspan="3" class="maxwidthonsmartphone">';
227-
print $form->select_dolusers($harassmentOfficerCSE->id, 'HarassmentOfficerCSE', 1, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', 'minwidth300');
227+
print $form->select_dolusers($harassmentOfficerCSE->id, 'HarassmentOfficerCSE', 1, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', 'minwidth300');
228228
if ( ! GETPOSTISSET('backtopage')) print ' <a href="' . DOL_URL_ROOT . '/user/card.php?action=create&backtopage=' . urlencode($_SERVER["PHP_SELF"] . '?action=create') . '"><span class="fa fa-plus-circle valignmiddle paddingleft" title="' . $langs->trans("AddUser") . '"></span></a>';
229229
print '</td></tr>';
230230

@@ -242,7 +242,7 @@
242242

243243
// * ESC Titulars - Titulaires CSE *
244244

245-
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', '', 0, 1);
245+
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', '', 0, 1);
246246
$titularsCse = $allLinks['TitularsCSE'];
247247

248248
print '<tr>';
@@ -258,7 +258,7 @@
258258

259259
// * ESC Alternates - Suppléants CSE *
260260

261-
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', '', 0, 1);
261+
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', '', 0, 1);
262262
$alternatesCse = $allLinks['AlternatesCSE'];
263263

264264
print '<tr>';
@@ -283,7 +283,7 @@
283283

284284
// * Staff Representatives Titulars - Titulaires Délégués du Personnel *
285285

286-
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', '', 0, 1);
286+
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', '', 0, 1);
287287
$titularsDp = $allLinks['TitularsDP'];
288288

289289
print '<tr>';
@@ -298,7 +298,7 @@
298298

299299
// * Staff Representatives Suppléants - Suppléants Délégués du Personnel *
300300

301-
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, 'AND u.statut = 1', 0, '', '', 0, 1);
301+
$userlist = $form->select_dolusers('', '', 0, null, 0, '', '', $conf->entity, 0, 0, '(u.statut:=:1)', 0, '', '', 0, 1);
302302
$alternatesDp = $allLinks['AlternatesDP'];
303303

304304
print '<tr>';

admin/ticket/ticket.php

Lines changed: 88 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,34 @@
9898
}
9999
}
100100

101+
if ($action == 'update_ticket_public_interface_url') {
102+
$urlInfos = ['origin', 'short', 'external'];
103+
$publicInterfaceTypes = array_merge(['current'], isModEnabled('multicompany') ? ['multicompany'] : []);
104+
foreach ($publicInterfaceTypes as $publicInterfaceType) {
105+
$radio = GETPOST($publicInterfaceType . '_ticket_public_interface_url');
106+
foreach ($urlInfos as $urlType) {
107+
if ($radio != $urlType . dol_ucfirst($publicInterfaceType) . 'TicketPublicInterfaceURL') {
108+
continue;
109+
}
110+
111+
$url = GETPOST($urlType . '_' . $publicInterfaceType . '_ticket_public_interface_url', 'custom', 0, FILTER_SANITIZE_URL);
112+
if (empty($url)) {
113+
setEventMessages($langs->transnoentities('ErrorFieldRequired', $langs->transnoentities(dol_ucfirst($urlType) . 'URL')) . '<br>' . $langs->transnoentities(dol_ucfirst($publicInterfaceType) . 'TicketPublicInterfaceURL'), [], 'errors');
114+
header('Location: ' . $_SERVER['PHP_SELF'] . '?page_y=' . $pageY);
115+
exit;
116+
}
117+
118+
dolibarr_set_const($db, 'DIGIRISKDOLIBARR_TICKET_' . dol_strtoupper($publicInterfaceType) . '_PUBLIC_INTERFACE_URL_' . dol_strtoupper($urlType), $url, 'chaine', 0, '', $conf->entity);
119+
}
120+
121+
dolibarr_set_const($db, 'DIGIRISKDOLIBARR_TICKET_' . dol_strtoupper($publicInterfaceType) . '_PUBLIC_INTERFACE_RADIO', $radio, 'chaine', 0, '', $conf->entity);
122+
}
123+
124+
setEventMessages('SavedConfig', []);
125+
header('Location: ' . $_SERVER['PHP_SELF'] . '?page_y=' . $pageY);
126+
exit;
127+
}
128+
101129
if ($action == 'setEmails') {
102130
dolibarr_set_const($db, 'DIGIRISKDOLIBARR_TICKET_SUBMITTED_SEND_MAIL_TO', GETPOST('emails'), 'integer', 0, '', $conf->entity);
103131
setEventMessages($langs->transnoentities('EmailsToNotifySet'), array());
@@ -308,20 +336,6 @@
308336

309337
print dol_get_fiche_head($head, 'ticket', $title, -1, "digiriskdolibarr_color@digiriskdolibarr");
310338

311-
print load_fiche_titre('<i class="fa fa-ticket-alt"></i> ' . $langs->transnoentities("TicketManagement"), '', '');
312-
print '<hr>';
313-
print load_fiche_titre($langs->transnoentities("PublicInterface"), '', '');
314-
315-
print '<span class="opacitymedium">' . $langs->transnoentities("DigiriskTicketPublicAccess") . '</span> : <a class="wordbreak" href="' . dol_buildpath('/custom/digiriskdolibarr/public/ticket/create_ticket.php?entity=' . $conf->entity, 1) . '" target="_blank" >' . dol_buildpath('/custom/digiriskdolibarr/public/ticket/create_ticket.php?entity=' . $conf->entity, 2) . '</a>';
316-
317-
if (isModEnabled('multicompany')) {
318-
print load_fiche_titre($langs->transnoentities("MultiEntityPublicInterface"), '', '');
319-
320-
print '<span class="opacitymedium">' . $langs->transnoentities("DigiriskTicketPublicAccess") . '</span> : <a class="wordbreak" href="' . dol_buildpath('/custom/digiriskdolibarr/public/ticket/create_ticket.php', 1) . '" target="_blank" >' . dol_buildpath('/custom/digiriskdolibarr/public/ticket/create_ticket.php', 2) . '</a>';
321-
}
322-
323-
print dol_get_fiche_end();
324-
325339
$enableDisableHtml = $langs->transnoentities("TicketActivatePublicInterface") . ' ';
326340
if (empty($conf->global->DIGIRISKDOLIBARR_TICKET_ENABLE_PUBLIC_INTERFACE)) {
327341
// Button off, click to enable
@@ -339,6 +353,53 @@
339353
print '<br><br>';
340354

341355
if ($conf->global->DIGIRISKDOLIBARR_TICKET_ENABLE_PUBLIC_INTERFACE == 1) {
356+
357+
// Public interface configuration
358+
print load_fiche_titre($langs->transnoentities('TicketsPublicInterfaceConfig'), '', '');
359+
360+
print '<form method="POST" action="' . $_SERVER['PHP_SELF'] . '" name="ticket_public_interface_form">';
361+
print '<input type="hidden" name="token" value="' . newToken() . '">';
362+
print '<input type="hidden" name="action" value="update_ticket_public_interface_url">';
363+
print '<input type="hidden" name="page_y">';
364+
print '<table class="noborder centpercent">';
365+
print '<tr class="liste_titre">';
366+
print '<td>' . $langs->transnoentities('Name') . '</td>';
367+
print '<td class="widthcentpercentminusx">' . $langs->transnoentities('Value') . '</td>';
368+
print '</tr>';
369+
370+
// Ticket public interface URL
371+
$urlInfos = [
372+
'origin' => 'https://dolibarr.org',
373+
'short' => 'https://demo.digirisk.com/registre',
374+
'external' => 'https://evarisk.com/help'
375+
];
376+
$publicInterfaceTypes = array_merge(['current'], isModEnabled('multicompany') ? ['multicompany'] : []);
377+
foreach ($publicInterfaceTypes as $publicInterfaceType) {
378+
print '<tr class="oddeven"><td>' . $langs->transnoentities(dol_ucfirst($publicInterfaceType) . 'TicketPublicInterfaceURL') . '</td>';
379+
print '<td class="widthcentpercentminusx">';
380+
foreach ($urlInfos as $urlType => $placeholder) {
381+
print '<input type="radio" id="' . $urlType . '-' . $publicInterfaceType . '-ticket-public-interface-url" name="' . $publicInterfaceType . '_ticket_public_interface_url" value="' . $urlType . dol_ucfirst($publicInterfaceType) . 'TicketPublicInterfaceURL"' . (getDolGlobalString('DIGIRISKDOLIBARR_TICKET_' . dol_strtoupper($publicInterfaceType) . '_PUBLIC_INTERFACE_RADIO') == $urlType . dol_ucfirst($publicInterfaceType) . 'TicketPublicInterfaceURL' ? 'checked' : '') . '/>';
382+
$link = img_picto('', 'external-link-alt', 'class="paddingright"');
383+
$ticketPublicInterfaceURL = getDolGlobalString('DIGIRISKDOLIBARR_TICKET_' . dol_strtoupper($publicInterfaceType) . '_PUBLIC_INTERFACE_URL_' . dol_strtoupper($urlType));
384+
if (!empty($ticketPublicInterfaceURL)) {
385+
$link = '<a href="' . $ticketPublicInterfaceURL . '" target="_blank">' . img_picto('', 'external-link-alt', 'class="paddingright"') . '</a>';
386+
}
387+
print '<label for="' . $urlType . '-' . $publicInterfaceType . '-ticket-public-interface-url" id="' . $urlType . '-' . $publicInterfaceType . '-ticket-public-interface-url-label">' . $link . $langs->transnoentities(dol_ucfirst($urlType) . 'URL');
388+
if (!empty($ticketPublicInterfaceURL)) {
389+
print showValueWithClipboardCPButton($ticketPublicInterfaceURL, 0, 'none');
390+
}
391+
print '</label><br>';
392+
print '<input type="url" name="' . $urlType . '_' . $publicInterfaceType . '_ticket_public_interface_url" id="' . $urlType . '-' . $publicInterfaceType . '-ticket-public-interface-url-input" class="marginleftonly widthcentpercentminusx" placeholder="' . $placeholder . '" pattern="https?://.*" size="30" value="' . $ticketPublicInterfaceURL . '" /><br>';
393+
}
394+
print '</td></tr>';
395+
}
396+
397+
print '</table>';
398+
print '<div class="tabsAction reposition"><button type="submit" class="butAction">' . $langs->trans('Save') . '</button></div>';
399+
print '</form>';
400+
401+
print load_fiche_titre($langs->transnoentities('Config'), '', '');
402+
342403
print '<div class="div-table-responsive-no-min">';
343404
print '<table class="noborder centpercent">';
344405
print '<tr class="liste_titre">';
@@ -348,6 +409,19 @@
348409
print '<td class="center">' . $langs->transnoentities("ShortInfo") . '</td>';
349410
print '</tr>';
350411

412+
// Show logo for company
413+
print '<tr class="oddeven"><td>' . $langs->transnoentities("TicketShowCompanyLogo") . '</td>';
414+
print '<td class="center">';
415+
print ajax_constantonoff('DIGIRISKDOLIBARR_TICKET_SHOW_COMPANY_LOGO');
416+
print '</td>';
417+
print '<td class="center">';
418+
print '';
419+
print '</td>';
420+
print '<td class="center">';
421+
print $form->textwithpicto('', $langs->transnoentities("TicketShowCompanyLogoHelp"));
422+
print '</td>';
423+
print '</tr>';
424+
351425
// Show logo for company
352426
print '<tr class="oddeven"><td>' . $langs->transnoentities("TicketShowCompanyLogo") . '</td>';
353427
print '<td class="center">';

class/accident.class.php

Lines changed: 22 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -598,7 +598,9 @@ public function getNbAccidentsLast3years(array $accidents = []): array
598598

599599
foreach($accidentsByYear as $year => $accidentByYear) {
600600
foreach($accidentByYear as $month => $accidentByMonth) {
601-
$accidentsArray[$month][$year] = $accidentByMonth;
601+
if (isset($accidentsArray[$month][$year])) {
602+
$accidentsArray[$month][$year] = $accidentByMonth;
603+
}
602604
}
603605
}
604606

@@ -657,17 +659,25 @@ public function getNbAccidentsByEmployees(array $accidents = [], array $accident
657659
*/
658660
public function getNbPresquAccidents(): array
659661
{
660-
global $langs;
662+
global $conf, $langs;
663+
664+
$array['nbpresquaccidents'] = 'N/A';
661665

662666
$category = new Categorie($this->db);
663667

664-
$category->fetch(0, $langs->transnoentities('PresquAccident'));
665-
$tickets = $category->getObjectsInCateg(Categorie::TYPE_TICKET);
666-
if (!empty($tickets) && is_array($tickets)) {
667-
$array['nbpresquaccidents'] = count($tickets);
668-
} else {
669-
$array['nbpresquaccidents'] = 'N/A';
668+
$result = $category->fetch(0, $langs->transnoentities('PresquAccident'));
669+
if ($result <= 0) {
670+
return $array;
670671
}
672+
673+
$filter = 't.fk_statut > 0 AND t.entity = ' . $conf->entity . ' AND cp.fk_categorie IN (' . $category->id . ')';
674+
$tickets = saturne_fetch_all_object_type('Ticket', '', '', 0, 0, ['customsql' => $filter], 'AND', false, false, true);
675+
if (!is_array($tickets) || empty($tickets)) {
676+
return $array;
677+
}
678+
679+
$array['nbpresquaccidents'] = count($tickets);
680+
671681
return $array;
672682
}
673683

@@ -853,7 +863,9 @@ public function getBannerTabContent() : array
853863
}
854864
$moreHtmlRef = $langs->trans('TotalWorkStopDays') . ' : ' . $totalWorkStopDays;
855865
$lastaccidentline = end($accidentLines);
856-
$moreHtmlRef .= '<br>' . $langs->trans('ReturnWorkDate') . ' : ' . dol_print_date($lastaccidentline->date_end_workstop, 'dayhour');
866+
if ($this->status == Accident::STATUS_LOCKED) {
867+
$moreHtmlRef .= '<br>' . $langs->trans('ReturnWorkDate') . ' : ' . dol_print_date($lastaccidentline->date_end_workstop, 'dayhour');
868+
}
857869
} else {
858870
$moreHtmlRef = $langs->trans('RegisterAccident');
859871
}
@@ -917,7 +929,7 @@ class AccidentWorkStop extends SaturneObject
917929
'date_creation' => ['type' => 'datetime', 'label' => 'DateCreation', 'enabled' => '1', 'position' => 40, 'notnull' => 1, 'visible' => 0,],
918930
'tms' => ['type' => 'timestamp', 'label' => 'DateModification', 'enabled' => '1', 'position' => 50, 'notnull' => 0, 'visible' => 0,],
919931
'status' => ['type' => 'smallint', 'label' => 'Status', 'enabled' => '1', 'position' => 60, 'notnull' => 0, 'visible' => 0, 'index' => 0,],
920-
'workstop_days' => ['type' => 'integer', 'label' => 'WorkStopDays', 'enabled' => '1', 'position' => 70, 'notnull' => -1, 'visible' => -1,],
932+
'workstop_days' => ['type' => 'integer', 'label' => 'WorkStopDays', 'enabled' => '1', 'position' => 70, 'notnull' => 0, 'visible' => -1,],
921933
'date_start_workstop' => ['type' => 'datetime', 'label' => 'DateStartWorkStop', 'enabled' => '1', 'position' => 80, 'notnull' => 0, 'visible' => 0,],
922934
'date_end_workstop' => ['type' => 'datetime', 'label' => 'DateEndWorkStop', 'enabled' => '1', 'position' => 81, 'notnull' => 0, 'visible' => 0,],
923935
'declaration_link' => ['type' => 'text', 'label' => 'DeclarationLink', 'enabled' => '1', 'position' => 82, 'notnull' => 0, 'visible' => 0,],

0 commit comments

Comments
 (0)