Browse Source

Every issue has priority level

pull/37/head
Nafies Luthfi 7 years ago
parent
commit
08ae6d0374
  1. 5
      app/Entities/Projects/Issue.php
  2. 36
      app/Entities/Projects/Priority.php
  3. 11
      database/factories/IssueFactory.php
  4. 1
      database/migrations/2019_03_03_210017_create_issues_table.php
  5. 5
      resources/lang/de/issue.php
  6. 5
      resources/lang/en/issue.php
  7. 5
      resources/lang/id/issue.php
  8. 8
      tests/Unit/Models/IssueTest.php

5
app/Entities/Projects/Issue.php

@ -25,6 +25,11 @@ class Issue extends Model
return $this->belongsTo(User::class);
}
public function getPriorityAttribute()
{
return Priority::getNameById($this->priority_id);
}
public function getStatusAttribute()
{
return IssueStatus::getNameById($this->status_id);

36
app/Entities/Projects/Priority.php

@ -0,0 +1,36 @@
<?php
namespace App\Entities\Projects;
use App\Entities\ReferenceAbstract;
class Priority extends ReferenceAbstract
{
protected static $lists = [
1 => 'minor',
2 => 'major',
3 => 'critical',
];
protected static $colors = [
0 => 'yellow',
1 => 'info',
2 => 'warning',
3 => 'danger',
];
public static function getNameById($singleId)
{
return trans('issue.'.static::getById($singleId));
}
public static function toArray()
{
$lists = [];
foreach (static::$lists as $key => $value) {
$lists[$key] = trans('issue.'.$value);
}
return $lists;
}
}

11
database/factories/IssueFactory.php

@ -7,14 +7,15 @@ use App\Entities\Projects\Project;
$factory->define(Issue::class, function (Faker $faker) {
return [
'project_id' => function () {
'project_id' => function () {
return factory(Project::class)->create()->id;
},
'title' => $faker->words(3, true),
'body' => $faker->sentences(3, true),
'creator_id' => function () {
'title' => $faker->words(3, true),
'body' => $faker->sentences(3, true),
'creator_id' => function () {
return factory(User::class)->create()->id;
},
'status_id' => 0,
'status_id' => 0,
'priority_id' => 1,
];
});

1
database/migrations/2019_03_03_210017_create_issues_table.php

@ -19,6 +19,7 @@ class CreateIssuesTable extends Migration
$table->string('title', 60);
$table->string('body');
$table->unsignedInteger('creator_id');
$table->unsignedTinyInteger('priority_id');
$table->unsignedInteger('pic_id')->nullable();
$table->unsignedTinyInteger('status_id')->default(0);
$table->timestamps();

5
resources/lang/de/issue.php

@ -41,6 +41,11 @@ return [
'pic' => 'Issue PIC',
'creator' => 'Issue Creator',
// Priority
'minor' => 'Minor',
'major' => 'Major',
'critical' => 'Critical',
// Statuses
'open' => 'Open',
'resolved' => 'Resolved',

5
resources/lang/en/issue.php

@ -41,6 +41,11 @@ return [
'pic' => 'Issue PIC',
'creator' => 'Issue Creator',
// Priority
'minor' => 'Minor',
'major' => 'Major',
'critical' => 'Critical',
// Statuses
'open' => 'Open',
'resolved' => 'Resolved',

5
resources/lang/id/issue.php

@ -41,6 +41,11 @@ return [
'pic' => 'PIC Issue',
'creator' => 'Pembuat Issue',
// Priority
'minor' => 'Minor',
'major' => 'Major',
'critical' => 'Critical',
// Statuses
'open' => 'Open',
'resolved' => 'Selesai',

8
tests/Unit/Models/IssueTest.php

@ -63,4 +63,12 @@ class IssueTest extends TestCase
$this->assertEquals('<span class="badge">'.$issue->status.'</span>', $issue->status_label);
}
/** @test */
public function an_issue_has_priority_attribute()
{
$issue = factory(Issue::class)->make();
$this->assertEquals(__('issue.minor'), $issue->priority);
}
}
Loading…
Cancel
Save