diff --git a/rhodecode/controllers/changelog.py b/rhodecode/controllers/changelog.py
--- a/rhodecode/controllers/changelog.py
+++ b/rhodecode/controllers/changelog.py
@@ -132,7 +132,7 @@ class ChangelogController(BaseRepoContro
c.total_cs = len(collection)
c.pagination = RepoPage(collection, page=p, item_count=c.total_cs,
- items_per_page=c.size, branch=branch_name)
+ items_per_page=c.size, branch=branch_name,)
collection = list(c.pagination)
page_revisions = [x.raw_id for x in c.pagination]
c.comments = c.rhodecode_db_repo.get_comments(page_revisions)
diff --git a/rhodecode/lib/helpers.py b/rhodecode/lib/helpers.py
--- a/rhodecode/lib/helpers.py
+++ b/rhodecode/lib/helpers.py
@@ -900,13 +900,15 @@ class Page(_Page):
if self.page != self.last_page and rightmost_page < self.last_page:
nav_items.append(self._pagerlink(self.last_page, self.last_page))
+ ## prerender links
+ nav_items.append(literal('' % str(int(self.page)+1)))
return self.separator.join(nav_items)
def pager(self, format='~2~', page_param='page', partial_param='partial',
show_if_single_page=False, separator=' ', onclick=None,
symbol_first='<<', symbol_last='>>',
symbol_previous='<', symbol_next='>',
- link_attr={'class': 'pager_link'},
+ link_attr={'class': 'pager_link', 'rel': 'prerender'},
curpage_attr={'class': 'pager_curpage'},
dotdot_attr={'class': 'pager_dotdot'}, **kwargs):
diff --git a/rhodecode/lib/indexers/__init__.py b/rhodecode/lib/indexers/__init__.py
--- a/rhodecode/lib/indexers/__init__.py
+++ b/rhodecode/lib/indexers/__init__.py
@@ -24,32 +24,17 @@
# along with this program. If not, see .
import os
import sys
-import traceback
import logging
from os.path import dirname as dn, join as jn
#to get the rhodecode import
sys.path.append(dn(dn(dn(os.path.realpath(__file__)))))
-from string import strip
-from shutil import rmtree
-
from whoosh.analysis import RegexTokenizer, LowercaseFilter, StopFilter
from whoosh.fields import TEXT, ID, STORED, NUMERIC, BOOLEAN, Schema, FieldType, DATETIME
-from whoosh.index import create_in, open_dir
from whoosh.formats import Characters
-from whoosh.highlight import highlight, HtmlFormatter, ContextFragmenter
-
-from webhelpers.html.builder import escape, literal
-from sqlalchemy import engine_from_config
-
-from rhodecode.model import init_model
-from rhodecode.model.scm import ScmModel
-from rhodecode.model.repo import RepoModel
-from rhodecode.config.environment import load_environment
+from whoosh.highlight import highlight as whoosh_highlight, HtmlFormatter, ContextFragmenter
from rhodecode.lib.utils2 import LazyProperty
-from rhodecode.lib.utils import BasePasterCommand, Command, add_cache,\
- load_rcextensions
log = logging.getLogger(__name__)
@@ -99,74 +84,6 @@ JOURNAL_SCHEMA = Schema(
)
-class MakeIndex(BasePasterCommand):
-
- max_args = 1
- min_args = 1
-
- usage = "CONFIG_FILE"
- summary = "Creates or update full text search index"
- group_name = "RhodeCode"
- takes_config_file = -1
- parser = Command.standard_parser(verbose=True)
-
- def command(self):
- logging.config.fileConfig(self.path_to_ini_file)
- from pylons import config
- add_cache(config)
- engine = engine_from_config(config, 'sqlalchemy.db1.')
- init_model(engine)
- index_location = config['index_dir']
- repo_location = self.options.repo_location \
- if self.options.repo_location else RepoModel().repos_path
- repo_list = map(strip, self.options.repo_list.split(',')) \
- if self.options.repo_list else None
- repo_update_list = map(strip, self.options.repo_update_list.split(',')) \
- if self.options.repo_update_list else None
- load_rcextensions(config['here'])
- #======================================================================
- # WHOOSH DAEMON
- #======================================================================
- from rhodecode.lib.pidlock import LockHeld, DaemonLock
- from rhodecode.lib.indexers.daemon import WhooshIndexingDaemon
- try:
- l = DaemonLock(file_=jn(dn(dn(index_location)), 'make_index.lock'))
- WhooshIndexingDaemon(index_location=index_location,
- repo_location=repo_location,
- repo_list=repo_list,
- repo_update_list=repo_update_list)\
- .run(full_index=self.options.full_index)
- l.release()
- except LockHeld:
- sys.exit(1)
-
- def update_parser(self):
- self.parser.add_option('--repo-location',
- action='store',
- dest='repo_location',
- help="Specifies repositories location to index OPTIONAL",
- )
- self.parser.add_option('--index-only',
- action='store',
- dest='repo_list',
- help="Specifies a comma separated list of repositores "
- "to build index on. If not given all repositories "
- "are scanned for indexing. OPTIONAL",
- )
- self.parser.add_option('--update-only',
- action='store',
- dest='repo_update_list',
- help="Specifies a comma separated list of repositores "
- "to re-build index on. OPTIONAL",
- )
- self.parser.add_option('-f',
- action='store_true',
- dest='full_index',
- help="Specifies that index should be made full i.e"
- " destroy old and build from scratch",
- default=False)
-
-
class WhooshResultWrapper(object):
def __init__(self, search_type, searcher, matcher, highlight_items,
repo_location):
@@ -249,9 +166,6 @@ class WhooshResultWrapper(object):
Smart function that implements chunking the content
but not overlap chunks so it doesn't highlight the same
close occurrences twice.
-
- :param matcher:
- :param size:
"""
memory = [(0, 0)]
if self.matcher.supports('positions'):
@@ -269,7 +183,7 @@ class WhooshResultWrapper(object):
def highlight(self, content, top=5):
if self.search_type not in ['content', 'message']:
return ''
- hl = highlight(
+ hl = whoosh_highlight(
text=content,
terms=self.highlight_items,
analyzer=ANALYZER,
diff --git a/rhodecode/lib/paster_commands/cache_keys.py b/rhodecode/lib/paster_commands/cache_keys.py
--- a/rhodecode/lib/paster_commands/cache_keys.py
+++ b/rhodecode/lib/paster_commands/cache_keys.py
@@ -29,15 +29,14 @@ import os
import sys
import logging
-from os.path import dirname as dn, join as jn
from rhodecode.model.meta import Session
-#to get the rhodecode import
+from rhodecode.lib.utils import BasePasterCommand
+from rhodecode.model.db import CacheInvalidation
+
+# fix rhodecode import
+from os.path import dirname as dn
rc_path = dn(dn(dn(os.path.realpath(__file__))))
sys.path.append(rc_path)
-from rhodecode.lib.utils import BasePasterCommand
-
-from rhodecode.model.db import CacheInvalidation
-
log = logging.getLogger(__name__)
diff --git a/rhodecode/lib/paster_commands/cleanup.py b/rhodecode/lib/paster_commands/cleanup.py
--- a/rhodecode/lib/paster_commands/cleanup.py
+++ b/rhodecode/lib/paster_commands/cleanup.py
@@ -32,15 +32,14 @@ import shutil
import logging
import datetime
-from os.path import dirname as dn, join as jn
-#to get the rhodecode import
-rc_path = dn(dn(dn(os.path.realpath(__file__))))
-sys.path.append(rc_path)
from rhodecode.lib.utils import BasePasterCommand, ask_ok, REMOVED_REPO_PAT
-
from rhodecode.lib.utils2 import safe_str
from rhodecode.model.db import RhodeCodeUi
+# fix rhodecode import
+from os.path import dirname as dn
+rc_path = dn(dn(dn(os.path.realpath(__file__))))
+sys.path.append(rc_path)
log = logging.getLogger(__name__)
diff --git a/rhodecode/lib/paster_commands/ishell.py b/rhodecode/lib/paster_commands/ishell.py
--- a/rhodecode/lib/paster_commands/ishell.py
+++ b/rhodecode/lib/paster_commands/ishell.py
@@ -29,12 +29,12 @@ import os
import sys
import logging
-from os.path import dirname as dn, join as jn
-#to get the rhodecode import
+from rhodecode.lib.utils import BasePasterCommand
+
+# fix rhodecode import
+from os.path import dirname as dn
rc_path = dn(dn(dn(os.path.realpath(__file__))))
sys.path.append(rc_path)
-from rhodecode.lib.utils import BasePasterCommand
-
log = logging.getLogger(__name__)
diff --git a/rhodecode/lib/paster_commands/make_rcextensions.py b/rhodecode/lib/paster_commands/make_rcextensions.py
--- a/rhodecode/lib/paster_commands/make_rcextensions.py
+++ b/rhodecode/lib/paster_commands/make_rcextensions.py
@@ -26,17 +26,16 @@ from __future__ import with_statement
import os
import sys
+import logging
import pkg_resources
-import traceback
-import logging
+
+from rhodecode.lib.utils import BasePasterCommand, ask_ok
-from os.path import dirname as dn, join as jn
-#to get the rhodecode import
+# fix rhodecode import
+from os.path import dirname as dn
rc_path = dn(dn(dn(os.path.realpath(__file__))))
sys.path.append(rc_path)
-from rhodecode.lib.utils import BasePasterCommand, ask_ok
-
log = logging.getLogger(__name__)
@@ -65,9 +64,9 @@ class Command(BasePasterCommand):
here = config['here']
tmpl = pkg_resources.resource_string(
- 'rhodecode', jn('config', 'rcextensions', '__init__.py')
+ 'rhodecode', os.path.join('config', 'rcextensions', '__init__.py')
)
- ext_file = jn(here, 'rcextensions', '__init__.py')
+ ext_file = os.path.join(here, 'rcextensions', '__init__.py')
if os.path.exists(ext_file):
msg = ('Extension file already exists, do you want '
'to overwrite it ? [y/n]')
diff --git a/rhodecode/lib/paster_commands/repo_scan.py b/rhodecode/lib/paster_commands/repo_scan.py
--- a/rhodecode/lib/paster_commands/repo_scan.py
+++ b/rhodecode/lib/paster_commands/repo_scan.py
@@ -29,17 +29,13 @@ import os
import sys
import logging
-from os.path import dirname as dn, join as jn
from rhodecode.model.scm import ScmModel
-#to get the rhodecode import
+from rhodecode.lib.utils import BasePasterCommand, repo2db_mapper
+
+# fix rhodecode import
+from os.path import dirname as dn
rc_path = dn(dn(dn(os.path.realpath(__file__))))
sys.path.append(rc_path)
-from rhodecode.lib.utils import BasePasterCommand, repo2db_mapper
-
-from rhodecode.model.db import Repository
-from rhodecode.model.repo import RepoModel
-from rhodecode.model.meta import Session
-
log = logging.getLogger(__name__)
diff --git a/rhodecode/lib/paster_commands/setup_rhodecode.py b/rhodecode/lib/paster_commands/setup_rhodecode.py
--- a/rhodecode/lib/paster_commands/setup_rhodecode.py
+++ b/rhodecode/lib/paster_commands/setup_rhodecode.py
@@ -4,8 +4,8 @@ from paste.script.appinstall import Abst
from paste.script.command import BadCommand
from paste.deploy import appconfig
-from os.path import dirname as dn, join as jn
-#to get the rhodecode import
+# fix rhodecode import
+from os.path import dirname as dn
rc_path = dn(dn(dn(os.path.realpath(__file__))))
sys.path.append(rc_path)
diff --git a/rhodecode/lib/paster_commands/update_repoinfo.py b/rhodecode/lib/paster_commands/update_repoinfo.py
--- a/rhodecode/lib/paster_commands/update_repoinfo.py
+++ b/rhodecode/lib/paster_commands/update_repoinfo.py
@@ -29,16 +29,16 @@ import sys
import logging
import string
-from os.path import dirname as dn, join as jn
-#to get the rhodecode import
-rc_path = dn(dn(dn(os.path.realpath(__file__))))
-sys.path.append(rc_path)
from rhodecode.lib.utils import BasePasterCommand
-
from rhodecode.model.db import Repository
from rhodecode.model.repo import RepoModel
from rhodecode.model.meta import Session
+# fix rhodecode import
+from os.path import dirname as dn
+rc_path = dn(dn(dn(os.path.realpath(__file__))))
+sys.path.append(rc_path)
+
log = logging.getLogger(__name__)
diff --git a/setup.py b/setup.py
--- a/setup.py
+++ b/setup.py
@@ -167,7 +167,7 @@ setup(
repo-scan=rhodecode.lib.paster_commands.repo_scan:Command
cache-keys=rhodecode.lib.paster_commands.cache_keys:Command
ishell=rhodecode.lib.paster_commands.ishell:Command
- make-index=rhodecode.lib.indexers:MakeIndex
+ make-index=rhodecode.lib.paster_commands.make_index:Command
upgrade-db=rhodecode.lib.dbmigrate:UpgradeDb
celeryd=rhodecode.lib.celerypylons.commands:CeleryDaemonCommand
""",