Esempio n. 1
0
 def execute(self):
     session = DbConnexion.session()
     if 'id' in self.param:
         schedule = session.query(Schedule).get(int(self.param['id'])) or Schedule(id=int(self.param['id']))
     else:
         schedule = Schedule(modified=datetime.now())
     if 'begin' in self.param:
         schedule.begin = self.param['begin']
     if 'end' in self.param:
         schedule.end = self.param['end']
     if 'teacher' in self.param:
         schedule.teacher = session.query(Person).filter(Person.type == 'teacher')\
             .filter(Person.id == self.param['teacher']).first()
     if 'promotions' in self.param:
         promo_ids = eval(self.param['promotions'])
         schedule.promotions = session.query(Promotion).filter(Promotion.id.in_(promo_ids)).all()
     if 'classrooms' in self.param:
         classrooms_ids = eval(self.param['classrooms'])
         schedule.classrooms = session.query(ClassRoom).filter(ClassRoom.id.in_(classrooms_ids)).all()
     if 'terminals' in self.param:
         terminal_ids = eval(self.param['terminals'])
         schedule.terminals = session.query(Terminal).filter(Terminal.id.in_(terminal_ids)).all()
     session.add(schedule)
     session.commit()
     pass
    def execute(self):
        session = DbConnexion.session()
        session.execute("DELETE FROM promotion")
        session.execute("DELETE FROM person")
        session.execute("DELETE FROM terminal")
        session.execute("DELETE FROM terminal")
        session.execute("DELETE FROM presence")
        session.execute("DELETE FROM schedule")

        promos = []
        for i in range(2013, 2016):
            promos.append(Promotion(label='RIL', academic_year=i))
            promos.append(Promotion(label='RAR', academic_year=i))
        session.add_all(promos)
        session.commit()

        persons = []
        for i in range(1, 100):
            promo = promos[random.randint(0, len(promos) - 1)]
            persons.append(Person(firstname='firstname%s' % (i,),
                                  lastname='lastname%s' % (i,),
                                  type='student',
                                  promotion=promo))
        session.add_all(persons)
        session.commit()

        teachers = []
        for i in range(100, 115):
            teachers.append(Person(firstname='firstname%s' % (i,),
                                   lastname='lastname%s' % (i,),
                                   type='teacher'))
        session.add_all(teachers)
        session.commit()
        teachers.append(None)

        classrooms = []
        for i in range(1, 21):
            classrooms.append(ClassRoom(label='Class%s' % (i,), capacity=random.randint(15, 70)))
        session.add_all(classrooms)
        session.commit()

        terminals = []
        for i in range(1, 35):
            terminals.append(Terminal(label='Terminal%s' % (i,),
                                      classroom=classrooms[randint(0, len(classrooms) - 1)],
                                      ip_address='%s.%s.%s.%s' % (randint(0, 255), randint(0, 255), randint(0, 255), randint(0, 255))))
        for i in range(35, 41):
            terminals.append(Terminal(label='Terminal%s' % (i,),
                                      ip_address='%s.%s.%s.%s' % (randint(0, 255), randint(0, 255), randint(0, 255), randint(0, 255))))
        session.add_all(terminals)
        session.commit()

        schedules = []
        today = datetime.now()
        for i in range(1, 50):
            tclassrooms = []
            tclassrooms.append(classrooms[randint(0, len(classrooms) - 1)])
            tclass2 = classrooms[randint(0, len(classrooms) - 1)]
            if tclassrooms[0].id != tclass2.id:
                tclassrooms.append(tclass2)
            tpromos = []
            tpromos.append(promos[randint(0, len(promos) - 1)])
            tpromo2 = promos[randint(0, len(promos) - 1)]
            if tpromos[0].id != tpromo2.id:
                tpromos.append(tpromo2)
            tterminal = []
            while today.weekday() == 6 or today.weekday() == 5:
                today = today + timedelta(days=1)
            s = Schedule(teacher=teachers[random.randint(1, len(teachers) - 1)])
            s.begin = datetime(today.year, today.month, today.day, 8, 30)
            s.end = datetime(today.year, today.month, today.day, 12, 30)
            s.classrooms = tclassrooms
            s.promotions = tpromos
            schedules.append(s)

            s = Schedule(teacher=s.teacher)
            s.begin = datetime(today.year, today.month, today.day, 13, 30)
            s.end = datetime(today.year, today.month, today.day, 17, 30)
            s.classrooms = tclassrooms
            s.promotions = tpromos
            schedules.append(s)
            today = today + timedelta(days=1)

        session.add_all(schedules)
        session.commit()

        pass