Exemple #1
0
 /**
  * Returns if a sprint in a project is complete
  * @return  boolean
  */
 public function isComplete()
 {
     $issuesCount = $this->issues()->select('status_id')->where('sprint_id', '=', $this->id)->where('project_id', '=', $this->project_id)->count();
     $issuesCompletedCount = $this->issues()->select('status_id')->where('sprint_id', '=', $this->id)->where('project_id', '=', $this->project_id)->whereIn('status_id', array(IssueStatus::getIdByMachineName('complete'), IssueStatus::getIdByMachineName('archive')))->count();
     if ($issuesCompletedCount == $issuesCount) {
         return true;
     }
     return false;
 }
Exemple #2
0
 /**
  * Get the list of issues in a sprint by issue status
  * @param string $issueStatusMachineName
  * @param int $sprintId
  */
 public static function getIssuesInSprintByIssueStatus($issueStatusMachineName, $sprintId)
 {
     $statusId = IssueStatus::getIdByMachineName($issueStatusMachineName);
     if ($statusId) {
         return Issue::where('sprint_id', '=', $sprintId)->where('status_id', '=', $statusId)->get();
     } else {
         return false;
     }
 }
 /**
  * quickAdd Add an issue from project plan view - inline form
  * @param  IssueRequest $request
  * @return Response
  */
 public function quickAdd(IssueRequest $request)
 {
     $todoIssueStatusId = IssueStatus::getIdByMachineName('todo');
     $issue = new Issue();
     $request['user_id'] = Auth::user()->id;
     $request['sprint_id'] = Project::findOrFail($request->project_id)->getBacklogSprint()->id;
     $request['status_id'] = $todoIssueStatusId;
     $issue->create($request->all());
     return Redirect::back();
 }
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $currentTimestamp = Carbon::now()->toDateTimeString();
     $tomorrowTimestamp = Carbon::now()->addDay()->toDateTimeString();
     $issuesWithDeadlineWithinADay = DB::table('issues')->select('id', 'deadline', 'title')->where('deadline', '>=', $currentTimestamp)->where('deadline', '<', $tomorrowTimestamp)->where('status_id', '!=', IssueStatus::getIdByMachineName('complete'))->where('status_id', '!=', IssueStatus::getIdByMachineName('archive'))->get();
     Mail::send('emails.issuesDeadlineReminder', ['issuesWithDeadlineWithinADay' => $issuesWithDeadlineWithinADay], function ($message) {
         $message->from(env('MAIL_FROM_ADDRESS'), env('APP_NAME'));
         $message->to('*****@*****.**', 'Srikanth AD')->subject('Daily report: issues with deadlines within a day');
     });
 }
 /**
  * quickAdd Add an issue from project plan view - inline form
  * @param  IssueRequest $request
  * @return Response
  */
 public function quickAdd(IssueRequest $request)
 {
     $todoIssueStatusId = IssueStatus::getIdByMachineName('todo');
     $backlogSprintId = (int) Project::findOrFail($request->project_id)->getBacklogSprint()->id;
     $latestIssueInSprint = Sprint::findOrFail($backlogSprintId)->getLatestIssueInSprint();
     $request['user_id'] = Auth::user()->id;
     $request['sprint_id'] = $backlogSprintId;
     $request['status_id'] = $todoIssueStatusId;
     if ($latestIssueInSprint) {
         $request['sort_prev'] = $latestIssueInSprint->id;
     }
     $issue = Issue::create($request->all());
     //Update sort order for - previously - latest issue
     if (Utils::getIssueCountInSprint($backlogSprintId) > 1) {
         $previouslyLatestIssueInSprint = Issue::findOrFail($latestIssueInSprint->id);
         $previouslyLatestIssueInSprint->sort_next = $issue->id;
         $previouslyLatestIssueInSprint->save();
     }
     return Redirect::back();
 }
Exemple #6
0
 /**
  * getLatestIssueInSprint Get the latest issue from a sprint - by created at date
  * @return latest issue in sprint
  */
 public function getLatestIssueInSprint()
 {
     $archiveStatusId = IssueStatus::getIdByMachineName('archive');
     return $this->issues()->where('status_id', '!=', (int) $archiveStatusId)->orderBy('created_at', 'desc')->first();
 }
Exemple #7
0
 /**
  * Get the collection of issues corresponding to a given sprint - that are not archived
  * @param integer $sprintId
  * @return collection
  */
 public function getIssuesFromSprint($sprintId)
 {
     $archiveStatusId = IssueStatus::getIdByMachineName('archive');
     return $this->issues()->where('status_id', '!=', (int) $archiveStatusId)->where('sprint_id', '=', (int) $sprintId)->get();
 }