Mercurial > kallithea
annotate rhodecode/controllers/home.py @ 1173:f2b5279a5c77 beta
Added tag v1.1.7 for changeset 2ab211e0aecd
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Wed, 23 Mar 2011 20:56:05 +0100 |
parents | f63cc1cbce27 |
children | 01fe71db71f6 |
rev | line source |
---|---|
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
1 # -*- coding: utf-8 -*- |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
2 """ |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
3 rhodecode.controllers.home |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~ |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
5 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
6 Home controller for Rhodecode |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
7 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
8 :created_on: Feb 18, 2010 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
9 :author: marcink |
902
07a6e8c65526
fixed copyright year to 2011
Marcin Kuzminski <marcin@python-works.com>
parents:
861
diff
changeset
|
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com> |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
11 :license: GPLv3, see COPYING for more details. |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
12 """ |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
13 # This program is free software; you can redistribute it and/or |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
14 # modify it under the terms of the GNU General Public License |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
15 # as published by the Free Software Foundation; version 2 |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
16 # of the License or (at your opinion) any later version of the license. |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
17 # |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
18 # This program is distributed in the hope that it will be useful, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
21 # GNU General Public License for more details. |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
22 # |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
23 # You should have received a copy of the GNU General Public License |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
24 # along with this program; if not, write to the Free Software |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
26 # MA 02110-1301, USA. |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
27 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
28 import logging |
93
aec4c0071cb3
added empty controllers for branches tags files graph, routing and test for them
Marcin Kuzminski <marcin@python-works.com>
parents:
82
diff
changeset
|
29 from operator import itemgetter |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
30 |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
31 from pylons import tmpl_context as c, request |
1158
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
32 from paste.httpexceptions import HTTPBadRequest |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
33 |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
447
diff
changeset
|
34 from rhodecode.lib.auth import LoginRequired |
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
447
diff
changeset
|
35 from rhodecode.lib.base import BaseController, render |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
36 |
1158
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
37 |
10
525ed90e4577
major app speedup moved the wsgi creation to app globals, in order to make it run only once.
Marcin Kuzminski
parents:
8
diff
changeset
|
38 log = logging.getLogger(__name__) |
0 | 39 |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
40 class HomeController(BaseController): |
21 | 41 |
191
b68b2246e5a6
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents:
169
diff
changeset
|
42 @LoginRequired() |
21 | 43 def __before__(self): |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
44 super(HomeController, self).__before__() |
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
45 |
55
e00dccb6f211
Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents:
43
diff
changeset
|
46 def index(self): |
1005
520e67cbb494
fixed sorting in maing page by owners
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
47 sortables = ['name', 'description', 'last_change', 'tip', 'owner'] |
447
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
48 current_sort = request.GET.get('sort', 'name') |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
49 current_sort_slug = current_sort.replace('-', '') |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
50 |
447
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
51 if current_sort_slug not in sortables: |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
52 c.sort_by = 'name' |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
53 current_sort_slug = c.sort_by |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
54 else: |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
55 c.sort_by = current_sort |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
56 c.sort_slug = current_sort_slug |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
57 |
447
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
58 sort_key = current_sort_slug + '_sort' |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1005
diff
changeset
|
59 |
447
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
60 if c.sort_by.startswith('-'): |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1005
diff
changeset
|
61 c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key), |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
62 reverse=True) |
353
07f50e9b308f
fixed sorting bug.
Marcin Kuzminski <marcin@python-works.com>
parents:
338
diff
changeset
|
63 else: |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1005
diff
changeset
|
64 c.repos_list = sorted(c.cached_repo_list, key=itemgetter(sort_key), |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
65 reverse=False) |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
66 |
55
e00dccb6f211
Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents:
43
diff
changeset
|
67 return render('/index.html') |
1158
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
68 |
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
69 def repo_switcher(self): |
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
70 if request.is_xhr: |
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
71 c.repos_list = sorted(c.cached_repo_list, |
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
72 key=itemgetter('name_sort'), reverse=False) |
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
73 return render('/repo_switcher_list.html') |
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
74 else: |
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
75 return HTTPBadRequest() |