Author: jhammel
Date: 2008-08-29 12:01:04 -0400 (Fri, 29 Aug 2008)
New Revision: 20160
Modified:
trac/install/TracLegos/traclegos/templates/project-details.html
trac/install/TracLegos/traclegos/web.py
Log:
MODIFIED: improvements to display of repository options; now to link them in
Modified: trac/install/TracLegos/traclegos/templates/project-details.html
===================================================================
--- trac/install/TracLegos/traclegos/templates/project-details.html
2008-08-29 15:22:51 UTC (rev 20159)
+++ trac/install/TracLegos/traclegos/templates/project-details.html
2008-08-29 16:01:04 UTC (rev 20160)
@@ -21,20 +21,23 @@
<div py:if="repositories">
<h2>Source Repository</h2>
- <p py:for="repository in repositories">
- <input type="radio" name="repository"
value="${repository.__class__.__name__}"/>
- ${repository.description}<py:if test="len(repository.options)">:
-
- <py:choose test="len(repository.options)">
- <py:when test="1"><input type="text"/>
- </py:choose>
+ <p py:for="index, repository in enumerate(repositories)"
+ py:with="options = [option for option in repository.options if
+ option.name not in excluded_fields.get(repository.name, ())]">
+ <input type="radio"
+ py:attrs="{'checked': not index and 'true' or None }"
+ name="repository" value="${repository.name}"/>
+ ${repository.description}<py:if test="len(options)">:
+ <py:choose test="len(options)">
+ <py:when test="1"><input type="text"/></py:when>
<py:otherwise>
<ul>
- <li py:for="option in repository.options">
+ <li py:for="option in options">
<input type="text"/>
</li>
</ul>
</py:otherwise>
+ </py:choose>
</py:if>
</p>
Modified: trac/install/TracLegos/traclegos/web.py
===================================================================
--- trac/install/TracLegos/traclegos/web.py 2008-08-29 15:22:51 UTC (rev
20159)
+++ trac/install/TracLegos/traclegos/web.py 2008-08-29 16:01:04 UTC (rev
20160)
@@ -25,8 +25,10 @@
# default values for instance variables
# (settable through **kw to __init__)
+ # XXX this looks like the wrong pattern here, maybe
defaults = {'directory': None,
- 'available_templates': None }
+ 'available_templates': None,
+ 'available_repositories': None }
def __init__(self, **kw):
for key in self.defaults:
@@ -54,7 +56,21 @@
# steps of project creation
self.steps = [ 'create-project', 'project-details',
'project-variables' ]
+ # available SCM repositories
self.repositories = available_repositories()
+ if self.available_repositories is None:
+ self.available_repositories = ['NoRepository'] + [ name for name
in self.repositories.keys() if name is not 'NoRepository' ]
+
+ else:
+ for name in self.repositories.keys():
+ if name not in self.available_repositories:
+ del self.repositories[name]
+
+ # known fields for repositories
+ # XXX could add these via the paste .ini file
+ self.repository_fields = {}
+ self.repository_fields['SVNSync'] = { 'directory':
os.path.join(self.directory, '%(project)s', 'mirror')}
+ self.repository_fields['NewSVN'] = { 'directory':
os.path.join(self.directory, '%(project)s', 'svn') }
# TODO: pop project-details if this is an empty step
@@ -198,7 +214,10 @@
svn repo, mailing lists (TODO)
"""
data = {'project': req.GET['project'],
- 'repositories': self.repositories } # TODO: databases
+ 'repositories': [ self.repositories[name] for name in
self.available_repositories ],
+ 'excluded_fields': dict((key, value.keys()) for key, value in
self.repository_fields.items())}
+
+ # TODO: databases
return data
def validateProjectDetails(self, req):
--
To unsubscribe send an email with subject "unsubscribe" to [EMAIL PROTECTED]
Please contact [EMAIL PROTECTED] for questions.