def show_user_tag_list(username): if username is None: username = current_user.username user = current_user elif current_user and username == current_user.username: user = current_user else: user = User.get_by_username(username) user_owned = current_user and current_user.username == username if user_owned: tags = Tag.get_cloud_by_user(user.userid) title = "My Tags" else: tags = Tag.get_public_by_user(user.userid) title = 'Tags for %s' % username return render_template('tag_index.html', pageoptions=get_default_data(), tags=tags, curr_user=current_user, page_title=title, section_title=title, user_owned=user_owned, user=user)
def setUp(self): tests.db.init_test_db() self.link = Link() self.link.userid = 1 self.link.name = 'Test link' self.link.url = 'http://www.example.com/' self.link.tags = [Tag('test1'), Tag('test2')]
def do_bulk_edit(tags): # Redirect filters immediately if request.args.get('tag_select'): return redirect( url_for('do_bulk_edit', tags=request.args.get('tag_select'))) available_tags = Tag.get_by_user(current_user.userid) if request.method == 'POST': linkids = request.form.getlist('linkids') edit_links = Link.get_by_id(linkids) valid = _links_are_valid(edit_links) tag_text = request.form.get('tag_text') if valid and tag_text and request.form.get('tag_submit'): for link in edit_links: link.add_tag(tag_text) link.save() flash('Tagged %d links as "%s"' % (len(edit_links), tag_text), 'success') elif valid and tag_text and request.form.get('tag_remove'): for link in edit_links: link.remove_tag(tag_text) link.save() flash( 'Removed tag "%s" from %d links' % (tag_text, len(edit_links)), 'success') if valid and request.form.get('set_privacy') and request.form.get( 'privacy_submit'): _set_link_privacy(edit_links, request.form.get('set_privacy')) if valid and request.form.get('delete_selected_submit'): for link in edit_links: link.delete() flash('Deleted %s links' % len(edit_links), 'success') if tags == 'untagged': title = 'Manage Untagged Links' links = Link.get_untagged(current_user.userid) elif tags: taglist = tags.split(',') title = 'Manage Links in ' + tags links = Link.get_by_tag(taglist[0], current_user.userid) else: title = "Manage Links" links = Link.get_by_user(current_user.userid) return render_template("link_edit_bulk.html", pageoptions=get_default_data(), url_tags=tags, links=links, section_title=title, tags=available_tags)
def show_user(username): usr = User.get_by_username(username) links = Link.get_public_by_most_recent(usr.userid, 30) tags = Tag.get_public_by_user(usr.userid) return render_template('public_dashboard.html', pageoptions=get_default_data(), tags=tags, links=links, user=usr, curr_user=current_user)
def test_get_cloud_by_user(self): tags = Tag.get_cloud_by_user(1) self.assertEqual(len(tags), 3) for t in tags: if t.tag_name == 'test1': self.assertEqual(t.link_count, 3) elif t.tag_name == 'blah': self.assertEqual(t.link_count, 2) elif t.tag_name == 'test2': self.assertEqual(t.link_count, 1) else: self.assertTrue(False, 'Got unexpected tags')
def do_add_link(): req = request.form if request.method == 'POST' else request.args form = forms.AddLink(req, referer=get_referer()) data = form.data data['userid'] = current_user.userid options = { 'button_label': 'Add Link', 'post_view': req.get('post_view') if req.get('post_view') else url_for('do_add_link'), } link = Link(data) if request.method == 'POST' or request.args.get('submit') == '1 ': if link.already_exists(): flash('This link already exists. Try editing it instead.', 'error') return redirect(url_for('do_edit_link', linkid=link.linkid)) taglist = form.tags.data.split(',') if form.tags.data else [] link.set_tags(taglist) if form.validate(): link.save() redir_target = link.url if form.redirect_to_target else get_referer( ) return redirect(redir_target) flash('Invalid link submission', 'error') return str(form.errors) tags = Tag.get_by_user(current_user.userid) return render_template("link_add.html", pageoptions=get_default_data(), form=form, link=link, tags=tags, options=options)
def do_edit_link(linkid): errors = [] link = Link.get_by_id(linkid) if not link: abort(404) options = { 'button_label': 'Save', 'post_view': url_for('do_edit_link', linkid=linkid) } if request.method == 'POST': link.name = request.form.get('name') link.description = request.form.get('description') link.shortname = request.form.get('shortname') link.url = request.form.get('url') link.is_public = request.form.get('is_public') == '1' if request.form.get('tags').strip() == '': taglist = [] else: taglist = request.form.get('tags').split(',') link.set_tags(taglist) if not (request.form.get('name') and request.form.get('url')): errors.append("Name and URL are required") if errors: link.save() if request.form.get('referer'): return redirect(request.form.get('referer')) tags = Tag.get_by_user(current_user.userid) return render_template("link_add.html", pageoptions=get_default_data(), link=link, options=options, tags=tags, errors=errors)
def test_get_public_by_user(self): tags = Tag.get_public_by_user(2) self.assertEqual(len(tags), 1)
def test_get_public(self): tags = Tag.get_public() self.assertEqual(len(tags), 4)
def test_get_by_name_does_not_exist(self): tag = Tag.get_by_name('thisdoesnotexist') self.assertEqual(tag.tag_name, 'thisdoesnotexist')
def test_get_by_name_exists(self): tag = Tag.get_by_name('test1') self.assertEqual(tag.tag_name, 'test1')
def get_module_data(self): return Tag.get_cloud_by_user(self.userid)