def create_lessons(apps, schema_editor): Lesson.objects.bulk_create( [Lesson(name="レッスンテスト", number=1, description="あいうえお"), Lesson(name="バレーレッスン", number=2, description="テストのレッスン"), Lesson(name="レッスン", number=3, description="これはテストです") ] )
def saveLessonsToDB(self): """ Method to create Programming Environment, Language and Lesson for the test database """ self.environment = ProgrammingEnvironment( environment_name="Web Applications", description="Test Description") self.environment.save() self.language = Language(language_name="JavaScript", description="Test Description", environment=self.environment) self.language.save() self.lesson = Lesson(language=self.language, lesson_title="Variables", lesson_description="Test Description", lesson_content="Test content", check_result="function check_result(result)\{\}", lesson_number=1, lesson_code=""" function variable_exercise(){ //Write variable here //Return the variable here }""") self.lesson.save()
def test_next_lesson(self): """ Method used to test the 'next_lesson' function """ nextLesson = Lesson(language=self.language, lesson_title="Conditionals", lesson_description="Test Description", lesson_content="Test content", check_result="function check_result(result)\{\}", lesson_number=2, lesson_code="""test""") nextLesson.save() self.login_client() response = self.client.get(reverse("lesson-next-lesson", kwargs={ "languageTitle": self.language.language_name, "currentLessonTitle": self.lesson.lesson_title, "nextLessonTitle": nextLesson.lesson_title }), follow=True) newProgress = Progress.objects.filter( lesson__lesson_title=self.lesson.lesson_title) self.assertEqual(response.status_code, 200) self.assertTemplateUsed(response, "lesson/lesson_base.html") self.assertInHTML(nextLesson.lesson_title, response.content.decode()) self.assertIsNotNone(newProgress)
def setUp(self): self.user1 = User.objects.create_user( 'bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.user2 = User.objects.create_user('dave', '*****@*****.**', 'dave') self.user2.is_active = True self.user2.save() self.user3 = User.objects.create_user( 'Chuck Norris', '*****@*****.**', 'dontask') self.user3.is_active = True self.user3.save() self.course1 = Course(**course1_data) self.course1.organiser = self.user1 self.course1.instructor = self.user1 self.course1.save() self.uc = UserCourse(course=self.course1, user=self.user2) self.uc.save() self.lesson1 = Lesson(name="Test Lesson 1", course = self.course1) self.lesson1.save() #att1 attached to course self.att1 = Attachment(course=self.course1, **self.att1_data) self.att1.save() #att2 attached to lesson self.att2 = Attachment(lesson=self.lesson1, **self.att1_data) self.att2.save() with open('media/attachments/empty_attachment_test.txt', 'w') as f: f.write('test')
def setUp(self): self.user1 = User.objects.create_user('bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.user2 = User.objects.create_user('Van Gogh', '*****@*****.**', 'vancode') self.user2.is_active = True self.user2.save() self.user3 = User.objects.create_user('Chuck Norris', '*****@*****.**', 'dontask') self.user3.is_active = True self.user3.save() self.user4 = User.objects.create_user('James Maxwell', 'em@c', 'pdq') self.user4.is_active = True self.user4.save() self.course1 = Course(**course1_data) self.course1.organiser = self.user1 self.course1.instructor = self.user1 self.course1.save() self.course2 = Course(**course2_data) self.course2.organiser = self.user2 self.course2.instructor = self.user2 self.course2.save() self.uc = UserCourse(course=self.course1, user=self.user2) self.uc.save() self.lesson1 = Lesson(name="Test Lesson 1", course = self.course1) self.lesson1.save() self.ul = UserLesson(user=self.user2, lesson=self.lesson1) self.ul.save()
def setUp(self): self.user1 = User.objects.create_user('bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.user2 = User.objects.create_user('hank', '*****@*****.**', 'hankdo') self.user2.is_active = True self.user2.save() self.course1 = Course(**self.course1_data) self.course1.organiser = self.user1 self.course1.instructor = self.user1 self.course1.save() self.course2 = Course(**self.course2_data) self.course2.organiser = self.user1 self.course2.instructor = self.user2 self.course2.save() self.course3 = Course(**self.course3_data) self.course3.organiser = self.user2 self.course3.instructor = self.user2 self.course3.save() self.course4 = Course(**self.course4_data) self.course4.organiser = self.user2 self.course4.instructor = self.user2 self.course4.save() self.course5 = Course(**self.course5_data) self.course5.organiser = self.user2 self.course5.instructor = self.user2 self.course5.save() self.lesson1 = Lesson(course=self.course1, **self.lesson1_data) self.lesson1.save() self.lesson2 = Lesson(course=self.course3, **self.lesson2_data) self.lesson2.save()
def setUp(self): self.user1 = User.objects.create_user('bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.user2 = User.objects.create_user('Van Gogh', '*****@*****.**', 'vancode') self.user2.is_active = True self.user2.save() self.user3 = User.objects.create_user('Chuck Norris', '*****@*****.**', 'dontask') self.user3.is_active = True self.user3.save() self.course1 = Course(**course1_data) self.course1.instructor = self.user2 self.course1.organiser = self.user2 self.course1.save() self.uc = UserCourse(course=self.course1, user=self.user1) self.uc.save() self.lesson = Lesson(name="Test Lesson 1", course = self.course1) self.lesson.save() self.li = LearningIntention(lesson=self.lesson, text="Intend...") self.li.save() self.uli = UserLearningIntention(user=self.user1, learning_intention = self.li) self.lid1 = LearningIntentionDetail( learning_intention=self.li, text ="LID A", lid_type=LearningIntentionDetail.SUCCESS_CRITERION) self.lid2 = LearningIntentionDetail( learning_intention=self.li, text ="LID B", lid_type=LearningIntentionDetail.SUCCESS_CRITERION) self.lid3 = LearningIntentionDetail( learning_intention=self.li, text ="LID C", lid_type=LearningIntentionDetail.LEARNING_OUTCOME) self.lid1.save() self.lid2.save() self.lid3.save() self.ulid1 = UserLearningIntentionDetail(user=self.user1, learning_intention_detail=self.lid1) self.ulid1.save() self.ulid2 = UserLearningIntentionDetail(user=self.user1, learning_intention_detail=self.lid2) self.ulid2.save() self.ulid3 = UserLearningIntentionDetail(user=self.user1, learning_intention_detail=self.lid3) self.ulid3.save()
def setUp(self): self.user1 = User.objects.create_user( 'bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.user2 = User.objects.create_user('dave', '*****@*****.**', 'dave') self.user2.is_active = True self.user2.save() self.course1 = Course(**self.course1_data) self.course1.instructor = self.user2 self.course1.organiser = self.user2 self.course1.save() self.lesson1 = Lesson(course=self.course1, **self.lesson1_data) self.lesson1.save() self.learningintention1 = LearningIntention( lesson = self.lesson1, text = "Practise") self.learningintention1.save() self.lid1 = LearningIntentionDetail( learning_intention = self.learningintention1, text = "Choose Topaz", lid_type = LearningIntentionDetail.SUCCESS_CRITERION ) self.lid1.save() self.lid2 = LearningIntentionDetail( learning_intention = self.learningintention1, text = "Eat fish", lid_type = LearningIntentionDetail.SUCCESS_CRITERION ) self.lid2.save() self.lid3 = LearningIntentionDetail( learning_intention = self.learningintention1, text = "Calculate 6*9", lid_type = LearningIntentionDetail.LEARNING_OUTCOME ) self.lid3.save() self.profile1 = self.user1.profile self.profile1.accepted_terms = True self.profile1.signature_line = 'Learning stuff' self.profile1.save()
def setUp(self): self.user1 = User.objects.create_user( 'bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.user2 = User.objects.create_user('dave', '*****@*****.**', 'dave') self.user2.is_active = True self.user2.save() self.course1 = Course(**self.course1_data) self.course1.organiser = self.user1 self.course1.instructor = self.user1 self.course1.save() self.lesson1 = Lesson(course=self.course1, **self.lesson1_data) self.lesson1.save() self.uc = UserCourse(course=self.course1, user=self.user2) self.uc.save() self.att1 = Attachment(course=self.course1, **self.att1_data) self.att2 = Attachment(lesson=self.lesson1, **self.att2_data) self.att1.save() self.att2.save()
def setUp(self): self.user1 = User.objects.create_user('bertie', '*****@*****.**', 'bertword') self.user1.is_active = True self.user1.save() self.course1 = Course(**self.course1_data) self.course1.organiser = self.user1 self.course1.instructor = self.user1 self.course1.save() self.lesson1 = Lesson(course=self.course1, **self.lesson1_data) self.lesson1.save() self.learningintention1 = LearningIntention(lesson=self.lesson1, text="Practise") self.learningintention1.save() self.lid1 = LearningIntentionDetail( learning_intention=self.learningintention1, text="Choose", lid_type=LearningIntentionDetail.SUCCESS_CRITERION) self.lid1.save() self.lid2 = LearningIntentionDetail( learning_intention=self.learningintention1, text="Calculate", lid_type=LearningIntentionDetail.LEARNING_OUTCOME) self.lid2.save()
def lesson_edit(request, lesson_id=None): if lesson_id: lesson = get_object_or_404(Lesson, pk=lesson_id) title = "レッスン受講記録編集" else: lesson = Lesson() title = "レッスン受講記録登録" if request.method == 'POST': form = LessonForm(request.POST, instance=lesson) if form.is_valid(): lesson = form.save(commit=False) lesson.charge_yen = 0 lesson.save() # 対象ユーザーの対象プランの当月受講履歴を取得 year = int(lesson.date.strftime('%Y')) month = int(lesson.date.strftime('%m')) first_day = date(year, month, 1) end_day = date(year, month + 1, 1) - timedelta(days=1) q = Q(member=lesson.member, plan=lesson.plan, date__range=[first_day, end_day]) t_lessons = Lesson.objects.filter(q).order_by('date') ruiseki_start = 0 # 累積開始時間 ruiseki_end = 0 # 累積終了時間 # 当月受講履歴をひとつずつ計算する for t_lesson in t_lessons: print("id:" + str(t_lesson.id)) # 今回の累積レッスン終了時間 ruiseki_end += t_lesson.hour # 今回の支払金額 charge_yen = 0 # 基本時間 > 0 if t_lesson.plan.basic_include_hour > 0: # 累積終了時間 <= 基本時間 if ruiseki_end <= t_lesson.plan.basic_include_hour: t_lesson.charge_yen = charge_yen t_lesson.save() continue else: ruiseki_start = t_lesson.plan.basic_include_hour # 従量開始時間 <= 累積終了時間 # 従量開始時間 <= 累積開始時間 # 累積開始時間 <= 従量終了時間 または 従量終了時間 is null plan_paygs = PlanPayg.objects.filter( Q(Q(plan=t_lesson.plan), Q( payg_end_hour__gte=ruiseki_start), Q(payg_start_hour__lte=ruiseki_end)) | Q(Q( plan=t_lesson.plan), Q( payg_start_hour__lte=ruiseki_end), Q(payg_end_hour__isnull=True))).order_by( 'payg_start_hour') for plan_payg in plan_paygs: print("ruiseki_start:" + str(ruiseki_start)) print("ruiseki_end:" + str(ruiseki_end)) print("before_charge_yen:" + str(charge_yen)) if plan_paygs.count( ) > 1 and plan_payg.payg_end_hour is not None: if plan_payg == plan_paygs.last(): # (累積終了時間 - 現在の従量開始時間) × 従量料金 now_hour = (ruiseki_end - ruiseki_start) charge_yen += (ruiseki_end - ruiseki_start ) * plan_payg.payg_charge_yen ruiseki_start = ruiseki_end else: # (現在の従量終了時間 - 累積開始時間) × 従量料金 now_hour = (plan_payg.payg_end_hour - ruiseki_start) charge_yen += ( plan_payg.payg_end_hour - ruiseki_start) * plan_payg.payg_charge_yen ruiseki_start = plan_payg.payg_end_hour else: # (累積終了時間 - 累積開始時間) × 従量料金 now_hour = (ruiseki_end - ruiseki_start) charge_yen += (ruiseki_end - ruiseki_start ) * plan_payg.payg_charge_yen ruiseki_start = ruiseki_end print("now_hour:" + str(now_hour)) print("after_charge_yen:" + str(charge_yen)) print("payg_charge_yen:" + str(plan_payg.payg_charge_yen)) # 支払金額を更新 t_lesson.charge_yen = charge_yen t_lesson.save() return redirect('lesson:lesson_list') else: form = LessonForm(instance=lesson) return render(request, 'lesson/edit.html', dict(form=form, lesson_id=lesson_id, title=title))
def getGrades(user, jwxt_user): gradesStr = jwxt_user.getScore() pattern = pattern = re.compile(r'\{"[^\}]*"\}') results = pattern.finditer(gradesStr) for item in results: grade = item.group() try: lessonIdPattern = re.compile(r'(?<="kch":")([^"]+?)(?=")') lessonId = lessonIdPattern.search(grade).group() teacherPattern = re.compile(r'(?<="jsxm":")([^"]+?)(?=")') try: teacher = teacherPattern.search(grade).group() except: teacher = '' lesson = Lesson.objects.get(lessonId=lessonId, teacher=teacher) except Lesson.DoesNotExist: schoolNumber = lessonId[:5] try: schoolObj = School.objects.get(number=schoolNumber) except: schoolObj = School.objects.get(number='69000') titlePattern = re.compile(r'(?<="kcmc":")([^"]+?)(?=")') title = titlePattern.search(grade).group() classHour = 'None' creditPattern = re.compile(r'(?<="xf":")([^"]+?)(?=")') try: credit = creditPattern.search(grade).group() except: credit = '0' campus = '' teachType = '01' typePattern = re.compile(r'(?<="kclb":")([^"]+?)(?=")') type = typePattern.search(grade).group() lesson = Lesson(school=schoolObj, lessonId=lessonId, title=title, description='', classHour=classHour, credit=credit, campus=campus, teacher=teacher[:128], teachType=teachType, type=type ) lesson.save() yearPattern = re.compile(r'(?<="xnd":")([^"]+?)(?=")') try: year = yearPattern.search(grade).group() except: year = 'unknow' scorePattern = re.compile(r'(?<="zzcj":")([^"]+?)(?=")') try: score = int(scorePattern.search(grade).group()) except: continue rankPattern = re.compile(r'(?<="jxbpm":")([^"]+?)(?=")') try: rank = rankPattern.search(grade).group() except: ranking = int total = int else: rank_list = map(int, re.findall(r'\d+', rank)) try: ranking = rank_list[0] total = rank_list[1] except: ranking = int total = int termPattern = re.compile(r'(?<="xq":")([^"]+?)(?=")') try: term = termPattern.search(grade).group() except: term = '4' try: gradeObj = Grade.objects.get(user=user, lesson=lesson) except Grade.DoesNotExist: gradeObj = Grade( user=user, lesson=lesson, year=year, term=term, score=score, ranking=ranking, total=total ) gradeObj.save() lesson.add_grade_number() lesson.save()
def create_lesson(): Lesson.objects.bulk_create( [Lesson(name="レッスンテスト", number=1, description="レッスンだけ")])