Ejemplo n.º 1
0
def update_plan(ptype,CourseId,Yardid,Coach_id,BeginDate,EndDate,WorkTime,OffTime,WeekSchedule_list_or_str,updater):
    session = database.get_session()
    updatedict = {'BeginDate':BeginDate,'EndDate':EndDate,'Modifier':updater,'LastUpdateDate':datetime.now()}
    if CourseId:
        c = Course()
        c.CourseId = CourseId
        updatedict.update({'Course':[c]})
    if Yardid:
        y = Yard()
        y.Yardid = Yardid
        updatedict.update({'Yard':[y]})
    if Coach_id:
        m = Member()
        m.UserId = Coach_id
        updatedict.update({'Coach':[m]})
    if WorkTime:
        updatedict.update({'WorkTime':WorkTime})
    if OffTime:
        updatedict.update({'OffTime':OffTime})
    if WeekSchedule_list_or_str:
        if ptype=='a':
            s = ''
            for e in WeekSchedule_list_or_str:
                s+= '&'.join(e)+'^'
            updatedict.update({'WeekSchedule':s.strip('^')})
        elif ptype=='b':
            updatedict.update({'WeekSchedule':WeekSchedule_list_or_str})
        else:
            pass
    session.query(Course).filter(Course.CourseId == CourseId).update(updatedict)
    session.commit()
    session.close()
    
Ejemplo n.º 2
0
def create_plan(PlanType,CourseId,Yardid,BeginDate,EndDate,WorkTime,OffTime,WeekSchedule_list_or_str,creator):
    session = database.get_session()
    p = Plan()
    p.PType = PlanType.strip()
    c = Course()
    c.CourseId = CourseId
    p.Course.append(c)
    y = Yard()
    y.Yardid = Yardid
    p.Yard.append(y)
    p.BeginDate = BeginDate
    p.EndDate = EndDate
    if PlanType.strip() == 'a': #团课
        s = ''
        for e in WeekSchedule_list_or_str:
            s+= '&'.join(e)+'^'
        p.WeekSchedule = s.strip('^')
    elif PlanType.strip() == 'b':  #私教
        p.WorkTime = WorkTime
        p.OffTime = OffTime
        p.WeekSchedule = WeekSchedule_list_or_str
    else:
        pass
    p.Creator = creator
    p.CreateDate = datetime.now()
    session.add(p)
    session.commit()
    session.close()
Ejemplo n.º 3
0
def create_course():
    try:
        print('创建课程'.center(60, '='))
        school_list = School.get_all_obj_list()
        for k, obj in enumerate(school_list):
            print(k, obj, obj.addr)
        sid = int(input('请选择学校: '))
        school_obj = school_list[sid]

        name = input('请输入课程名: ').strip()
        price = input('请输入课程价格: ').strip()
        period = input('请输入课程周期: ').strip()

        course_name_list = [(obj.name, obj.school_nid.uuid)
                            for obj in Course.get_all_obj_list()]
        if (name, school_obj.nid.uuid) in course_name_list:
            raise Exception('\033[43;1m课程[%s] 已经存在,不可重复创建\033[0m' % (name))
        obj = Course(name, price, period, school_obj.nid)
        obj.save()
        status = True
        error = ''
        data = '\033[33;1m课程[%s] 价格[%s] 周期[%s]创建成功\033[0m' % (
            obj.name, obj.price, obj.period)
    except Exception as e:
        status = False
        error = str(e)
        data = ''
    return {'status': status, 'error': error, 'data': data}
Ejemplo n.º 4
0
def create_course():
    print('=================创建课程======================')
    school_list = School.get_all_list()
    for k, obj in enumerate(school_list, 1):
        print(k, obj)
    sid = input('请选择学校:')
    sid = int(sid)
    school_obj = school_list[sid - 1]
    name = input('请输入课程名称:')
    price = input('请输入课程价格:')
    period = input('请输入课程周期:')

    obj = Course(name, price, period, school_obj.nid)
    obj.save()
    print('课程【%s】创建成功' % name)
Ejemplo n.º 5
0
def fakeCourse():
    faker = Faker()
    for inx in range(1, 51):
        course = Course(name=faker.name(), desc=faker.text())
        db.session.add(course)

    db.session.commit()
Ejemplo n.º 6
0
def show_course():
    for obj in Course.get_all_obj_list():
        # print('\033[33;1m[%s] [%s]校区 [%s]课程 价格[%s] 周期[%s]\033[0m'.center(60,'-') \
        #       %(obj.school_nid.get_obj_by_uuid().name,\
        #         obj.school_nid.get_obj_by_uuid().addr,\
        #         obj.name,obj.price,obj.period))
        print('\033[33;1m[%s]课程 价格[%s] 周期[%s]\033[0m'.center(60,'-') \
              %(obj.name,obj.price,obj.period))
Ejemplo n.º 7
0
def create_course(CourseType,Name,Duration,Amount,HourFee,Comment,Description,creator,Coach_id=None):
    session = database.get_session()
    p = Course()
    p.CType = CourseType.strip()
    p.Name = Name.strip()
    p.Duration = int(Duration)
    p.Amount = int(Amount)
    if Coach_id:
        m = Member()
        m.UserId = Coach_id
        p.Coach.append(m)
    p.HourFee = int(HourFee)
    p.Comment = Comment.strip()
    p.Description = Description.strip()
    p.Creator = creator
    p.CreateDate = datetime.now()
    session.add(p)
    session.commit()
    session.close()
Ejemplo n.º 8
0
def create_course_to_teacher():
    try:
        print('关联教师与课程'.center(60, '='))

        course_list = Course.get_all_obj_list()
        for k, obj in enumerate(course_list):
            print(
                k, '课程[%s] ([%s] [%s]校区)' %
                (obj.name, obj.school_nid.get_obj_by_uuid().name,
                 obj.school_nid.get_obj_by_uuid().addr))
        cid = int(input("请选择课程:"))
        course_obj = course_list[cid]

        teacher_list = Teacher.get_all_obj_list()
        teacher_list_selection = []
        k = 0
        for obj in teacher_list:
            if obj.school_nid.uuid == course_obj.school_nid.uuid:
                print(
                    k, obj.name,
                    '[%s] [%s]校区' % (obj.school_nid.get_obj_by_uuid().name,
                                     obj.school_nid.get_obj_by_uuid().addr))
                teacher_list_selection.append(obj)
                k += 1
        if k == 0:
            raise Exception('\033[31;1m该学校还未有合适的教师\033[0m')
        else:
            tid = int(input("请选择教师:"))
        teacher_obj = teacher_list_selection[tid]

        course_to_teacher_list = [
            (obj.course_nid.uuid, obj.teacher_nid.uuid)
            for obj in Course_to_teacher.get_all_obj_list()
        ]
        if (course_obj.nid.uuid,
                teacher_obj.nid.uuid) in course_to_teacher_list:
            raise Exception(
                '\033[31;1m教师[%s] 已与课程[%s]([%s] [%s]校区)关联,不可重复创建\033[0m' %
                (teacher_obj.name, course_obj.name,
                 course_obj.school_nid.get_obj_by_uuid().name,
                 course_obj.school_nid.get_obj_by_uuid().addr))
        obj = Course_to_teacher(course_obj.nid, teacher_obj.nid)
        obj.save()
        status = True
        error = ''
        data='\033[33;1m教师[%s] 与课程[%s]([%s] [%s]校区)关联 创建成功\033[0m' \
             % (teacher_obj.name, course_obj.name, course_obj.school_nid.get_obj_by_uuid().name,
                course_obj.school_nid.get_obj_by_uuid().addr)

    except Exception as e:
        status = False
        error = str(e)
        data = ''
    return {'status': status, 'error': error, 'data': data}
Ejemplo n.º 9
0
    def course_add(self, *args):
        """
        增加课程
        :param args:
        :return:
        """

        if self.classes_list():
            class_id = self.format.input_str_format("请输入班级ID号")
            try:
                name = self.format.input_str_format("请输入课程名")
                course_oj = Course(name=name, classes_id=class_id)

                self.session_add(course_oj)
                self.logger.debug("课程[%s]增加成功" % name)
            except:
                self.logger.error("你输入的班级号不存在!")
Ejemplo n.º 10
0
def create_course_to_teacher():
    print('=================创建课程与老师对应关系======================')
    course_list = Course.get_all_list()
    for k, obj in enumerate(course_list, 1):
        print(k, obj)
    course_inp = input('请选择课程:')
    course_obj = course_list[int(course_inp) - 1]

    teacher_list = Teacher.get_teacher_list()
    for k, obj in enumerate(teacher_list, 1):
        print(k, obj)
    teacher_inp = input('请选择老师:')
    teacher_obj = teacher_list[int(teacher_inp) - 1]
    obj = CourseToTeacher(course_obj.nid, teacher_obj.nid)
    obj.save()
    print('课程名称:%s,已选老师为:%s' %
          (course_obj.courseName, teacher_obj.teacherName))
Ejemplo n.º 11
0
def create_course():
    if request.method == 'POST':
        course_name = request.form.get('course_name')
        course_description = request.form.get('description')
        visible = request.form.get('visible')

        if visible:
            visible = True
        else:
            visible = False

        file = request.files['file']
        filename = secure_filename(file.filename)
        if filename == "" or filename is None:
            filename = "course.png"
        else:
            filename = str(uuid.uuid4()) + "_" + filename
            path_to_file = os.path.join(app.config['UPLOAD_FOLDER_IMAGE'] +
                                        filename)
            file.save(path_to_file)

        new_course = Course(name=course_name,
                            description=course_description,
                            visible=visible,
                            rating=0,
                            image_name=filename)
        db.session.add(new_course)
        db.session.commit()

        current_user.created_courses.append(new_course)
        db.session.add(current_user)
        db.session.commit()

        return redirect(url_for('all_courses'))
    else:
        return render_template("course/create.html")
Ejemplo n.º 12
0
def show_course():
    print('=====查看课程=====')
    course_list = Course.get_all_list()
    for item in course_list:
        print(item.courseName, item.coursePrice, item.coursePeriod,
              item.schoolId.get_obj_by_uuid())
Ejemplo n.º 13
0
# vim: ts=4:sw=4:expandtabs

__author__ = '*****@*****.**'

from src.models import Course

__all__ = ['course']


course = Course('The First Course', [
   'courses.first_course.Hole1',
   'courses.first_course.Hole2',
   'courses.first_course.Hole3',
   'courses.first_course.Hole4',
   'courses.first_course.Hole5',
   'courses.first_course.Hole6',
   'courses.first_course.Hole7',
   'courses.first_course.Hole8',
   'courses.first_course.Hole9',
   'courses.first_course.Hole10',
   'courses.first_course.Hole11',
   'courses.first_course.Hole12',
   'courses.first_course.Hole13',
])
def get_course_list():
    show(Course.get_all())
def get_course_list():

    Course.get_all()
Ejemplo n.º 16
0
    def data_prepare(self):
        if not self.app.debug or self.app.config['ENV_NAME'] == 'prd':
            # only running in debug mode and not in prd environment
            return

        with session_scope(db) as session:
            pid = os.getpid()
            r = session.query(SysControl).filter(
                SysControl.current_pid == pid).one_or_none()
            if r:
                # one process only run once
                return

            c_ap = Curriculum(full_name='AP', updated_by=str(pid), state=98)
            session.add(c_ap)
            c_ib = Curriculum(full_name='IB', updated_by=str(pid), state=98)
            session.add(c_ib)
            session.flush()
            self.logger.debug(c_ap)
            self.logger.debug(c_ib)
            sc = SubjectCategory(subject_category='history',
                                 updated_by=str(pid),
                                 state=98)
            session.add(sc)
            session.flush()
            self.logger.debug(sc)
            s_ap_history = Subject(subject_name='AP_history_grade_9',
                                   curriculum_id=c_ap.id,
                                   state=98,
                                   subject_category_id=sc.id,
                                   updated_by=str(pid))
            session.add(s_ap_history)
            s_ib_history = Subject(subject_name='IB_history_grade_9',
                                   curriculum_id=c_ib.id,
                                   state=98,
                                   subject_category_id=sc.id,
                                   updated_by=str(pid))
            session.add(s_ib_history)
            session.flush()
            self.logger.debug(s_ap_history)
            self.logger.debug(s_ib_history)
            teacher_name = random_username()
            self.register(teacher_name, 'Teacher')
            t = session.query(Teacher).filter(
                Teacher.username == teacher_name).one_or_none()
            self.logger.debug(t)
            cs_ap_history = Course(course_name='T1_AP_history_grade_9',
                                   course_type=1,
                                   class_type=1,
                                   classes_number=80,
                                   state=98,
                                   price=900000,
                                   primary_teacher_id=t.id,
                                   subject_id=s_ap_history.id,
                                   updated_by=str(pid))
            session.add(cs_ap_history)
            cs_ib_history = Course(course_name='T1_IB_history_grade_9',
                                   course_type=2,
                                   class_type=1,
                                   classes_number=60,
                                   state=98,
                                   price=800000,
                                   primary_teacher_id=t.id,
                                   subject_id=s_ib_history.id,
                                   updated_by=str(pid))
            session.add(cs_ib_history)
            session.flush()
            self.logger.debug(cs_ap_history)
            self.logger.debug(cs_ib_history)
            cs_s_ap = CourseSchedule(start=datetime.now(),
                                     end=(datetime.now() + timedelta(days=90)),
                                     state=98,
                                     course_id=cs_ap_history.id,
                                     updated_by=str(pid))
            session.add(cs_s_ap)
            cs_s_ib = CourseSchedule(start=datetime.now(),
                                     end=(datetime.now() + timedelta(days=90)),
                                     state=98,
                                     course_id=cs_ib_history.id,
                                     updated_by=str(pid))
            session.add(cs_s_ib)
            session.flush()
            self.logger.debug(cs_s_ap)
            self.logger.debug(cs_s_ib)
            # add channel
            channel = Channel(channel_name=str(pid),
                              state=1,
                              updated_by=str(pid))
            session.add(channel)
            session.flush()
            # add order
            order = Order(updated_by=str(pid),
                          channel_id=channel.id,
                          student_id=self.test_student_id,
                          course_id=cs_ib_history.id,
                          order_type=1,
                          order_desc='',
                          state=1,
                          payment_state=1,
                          amount=1000000,
                          discount=10,
                          promotion='')
            session.add(order)
            session.flush()
            # finally add the control record of this pid
            sys_control = SysControl(current_pid=pid)
            session.add(sys_control)
            session.flush()
            self.logger.debug(sys_control)
Ejemplo n.º 17
0
def show_course():
    print('=================查看课程======================')
    course_list = Course.get_all_list()
    for item in course_list:
        print(item)
Ejemplo n.º 18
0
def show_course():
    for obj in Course.get_all_obj_list():
        print('\033[33;1m[%s] [%s]校区 [%s]课程 价格[%s] 周期[%s]\033[0m' %
              (obj.school_nid.get_obj_by_uuid().name,
               obj.school_nid.get_obj_by_uuid().addr, obj.name, obj.price,
               obj.period))
Ejemplo n.º 19
0
def establish():
    """
    swagger-doc: 'establish'
    required: []
    req:
      order_type:
        description: '订单类型'
        type: 'string'
      have_course:
        description: '存在课包:1,不存在:0'
        type: 'integer'
      course_id:
        description: '课程包id'
        type: 'integer'
      student:
        description: '学生账号或id'
        type: 'string'
      subject_id:
        description: '第三节分类id'
        type: 'integer'
      course_type:
        description: '1:公共,2在线'
        type: 'integer'
      class_type:
        description: '班级,常量'
        type: 'integer'
      project_type:
        description: '班级,常量'
        type: 'integer'
      teacher:
        description: '教师账号或id'
        type: 'string'
      classes_number:
        description: '课程节数'
        type: 'integer'
      basic_amount:
        description: '基本价格'
        type: 'integer'
      amount:
        description: '金额'
        type: 'integer'
      order_desc:
        description: '订单描述'
        type: 'string'
    res:
      id:
        description: 'order id'
        type: 'string'
    """
    order_type = request.json['order_type']
    course_id = '0'
    if 'course_id' in request.json:
        course_id = request.json['course_id']
    student_parm = request.json['student']

    amount = request.json['amount']
    order_desc = request.json['order_desc']

    with session_scope(db) as session:
        if student_parm.isdigit():
            student = session.query(Student).filter_by(
                id=student_parm).one_or_none()
        else:
            student = session.query(Student).filter_by(
                username=student_parm).one_or_none()

        if student is None:
            return jsonify(
                {"error": "not found student:{0} ".format(student_parm)}), 500

        student_id = getattr(student, 'id')

        if 'course_id' in request.json:

            order1s = session.query(Order).filter_by(
                course_id=course_id,
                student_id=student_id,
                state=98,
                delete_flag='IN_FORCE').all()

            if len(order1s) > 0:
                return jsonify({"error": "Student already have orders."}), 500

        if 'have_course' in request.json and request.json['have_course'] == 0:

            teacher_parm = request.json['teacher']
            course_type = request.json['course_type']
            class_type = request.json['class_type']
            # project_type = request.json['project_type']

            classes_number = request.json['classes_number']
            basic_amount = request.json['basic_amount']
            subject_id = request.json['subject_id']

            subject = session.query(Subject).filter_by(
                id=subject_id).one_or_none()

            if subject is None:
                return jsonify(
                    {"error":
                     "not found subject: {0}".format(subject_id)}), 500

            if teacher_parm.isdigit():
                teacher = session.query(Teacher).filter_by(
                    id=teacher_parm).one_or_none()
            else:
                teacher = session.query(Teacher).filter_by(
                    username=teacher_parm).one_or_none()

            subject = session.query(Subject).filter_by(
                id=subject_id).one_or_none()

            if teacher is None:
                return jsonify(
                    {"error":
                     "not found teacher: {0}".format(teacher_parm)}), 500

            teacher_id = getattr(teacher, 'id')

            course_name = getattr(subject, 'subject_name')

            course_name_zh = getattr(subject, 'subject_name_zh')

            course = Course(course_type=course_type,
                            class_type=class_type,
                            classes_number=classes_number,
                            course_desc=order_desc,
                            state=98,
                            price=basic_amount,
                            primary_teacher_id=teacher_id,
                            subject_id=subject_id,
                            course_name=course_name,
                            course_name_zh=course_name_zh,
                            delete_flag='IN_FORCE',
                            updated_by=getattr(
                                g, current_app.config['CUR_USER'])['username'])

            session.add(course)
            session.flush()

            amount = int(classes_number) * int(basic_amount)

            course_id = getattr(course, 'id')

        course = session.query(Course).filter_by(id=course_id).one_or_none()

        if course.class_type == 2:
            orders = session.query(Order).filter_by(
                course_id=course_id, state=98, delete_flag='IN_FORCE').all()

            if len(orders) >= course.class_type:
                return jsonify({"error": "class_type error"}), 500

        sourseSchedules = session.query(CourseSchedule).filter_by(
            course_id=course_id, state=98, delete_flag='IN_FORCE').all()

        if sourseSchedules is not None and len(sourseSchedules) > 0:
            return jsonify({
                "error":
                "found order {0} have sourse schedules".format(course_id)
            }), 500

        order = Order(
            order_type=order_type,
            order_desc=order_desc,
            amount=amount,
            discount=amount,
            promotion=course_id,
            student_id=student_id,
            course_id=course_id,
            payment_state=1,
            channel_id=1,
            state=98,
            delete_flag='IN_FORCE',
            updated_by=getattr(g, current_app.config['CUR_USER'])['username'],
            created_by=getattr(g, current_app.config['CUR_USER'])['id'])

        result = session.add(order)
        session.flush()

        order_id = getattr(order, 'id')

        paylog = PayLog(direction=1,
                        state=98,
                        amount=amount,
                        payment_fee=amount,
                        result=amount,
                        order_id=order_id,
                        delete_flag='IN_FORCE',
                        state_reason='establish',
                        payment_method=1,
                        updated_by=getattr(
                            g, current_app.config['CUR_USER'])['username'])
        session.add(paylog)
        session.flush()

    return jsonify({'id': order_id})