Mercurial > public > src > rhodecode
comparison pylons_app/controllers/settings.py @ 393:a26f48ad7a8a
fixes issue #16 reimplementation of database repository, for using generic pk instead of repo naming as pk. Which caused to many problems.
Fixed issue when redirecting after repo name change to 404.
Removed update hook from basic app setup
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Tue, 27 Jul 2010 14:53:22 +0200 |
parents | b0715a788432 |
children | f5c1eec9f376 |
comparison
equal
deleted
inserted
replaced
392:0f35fa0f4eb8 | 393:a26f48ad7a8a |
---|---|
15 # | 15 # |
16 # You should have received a copy of the GNU General Public License | 16 # You should have received a copy of the GNU General Public License |
17 # along with this program; if not, write to the Free Software | 17 # along with this program; if not, write to the Free Software |
18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | 18 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, |
19 # MA 02110-1301, USA. | 19 # MA 02110-1301, USA. |
20 """ | |
21 Created on June 30, 2010 | |
22 settings controller for pylons | |
23 @author: marcink | |
24 """ | |
20 from formencode import htmlfill | 25 from formencode import htmlfill |
21 from pylons import tmpl_context as c, request, url | 26 from pylons import tmpl_context as c, request, url |
22 from pylons.controllers.util import redirect | 27 from pylons.controllers.util import redirect |
23 from pylons.i18n.translation import _ | 28 from pylons.i18n.translation import _ |
24 from pylons_app.lib.auth import LoginRequired, HasRepoPermissionAllDecorator | 29 from pylons_app.lib.auth import LoginRequired, HasRepoPermissionAllDecorator |
28 from pylons_app.model.repo_model import RepoModel | 33 from pylons_app.model.repo_model import RepoModel |
29 import formencode | 34 import formencode |
30 import logging | 35 import logging |
31 import pylons_app.lib.helpers as h | 36 import pylons_app.lib.helpers as h |
32 import traceback | 37 import traceback |
33 """ | 38 |
34 Created on June 30, 2010 | |
35 settings controller for pylons | |
36 @author: marcink | |
37 """ | |
38 log = logging.getLogger(__name__) | 39 log = logging.getLogger(__name__) |
39 | 40 |
40 class SettingsController(BaseController): | 41 class SettingsController(BaseController): |
41 | 42 |
42 @LoginRequired() | 43 @LoginRequired() |
70 force_defaults=False | 71 force_defaults=False |
71 ) | 72 ) |
72 | 73 |
73 def update(self, repo_name): | 74 def update(self, repo_name): |
74 repo_model = RepoModel() | 75 repo_model = RepoModel() |
76 changed_name = repo_name | |
75 _form = RepoSettingsForm(edit=True, old_data={'repo_name':repo_name})() | 77 _form = RepoSettingsForm(edit=True, old_data={'repo_name':repo_name})() |
76 try: | 78 try: |
77 form_result = _form.to_python(dict(request.POST)) | 79 form_result = _form.to_python(dict(request.POST)) |
78 repo_model.update(repo_name, form_result) | 80 repo_model.update(repo_name, form_result) |
79 invalidate_cache('cached_repo_list') | 81 invalidate_cache('cached_repo_list') |
80 h.flash(_('Repository %s updated succesfully' % repo_name), | 82 h.flash(_('Repository %s updated succesfully' % repo_name), |
81 category='success') | 83 category='success') |
82 | 84 changed_name = form_result['repo_name'] |
83 except formencode.Invalid as errors: | 85 except formencode.Invalid as errors: |
84 c.repo_info = repo_model.get(repo_name) | 86 c.repo_info = repo_model.get(repo_name) |
85 c.users_array = repo_model.get_users_js() | 87 c.users_array = repo_model.get_users_js() |
86 errors.value.update({'user':c.repo_info.user.username}) | 88 errors.value.update({'user':c.repo_info.user.username}) |
87 return htmlfill.render( | 89 return htmlfill.render( |
91 prefix_error=False, | 93 prefix_error=False, |
92 encoding="UTF-8") | 94 encoding="UTF-8") |
93 except Exception: | 95 except Exception: |
94 log.error(traceback.format_exc()) | 96 log.error(traceback.format_exc()) |
95 h.flash(_('error occured during update of repository %s') \ | 97 h.flash(_('error occured during update of repository %s') \ |
96 % form_result['repo_name'], category='error') | 98 % repo_name, category='error') |
97 | 99 |
98 return redirect(url('repo_settings_home', repo_name=form_result['repo_name'])) | 100 return redirect(url('repo_settings_home', repo_name=changed_name)) |