def mutate(self, args, request, info): with make_session_scope() as sess: todo_item = TodoItem(**args, is_done=False) sess.add(todo_item) sess.commit() todo = sess.query(Todo).get(args.get('todo_id')) return AddTodoItem(ok=True, user=todo.user)
def post(self, **kwargs): data = super().post() todo_list = self.get_todo_list(**kwargs) new_todo_item = TodoItem(content=data.get('content'), todo_list=todo_list) self.session.add(new_todo_item) self.session.commit() return self.make_response(new_todo_item.serialize())
def addItem(listid, item): if listid is None or item is None: return abort() list = TodoList.query.filter_by(id=listid).first() if list is None: return abort() newItem = TodoItem(list=list, description=item) db.session.add(newItem) db.session.commit() return redirect(url_for("routes.viewList", listid = listid))
def new_todo(): if request.method == 'POST': todo = TodoItem(name=request.form['name'], deadline_date=datetime.datetime.strptime( request.form['deadline_date'], "%m/%d/%Y").date(), users_id=current_user.id) db.session.add(todo) db.session.commit() return redirect(url_for('success')) return render_template('new-todo.html', page='new-todo')
def todo(request, project_name): """Allows to create a new todolist and todoitems. Actions available here: Add a todolist: Owner Participant Add a todoitem: Owner Participant """ project = get_project(request, project_name) access = get_access(project, request.user) if request.GET.get('includecomplete', 0): lists = TodoList.objects.filter(user=request.user, project=project) else: lists = TodoList.objects.filter(user=request.user, project=project, is_complete_attr=False) addlistform = bforms.AddTodoListForm() if request.method == 'POST': if request.POST.has_key('addlist'): addlistform = bforms.AddTodoListForm(project, request.user, request.POST) if addlistform.is_valid(): addlistform.save() return HttpResponseRedirect('.') elif request.POST.has_key('additem'): id = int(request.POST['id']) list = TodoList.objects.get(id=id) text_id = '%s-text' % list.id if request.POST[text_id]: item = TodoItem(list=list, text=request.POST[text_id]) item.save() elif request.POST.has_key('listmarkdone'): id = int(request.POST['id']) list = TodoList.objects.get(id=id) list.is_complete = True list.save() return HttpResponseRedirect('.') elif request.POST.has_key('itemmarkdone'): id = int(request.POST['id']) todoitem = TodoItem.objects.get(id=id) todoitem.is_complete = True todoitem.save() return HttpResponseRedirect('.') if request.method == 'GET': addlistform = bforms.AddTodoListForm() if request.GET.get('csv', ''): response, writer = reponse_for_cvs(project=project) writer.writerow(('Todo Lists',)) writer.writerow(TodoList.as_csv_header()) lists = TodoList.objects.filter(user=request.user, project=project) for list in lists: writer.writerow(list.as_csv()) for list in lists: for item in list.todoitem_set.all(): writer.writerow(item.as_csv()) return response payload = {'project': project, 'lists': lists, 'addlistform': addlistform} return render(request, 'project/todo.html', payload)
def create_dummy_data(): for i in range(10): new_list = TodoList(name=randomword(10)) for i2 in range(10): new_item = TodoItem( content=randomword(100), todo_list=new_list, ) db.session.add(new_item) db.session.commit() print('Created 10 Todo lists with each' ' 10 items!')
def post(self, **kwargs): todo_list_id = kwargs.get('todo_list_id') data = request.data print(data) data = json.loads(data) content = data.get('content') if not content: return abort(400, 'no content posted') new_item = TodoItem(todo_list_id=todo_list_id, content=content) self.session.add(new_item) self.session.commit() return json.dumps(new_item.serialize())
def post(self): # validate incoming data parser.add_argument('title', type=str, required=True) parser.add_argument('description', type=str) # parse args args = parser.parse_args() title = args['title'] description = args['description'] # create new todo new_todo = TodoItem(title, description) print(new_todo) # save todo Todos.append(new_todo) # return8888 created todo return new_todo.serialize(), 201
def post(self): json_data = request.get_json(force=True) if not json_data: return {'message': 'No valid data provided'}, 400 # Deserialize input data, errors = todo_item_schema.load(json_data) if errors: return errors, 422 todo_item = TodoItem.objects(title=data['title']).first() if todo_item: return { 'message': 'A todo item with the same title already exists' }, 400 todo_item = TodoItem(title=json_data['title']) todo_item.save() # Serialize and dump input result = todo_item_schema.dump(todo_item).data return {"status": 'success', 'data': result}, 201
from models import TodoItem TodoItem(title="Do laundry").save() TodoItem(title="Buy groceries").save() TodoItem(title="Hit the gym").save() TodoItem(title="Read 20 pages of book X").save() TodoItem(title="Call friend").save() TodoItem(title="Go to bank").save() TodoItem(title="Meditate for 5 min").save() TodoItem(title="Learn flask framework").save()
def todos(request, list_id): if request.method == 'OPTIONS': resp = HttpResponse() resp['Access-Control-Max-Age'] = '3600' return resp if request.method == 'HEAD': last_cursor = TodoItem.get_last_cursor(list_id) resp = HttpResponse() resp['Link'] = _changes_link(list_id, last_cursor.cur) return resp elif request.method == 'GET': stream = request.GET.get('stream') after = request.GET.get('after_change') wait = request.META.get('HTTP_WAIT') if stream: stream = (stream == 'true') if wait: wait = int(wait) if stream: set_hold_stream(request, Channel('todos-%s' % list_id)) return HttpResponse(content_type='text/plain') else: if after: try: items, last_cursor = TodoItem.get_after(list_id, after) except TodoItem.DoesNotExist: return HttpResponseNotFound() else: items, last_cursor = TodoItem.get_all(list_id) resp = _list_response(list_id, items) resp['Link'] = _changes_link(list_id, last_cursor.cur) if len(items) == 0 and wait: set_hold_longpoll(request, Channel('todos-%s' % list_id, prev_id=last_cursor.cur), timeout=wait) return resp elif request.method == 'POST': params = json.loads(request.body) i = TodoItem(list_id=list_id) if 'text' in params: i.text = params['text'] if 'completed' in params: if not isinstance(params['completed'], bool): return HttpResponseBadRequest('completed must be a bool\n', content_type='text/plain') i.completed = params['completed'] try: cursor = i.save() except TodoItem.LimitError: return HttpResponseForbidden('limit reached\n', content_type='text/plain') if cursor.cur != cursor.prev: _publish_item(list_id, i, cursor) resp = _item_response(i, status=201) resp['Location'] = reverse('todos-item', args=[list_id, i.id]) return resp else: return HttpResponseNotAllowed(['HEAD', 'GET', 'POST'])