Switch to unified view

a/Allura/allura/lib/helpers.py b/Allura/allura/lib/helpers.py
...
...
10
from hashlib import sha1
10
from hashlib import sha1
11
from datetime import datetime
11
from datetime import datetime
12
12
13
import tg
13
import tg
14
import genshi.template
14
import genshi.template
15
import chardet
15
from formencode.validators import FancyValidator
16
from formencode.validators import FancyValidator
16
from dateutil.parser import parse
17
from dateutil.parser import parse
17
from pymongo.bson import ObjectId
18
from pymongo.bson import ObjectId
18
from pymongo.errors import InvalidId
19
from pymongo.errors import InvalidId
19
from contextlib import contextmanager
20
from contextlib import contextmanager
...
...
25
from webhelpers import date, feedgenerator, html, number, misc, text
26
from webhelpers import date, feedgenerator, html, number, misc, text
26
27
27
from pymongo import bson
28
from pymongo import bson
28
29
29
re_path_portion = re.compile(r'^[a-z][-a-z0-9]{2,}$')
30
re_path_portion = re.compile(r'^[a-z][-a-z0-9]{2,}$')
31
32
def really_unicode(s):
33
    try:
34
        return unicode(s)
35
    except UnicodeDecodeError:
36
        pass
37
    encoding = chardet.detect(s[:1024])['encoding']
38
    try:
39
        return unicode(s, encoding)
40
    except UnicodeDecodeError:
41
        pass
42
    encoding = chardet.detect(s)['encoding']
43
    try:
44
        return unicode(s, encoding)
45
    except UnicodeDecodeError:
46
        pass
47
    return unicode(repr(str(s)))[1:-1]
30
48
31
def find_project(url_path):
49
def find_project(url_path):
32
    from allura import model as M
50
    from allura import model as M
33
    for n in M.Neighborhood.query.find():
51
    for n in M.Neighborhood.query.find():
34
        if url_path.strip("/").startswith(n.url_prefix.strip("/")):
52
        if url_path.strip("/").startswith(n.url_prefix.strip("/")):