Ejemplo n.º 1
0
    def stopCheckIn(self):
        if self.t != None:
            if readini.List != [] :
                r = readini()
                clist = r.readIni()
                leaveTime = clist[0][3]
                leaveTimeArray = leaveTime.split('-| | :')

                beginTime = clist[1][3]
                beginTimeArray = beginTime.split('-| | :')

                #获得时间的差值 并将其赋给计时器
                timedev = (int(beginTimeArray[3]) - int(leaveTimeArray[3])) * 3600 + (int(beginTimeArray[4]) - int(leaveTimeArray[4])) * 60 + \
                        (int(beginTimeArray[5]) - int(leaveTimeArray[5]))
                readini.List.pop(0)  # 计算后将教师踢出队列
                # 先取消上次计时后,再传入新的计时值
                self.t.cancel()
                self.t = threading.Timer(timedev,self.timeCheck)
                self.t.start()
            else:
                print '当前队列已经没有教师'
                return
        else:
            self.t = threading.Timer(10,self.timeCheck)
            self.t.start()
Ejemplo n.º 2
0
 def __init__(self):
     self.r1 = __init__.readini()
     self.t1 = teastartcheckin.teacherStartCheckIn()
     self.t2 = tearandomcheckin.teacherRandomCheckIn()
     self.t3 = teamanualcheckin.teacherManualCheckIn()
     self.s1 = stuautocheckin.stuCheckIn()
     self.s2 = studelay.stuDelay()
     self.v1 = viewatanytime.view()
Ejemplo n.º 3
0
    def __init__(self):

        self.read = readini()  # 读取配置文件
        self.t_auto_checkin = TeacherAutoCheckIn()  # 教师开始签到
        self.t_random_checkin = TeacherRandomCheckIn()  # 教师随机抽点
        self.t_manual_checkin = TeacherManualCheckIn()  # 教师手工签到
        self.s_checkin = StuCheckIn()  # 学生自动签到
        self.s_delay = StuDelay()  # 学生迟到类
        self.s_randomcheckin = StuRandomCheckin()
        self.import_data = ImportCsvData()
        self.t_delay = TDelay()
        self.t_print_sum = TeacherPrintSum()
        self.s_print_sum = StudentPrintSum()
Ejemplo n.º 4
0
    def stop_checkin(self):
        """
        do the calculation
        :return:
        """
        if self.timer != None:
            if readini.List != []:
                line = readini.List[0]
                self.manager.manage_action(line[0], line[1])
                read = readini()
                clist = read.List
                # leaveTime = clist[0]
                # leaveTimeArray = leaveTime.split('-| | :')
                # print leaveTime
                # print leaveTimeArray
                begin_time = clist[0][3]
                begin_time_array = re.split('[- :]', begin_time)

                # print beginTimeArray# 3 4 5 为时分秒

                nowtime = time.strftime('%Y-%m-%d %H:%M:%S')
                stime0 = nowtime.split(" ")
                stime1 = stime0[1].split(':')
                hourdev = int(stime1[0]) - int(begin_time_array[3])
                minutedev = int(stime1[1]) - int(begin_time_array[4])
                seconddev = int(stime1[2]) - int(begin_time_array[5])
                # print hourdev
                # print minutedev
                # print seconddev

                # 用第二位教师的开启时间和现有时间作对比dev=(100-(nowtime-t2starttime))
                # 目的是计算第二位教师的考勤剩余时间,并赋给计时器
                timedevbuffer = abs(
                    hourdev) * 3600 + minutedev * 60 + seconddev
                timedev = 100 - timedevbuffer
                print '队首教师剩余时间为', ":", timedev
                if timedev < 0:
                    return
                readini.List.pop(0)  # 计算后将教师踢出队列
                # 先取消上次计时后,再传入新的计时值
                self.timer.cancel()
                self.timer = threading.Timer(timedev, self.time_check)
                self.timer.start()
            else:
                print '当前队列已经没有教师'
                return
        else:
            self.timer = threading.Timer(100, self.time_check)
            self.timer.start()
Ejemplo n.º 5
0
    def entryList(self, TeacherID, CourseID):
        ti = Timer()  #建立一个Timer计时器的实例
        classList = []  # 设置上课的班级列表
        with open('InData/courseInfo.csv', 'rb') as courseInfo:
            reader = csv.reader(courseInfo)
            count = 0  # 设置下边追加班级时的控制变量
            reader.next()
            for cline in reader:
                if (cline[0] == str(CourseID)) & (cline[2] == str(TeacherID)):
                    classList.append(cline[3])
                    count = 1
                else:
                    pass
            if count == 0:
                print '没有上课的班级!'
                # exit(0)
                return False

        nowtime = time.strftime('%Y-%m-%d %H:%M:%S')
        messagelist = [TeacherID, CourseID, classList, nowtime]
        if readini.List:  # 列表非空 需要进行判断!
            for line in readini.List:
                if (set(classList) & set(line[2])):
                    print "班级已存在"
                    read = readini()
                    s = read.readIni()  #  从readIni中得到课程的开始时间和结束时间
                    stime0 = nowtime.split(" ")
                    stime1 = stime0[1].split(':')
                    stime = stime1[0] + stime1[1] + stime1[2]
                    if (s[0] < stime < s[1]) | (s[2] < stime <
                                                s[3]) | (s[4] < stime < s[5]):
                        readini.List.remove(line)
                        readini.List.append(messagelist)
                        print "踢出前一个教师成功,成功进入队列!"
                    else:
                        print "当前班级正在考勤!您无法开启"
                        return False
                else:
                    readini.List.append(messagelist)
                    ti.stopCheckIn()
        else:
            readini.List.append(messagelist)
            ti.startCheckTime()
Ejemplo n.º 6
0
 def enter_list(self, teacher_id, course_id):
     """to judging weather the teacher can enter the list or not"""
     class_list = self.to_first_judge(teacher_id, course_id)  # 设置上课的班级列表
     if class_list == []:
         return False
     nowtime = time.strftime('%Y-%m-%d %H:%M:%S')
     messagelist = [teacher_id, course_id, class_list, nowtime]
     if readini.List:  # 列表非空要进行判断!
         for line in readini.List:
             if line[0] != teacher_id:
                 if set(class_list) & set(line[2]):
                     print "班级已存在"
                     stime = self.get_stime(nowtime)
                     read = readini()
                     s = read.readIni()  # 从readIni中得到课程的开始时间和结束时间
                     begintime = self.get_bagintime(line[3])
                     # 首先,若是下课时间则可以提出上一位教师
                     if (s[0] < stime < s[1]) | (s[2] < stime < s[3]) | (s[4] < stime < s[5]) | \
                             (s[6] < stime < s[7]):
                         # self.s.manage_action(line[0], line[1])
                         self.append_judge(readini.List, messagelist)
                         print "此时为下课时间,踢出相同班级的教师成功,成功进入队列!"
                         return True
                     # 若为上课时间、则比较节次信息
                     elif self.judge_sec(begintime) < self.judge_sec(stime):
                         # self.s.manage_action(line[0], line[1])
                         self.append_judge(readini.List, messagelist)
                         print "此时为上课时间,提出上一节次的教师成功!"
                         return True
                     else:
                         print "当前班级正在考勤、您无法开启!"
                         return False
                 else:
                     readini.List.append(messagelist)
                     return True
             else:
                 print "教师已经在队列之内"
                 return False
     else:
         self.append_message(messagelist)
         return True