Mercurial > kallithea
annotate rhodecode/controllers/home.py @ 1213:68e34f5cf122 beta
#150 fixes for errors on repositories mapped in db but corrupted in filesystem
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 05 Apr 2011 17:16:47 +0200 |
parents | 50e41777675d |
children | a04fe5986109 |
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 |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1192
diff
changeset
|
7 |
861
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 |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1192
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 """ |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
13 # This program is free software: you can redistribute it and/or modify |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
14 # it under the terms of the GNU General Public License as published by |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
15 # the Free Software Foundation, either version 3 of the License, or |
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
16 # (at your option) any later version. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1192
diff
changeset
|
17 # |
252
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. |
1203
6832ef664673
source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents:
1192
diff
changeset
|
22 # |
252
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 |
1206
a671db5bdd58
fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents:
1203
diff
changeset
|
24 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
25 |
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
26 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
|
27 from operator import itemgetter |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
28 |
252
3782a6d698af
licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents:
245
diff
changeset
|
29 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
|
30 from paste.httpexceptions import HTTPBadRequest |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
31 |
547
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
447
diff
changeset
|
32 from rhodecode.lib.auth import LoginRequired |
1e757ac98988
renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents:
447
diff
changeset
|
33 from rhodecode.lib.base import BaseController, render |
861
fd2ea6ceadc8
updated docs on every controller
Marcin Kuzminski <marcin@python-works.com>
parents:
691
diff
changeset
|
34 |
1158
f63cc1cbce27
implemented repo switcher list as dynamically loaded by xhr requestt.
Marcin Kuzminski <marcin@python-works.com>
parents:
1045
diff
changeset
|
35 |
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
|
36 log = logging.getLogger(__name__) |
0 | 37 |
1212 | 38 |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
39 class HomeController(BaseController): |
21 | 40 |
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
|
41 @LoginRequired() |
21 | 42 def __before__(self): |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
43 super(HomeController, self).__before__() |
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
44 |
55
e00dccb6f211
Implemented index page using vcs
Marcin Kuzminski <marcin@python-blog.com>
parents:
43
diff
changeset
|
45 def index(self): |
1005
520e67cbb494
fixed sorting in maing page by owners
Marcin Kuzminski <marcin@python-works.com>
parents:
902
diff
changeset
|
46 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
|
47 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
|
48 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
|
49 |
447
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
50 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
|
51 c.sort_by = 'name' |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
52 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
|
53 else: |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
54 c.sort_by = current_sort |
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
55 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
|
56 |
447
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
57 sort_key = current_sort_slug + '_sort' |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1005
diff
changeset
|
58 |
447
70c2750531d3
rewrote sorting on main page, to clickable headers.
Marcin Kuzminski <marcin@python-works.com>
parents:
353
diff
changeset
|
59 if c.sort_by.startswith('-'): |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1005
diff
changeset
|
60 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
|
61 reverse=True) |
353
07f50e9b308f
fixed sorting bug.
Marcin Kuzminski <marcin@python-works.com>
parents:
338
diff
changeset
|
62 else: |
1045
3fc9183e05dd
another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents:
1005
diff
changeset
|
63 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
|
64 reverse=False) |
636
ffd07396d315
Fixes for raw_id, needed for git
Marcin Kuzminski <marcin@python-works.com>
parents:
629
diff
changeset
|
65 |
1192
01fe71db71f6
added repo count to dashboard
Marcin Kuzminski <marcin@python-works.com>
parents:
1158
diff
changeset
|
66 c.repo_cnt = len(c.repos_list) |
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() |