detail issue
This commit is contained in:
@ -216,7 +216,7 @@ class ScrumController extends AbstractController
|
||||
|
||||
// Idgiteas
|
||||
$gicol=$issue->getScrumcolumn()->getGiteaid();
|
||||
$gijal=$issue->getGiteaMilestone();
|
||||
$gijal=($issue->getGiteaMilestone()?$issue->getGiteaMilestone():-100);
|
||||
|
||||
// Liste des colonnes/jalons/sprint avec des issues
|
||||
if(!in_array($idcol,$tbcols)) array_push($tbcols,$idcol);
|
||||
@ -719,196 +719,6 @@ class ScrumController extends AbstractController
|
||||
return new JsonResponse($output);
|
||||
}
|
||||
|
||||
|
||||
private function consolidateScrum($scrum,$giteamilestones,&$tbissues,&$tbestim) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$issues=$scrum->getScrumissues();
|
||||
|
||||
$tbissues=[];
|
||||
$tbestim=[];
|
||||
|
||||
$tbcols=[];
|
||||
$tbjals=[];
|
||||
$tbsprs=[];
|
||||
|
||||
|
||||
$viewclosed = $this->get('session')->get("viewclosed");
|
||||
foreach($issues as $issue) {
|
||||
// bypass closed
|
||||
if($viewclosed=="false"&&$issue->getGiteastate()=="closed") continue;
|
||||
|
||||
// Ids
|
||||
$idcol=$issue->getScrumcolumn()->getId();
|
||||
$idjal=($issue->getGiteamilestone()?$issue->getGiteamilestone():-100);
|
||||
$idspr=($issue->getScrumsprint()?$issue->getScrumsprint()->getId():-100);
|
||||
|
||||
// Roworders
|
||||
$rowcol=$issue->getScrumcolumn()->getRowid();
|
||||
$rowjal=($issue->getGiteaMilestonename()?$issue->getGiteaMilestonename():-100);
|
||||
$rowspr=($issue->getScrumsprint()?$issue->getScrumsprint()->getRowid():-100);
|
||||
|
||||
// Names
|
||||
$nmcol=$issue->getScrumcolumn()->getName();
|
||||
$nmjal=($issue->getGiteaMilestonename()?$issue->getGiteaMilestonename():"Aucun");
|
||||
$nmspr=($issue->getScrumsprint()?$issue->getScrumsprint()->getName():"Aucun");
|
||||
|
||||
// Idgiteas
|
||||
$gicol=$issue->getScrumcolumn()->getGiteaid();
|
||||
$gijal=$issue->getGiteaMilestone();
|
||||
|
||||
// Liste des colonnes/jalons/sprint avec des issues
|
||||
if(!in_array($idcol,$tbcols)) array_push($tbcols,$idcol);
|
||||
if(!in_array($idcol."|".$idjal,$tbjals)) array_push($tbjals,$idcol."|".$idjal);
|
||||
if(!in_array($idcol."|".$idjal."|".$idspr,$tbsprs)) array_push($tbsprs,$idcol."|".$idjal."|".$idspr);
|
||||
|
||||
// Initialisation du tableau des estimations
|
||||
if(!array_key_exists($idjal,$tbestim)) {
|
||||
$tbestim[$idjal] = [
|
||||
"rowjal" => $rowjal,
|
||||
"idjal" => $idjal,
|
||||
"nmjal" => $nmjal,
|
||||
"gijal" => $gijal,
|
||||
"nbjrs" => 0,
|
||||
"sprints" => []
|
||||
];
|
||||
}
|
||||
|
||||
if(!array_key_exists($idspr,$tbestim[$idjal]["sprints"])) {
|
||||
$tbestim[$idjal]["sprints"][$idspr] = [
|
||||
"rowspr" => $rowspr,
|
||||
"idspr" => $idspr,
|
||||
"nmspr" => $nmspr,
|
||||
"nbjrs" => 0,
|
||||
];
|
||||
}
|
||||
|
||||
// Initialisation du tableau des colonnes
|
||||
if(!array_key_exists($idcol,$tbissues)) {
|
||||
$tbissues[$idcol]=[
|
||||
"rowcol" => $rowcol,
|
||||
"idcol" => $idcol,
|
||||
"nmcol" => $nmcol,
|
||||
"gicol" => $gicol,
|
||||
"nbjrs" => 0,
|
||||
"jalons" => [],
|
||||
];
|
||||
}
|
||||
|
||||
// Initialisation du tableau des jalons de la colonne encours
|
||||
if(!array_key_exists($idjal,$tbissues[$idcol]["jalons"])) {
|
||||
$tbissues[$idcol]["jalons"][$idjal] = [
|
||||
"rowjal" => $rowjal,
|
||||
"idjal" => $idjal,
|
||||
"nmjal" => $nmjal,
|
||||
"gijal" => $gijal,
|
||||
"nbjrs" => 0,
|
||||
"sprints" => [],
|
||||
];
|
||||
}
|
||||
|
||||
// Initialisation du tableau des sprint de la colonne/jalon encours
|
||||
if(!array_key_exists($idspr,$tbissues[$idcol]["jalons"][$idjal]["sprints"])) {
|
||||
$tbissues[$idcol]["jalons"][$idjal]["sprints"][$idspr] = [
|
||||
"rowspr" => $rowspr,
|
||||
"idspr" => $idspr,
|
||||
"nmspr" => $nmspr,
|
||||
"nbjrs" => 0,
|
||||
"issues" => [],
|
||||
];
|
||||
}
|
||||
|
||||
// On cumule les estimations
|
||||
$tbissues[$idcol]["nbjrs"]+=$issue->getWeight();
|
||||
$tbissues[$idcol]["jalons"][$idjal]["nbjrs"]+=$issue->getWeight();
|
||||
$tbissues[$idcol]["jalons"][$idjal]["sprints"][$idspr]["nbjrs"]+=$issue->getWeight();
|
||||
$tbestim[$idjal]["nbjrs"]+=$issue->getWeight();
|
||||
$tbestim[$idjal]["sprints"][$idspr]["nbjrs"]+=$issue->getWeight();
|
||||
|
||||
// On sauvegarde l'issue
|
||||
array_push($tbissues[$idcol]["jalons"][$idjal]["sprints"][$idspr]["issues"],$issue);
|
||||
}
|
||||
|
||||
// On ajoute les colonnes sans issues
|
||||
$columns=$scrum->getScrumcolumns();
|
||||
foreach($columns as $column) {
|
||||
if(!in_array($column->getId(),$tbcols)) {
|
||||
$tbissues[$column->getId()] = [
|
||||
"rowcol" => $column->getRowid(),
|
||||
"idcol" => $column->getId(),
|
||||
"nmcol" => $column->getName(),
|
||||
"gicol" => $column->getGiteaid(),
|
||||
"nbjrs" => 0,
|
||||
"jalons" => [],
|
||||
];
|
||||
}
|
||||
|
||||
// On ajoute les jalons sans issues
|
||||
foreach($giteamilestones as $milestone) {
|
||||
if(!in_array($column->getId()."|".$milestone->id,$tbjals)) {
|
||||
$tbissues[$column->getId()]["jalons"][$milestone->id] = [
|
||||
"rowjal" => $milestone->title,
|
||||
"idjal" => $milestone->id,
|
||||
"nmjal" => $milestone->title,
|
||||
"gijal" => $milestone->id,
|
||||
"nbjrs" => 0,
|
||||
"sprints" => [],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// On ajoute le jalon aucun si sans issue
|
||||
if(!in_array($column->getId()."|-100",$tbjals)) {
|
||||
$tbissues[$column->getId()]["jalons"][-100] = [
|
||||
"rowjal" => -100,
|
||||
"idjal" => -100,
|
||||
"nmjal" => "Aucun",
|
||||
"gijal" => null,
|
||||
"nbjrs" => 0,
|
||||
"sprints" => [],
|
||||
];
|
||||
}
|
||||
|
||||
// On ajoutes les sprints sans issues
|
||||
foreach($tbissues[$column->getId()]["jalons"] as $jalon) {
|
||||
$sprints=$em->getRepository("App:Scrumsprint")->findBy(["scrum"=>$scrum,"giteamilestone"=>$jalon["idjal"]]);
|
||||
foreach($sprints as $sprint) {
|
||||
if(!in_array($column->getId()."|".$jalon["idjal"]."|".$sprint->getId(),$tbsprs)) {
|
||||
$tbissues[$column->getId()]["jalons"][$jalon["idjal"]]["sprints"][$sprint->getId()] = [
|
||||
"rowspr" => $sprint->getRowid(),
|
||||
"idspr" => $sprint->getId(),
|
||||
"nmspr" => $sprint->getName(),
|
||||
"nbjrs" => 0,
|
||||
"issues" => [],
|
||||
];
|
||||
}
|
||||
}
|
||||
|
||||
// On ajoute les sprint aucun sans issue
|
||||
if(!in_array($column->getId()."|".$jalon["idjal"]."|-100",$tbsprs)) {
|
||||
$tbissues[$column->getId()]["jalons"][$jalon["idjal"]]["sprints"][-100] = [
|
||||
"rowspr" => -100,
|
||||
"idspr" => -100,
|
||||
"nmspr" => "Aucun",
|
||||
"nbjrs" => 0,
|
||||
"issues" => [],
|
||||
];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Tri des issues par colonne/jalon/sprint/issue
|
||||
$rowcol = array_column($tbissues, 'rowcol');
|
||||
array_multisort($rowcol, SORT_ASC, $tbissues);
|
||||
foreach($tbissues as $keycol=>$column) {
|
||||
$rowjal = array_column($tbissues[$keycol]["jalons"], 'rowjal');
|
||||
array_multisort($rowjal, SORT_DESC, $tbissues[$keycol]["jalons"]);
|
||||
foreach($tbissues[$keycol]["jalons"] as $keyjal=>$jalon) {
|
||||
$rowspr = array_column($tbissues[$keycol]["jalons"][$keyjal]["sprints"], 'rowspr');
|
||||
array_multisort($rowspr, SORT_DESC, $tbissues[$keycol]["jalons"][$keyjal]["sprints"]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
protected function getErrorForm($id,$form,$request,$data,$mode) {
|
||||
if ($form->get('submit')->isClicked()&&$mode=="delete") {
|
||||
}
|
||||
|
@ -12,6 +12,7 @@ use App\Entity\Scrumissue as Entity;
|
||||
use App\Form\ScrumissueType as Form;
|
||||
|
||||
use App\Service\giteaService;
|
||||
use stdClass;
|
||||
|
||||
class ScrumissueController extends AbstractController
|
||||
{
|
||||
@ -141,6 +142,68 @@ class ScrumissueController extends AbstractController
|
||||
return new JsonResponse($output);
|
||||
}
|
||||
|
||||
public function view($id, Request $request) {
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
$issue=$em->getRepository("App:Scrumissue")->find($id);
|
||||
$scrum = $issue->getScrum();
|
||||
|
||||
$repoid = $scrum->getGiteaid();
|
||||
$repoowner = $scrum->getGiteajson()["owner"]["login"];
|
||||
$reponame = $scrum->getGiteajson()["name"];
|
||||
|
||||
$repo=$this->giteaservice->getRepo($repoid);
|
||||
$giteaissue=$this->giteaservice->getIssue($repoowner,$reponame,$issue->getGiteanumber());
|
||||
|
||||
$giteaissue->body = $this->giteaservice->markdown("/".$scrum->getGiteajson()["full_name"],"comment",$giteaissue->body);
|
||||
$giteaissue->comments=$this->giteaservice->getIssueComments($repoowner,$reponame,$giteaissue->number);
|
||||
|
||||
$giteaissue->statuslife=$issue->getScrumcolumn()->getName();
|
||||
$giteaissue->sprint=($issue->getScrumsprint()?$issue->getScrumsprint()->getName():null);
|
||||
foreach($giteaissue->comments as $keycomment => $comment) {
|
||||
$giteaissue->comments[$keycomment]->body=$this->giteaservice->markdown("/".$scrum->getGiteajson()["full_name"],"comment",$giteaissue->comments[$keycomment]->body);
|
||||
}
|
||||
|
||||
$giteaissue->timelines=$this->giteaservice->getIssueTimelines($repoowner,$reponame,$giteaissue->number);
|
||||
|
||||
$giteaissue->labelhistos=[];
|
||||
$giteaissue->refs=[];
|
||||
foreach($giteaissue->timelines as $key => $timeline) {
|
||||
if($timeline->type == "label"){
|
||||
$tmp=new stdClass();
|
||||
$tmp->label=($timeline->body==1?"Ajout Label":"Suppression Label")." <i>".$timeline->label->name."<i>";
|
||||
$tmp->user=$timeline->user;
|
||||
$tmp->created_at=$timeline->created_at;
|
||||
array_push($giteaissue->labelhistos,$tmp);
|
||||
unset($giteaissue->timelines[$key]);
|
||||
}
|
||||
elseif($timeline->type == "comment_ref" || $timeline->type == "pull_ref" || $timeline->type == "issue_ref"){
|
||||
$tmp=new stdClass();
|
||||
$tmp->label ="<a href='".$timeline->ref_issue->html_url."' target='_blank'>";
|
||||
$tmp->label.=($timeline->type=="pull_ref"?"Request":"Issue")." = ";
|
||||
$tmp->label.="#".$timeline->ref_issue->number." = ".$timeline->ref_issue->title."</a></i>";
|
||||
$tmp->user=$timeline->user;
|
||||
$tmp->created_at=$timeline->created_at;
|
||||
array_push($giteaissue->refs,$tmp);
|
||||
unset($giteaissue->timelines[$key]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// Affichage du formulaire
|
||||
return $this->render('Scrum/issue.html.twig', [
|
||||
'useheader' => false,
|
||||
'usesidebar' => false,
|
||||
'maxwidth' => true,
|
||||
'repo' => $repo,
|
||||
'issue' => $giteaissue,
|
||||
]);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public function update(Request $request)
|
||||
{
|
||||
$em = $this->getDoctrine()->getManager();
|
||||
|
Reference in New Issue
Block a user