Выделить системы оценок в отдельные классы
Closed this issue · 0 comments
ctrltz commented
class GradingSystem:
GRADES = []
@classmethod
def choices(cls):
return [c for c in GradeTypes.choices if c[0] in cls.GRADES]
class FivePointGradingSystem(GradingSystem):
GRADES = [GradeTypes.NOT_GRADED, GradeTypes.UNSATISFACTORY,
GradeTypes.CREDIT, GradeTypes.GOOD, GradeTypes.EXCELLENT]
class BinaryGradingSystem(GradingSystem):
GRADES = [GradeTypes.NOT_GRADED, GradeTypes.UNSATISFACTORY, GradeTypes.CREDIT]
class TenPointGradingSystem(GradingSystem):
GRADES = [GradeTypes.NOT_GRADED, GradeTypes.ONE, GradeTypes.TWO, GradeTypes.THREE, GradeTypes.FOUR, GradeTypes.FIVE,
GradeTypes.SIX, GradeTypes.SEVEN, GradeTypes.EIGHT, GradeTypes.NINE, GradeTypes.TEN]
class GradingSystems(DjangoChoices):
BASE = C(0, _("Default"), css_class="", system=FivePointGradingSystem)
BINARY = C(1, _("Binary"), css_class="__binary", system=BinaryGradingSystem)
TEN_POINT = C(2, _("10-point"), css_class="", system=TenPointGradingSystem)
@staticmethod
def get_grading_system(value):
return GradingSystems.get_choice(value).system