[wiki/macro] Nouvelle macro pour voir qui est inscrit avec une typo dans les groupes.
This commit is contained in:
parent
f44962cb4a
commit
a4d264ebaf
1 changed files with 68 additions and 0 deletions
68
wiki/macro/LostSoulsInGroups.py
Normal file
68
wiki/macro/LostSoulsInGroups.py
Normal file
|
@ -0,0 +1,68 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
MoinMoin - LostSoulsInGroups macro
|
||||
|
||||
List all items in custom groups that do not have user accounts
|
||||
(either haven't registered yet or have been deleted or there's a typo)
|
||||
|
||||
@copyright: 2007 Alexander "Loki" Agibalov
|
||||
@license: GNU GPL, see COPYING for details.
|
||||
|
||||
changes:
|
||||
12.2007 - conversion to new syntax by Bolesław Kulbabiński
|
||||
"""
|
||||
|
||||
from MoinMoin import wikiutil, user
|
||||
from MoinMoin.Page import Page
|
||||
from MoinMoin.PageEditor import PageEditor
|
||||
import re, sys
|
||||
|
||||
def macro_LostSoulsInGroups(macro, args):
|
||||
request = macro.request
|
||||
_ = macro.request.getText
|
||||
|
||||
sRet = "<p><b>Items in custom groups (Users in custom groups who don't have user accounts)</b></p>"
|
||||
sRet = sRet + "<table>"
|
||||
userlist = []
|
||||
lostsouls = {}
|
||||
for uid in user.getUserList(request):
|
||||
userlist.append(user.User(request, uid).name)
|
||||
|
||||
isgroup = request.cfg.cache.page_group_regex.search
|
||||
grouppages = request.rootpage.getPageList(user='', filter=isgroup)
|
||||
|
||||
srch = re.compile("^ \* [^ ]*", re.M)
|
||||
for pg in grouppages:
|
||||
pged = PageEditor(request, pg)
|
||||
pagelines = pged.getlines()
|
||||
for lin in pagelines:
|
||||
srchS = srch.match(lin)
|
||||
if srchS:
|
||||
st = srchS.group()
|
||||
st = st[3:]
|
||||
try:
|
||||
usr = userlist.index(st)
|
||||
except ValueError:
|
||||
if lostsouls.has_key(pg):
|
||||
temp_lst = lostsouls[pg]
|
||||
temp_lst.append(st)
|
||||
lostsouls[pg] = temp_lst
|
||||
else:
|
||||
lostsouls[pg] = [st]
|
||||
|
||||
for k, v in lostsouls.iteritems():
|
||||
st = '<tr><td>%s</td><td>%s</td></tr>' % (Page(request, k).link_to(request), ", ".join(v))
|
||||
sRet = sRet + st
|
||||
|
||||
sRet = sRet + "</table>"
|
||||
return macro.formatter.rawHTML(sRet)
|
||||
|
||||
|
||||
def execute(macro, args):
|
||||
try:
|
||||
return wikiutil.invoke_extension_function(
|
||||
macro.request, macro_LostSoulsInGroups, args, [macro])
|
||||
except ValueError, err:
|
||||
return macro.request.formatter.text(
|
||||
"<<LostSoulsInGroups: %s>>" % err.args[0])
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue