| 140 | | gis_layer=SQLTable(db,'gis_layer', |
| 141 | | db.Field('modified_on','datetime',default=now), |
| 142 | | #db.Field('uuid',length=64,default=uuid.uuid4()), # Layers like OpenStreetMap, Google, etc shouldn't sync |
| 143 | | db.Field('name'), |
| 144 | | db.Field('description',length=256), |
| 145 | | #db.Field('priority','integer'), # System default priority is set in ol_layers_all.js. User priorities are set in WMC. |
| 146 | | db.Field('enabled','boolean',default=True)) |
| 147 | | gis_layer.name.requires=IS_NOT_EMPTY() |
| | 140 | gis_layer = db.Table(db, "gis_layer", timestamp, |
| | 141 | #uuidstamp, # Layers like OpenStreetMap, Google, etc shouldn't sync |
| | 142 | Field("name", notnull=True, label=T("Name"), requires=IS_NOT_EMPTY(), comment=SPAN("*", _class="req")), |
| | 143 | Field("description", label=T("Description")), |
| | 144 | #Field("priority", "integer", label=T("Priority")), # System default priority is set in ol_layers_all.js. User priorities are set in WMC. |
| | 145 | Field("enabled", "boolean", default=True, label=T("Available in Viewer?"))) |
| 149 | | resource='layer_'+layertype |
| 150 | | table=module+'_'+resource |
| 151 | | title_create=T('Add Layer') |
| 152 | | title_display=T('Layer Details') |
| 153 | | title_list=T('List Layers') |
| 154 | | title_update=T('Edit Layer') |
| 155 | | subtitle_create=T('Add New Layer') |
| 156 | | subtitle_list=T('Layers') |
| 157 | | label_list_button=T('List Layers') |
| 158 | | label_create_button=T('Add Layer') |
| 159 | | msg_record_created=T('Layer added') |
| 160 | | msg_record_modified=T('Layer updated') |
| 161 | | msg_record_deleted=T('Layer deleted') |
| 162 | | msg_list_empty=T('No Layers currently defined') |
| | 147 | resource = "layer_" + layertype |
| | 148 | tablename = "%s_%s" % (module, resource) |
| 164 | | if layertype=="newlayertype": |
| 165 | | t=SQLTable(db,table, |
| 166 | | db.Field('subtype'), |
| 167 | | gis_layer) |
| 168 | | t.subtype.requires=IS_IN_SET(gis_layer_newlayertype_subtypes) |
| 169 | | db.define_table(table,t) |
| 170 | | db['%s' % table].represent=lambda table:shn_list_item(table,resource='layer_newlayertype',action='display',extra=str(table.enabled)) |
| 171 | | if not len(db().select(db['%s' % table].ALL)): |
| 172 | | # Populate table |
| 173 | | for subtype in gis_layer_newlayertype_subtypes: |
| 174 | | db['%s' % table].insert( |
| 175 | | name='New Layer Type '+subtype, |
| 176 | | subtype=subtype |
| 177 | | ) |
| 178 | | # Customise CRUD strings if-desired |
| 179 | | msg_list_empty=T('No New Layer Type Layers currently defined') |
| 180 | | exec('crud_strings.%s=Storage(title_create=title_create, title_display=title_display, title_list=title_list, title_update=title_update, subtitle_create=subtitle_create, subtitle_list=subtitle_list, label_list_button=label_list_button, label_create_button=label_create_button, msg_record_created=msg_record_created, msg_record_modified=msg_record_modified, msg_record_deleted=msg_record_deleted, msg_list_empty=msg_list_empty)' % resource) |
| 181 | | }}} |
| 182 | | |
| | 150 | if layertype == "newlayertype": |
| | 151 | t = db.Table(db, table, |
| | 152 | gis_layer, |
| | 153 | Field("subtype", label=T("Sub-type"), requires = IS_IN_SET(gis_layer_newlayertype_subtypes, zero=None)), |
| | 154 | Field("layer_specific_option")) |
| | 155 | table = db.define_table(tablename, t, migrate=migrate) |
| | 156 | |