Changeset 2619

Show
Ignore:
Timestamp:
09/06/07 17:20:48 (1 year ago)
Author:
Blackhex
Message:
  • Fixed missfunctional display of new replies count in forum list.
  • Fixed empty messages bodies display.
Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • discussionplugin/0.11/tracdiscussion/api.py

    r2618 r2619  
    99from trac.util.datefmt import to_timestamp, to_datetime, utc, \ 
    1010  format_datetime, pretty_timedelta 
    11  
     11from trac.util.html import html 
     12 
     13from genshi import Markup 
    1214from genshi.template import TemplateLoader 
    1315 
     
    2830        group, forum, topic, message = self._get_items(context) 
    2931        modes = self._get_modes(context, group, forum, topic, message) 
     32        self.log.debug(modes) 
    3033 
    3134        # Determine moderator rights. 
     
    7174        if topic: 
    7275            topic['subject'] = format_to_oneliner(context, topic['subject']) 
     76            topic['body'] = format_to_html(context, topic['body']) 
    7377            topic['author'] = format_to_oneliner(context, topic['author']) 
    74             topic['body'] = format_to_html(context, topic['body']) 
    7578            topic['time'] = format_datetime(topic['time']) 
    7679        if message: 
     
    123126        preview = context.req.args.has_key('preview'); 
    124127        submit = context.req.args.has_key('submit'); 
     128        self.log.debug('realm: %s, action: %s, preview: %s, submit: %s' % ( 
     129          context.realm, action, preview, submit)) 
    125130 
    126131        # Determine mode. 
     
    532537                new_time = to_timestamp(datetime.now(utc)) 
    533538 
     539                self.log.debug((new_subject, new_body)) 
     540 
    534541                # Add topic. 
    535542                self.add_topic(context, forum['id'], new_subject, new_time, 
     
    566573                new_subject = context.req.args.get('subject') 
    567574                new_body = context.req.args.get('body') 
     575                self.log.debug('new_body: ' + new_body) 
    568576 
    569577                # Edit topic. 
     
    716724 
    717725        # Get time when topic was visited from session. 
    718         visit_time = context.visited_topics.has_key(topic['id']) and \ 
    719           int(context.visited_topics[topic['id']] or 0
     726        visit_time = int(context.visited_topics.has_key(topic['id']) and 
     727          (context.visited_topics[topic['id']] or 0)
    720728 
    721729        # Update this topic visit time. 
     
    727735 
    728736        # Prepare display of topic. 
    729         if new_author: 
     737        self.log.debug( (new_body,)) 
     738        if new_author != None: 
    730739            self.data['author'] = format_to_oneliner(context, new_author) 
    731         if new_subject
     740        if new_subject != None
    732741            self.data['subject'] = format_to_oneliner(context, new_subject) 
    733         if new_body
     742        if new_body != None
    734743            self.data['body'] = format_to_html(context, new_body) 
    735744 
     
    874883 
    875884        def _get_new_topic_count(context, forum_id): 
    876            time = context.visited_forums.has_key(forum_id) and \ 
    877              int(context.visited_forums[forum_id] or 0
     885           time = int(context.visited_forums.has_key(forum_id) and 
     886             (context.visited_forums[forum_id] or 0)
    878887           sql = "SELECT COUNT(id) FROM topic t WHERE t.forum = %s AND t.time > %s" 
    879888 
     
    885894 
    886895        def _get_new_replies_count(context, forum_id): 
    887            time = context.visited_forums.has_key(forum_id) and \ 
    888              int(context.visited_topics[forum_id] or 0
    889            sql = "SELECT COUNT(id) FROM message m WHERE m.forum = %s AND m.time > %s" 
    890  
    891            context.env.log.debug(sql % (forum_id, time)) 
    892            context.cursor.execute(sql, (forum_id, time)) 
     896           sql = "SELECT id FROM topic t WHERE t.forum = %s" 
     897           context.env.log.debug(sql % (forum_id,)
     898           context.cursor.execute(sql, (forum_id,)) 
     899 
     900           # Get IDs of topics in this forum. 
     901           topics = [] 
    893902           for row in context.cursor: 
    894               return int(row[0]) 
    895            return 0 
     903               topics.append(row[0]) 
     904 
     905           # Count unseen messages. 
     906           count = 0 
     907           for topic_id in topics: 
     908               time = int(context.visited_topics.has_key(topic_id) and 
     909                 (context.visited_topics[topic_id] or 0)) 
     910               sql = "SELECT COUNT(id) FROM message m WHERE m.topic = %s AND m.time > %s" 
     911               context.env.log.debug(sql % (topic_id, time)) 
     912               context.cursor.execute(sql, (topic_id, time)) 
     913               for row in context.cursor: 
     914                   count += int(row[0]) 
     915 
     916           return count 
    896917 
    897918        if not order_by in ('topics', 'replies', 'lasttopic', 'lastreply'): 
     
    938959 
    939960        def _get_new_replies_count(context, topic_id): 
    940             time = context.visited_topics.has_key(topic_id) and \ 
    941              int(context.visited_topics[topic_id] or 0
     961            time = int(context.visited_topics.has_key(topic_id) and 
     962              (context.visited_topics[topic_id] or 0)
    942963            sql = "SELECT COUNT(id) FROM message m WHERE m.topic = %s AND m.time > %s" 
    943964 
  • discussionplugin/0.11/tracdiscussion/templates/discussion-macros.html

    r2618 r2619  
    1414        <a name="-1"></a> 
    1515 
    16         <div class="header"> 
    17           <div class="subject"> 
    18             ${is_topic_edit and discussion.subject or discussion.topic.subject} 
    19           </div> 
    20           <div class="body"> 
    21             ${is_topic_edit and discussion.body or discussion.topic.body} 
    22           </div> 
     16        <div class="header" py:choose=""> 
     17          <py:when test="is_topic_edit"> 
     18            <div class="subject"> 
     19              ${discussion.subject or '&nbsp;'} 
     20            </div> 
     21            <div class="body"> 
     22              ${discussion.body or '&nbsp;'} 
     23            </div> 
     24          </py:when> 
     25          <py:otherwise> 
     26            <div class="subject"> 
     27              ${discussion.topic.subject or '&nbsp;'} 
     28            </div> 
     29            <div class="body"> 
     30              ${discussion.topic.body or '&nbsp;'} 
     31            </div> 
     32          </py:otherwise> 
    2333        </div> 
    2434 
     
    118128      </div> 
    119129      <div class="body"> 
    120         ${discussion.body
     130        ${discussion.body or Markup('&lt;p&gt;&nbsp;&lt;/p&gt;')
    121131      </div> 
    122132      <div class="footer"> 
     
    148158        </div> 
    149159 
    150         <div class="body"> 
    151           ${is_message_edit and discussion.body or message.body} 
     160        <div class="body" py:choose=""> 
     161          <py:when test="is_message_edit"> 
     162            ${discussion.body or Markup('&lt;p&gt;&nbsp;&lt;/p&gt;')} 
     163          </py:when> 
     164          <py:otherwise> 
     165            ${message.body or Markup('&lt;p&gt;&nbsp;&lt;/p&gt;')} 
     166          </py:otherwise> 
    152167        </div> 
    153168 
  • discussionplugin/0.11/tracdiscussion/templates/topic-add.html

    r2365 r2619  
    1919            <div class="header"> 
    2020              <div class="subject"> 
    21                 ${discussion.subject
     21                ${discussion.subject or '&nbsp;'
    2222              </div> 
    2323              <div class="body"> 
    24                 ${discussion.body
     24                ${discussion.body or '&nbsp;'
    2525              </div> 
    2626              <div class="footer"> 
     
    5858            <div class="field"> 
    5959              <label for="body">Body:</label><br/> 
    60               <textarea id="body" class="wikitext" name="body" cols="80" rows="20">${req.args.body or 'Enter your message here...'}</textarea><br/> 
     60              <py:choose> 
     61                <py:when test="req.args.preview"> 
     62                  <textarea id="body" class="wikitext" name="body" cols="80" rows="20">${req.args.body}</textarea><br/> 
     63                </py:when> 
     64                <py:otherwise> 
     65                  <textarea id="body" class="wikitext" name="body" cols="80" rows="20">Enter your message here...</textarea><br/> 
     66                </py:otherwise> 
     67              </py:choose> 
    6168            </div> 
    6269