aboutsummaryrefslogtreecommitdiff
path: root/rhodecode/model
diff options
context:
space:
mode:
authorMarcin Kuzminski <marcin@python-works.com>2012-06-15 00:05:20 +0200
committerMarcin Kuzminski <marcin@python-works.com>2012-06-15 00:05:20 +0200
commit56a8a2f270121f47dbac6cc1d0da10e7dabe0593 (patch)
treeb5203ddb83b5e767e68813fed6fcbe7d95a9b31f /rhodecode/model
parent0dc6affa3b12086cb0f05a2ff4939ab1967819d4 (diff)
validating choices for landing_rev
--HG-- branch : beta
Diffstat (limited to 'rhodecode/model')
-rw-r--r--rhodecode/model/forms.py14
-rw-r--r--rhodecode/model/scm.py11
2 files changed, 16 insertions, 9 deletions
diff --git a/rhodecode/model/forms.py b/rhodecode/model/forms.py
index edbd482c..18693b32 100644
--- a/rhodecode/model/forms.py
+++ b/rhodecode/model/forms.py
@@ -653,7 +653,7 @@ def PasswordResetForm():
def RepoForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(),
- repo_groups=[]):
+ repo_groups=[], landing_revs=[]):
class _RepoForm(formencode.Schema):
allow_extra_fields = True
filter_extra_fields = False
@@ -666,7 +666,7 @@ def RepoForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(),
private = StringBoolean(if_missing=False)
enable_statistics = StringBoolean(if_missing=False)
enable_downloads = StringBoolean(if_missing=False)
- landing_rev = UnicodeString(strip=True, min=1, not_empty=True)
+ landing_rev = OneOf(landing_revs, hideList=True)
if edit:
#this is repo owner
@@ -678,8 +678,8 @@ def RepoForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(),
return _RepoForm
-def RepoForkForm(edit=False, old_data={},
- supported_backends=BACKENDS.keys(), repo_groups=[]):
+def RepoForkForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(),
+ repo_groups=[]):
class _RepoForkForm(formencode.Schema):
allow_extra_fields = True
filter_extra_fields = False
@@ -697,8 +697,8 @@ def RepoForkForm(edit=False, old_data={},
return _RepoForkForm
-def RepoSettingsForm(edit=False, old_data={},
- supported_backends=BACKENDS.keys(), repo_groups=[]):
+def RepoSettingsForm(edit=False, old_data={}, supported_backends=BACKENDS.keys(),
+ repo_groups=[], landing_revs=[]):
class _RepoForm(formencode.Schema):
allow_extra_fields = True
filter_extra_fields = False
@@ -707,7 +707,7 @@ def RepoSettingsForm(edit=False, old_data={},
description = UnicodeString(strip=True, min=1, not_empty=True)
repo_group = OneOf(repo_groups, hideList=True)
private = StringBoolean(if_missing=False)
- landing_rev = UnicodeString(strip=True, min=1, not_empty=True)
+ landing_rev = OneOf(landing_revs, hideList=True)
chained_validators = [ValidRepoName(edit, old_data), ValidPerms(),
ValidSettings]
return _RepoForm
diff --git a/rhodecode/model/scm.py b/rhodecode/model/scm.py
index 6baa0237..de45b4fb 100644
--- a/rhodecode/model/scm.py
+++ b/rhodecode/model/scm.py
@@ -482,24 +482,31 @@ class ScmModel(BaseModel):
:param repo:
:type repo:
"""
+
hist_l = []
+ choices = []
repo = self.__get_repo(repo)
hist_l.append(['tip', _('latest tip')])
+ choices.append('tip')
if not repo:
- return hist_l
+ return choices, hist_l
repo = repo.scm_instance
+
branches_group = ([(k, k) for k, v in
repo.branches.iteritems()], _("Branches"))
hist_l.append(branches_group)
+ choices.extend([x[0] for x in branches_group[0]])
if repo.alias == 'hg':
bookmarks_group = ([(k, k) for k, v in
repo.bookmarks.iteritems()], _("Bookmarks"))
hist_l.append(bookmarks_group)
+ choices.extend([x[0] for x in bookmarks_group[0]])
tags_group = ([(k, k) for k, v in
repo.tags.iteritems()], _("Tags"))
hist_l.append(tags_group)
+ choices.extend([x[0] for x in tags_group[0]])
- return hist_l
+ return choices, hist_l