def get(self): type_ = request.args.get('type') # request was too huge if type_ == 'all': tasks = Tasks.get_all_tasks_since(now() - td(hours=0.5), now() + td(hours=1)) else: tasks = Tasks.get_all_undone_tasks() return jsonify({'tasks': tasks})
def test_get_clearing_date_of(self): print datetime.now(), get_clearing_date_of() now = datetime(2018, 6, 24) print now, get_clearing_date_of(now) now = datetime(2018, 6, 22, 20, 1) print now, get_clearing_date_of(now) now = datetime(2018, 6, 22, 19, 1) print now, get_clearing_date_of(now)
def test_get_all_tasks_since(self): start = now() + td(minutes=20) end = now() + td(minutes=40) counts = 0 for t in T_tasks: if start <= t['ready_time'] <= end: counts += 1 tasks_ = Tasks.get_all_tasks_since(start, end) assert len(tasks_) == counts
def get_all_tasks_since(cls, start: dt, stop: dt = None): if stop is None: stop = now() records = (Tasks.query.filter((Tasks.ready_time >= start) & (Tasks.ready_time <= stop)).order_by( Tasks.ready_time).all()) return [t.to_dict() for t in records]
def complete_task(self): self.status = Choice('done', 'Done') self.completed_time = now() self.save() self.task_time_taken = (self.completed_time - self.task_start_time).total_seconds() return self.save()
def clear_after_now(): """ Set some tasks as undone. Read code """ print("Setting all tasks whose ready_time <= now as undone") tasks = (Tasks.query.filter(((Tasks.ready_time >= now()) & (Tasks.status != Choice('ready', 'Ready'))) | ((Tasks.flight_time >= now()) & (Tasks.ready_time <= now()))).all()) print("Total tasks: ", len(tasks)) for task in ProgressEnumerate(tasks): task.status = Choice('ready', 'Ready') task.driver = None task.task_start_time = None db.session.add(task) db.session.commit()
def house_create(request): captcha = Captcha() GOOGLE_API_KEY = settings.GOOGLE_API_KEY if request.method == 'POST': house = House() house.user = request.user if ('street_number' or 'street_number' or 'street_name' or 'city' or 'prov_state' or 'country' or 'place_id' or 'lat' or 'lon') not in request.POST: return render(request, 'houses/house_create.html', {'error': 'There is an issue with the address inputted!', 'GOOGLE_API_KEY': GOOGLE_API_KEY, 'captcha': captcha}) else: # Create House house.street_number = request.POST['street_number'] house.street_name = request.POST['street_name'] house.city = request.POST['city'] house.prov_state = request.POST['prov_state'] house.postal_code = request.POST['postal_code'] house.country = request.POST['country'] house.place_id = request.POST['place_id'] house.lat = request.POST['lat'] house.lon = request.POST['lon'] house.save() # Create first and empty BillSet for house init_bill_set = BillSet() date = now() init_bill_set.month = date.month init_bill_set.year = date.year init_bill_set.house = house init_bill_set.save() # TODO: Put these in a background task or make them async as they take 90% of the request time # TODO: This can be remove at a later time, but at the moment it costs too much to test it constantly if 'test' in sys.argv: pass else: house.load_walk_score() house_image = load_house_image(house) # Create GarbageDay for house if info present if ('LastGarbageDay' or 'NextGarbageDay') not in request.POST: pass elif (request.POST['LastGarbageDay'] or request.POST['NextGarbageDay']) is '': pass else: garbageday = GarbageDay() garbageday.house = house garbageday.user = request.user garbageday.last_garbage_day = request.POST['LastGarbageDay'] garbageday.next_garbage_day = request.POST['NextGarbageDay'] garbageday.save() return redirect('house_detail', pk=house.id) else: return render(request, 'houses/house_create.html', {'GOOGLE_API_KEY': GOOGLE_API_KEY, 'captcha': captcha})
def clear_before_now(): """ Set all tasks whose flight time <= now as done" """ print("Setting all tasks whose flight time <= now as done") tasks = ( Tasks.query.filter((Tasks.flight_time <= now()) & (Tasks.status != Choice('done', 'Done'))).all()) print("Total tasks: ", len(tasks)) drivers = Drivers.get_all_drivers_names() for task in ProgressEnumerate(tasks): if task.driver is None: task.driver = rng.choice(drivers) if task.task_start_time is None: task.task_start_time = now() task.completed_time = now() task.status = Choice('done', 'Done') task.task_time_taken = -1 db.session.add(task) db.session.commit()
def clear_route(): tasks = (Tasks.query .filter((Tasks.flight_time <= now()) & (Tasks.status != Choice('done', 'Done'))) .all()) drivers = Drivers.get_all_drivers_names() for task in tasks: if task.driver is None: task.driver = rng.choice(drivers) if task.task_start_time is None: task.task_start_time = now() task.completed_time = now() task.status = Choice('done', 'Done') task.task_time_taken = -1 db.session.add(task) tasks = (Tasks.query .filter( ( (Tasks.ready_time >= now()) & (Tasks.status != Choice('ready', 'Ready')) ) | ( (Tasks.flight_time >= now()) & (Tasks.ready_time <= now()) ) ) .all()) for task in tasks: task.status = Choice('ready', 'Ready') task.driver = None task.task_start_time = None db.session.add(task) db.session.commit() flash("Clearing is successful", "success") return redirect(url_for('.login'))
def _timestamp(self): return datetime.now().strftime('%Y_%m_%d_%H_%M_%S')
def _thetime(self): return datetime.now().strftime('%Y-%m-%dT%H:%M:%S%z')
}, { 'task_id': None, 'name_': 'Ed Hong Weiming', 'status': Choice('off', 'Off Work') }, { 'task_id': None, 'name_': 'Tony Khoo', 'status': Choice('off', 'Off Work') }, { 'task_id': None, 'name_': 'Roger Shum Cheng Sean', 'status': Choice('off', 'Off Work') }] F_flights = [{ 'actual_time': now(), 'type_': 'D', 'flight_num': 'SQ452', 'pax': 196, 'id': 39840, 'num_containers': 4, 'terminal': 'T2', 'scheduled_time': now(), 'bay': 'F42' }, { 'actual_time': now(), 'type_': 'D', 'flight_num': 'SQ211', 'pax': 231, 'id': 57763, 'num_containers': 3,
def events(request): events = Event.objects.filter( ends_at__gt = now() ).order_by('starts_at') return render(request,'events.html',{'events': events})
def _get_all_undone_tasks_raw(cls, forecast=4): return (Tasks.query.filter( (Tasks.status == Choice('ready', 'Ready')) & (Tasks.ready_time <= now() + td(hours=forecast))).all())
def get(self): forecast = request.args.get('forecast', 4) results = Flights.get_flight_from_time(now(), forecast) return jsonify({'schedule': results})
def get_first_task(cls, forecast=4) -> 'Tasks': return ( Tasks.query.filter((Tasks.ready_time <= now() + td(hours=forecast)) & (Tasks.status == Choice('ready', 'Ready')) & (Tasks.flight_time >= now())).order_by( Tasks.ready_time).first())
def do_task(self, driver_name: str): self.driver = driver_name self.status = Choice('er', 'En-route') self.task_start_time = now() return self.save()