Skip to content

Commit

Permalink
wip: multiple choice update/delete operation complete
Browse files Browse the repository at this point in the history
  • Loading branch information
susanta-tala committed Feb 11, 2024
1 parent 0e33ecb commit 13eb3ce
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 5 deletions.
4 changes: 2 additions & 2 deletions app/Enums/Questionnaire/QuestionType.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,6 @@ enum QuestionType: string
case SEE_AND_ANSWER = '5';
case MULTIPLE_CHOICE = '6';


public function value(): string
{
return match ($this) {
Expand Down Expand Up @@ -142,7 +141,8 @@ public function getEditViewName(): string
self::DESCRIBE_IMAGE => 'questionnaire.admin.questions.types.describe-image.edit',
self::TRUE_FALSE => 'questionnaire.admin.questions.types.true-false.edit',
self::CLOSE_ENDED_OPTIONS => 'questionnaire.admin.questions.types.closed-option.edit',
self::SEE_AND_ANSWER => 'questionnaire.admin.questions.types.see-and-answer.edit'
self::SEE_AND_ANSWER => 'questionnaire.admin.questions.types.see-and-answer.edit',
self::MULTIPLE_CHOICE => 'questionnaire.admin.questions.types.multiple-choice.edit'
};
}

Expand Down
1 change: 1 addition & 0 deletions app/Facades/Questionnaire/QuestionnaireAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
* @method static int updateCourseModule(Course $course, ModuleData $moduleData)
* @method static int updateQuestion(Question $question, QuestionData $questionData)
* @method static Model updateQuestionOption(Question $question, QuestionOptionData $questionOptionData)
* @method static Model updateQuestionMultipleChoice(Question $question, QuestionMultipleChoiceData $questionMultipleChoiceData)
* @method static Model updateQuestionTrueFalse(Question $question, QuestionTrueFalseData $questionTrueFalseData)
* @method static Model updateQuestionReadAndAnswer(Question $question, QuestionReadAndAnswerData $questionReadAndAnswerData)
* @method static Model updateQuestionDescribeImage(Question $question, QuestionDescribeImageData $questionDescribeImageData)
Expand Down
2 changes: 1 addition & 1 deletion app/Models/Questionnaire/QuestionMultipleChoice.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ class QuestionMultipleChoice extends Model
protected $table = 'questionnaire_question_multiple_choices';

protected $casts = [
'body' => 'array'
'body' => 'array',
];
}
5 changes: 5 additions & 0 deletions app/Questionnaire/AdminFacade.php
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,11 @@ public function updateQuestionOption(Question $question, QuestionOptionData $que
return $this->questionClosedOptionRepo->update($question, $questionOptionData);
}

public function updateQuestionMultipleChoice(Question $question, QuestionMultipleChoiceData $questionMultipleChoiceData): Model
{
return $this->questionMultipleChoiceRepo->update($question, $questionMultipleChoiceData);
}

public function updateQuestionTrueFalse(Question $question, QuestionTrueFalseData $questionTrueFalseData): Model
{
return $this->questionTrueFalseRepo->update($question, $questionTrueFalseData);
Expand Down
5 changes: 4 additions & 1 deletion app/Questionnaire/Services/Admin/MultipleChoiceAdmin.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
use App\Questionnaire\Traits\HasImage;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;

class MultipleChoiceAdmin implements InterfaceAdmin
{
Expand Down Expand Up @@ -44,7 +43,11 @@ public function storeProcess(array $validated, Module $module, QuestionData $que

public function updateProcess(array $validated, Question $question, QuestionData $questionData): Model
{
$choices = $validated['choices'];
QuestionnaireAdmin::updateQuestion($question, $questionData);
$answers = QuestionnaireAdmin::prepareQuestionMultipleChoice($choices);

return QuestionnaireAdmin::updateQuestionMultipleChoice($question, $answers);
}

public function deleteProcess(Question $question): void
Expand Down
1 change: 0 additions & 1 deletion app/Traits/HasBelongsToQuestion.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@

trait HasBelongsToQuestion
{

public function question(): BelongsTo
{
return $this->belongsTo(Question::class);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
<div class="form-group row mx-auto">
<div class="col-9">
<label for="body">Question Text</label>
<textarea class="form-control @error('body') is-invalid @enderror"
name="body"
id="body"
rows="2">{{$question->body ?? @old('body')}}</textarea>
@error('body')
<span class="invalid-feedback">{{ $message }}</span>
@enderror
</div>
{{$slot}}
</div>
@isset($question->multipleChoice)
@foreach($question->multipleChoice->body as $choice)
{{-- @dd([$key, $value])--}}
<div class="form-group row mx-auto">
<div class="col-6">
<input type="hidden" name="choices[{{$loop->index}}][id]" value="{{$choice['id']}}" />
<input name="choices[{{$loop->index}}][value]"
type="text" class="form-control mb-2 @error("option".$loop->iteration) is-invalid @enderror"
placeholder="choice {{$loop->index}}"
value="{{$choice['value']}}"
>
@error("option".$loop->iteration)
<span class="invalid-feedback">{{ $message }}</span>
@enderror
</div>
<div class="col-6 form-check py-2">
<input type="checkbox"
name="choices[{{$loop->index}}][checked]"
class="form-check-input"
@checked(array_key_exists('checked', $choice) && $choice['checked'] == 'on')
id="choices{{$loop->iteration}}">
</div>
</div>
@endforeach
@endif
@push('js')
<script defer src="{{asset('assets/js/admin-utilities.js')}}" ></script>
@endpush

0 comments on commit 13eb3ce

Please sign in to comment.