Ticket #550: patch_550-r3338-A0.diff
| File patch_550-r3338-A0.diff, 7.5 kB (added by bbinet, 2 years ago) |
|---|
-
mapfish/commands.py
109 109 def command(self): 110 110 """Main command to create a mapfish controller""" 111 111 try: 112 fileOp = FileOp(source_dir=os.path.join(113 os.path.dirname(__file__), 'templates'))114 try:115 name, directory = fileOp.parse_path_name_args(self.args[0])116 except:117 raise BadCommand('No egg_info directory was found')118 119 112 # read layers.ini 120 113 config = ConfigParser() 121 114 config.read(['layers.ini']) 122 115 # check passed layer is in layers.ini 123 if not config.has_section(name): 116 sectionName = self.args[0] 117 if not config.has_section(sectionName): 124 118 raise BadCommand( 125 'There is no layer named %s in layers.ini' % name) 119 'There is no layer section named %s in layers.ini' % \ 120 sectionName) 126 121 127 122 # get layer parameters 128 singular Name = config.get(name, 'singular')129 plural Name = config.get(name, 'plural')130 epsg = config.get( name, 'epsg')123 singular = config.get(sectionName, 'singular') 124 plural = config.get(sectionName, 'plural') 125 epsg = config.get(sectionName, 'epsg') 131 126 127 fileOp = FileOp(source_dir=os.path.join( 128 os.path.dirname(__file__), 'templates')) 129 try: 130 singularName, singularDirectory = \ 131 fileOp.parse_path_name_args(singular) 132 pluralName, pluralDirectory = \ 133 fileOp.parse_path_name_args(plural) 134 except Exception, e: 135 raise BadCommand('No egg_info directory was found') 136 132 137 # check the name isn't the same as the package 133 138 basePkg = fileOp.find_dir('controllers', True)[0] 134 if basePkg.lower() == name.lower():139 if basePkg.lower() == pluralName.lower(): 135 140 raise BadCommand( 136 141 'Your controller name should not be the same as ' 137 142 'the package name %s' % basePkg) 138 143 139 144 # validate the name 140 name = name.replace('-', '_')145 name = pluralName.replace('-', '_') 141 146 validateName(name) 142 147 143 148 # set test file name 144 fullName = os.path.join( directory, name)149 fullName = os.path.join(pluralDirectory, name) 145 150 if not fullName.startswith(os.sep): 146 151 fullName = os.sep + fullName 147 152 testName = fullName.replace(os.sep, '_')[1:] 148 153 149 154 # set template vars 150 155 modName = name 151 fullModName = os.path.join( directory, name)156 fullModName = os.path.join(pluralDirectory, name) 152 157 contrClass = util.class_name_from_module_name(name) 153 158 modelClass = util.class_name_from_module_name(singularName) 154 modelTabObj = name + '_table'155 159 156 160 # setup the controller 157 161 fileOp.template_vars.update( … … 161 165 'pluralName': pluralName, 162 166 'contrClass': contrClass, 163 167 'modelClass': modelClass, 164 'modelTabObj': modelTabObj, 165 'basePkg': basePkg, 166 'epsg': epsg}) 168 'basePkg': basePkg}) 167 169 fileOp.copy_file(template='controller.py_tmpl', 168 dest=os.path.join('controllers', directory),170 dest=os.path.join('controllers', pluralDirectory), 169 171 filename=name, 170 172 template_renderer=paste_script_template_renderer) 171 173 if not self.options.no_test: … … 178 180 "add a map statement to your\n") 179 181 resource_command += ("config/routing.py file in the CUSTOM ROUTES section " 180 182 "like this:\n\n") 181 command = 'map.resource("%s", "%s")\n' % \ 182 (singularName, pluralName) 183 resource_command += command 183 resource_command += 'map.resource("%s", "%s")\n' % \ 184 (singularName, pluralName) 184 185 185 186 print resource_command 186 187 … … 222 223 def command(self): 223 224 """Main command to create mapfish model""" 224 225 try: 225 fileOp = FileOp(source_dir=os.path.join(226 os.path.dirname(__file__), 'templates'))227 try:228 name, directory = fileOp.parse_path_name_args(self.args[0])229 except:230 raise BadCommand('No egg_info directory was found')231 232 226 # read layers.ini 233 227 config = ConfigParser() 234 228 config.read(['layers.ini']) 235 229 # check passed layer is in layers.ini 236 if not config.has_section(name): 230 sectionName = self.args[0] 231 if not config.has_section(sectionName): 237 232 raise BadCommand( 238 'There is no layer named %s in layers.ini' % name) 233 'There is no layer section named %s in layers.ini' % \ 234 sectionName) 239 235 240 236 # get layer parameters 241 singularName = config.get(name, 'singular') 242 table = config.get(name, 'table') 243 epsg = config.get(name, 'epsg') 244 geomColName = config.get(name, 'geomcolumn') 245 if config.has_option(name, 'schema'): 246 schema = config.get(name, 'schema') 237 singular = config.get(sectionName, 'singular') 238 plural = config.get(sectionName, 'plural') 239 table = config.get(sectionName, 'table') 240 epsg = config.get(sectionName, 'epsg') 241 geomColName = config.get(sectionName, 'geomcolumn') 242 if config.has_option(sectionName, 'schema'): 243 schema = config.get(sectionName, 'schema') 247 244 else: 248 245 schema = None 249 246 247 fileOp = FileOp(source_dir=os.path.join( 248 os.path.dirname(__file__), 'templates')) 249 try: 250 singularName, singularDirectory = \ 251 fileOp.parse_path_name_args(singular) 252 pluralName, pluralDirectory = \ 253 fileOp.parse_path_name_args(plural) 254 except: 255 raise BadCommand('No egg_info directory was found') 256 250 257 # check the name isn't the same as the package 251 basePkg = fileOp.find_dir(' controllers', True)[0]252 if basePkg.lower() == name.lower():258 basePkg = fileOp.find_dir('model', True)[0] 259 if basePkg.lower() == pluralName.lower(): 253 260 raise BadCommand( 254 'Your controllername should not be the same as '261 'Your model name should not be the same as ' 255 262 'the package name %s' % basePkg) 256 263 257 264 # validate the name 258 name = name.replace('-', '_')265 name = pluralName.replace('-', '_') 259 266 validateName(name) 260 267 261 268 # set template vars … … 272 279 'basePkg': basePkg, 273 280 'schema': schema}) 274 281 fileOp.copy_file(template='model.py_tmpl', 275 dest=os.path.join('model', directory),282 dest=os.path.join('model', pluralDirectory), 276 283 filename=name, 277 284 template_renderer=paste_script_template_renderer) 278 285
