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()
Exemple #2
0
 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.')
Exemple #3
0
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'))
Exemple #4
0
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'))
Exemple #5
0
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'))
Exemple #6
0
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'))
Exemple #7
0
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'))
Exemple #8
0
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
Exemple #9
0
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'))
Exemple #10
0
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