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)
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)
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
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)
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)
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)
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, )
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
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)
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")
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)
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
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)
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"]
def tasks(): limit = request.args.get('limit', default="10") tasks = db.get_tasks(app, int(limit)) return render_template('tasks.html', tasks=tasks)
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)
def print_tasks(list_id: int): tasks = db.get_tasks(list_id) return format_tasks(tasks)
def get(): d = {"tasks": get_tasks()} return jsonify(d)