示例#1
0
 def burning_data(self):
     burnings = Burning.query.filter(
         Burning.team == self, Burning.day >= utils.get_current_monday(), Burning.day < utils.get_next_monday())
     today_remaining = Task.query.session.query(func.sum(Task.price).label('remaining')).filter(
         or_(Task.status == 'READY', Task.status == 'PROGRESS'), Task.team == self).one().remaining or 0
     today_burning = Task.query.session.query(func.sum(Task.price).label(
         'burning')).filter(Task.status == 'DONE', Task.last_updated > utils.today(), Task.team == self).one().burning or 0
     return json.dumps([[b.remaining for b in burnings] + [today_remaining], [b.burning for b in burnings] + [today_burning]])
示例#2
0
 def burning_data(self):
     burnings = Burning.query.filter(
         Burning.team == self, Burning.day >= utils.get_current_monday(),
         Burning.day < utils.get_next_monday())
     today_remaining = Task.query.session.query(
         func.sum(Task.price).label('remaining')).filter(
             or_(Task.status == 'READY', Task.status == 'PROGRESS'),
             Task.team == self).one().remaining or 0
     today_burning = Task.query.session.query(
         func.sum(Task.price).label('burning')).filter(
             Task.status == 'DONE', Task.last_updated > utils.today(),
             Task.team == self).one().burning or 0
     return json.dumps([[b.remaining for b in burnings] + [today_remaining],
                        [b.burning for b in burnings] + [today_burning]])
示例#3
0
def zeroing():
    begin = utils.now().replace(hour=0, minute=0, second=0, microsecond=0)
    tasks = Task.query.filter(Task.start_time > utils.get_current_monday(), Task.start_time < utils.now())
    burnings = {}
    for task in tasks:
        if task.status == 'PROGRESS':
            task.status = 'READY'
            end_time = utils.now()
            if end_time.hour > 18:
                end_time = end_time.replace(hour=18, minute=0, second=0)
            task.time_slots.append(TimeSlot(task.start_time, (end_time - task.start_time).total_seconds(), task.owner, partner=task.partner))
            task.owner = None
            task.partner = None
        burning = burnings.setdefault(task.team.id, Burning(task.team, begin))
        burning.add(task)

    for key, item in burnings.iteritems():
        db.session.add(item)
    db.session.commit()
示例#4
0
def load_tasks(status):
    team_conditions = [Task.team is None]
    team_id = int(request.args.get('team_id', '0'))
    if team_id > 0:
        team_conditions.append(Task.team == Team.query.get_or_404(team_id))
    else:
        for team in current_user.teams:
            team_conditions.append(Task.team == team)
    if status == 'DONE':
        return jsonify(objects=[
            t.toJSON() for t in Task.query.filter(
                Task.start_time > utils.get_current_monday(), Task.status ==
                status, or_(*team_conditions))
        ])
        # return render_template('task_card.html',
        # tasks=Task.query.filter(Task.start_time > utils.get_current_monday(),
        # Task.status == status, or_(*team_conditions)), user=current_user)
    return jsonify(objects=[
        t.toJSON()
        for t in Task.query.filter(Task.status == status, or_(
            *team_conditions)).order_by(desc(Task.priority))
    ])
示例#5
0
def zeroing():
    begin = utils.now().replace(hour=0, minute=0, second=0, microsecond=0)
    tasks = Task.query.filter(Task.start_time > utils.get_current_monday(),
                              Task.start_time < utils.now())
    burnings = {}
    for task in tasks:
        if task.status == 'PROGRESS':
            task.status = 'READY'
            end_time = utils.now()
            if end_time.hour > 18:
                end_time = end_time.replace(hour=18, minute=0, second=0)
            task.time_slots.append(
                TimeSlot(task.start_time,
                         (end_time - task.start_time).total_seconds(),
                         task.owner,
                         partner=task.partner))
            task.owner = None
            task.partner = None
        burning = burnings.setdefault(task.team.id, Burning(task.team, begin))
        burning.add(task)

    for key, item in burnings.iteritems():
        db.session.add(item)
    db.session.commit()
示例#6
0
文件: views.py 项目: archiechen/miami
def load_tasks(status):
    team_conditions = [Task.team is None]
    team_id = int(request.args.get('team_id', '0'))
    if team_id > 0:
        team_conditions.append(Task.team == Team.query.get_or_404(team_id))
    else:
        for team in current_user.teams:
            team_conditions.append(Task.team == team)
    if status == 'DONE':
        return jsonify(objects=[t.toJSON() for t in Task.query.filter(Task.start_time > utils.get_current_monday(), Task.status == status, or_(*team_conditions))])
        # return render_template('task_card.html',
        # tasks=Task.query.filter(Task.start_time > utils.get_current_monday(),
        # Task.status == status, or_(*team_conditions)), user=current_user)
    return jsonify(objects=[t.toJSON() for t in Task.query.filter(Task.status == status, or_(*team_conditions)).order_by(desc(Task.priority))])