|
a/ForgeWiki/forgewiki/wiki_main.py |
|
b/ForgeWiki/forgewiki/wiki_main.py |
|
... |
|
... |
23 |
from allura.controllers import AppDiscussionController, BaseController
|
23 |
from allura.controllers import AppDiscussionController, BaseController
|
24 |
from allura.controllers import attachments as ac
|
24 |
from allura.controllers import attachments as ac
|
25 |
from allura.lib import widgets as w
|
25 |
from allura.lib import widgets as w
|
26 |
from allura.lib.widgets import form_fields as ffw
|
26 |
from allura.lib.widgets import form_fields as ffw
|
27 |
from allura.lib.widgets.subscriptions import SubscribeForm
|
27 |
from allura.lib.widgets.subscriptions import SubscribeForm
|
|
|
28 |
from allura.lib.widgets.search import SearchResults
|
28 |
|
29 |
|
29 |
# Local imports
|
30 |
# Local imports
|
30 |
from forgewiki import model as WM
|
31 |
from forgewiki import model as WM
|
31 |
from forgewiki import version
|
32 |
from forgewiki import version
|
32 |
from forgewiki.widgets.wiki import CreatePageWidget
|
33 |
from forgewiki.widgets.wiki import CreatePageWidget
|
|
... |
|
... |
44 |
attachment_list = ffw.AttachmentList()
|
45 |
attachment_list = ffw.AttachmentList()
|
45 |
subscribe_form = SubscribeForm()
|
46 |
subscribe_form = SubscribeForm()
|
46 |
page_subscribe_form = SubscribeForm(thing='page')
|
47 |
page_subscribe_form = SubscribeForm(thing='page')
|
47 |
page_list = ffw.PageList()
|
48 |
page_list = ffw.PageList()
|
48 |
page_size = ffw.PageSize()
|
49 |
page_size = ffw.PageSize()
|
|
|
50 |
search_results = SearchResults()
|
49 |
|
51 |
|
50 |
|
52 |
|
51 |
class ForgeWikiApp(Application):
|
53 |
class ForgeWikiApp(Application):
|
52 |
'''This is the Wiki app for PyForge'''
|
54 |
'''This is the Wiki app for PyForge'''
|
53 |
__version__ = version.__version__
|
55 |
__version__ = version.__version__
|
|
... |
|
... |
235 |
@with_trailing_slash
|
237 |
@with_trailing_slash
|
236 |
@expose('jinja:forgewiki:templates/wiki/search.html')
|
238 |
@expose('jinja:forgewiki:templates/wiki/search.html')
|
237 |
@validate(dict(q=validators.UnicodeString(if_empty=None),
|
239 |
@validate(dict(q=validators.UnicodeString(if_empty=None),
|
238 |
history=validators.StringBool(if_empty=False),
|
240 |
history=validators.StringBool(if_empty=False),
|
239 |
project=validators.StringBool(if_empty=False)))
|
241 |
project=validators.StringBool(if_empty=False)))
|
240 |
def search(self, q=None, history=None, project=None, **kw):
|
242 |
def search(self, q=None, history=None, project=None, limit=None, page=0, **kw):
|
241 |
'local wiki search'
|
243 |
'local wiki search'
|
242 |
if project:
|
244 |
if project:
|
243 |
redirect(c.project.url() + 'search?' + urlencode(dict(q=q, history=history)))
|
245 |
redirect(c.project.url() + 'search?' + urlencode(dict(q=q, history=history)))
|
244 |
results = []
|
246 |
results = []
|
245 |
count=0
|
247 |
count=0
|
|
|
248 |
limit, page, start = g.handle_paging(limit, page, default=25)
|
246 |
if not q:
|
249 |
if not q:
|
247 |
q = ''
|
250 |
q = ''
|
248 |
else:
|
251 |
else:
|
249 |
results = search(
|
252 |
results = search(
|
250 |
q,
|
253 |
q, rows=limit, start=start,
|
251 |
fq=[
|
254 |
fq=[
|
252 |
'is_history_b:%s' % history,
|
255 |
'is_history_b:%s' % history,
|
253 |
'project_id_s:%s' % c.project._id,
|
256 |
'project_id_s:%s' % c.project._id,
|
254 |
'mount_point_s:%s'% c.app.config.options.mount_point ])
|
257 |
'mount_point_s:%s'% c.app.config.options.mount_point ])
|
255 |
if results: count=results.hits
|
258 |
if results: count=results.hits
|
|
|
259 |
c.search_results = W.search_results
|
256 |
return dict(q=q, history=history, results=results or [], count=count)
|
260 |
return dict(q=q, history=history, results=results or [],
|
|
|
261 |
count=count, limit=limit, page=page)
|
257 |
|
262 |
|
258 |
@with_trailing_slash
|
263 |
@with_trailing_slash
|
259 |
@expose('jinja:forgewiki:templates/wiki/browse.html')
|
264 |
@expose('jinja:forgewiki:templates/wiki/browse.html')
|
260 |
@validate(dict(sort=validators.UnicodeString(if_empty='alpha'),
|
265 |
@validate(dict(sort=validators.UnicodeString(if_empty='alpha'),
|
261 |
show_deleted=validators.StringBool(if_empty=False),
|
266 |
show_deleted=validators.StringBool(if_empty=False),
|