Skip to content

Commit

Permalink
Complete (#871)
Browse files Browse the repository at this point in the history
  • Loading branch information
Dmi4er4 committed Sep 2, 2024
1 parent 35dca20 commit 7c38023
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 6 deletions.
18 changes: 16 additions & 2 deletions apps/learning/admin.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
from dal_select2.widgets import Select2Multiple
from django.contrib.admin import SimpleListFilter
from modeltranslation.admin import TranslationAdmin

from django.conf import settings
from django.contrib import admin
from django.db import models as db_models, models
from django.utils.safestring import mark_safe
Expand All @@ -24,6 +24,19 @@
from .services.personal_assignment_service import update_personal_assignment_score
from .settings import AssignmentScoreUpdateSource, EnrollmentGradeUpdateSource

class CourseFilter(SimpleListFilter):
title = _('Course')
parameter_name = 'course'
template = 'admin/dropdown_listfilter.html'

def lookups(self, request, model_admin):
courses = Course.objects.all().order_by('-pk').select_related('meta_course', 'semester')
return [(course.pk, str(course)) for course in courses]

def queryset(self, request, queryset):
if self.value():
return queryset.filter(course__pk=self.value())
return queryset

class CourseTeacherAdmin(BaseModelAdmin):
list_display = ('teacher', 'course')
Expand Down Expand Up @@ -123,7 +136,8 @@ class EnrollmentAdmin(BaseModelAdmin):
list_filter = [
'course__main_branch__site',
'course__main_branch',
('course__semester', AdminRelatedDropdownFilter)
('course__semester', AdminRelatedDropdownFilter),
CourseFilter,
]
search_fields = ['course__meta_course__name', 'student__last_name']
exclude = ['grade_changed']
Expand Down
3 changes: 1 addition & 2 deletions apps/learning/forms.py
Original file line number Diff line number Diff line change
Expand Up @@ -293,8 +293,7 @@ class CourseEnrollmentForm(forms.Form):
)
reason = forms.CharField(
label=_("Почему вы выбрали этот курс?"),
widget=forms.Textarea(),
required=False)
widget=forms.Textarea())

def __init__(self, **kwargs):
ask_enrollment_reason = kwargs.pop('ask_enrollment_reason', None)
Expand Down
10 changes: 8 additions & 2 deletions apps/learning/tests/test_enrollment.py
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,13 @@ def test_enrollment_leave_reason(client):
client.post(co.get_enroll_url(), data={
"type": EnrollmentTypes.REGULAR
})
assert Enrollment.active.count() == 0
client.post(co.get_enroll_url(), data={
"type": EnrollmentTypes.REGULAR,
"reason": "reason"
})
assert Enrollment.active.count() == 1
assert Enrollment.objects.first().reason_entry == ''
assert "reason" in Enrollment.objects.first().reason_entry
client.post(co.get_unenroll_url(), data={
"type": EnrollmentTypes.REGULAR,
"reason": "foo"
Expand All @@ -230,7 +235,8 @@ def test_enrollment_leave_reason(client):
assert 'foo' in e.reason_leave
# Enroll for the second time and leave with another reason
client.post(co.get_enroll_url(), data={
"type": EnrollmentTypes.REGULAR
"type": EnrollmentTypes.REGULAR,
"reason": "reason"
})
assert Enrollment.active.count() == 1
client.post(co.get_unenroll_url(), data={
Expand Down

0 comments on commit 7c38023

Please sign in to comment.