def TaskDueToday_Tomorrow():
    global username
    notifyTrack=db.get_tasks(username)
    tasks_due=[]
    for item in notifyTrack:
        dd=datetime.strptime(item[5], "%d-%m-%Y")
        dd2= dd -timedelta(days=1)
        dd3=dd2.strftime('%d-%m-%Y')
        dd_c=dd.strftime('%d-%m-%Y')
        today=datetime.today().strftime('%d-%m-%Y')
        if (dd3==today or dd_c==today):
            i=(item[1],item[3],item[2],item[5])
            tasks_due.append(i)

    tasks_due.sort(key=lambda e: e[1], reverse=True)
    if(len(tasks_due)==0):
       textMsg="No tasks due today/tomorrow"
    else:
        textMsg="Tasks due today/tomorrow"
    tasks_due_result = tk.Toplevel(root)
    tk.Label(tasks_due_result, text=textMsg ,bg="light steel blue",font=("Comic Sans MS",27)).grid(row=0, columnspan=3)
    # create Treeview with 5 columns
    cols = ('Sr no.','Task', 'Category', 'Priority','Due on')
    tree_search = ttk.Treeview(tasks_due_result, columns=cols, show='headings')
    for i in range(5):
        tree_search.column(i, anchor="center")    
    # set column headings
    for col in cols:
        tree_search.heading(col, text=col)    
    tree_search.grid(row=1, column=0, columnspan=2)
    for i, (task_name,category,priority_of_task,deadline) in enumerate(tasks_due, start=1):
        tree_search.insert("", "end", values=(i,task_name,category,priority_of_task,deadline))
    tk.Button(tasks_due_result, text="Close", width=15, command=tasks_due_result.destroy).grid(row=4, column=1)
Beispiel #2
0
def tasks():
    if request.method == 'POST':
        if not request.form['address']:
            flash('Enter site:')
        else:
            err, new_task = add_task(request.form['address'])
            if err:
                flash(str(err))
            else:
                task_dict = {
                        'id': new_task.id,
                        'address': new_task.address
                }
                try:
                    count_words.delay(task_dict)
                except Exception as e:
                    task_dict['error'] = str(e)
                    flash(task_dict['error'])
                    err = add_result(task_dict, do_finished=False)
                    if err:
                        flash(str(err))
                else:
                    err = task_pending(new_task)
                    if err:
                        flash(str(err))
    err, tasks = get_tasks()
    if err:
        flash(str(err))
        tasks = []
    return render_template('show_tasks.html', tasks = tasks)
Beispiel #3
0
 def add_valid_task(self):
     error = None
     for task in db.get_tasks():
         if self.name.data == task[2]:
             error = "Deploying task failed, already in database."
             return error
     options = dumps({'vapp_name': self.vapp.data, 'list': self.deploy_list.data})
     db.add_task(self.deploy_time.data, 0, self.name.data, options)
     return error
Beispiel #4
0
def user_page(name):
    if request.method == 'POST':
        user_id = get_user_id(name)
        title = request.form['title']
        content = request.form['content']
        end_date = request.form['end_date']
        add_task(user_id, title, content, end_date)
    user_tasks = get_tasks(name)
    return render_template('user.html', name=name, tasks=user_tasks)
def calendar_events(): 
    global username 
    top = tk.Toplevel(root)
    cal = Calendar(top, selectmode='none') 
    date = cal.datetime.today()
    cal.calevent_create(date, 'Today', 'message') 
    for item in db.get_tasks(username):
        dd=datetime.strptime(item[5], "%d-%m-%Y")
        cal.calevent_create(dd,item[1], 'reminder')
        cal.tag_config('reminder', background='red', foreground='yellow')
        cal.pack(fill="both", expand=True)
Beispiel #6
0
def api_generate_next_task():
    """ Generate next task to label
    """
    # try to find task is not presented in completions
    completions = db.get_completions_ids()
    for (task_id, task) in db.get_tasks().items():
        if task_id not in completions:
            log.info(msg='New task for labeling', extra=task)
            return make_response(jsonify(task), 200)

    # no tasks found
    return make_response('', 404)
Beispiel #7
0
  def GET(self):
    tasks = db.get_tasks()
    users = db.get_users()

    task_cmp = lambda task_name: tasks[task_name]['complexity']
    sorted_tasks = sorted(tasks.keys(), key=task_cmp, reverse=False)
    print sorted_tasks
    user_cmp = lambda user_name: sum([1 for task_name in tasks.keys() if users[user_name][task_name]])
    sorted_users = sorted(users.keys(), key=user_cmp, reverse=True)
    print sorted_users

    return render.index(tasks, sorted_tasks, users, sorted_users)
Beispiel #8
0
def choose_list(list_name: str, update: Update, context: CallbackContext):
    list = db.get_list(list_name)
    tasks = db.get_tasks(list["id"])
    text = format_tasks(tasks)

    context.user_data["current_list"] = list

    return context.bot.send_message(
        chat_id=update.effective_message.chat_id,
        text=text,
        parse_mode=ParseMode.HTML,
    )
Beispiel #9
0
def cats():
    print("c")
    #здесь должен быть блокчейн но увы
    cities = db.get_tasks()
    lk = types.InlineKeyboardMarkup()
    for c in cities:
        print(c)
        lk.add(
            types.InlineKeyboardButton(
                text="Подписаться на {} - {} CWD".format(c[3], c[1]),
                callback_data="task_{}".format(c[0])))
    return lk
Beispiel #10
0
    def GET(self):
        tasks = db.get_tasks()
        users = db.get_users()

        task_cmp = lambda task_name: tasks[task_name]['complexity']
        sorted_tasks = sorted(tasks.keys(), key=task_cmp, reverse=False)
        print sorted_tasks
        user_cmp = lambda user_name: sum(
            [1 for task_name in tasks.keys() if users[user_name][task_name]])
        sorted_users = sorted(users.keys(), key=user_cmp, reverse=True)
        print sorted_users

        return render.index(tasks, sorted_tasks, users, sorted_users)
Beispiel #11
0
def notify():
    global username
    #check the task date if its deadline is after 1 day, then notify user via email.
    for item in db.get_tasks(username):
        #check that the task is not notfied already
        if not already_notified(item):
            dd=datetime.strptime(item[5], "%d-%m-%Y")
            dd2= dd -timedelta(days=1)
            dd3=dd2.strftime('%d-%m-%Y')
            today=datetime.today().strftime('%d-%m-%Y')
            if (dd3==today) and (item[4]=="false"):   #check whether the task is not completed
                email_notify(item)
                db.add_notify_date(item,username)
                print("Email notification sent sucessfully")
Beispiel #12
0
def tasks_page():
    """ Tasks and completions page: tasks.html
    """
    global c
    c = load_config()
    label_config = open(c['label_config']).read()  # load editor config from XML
    task_ids = db.get_tasks().keys()
    completed_at = db.get_completed_at(task_ids)

    # sort by completed time
    task_ids = sorted([(i, completed_at[i] if i in completed_at else '9') for i in task_ids], key=lambda x: x[1])
    task_ids = [i[0] for i in task_ids]  # take only id back
    return flask.render_template('tasks.html', config=c, label_config=label_config,
                                 task_ids=task_ids, completions=db.get_completions_ids(),
                                 completed_at=completed_at)
Beispiel #13
0
def save_task(update: Update, context: CallbackContext, task_number: int, done: bool):
    current_list = context.user_data["current_list"]
    tasks = db.get_tasks(current_list["id"])

    try:
        task = tasks[task_number - 1]
    except IndexError:
        update.message(f"Your task number is invalid - \"{task_number}\".")
        return ConversationHandler.END

    db.edit_task(id=task["id"], title=task["title"], done=done)

    user = update.message.from_user
    value = "done" if done else "undone"
    logger.info("User %s marked task \"%s\" as \"%s\".", user.first_name, task["title"], value)

    update.message.reply_text(f"Task \"{task_number}\" marked as {value}.")

    return ConversationHandler.END
Beispiel #14
0
def tasks():
    '''
    Вывод всех результатов задач подсчета слов на сайтах (GET)
    Обработчик запросов адресов (POST) и так же вывод всех реультатов 
    '''
    if request.method == 'POST':
        if not request.form['address']:
            flash('Please enter Site')
        else:
            # пишем в базу данные поступившей задачи
            err, new_task = add_task(request.form['address'])
            if err:
                flash(str(err))
            else:
                task_dict = {'id': new_task.id, 'address': new_task.address}
                # передача задачи через Celery по подсчету слов на сайте по введенному адресу
                # могут быть исключения, например, недоступен Redis у Celery
                try:
                    count_words.delay(task_dict)
                except Exception as e:
                    task_dict['error'] = str(e)
                    flash(task_dict['error'])
                    # в случае исключения при передачи задачи,
                    # пишем в базу результат с ошибкой, но БЕЗ статуса "завершено"
                    err = add_result(task_dict, do_finished=False)
                    if err:
                        flash(str(err))
                else:
                    # если задача передалась, то помечаем ее, как "ожидание результата"
                    err = task_pending(new_task)
                    if err:
                        flash(str(err))

    err, tasks = get_tasks()
    if err:
        flash(str(err))
        tasks = []
    return render_template('show_tasks.html', tasks=tasks)
Beispiel #15
0
def handle_adding_task(update: Update, context: CallbackContext):
    user = update.message.from_user
    task = update.message.text
    current_list = context.user_data["current_list"]

    if task == "Done":
        logger.info("User %s finished adding tasks to the list \"%s\"", user.first_name, current_list["name"])
        tasks = db.get_tasks(current_list["id"])
        update.message.reply_text(format_tasks(tasks), reply_markup=ReplyKeyboardRemove())

        return ConversationHandler.END

    logger.info(
        "User %s added task \"%s\" to the list \"%s\"",
        user.first_name,
        task,
        current_list["name"],
    )
    db.add_task(task, False, current_list["id"])

    update.message.reply_text("Task added.")

    return conversations["add_tasks"]["handle_tasks"]
Beispiel #16
0
def tasks():
    limit = request.args.get('limit', default="10")
    tasks = db.get_tasks(app, int(limit))
    return render_template('tasks.html', tasks=tasks)
Beispiel #17
0
        deadline.set("")
        is_done.set(False)

        create_button["state"] = "normal"
        change_button["state"] = "disabled"
        db.remove_item_notification_tracker(item_id)
        notify()

change_button = ttk.Button(mainframe, text="Change Task", command=change_item)
change_button.grid(column=2, row=6, sticky=(W, E))
change_button["state"] = "disabled"

for child in mainframe.winfo_children():
    child.grid_configure(padx=25, pady=25)

for item in db.get_tasks(username):
    tree.insert("", "end", item[0], text=item[0],values=(item[1], item[2], item[3], item[4],item[5]))

menu = Menu(root, tearoff=0)


def remove_task_item():
    item_id = tree.item(tree.selection()[0], "text")
    db.delete_task(item_id)
    tree.delete(item_id)

    task_name.set("")
    priority_of_task.set("")
    category.set("")
    deadline.set("")
    is_done.set(False)
Beispiel #18
0
def print_tasks(list_id: int):
    tasks = db.get_tasks(list_id)
    return format_tasks(tasks)
Beispiel #19
0
def get():
    d = {"tasks": get_tasks()}
    return jsonify(d)