예제 #1
0
    def handle(self, *args, **options):

        # process arguments
        module_code = args[0]
        wb_file = os.path.join(XLS_ROOT, args[1])

        # open workbook
        wb = xlrd.open_workbook(wb_file)

        # get first sheet
        ws = wb.sheet_by_index(0)

        # iterate over rows (ignore first)
        curr_row = 0
        while curr_row < ws.nrows - 1:
            curr_row += 1
            if ws.cell_type(curr_row, 0) == 1:
                sid = ws.cell_value(curr_row, 0)
                u = User(username=sid)
                if ws.cell_type(curr_row, 1) == 1:
                    u.last_name = ws.cell_value(curr_row, 1)
                if ws.cell_type(curr_row, 2) == 1:
                    u.first_name = ws.cell_value(curr_row, 2)
                if ws.cell_type(curr_row, 3) == 1:
                    u.email = ws.cell_value(curr_row, 3)
                u.save()
                s = Student(user=u)
                s.nickname = ws.cell_value(curr_row, 3)
                s.save()
    def handle(self, *args, **kwargs):
        count = kwargs['count']
        for i in range(count):
            u = User(username=f'new_user00{i}', password='******')
            u.save()
            p = Profile.objects.get(user=u)
            p.user = u
            p.first_name = 'SchoolStudent'
            p.last_name = str(i)
            p.birthdate = generate_birthdate()
            p.date_joined = generate_birthdate()
            p.status = 'S'
            p.save()

            s = Student(
                profile=p,
                class_joined=random.randint(1, 5),
                current_class=random.randint(6, 10),
                class_passed=False,
            )
            s.save()
            s.current_teachers.add(get_teacher())
            s.save()

        self.stdout.write(self.style.SUCCESS('Students Created Successfully'))
예제 #3
0
	def handle(self, *args, **options):		

		# process arguments
		module_code = args[0]
		wb_file = os.path.join(XLS_ROOT, args[1])

		# open workbook
		wb = xlrd.open_workbook(wb_file)

		# get first sheet
		ws = wb.sheet_by_index(0)
		
		# iterate over rows (ignore first)
		curr_row = 0	
		while curr_row < ws.nrows - 1:
			curr_row += 1
			if ws.cell_type(curr_row, 0) == 1:
				sid = ws.cell_value(curr_row, 0)
				u = User( username=sid )
				if ws.cell_type(curr_row, 1) == 1:
					u.last_name = ws.cell_value(curr_row, 1)
				if ws.cell_type(curr_row, 2) == 1:
					u.first_name = ws.cell_value(curr_row, 2)
				if ws.cell_type(curr_row, 3) == 1:
					u.email = ws.cell_value(curr_row, 3)
				u.save()
				s = Student( user=u )
				s.nickname = ws.cell_value(curr_row, 3)
				s.save()
예제 #4
0
def create_student():
    try:
        name = input('请输入学生姓名: ').strip()
        age = input('请输入学生年龄: ').strip()
        qq = input('请输入学生qq号码: ').strip()
        student_name_list = [obj['name'] for obj in Student.get_all_obj_list()]
        if name in student_name_list:
            raise Exception('\033[43;1m学生[%s] 已经存在,不可重复创建\033[0m' % (name))
        classes_list = Classes.get_all_obj_list()
        for k, obj in enumerate(classes_list):
            print('%s [%s][%s]校区 班级[%s]'.center(60, '-') \
                  % (k, obj['school_nid'].get_obj_by_uuid(settings.SCHOOL_DB_DIR )['name'],\
                     obj['school_nid'].get_obj_by_uuid(settings.SCHOOL_DB_DIR )['addr'], \
                     obj['name']))
        id = int(input('请选择班级: '))
        class_obj = classes_list[id]
        obj = Student(name, age, qq, class_obj['nid'])
        obj.save()
        status = True
        error = ''
        data='\033[33;1m学生 名字[%s] 年龄[%s] qq[%s] 班级[%s] 创建成功\033[0m' \
             %(obj.name,obj.age,obj.qq,obj.classes_nid.get_obj_by_uuid(settings.CLASSES_DB_DIR )['name'])
        print(data)
    except Exception as e:
        status = False
        error = str(e)
        print('error: %s' % error)
        data = ''
    return {'status': status, 'error': error, 'data': data}
예제 #5
0
    def signup(self, request, user):
        user.first_name = self.cleaned_data['first_name']
        user.last_name = self.cleaned_data['last_name']
        user.save()

        student = Student()
        student.user = user
        student.save()
예제 #6
0
def create_student():
    try:
        print('创建学生'.center(60, '='))
        name = input("请输入姓名: ").strip()
        age = input("请输入年龄: ").strip()
        if name == '' or age == '':
            raise Exception("输入不能为空")
        if age.isdigit():
            age = int(age)
        else:
            raise Exception("年龄应该是数字")
        student_name_list = [obj.name for obj in Student.get_all_obj_list()]
        if name in student_name_list:
            raise Exception("学生[%s]已存在" % name)

        school_list = School.get_all_obj_list()
        for k, obj in enumerate(school_list):
            print(k, '[%s] [%s]校区' % (obj.name, obj.addr))
        s_sid = input("请选择学校:")
        if s_sid.isdigit():
            s_sid = int(s_sid)
            if s_sid >= len(school_list):
                raise Exception("输入的学校不存在")
        else:
            raise Exception("输入的学校不存在")

        classes_list = Classes.get_all_obj_list()
        for k, obj in enumerate(classes_list):
            print(k, obj.name,
                  '[%s]校区' % (obj.school_nid.get_obj_by_nid().addr))
        sid = input("请选择班级:")
        if sid.isdigit():
            sid = int(sid)
            if sid >= len(classes_list):
                raise Exception("输入的班级不存在")
        else:
            raise Exception("输入的班级不存在")
        if school_list[s_sid].nid.nid != classes_list[sid].school_nid.nid:
            raise Exception("[%s][%s]校区没有 [%s]班级" %
                            (school_list[s_sid].name, school_list[s_sid].addr,
                             classes_list[sid].name))

        print(
            "学费为: ", classes_list[sid].course_to_teacher_list_nid.
            get_obj_by_nid().course_nid.get_obj_by_nid().price)
        obj = Student(name, age, classes_list[sid].nid)
        obj.save()
        status = True
        error = ''
        data = '\033[33;1m学生[%s] 创建成功\033[0m' % name
    except Exception as e:
        status = False
        error = str(e)
        data = ''

    return {'status': status, 'error': error, 'data': data}
예제 #7
0
def main(args):
    """ Iterate through assistants and scrap their moodle """
    if len(args) < 1:
        todos = Assistant.objects.all()
    else:
        todos = []
        for a in args[1:]:
            try:
                assistant = Assistant.objects.get(pk=int(a))
                todos.append(assistant)
            except: 
                sys.stderr.write('Could not load assistant: %s' % a)
    
    # Execute todos
    for a in todos:
        if not a.is_updater:
            continue
        
        session = MoodleSession(str(a.moodle_url))
        session.set_verbosity(0)
        try:
            session.login(a.moodle_user, a.moodle_password)
        except LoginError:
            sys.stderr.write("Failed to connect.\n")
            sys.exit(1)
        
        if not session.answered("Overview of my courses"):
            sys.stderr.write("Unexpected page (%d bytes)\n" % len(session.body()))
            sys.exit(-2)
        else:
            course_id = int(a.moodle_course_id)
            try:
                course = Course.objects.get(external_id=course_id)
            except:
                courses = session.list_courses()
                course = None
                for c in courses:
                    if c[0] == course_id:
                        course = Course(external_id=course_id, title=c[1], name=''.join([chr[0] for chr in c[1].split(' ')]))
                        course.save()
                        break
                if course is None:
                    sys.stderr.write("Could not get course: %d " % course_id)
                    continue
                
            groups = session.list_groups(int(a.moodle_course_id))
            
            for key,g in groups.items():
                for user in g['users']:
                    try:
                        student = Student.objects.get(external_id=user[0])
                    except:
                        student = Student(external_id=user[0])
                        
                    if student.first_name != user[1] or \
                        student.avatar != user[2] or \
                        student.group != g['name']:
                            student.first_name = user[1]
                            student.avatar = user[2]
                            student.group = g['name']
                            student.save()
                            
                    if course.students.filter(id=student.id).count() == 0:
                        # Add student to course
                        course.students.add(student)
            # Assign the current assistant to the newly created course:
            a.courses.add(course)
            
            print "Updated course: ", a.moodle_course_id, " for ", a
예제 #8
0
def main(args):
    """ Iterate through assistants and scrap their moodle """
    if len(args) < 1:
        todos = Assistant.objects.all()
    else:
        todos = []
        for a in args[1:]:
            try:
                assistant = Assistant.objects.get(pk=int(a))
                todos.append(assistant)
            except:
                sys.stderr.write('Could not load assistant: %s' % a)

    # Execute todos
    for a in todos:
        if not a.is_updater:
            continue

        session = MoodleSession(str(a.moodle_url))
        session.set_verbosity(0)
        try:
            session.login(a.moodle_user, a.moodle_password)
        except LoginError:
            sys.stderr.write("Failed to connect.\n")
            sys.exit(1)

        if not session.answered("Overview of my courses"):
            sys.stderr.write("Unexpected page (%d bytes)\n" %
                             len(session.body()))
            sys.exit(-2)
        else:
            course_id = int(a.moodle_course_id)
            try:
                course = Course.objects.get(external_id=course_id)
            except:
                courses = session.list_courses()
                course = None
                for c in courses:
                    if c[0] == course_id:
                        course = Course(
                            external_id=course_id,
                            title=c[1],
                            name=''.join([chr[0] for chr in c[1].split(' ')]))
                        course.save()
                        break
                if course is None:
                    sys.stderr.write("Could not get course: %d " % course_id)
                    continue

            groups = session.list_groups(int(a.moodle_course_id))

            for key, g in groups.items():
                for user in g['users']:
                    try:
                        student = Student.objects.get(external_id=user[0])
                    except:
                        student = Student(external_id=user[0])

                    if student.first_name != user[1] or \
                        student.avatar != user[2] or \
                        student.group != g['name']:
                        student.first_name = user[1]
                        student.avatar = user[2]
                        student.group = g['name']
                        student.save()

                    if course.students.filter(id=student.id).count() == 0:
                        # Add student to course
                        course.students.add(student)
            # Assign the current assistant to the newly created course:
            a.courses.add(course)

            print "Updated course: ", a.moodle_course_id, " for ", a