annotate MoinMoin/apps/admin/views.py @ 1039:b521a6667a54 namespaces

access to Item's name through name property instead of meta directly. having a single-item list in update_item won't break tests, so the basic support for list is done. Plus two tests for multiple name indexing, not passing yet Routing is dirtly hacked, but it will be gone soon anyway
author Luis Henrique Fagundes <lhfagundes@gmail.com>
date Mon, 31 Oct 2011 01:42:27 -0200
parents b65a998fab8e
children 20625402725c
rev   line source
92
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
1 # Copyright: 2007-2011 MoinMoin:ThomasWaldmann
26
4cd8edde9e94 automatically transform module docstrings, moving legal stuff to comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 24
diff changeset
2 # Copyright: 2001-2003 Juergen Hermann <jh@web.de>
54
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
3 # Copyright: 2008 MoinMoin:JohannesBerg
91
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
4 # Copyright: 2009 MoinMoin:EugeneSyromyatnikov
26
4cd8edde9e94 automatically transform module docstrings, moving legal stuff to comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 24
diff changeset
5 # Copyright: 2010 MoinMoin:DiogenesAugusto
4cd8edde9e94 automatically transform module docstrings, moving legal stuff to comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 24
diff changeset
6 # Copyright: 2010 MoinMoin:ReimarBauer
4cd8edde9e94 automatically transform module docstrings, moving legal stuff to comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 24
diff changeset
7 # License: GNU GPL v2 (or any later version), see LICENSE.txt for details.
4cd8edde9e94 automatically transform module docstrings, moving legal stuff to comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 24
diff changeset
8
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
9 """
54
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
10 MoinMoin - admin views
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
11
54
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
12 This shows the user interface for wiki admins.
26
4cd8edde9e94 automatically transform module docstrings, moving legal stuff to comments
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 24
diff changeset
13 """
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
14
186
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
15 from flask import request, url_for, flash, redirect
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
16 from flask import current_app as app
109
e4c332436733 remove flask monkeypatch, use 'from flask import g as flaskg'
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 107
diff changeset
17 from flask import g as flaskg
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
18
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
19 from MoinMoin.i18n import _, L_, N_
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
20 from MoinMoin.themes import render_template
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
21 from MoinMoin.apps.admin import admin
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
22 from MoinMoin import user
94
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
23 from MoinMoin.storage.error import NoSuchRevisionError
852
5ad4ae0b1e09 lots of fixes / adaptions for storage-ng code
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 839
diff changeset
24 from MoinMoin.config import NAME, ITEMID, SIZE, EMAIL
186
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
25 from MoinMoin.config import SUPERUSER
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
26 from MoinMoin.security import require_permission
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
27
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
28 @admin.route('/')
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
29 def index():
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
30 return render_template('admin/index.html', title_name=_(u"Admin"))
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
31
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
32
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
33 @admin.route('/userbrowser')
186
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
34 @require_permission(SUPERUSER)
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
35 def userbrowser():
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
36 """
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
37 User Account Browser
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
38 """
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
39 groups = flaskg.groups
838
ff63eb0afd24 user browser: use whoosh index
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 799
diff changeset
40 docs = user.search_users() # all users
852
5ad4ae0b1e09 lots of fixes / adaptions for storage-ng code
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 839
diff changeset
41 user_accounts = [dict(uid=doc[ITEMID],
838
ff63eb0afd24 user browser: use whoosh index
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 799
diff changeset
42 name=doc[NAME],
ff63eb0afd24 user browser: use whoosh index
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 799
diff changeset
43 email=doc[EMAIL],
ff63eb0afd24 user browser: use whoosh index
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 799
diff changeset
44 disabled=False, # TODO: add to index
ff63eb0afd24 user browser: use whoosh index
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 799
diff changeset
45 groups=[groupname for groupname in groups if doc[NAME] in groups[groupname]],
ff63eb0afd24 user browser: use whoosh index
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 799
diff changeset
46 )
ff63eb0afd24 user browser: use whoosh index
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 799
diff changeset
47 for doc in docs]
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
48 return render_template('admin/userbrowser.html', user_accounts=user_accounts, title_name=_(u"User Browser"))
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
49
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
50
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
51 @admin.route('/userprofile/<user_name>', methods=['GET', 'POST', ])
186
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
52 @require_permission(SUPERUSER)
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
53 def userprofile(user_name):
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
54 """
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
55 Set values in user profile
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
56 """
839
cc23787a37d0 use search_users() or User() instead of specialized lookup functions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 838
diff changeset
57 u = user.User(auth_username=user_name)
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
58 if request.method == 'GET':
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
59 return _(u"User profile of %(username)s: %(email)r", username=user_name,
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
60 email=(u.email, u.disabled))
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
61
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
62 if request.method == 'POST':
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
63 key = request.form.get('key', '')
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
64 val = request.form.get('val', '')
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
65 ok = False
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
66 if hasattr(u, key):
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
67 ok = True
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
68 oldval = getattr(u, key)
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
69 if isinstance(oldval, bool):
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
70 val = bool(val)
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
71 elif isinstance(oldval, int):
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
72 val = int(val)
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
73 elif isinstance(oldval, unicode):
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
74 val = unicode(val)
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
75 else:
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
76 ok = False
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
77 if ok:
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
78 setattr(u, key, val)
839
cc23787a37d0 use search_users() or User() instead of specialized lookup functions
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 838
diff changeset
79 u.save()
969
5bf6d7a2ffcf Convert all %r, %s, %x, %d, %i, %o to new Format String Syntax
Vedran Mileti? <rivanvx@gmail.com>
parents: 953
diff changeset
80 flash('{0}.{1}: {2} -> {3}'.format(user_name, key, unicode(oldval), unicode(val), ), "info")
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
81 else:
969
5bf6d7a2ffcf Convert all %r, %s, %x, %d, %i, %o to new Format String Syntax
Vedran Mileti? <rivanvx@gmail.com>
parents: 953
diff changeset
82 flash('modifying {0}.{1} failed'.format(user_name, key, ), "error")
266
7a6b116afa20 upgrade to flask 0.7.1 (not compatible to older flasks)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 186
diff changeset
83 return redirect(url_for('.userbrowser'))
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
84
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
85
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
86 @admin.route('/mail_recovery_token', methods=['GET', 'POST', ])
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
87 def mail_recovery_token():
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
88 """
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
89 Send user an email so he can reset his password.
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
90 """
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
91 flash("mail recovery token not implemented yet")
266
7a6b116afa20 upgrade to flask 0.7.1 (not compatible to older flasks)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 186
diff changeset
92 return redirect(url_for('.userbrowser'))
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
93
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
94
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
95 @admin.route('/sysitems_upgrade', methods=['GET', 'POST', ])
186
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
96 @require_permission(SUPERUSER)
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
97 def sysitems_upgrade():
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
98 from MoinMoin.storage.backends import upgrade_sysitems
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
99 from MoinMoin.storage.error import BackendError
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
100 if request.method == 'GET':
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
101 action = 'syspages_upgrade'
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
102 label = 'Upgrade System Pages'
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
103 return render_template('admin/sysitems_upgrade.html',
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
104 title_name=_(u"System items upgrade"))
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
105 if request.method == 'POST':
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
106 xmlfile = request.files.get('xmlfile')
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
107 try:
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
108 upgrade_sysitems(xmlfile)
135
75312c9b94e3 use except...as syntax, use raise Exception(...) syntax, fix some imports
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 109
diff changeset
109 except BackendError as e:
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
110 flash(_('System items upgrade failed due to the following error: %(error)s.', error=e), 'error')
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
111 else:
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
112 flash(_('System items have been upgraded successfully!'))
266
7a6b116afa20 upgrade to flask 0.7.1 (not compatible to older flasks)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 186
diff changeset
113 return redirect(url_for('.index'))
0
5568cf133caf create moin/2.0 repo, drop all history (see notes below)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents:
diff changeset
114
54
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
115
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
116 from MoinMoin.config import default as defaultconfig
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
117
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
118 @admin.route('/wikiconfig', methods=['GET', ])
186
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
119 @require_permission(SUPERUSER)
54
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
120 def wikiconfig():
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
121 settings = {}
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
122 for groupname in defaultconfig.options:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
123 heading, desc, opts = defaultconfig.options[groupname]
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
124 for name, default, description in opts:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
125 name = groupname + '_' + name
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
126 if isinstance(default, defaultconfig.DefaultExpression):
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
127 default = default.value
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
128 settings[name] = default
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
129 for groupname in defaultconfig.options_no_group_name:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
130 heading, desc, opts = defaultconfig.options_no_group_name[groupname]
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
131 for name, default, description in opts:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
132 if isinstance(default, defaultconfig.DefaultExpression):
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
133 default = default.value
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
134 settings[name] = default
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
135
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
136 def iter_vnames(cfg):
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
137 dedup = {}
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
138 for name in cfg.__dict__:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
139 dedup[name] = True
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
140 yield name, cfg.__dict__[name]
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
141 for cls in cfg.__class__.mro():
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
142 if cls == defaultconfig.ConfigFunctionality:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
143 break
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
144 for name in cls.__dict__:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
145 if not name in dedup:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
146 dedup[name] = True
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
147 yield name, cls.__dict__[name]
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
148
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
149 found = []
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
150 for vname, value in iter_vnames(app.cfg):
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
151 if hasattr(defaultconfig.ConfigFunctionality, vname):
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
152 continue
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
153 if vname in settings and settings[vname] == value:
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
154 continue
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
155 found.append((vname, value))
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
156
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
157 found.sort()
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
158 return render_template('admin/wikiconfig.html',
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
159 title_name=_(u"Wiki Configuration"),
54
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
160 found=found, settings=settings)
2d6a32f75c2d WikiConfig: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 26
diff changeset
161
55
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
162
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
163 @admin.route('/wikiconfighelp', methods=['GET', ])
186
5dd1db45ed55 implement require_permission decorator
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 185
diff changeset
164 @require_permission(SUPERUSER)
55
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
165 def wikiconfighelp():
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
166 def format_default(default):
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
167 if isinstance(default, defaultconfig.DefaultExpression):
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
168 default_txt = default.text
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
169 else:
969
5bf6d7a2ffcf Convert all %r, %s, %x, %d, %i, %o to new Format String Syntax
Vedran Mileti? <rivanvx@gmail.com>
parents: 953
diff changeset
170 default_txt = repr(default)
55
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
171 if len(default_txt) > 30:
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
172 default_txt = '...'
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
173 return default_txt
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
174
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
175 groups = []
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
176 for groupname in defaultconfig.options:
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
177 heading, desc, opts = defaultconfig.options[groupname]
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
178 opts = sorted([(groupname + '_' + name, format_default(default), description)
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
179 for name, default, description in opts])
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
180 groups.append((heading, desc, opts))
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
181 for groupname in defaultconfig.options_no_group_name:
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
182 heading, desc, opts = defaultconfig.options_no_group_name[groupname]
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
183 opts = sorted([(name, format_default(default), description)
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
184 for name, default, description in opts])
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
185 groups.append((heading, desc, opts))
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
186 groups.sort()
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
187 return render_template('admin/wikiconfighelp.html',
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
188 title_name=_(u"Wiki Configuration Help"),
55
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
189 groups=groups)
32b88d45d63c WikiConfigHelp: remove macro, create admin view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 54
diff changeset
190
91
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
191
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
192 @admin.route('/highlighterhelp', methods=['GET', ])
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
193 def highlighterhelp():
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
194 """display a table with list of available Pygments lexers"""
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
195 import pygments.lexers
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
196 headings = [_('Lexer description'),
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
197 _('Lexer names'),
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
198 _('File patterns'),
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
199 _('Mimetypes'),
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
200 ]
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
201 lexers = pygments.lexers.get_all_lexers()
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
202 rows = sorted([[desc, ' '.join(names), ' '.join(patterns), ' '.join(mimetypes), ]
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
203 for desc, names, patterns, mimetypes in lexers])
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
204 return render_template('admin/highlighterhelp.html',
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
205 title_name=_(u"Highlighter Help"),
91
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
206 headings=headings,
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
207 rows=rows)
2e0766600e8f admin/highlighterhelp view (replaces HighlighterList macro), added table macro to utils.html template
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 55
diff changeset
208
94
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
209
92
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
210 @admin.route('/interwikihelp', methods=['GET', ])
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
211 def interwikihelp():
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
212 """display a table with list of known interwiki names / urls"""
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
213 headings = [_('InterWiki name'),
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
214 _('URL'),
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
215 ]
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
216 rows = sorted(app.cfg.interwiki_map.items())
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
217 return render_template('admin/interwikihelp.html',
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
218 title_name=_(u"Interwiki Help"),
92
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
219 headings=headings,
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
220 rows=rows)
5ff01f07c67c admin/interwikihelp view (replaces InterWiki macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 91
diff changeset
221
94
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
222
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
223 @admin.route('/itemsize', methods=['GET', ])
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
224 def itemsize():
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
225 """display a table with item sizes"""
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
226 headings = [_('Size'),
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
227 _('Item name'),
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
228 ]
1039
b521a6667a54 access to Item's name through name property instead of meta directly.
Luis Henrique Fagundes <lhfagundes@gmail.com>
parents: 1006
diff changeset
229 rows = [(rev.meta[SIZE], rev.name)
997
3e912ed37167 fix item sizes view
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 969
diff changeset
230 for rev in flaskg.storage.documents(wikiname=app.cfg.interwikiname)]
94
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
231 rows = sorted(rows, reverse=True)
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
232 return render_template('admin/itemsize.html',
1006
b65a998fab8e fixes #61 using title_name instead of item_name for pages without an item
Bruno Gola <brunogola@gmail.com>
parents: 997
diff changeset
233 title_name=_(u"Item Size"),
94
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
234 headings=headings,
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
235 rows=rows)
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
236
990fdbe2d52c admin/itemsize view (replaces PageSize macro)
Thomas Waldmann <tw AT waldmann-edv DOT de>
parents: 92
diff changeset
237