Skip to content

Commit fd66c49

Browse files
committed
Add question text filter
Also, removed bug regarding duplicating of some fields. And added notification when question is successfully edited in the database
1 parent addedde commit fd66c49

3 files changed

Lines changed: 31 additions & 13 deletions

File tree

searchapp/static/edit_questions.js

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,10 @@ $(document).ready(() => {
1717
$('#question_weightage').dropdown({
1818
onChange: value => filter(value, 'question_weightage')
1919
});
20+
$('#text').keyup(function (e) {
21+
e.preventDefault();
22+
filter(e.target.value, 'text');
23+
});
2024
$('.modal .actions .deny').click(function(e) {
2125
e.target.parentElement.previousElementSibling.children[0].value = '';
2226
})
@@ -38,6 +42,11 @@ $(document).ready(() => {
3842
return question
3943
})
4044
filter(null, 'chapter')
45+
new PNotify({
46+
title: 'Success!',
47+
text: 'Question successfully edited in the database',
48+
type: 'success'
49+
});
4150
},
4251
error: err => {
4352
new PNotify({
@@ -59,7 +68,8 @@ let filters = {
5968
subject: [],
6069
chapter: [],
6170
question_type: [],
62-
question_weightage: []
71+
question_weightage: [],
72+
text: ''
6373
}
6474

6575
const fill_rows = questions => {
@@ -91,15 +101,13 @@ const fill_rows = questions => {
91101

92102
const filter = (value, field) => {
93103
if (value !== null) {
94-
const values = value.split(',');
104+
const values = field != 'text' ? value.split(',') : [value];
105+
// console.log(values)
95106
filters[field] = values;
96107
}
97108
if (filters[field].includes("")) filters[field] = []
98-
if (field == 'question_weightage') {
99-
filters[field] = filters[field].map(x => parseInt(x, 10));
100-
}
101-
console.log(value)
102-
console.log(filters)
109+
// console.log(value)
110+
// console.log(filters)
103111
let filtered_questions = questions.filter(question => {
104112
let removed = false;
105113
// console.log(question)
@@ -108,7 +116,12 @@ const filter = (value, field) => {
108116
// console.log(filter)
109117
// console.log(question[filter])
110118
// console.log(filters[filter].length != 0 && !filters[filter].includes(question[filter]))
111-
if (filters[filter].length != 0 && !filters[filter].includes(question[filter])) {
119+
if (filter == 'text') {
120+
if (filters[filter].length != 0 && !question[filter].toLowerCase().includes(filters[filter][0].toLowerCase())) {
121+
removed = true;
122+
}
123+
}
124+
else if (filters[filter].length != 0 && !filters[filter].includes(question[filter])) {
112125
removed = true;
113126
}
114127
})

searchapp/templates/edit_questions.html

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,11 @@
8181
{% endfor %}
8282
</div>
8383
</div>
84+
<br>
85+
<div id="text" class="ui fluid search icon input chapter">
86+
<i class="search icon"></i>
87+
<input type="text" placeholder="Search by text">
88+
</div>
8489
<br>
8590
</div>
8691
<br>

searchapp/views.py

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,10 @@ def student_view(request):
6363

6464
def edit_questions(request):
6565
if request.method == 'GET':
66-
board_list = list(Board.objects.all().values_list('board', flat=True))
67-
chapters = list(Chapter.objects.all().values_list('chapter_name', flat=True))
68-
subjects = list(Subject.objects.all().values_list('subject_name', flat=True))
69-
grades = list(Grade.objects.all().values_list('grade', flat=True))
66+
board_list = Board.objects.all().values_list('board', flat=True)
67+
chapters = Chapter.objects.all().values_list('chapter_name', flat=True).distinct()
68+
subjects = Subject.objects.all().values_list('subject_name', flat=True).distinct()
69+
grades = Grade.objects.all().values_list('grade', flat=True).distinct()
7070
question_weightage = [i[0] for i in Questions.QUESTION_WEIGHTAGE_CHOICES]
7171
question_types = [i[1] for i in Questions.QUESTION_TYPE_CHOICES]
7272
questions = [{
@@ -76,7 +76,7 @@ def edit_questions(request):
7676
'subject': question.chapter.subject.subject_name,
7777
'chapter': question.chapter.chapter_name,
7878
'question_type': question_types[question.question_type - 1],
79-
'question_weightage': question.question_weightage,
79+
'question_weightage': str(question.question_weightage),
8080
'text': question.text
8181
} for question in Questions.objects.all() if question.question_type < 4]
8282
return render(request, 'edit_questions.html', {'boards': board_list, 'chapters': chapters, 'subjects': subjects,

0 commit comments

Comments
 (0)