Changeset 49:76c064ef79a1
- Timestamp:
- Mar 26, 2009 9:57:57 PM (4 years ago)
- Branch:
- default
- Files:
-
- 21 added
- 5 edited
-
apps/account/settings.py (modified) (1 diff)
-
apps/djapian/__init__.py (added)
-
apps/djapian/admin.py (added)
-
apps/djapian/database.py (added)
-
apps/djapian/indexer.py (added)
-
apps/djapian/management/__init__.py (added)
-
apps/djapian/management/commands/__init__.py (added)
-
apps/djapian/management/commands/index.py (added)
-
apps/djapian/management/commands/indexshell.py (added)
-
apps/djapian/models.py (added)
-
apps/djapian/resultset.py (added)
-
apps/djapian/signals.py (added)
-
apps/djapian/tests/__init__.py (added)
-
apps/djapian/tests/common.py (added)
-
apps/djapian/tests/index.py (added)
-
apps/djapian/tests/pagination.py (added)
-
apps/djapian/tests/query.py (added)
-
apps/djapian/tests/search.py (added)
-
apps/djapian/tests/utils.py (added)
-
apps/djapian/utils/__init__.py (added)
-
apps/djapian/utils/loading.py (added)
-
apps/forum/index.py (added)
-
apps/forum/templates/forum/search_posts.html (modified) (3 diffs)
-
apps/forum/templates/forum/search_topics.html (modified) (2 diffs)
-
apps/forum/views.py (modified) (6 diffs)
-
settings.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
apps/account/settings.py
r0 r49 1 1 from django.conf import settings 2 3 2 4 3 ACCOUNT_DOMAIN = getattr(settings, 'ACCOUNT_DOMAIN', 'fix.your.settings.com') -
apps/forum/templates/forum/search_posts.html
r0 r49 9 9 </div> 10 10 </div> 11 11 {% if posts %} 12 12 {% for post in posts %} 13 13 <div class="blockpost searchposts roweven"> 14 <h2>{% link post. topic.forum %} » {% link post.topic %} » <a href="{{ post.get_absolute_url }}">{% forum_time post.created %}</a></h2>14 <h2>{% link post.instance.topic.forum %} » {% link post.instance.topic %} » <a href="{{ post.instance.get_absolute_url }}">{% forum_time post.instance.created %}</a></h2> 15 15 16 16 <div class="box"> … … 18 18 <div class="postleft"> 19 19 <dl> 20 <dt><strong><a href="{% url forum_profile post. user %}">{{ post.user }}</a></strong></dt>21 <dd>{% trans "Replies:" %} {{ post. topic.post_count }}</dd>20 <dt><strong><a href="{% url forum_profile post.instance.user %}">{{ post.instance.user }}</a></strong></dt> 21 <dd>{% trans "Replies:" %} {{ post.instance.topic.post_count }}</dd> 22 22 <dd><div class="icon"><div class="nosize"><!-- --></div></div> 23 23 </dd> 24 24 25 <dd><p class="clearb"><a href="{{ post. get_absolute_url }}">{% trans "Go to post" %}</a></p></dd>25 <dd><p class="clearb"><a href="{{ post.instance.get_absolute_url }}">{% trans "Go to post" %}</a></p></dd> 26 26 </dl> 27 27 </div> 28 28 <div class="postright"> 29 29 <div class="postmsg"> 30 {{ post. body_html|safe }}30 {{ post.instance.body_html|safe }} 31 31 32 32 </div> … … 37 37 </div> 38 38 {% endfor %} 39 {% else %} 40 <div id="msg" class="block"> 41 <h2><span>{% trans "Info" %}</span></h2> 42 <div class="box"> 43 44 <div class="inbox"> 45 <p>{% trans "Your search returned no hits." %}</p> 46 <p><a href="javascript: history.go(-1)">{% trans "Go back" %}</a></p> 47 </div> 48 </div> 49 </div> 50 {% endif %} 39 51 40 52 <div class="postlinksb"> -
apps/forum/templates/forum/search_topics.html
r42 r49 10 10 </div> 11 11 </div> 12 12 {% if topics %} 13 13 <div id="vf" class="blocktable"> 14 14 <h2><span>{% trans "Search results" %}</span></h2> … … 50 50 </div> 51 51 </div> 52 {% else %} 53 <div id="msg" class="block"> 54 <h2><span>{% trans "Info" %}</span></h2> 55 <div class="box"> 56 57 <div class="inbox"> 58 <p>{% trans "Your search returned no hits." %}</p> 59 <p><a href="javascript: history.go(-1)">{% trans "Go back" %}</a></p> 60 </div> 61 </div> 62 </div> 63 {% endif %} 52 64 53 65 <div class="linksb"> -
apps/forum/views.py
r47 r49 20 20 from apps.forum import settings as forum_settings 21 21 from apps.forum.util import urlize, smiles 22 from apps.forum.index import post_indexer 22 23 23 24 @render_to('forum/index.html') … … 118 119 @render_to('forum/search_topics.html') 119 120 def search(request): 121 post_indexer.update() 120 122 if 'action' in request.GET: 121 123 action = request.GET['action'] … … 134 136 posts = Post.objects.filter(user__id=user_id) 135 137 topics = [post.topic for post in posts] 136 elif action == 'search': 137 posts = Post.objects.all() 138 form = PostSearchForm(request.GET) 139 posts = form.filter(posts) 140 topics = [post.topic for post in posts] 141 if action == 'topics': 142 return {'topics': topics} 138 elif action == 'search': 139 keywords = request.GET.get('keywords') 140 author = request.GET.get('author') 141 forum = request.GET.get('forum') 142 search_in = request.GET.get('search_in') 143 sort_by = request.GET.get('sort_by') 144 sort_dir = request.GET.get('sort_dir') 145 146 # TODO: Need refactoring 147 if keywords and author: 148 if search_in == 'all': 149 if forum == '0': 150 query = 'user:%s AND (topic:%s OR body:%s)' % (author, keywords, keywords) 151 else: 152 query = 'user:%s AND forum:%s AND (topic:%s OR body:%s)' % (author, forum, keywords, keywords) 153 elif search_in == 'message': 154 if forum == '0': 155 query = 'user:%s AND body:%s' % (author, keywords) 156 else: 157 query = 'user:%s AND forum:%s AND body:%s' % (author, forum, keywords) 158 elif search_in == 'topic': 159 if forum == '0': 160 query = 'user:%s AND topic:%s' % (author, keywords) 161 else: 162 query = 'user:%s AND forum:%s AND topic:%s' % (author, forum, keywords) 163 elif keywords: 164 if search_in == 'all': 165 if forum == '0': 166 query = 'topic:%s OR body:%s' % (keywords, keywords) 167 else: 168 query = 'forum:%s AND (topic:%s OR body:%s)' % (forum, keywords, keywords) 169 elif search_in == 'message': 170 if forum == '0': 171 query = 'body:%s' % (keywords) 172 else: 173 query = 'forum:%s AND body:%s' % (forum, keywords) 174 elif search_in == 'topic': 175 if forum == '0': 176 query = 'topic:%s' % (keywords) 177 else: 178 query = 'forum:%s AND topic:%s' % (forum, keywords) 179 elif author: 180 if forum == '0': 181 query = 'user:%s' % (author) 182 else: 183 query = 'forum:%s AND user:%s' % (forum, author) 184 185 if sort_by == '0': 186 order = 'created' 187 elif sort_by == '1': 188 order = 'user' 189 elif sort_by == '2': 190 order = 'topic' 191 elif sort_by == '3': 192 order = 'forum' 193 194 if sort_dir == 'DESC': 195 order = '-' + order 196 posts = post_indexer.search(query).order_by(order) 197 198 if 'topics' in request.GET['show_as']: 199 topics = [] 200 for post in posts: 201 if post.instance.topic not in topics: 202 topics.append(post.instance.topic) 203 return {'topics': topics}, 'forum/search_topics.html' 143 204 elif 'posts' in request.GET['show_as']: 144 205 return {'posts': posts}, 'forum/search_posts.html' … … 305 366 if form.is_valid(): 306 367 post = form.save(); 368 post_indexer.update() 307 369 return HttpResponseRedirect(post.get_absolute_url()) 308 370 … … 477 539 if form.is_valid(): 478 540 post = form.save() 541 post_indexer.update() 479 542 return HttpResponseRedirect(post.get_absolute_url()) 480 543 … … 592 655 593 656 post.delete() 657 post_indexer.update() 594 658 profile = get_object_or_404(Profile, user=post.user) 595 659 profile.post_count = Post.objects.filter(user=post.user).count() -
settings.py
r45 r49 116 116 'forum', 117 117 'djapian', 118 'django_evolution', 118 119 ) 119 120 … … 138 139 ACCOUNT_AUTH_KEY_TIMEOUT = 60 * 60 * 24 139 140 141 # Djapian settings 142 DJAPIAN_DATABASE_PATH = os.path.join(PROJECT_ROOT, 'djapian_db') 143 140 144 try: 141 from local_settings import *145 from local_settings import * 142 146 except ImportError: 143 147 pass
Note: See TracChangeset
for help on using the changeset viewer.
