Пример #1
0
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)
Пример #2
0
def show_delete_link(linkid):
    link = Link.get_by_id(linkid)
    if not link.is_owner(current_user):
        flash('You do not have permission to delete this link.', 'error')
    elif request.form.get('confirm'):
        link.delete()
        flash('Deleted link', 'success')
        return redirect(url_for('show_index'))
    elif request.form.get('cancel'):
        return redirect(request.form.get('referer'))
    return render_template("link_delete.html",
                           pageoptions=get_default_data(),
                           link=link)
Пример #3
0
Файл: api.py Проект: pageer/lnto
def api_delete_link():
    if not request.form.get('linkid'):
        return json_error('No linkid specified')

    link = Link.get_by_id(request.form.get('linkid'))
    error = validate_link(link)
    if error:
        return error

    try:
        link.delete()
        return json_success()
    except Exception as ex:
        return json_error('Error deleting link - ' + str(ex))
Пример #4
0
def show_link(linkid):
    link = Link.get_by_id(linkid)
    if link is None:
        abort(404)
    if link.is_owner(current_user):
        related = Link.get_recent_by_tag(link.get_taglist(),
                                         current_user.userid)
    else:
        related = Link.get_recent_public_by_tag(link.get_taglist(),
                                                link.userid)

    return render_template('link.html',
                           pageoptions=get_default_data(),
                           link=link,
                           user=current_user,
                           related=related)
Пример #5
0
Файл: api.py Проект: pageer/lnto
def api_add_tag():
    if not request.form.get('linkid') or not request.form.get('tags'):
        return json_error('Missing linkid or tags parameters')

    link = Link.get_by_id(request.form.get('linkid'))
    tags = request.form.get('tags').split(',')

    error = validate_link(link)
    if error:
        return error

    try:
        for tag in tags:
            link.add_tag(tag.strip())
        link.save()
        return json_success()
    except Exception as ex:
        return json_error('Error adding tags - ' + str(ex))
Пример #6
0
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)
Пример #7
0
 def test_get_by_id_array_none_exist(self):
     result = Link.get_by_id([234, 123])
     self.assertEqual(len(result), 0)
Пример #8
0
 def test_get_by_id_array_one_exists(self):
     result = Link.get_by_id([1, 123])
     self.assertEqual(len(result), 1)
Пример #9
0
 def test_get_by_id_array_all_exist(self):
     result = Link.get_by_id([1, 2])
     self.assertEqual(len(result), 2)
Пример #10
0
 def test_get_by_id_nonexistent(self):
     result = Link.get_by_id(123)
     self.assertEqual(result, None)
Пример #11
0
 def test_get_by_id_exists(self):
     result = Link.get_by_id(1)
     self.assertTrue(result.__class__ is Link)
Пример #12
0
def show_linkurl(linkid):
    link = Link.get_by_id(linkid)
    if link is None:
        abort(404)
    link.get_hit(current_user).add_hit()
    return redirect(link.url)
Пример #13
0
Файл: api.py Проект: pageer/lnto
def get_link_metadata(linkid):
    link = Link.get_by_id(linkid)
    error = validate_link(link)
    if error:
        return error
    return json_success(link.serializable())