Mercurial > kallithea
comparison rhodecode/controllers/settings.py @ 636:ffd07396d315 beta
Fixes for raw_id, needed for git
Renamed hg controller to home
css html changes
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 26 Oct 2010 03:20:32 +0200 |
parents | 7e536d1af60d |
children | 758f64f3fbda |
comparison
equal
deleted
inserted
replaced
635:fd63782c4426 | 636:ffd07396d315 |
---|---|
39 log = logging.getLogger(__name__) | 39 log = logging.getLogger(__name__) |
40 | 40 |
41 class SettingsController(BaseController): | 41 class SettingsController(BaseController): |
42 | 42 |
43 @LoginRequired() | 43 @LoginRequired() |
44 @HasRepoPermissionAllDecorator('repository.admin') | 44 @HasRepoPermissionAllDecorator('repository.admin') |
45 def __before__(self): | 45 def __before__(self): |
46 super(SettingsController, self).__before__() | 46 super(SettingsController, self).__before__() |
47 | 47 |
48 def index(self, repo_name): | 48 def index(self, repo_name): |
49 repo_model = RepoModel() | 49 repo_model = RepoModel() |
50 c.repo_info = repo = repo_model.get(repo_name) | 50 c.repo_info = repo = repo_model.get(repo_name) |
51 if not repo: | 51 if not repo: |
52 h.flash(_('%s repository is not mapped to db perhaps' | 52 h.flash(_('%s repository is not mapped to db perhaps' |
53 ' it was created or renamed from the filesystem' | 53 ' it was created or renamed from the filesystem' |
54 ' please run the application again' | 54 ' please run the application again' |
55 ' in order to rescan repositories') % repo_name, | 55 ' in order to rescan repositories') % repo_name, |
56 category='error') | 56 category='error') |
57 | 57 |
58 return redirect(url('hg_home')) | 58 return redirect(url('home')) |
59 defaults = c.repo_info.__dict__ | 59 defaults = c.repo_info.__dict__ |
60 defaults.update({'user':c.repo_info.user.username}) | 60 defaults.update({'user':c.repo_info.user.username}) |
61 c.users_array = repo_model.get_users_js() | 61 c.users_array = repo_model.get_users_js() |
62 | 62 |
63 for p in c.repo_info.repo_to_perm: | 63 for p in c.repo_info.repo_to_perm: |
64 defaults.update({'perm_%s' % p.user.username: | 64 defaults.update({'perm_%s' % p.user.username: |
65 p.permission.permission_name}) | 65 p.permission.permission_name}) |
66 | 66 |
67 return htmlfill.render( | 67 return htmlfill.render( |
68 render('settings/repo_settings.html'), | 68 render('settings/repo_settings.html'), |
69 defaults=defaults, | 69 defaults=defaults, |
70 encoding="UTF-8", | 70 encoding="UTF-8", |
71 force_defaults=False | 71 force_defaults=False |
72 ) | 72 ) |
73 | 73 |
74 def update(self, repo_name): | 74 def update(self, repo_name): |
75 repo_model = RepoModel() | 75 repo_model = RepoModel() |
76 changed_name = repo_name | 76 changed_name = repo_name |
77 _form = RepoSettingsForm(edit=True, old_data={'repo_name':repo_name})() | 77 _form = RepoSettingsForm(edit=True, old_data={'repo_name':repo_name})() |
79 form_result = _form.to_python(dict(request.POST)) | 79 form_result = _form.to_python(dict(request.POST)) |
80 repo_model.update(repo_name, form_result) | 80 repo_model.update(repo_name, form_result) |
81 invalidate_cache('cached_repo_list') | 81 invalidate_cache('cached_repo_list') |
82 h.flash(_('Repository %s updated successfully' % repo_name), | 82 h.flash(_('Repository %s updated successfully' % repo_name), |
83 category='success') | 83 category='success') |
84 changed_name = form_result['repo_name'] | 84 changed_name = form_result['repo_name'] |
85 except formencode.Invalid, errors: | 85 except formencode.Invalid, errors: |
86 c.repo_info = repo_model.get(repo_name) | 86 c.repo_info = repo_model.get(repo_name) |
87 c.users_array = repo_model.get_users_js() | 87 c.users_array = repo_model.get_users_js() |
88 errors.value.update({'user':c.repo_info.user.username}) | 88 errors.value.update({'user':c.repo_info.user.username}) |
89 return htmlfill.render( | 89 return htmlfill.render( |
90 render('settings/repo_settings.html'), | 90 render('settings/repo_settings.html'), |
91 defaults=errors.value, | 91 defaults=errors.value, |
92 errors=errors.error_dict or {}, | 92 errors=errors.error_dict or {}, |
93 prefix_error=False, | 93 prefix_error=False, |
94 encoding="UTF-8") | 94 encoding="UTF-8") |
95 except Exception: | 95 except Exception: |
96 log.error(traceback.format_exc()) | 96 log.error(traceback.format_exc()) |
97 h.flash(_('error occured during update of repository %s') \ | 97 h.flash(_('error occured during update of repository %s') \ |
98 % repo_name, category='error') | 98 % repo_name, category='error') |
99 | 99 |
100 return redirect(url('repo_settings_home', repo_name=changed_name)) | 100 return redirect(url('repo_settings_home', repo_name=changed_name)) |
101 | 101 |
102 | 102 |
103 | 103 |
104 def delete(self, repo_name): | 104 def delete(self, repo_name): |
105 """DELETE /repos/repo_name: Delete an existing item""" | 105 """DELETE /repos/repo_name: Delete an existing item""" |
106 # Forms posted to this method should contain a hidden field: | 106 # Forms posted to this method should contain a hidden field: |
107 # <input type="hidden" name="_method" value="DELETE" /> | 107 # <input type="hidden" name="_method" value="DELETE" /> |
108 # Or using helpers: | 108 # Or using helpers: |
109 # h.form(url('repo_settings_delete', repo_name=ID), | 109 # h.form(url('repo_settings_delete', repo_name=ID), |
110 # method='delete') | 110 # method='delete') |
111 # url('repo_settings_delete', repo_name=ID) | 111 # url('repo_settings_delete', repo_name=ID) |
112 | 112 |
113 repo_model = RepoModel() | 113 repo_model = RepoModel() |
114 repo = repo_model.get(repo_name) | 114 repo = repo_model.get(repo_name) |
115 if not repo: | 115 if not repo: |
116 h.flash(_('%s repository is not mapped to db perhaps' | 116 h.flash(_('%s repository is not mapped to db perhaps' |
117 ' it was moved or renamed from the filesystem' | 117 ' it was moved or renamed from the filesystem' |
118 ' please run the application again' | 118 ' please run the application again' |
119 ' in order to rescan repositories') % repo_name, | 119 ' in order to rescan repositories') % repo_name, |
120 category='error') | 120 category='error') |
121 | 121 |
122 return redirect(url('hg_home')) | 122 return redirect(url('home')) |
123 try: | 123 try: |
124 action_logger(self.rhodecode_user, 'user_deleted_repo', | 124 action_logger(self.rhodecode_user, 'user_deleted_repo', |
125 repo_name, '', self.sa) | 125 repo_name, '', self.sa) |
126 repo_model.delete(repo) | 126 repo_model.delete(repo) |
127 invalidate_cache('cached_repo_list') | 127 invalidate_cache('cached_repo_list') |
128 h.flash(_('deleted repository %s') % repo_name, category='success') | 128 h.flash(_('deleted repository %s') % repo_name, category='success') |
129 except Exception: | 129 except Exception: |
130 h.flash(_('An error occurred during deletion of %s') % repo_name, | 130 h.flash(_('An error occurred during deletion of %s') % repo_name, |
131 category='error') | 131 category='error') |
132 | 132 |
133 return redirect(url('hg_home')) | 133 return redirect(url('home')) |
134 | 134 |
135 def fork(self, repo_name): | 135 def fork(self, repo_name): |
136 repo_model = RepoModel() | 136 repo_model = RepoModel() |
137 c.repo_info = repo = repo_model.get(repo_name) | 137 c.repo_info = repo = repo_model.get(repo_name) |
138 if not repo: | 138 if not repo: |
139 h.flash(_('%s repository is not mapped to db perhaps' | 139 h.flash(_('%s repository is not mapped to db perhaps' |
140 ' it was created or renamed from the filesystem' | 140 ' it was created or renamed from the filesystem' |
141 ' please run the application again' | 141 ' please run the application again' |
142 ' in order to rescan repositories') % repo_name, | 142 ' in order to rescan repositories') % repo_name, |
143 category='error') | 143 category='error') |
144 | 144 |
145 return redirect(url('hg_home')) | 145 return redirect(url('home')) |
146 | 146 |
147 return render('settings/repo_fork.html') | 147 return render('settings/repo_fork.html') |
148 | 148 |
149 | 149 |
150 | 150 |
151 def fork_create(self, repo_name): | 151 def fork_create(self, repo_name): |
152 repo_model = RepoModel() | 152 repo_model = RepoModel() |
153 c.repo_info = repo_model.get(repo_name) | 153 c.repo_info = repo_model.get(repo_name) |
154 _form = RepoForkForm()() | 154 _form = RepoForkForm()() |
155 form_result = {} | 155 form_result = {} |
159 repo_model.create_fork(form_result, c.rhodecode_user) | 159 repo_model.create_fork(form_result, c.rhodecode_user) |
160 h.flash(_('fork %s repository as %s task added') \ | 160 h.flash(_('fork %s repository as %s task added') \ |
161 % (repo_name, form_result['fork_name']), | 161 % (repo_name, form_result['fork_name']), |
162 category='success') | 162 category='success') |
163 action_logger(self.rhodecode_user, 'user_forked_repo', | 163 action_logger(self.rhodecode_user, 'user_forked_repo', |
164 repo_name, '', self.sa) | 164 repo_name, '', self.sa) |
165 except formencode.Invalid, errors: | 165 except formencode.Invalid, errors: |
166 c.new_repo = errors.value['fork_name'] | 166 c.new_repo = errors.value['fork_name'] |
167 r = render('settings/repo_fork.html') | 167 r = render('settings/repo_fork.html') |
168 | 168 |
169 return htmlfill.render( | 169 return htmlfill.render( |
170 r, | 170 r, |
171 defaults=errors.value, | 171 defaults=errors.value, |
172 errors=errors.error_dict or {}, | 172 errors=errors.error_dict or {}, |
173 prefix_error=False, | 173 prefix_error=False, |
174 encoding="UTF-8") | 174 encoding="UTF-8") |
175 return redirect(url('hg_home')) | 175 return redirect(url('home')) |