comparison rhodecode/controllers/admin/repos.py @ 1639:95c3e33ef32e

merged upto rev 019026a8cf67
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 02 Nov 2011 22:19:47 +0200
parents 752b0a7b7679 9dae92a65e40
children 6f8f1ab20b7d
comparison
equal deleted inserted replaced
1637:974d6193b61a 1639:95c3e33ef32e
24 # along with this program. If not, see <http://www.gnu.org/licenses/>. 24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
25 25
26 import logging 26 import logging
27 import traceback 27 import traceback
28 import formencode 28 import formencode
29 from operator import itemgetter
30 from formencode import htmlfill 29 from formencode import htmlfill
31 30
32 from paste.httpexceptions import HTTPInternalServerError 31 from paste.httpexceptions import HTTPInternalServerError
33 from pylons import request, response, session, tmpl_context as c, url 32 from pylons import request, response, session, tmpl_context as c, url
34 from pylons.controllers.util import abort, redirect 33 from pylons.controllers.util import abort, redirect
90 category='error') 89 category='error')
91 90
92 return redirect(url('repos')) 91 return redirect(url('repos'))
93 92
94 c.default_user_id = User.get_by_username('default').user_id 93 c.default_user_id = User.get_by_username('default').user_id
95 c.in_public_journal = self.sa.query(UserFollowing)\ 94 c.in_public_journal = UserFollowing.query()\
96 .filter(UserFollowing.user_id == c.default_user_id)\ 95 .filter(UserFollowing.user_id == c.default_user_id)\
97 .filter(UserFollowing.follows_repository == c.repo_info).scalar() 96 .filter(UserFollowing.follows_repository == c.repo_info).scalar()
98 97
99 if c.repo_info.stats: 98 if c.repo_info.stats:
100 last_rev = c.repo_info.stats.stat_on_revision 99 last_rev = c.repo_info.stats.stat_on_revision
108 c.stats_percentage = 0 107 c.stats_percentage = 0
109 else: 108 else:
110 c.stats_percentage = '%.2f' % ((float((last_rev)) / 109 c.stats_percentage = '%.2f' % ((float((last_rev)) /
111 c.repo_last_rev) * 100) 110 c.repo_last_rev) * 100)
112 111
113 defaults = c.repo_info.get_dict() 112 defaults = RepoModel()._get_defaults(repo_name)
114 group, repo_name = c.repo_info.groups_and_repo
115 defaults['repo_name'] = repo_name
116 defaults['repo_group'] = getattr(group[-1] if group else None,
117 'group_id', None)
118
119 #fill owner
120 if c.repo_info.user:
121 defaults.update({'user': c.repo_info.user.username})
122 else:
123 replacement_user = self.sa.query(User)\
124 .filter(User.admin == True).first().username
125 defaults.update({'user': replacement_user})
126
127 #fill repository users
128 for p in c.repo_info.repo_to_perm:
129 defaults.update({'u_perm_%s' % p.user.username:
130 p.permission.permission_name})
131
132 #fill repository groups
133 for p in c.repo_info.users_group_to_perm:
134 defaults.update({'g_perm_%s' % p.users_group.users_group_name:
135 p.permission.permission_name})
136
137 return defaults 113 return defaults
138 114
139 @HasPermissionAllDecorator('hg.admin') 115 @HasPermissionAllDecorator('hg.admin')
140 def index(self, format='html'): 116 def index(self, format='html'):
141 """GET /repos: All items in the collection""" 117 """GET /repos: All items in the collection"""