diff --git a/htdocs/comm/action/card.php b/htdocs/comm/action/card.php
index 8fd1f1b0030..f968f9800e9 100644
--- a/htdocs/comm/action/card.php
+++ b/htdocs/comm/action/card.php
@@ -40,6 +40,7 @@ require_once DOL_DOCUMENT_ROOT.'/core/class/html.formactions.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formfile.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.form.class.php';
require_once DOL_DOCUMENT_ROOT.'/projet/class/project.class.php';
+require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/html.formprojet.class.php';
require_once DOL_DOCUMENT_ROOT.'/core/class/extrafields.class.php';
@@ -251,6 +252,19 @@ if ($action == 'add')
}
}
$object->fk_project = isset($_POST["projectid"])?$_POST["projectid"]:0;
+
+ $taskid = GETPOST('taskid','int');
+ if(!empty($taskid)){
+
+ $taskProject = new Task($db);
+ if($taskProject->fetch($taskid)>0){
+ $object->fk_project = $taskProject->fk_project;
+ }
+
+ $object->fk_element = $taskid;
+ $object->elementtype = 'task';
+ }
+
$object->datep = $datep;
$object->datef = $datef;
$object->percentage = $percentage;
@@ -876,11 +890,38 @@ if ($action == 'create')
{
// Projet associe
$langs->load("projects");
+
+ $projectid = GETPOST('projectid', 'int');
- print '
| '.$langs->trans("Project").' | ';
+ print ' |
| '.$langs->trans("Project").' | ';
- $numproject=$formproject->select_projects((! empty($societe->id)?$societe->id:-1), GETPOST("projectid")?GETPOST("projectid"):'', 'projectid', 0, 0, 1, 1);
+ $numproject=$formproject->select_projects((! empty($societe->id)?$societe->id:-1), $projectid, 'projectid', 0, 0, 1, 1);
+
print ' '.$langs->trans("AddProject").'';
+ $urloption='?action=create';
+ $url = dol_buildpath('comm/action/card.php',2).$urloption;
+
+ // update task list
+ print "\n".''."\n";
+
+ print ' |
';
+
+ print '| '.$langs->trans("Task").' | ';
+
+ $projectsListId=false;
+ if(!empty($projectid)){ $projectsListId=$projectid; }
+ $tid=GETPOST("projecttaskid")?GETPOST("projecttaskid"):'';
+ $formproject->selectTasks((! empty($societe->id)?$societe->id:-1), $tid, 'taskid', 24, 0, '1', 1, 0, 0, 'maxwidth500',$projectsListId);
print ' |
';
}
if (!empty($origin) && !empty($originid))
@@ -1270,10 +1311,41 @@ if ($id > 0)
include_once DOL_DOCUMENT_ROOT.'/core/lib/functions2.lib.php';
print '';
print '| '.$langs->trans("LinkedObject").' | ';
- print ''.dolGetElementUrl($object->fk_element,$object->elementtype,1);
- print '';
- print '';
- print ' | ';
+
+ if ($object->elementtype == 'task' && ! empty($conf->projet->enabled))
+ {
+ print '';
+
+ $urloption='?action=create'; // we use create not edit for more flexibility
+ $url = DOL_URL_ROOT.'/comm/action/card.php'.$urloption;
+
+ // update task list
+ print "\n".''."\n";
+
+ $formproject->selectTasks((! empty($societe->id)?$societe->id:-1), $object->fk_element, 'fk_element', 24, 0, 0, 1, 0, 0, 'maxwidth500',$object->fk_project);
+ print '';
+
+ print ' | ';
+ }
+ else
+ {
+ print '';
+ print dolGetElementUrl($object->fk_element,$object->elementtype,1);
+ print '';
+ print '';
+ print ' | ';
+ }
+
print '
';
}