1414
1515from django .conf import settings
1616from django .core .management .base import BaseCommand , CommandError
17+ from django .db .models import Q
1718from django .template .loader import render_to_string
1819
1920import debug # pyflakes:ignore
@@ -69,17 +70,21 @@ def svn_admin_cmd(self, *args):
6970 return self .do_cmd (settings .SVN_ADMIN_COMMAND , * args )
7071
7172 def create_svn (self , svn ):
72- self .note (" Creating svn repository: %s" % svn )
73- if not os .path .exists (os .path .dirname (svn )):
74- msg = "Intended to create '%s', but parent directory is missing" % svn
75- self .log (msg )
76- return msg
77- err , out = self .svn_admin_cmd ("create" , svn )
78- if err :
79- msg = "Error %s creating svn repository %s:\n %s" % (err , svn , out )
80- self .log (msg )
81- return msg
82- return None
73+ if self .dummy_run :
74+ self .note (" Would create svn repository: %s" % svn )
75+ return "Dummy run, no svn repo created"
76+ else :
77+ self .note (" Creating svn repository: %s" % svn )
78+ if not os .path .exists (os .path .dirname (svn )):
79+ msg = "Intended to create '%s', but parent directory is missing" % svn
80+ self .log (msg )
81+ return msg
82+ err , out = self .svn_admin_cmd ("create" , svn )
83+ if err :
84+ msg = "Error %s creating svn repository %s:\n %s" % (err , svn , out )
85+ self .log (msg )
86+ return msg
87+ return ""
8388
8489 # --- trac ---
8590
@@ -159,7 +164,7 @@ def create_trac(self, group):
159164 # custom pages and settings.
160165 if self .dummy_run :
161166 self .note ("Would create Trac for group '%s' at %s" % (group .acronym , group .trac_dir ))
162- return None , None
167+ return None , "Dummy run, no trac created"
163168 else :
164169 try :
165170 self .note ("Creating Trac for group '%s' at %s" % (group .acronym , group .trac_dir ))
@@ -178,7 +183,7 @@ def create_trac(self, group):
178183 # Components (i.e., drafts) will be handled during components
179184 # update later
180185 # Permissions will be handled during permission update later.
181- return env , None
186+ return env , ""
182187 except TracError as e :
183188 msg = "While creating Trac instance for %s: %s" % (group , e )
184189 self .log (msg )
@@ -287,11 +292,12 @@ def handle(self, *filenames, **options):
287292 if not os .path .exists (os .path .dirname (self .svn_dir_pattern )):
288293 raise CommandError ('The SVN base direcory specified for the SVN directories (%s) does not exist.' % os .path .dirname (self .svn_dir_pattern ))
289294
290- groups = Group . objects . filter (
291- type__slug__in = settings .TRAC_CREATE_GROUP_TYPES ,
292- state__slug = 'active' ,
293- ).order_by ('acronym' )
295+ gfilter = Q ( type__slug__in = settings . TRAC_CREATE_GROUP_TYPES , state__slug = 'active' )
296+ gfilter |= Q ( acronym__in = settings .TRAC_CREATE_GROUP_ACRONYMS )
297+
298+ groups = Group . objects . filter ( gfilter ).order_by ('acronym' )
294299 if self .group_list :
300+
295301 groups = groups .filter (acronym__in = self .group_list )
296302
297303 for group in groups :
0 commit comments