Browse Source

Add target_start_date and target_end_date on a Job

Update task and job migration files
- Job position should be tinyint(3)
- Task position and progress should be tinyint(3)
- Add nullable date columns on jobs table
pull/12/head
Nafies Luthfi 8 years ago
parent
commit
26fbc2a950
  1. 12
      app/Http/Requests/Jobs/CreateRequest.php
  2. 6
      database/migrations/2016_07_09_093439_create_jobs_table.php
  3. 4
      database/migrations/2016_07_09_142833_create_tasks_table.php
  4. 14
      resources/lang/de/job.php
  5. 14
      resources/lang/en/job.php
  6. 14
      resources/lang/id/job.php
  7. 25
      resources/views/jobs/create.blade.php
  8. 12
      tests/Feature/ManageJobsTest.php

12
app/Http/Requests/Jobs/CreateRequest.php

@ -27,11 +27,13 @@ class CreateRequest extends Request
public function rules()
{
return [
'name' => 'required|max:60',
'price' => 'required|numeric',
'worker_id' => 'required|numeric',
'type_id' => 'required|numeric',
'description' => 'max:255',
'name' => 'required|max:60',
'price' => 'required|numeric',
'worker_id' => 'required|numeric',
'type_id' => 'required|numeric',
'target_start_date' => 'nullable|date|date_format:Y-m-d',
'target_end_date' => 'nullable|date|date_format:Y-m-d',
'description' => 'max:255',
];
}
}

6
database/migrations/2016_07_09_093439_create_jobs_table.php

@ -20,7 +20,11 @@ class CreateJobsTable extends Migration
$table->integer('worker_id')->unsigned()->nullable();
$table->integer('price')->unsigned()->default(0);
$table->boolean('type_id')->default(1)->comment('1: main, 2: additional');
$table->boolean('position')->default(0);
$table->unsignedTinyInteger('position')->default(0);
$table->date('target_start_date')->nullable();
$table->date('target_end_date')->nullable();
$table->date('actual_start_date')->nullable();
$table->date('actual_end_date')->nullable();
$table->timestamps();
});
}

4
database/migrations/2016_07_09_142833_create_tasks_table.php

@ -17,8 +17,8 @@ class CreateTasksTable extends Migration
$table->integer('job_id')->unsigned();
$table->string('name', 60);
$table->string('description')->nullable();
$table->boolean('progress')->default(0);
$table->boolean('position')->default(0);
$table->unsignedTinyInteger('progress')->default(0);
$table->unsignedTinyInteger('position')->default(0);
$table->timestamps();
});
}

14
resources/lang/de/job.php

@ -31,12 +31,14 @@ return [
'sort_tasks' => 'sortiere Aufgabenpriorität',
// Attributes
'name' => 'Beschäftigungsname',
'description' => 'Beschreibung',
'progress' => 'Fortschritt',
'worker' => 'Bearbeiter',
'price' => 'Preis',
'type' => 'Beschäftigungstyp',
'name' => 'Beschäftigungsname',
'description' => 'Beschreibung',
'progress' => 'Fortschritt',
'worker' => 'Bearbeiter',
'price' => 'Preis',
'type' => 'Beschäftigungstyp',
'target_start_date' => 'Target Start Date',
'target_end_date' => 'Target End Date',
// Types
'main' => 'Haupt',

14
resources/lang/en/job.php

@ -33,12 +33,14 @@ return [
'created_from_other_project' => 'Job has been added from other Project.',
// Attributes
'name' => 'Job Name',
'description' => 'Description',
'progress' => 'Progress',
'worker' => 'Worker',
'price' => 'Price',
'type' => 'Job Type',
'name' => 'Job Name',
'description' => 'Description',
'progress' => 'Progress',
'worker' => 'Worker',
'price' => 'Price',
'type' => 'Job Type',
'target_start_date' => 'Target Start Date',
'target_end_date' => 'Target End Date',
// Types
'main' => 'Main',

14
resources/lang/id/job.php

@ -33,12 +33,14 @@ return [
'created_from_other_project' => 'Berhasil tambah job dari Project lain.',
// Attributes
'name' => 'Nama Job',
'description' => 'Deskripsi',
'progress' => 'Progress',
'worker' => 'Pekerja',
'price' => 'Biaya Pengerjaan',
'type' => 'Jenis Job',
'name' => 'Nama Job',
'description' => 'Deskripsi',
'progress' => 'Progress',
'worker' => 'Pekerja',
'price' => 'Biaya Pengerjaan',
'type' => 'Jenis Job',
'target_start_date' => 'Tanggal Target Mulai',
'target_end_date' => 'Tanggal Target Selesai',
// Types
'main' => 'Utama',

25
resources/views/jobs/create.blade.php

@ -27,6 +27,10 @@
{!! FormField::radios('type_id', [1 => __('job.main'), __('job.additional')], ['value' => 1, 'label' => __('job.type'), 'list_style' => 'unstyled']) !!}
</div>
</div>
<div class="row">
<div class="col-md-4">{!! FormField::text('target_start_date', ['label' => __('job.target_start_date'), 'class' => 'date-select']) !!}</div>
<div class="col-md-4">{!! FormField::text('target_end_date', ['label' => __('job.target_end_date'), 'class' => 'date-select']) !!}</div>
</div>
{!! FormField::textarea('description', ['label' => __('job.description')]) !!}
</div>
@ -42,3 +46,24 @@
</div>
</div>
@endsection
@section('ext_css')
{!! Html::style(url('assets/css/plugins/jquery.datetimepicker.css')) !!}
@endsection
@section('ext_js')
{!! Html::script(url('assets/js/plugins/jquery.datetimepicker.js')) !!}
@endsection
@section('script')
<script>
(function() {
$('.date-select').datetimepicker({
timepicker:false,
format:'Y-m-d',
closeOnDateSelect: true,
scrollInput: false
});
})();
</script>
@endsection

12
tests/Feature/ManageJobsTest.php

@ -31,11 +31,13 @@ class ManageJobsTest extends TestCase
$this->seePageIs(route('projects.jobs.create', $project->id));
$this->submitForm(trans('job.create'), [
'name' => 'Nama Fitur Baru',
'price' => 100000,
'worker_id' => $worker->id,
'type_id' => 1,
'description' => 'Similique, eligendi fuga animi?',
'name' => 'Nama Fitur Baru',
'price' => 100000,
'worker_id' => $worker->id,
'type_id' => 1,
'target_start_date' => '2017-04-04',
'target_end_date' => '2017-07-07',
'description' => 'Similique, eligendi fuga animi?',
]);
$this->see(trans('job.created'));

Loading…
Cancel
Save