Browse Source

New entry issue has open status by default

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

5
app/Entities/Projects/Issue.php

@ -24,4 +24,9 @@ class Issue extends Model
{
return $this->belongsTo(User::class);
}
public function getStatusAttribute()
{
return IssueStatus::getNameById($this->status_id);
}
}

39
app/Entities/Projects/IssueStatus.php

@ -0,0 +1,39 @@
<?php
namespace App\Entities\Projects;
use App\Entities\ReferenceAbstract;
class IssueStatus extends ReferenceAbstract
{
protected static $lists = [
0 => 'open',
1 => 'resolved',
2 => 'closed',
3 => 'on_hold',
4 => 'invalid',
];
protected static $colors = [
0 => 'yellow',
1 => 'green',
2 => 'primary',
3 => 'default',
4 => 'warning',
];
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;
}
}

1
database/factories/IssueFactory.php

@ -15,5 +15,6 @@ $factory->define(Issue::class, function (Faker $faker) {
'creator_id' => function () {
return factory(User::class)->create()->id;
},
'status_id' => 0,
];
});

1
database/migrations/2019_03_03_210017_create_issues_table.php

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

3
resources/lang/de/issue.php

@ -40,4 +40,7 @@ return [
'project' => 'Issue Project',
'pic' => 'Issue PIC',
'creator' => 'Issue Creator',
// Statuses
'open' => 'Open',
];

3
resources/lang/en/issue.php

@ -40,4 +40,7 @@ return [
'project' => 'Issue Project',
'pic' => 'Issue PIC',
'creator' => 'Issue Creator',
// Statuses
'open' => 'Open',
];

3
resources/lang/id/issue.php

@ -40,4 +40,7 @@ return [
'project' => 'Project Issue',
'pic' => 'PIC Issue',
'creator' => 'Pembuat Issue',
// Statuses
'open' => 'Open',
];

8
tests/Unit/Models/IssueTest.php

@ -47,4 +47,12 @@ class IssueTest extends TestCase
$this->assertInstanceOf(User::class, $issue->creator);
$this->assertEquals($issue->creator_id, $issue->creator->id);
}
/** @test */
public function an_issue_has_status_attribute()
{
$issue = factory(Issue::class)->make();
$this->assertEquals(__('issue.open'), $issue->status);
}
}
Loading…
Cancel
Save