Mercurial > kallithea
diff rhodecode/model/forms.py @ 659:758f64f3fbda beta
extended repo creation by repo type. fixed fork creation to maintain repo type.
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 05 Nov 2010 21:55:30 +0100 |
parents | 05528ad948c4 |
children | 673de12e6bf6 |
line wrap: on
line diff
--- a/rhodecode/model/forms.py Fri Nov 05 18:47:00 2010 +0100 +++ b/rhodecode/model/forms.py Fri Nov 05 21:55:30 2010 +0100 @@ -30,6 +30,7 @@ from rhodecode.model.repo import RepoModel from rhodecode.model.db import User from webhelpers.pylonslib.secure_form import authentication_token +from vcs import BACKENDS import formencode import logging import os @@ -147,6 +148,15 @@ return _ValidRepoName +def ValidForkType(old_data): + class _ValidForkType(formencode.validators.FancyValidator): + + def to_python(self, value, state): + if old_data['repo_type'] != value: + raise formencode.Invalid(_('Fork have to be the same type as original'), value, state) + return value + return _ValidForkType + class ValidPerms(formencode.validators.FancyValidator): messages = {'perm_new_user_name':_('This username is not valid')} @@ -292,7 +302,7 @@ repo_name = All(UnicodeString(strip=True, min=1, not_empty=True), ValidRepoName(edit, old_data)) description = UnicodeString(strip=True, min=1, not_empty=True) private = StringBoolean(if_missing=False) - + repo_type = OneOf(BACKENDS.keys()) if edit: user = All(Int(not_empty=True), ValidRepoUser) @@ -306,7 +316,7 @@ fork_name = All(UnicodeString(strip=True, min=1, not_empty=True), ValidRepoName(edit, old_data)) description = UnicodeString(strip=True, min=1, not_empty=True) private = StringBoolean(if_missing=False) - + repo_type = All(ValidForkType(old_data), OneOf(BACKENDS.keys())) return _RepoForkForm def RepoSettingsForm(edit=False, old_data={}):