def add_skill_acquired_by_student(student, skill_id): """ Each time a student acquires a skill we use this method to add the field in the table SkillStudent Keyword arguments: student -- the student who acquired the skill skill_id -- id of the mastered skill status -- status of the mastering level of the skill (unmastered, in progress, mastered) """ new_entry = StudentSkill(student=student, skill=skill_id, acquired=datetime.datetime.now(tz=pytz.utc)) new_entry.save()
def test_depth_sort_skills_1_prerequisite(self): """Check depth_sort_skills for 1 skill with a prerequisite""" sorted_list = StudentSkill.__depth_sort_skills__( [self.stud_skill_tab[0]], None) self.assertEquals(len(sorted_list), 3) self.assertTrue(self.stud_skill_tab[1] in sorted_list[1]) self.assertTrue(self.stud_skill_tab[0] in sorted_list[2])
def test_depth_sort_skills_1(self): """Check depth_sort_skills for 1 skill""" sorted_list = StudentSkill.__depth_sort_skills__( [self.stud_skill_tab[1]], None) self.assertEquals(len(sorted_list), 2) #[0] : acquired skills ; [1] : level 1 self.assertTrue(self.stud_skill_tab[1] in sorted_list[1])
def get_depth_sorted_students_skills(context, of_keyword, student, at_keyword, stage, as_keyword, target_name): """ return a list of list of sorted skills """ set = StudentSkill.objects.filter(skill__in=stage.skills.all(), student=student) remove = set.exclude(is_objective=None) context[target_name] = StudentSkill.__depth_sort_skills__(remove, student) return ""
def test_depth_sort_skills_lvl2(self): """Check depth_sort_skills for 1 skill with 2 levels of prerequisites""" relation3 = Relations.objects.create(from_skill=self.skill_tab[1], to_skill=self.skill_tab[3], relation_type="depend_on") sorted_list = StudentSkill.__depth_sort_skills__( [self.stud_skill_tab[0]], None) self.assertEquals(len(sorted_list), 4) self.assertEquals(len(sorted_list[0]), 0) self.assertEquals(len(sorted_list[1]), 1) self.assertTrue(self.stud_skill_tab[3] in sorted_list[1]) self.assertEquals(len(sorted_list[2]), 1) self.assertTrue(self.stud_skill_tab[1] in sorted_list[2]) self.assertEquals(len(sorted_list[3]), 1) self.assertTrue(self.stud_skill_tab[0] in sorted_list[3])
def reset_counter_line(context): StudentSkill.__reset_counter_line__() return ""
def go_next_line(context, as_keyword, target_name): context[target_name] = StudentSkill.__next_line__() return ""