{{{#!python
"""
    MoinMoin - DateLastModified Macro

    This macro displays the last modified date of the page.

    Some logic taken from Page.py and AttentionPages.py

    @copyright: 2006 by Greg Heartsfield <scsibug@imap.cc>
    @license: GNU GPL, see COPYING for details.
"""

import string, time, os
from MoinMoin.Page import Page
from MoinMoin import user, config, wikiutil

Dependencies = ['pages']

def execute(macro, args):
    request = macro.request
    page = macro.formatter.page
    log = page._last_edited(request)
    if log:
        editor = log.getEditor(request)
        mtime = wikiutil.version2timestamp(log.ed_time_usecs)
    else:
        editor = ''
        mtime = os.path.getmtime(page._text_filename())
    now = time.time()
    delta = int(now - float(mtime)) / 60 # minutes since update
    if delta < 0:
        delta = 0 # fix display glitch when NFS time is ahead of local machine time
    if delta < 1440:
        mod = "%dh&nbsp;%dm&nbsp;ago"%(delta/60, delta%60)
    elif delta < 43200:
        mod = "%dd&nbsp;%dh&nbsp;ago"%(delta/1440, (delta/60)%24)
    else:
        mod = request.user.getFormattedDateTime(mtime)
    return mod





}}}
