Коммит 87d4e69b создал по автору AdLeGeR's avatar AdLeGeR
Просмотр файлов

создал фильтрацию по учителб

владелец 69ee5fcf
...@@ -423,16 +423,26 @@ def close_project(request: HttpRequest): ...@@ -423,16 +423,26 @@ def close_project(request: HttpRequest):
def archive(request:HttpRequest): def archive(request:HttpRequest):
projects = Project.objects.filter(_status='done') projects = Project.objects.filter(_status='done')
#обработка запроса с фильтрами
if request.method == 'POST': if request.method == 'POST':
nominations = request.POST.get('nominations', 'Не указано').split(',') nominations = request.POST.get('nominations', 'Не указано').split(',')
subject = request.POST.get('subject', 'Не указано') subject = request.POST.get('subject', 'Не указано')
name = request.POST.get('name', '') name = request.POST.get('name', '')
teacher_id = request.POST.get('teacher', -1)
if nominations[0] != 'Не указано' and nominations[0] != '': if nominations[0] != 'Не указано' and nominations[0] != '':
projects = projects.filter(nominations__in=nominations) projects = projects.filter(nominations__in=nominations)
if subject != 'Не указано' and subject != '': if subject != 'Не указано' and subject != '':
projects = projects.filter(_subjects__icontains=subject) projects = projects.filter(_subjects__icontains=subject)
if name != '': if name != '':
projects = projects.filter(name__icontains=name) projects = projects.filter(name__icontains=name)
if teacher_id != -1:
try:
teacher = User.objects.get(id=teacher_id)
projects = projects.filter(teacher=teacher)
except User.DoesNotExist:
print('потом с логированием разберусь')
projects = projects[:20] projects = projects[:20]
# упаковка проектов и файлов в один массив состоящий из объектов класса ProjectPack # упаковка проектов и файлов в один массив состоящий из объектов класса ProjectPack
...@@ -450,7 +460,12 @@ def archive(request:HttpRequest): ...@@ -450,7 +460,12 @@ def archive(request:HttpRequest):
'status': project.get_status(), 'status': project.get_status(),
'subjects': project.get_subjects()}) 'subjects': project.get_subjects()})
context_projects.append(values.copy()) context_projects.append(values.copy())
teachers = User.objects.filter(role="Учитель", is_other_teacher=False)
teacher_arr = []
for teacher in teachers:
teacher_arr.append([teacher.full_Name, teacher.id])
context={'projects':context_projects, context={'projects':context_projects,
'nominations': Project._nominations, 'nominations': Project._nominations,
"subjects": [subject.name for subject in Subject.objects.all()]} "subjects": [subject.name for subject in Subject.objects.all()],
"teachers": teacher_arr}
return render(request, 'projects/archive.html',context=context) return render(request, 'projects/archive.html',context=context)
...@@ -58,6 +58,22 @@ ...@@ -58,6 +58,22 @@
<div class="right"> <div class="right">
<button class="btn filter_btn" type="submit">Применить</button> <button class="btn filter_btn" type="submit">Применить</button>
</div> </div>
<div class="tea">
<h3 class="h3 tea">Учитель*</h3>
<div>
<input type="text" class="search-block-input form-input search-block-teachers teacher-open"
placeholder="ФИО учителя">
<input type="text" class="new-teacher wf" placeholder="ФИО учителя" name="new-teacher">
<ul class="search-block-result-list"></ul>
<ul class="search-block-list"></ul>
</div>
<input type="hidden" class="search-block-hidden-input" required>
<input type="hidden" name="teacher" class="search-block-for-teacher">
<div class="checkbox">
<input type="checkbox" name="teacher-checkbox" id="teacher-checkbox" onclick="checkbox()">
<label for="teacher-checkbox" class="checkbox-label">Учитель не из лицея</label>
</div>
</div>
</form> </form>
</div> </div>
...@@ -87,6 +103,42 @@ ...@@ -87,6 +103,42 @@
{%endfor%} {%endfor%}
</ul> </ul>
<script src="{% static 'js/global/list.js' %}"></script> <script src="{% static 'js/global/list.js' %}"></script>
<script src="{% static 'js/projects/archive.js' %}"></script> <script src="{% static 'js/projects/archive.js' %}"></script>
<script src="{% static 'js/global/search_block.js' %}"></script>
<script>
let teacher_arr = {{ teachers | js }}
let teacher_name = [];
for (let i = 0; i < teacher_arr.length; i++) {
teacher_name.push(teacher_arr[i][0]);
}
$('.search-block-subjects').on('focus', function() {
list_arr = {{ subjects_names | js }};
max_item = 3;
add_other_text = true;
});
$('.search-block-teachers').on('focus', function() {
list_arr = teacher_name;
max_item = 1;
add_other_text = false;
});
$($('.search-block-result-list')[0]).on('click', function() {
let input = $('.search-block-hidden-input')[0];
teacher_id(input);
teacher_del();
});
function teacher_del() {
$($('.search-block-div')[0]).on('click', function() {
let input = $('.search-block-hidden-input')[0];
teacher_id(input);
});
}
</script>
<script src="{% static 'js/projects/create_page.js' %}"></script>
{% endblock content %} {% endblock content %}
\ No newline at end of file
Поддерживает Markdown
0% или .
You are about to add 0 people to the discussion. Proceed with caution.
Сначала завершите редактирование этого сообщения!
Пожалуйста, зарегистрируйтесь или чтобы прокомментировать