def create_data_course(): role_teacher = Role.objects(name='teacher').first() list_teacher = User.objects(role=role_teacher) role_student = Role.objects(name='student').first() list_student = User.objects(role=role_student) list_shift = Shift.objects.all() Course(id_course="SD-001", name="Word - Excel - Power Point", tuition=120, teacher=list_teacher[0], shift=list_shift[0]).save() Course(id_course="DB-001", name="DataBase System", tuition=199, teacher=list_teacher[1], shift=list_shift[1]).save() Course(id_course="WEB-001", name="Web Interface", tuition=149, teacher=list_teacher[2], shift=list_shift[2]).save() Course(id_course="JAVA-001", name="Java Application", tuition=299, teacher=list_teacher[3], shift=list_shift[0]).save() Course(id_course="RJ-001", name="React - Redux JavaScript", tuition=289, teacher=list_teacher[4], shift=list_shift[2]).save()
def validate_id_course(self, id_course): if current_user.user.role.name == 'admin' or current_user.user.role.name == 'academic': course = Course.objects(id_course=id_course.data).first() if course: raise ValidationError( 'That username is taken. Please choose a different one.') else: raise ValidationError( 'You\'re not a member of system. Please contact to manager.')
def remove_student(id_course, id): if current_user.is_authenticated: course = Course.objects(id=id_course).first() for item in course.list_student: if str(item.id) == id: course.list_student.pop(course.list_student.index(item)) flash('Remove student success!', 'success') course.save() break return redirect(url_for('educate.educate_info', id=str(id_course))) return redirect(url_for('users.login'))
def create(): activate = list(range(10)) activate[3] = "active" if current_user.is_authenticated: form = CreateCourseForm() if form.validate_on_submit(): id_course = form.id_course.data course = Course.objects(id_course=id_course).first() if course is None: name = form.name.data start_date = form.start_date.data finish_date = form.finish_date.data tuition = float(form.tuition.data) shift = Shift.objects(name=form.shift.data).first() role_teacher = Role.objects(name='teacher').first() list_teacher = User.objects(role=role_teacher, is_activate=True) for item in list_teacher: if item.first_name + ' ' + item.last_name == form.teacher.data: teacher = item break course = Course(id_course=id_course, name=name, start_date=start_date, finish_date=finish_date, tuition=tuition, shift=shift, teacher=teacher) course.save() flash('Course has been created!', 'success') return redirect(url_for('educate.educate_info', id=course.id)) flash('Course is exist!, please check again', 'danger') return redirect(url_for('educate.create')) return render_template('educate_create.html', title='Educate Create Course', activate=activate, form=form) return redirect(url_for('users.login'))
def index(): if current_user.is_authenticated: activate = list(range(10)) activate[0] = "active" courses = Course.objects(start_date__gte=date.today()).limit(10) now = date.today() return render_template('index.html', title="Dashboard", activate=activate, courses=courses, now=now) return redirect(url_for('users.login'))
def remove_course(id): if current_user.is_authenticated: course = Course.objects(id=id).first() if course is None: flash('Can\'t find out course. Please contact admin!', 'danger') return redirect(url_for('educate.index', page=1)) if len(course.list_student) > 0: flash( 'Can\'t remove course cause there are student in here. Must be remove all student before remove this course!', 'danger') return redirect(url_for('educate.index', page=1)) course.delete() return redirect(url_for('educate.index', page=1)) return redirect(url_for('users.login'))
def educate_info(id): if current_user.is_authenticated: activate = list(range(10)) activate[3] = "active" form = UpdateCourseForm() if id is None: return redirect(url_for('educate.index')) course = Course.objects(id=id).first_or_404() if form.validate_on_submit(): role_teacher = Role.objects(name='teacher').first() list_teacher = User.objects(role=role_teacher, is_activate=True) course.name = form.name.data course.start_date = form.start_date.data course.finish_date = form.finish_date.data course.tuition = float(form.tuition.data) shift = Shift.objects(name=form.shift.data).first() course.shift = shift for item in list_teacher: if item.first_name + ' ' + item.last_name == form.teacher.data: course.teacher = item break if form.status.data == 'True': course.status = True else: course.status = False course.save() flash('Course has been updated!', 'success') return redirect(url_for('educate.educate_info', id=id)) elif request.method == 'GET': form.id_course.data = course.id_course form.name.data = course.name form.start_date.data = course.start_date form.finish_date.data = course.finish_date form.tuition.data = course.tuition form.shift.data = course.shift.name form.teacher.data = course.teacher.first_name + ' ' + course.teacher.last_name form.status.data = course.status TuitionReceipts = TuitionReceipt.objects(course=course) return render_template('educate_info.html', title='Educate Info', activate=activate, form=form, students=course.list_student, id_course=id, TuitionReceipts=TuitionReceipts) return redirect(url_for('users.login'))
def get_course(id): if current_user.is_authenticated: activate = list(range(10)) activate[3] = "active" course = Course.objects(id=id).first() if course: response = { 'status': True, 'message': 'Get Course Success', 'data': course } else: response = { 'status': False, 'message': 'Get Course Failed', 'data': None } return response
def create_receipt(id): activate = list(range(10)) activate[1] = "active" if current_user.is_authenticated: user = User.objects(id=id, is_activate=True).first() form = AddStudentToClass() if id is None or user is None: return redirect(url_for('student.index')) if form.validate_on_submit(): id_course = form.course.data course = Course.objects(id=id_course).first() reservate_tuition = float(form.reservate_tuition.data) tuition_left = course.tuition - reservate_tuition money_return = 0 status = False if tuition_left <= 0: status = True money_return = -1 * tuition_left tuition_left = 0 if course is None: flash('Can\'t find class, please inform to admin!', 'danger') return redirect(url_for('student.create_receipt', id=id)) list_detail_tuition = list() course.list_student.append(user) if len(course.list_student) > 5: course.status = True course.save() detail_receipt = DetailTuitionReceipt( tuition=reservate_tuition, money_return=money_return, created_user=current_user.user).save() list_detail_tuition.append(detail_receipt) receipt = TuitionReceipt(student=user, course=course, reservate_tuition=reservate_tuition, tuition_left=tuition_left, list_detail=list_detail_tuition, status=status).save() flash('Receipt has been created!', 'success') return redirect(url_for('student.student_info', id=id)) # list_course = Course.objects.all() # form.course_choices = [(str(c['id']), c['id_course']) for c in list_course if c.finish_date >= datetime.utcnow()] # list_shift = Shift.objects.all() # form.shift_choices = [(str(c['id']), c['name']) for c in list_shift] form.first_name.data = user.first_name form.last_name.data = user.last_name form.phone.data = user.phone form.email.data = user.email form.address.data = user.address form.birth.data = user.birth form.gender.data = user.gender form.reservate_tuition.data = 0 form.money_return.data = 0 return render_template('student_create_receipt.html', title='Student Info', activate=activate, student=user, form=form) return redirect(url_for('users.login'))
def get_course_keyword(keyword): if keyword is not None: if keyword == 'all': course = Course.objects( is_activate=True).order_by('finish_date').limit(10) list_course = list() for item in course: ele = { "id": str(item.id), "created_date": item.created_date.strftime("%m-%d-%Y"), "finish_date": item.finish_date.strftime("%m-%d-%Y"), "id_course": item.id_course, "is_activate": item.status, "name": item.name, "shift": item.shift.name, "start_date": item.start_date.strftime("%m-%d-%Y"), "status": item.status, "teacher": item.teacher.first_name + ' ' + item.teacher.last_name, "tuition": item.tuition } list_course.append(ele) if list_course: response = { 'status': True, 'message': 'Get Course Success', 'data': list_course } else: response = { 'status': False, 'message': 'Get Course Failed', 'data': None } else: course = Course.objects(is_activate=True, id_course__istartswith=keyword).limit(5) list_course = list() for item in course: ele = { "id": str(item.id), "created_date": item.created_date.strftime("%m-%d-%Y"), "finish_date": item.finish_date.strftime("%m-%d-%Y"), "id_course": item.id_course, "is_activate": item.is_activate, "name": item.name, "shift": item.shift.name, "start_date": item.start_date.strftime("%m-%d-%Y"), "status": item.status, "teacher": item.teacher.first_name + ' ' + item.teacher.last_name, "tuition": item.tuition } list_course.append(ele) course = Course.objects(is_activate=True, name__istartswith=keyword).limit(5) for item in course: flag = False for i in list_course: if i['id'] == str(item.id): flag = True break if flag == False: ele = { "id": str(item.id), "created_date": item.created_date.strftime("%m-%d-%Y"), "finish_date": item.finish_date.strftime("%m-%d-%Y"), "id_course": item.id_course, "is_activate": item.is_activate, "name": item.name, "shift": item.shift.name, "start_date": item.start_date.strftime("%m-%d-%Y"), "status": item.status, "teacher": item.teacher.first_name + ' ' + item.teacher.last_name, "tuition": item.tuition } list_course.append(ele) if list_course: response = { 'status': True, 'message': 'Get Course Success', 'data': list_course } else: response = { 'status': False, 'message': 'Get Course Failed', 'data': None } else: response = { 'status': False, 'message': 'Get Course Failed', 'data': None } return response