#format python
# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - List all subscribed pages

    [[SubscribedPages]] will display a list of all pages you have subscribed to.

    [[SubscribedPages(SomeUser)]] will display a list of all pages SomeUser has subscribed to.

    @copyright: 2004 by Peter Kleiweg <kleiweg@let.rug.nl>
    @license: GNU GPL, see COPYING for details.
"""

from MoinMoin import config, user, wikiutil

# Dependencies = ["namespace"]
#   Probably can't use Dependencies as above.
#   Dependencies should be: namespace, userpreferences
#   The second does not exist

def execute (macro, name):
    _ = macro.request.getText
    
    if name:
        uid = user.getUserId (name)
        if not uid:
            return _('<p>User <u>%s</u> does not exist<p>') % name
        else:
            U = user.User (macro.request, id = uid)
    else:
        U = macro.request.user

    all_pages = wikiutil.getPageList (config.text_dir)

    pages = []
    for page in all_pages:
        if U.isSubscribedTo ([page]):
            pages.append (page)

    if pages == []:
        if (name):
            result = _('<p>User <u>%s</u> has no subscribed pages<p>') % name
        else:
            result = _('<p>You have no subscribed pages<p>')
    else:
        pages.sort ()
        result = macro.formatter.bullet_list (1)
        for name in pages:
            result += macro.formatter.listitem (1)
            result += macro.formatter.pagelink (name, generated = 1)
            result += macro.formatter.listitem (0)
        result += macro.formatter.bullet_list (0)
    
    return result
