| 1 |
from tracdiscussion.api import * |
|---|
| 2 |
from trac.core import * |
|---|
| 3 |
from trac.perm import IPermissionRequestor |
|---|
| 4 |
from trac.web.chrome import add_stylesheet |
|---|
| 5 |
from trac.wiki import wiki_to_html, wiki_to_oneliner |
|---|
| 6 |
from webadmin.web_ui import IAdminPageProvider |
|---|
| 7 |
import time |
|---|
| 8 |
|
|---|
| 9 |
class DiscussionWebAdmin(Component): |
|---|
| 10 |
""" |
|---|
| 11 |
The webadmin module implements discussion plugin administration |
|---|
| 12 |
via WebAdminPlugin. |
|---|
| 13 |
""" |
|---|
| 14 |
implements(IAdminPageProvider) |
|---|
| 15 |
|
|---|
| 16 |
# IAdminPageProvider |
|---|
| 17 |
def get_admin_pages(self, req): |
|---|
| 18 |
if req.perm.has_permission('DISCUSSION_ADMIN'): |
|---|
| 19 |
yield ('discussion', 'Discussion System', 'group', 'Forum Groups') |
|---|
| 20 |
yield ('discussion', 'Discussion System', 'forum', 'Forums') |
|---|
| 21 |
|
|---|
| 22 |
def process_admin_request(self, req, category, page, path_info): |
|---|
| 23 |
# Prepare request object |
|---|
| 24 |
if page == 'forum': |
|---|
| 25 |
if not req.args.has_key('group'): |
|---|
| 26 |
req.args['group'] = '-1' |
|---|
| 27 |
if path_info: |
|---|
| 28 |
req.args['forum'] = path_info |
|---|
| 29 |
else: |
|---|
| 30 |
if path_info: |
|---|
| 31 |
req.args['group'] = path_info |
|---|
| 32 |
req.args['component'] = 'admin' |
|---|
| 33 |
|
|---|
| 34 |
# Get database access |
|---|
| 35 |
db = self.env.get_db_cnx() |
|---|
| 36 |
cursor = db.cursor() |
|---|
| 37 |
|
|---|
| 38 |
# Retrun page content |
|---|
| 39 |
api = DiscussionApi(self, req) |
|---|
| 40 |
content = api.render_discussion(req, cursor) |
|---|
| 41 |
db.commit() |
|---|
| 42 |
return content |
|---|