Changeset 2619
- Timestamp:
- 09/06/07 17:20:48 (1 year ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
discussionplugin/0.11/tracdiscussion/api.py
r2618 r2619 9 9 from trac.util.datefmt import to_timestamp, to_datetime, utc, \ 10 10 format_datetime, pretty_timedelta 11 11 from trac.util.html import html 12 13 from genshi import Markup 12 14 from genshi.template import TemplateLoader 13 15 … … 28 30 group, forum, topic, message = self._get_items(context) 29 31 modes = self._get_modes(context, group, forum, topic, message) 32 self.log.debug(modes) 30 33 31 34 # Determine moderator rights. … … 71 74 if topic: 72 75 topic['subject'] = format_to_oneliner(context, topic['subject']) 76 topic['body'] = format_to_html(context, topic['body']) 73 77 topic['author'] = format_to_oneliner(context, topic['author']) 74 topic['body'] = format_to_html(context, topic['body'])75 78 topic['time'] = format_datetime(topic['time']) 76 79 if message: … … 123 126 preview = context.req.args.has_key('preview'); 124 127 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)) 125 130 126 131 # Determine mode. … … 532 537 new_time = to_timestamp(datetime.now(utc)) 533 538 539 self.log.debug((new_subject, new_body)) 540 534 541 # Add topic. 535 542 self.add_topic(context, forum['id'], new_subject, new_time, … … 566 573 new_subject = context.req.args.get('subject') 567 574 new_body = context.req.args.get('body') 575 self.log.debug('new_body: ' + new_body) 568 576 569 577 # Edit topic. … … 716 724 717 725 # 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)) 720 728 721 729 # Update this topic visit time. … … 727 735 728 736 # Prepare display of topic. 729 if new_author: 737 self.log.debug( (new_body,)) 738 if new_author != None: 730 739 self.data['author'] = format_to_oneliner(context, new_author) 731 if new_subject :740 if new_subject != None: 732 741 self.data['subject'] = format_to_oneliner(context, new_subject) 733 if new_body :742 if new_body != None: 734 743 self.data['body'] = format_to_html(context, new_body) 735 744 … … 874 883 875 884 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)) 878 887 sql = "SELECT COUNT(id) FROM topic t WHERE t.forum = %s AND t.time > %s" 879 888 … … 885 894 886 895 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 = [] 893 902 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 896 917 897 918 if not order_by in ('topics', 'replies', 'lasttopic', 'lastreply'): … … 938 959 939 960 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)) 942 963 sql = "SELECT COUNT(id) FROM message m WHERE m.topic = %s AND m.time > %s" 943 964 discussionplugin/0.11/tracdiscussion/templates/discussion-macros.html
r2618 r2619 14 14 <a name="-1"></a> 15 15 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 ' '} 20 </div> 21 <div class="body"> 22 ${discussion.body or ' '} 23 </div> 24 </py:when> 25 <py:otherwise> 26 <div class="subject"> 27 ${discussion.topic.subject or ' '} 28 </div> 29 <div class="body"> 30 ${discussion.topic.body or ' '} 31 </div> 32 </py:otherwise> 23 33 </div> 24 34 … … 118 128 </div> 119 129 <div class="body"> 120 ${discussion.body }130 ${discussion.body or Markup('<p> </p>')} 121 131 </div> 122 132 <div class="footer"> … … 148 158 </div> 149 159 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('<p> </p>')} 163 </py:when> 164 <py:otherwise> 165 ${message.body or Markup('<p> </p>')} 166 </py:otherwise> 152 167 </div> 153 168 discussionplugin/0.11/tracdiscussion/templates/topic-add.html
r2365 r2619 19 19 <div class="header"> 20 20 <div class="subject"> 21 ${discussion.subject }21 ${discussion.subject or ' '} 22 22 </div> 23 23 <div class="body"> 24 ${discussion.body }24 ${discussion.body or ' '} 25 25 </div> 26 26 <div class="footer"> … … 58 58 <div class="field"> 59 59 <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> 61 68 </div> 62 69
