Browse Source

User can assign pic to an issue

pull/37/head
Nafies Luthfi 7 years ago
parent
commit
eb65063107
  1. 23
      app/Http/Controllers/Issues/PicController.php
  2. 5
      app/Http/Controllers/Projects/IssueController.php
  3. 1
      database/migrations/2019_03_03_210017_create_issues_table.php
  4. 8
      resources/views/projects/issues/show.blade.php
  5. 3
      routes/web.php
  6. 5
      routes/web/projects.php
  7. 20
      tests/Feature/Projects/ProjectIssuesTest.php

23
app/Http/Controllers/Issues/PicController.php

@ -0,0 +1,23 @@
<?php
namespace App\Http\Controllers\Issues;
use Illuminate\Http\Request;
use App\Entities\Projects\Issue;
use App\Http\Controllers\Controller;
class PicController extends Controller
{
public function update(Request $request, Issue $issue)
{
$picData = $request->validate([
'pic_id' => 'nullable|exists:users,id',
]);
$issue->pic_id = $picData['pic_id'];
$issue->save();
flash(__('issue.pic_assigned'), 'success');
return back();
}
}

5
app/Http/Controllers/Projects/IssueController.php

@ -2,6 +2,7 @@
namespace App\Http\Controllers\Projects;
use App\Entities\Users\User;
use Illuminate\Http\Request;
use App\Entities\Projects\Issue;
use App\Entities\Projects\Project;
@ -40,7 +41,9 @@ class IssueController extends Controller
public function show(Project $project, Issue $issue)
{
return view('projects.issues.show', compact('project', 'issue'));
$users = User::all();
return view('projects.issues.show', compact('project', 'issue', 'users'));
}
public function edit(Project $project, Issue $issue)

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->unsignedInteger('pic_id')->nullable();
$table->timestamps();
});
}

8
resources/views/projects/issues/show.blade.php

@ -5,7 +5,7 @@
@section('content-project')
<div class="row">
<div class="col-md-5">
<div class="col-md-6">
<div class="panel panel-default">
<div class="panel-heading"><h3 class="panel-title">{{ __('issue.detail') }}</h3></div>
<table class="table table-condensed">
@ -19,5 +19,11 @@
</div>
</div>
</div>
<div class="col-md-6">
{{ Form::model($issue, ['route' => ['issues.pic.update', $issue], 'method' => 'patch']) }}
{!! FormField::select('pic_id', $users, ['label' => __('issue.assign_pic')]) !!}
{{ Form::submit(__('issue.assign_pic'), ['class' => 'btn btn-success']) }}
{{ Form::close() }}
</div>
</div>
@endsection

3
routes/web.php

@ -1,4 +1,7 @@
<?php
if (!app()->runningUnitTests()) {
auth()->loginUsingId(1);
}
require __DIR__.'/web/pages.php';
require __DIR__.'/web/users.php';

5
routes/web/projects.php

@ -100,3 +100,8 @@ Route::group(['middleware' => ['auth']], function () {
Route::patch('jobs/{job}/comments/{comment}', 'Jobs\CommentsController@update')->name('jobs.comments.update');
Route::delete('jobs/{job}/comments/{comment}', 'Jobs\CommentsController@destroy')->name('jobs.comments.destroy');
});
/**
* Issue PIC Routes
*/
Route::patch('issues/{issue}/assign_pic', 'Issues\PicController@update')->name('issues.pic.update');

20
tests/Feature/Projects/ProjectIssuesTest.php

@ -126,4 +126,24 @@ class ProjectIssuesTest extends TestCase
'id' => $issue->id,
]);
}
/** @test */
public function user_can_assign_someone_to_an_issue_as_pic()
{
$this->adminUserSigningIn();
$worker = $this->createUser('worker');
$issue = factory(Issue::class)->create();
$this->visitRoute('projects.issues.show', [$issue->project, $issue]);
$this->submitForm(__('issue.assign_pic'), [
'pic_id' => $worker->id,
]);
$this->seeRouteIs('projects.issues.show', [$issue->project, $issue]);
$this->seeText(__('issue.pic_assigned'));
$this->seeInDatabase('issues', [
'id' => $issue->id,
'pic_id' => $worker->id,
]);
}
}
Loading…
Cancel
Save