def post(self, item_id): """Accepts a URL argument and saves it to the database """ item_data = self._load_item(self.current_user.id, item_id) item = ListItem(**item_data) title = self.get_argument('title') url = self.get_argument('url') tags = self.get_argument('tags') # TODO The URLField should probably handle this somehow if not url.startswith('http'): url = 'http://%s' % (url) tag_list = tags.split(',') item.updated_at = self.current_time item.title = title item.url = url item.tags = tag_list try: item.validate() except Exception, e: logging.error('Item validatiom failed') logging.error(e) return self.render_error(500)
def post(self): """Accepts a URL argument and saves it to the database """ title = self.get_argument('title') url = self.get_argument('url') tags = self.get_argument('tags') # TODO The URLField should probably handle this somehow if not url.startswith('http'): url = 'http://%s' % (url) tag_list = None if tags: tag_list = tags.split(',') link_item = { 'owner_id': self.current_user.id, 'owner_username': self.current_user.username, 'created_at': self.current_time, 'updated_at': self.current_time, 'title': title, 'url': url, 'tags': tag_list, } item = ListItem(**link_item) try: item.validate() except Exception, e: logging.error('Item validatiom failed') logging.error(e) return self.render_error(500)
def api_new(): title = request.form.get('item', None) list_id = request.form.get('list-id', None) if title and list_id: list = db.session.query(List).filter_by(id=list_id).first() if list: newitem = ListItem(title=title, list_id=list.id) db.session.add(newitem) db.session.commit() return jsonify(list_id=list_id, title=title, id=newitem.id)
def get(self): """Renders a template with our links listed """ items_qs = load_listitems(self.db_conn, self.current_user.username) items_qs.sort('updated_at', direction=pymongo.DESCENDING) items = [ListItem(i).to_primitive(role='owner') for i in items_qs] context = { 'links': items, } return self.render_template('linklists/link_list.html', **context)
def new(): title = request.form.get('item', None) list_id = request.form.get('list-id', None) if title and list_id: list = db.session.query(List).filter_by(id=list_id).first() if list: newitem = ListItem(title=title, list_id=list.id) db.session.add(newitem) db.session.commit() flash('Success! Added \'%s\' to \'%s\'' % (title, list.title), 'success') return redirect(url_for('index')) flash('An error occurred', 'danger') return redirect(url_for('index'))
def get(self): """Renders a JSON response """ paging_arguments = self.get_paging_arguments() total = load_listitems(self.db_conn, self.current_user.username).count() items_qs = page_listitems(self.db_conn, self.current_user.username, **paging_arguments) items_qs.sort('updated_at', direction=pymongo.DESCENDING) num_items = items_qs.count() response = { 'paging': { 'page': paging_arguments['page'], 'count': paging_arguments['count'], 'total': total }, 'items': [ListItem(i).to_primitive(role='owner') for i in items_qs] } self.set_body(json.dumps(response)) return self.render(status_code=200)
def post(self): """Accepts a URL argument and saves it to the database """ url = self.get_argument('url') if not url.startswith('http'): url = 'http://%s' % (url) logging.info(self.current_user.to_primitive()) link_item = { 'owner': self.current_user.id, 'username': self.current_user.username, 'created_at': datetime.utcnow(), 'updated_at': datetime.utcnow(), 'url': url, } item = ListItem(link_item) item.validate() save_listitem(self.db_conn, item) return self.redirect('/list')
def newListItem(category_id): if 'username' not in login_session: return redirect('/login') categories = session.query(Category) if request.method == 'POST': category_name = request.form['category'] category = session.query(Category).filter_by(name=category_name).one() newItem = ListItem(name=bleach.clean(request.form['name']), description=bleach.clean( request.form['description']), category_id=category.id, user_id=login_session['user_id']) session.add(newItem) session.commit() flash('New Item %s Successfully Created' % (newItem.name)) return redirect( url_for('showList', categories=categories, category_id=category.id)) else: return render_template('newlistitem.html', categories=categories, category_id=category_id)
def setUp(self): self.list_item = ListItem()