Skip to content
This repository has been archived by the owner on Aug 26, 2022. It is now read-only.

Commit

Permalink
Fixing errors found by check.py
Browse files Browse the repository at this point in the history
  • Loading branch information
James Socol committed Feb 10, 2010
1 parent 7c57c9a commit 6667c90
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 46 deletions.
22 changes: 10 additions & 12 deletions apps/search/clients.py
@@ -1,6 +1,7 @@
from .sphinxapi import SphinxClient
from django.conf import settings
from .utils import crc32

from .sphinxapi import SphinxClient


class SearchClient(object):
"""
Expand All @@ -9,19 +10,17 @@ class SearchClient(object):

def __init__(self):
self.sphinx = SphinxClient()
self.sphinx.SetServer(settings.SPHINX_HOST,settings.SPHINX_PORT)
self.sphinx.SetServer(settings.SPHINX_HOST, settings.SPHINX_PORT)

def query(self, query, filters): abstract

"""
All subclasses must implement this query method
"""
def query(self,query,filters): abstract

class ForumClient(SearchClient):
"""
Search the forum
"""

def query(self, query, filters = None):
def query(self, query, filters=None):
"""
Search through forum threads
"""
Expand All @@ -32,7 +31,7 @@ def query(self, query, filters = None):
sc = self.sphinx
sc.ResetFilters()

sc.SetFieldWeights({'title':4, 'content':3})
sc.SetFieldWeights({'title': 4, 'content': 3})

for f in filters:
if f.get('range', False):
Expand All @@ -56,7 +55,7 @@ class WikiClient(SearchClient):
Search the knowledge base
"""

def query(self, query, filters = None):
def query(self, query, filters=None):
"""
Search through the wiki (ie KB)
"""
Expand All @@ -67,7 +66,7 @@ def query(self, query, filters = None):
sc = self.sphinx
sc.ResetFilters()

sc.SetFieldWeights({'title':4, 'keywords':3})
sc.SetFieldWeights({'title': 4, 'keywords': 3})

for f in filters:
if f.get('range', False):
Expand All @@ -83,4 +82,3 @@ def query(self, query, filters = None):
return result['matches']
else:
return []

2 changes: 1 addition & 1 deletion apps/search/urls.py
@@ -1,5 +1,5 @@
from django.conf.urls.defaults import *

urlpatterns = patterns('search.views',
url(r'^$','search',name='search'),
url(r'^$', 'search', name='search'),
)
52 changes: 26 additions & 26 deletions apps/search/views.py
@@ -1,10 +1,5 @@
# Create your views here.

import datetime

from django.http import Http404, HttpResponseRedirect
from django.template import RequestContext
from django.core.urlresolvers import reverse
from django.conf import settings

import jingo
Expand All @@ -15,11 +10,11 @@
from .utils import crc32



WHERE_WIKI = 1
WHERE_FORUM = 2
WHERE_ALL = WHERE_WIKI | WHERE_FORUM


def search(request):
q = request.GET.get('q', 'search')

Expand All @@ -37,63 +32,68 @@ def search(request):

# Category filter
filters_w.append({
'filter' : 'category',
'value' : map(int,
request.GET.get('category',
settings.SEARCH_DEFAULT_CATEGORIES).split(',')),
'filter': 'category',
'value': map(int,
request.GET.get('category',
settings.SEARCH_DEFAULT_CATEGORIES).split(',')),
})

# Locale filter
filters_w.append({
'filter': 'lang',
'value': (locale,),
})

# Tag filter
if request.GET.get('tag') is not None:
filters_w.append({
'filter' : 'tag',
'value' : map(crc32,request.GET.get('tag').split(',')),
'filter': 'tag',
'value': map(crc32, request.GET.get('tag').split(',')),
})

# execute the query and append to documents
documents += wc.query(q, filters_w)

if (where & WHERE_FORUM):
fc = ForumClient() # Forum SearchClient instance
filters_f = [] # filters for the forum search

# Forum filter
filters_f.append({
'filter' : 'forumId',
'value' : map(int,
'filter': 'forumId',
'value': map(int,
request.GET.get('forums',
settings.SEARCH_DEFAULT_FORUM).split(',')),
settings.SEARCH_DEFAULT_FORUM).split(',')),
})

# Status filter
if request.GET.get('status') is not None:
filters_f.append({
'filter' : 'status',
'value' : (crc32(request.GET.get('status')),),
'filter': 'status',
'value': (crc32(request.GET.get('status')),),
})

# Author filter
if request.GET.get('author') is not None:
filters_f.append({
'filter' : 'author',
'value' : (crc32(request.GET.get('author')),
'filter': 'author',
'value': (crc32(request.GET.get('author')),
crc32(request.GET.get('author') + ' (anon)'),),
})

# Created filter
if request.GET.get('created') is not None:
pass

documents += fc.query(q, filters_f)

results = []
for i in range(offset,offset+10):
if documents[i]['attrs'].get('category',False):
for i in range(offset, offset+10):
if documents[i]['attrs'].get('category', False):
results.append(WikiPage.objects.get(page_id=documents[i]['id']))
else:
results.append(ForumThread.objects.get(threadId=documents[i]['id']))

return jingo.render(request, 'search/results.html',
{'num_results':len(documents), 'results':results, 'q':q,
'locale':request.LANGUAGE_CODE, })

{'num_results': len(documents), 'results': results, 'q': q,
'locale': request.LANGUAGE_CODE, })
10 changes: 5 additions & 5 deletions apps/sumo/models.py
Expand Up @@ -6,6 +6,7 @@
# caching.base.CachingManager directly.
ManagerBase = caching.base.CachingManager


class ModelBase(caching.base.CachingMixin, models.Model):
"""
Base class for SUMO models to abstract some common features.
Expand All @@ -28,9 +29,9 @@ class ForumThread(ModelBase):
commentDate = models.IntegerField()
hits = models.IntegerField()
type = models.CharField(max_length=1)
points = models.DecimalField(max_digits=8,decimal_places=2)
points = models.DecimalField(max_digits=8, decimal_places=2)
votes = models.IntegerField()
average = models.DecimalField(max_digits=8,decimal_places=4)
average = models.DecimalField(max_digits=8, decimal_places=4)
title = models.CharField(max_length=255)
data = models.TextField()
description = models.CharField(max_length=200)
Expand Down Expand Up @@ -61,7 +62,7 @@ def get_url(self):

class WikiPage(ModelBase):
page_id = models.AutoField(primary_key=True)
pageName = models.CharField(max_length=160,unique=True)
pageName = models.CharField(max_length=160, unique=True)
hits = models.IntegerField()
data = models.TextField()
description = models.CharField(max_length=200)
Expand All @@ -77,7 +78,7 @@ class WikiPage(ModelBase):
cache = models.TextField()
wiki_cache = models.IntegerField()
cache_timestamp = models.IntegerField()
pageRank = models.DecimalField(max_digits=4,decimal_places=3)
pageRank = models.DecimalField(max_digits=4, decimal_places=3)
creator = models.CharField(max_length=200)
page_size = models.PositiveIntegerField()
lang = models.CharField(max_length=16)
Expand All @@ -101,4 +102,3 @@ def get_url(self):
TODO: Once we can use reverse(), use reverse()
"""
return u'/%s/kb/%s' % (self.lang, self.pageName,)

4 changes: 2 additions & 2 deletions settings.py
Expand Up @@ -23,7 +23,7 @@
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
'OPTIONS' : {'init_command': 'SET storage_engine=InnoDB'},
'OPTIONS': {'init_command': 'SET storage_engine=InnoDB'},
}
}

Expand Down Expand Up @@ -116,7 +116,7 @@
SEARCH_FORUM_HALF_LIFE = 14 # controls the decay rate, in days
SEARCH_RESULTS_PER_PAGE = 10

#
#
# Search default settings
SEARCH_DEFAULT_CATEGORIES = '1,17,18' # comma-separated string of category IDs
SEARCH_DEFAULT_FORUM = '1' # default forum ID (eg: 1 on sumo, 5 on mosumo)

0 comments on commit 6667c90

Please sign in to comment.