diff --git a/htdocs/projet/activity/index.php b/htdocs/projet/activity/index.php index ebb527144bd..4eb430bad5f 100644 --- a/htdocs/projet/activity/index.php +++ b/htdocs/projet/activity/index.php @@ -48,8 +48,11 @@ $now = gmmktime(); $projectstatic=new Project($db); -if ($mode == 'mine') $title=$langs->trans("MyActivities"); -else $title=$langs->trans("Activities"); +$mine = $_REQUEST['mode']=='mine' ? 1 : 0; +$projectsListId = $projectstatic->getProjectsAuthorizedForUser($user,$mine,1); + +$title=$langs->trans("Activities"); +if ($mine) $title=$langs->trans("MyActivities"); llxHeader("",$title); @@ -60,23 +63,19 @@ print ''; print ''; print ''; -print ''; -print ''; +print_liste_field_titre($langs->trans("Project"),"index.php","","","","",$sortfield,$sortorder); +print_liste_field_titre($langs->trans("NbOpenTasks"),"","","","",'align="right"',$sortfield,$sortorder); +print_liste_field_titre($langs->trans("Status"),"","","","",'align="right"',$sortfield,$sortorder); print "\n"; -$sql = "SELECT p.rowid, p.ref, p.title, count(t.rowid) as nb"; -$sql.= " FROM (".MAIN_DB_PREFIX."projet as p"; +$sql = "SELECT p.rowid as projectid, p.ref, p.title, p.fk_user_creat, p.public, p.fk_statut, count(t.rowid) as nb"; +$sql.= " FROM ".MAIN_DB_PREFIX."projet as p"; $sql.= ", ".MAIN_DB_PREFIX."projet_task as t"; -//if ($mode == 'mine') $sql.= ", ".MAIN_DB_PREFIX."projet_task_actors as pta"; -$sql.= ")"; -$sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe as s on p.fk_soc = s.rowid"; -if (!$user->rights->societe->client->voir && !$socid) $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."societe_commerciaux as s on s.rowid = sc.fk_soc AND sc.fk_user = ".$user->id; $sql.= " WHERE t.fk_projet = p.rowid"; $sql.= " AND p.entity = ".$conf->entity; +if ($mine) $sql.= " AND p.rowid IN (".$projectsListId.")"; if ($socid) $sql.= " AND p.fk_soc = ".$socid; -//if ($mode == 'mine') $sql.=" AND t.rowid = pta.fk_projet_task"; -//if ($mode == 'mine') $sql.=" AND pta.fk_user = ".$user->id; -$sql.= " GROUP BY p.rowid"; +$sql.= " GROUP BY p.ref"; $resql = $db->query($sql); if ( $resql ) @@ -88,16 +87,27 @@ if ( $resql ) while ($i < $num) { - $row = $db->fetch_object($resql); - $var=!$var; - print ""; - print ''; - print ''; - print "\n"; + $objp = $db->fetch_object($resql); + + $projectstatic->id = $objp->projectid; + $projectstatic->user_author_id = $objp->fk_user_creat; + $projectstatic->public = $objp->public; + + $userAccess = $projectstatic->restrictedProjectArea($user,1); + + if ($userAccess >= 0) + { + $var=!$var; + print ""; + print ''; + print ''; + $projectstatic->statut = $objp->fk_statut; + print ''; + print "\n"; + } $i++; } diff --git a/htdocs/projet/index.php b/htdocs/projet/index.php index 772b6511cd1..8175a75f0f2 100644 --- a/htdocs/projet/index.php +++ b/htdocs/projet/index.php @@ -51,6 +51,7 @@ llxHeader("",$langs->trans("Projects"),"EN:Module_Projects|FR:Module_Projets|ES: $text=$langs->trans("Projects"); if ($mine) $text=$langs->trans("MyProjects"); + print_fiche_titre($text); print '
'.$langs->trans("Project").''.$langs->trans("NbOpenTasks").'
'; - $projectstatic->id=$row->rowid; - $projectstatic->ref=$row->ref; - print $projectstatic->getNomUrl(1); - print ''.$row->nb.'
'; + $projectstatic->ref=$objp->ref; + print $projectstatic->getNomUrl(1); + print ' - '.$objp->title.''.$objp->nb.''.$projectstatic->getLibStatut(3).'
'; @@ -69,7 +70,7 @@ $sql.= " LEFT JOIN ".MAIN_DB_PREFIX."projet_task as t ON p.rowid = t.fk_projet"; $sql.= " WHERE p.entity = ".$conf->entity; if ($mine) $sql.= " AND p.rowid IN (".$projectsListId.")"; if ($socid) $sql.= " AND p.fk_soc = ".$socid; -$sql.= " GROUP BY p.title, p.rowid"; +$sql.= " GROUP BY p.ref"; $var=true; $resql = $db->query($sql); @@ -92,7 +93,10 @@ if ( $resql ) { $var=!$var; print ""; - print ''; + print ''; print ''; $projectstatic->statut = $objp->fk_statut; print ''; diff --git a/htdocs/projet/tasks/index.php b/htdocs/projet/tasks/index.php index 34146948302..6dcab6117a3 100644 --- a/htdocs/projet/tasks/index.php +++ b/htdocs/projet/tasks/index.php @@ -55,29 +55,25 @@ llxHeader("",$title,"Projet"); $form=new Form($db); -$project = new Project($db); -$task = new Task($db); +$projectstatic = new Project($db); +$taskstatic = new Task($db); if ($_GET["id"]) { - $project->fetch($_GET["id"]); - $project->societe->fetch($project->societe->id); + $projectstatic->fetch($_GET["id"]); + $projectstatic->societe->fetch($projectstatic->societe->id); } - - print_barre_liste($title, $page, $_SERVER["PHP_SELF"], "", $sortfield, $sortorder, "", $num); - $task = new Task($db); - // Get list of tasks in tasksarray and taskarrayfiltered // We need all tasks (even not limited to a user because a task to user // can have a parent that is not affected to him). -$tasksarray=$task->getTasksArray(0, 0, $project->id, $socid); +$tasksarray=$taskstatic->getTasksArray(0, 0, $projectstatic->id, $socid); // We load also tasks limited to a particular user -$tasksrole=($_REQUEST["mode"]=='mine' ? $task->getUserRolesForProjetsOrTasks(0,$user,$project->id,0) : ''); +$tasksrole=($_REQUEST["mode"]=='mine' ? $taskstatic->getUserRolesForProjetsOrTasks(0,$user,$projectstatic->id,0) : ''); print '
'.img_object($langs->trans("ShowProject"),"project")." ".$objp->title.''; + $projectstatic->ref=$objp->ref; + print $projectstatic->getNomUrl(1); + print ' - '.$objp->title.''.$objp->nb.''.$projectstatic->getLibStatut(3).'
'; print ''; @@ -91,14 +87,12 @@ $j=0; $level=0; $nboftaskshown=PLines($j, 0, $tasksarray, $level, true, 1, $tasksrole); print "
"; - print ''; - /* * Actions */ -if ($user->rights->projet->creer) +if ($user->rights->projet->task->creer) { print '
'; print ''.$langs->trans('AddTask').'';