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
Beispiel #4
0
 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]
Beispiel #5
0
 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()
Beispiel #6
0
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()
Beispiel #7
0
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})
Beispiel #8
0
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')
Beispiel #12
0
}, {
    '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,
Beispiel #13
0
def events(request):
    events = Event.objects.filter( ends_at__gt = now() ).order_by('starts_at')
    return render(request,'events.html',{'events': events})
Beispiel #14
0
 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())
Beispiel #15
0
    def get(self):
        forecast = request.args.get('forecast', 4)

        results = Flights.get_flight_from_time(now(), forecast)
        return jsonify({'schedule': results})
Beispiel #16
0
 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())
Beispiel #17
0
 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()