Example #1
0
def recent(environ, start_response):
    bag_name = environ['tiddlyweb.query'].get('bag', [None])[0]
    recipe_name = environ['tiddlyweb.query'].get('recipe', [None])[0]
    since = environ['tiddlyweb.query'].get('since', [None])[0]

    store = environ['tiddlyweb.store']
    tiddlers = []
    title_string = "nothing"
    if recipe_name:
        recipe = Recipe(recipe_name)
        recipe = store.get(recipe)
        tiddlers = control.get_tiddlers_from_recipe(recipe, environ)
        title_string = 'recipe %s' % recipe_name
    if bag_name:
        bag = store.get(Bag(bag_name))
        tiddlers = bag.list_tiddlers()
        title_string = 'bag %s' % bag_name
    matching_tiddlers = []
    if since:
        modified_string = since
    else:
        time_object = datetime.utcnow() - timedelta(30)
        modified_string = unicode(time_object.strftime('%Y%m%d%H%M%S'))

    def reify_revision(tiddler, revision_id):
        revision = Tiddler(tiddler.title, tiddler.bag)
        revision.revision = revision_id
        return store.get(revision)

    selector = select_parse('modified:>%s' % modified_string)
    tiddlers = [store.get(tiddler) for tiddler in tiddlers]
    tiddlers = selector(tiddlers)
    for tiddler in tiddlers:
        revisions = [
            reify_revision(tiddler, id)
            for id in store.list_tiddler_revisions(tiddler)
        ]
        matching_tiddlers.extend(selector(revisions))

    tiddlers = sort_by_attribute('modified', matching_tiddlers, reverse=True)

    environ['tiddlyweb.title'] = 'Recent changes for %s' % title_string

    return [
        '%s:%s:%s:%s<br/>' %
        (tiddler.title, tiddler.revision, tiddler.modified, tiddler.modifier)
        for tiddler in tiddlers
    ]
Example #2
0
def recent(environ, start_response):
    bag_name = environ['tiddlyweb.query'].get('bag', [None])[0]
    recipe_name = environ['tiddlyweb.query'].get('recipe', [None])[0]
    since = environ['tiddlyweb.query'].get('since', [None])[0]

    store = environ['tiddlyweb.store']
    tiddlers = []
    title_string = "nothing"
    if recipe_name:
        recipe = Recipe(recipe_name)
        recipe = store.get(recipe)
        tiddlers = control.get_tiddlers_from_recipe(recipe, environ)
        title_string = 'recipe %s' % recipe_name
    if bag_name:
        bag = store.get(Bag(bag_name))
        tiddlers = bag.list_tiddlers()
        title_string = 'bag %s' % bag_name
    matching_tiddlers = []
    if since:
        modified_string = since
    else:
        time_object = datetime.utcnow() - timedelta(30)
        modified_string = unicode(time_object.strftime('%Y%m%d%H%M%S'))

    def reify_revision(tiddler, revision_id):
        revision = Tiddler(tiddler.title, tiddler.bag)
        revision.revision = revision_id
        return store.get(revision)

    selector = select_parse('modified:>%s' % modified_string)
    tiddlers = [store.get(tiddler) for tiddler in tiddlers]
    tiddlers = selector(tiddlers)
    for tiddler in tiddlers:
        revisions = [reify_revision(tiddler, id) for id
                in store.list_tiddler_revisions(tiddler)]
        matching_tiddlers.extend(selector(revisions))

    tiddlers = sort_by_attribute('modified', matching_tiddlers, reverse=True)

    environ['tiddlyweb.title'] = 'Recent changes for %s' % title_string

    return ['%s:%s:%s:%s<br/>' %
            (tiddler.title, tiddler.revision, tiddler.modified, tiddler.modifier)
            for tiddler in tiddlers]
Example #3
0
def test_modified_sort():
    sorted_tiddlers = sort_by_attribute('modified', tiddlers)

    assert ['2007', '2008', '20090509000000', '200905090011'] == [
            tiddler.modified for tiddler in sorted_tiddlers]
Example #4
0
def test_count_sort():
    sorted_tiddlers = sort_by_attribute('count', tiddlers)
    assert ['5', '8', '13', '24'] == [tiddler.fields['count']
            for tiddler in sorted_tiddlers]
Example #5
0
def test_reverse_sort():
    sorted_tiddlers = sort_by_attribute('title', tiddlers, reverse=True)
    assert ['c', 'b', 'a', '1'] == [
            tiddler.title for tiddler in sorted_tiddlers]
Example #6
0
def test_simple_sort():
    sorted_tiddlers = sort_by_attribute('title', tiddlers)
    assert ['1', 'a', 'b', 'c'] == [
            tiddler.title for tiddler in sorted_tiddlers]
Example #7
0
def test_modified_sort():
    sorted_tiddlers = sort_by_attribute('modified', tiddlers)

    assert ['2007', '2008', '20090509000000', '200905090011'
            ] == [tiddler.modified for tiddler in sorted_tiddlers]
Example #8
0
def test_count_sort():
    sorted_tiddlers = sort_by_attribute('count', tiddlers)
    assert ['5', '8', '13',
            '24'] == [tiddler.fields['count'] for tiddler in sorted_tiddlers]
Example #9
0
def test_reverse_sort():
    sorted_tiddlers = sort_by_attribute('title', tiddlers, reverse=True)
    assert ['c', 'b', 'a',
            '1'] == [tiddler.title for tiddler in sorted_tiddlers]
Example #10
0
def test_simple_sort():
    sorted_tiddlers = sort_by_attribute('title', tiddlers)
    assert ['1', 'a', 'b',
            'c'] == [tiddler.title for tiddler in sorted_tiddlers]
Example #11
0
def test_modifier_sort():
    with py.test.raises(AttributeError):
        sort_by_attribute("blam", tiddlers, reverse=True)
Example #12
0
def test_modifier_sort():
    with py.test.raises(AttributeError):
        sort_by_attribute("blam", tiddlers, reverse=True)