Mercurial > kallithea
annotate pylons_app/lib/app_globals.py @ 80:928416088790
reimplemented summary page,
added few filters, removed age from models and made it as filter.
author | Marcin Kuzminski <marcin@python-blog.com> |
---|---|
date | Sat, 17 Apr 2010 22:17:17 +0200 |
parents | bf1b64046c79 |
children | aec4c0071cb3 |
rev | line source |
---|---|
0 | 1 """The application's Globals object""" |
10
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
2 #uncomment the following if you want to serve a single repo |
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
3 #from mercurial.hgweb.hgweb_mod import hgweb |
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
4 from mercurial.hgweb.hgwebdir_mod import hgwebdir |
20
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
5 from mercurial import templater |
10
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
6 from mercurial.hgweb.request import wsgiapplication |
20
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
7 from mercurial import ui, config |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
8 import os |
43 | 9 from beaker.cache import CacheManager |
10 from beaker.util import parse_cache_config_options | |
11 | |
0 | 12 class Globals(object): |
13 | |
14 """Globals acts as a container for objects available throughout the | |
15 life of the application | |
16 | |
17 """ | |
18 | |
43 | 19 def __init__(self, config): |
0 | 20 """One instance of Globals is created during application |
21 initialization and is available during requests via the | |
22 'app_globals' variable | |
23 | |
24 """ | |
43 | 25 self.cache = CacheManager(**parse_cache_config_options(config)) |
10
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
26 self.hgapp = wsgiapplication(self.make_web_app) |
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
27 |
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
28 def make_web_app(self): |
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
29 repos = "hgwebdir.config" |
20
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
30 baseui = ui.ui() |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
31 cfg = config.config() |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
32 cfg.read(repos) |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
33 paths = cfg.items('paths') |
55
e00dccb6f211
Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents:
43
diff
changeset
|
34 self.paths = paths |
20
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
35 self.check_repo_dir(paths) |
55
e00dccb6f211
Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents:
43
diff
changeset
|
36 |
20
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
37 self.set_statics(cfg) |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
38 |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
39 for k, v in cfg.items('web'): |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
40 baseui.setconfig('web', k, v) |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
41 #magic trick to make our custom template dir working |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
42 templater.path.append(cfg.get('web', 'templates', None)) |
56
bf1b64046c79
Added last change translation to 'time ago', added generation of enabled zip archives
Marcin Kuzminski <marcin@python-blog.com>
parents:
55
diff
changeset
|
43 self.baseui = baseui |
31
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
44 #baseui.setconfig('web', 'description', '') |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
45 #baseui.setconfig('web', 'name', '') |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
46 #baseui.setconfig('web', 'contact', '') |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
47 #baseui.setconfig('web', 'allow_archive', '') |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
48 #baseui.setconfig('web', 'style', 'monoblue_plain') |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
49 #baseui.setconfig('web', 'baseurl', '') |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
50 #baseui.setconfig('web', 'staticurl', '') |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
51 |
2963f2894a7a
Tempalting change, bugfix for serving raw files, and diffs. Now raw files are not parsed thruough mako, and diffs are mako safe (not parsed also)
Marcin Kuzminski <marcin@python-blog.com>
parents:
20
diff
changeset
|
52 hgwebapp = hgwebdir(paths, baseui=baseui) |
10
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
0
diff
changeset
|
53 return hgwebapp |
20
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
54 |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
55 |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
56 def set_statics(self, cfg): |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
57 ''' |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
58 set's the statics for use in mako templates |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
59 @param cfg: |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
60 ''' |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
61 self.statics = cfg.get('web', 'staticurl', '/static') |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
62 if not self.statics.endswith('/'): |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
63 self.statics += '/' |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
64 |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
65 |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
66 def check_repo_dir(self, paths): |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
67 repos_path = paths[0][1].split('/') |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
68 if repos_path[-1] in ['*', '**']: |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
69 repos_path = repos_path[:-1] |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
70 if repos_path[0] != '/': |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
71 repos_path[0] = '/' |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
72 if not os.path.isdir(os.path.join(*repos_path)): |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
73 raise Exception('Not a valid repository in %s' % paths[0][1]) |
bbaab7501c1a
Added custom templates, did over check of code to make it work.
Marcin Kuzminski
parents:
10
diff
changeset
|
74 |