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

     
    109109    def command(self): 
    110110        """Main command to create a mapfish controller""" 
    111111        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  
    119112            # read layers.ini 
    120113            config = ConfigParser() 
    121114            config.read(['layers.ini']) 
    122115            # 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): 
    124118                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) 
    126121 
    127122            # get layer parameters 
    128             singularName = config.get(name, 'singular') 
    129             pluralName = 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') 
    131126 
     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 
    132137            # check the name isn't the same as the package 
    133138            basePkg = fileOp.find_dir('controllers', True)[0] 
    134             if basePkg.lower() == name.lower(): 
     139            if basePkg.lower() == pluralName.lower(): 
    135140                raise BadCommand( 
    136141                    'Your controller name should not be the same as ' 
    137142                    'the package name %s' % basePkg) 
    138143 
    139144            # validate the name 
    140             name = name.replace('-', '_') 
     145            name = pluralName.replace('-', '_') 
    141146            validateName(name) 
    142147 
    143148            # set test file name 
    144             fullName = os.path.join(directory, name) 
     149            fullName = os.path.join(pluralDirectory, name) 
    145150            if not fullName.startswith(os.sep): 
    146151                fullName = os.sep + fullName 
    147152            testName = fullName.replace(os.sep, '_')[1:] 
    148153 
    149154            # set template vars 
    150155            modName = name 
    151             fullModName = os.path.join(directory, name) 
     156            fullModName = os.path.join(pluralDirectory, name) 
    152157            contrClass = util.class_name_from_module_name(name) 
    153158            modelClass = util.class_name_from_module_name(singularName) 
    154             modelTabObj = name + '_table' 
    155159 
    156160            # setup the controller 
    157161            fileOp.template_vars.update( 
     
    161165                 'pluralName': pluralName, 
    162166                 'contrClass': contrClass, 
    163167                 'modelClass': modelClass, 
    164                  'modelTabObj': modelTabObj, 
    165                  'basePkg': basePkg, 
    166                  'epsg': epsg}) 
     168                 'basePkg': basePkg}) 
    167169            fileOp.copy_file(template='controller.py_tmpl', 
    168                          dest=os.path.join('controllers', directory), 
     170                         dest=os.path.join('controllers', pluralDirectory), 
    169171                         filename=name, 
    170172                         template_renderer=paste_script_template_renderer) 
    171173            if not self.options.no_test: 
     
    178180                                "add a map statement to your\n") 
    179181            resource_command += ("config/routing.py file in the CUSTOM ROUTES section " 
    180182                                 "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) 
    184185 
    185186            print resource_command 
    186187 
     
    222223    def command(self): 
    223224        """Main command to create mapfish model""" 
    224225        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  
    232226            # read layers.ini 
    233227            config = ConfigParser() 
    234228            config.read(['layers.ini']) 
    235229            # 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): 
    237232                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) 
    239235 
    240236            # 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') 
    247244            else: 
    248245                schema = None 
    249246 
     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 
    250257            # 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(): 
    253260                raise BadCommand( 
    254                     'Your controller name should not be the same as ' 
     261                    'Your model name should not be the same as ' 
    255262                    'the package name %s' % basePkg) 
    256263 
    257264            # validate the name 
    258             name = name.replace('-', '_') 
     265            name = pluralName.replace('-', '_') 
    259266            validateName(name) 
    260267 
    261268            # set template vars 
     
    272279                 'basePkg': basePkg, 
    273280                 'schema': schema}) 
    274281            fileOp.copy_file(template='model.py_tmpl', 
    275                          dest=os.path.join('model', directory), 
     282                         dest=os.path.join('model', pluralDirectory), 
    276283                         filename=name, 
    277284                         template_renderer=paste_script_template_renderer) 
    278285