Changeset 3518

Show
Ignore:
Timestamp:
04/16/08 02:39:45 (6 months ago)
Author:
Blackhex
Message:
  • IMPORTANT!!! Now DiscussionApi? is component even in 0.10 branch, so enable it!
  • Default display mode configuration option added (#2911).
  • Default forum and topic sorting configuration options added. (#2910).
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • discussionplugin/0.10/tracdiscussion/admin.py

    r3373 r3518  
    1919    implements(IAdminPageProvider) 
    2020 
    21     # Extension points. 
    22     discussion_manipulators = ExtensionPoint(IDiscussionManipulator) 
    23  
    2421    # IAdminPageProvider 
    2522    def get_admin_pages(self, req): 
     
    4138 
    4239        # Retrun page content 
    43         api = DiscussionApi(self, req) 
     40        api = self.env[DiscussionApi] 
    4441        return api.render_discussion(req) 
  • discussionplugin/0.10/tracdiscussion/api.py

    r3373 r3518  
    44 
    55from trac.core import * 
     6from trac.config import Option 
    67from trac.web.chrome import add_stylesheet 
    78from trac.wiki import wiki_to_html, wiki_to_oneliner 
     
    3233        ticket. Therefore, a return value of `[]` means everything is OK.""" 
    3334 
    34 class DiscussionApi(object): 
    35     def __init__(self, component, req): 
    36         self.env = component.env 
    37         self.log = component.log 
    38         self.discussion_manipulators = component.discussion_manipulators 
     35class DiscussionApi(Component): 
     36 
     37    # Extension points. 
     38    discussion_manipulators = ExtensionPoint(IDiscussionManipulator) 
     39 
     40    default_display = Option('discussion', 'default_display', 'tree', 
     41      'Default display mode of topic message list.') 
     42    forum_sort = Option('discussion', 'forum_sort', 'id', 'Column by which will' + 
     43      ' be sorted forum lists. Possible values are: id group name subject' + 
     44      ' time moderators description topics replies lasttopic lastreply') 
     45    forum_sort_direction = Option('discussion', 'forum_sort_direction', 'asc', 
     46      'Direction of forum lists sorting. Possible values are: asc desc.') 
     47    topic_sort = Option('discussion', 'topic_sort', 'id', 'Column by which will' + 
     48      ' be sorted topic lists. Possible values are: id forum subject time' + 
     49      ' author body replies lastreply.') 
     50    topic_sort_direction = Option('discussion', 'topic_sort_direction', 'asc', 
     51      'Direction of topic lists sorting. Possible values are: asc desc.') 
    3952 
    4053    # Main request processing function 
     
    390403 
    391404                # Get form values 
    392                 order = req.args.get('order') or 'id' 
    393                 desc = req.args.get('desc') 
     405                order = req.args.get('order') or self.forum_sort 
     406                desc = req.args.get('desc') or self.forum_sort_direction 
    394407 
    395408                # Display forums. 
     
    404417 
    405418                # Get form values 
    406                 order = req.args.get('order') or 'id' 
    407                 desc = req.args.get('desc') 
     419                order = req.args.get('order') or self.forum_sort 
     420                desc = req.args.get('desc') or self.forum_sort_direction 
    408421 
    409422                # Display forums. 
     
    510523 
    511524                # Get form values 
    512                 order = req.args.get('order') or 'id' 
    513                 desc = req.args.get('desc') 
     525                order = req.args.get('order') or self.topic_sort 
     526                desc = req.args.get('desc') or self.topic_sort_direction 
    514527 
    515528                # Display topics. 
     
    796809 
    797810        # Prepare display of messages 
    798         display = req.session.get('message-list-display') 
     811        display = req.session.get('message-list-display') or \ 
     812          self.default_display 
    799813        req.hdf['discussion.display'] = display 
    800814        if display == 'flat-asc': 
    801815            req.hdf['discussion.messages'] = self.get_flat_messages(req, cursor, 
    802816              topic['id'], visit_time) 
    803         elif display == 'flat-desc'
     817        elif display == 'flat-desc' or display == 'flat'
    804818            req.hdf['discussion.messages'] = self.get_flat_messages(req, cursor, 
    805819              topic['id'], visit_time, 'ORDER BY time DESC') 
    806         else
     820        elif display == 'tree' or display == ''
    807821            req.hdf['discussion.messages'] = self.get_messages(req, cursor, 
    808822             topic['id'], visit_time) 
     823        else: 
     824            raise TracError('Unsupported display mode: %s' % (display)) 
    809825 
    810826    # Get one item functions 
  • discussionplugin/0.10/tracdiscussion/core.py

    r3373 r3518  
    2121      IPermissionRequestor) 
    2222 
    23     # Extension points. 
    24     discussion_manipulators = ExtensionPoint(IDiscussionManipulator) 
    25  
     23    # Configuration options. 
    2624    title = Option('discussion', 'title', 'Discussion', 
    2725      'Main navigation bar button title.') 
     
    7876 
    7977        # Return page content 
    80         api = DiscussionApi(self, req) 
     78        api = self.env[DiscussionApi] 
    8179        return api.render_discussion(req) 
  • discussionplugin/0.10/tracdiscussion/wiki.py

    r3464 r3518  
    2222    """ 
    2323    implements(IWikiSyntaxProvider, IWikiMacroProvider, IRequestFilter) 
    24  
    25     # Extension points. 
    26     discussion_manipulators = ExtensionPoint(IDiscussionManipulator) 
    2724 
    2825    # IWikiSyntaxProvider methods 
     
    6259 
    6360            # Get topic by subject 
    64             api = DiscussionApi(self, req) 
     61            api = self.env[DiscussionApi] 
    6562            topic = api.get_topic_by_subject(cursor, subject) 
    6663            self.log.debug('subject: %s' % (subject,)) 
  • discussionplugin/0.11/tracdiscussion/api.py

    r3160 r3518  
    55from trac.core import * 
    66from trac.mimeview import Context 
     7from trac.config import Option 
    78from trac.perm import PermissionError 
    89from trac.web.chrome import add_stylesheet, add_script, add_ctxtnav 
     
    1819 
    1920class DiscussionApi(Component): 
     21 
     22    default_display = Option('discussion', 'default_display', 'tree', 
     23      'Default display mode of topic message list.') 
     24    forum_sort = Option('discussion', 'forum_sort', 'id', 'Column by which will' + 
     25      ' be sorted forum lists. Possible values are: id group name subject' + 
     26      ' time moderators description topics replies lasttopic lastreply') 
     27    forum_sort_direction = Option('discussion', 'forum_sort_direction', 'asc', 
     28      'Direction of forum lists sorting. Possible values are: asc desc.') 
     29    topic_sort = Option('discussion', 'topic_sort', 'id', 'Column by which will' + 
     30      ' be sorted topic lists. Possible values are: id forum subject time' + 
     31      ' author body replies lastreply.') 
     32    topic_sort_direction = Option('discussion', 'topic_sort_direction', 'asc', 
     33      'Direction of topic lists sorting. Possible values are: asc desc.') 
    2034 
    2135    # Main request processing function. 
     
    387401 
    388402                # Get form values. 
    389                 order = context.req.args.get('order') or 'id' 
    390                 desc = context.req.args.get('desc') 
     403                order = context.req.args.get('order') or self.forum_sort 
     404                desc = context.req.args.get('desc') or self.forum_sort_direction 
    391405 
    392406                # Display forums. 
     
    506520 
    507521                # Get form values 
    508                 order = context.req.args.get('order') or 'id' 
    509                 desc = context.req.args.get('desc') 
     522                order = context.req.args.get('order') or self.topic_sort 
     523                desc = context.req.args.get('desc') or self.topic_sort_direction 
    510524 
    511525                # Display topics. 
     
    762776 
    763777        # Prepare display of messages. 
    764         display = context.req.session.get('message-list-display') 
     778        display = context.req.session.get('message-list-display') or \ 
     779          self.default_display 
    765780        self.data['display'] = display 
    766781        if display == 'flat-asc': 
    767782            self.data['messages'] = self.get_flat_messages(context, 
    768783              topic['id'], visit_time) 
    769         elif display == 'flat-desc'
     784        elif display == 'flat-desc' or display == 'flat'
    770785            self.data['messages'] = self.get_flat_messages(context, 
    771786              topic['id'], visit_time, 'ORDER BY time DESC') 
    772         else
     787        elif display == 'tree' or display == ''
    773788            self.data['messages'] = self.get_messages(context, topic['id'], 
    774789              visit_time) 
     790        else: 
     791            raise TracError('Unsupported display mode: %s' % (display)) 
    775792 
    776793    # Get one item functions.