Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Test case for Segments (Manage Evaluation) #3389

Open
wants to merge 14 commits into
base: master
Choose a base branch
from
32 changes: 32 additions & 0 deletions Modules/HR/Database/Factories/HrEvaluationSegmentFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
<?php

namespace Modules\HR\Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;
use Modules\HR\Entities\Evaluation\Segment;
use Modules\HR\Entities\Round;

class HrEvaluationSegmentFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Segment::class;

/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
Round::factory()->create();

return [
'round_id' => Round::inRandomOrder()->first()->id,
'name' => $this->faker->sentence(),
];
}
}
31 changes: 31 additions & 0 deletions Modules/HR/Database/Factories/HrRoundFactory.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

namespace Modules\HR\Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;
use Modules\HR\Entities\Round;

class HrRoundFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Round::class;

/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'name' => $this->faker->sentence(),
'guidelines' => $this->faker->text(),
'confirmed_mail_template' => $this->faker->text(),
'rejected_mail_template' => $this->faker->text(),
];
}
}
6 changes: 6 additions & 0 deletions Modules/HR/Entities/Evaluation/Segment.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Modules\HR\Database\Factories\HrEvaluationSegmentFactory;
use Modules\HR\Entities\ApplicationEvaluationSegment;
use Modules\HR\Entities\Round;

Expand Down Expand Up @@ -33,4 +34,9 @@ public function applicationEvaluations()
{
return $this->hasMany(ApplicationEvaluationSegment::class, 'evaluation_segment_id');
}

public static function newFactory()
{
return new HrEvaluationSegmentFactory();
}
}
8 changes: 8 additions & 0 deletions Modules/HR/Entities/Round.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@

namespace Modules\HR\Entities;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Modules\HR\Database\Factories\HrRoundFactory;
use Modules\HR\Entities\Evaluation\Parameter as EvaluationParameter;
use Modules\HR\Entities\Evaluation\Segment as EvaluationSegment;

class Round extends Model
{
use HasFactory;
protected $fillable = ['name', 'guidelines', 'confirmed_mail_template', 'rejected_mail_template'];

protected $table = 'hr_rounds';
Expand Down Expand Up @@ -46,4 +49,9 @@ public function evaluationSegments()
{
return $this->hasMany(EvaluationSegment::class, 'round_id', 'id');
}

public static function newFactory()
{
return new HrRoundFactory();
}
}
10 changes: 7 additions & 3 deletions Modules/HR/Http/Controllers/EvaluationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,11 @@ public function createSegmentParameter(Request $request, $segmentID)
public function updateSegmentParameter(Request $request, $segmentID, $parameterID)
{
$parameter = Parameter::find($parameterID);
$parameter->update(['name' => $request->name, 'marks' => $request->marks, 'slug' => \Str::slug($request->slug)]);
$parameter->update([
'name' => $request->name,
'marks' => $request->marks,
'slug' => \Str::slug($request->slug),
]);
$parameterNewOptions = collect([]);

foreach ($request->parameter_options as $parameterOptionData) {
Expand Down Expand Up @@ -191,8 +195,8 @@ public function update($applicationRoundId)
'hr_application_round_id' => $applicationRoundId,
],
[
'review_value' => $request['feedback_submit'],
'review_key' => 'feedback',
'review_value' => $request['feedback_submit'],
'review_key' => 'feedback',
]
);

Expand Down
171 changes: 85 additions & 86 deletions Modules/HR/Resources/views/evaluation/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,128 +3,127 @@
<div class="container" id="segments_container">
<br>
<br>
<div>
<div>
<div class="d-none alert alert-success fade show" role="alert" id="segmentsuccess">
<strong>Success!!!</strong>Congratulations!!! New segment successfully created.
Congratulations! New segment successfully created.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="d-none alert alert-success fade show" role="alert" id="editSegmentSuccess">
<strong>Success!</strong>Segment updated successfully.
</div>
<div class="d-none alert alert-success fade show" role="alert" id="editSegmentSuccess">
Segment updated successfully.
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
</div>
<div class="d-flex justify-content-between">
<h1 class="mb-0">Segments</h1>
<div>
<button class="btn btn-success" data-toggle="modal" data-target="#createNewSegment"> <i class="fa fa-plus mr-1"></i> Add New Segment</button>
</div>
</div>
</div>
</div>
<br>

<div class="container">
<?php
$count = 0;
?>
@foreach ($roundWithSegments as $key=>$round )
?>
@foreach ($roundWithSegments as $key=>$round )
@if(sizeOf($round[key($round)]))
<div class="accordion" id="accordion">
<div class="accordion-header">
<div class="card bg-Glidden-willow-springs">
<div class="form-row">
<div class="form-group col-md-11 p-3">
<h4 class="accordion-header mb-0" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
{{ key($round) }}
</h4>
</div>
<div class="form-group col-md p-3">
<div class="icon-arrow-down position-relative ml-3 c-pointer" data-toggle="collapse" data-target="#segmentCollapse_{{ $key }}">
<i class="fa fa-arrow-down"></i>
</div>
</div>
<div class="accordion" id="accordion">
<div class="accordion-header">
<div class="card bg-Glidden-willow-springs">
<div class="form-row">
<div class="form-group col-md-11 p-3">
<h4 class="accordion-header mb-0" data-toggle="collapse" data-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
{{ key($round) }}
</h4>
</div>
</div>
<div class="form-group col-md p-3">
<div class="icon-arrow-down position-relative ml-3 c-pointer" data-toggle="collapse" data-target="#segmentCollapse_{{ $key }}">
<i class="fa fa-arrow-down"></i>
</div>
</div>
</div>
</div>
<div id="segmentCollapse_{{ $key }}" class="collapse <?php echo($count == 0 ? 'show' : ' ')?>" aria-labelledby="headingOne">
<div class="accordion-body">
<table class="table table-striped table-bordered">
<tr>
<th>Name</th>
<th>Marks</th>
<th>Actions</th>
</tr>
@foreach ($round[key($round)] as $singleRound)
<tr>
<td>
<a href="{{ route('hr.evaluation.segment-parameters', $singleRound->id) }}">
{{ $singleRound->name }}
</a>
</td>
<td>
<h5>{{ $singleRound->parameters->sum('marks') }}</h5>
</td>
<td>
<i v-on:click="editSegment({{ $singleRound }})" class="fa fa-edit fz-20 text-theme-green"></i>

<i v-on:click="removeSegment({{ $singleRound }})" class="fa fa-trash fz-20 text-theme-red"></i>
</td>
</tr>
@endforeach
</table>
</div>
</div>
<div id="segmentCollapse_{{ $key }}" class="collapse <?php echo ($count == 0 ? 'show' : ' ') ?>" aria-labelledby="headingOne">
<div class="accordion-body">
<table class="table table-striped table-bordered">
<tr>
<th>Name</th>
<th>Marks</th>
<th>Actions</th>
</tr>
@foreach ($round[key($round)] as $singleRound)
<tr>
<td>
<a href="{{ route('hr.evaluation.segment-parameters', $singleRound->id) }}">
{{ $singleRound->name }}
</a>
</td>

<td>
<h5>{{ $singleRound->parameters->sum('marks') }}</h5>
</td>

<td>
<i v-on:click="editSegment({{ $singleRound }})" class="fa fa-edit fz-20 text-theme-green"></i>

<i v-on:click="removeSegment({{ $singleRound }})" class="fa fa-trash fz-20 text-theme-red"></i>
</td>
</tr>
@endforeach
</table>
</div>
</div>
<br>
<?php $count++ ?>
</div>
<br>
<?php $count++ ?>
@endif
@endforeach
</div>
</div>

@include('hr::evaluation.segment.create')
@include('hr::evaluation.segment.edit')
@include('hr::evaluation.segment.delete')
@include('hr::evaluation.segment.create')
@include('hr::evaluation.segment.edit')
@include('hr::evaluation.segment.delete')
</div>
@endsection

@section('js_scripts')
<script>
new Vue({
el:'#segments_container',

data() {
return {
initialUpdateRoute: "{{ route('hr.evaluation.segment.update', 'SEGMENT_ID') }}",
updateRoute: "{{ route('hr.evaluation.segment.update', 'SEGMENT_ID') }}",
segmentName: '',
segmentRoundId : '',
initialDeleteRoute: "{{ route('hr.evaluation.segment.delete', 'SEGMENT_ID') }}",
deleteRoute: "{{ route('hr.evaluation.segment.delete', 'SEGMENT_ID') }}",
}
},
el: '#segments_container',

methods: {
editSegment(segment) {
this.updateRoute = this.initialUpdateRoute;
this.updateRoute = this.updateRoute.replace('SEGMENT_ID', segment.id);
this.segmentName = segment.name;
this.segmentRoundId = segment.round_id;
$('#editSegmentModal').modal('show');
data() {
return {
initialUpdateRoute: "{{ route('hr.evaluation.segment.update', 'SEGMENT_ID') }}",
updateRoute: "{{ route('hr.evaluation.segment.update', 'SEGMENT_ID') }}",
segmentName: '',
segmentRoundId: '',
initialDeleteRoute: "{{ route('hr.evaluation.segment.delete', 'SEGMENT_ID') }}",
deleteRoute: "{{ route('hr.evaluation.segment.delete', 'SEGMENT_ID') }}",
}
},

removeSegment(segment) {
this.deleteRoute = this.initialDeleteRoute;
this.deleteRoute = this.deleteRoute.replace('SEGMENT_ID', segment.id);
this.segmentName = segment.name;
$('#deleteSegmentModal').modal('show');
}
}
});
methods: {
editSegment(segment) {
this.updateRoute = this.initialUpdateRoute;
this.updateRoute = this.updateRoute.replace('SEGMENT_ID', segment.id);
this.segmentName = segment.name;
this.segmentRoundId = segment.round_id;
$('#editSegmentModal').modal('show');
},

removeSegment(segment) {
this.deleteRoute = this.initialDeleteRoute;
this.deleteRoute = this.deleteRoute.replace('SEGMENT_ID', segment.id);
this.segmentName = segment.name;
$('#deleteSegmentModal').modal('show');
}
}
});
</script>

@endsection
8 changes: 4 additions & 4 deletions Modules/HR/Routes/web.php
Original file line number Diff line number Diff line change
Expand Up @@ -142,10 +142,10 @@
Route::post('/details', 'RequisitionController@storeBatchDetails')->name('requisition.storeBatchDetails');

Route::resource('designation', 'HrJobDesignationController')
->only(['index', 'show'])
->names([
'index' => 'designation',
]);
->only(['index', 'show'])
->names([
'index' => 'designation',
]);
Route::post('/delete/{id}', 'HrJobDesignationController@destroy')->name('designation.delete');
Route::get('/{id}/edit', 'HrJobDesignationController@edit')->name('designation.edit');
Route::post('/store', 'HrJobDesignationController@storeDesignation')->name('hr-job-designation.storeJobDesignation');
Expand Down
Loading
Loading