Changeset 1375
- Timestamp:
- 10/12/06 08:15:29 (2 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
discussionplugin/0.10/tracdiscussion/api.py
r1252 r1375 291 291 desc = req.args.get('desc') 292 292 293 # Prepare ORDER BY statement294 order_by = 'ORDER BY ' + order295 if desc:296 order_by = order_by + ' DESC'297 else:298 order_by = order_by + ' ASC'299 300 293 # Display groups. 301 294 req.hdf['discussion.order'] = order … … 305 298 req.hdf['discussion.description'] = \ 306 299 group['description'] 307 req.hdf['discussion.groups'] = self.get_groups(req, cursor, order _by)300 req.hdf['discussion.groups'] = self.get_groups(req, cursor, order, desc) 308 301 309 302 elif mode == 'group-add': … … 353 346 order = req.args.get('order') or 'id' 354 347 desc = req.args.get('desc') 355 356 # Prepare ORDER BY statement357 order_by = 'ORDER BY ' + order358 if desc:359 order_by = order_by + ' DESC'360 else:361 order_by = order_by + ' ASC'362 348 363 349 # Display forums. … … 366 352 req.hdf['discussion.groups'] = self.get_groups(req, cursor) 367 353 req.hdf['discussion.forums'] = self.get_forums(req, cursor, 368 order _by)354 order, desc) 369 355 370 356 elif mode == 'admin-forum-list': … … 374 360 order = req.args.get('order') or 'id' 375 361 desc = req.args.get('desc') 376 377 # Prepare ORDER BY statement378 order_by = 'ORDER BY ' + order379 if desc:380 order_by = order_by + ' DESC'381 else:382 order_by = order_by + ' ASC'383 362 384 363 # Display forums. … … 395 374 req.hdf['discussion.users'] = self.get_users() 396 375 req.hdf['discussion.groups'] = self.get_groups(req, cursor) 397 req.hdf['discussion.forums'] = self.get_forums(req, cursor, order_by) 376 req.hdf['discussion.forums'] = self.get_forums(req, cursor, 377 order, desc) 398 378 399 379 elif mode == 'forum-add': … … 468 448 desc = req.args.get('desc') 469 449 470 # Prepare ORDER BY statement471 order_by = 'ORDER BY ' + order472 if desc:473 order_by = order_by + ' DESC'474 else:475 order_by = order_by + ' ASC'476 477 450 # Display topics. 478 451 req.hdf['discussion.order'] = order 479 452 req.hdf['discussion.desc'] = desc 480 453 req.hdf['discussion.topics'] = self.get_topics(req, cursor, 481 forum['id'], order _by)454 forum['id'], order, desc) 482 455 483 456 elif mode == 'topic-add': … … 517 490 new_body = Markup(req.args.get('body')) 518 491 519 # Add topic.492 #Add topic. 520 493 self.add_topic(cursor, forum['id'], new_subject, new_author, 521 494 new_body) … … 635 608 new_body = Markup(req.args.get('body')) 636 609 637 # Add message.610 #Add message. 638 611 if message: 639 612 self.add_message(cursor, forum['id'], topic['id'], … … 791 764 # Get list functions 792 765 793 def get_groups(self, req, cursor, order_by = ' ORDER BY id ASC'):766 def get_groups(self, req, cursor, order_by = 'id', desc = False): 794 767 # Get count of forums without group 795 768 sql = "SELECT COUNT(id) FROM forum WHERE forum_group = 0" … … 803 776 804 777 # Get forum groups 778 if order_by != 'forum': 779 order_by = 'g.' + order_by 805 780 columns = ('id', 'name', 'description', 'forums') 806 sql = "SELECT id, name, description, (SELECT COUNT(id) FROM forum f" \ 807 " WHERE f.forum_group = forum_group.id) FROM forum_group " + order_by 781 sql = "SELECT g.id, g.name, g.description, (SELECT COUNT(f.id) AS" \ 782 " forums FROM forum f WHERE f.forum_group = g.id) FROM forum_group" \ 783 " g ORDER BY " + order_by + (" ASC", " DESC")[bool(desc)] 808 784 self.log.debug(sql) 809 785 cursor.execute(sql) … … 815 791 return groups 816 792 817 def get_forums(self, req, cursor, order_by = 'ORDER BY subject ASC'): 793 def get_forums(self, req, cursor, order_by = 'subject', desc = False): 794 if not order_by in ('topics', 'replies', 'lastreply', 'lasttopic'): 795 order_by = 'f.' + order_by 818 796 columns = ('id', 'name', 'author', 'time', 'moderators', 'group', 819 797 'subject', 'description', 'topics', 'replies', 'lastreply', 820 798 'lasttopic') 821 sql = "SELECT id, name, author, time, moderators, forum_group," \822 " subject, description, (SELECT COUNT(id) FROM topic t WHERE" \823 " t.forum = forum.id) AS topics, (SELECT COUNT(id) FROM message m" \824 " WHERE m.forum = forum.id) AS replies, (SELECT MAX(time) FROM" \825 " message m WHERE m.forum = forum.id) AS lasttopic, (SELECT" \826 " MAX(time) FROM topic t WHERE t.forum = forum.id) AS lastreply" \827 " FROM forum " + order_by799 sql = "SELECT f.id, f.name, f.author, f.time, f.moderators," \ 800 " f.forum_group, f.subject, f.description, (SELECT COUNT(t.id)" \ 801 " FROM topic t WHERE t.forum = f.id) AS topics, (SELECT COUNT(m.id)" \ 802 " FROM message m WHERE m.forum = f.id) AS replies, (SELECT" \ 803 " MAX(time) FROM message m WHERE m.forum = f.id) AS lasttopic," \ 804 " (SELECT MAX(time) FROM topic t WHERE t.forum = f.id) AS lastreply" \ 805 " FROM forum f ORDER BY " + order_by + (" ASC", " DESC")[bool(desc)] 828 806 self.log.debug(sql) 829 807 cursor.execute(sql) … … 845 823 return forums 846 824 847 def get_topics(self, req, cursor, forum, order_by = 'ORDER BY time ASC'): 825 def get_topics(self, req, cursor, forum, order_by = 'time', desc = False): 826 if not order_by in ('replies', 'lastreply',): 827 order_by = 't.' + order_by 848 828 columns = ('id', 'forum', 'time', 'subject', 'body', 'author', 849 829 'replies', 'lastreply') 850 sql = "SELECT id, forum, time, subject, body, author, (SELECT" \ 851 " COUNT(id) FROM message m WHERE m.topic = topic.id) AS replies," \ 852 " (SELECT MAX(time) FROM message m WHERE m.topic = topic.id) AS" \ 853 " lastreply FROM topic WHERE forum = %s " + order_by 830 sql = "SELECT t.id, t.forum, t.time, t.subject, t.body, t.author," \ 831 " (SELECT COUNT(m.id) FROM message m WHERE m.topic = t.id) AS" \ 832 " replies, (SELECT MAX(m.time) FROM message m WHERE m.topic = t.id)" \ 833 " AS lastreply FROM topic t WHERE t.forum = %s ORDER BY " + order_by \ 834 + (" ASC", " DESC")[bool(desc)] 854 835 self.log.debug(sql % (forum,)) 855 836 cursor.execute(sql, (forum,)) … … 867 848 return topics 868 849 869 def get_messages(self, req, cursor, topic, time, order_by = 'ORDER BY time ASC'): 850 def get_messages(self, req, cursor, topic, time, order_by = 'time', desc = False): 851 order_by = 'm.' + order_by 870 852 columns = ('id', 'replyto', 'time', 'author', 'body') 871 sql = "SELECT id, replyto, time, author, body FROM messageWHERE" \872 " topic = %s " + order_by853 sql = "SELECT m.id, m.replyto, m.time, m.author, m.body FROM message m WHERE" \ 854 " m.topic = %s ORDER BY " + order_by + (" ASC", " DESC")[bool(desc)] 873 855 self.log.debug(sql % (topic,)) 874 856 cursor.execute(sql, (topic,)) discussionplugin/0.10/tracdiscussion/htdocs/css/discussion.css
r1262 r1375 6 6 7 7 /* Forum list */ 8 .forum-list tr > td8 .forum-list tr >td 9 9 { 10 10 margin: 0em !important; … … 185 185 { 186 186 text-align: center; 187 margin -top: 2em;187 margin: 1em; 188 188 } 189 189 discussionplugin/0.10/tracdiscussion/templates/message-list.cs
r1262 r1375 73 73 <div class="buttons"> 74 74 <input type="submit" name="preview" value="Preview"/> 75 <input type="submit" name="submit" value=" Edit"/>75 <input type="submit" name="submit" value="Submit changes"/> 76 76 <input type="button" name="cancel" value="Cancel" onclick="location.href = '<?cs var:discussion.href ?>#<?cs var:args.message ?>'"/> 77 77 </div> … … 161 161 <?cs if:trac.acl.DISCUSSION_VIEW ?> 162 162 <?cs if:!discussion.no_display && discussion.topic.id ?> 163 <?cs call:display_set_display() ?>164 163 <a name="-1"></a> 165 164 <div class="topic <?cs if:discussion.topic.new ?>new<?cs /if ?>"> … … 203 202 <?cs if:discussion.messages.0.id || args.discussion_action && ((args.discussion_action == 'add') || (args.discussion_action == 'quote') || (args.discussion_action == 'post-add')) ?> 204 203 <div class="replies <?cs if:discussion.topic.new ?>new<?cs /if ?>"> 204 <?cs call:display_set_display() ?> 205 205 <ul class="reply"> 206 206 <?cs if:discussion.messages.0.id ?> … … 214 214 <?cs /if ?> 215 215 </ul> 216 <?cs call:display_set_display() ?> 216 217 </div> 217 218 <?cs /if ?> 218 <?cs call:display_set_display() ?>219 219 <?cs else?> 220 220 <span>No discussion for this page created.</span>
