Ticket #1579: tracdiscussion.new.patch
| File tracdiscussion.new.patch, 6.5 kB (added by bewst, 2 years ago) |
|---|
-
setup.py
old new 1 1 #!/usr/bin/env python 2 # -*- coding: utf8 -*-3 2 4 3 from setuptools import setup 5 4 … … 7 6 name = 'TracDiscussion', 8 7 version = '0.5', 9 8 packages = ['tracdiscussion', 'tracdiscussion.db'], 10 package_data = {'tracdiscussion' : ['templates/*.cs', ' htdocs/css/*.css']},9 package_data = {'tracdiscussion' : ['templates/*.cs', 'templates/*.txt', 'htdocs/css/*.css']}, 11 10 entry_points = {'trac.plugins': ['TracDiscussion.core = tracdiscussion.core', 12 11 'TracDiscussion.init = tracdiscussion.init', 13 12 'TracDiscussion.wiki = tracdiscussion.wiki', … … 15 14 'TracDiscussion.admin = tracdiscussion.admin', 16 15 'TracDiscussion.search = tracdiscussion.search', 17 16 'TracDiscussion.notification = tracdiscussion.notification']}, 18 install_requires = ['TracWebAdmin'],17 # install_requires = ['TracWebAdmin'], 19 18 keywords = 'trac discussion', 20 19 author = 'Alec Thomas, Radek BartoÅ', 21 20 author_email = 'trac-hacks@swapoff.org', -
tracdiscussion/admin.py
old new 1 # -*- coding: utf8 -*-2 3 1 from tracdiscussion.api import * 4 2 from trac.core import * 5 3 from trac.perm import IPermissionRequestor 6 4 from trac.web.chrome import add_stylesheet 7 5 from trac.wiki import wiki_to_html, wiki_to_oneliner 8 from webadmin.web_ui import IAdminPageProvider9 6 import time 10 7 8 try: # Trac 0.11 9 from trac.admin import IAdminPanelProvider 10 11 except ImportError: 12 IAdminPanelProvider = None 13 14 try: # Trac 0.10 with WebAdmin plugin 15 require("TracWebAdmin") 16 from webadmin.web_ui import IAdminPageProvider 17 except (ResolutionError, ImportError): 18 IAdminPageProvider = None 19 20 11 21 class DiscussionWebAdmin(Component): 12 22 """ 13 23 The webadmin module implements discussion plugin administration 14 24 via WebAdminPlugin. 15 25 """ 16 implements(IAdminPageProvider) 26 if IAdminPanelProvider: 27 implements(IAdminPanelProvider) 28 elif IAdminPageProvider: 29 implements(IAdminPageProvider) 17 30 31 # IAdminPanelProvider 32 def get_admin_panels(self, req): 33 return self.get_admin_pages(req) 34 18 35 # IAdminPageProvider 19 36 def get_admin_pages(self, req): 20 37 if req.perm.has_permission('DISCUSSION_ADMIN'): -
tracdiscussion/search.py
old new 1 # -*- coding: utf8 -*-2 3 1 from trac.core import * 4 2 from trac.config import Option 5 from trac. Search import ISearchSource, shorten_result3 from trac.search import ISearchSource, shorten_result 6 4 from trac import util 7 5 8 6 class DiscussionSearch(Component): -
tracdiscussion/notification.py
old new 1 # -*- coding: utf8 -*-2 3 1 from trac.notification import NotifyEmail 4 2 from trac.util import format_datetime 5 3 from trac.util.text import CRLF, wrap 4 from trac.web.chrome import Chrome 6 5 7 6 class DiscussionNotifyEmail(NotifyEmail): 8 7 9 template_name = "discussion-notify-body. cs"8 template_name = "discussion-notify-body.txt" 10 9 forum = None 11 10 topic = None 12 11 message = None 13 12 torcpts = [] 14 13 ccrcpts = [] 15 14 COLS = 75 16 15 17 16 def __init__(self, env): 18 17 NotifyEmail.__init__(self, env) 19 18 … … 74 73 subject = self.topic['subject'] 75 74 76 75 # Set set e-mail template values. 77 self.hdf.set_unescaped('discussion.re', re)78 self.hdf.set_unescaped('discussion.prefix', prefix)79 self.hdf.set_unescaped('discussion.title', title)80 self.hdf.set_unescaped('discussion.id', id)81 self.hdf.set_unescaped('discussion.author', author)82 self.hdf.set_unescaped('discussion.time', time)83 self.hdf.set_unescaped('discussion.moderators', moderators)84 self.hdf.set_unescaped('discussion.subject', subject)85 self.hdf.set_unescaped('discussion.body', body)86 self.hdf.set_unescaped('discussion.link', link)76 try: 77 hdf = self.hdf 78 except AttributeError: 79 set_data = lambda k,v: self.data.__setitem__(k,v) 80 hdf = None 81 else: 82 set_data = hdf.set_unescaped 83 84 for a in 're prefix title id author time moderators subject body link'.split(): 85 set_data(a, locals()[a]) 87 86 88 87 # Render body and send notification. 89 subject = self.hdf.render('discussion-notify-subject.cs') 88 if hdf is not None: 89 subject = hdf.render('discussion-notify-subject.cs') 90 else: 91 subject = Chrome(self.env).load_template( 92 'discussion-notify-subject.txt', method='text' 93 ).generate(**self.data).render('text', encoding=None).strip() 94 90 95 self.env.log.debug(subject) 91 96 NotifyEmail.notify(self, id, subject) 92 97 -
tracdiscussion/timeline.py
old new 1 # -*- coding: utf8 -*-2 3 1 from trac.core import * 4 from trac. Timeline import ITimelineEventProvider2 from trac.timeline import ITimelineEventProvider 5 3 from trac.wiki import wiki_to_html, wiki_to_oneliner 6 4 from trac.util import Markup 7 5 from trac.util.html import html -
tracdiscussion/templates/discussion-notify-body.txt
old new 1 $title #$id - $subject 2 ---------------------------------------------------------------------------- 3 $author 4 $time 5 $moderators 6 ---------------------------------------------------------------------------- 7 8 $body 9 10 -- 11 $title URL: <$link> 12 $project.name <$project.url> 13 $project.descr -
tracdiscussion/templates/discussion-notify-subject.txt
old new
