def _job(self,o): if o.job: return o.job.pk else: return '' _job.short_description = "Job" _job.admin_order_field = "job__pk" def has_add_permission(self,request): return False def has_delete_permission(self,request,obj=None): return False def get_search_results(self,request,queryset,search_term): try: #import ipdb; ipdb.set_trace() job_id = int(search_term) return self.model.objects.filter(job_id = job_id).order_by("start_time"),False except: return super(JobLogAdmin,self).get_search_results(request,queryset,search_term) class Media: js = ('/static/js/admin-model-readonly.js',) site.register(Job, JobAdmin) #site.register(FailingJob, FailingJobAdmin) site.register(RunningJob, RunningJobAdmin) site.register(EffectiveJob, EffectiveJobAdmin) site.register(JobLog, JobLogAdmin)
try: server = WmsServer.objects.get(pk = search_term) return self.model.objects.filter(server = server).order_by("name"),False except: return super(AbstractWmsLayerAdmin,self).get_search_results(request,queryset,search_term) actions = ['publish','empty_gwc','unpublish'] def get_actions(self, request): #import ipdb;ipdb.set_trace() actions = super(AbstractWmsLayerAdmin, self).get_actions(request) del actions['delete_selected'] return actions class WmsLayerAdmin(AbstractWmsLayerAdmin): pass class PublishedWmsLayerAdmin(AbstractWmsLayerAdmin): def get_queryset(self,request): qs = super(PublishedWmsLayerAdmin,self).get_queryset(request) return qs.filter(status__in = [ResourceStatus.PUBLISHED,ResourceStatus.UPDATED]) class InterestedWmsLayerAdmin(AbstractWmsLayerAdmin): def get_queryset(self,request): qs = super(InterestedWmsLayerAdmin,self).get_queryset(request) return qs.exclude(status = ResourceStatus.NEW,last_modify_time = None) site.register(WmsServer, WmsServerAdmin) site.register(WmsLayer, WmsLayerAdmin) site.register(PublishedWmsLayer, PublishedWmsLayerAdmin) site.register(InterestedWmsLayer, InterestedWmsLayerAdmin)
class Application_LayersAdmin(VersionAdmin): list_display = ("application", "_publish", "_wmslayer", "order") #actions = [instantiate] search_fields = ["application__name", "publish__name", "wmslayer__name"] form = Application_LayersForm ordering = ['application', 'order', 'publish__name', 'wmslayer__name'] def _publish(self, o): if o.publish: return "<a href='/tablemanager/publish/{0}/'>{1}</a>".format( o.publish.pk, o.publish.name) else: return "" _publish.allow_tags = True _publish.short_description = "Publish" def _wmslayer(self, o): if o.wmslayer: return "<a href='/wmsmanager/wmslayer/{0}/'>{1}</a>".format( o.wmslayer.pk, o.wmslayer.name) else: return "" _wmslayer.allow_tags = True _wmslayer.short_description = "WMS Layer" site.register(Application, ApplicationAdmin) site.register(Application_Layers, Application_LayersAdmin)
_sync_message.short_description = "Sync Message" def has_add_permission(self, request): return False class TaskSyncStatusAdmin(admin.ModelAdmin): list_display = ("id", "slave_server", "task_type", "task_name", "action", "sync_succeed", "sync_time") readonly_fields = ("id", "slave_server", "task_type", "task_name", "action", "sync_succeed", "sync_time", "_sync_message") search_fields = ("slave_server__name", "task_type", "task_name") list_filter = ("slave_server", ) def _sync_message(self, o): if o.sync_message: return "<p style='white-space:pre'>" + o.sync_message + "</p>" else: return '' _sync_message.allow_tags = True _sync_message.short_description = "Sync Message" def has_add_permission(self, request): return False site.register(SlaveServer, SlaveServerAdmin) site.register(PublishSyncStatus, PublishSyncStatusAdmin) site.register(TaskSyncStatus, TaskSyncStatusAdmin)
if failed_objects or warning_message: if failed_objects: if warning_message: messages.warning(request, mark_safe("<ul><li>{0}</li><li>Some selected layers are processed failed:<ul>{1}</ul></li></ul>".format(warning_message,"".join(["<li>{0} : {1}</li>".format(o[0],o[1]) for o in failed_objects])))) else: messages.warning(request, mark_safe("Some selected layers are processed failed:<ul>{0}</ul>".format("".join(["<li>{0} : {1}</li>".format(o[0],o[1]) for o in failed_objects])))) else: messages.warning(request, mark_safe(warning_message)) else: messages.success(request, "All selected layers are processed successfully.") def get_search_results(self,request,queryset,search_term): try: datasource = Datasource.objects.get(pk = search_term) return self.model.objects.filter(datasource = datasource).order_by("name"),False except: return super(SqlViewLayerAdmin,self).get_search_results(request,queryset,search_term) actions = ['publish','empty_gwc','unpublish','refresh'] def get_actions(self, request): #import ipdb;ipdb.set_trace() actions = super(SqlViewLayerAdmin, self).get_actions(request) return actions site.register(Datasource, DatasourceAdmin) site.register(Layer, LayerAdmin) site.register(SqlViewLayer, SqlViewLayerAdmin) site.register(PublishedLayer, PublishedLayerAdmin)
actions = ['publish', 'empty_gwc', 'unpublish'] def get_actions(self, request): #import ipdb;ipdb.set_trace() actions = super(AbstractWmsLayerAdmin, self).get_actions(request) del actions['delete_selected'] return actions class WmsLayerAdmin(AbstractWmsLayerAdmin): pass class PublishedWmsLayerAdmin(AbstractWmsLayerAdmin): def get_queryset(self, request): qs = super(PublishedWmsLayerAdmin, self).get_queryset(request) return qs.filter( status__in=[ResourceStatus.PUBLISHED, ResourceStatus.UPDATED]) class InterestedWmsLayerAdmin(AbstractWmsLayerAdmin): def get_queryset(self, request): qs = super(InterestedWmsLayerAdmin, self).get_queryset(request) return qs.exclude(status=ResourceStatus.NEW, last_modify_time=None) site.register(WmsServer, WmsServerAdmin) site.register(WmsLayer, WmsLayerAdmin) site.register(PublishedWmsLayer, PublishedWmsLayerAdmin) site.register(InterestedWmsLayer, InterestedWmsLayerAdmin)
return "<a href='/tablemanager/publish/?q={1}'>{0}:{1}</a>".format(*o.task_name.split(':')) elif o.task_type == "wms store": return "<a href='/wmsmanager/wmsserver/?q={1}'>{0}:{1}</a>".format(*o.task_name.split(':')) elif o.task_type == "wms layer": return "<a href='/wmsmanager/interestedwmslayer/?q={1}'>{0}:{1}</a>".format(*o.task_name.split(':')) elif o.task_type == "layergroup": return "<a href='/layergroup/layergroup/?q={1}'>{0}:{1}</a>".format(*o.task_name.split(':')) else: return o.task_name else: return "" _task_name.allow_tags = True _task_name.short_description = "Task name" def _sync_message(self,o): if o.sync_message: return "<p style='white-space:pre'>" + o.sync_message + "</p>" else: return '' _sync_message.allow_tags = True _sync_message.short_description = "Sync Message" def has_add_permission(self,request): return False site.register(SlaveServer, SlaveServerAdmin) site.register(PublishSyncStatus, PublishSyncStatusAdmin) site.register(TaskSyncStatus, TaskSyncStatusAdmin)
result = JobStatemachine.create_job(publish.id,Manually.instance(),job_batch_id) if not result[0]: failed_objects.append(("{0}:{1}".format(publish.workspace.name,publish.name),result[1])) if failed_objects: messages.warning(request, mark_safe("Create job failed for some selected publishs:<ul>{0}</ul>".format("".join(["<li>{0} : {1}</li>".format(o[0],o[1]) for o in failed_objects])))) else: messages.success(request, "Create job successfully for all selected publishs") create_harvest_job.short_description = "Create Harvest Job Manually" actions = ['enable_publish','disable_publish','create_harvest_job','publish_meta_data'] def get_actions(self, request): #import ipdb;ipdb.set_trace() actions = super(PublishAdmin, self).get_actions(request) self.default_delete_action = actions['delete_selected'] del actions['delete_selected'] actions['delete_selected'] = (PublishAdmin.custom_delete_selected,self.default_delete_action[1],self.default_delete_action[2]) return actions site.register(Workspace, WorkspaceAdmin) site.register(ForeignServer, ForeignServerAdmin) site.register(ForeignTable, ForeignTableAdmin) site.register(Input, InputAdmin) site.register(Publish, PublishAdmin) site.register(Normalise, NormaliseAdmin) site.register(NormalTable, NormalTableAdmin) site.register(PublishChannel, PublishChannelAdmin) site.register(DataSource, DataSourceAdmin)
self.default_delete_action = actions['delete_selected'] del actions['delete_selected'] actions['delete_selected'] = (LayerGroupAdmin.custom_delete_selected,self.default_delete_action[1],self.default_delete_action[2]) return actions class LayerGroupLayersAdmin(admin.ModelAdmin): list_display = ("id","_group","order" ,"_wmslayer") readonly_fields = () search_fields = ["group__name","layer__name"] ordering = ["group","order"] form = LayerGroupLayersForm def _group(self,o): return "<a href='/layergroup/layergroup/{0}/'>{1}</a>".format(o.group.pk,o.group.name) _group.allow_tags = True _group.short_description = "Group" def _wmslayer(self,o): if o.layer: return "<a href='/wmsmanager/wmslayer/{0}'>{1}</a>".format(o.layer.pk,o.layer.name) else: return "" _wmslayer.allow_tags = True _wmslayer.short_description = "WMS Layer" _wmslayer.admin_order_field = "layer__name" site.register(LayerGroup, LayerGroupAdmin) site.register(LayerGroupLayers, LayerGroupLayersAdmin)
class SyncLogAdmin(admin.ModelAdmin): list_display = ("sync_time", "automatic", "load_status", "commit_status", "push_status", "end_time") readonly_fields = ("sync_time", "automatic", "load_status", "commit_status", "push_status", "end_time", "_message") actions = None def _message(self, o): if o.message: return "<p style='white-space:pre'>" + o.message + "</p>" else: return '' _message.allow_tags = True _message.short_description = "Message" def has_add_permission(self, request): return False def has_delete_permission(self, request, obj=None): return False class Media: js = ('/static/js/admin-model-readonly.js', ) site.register(User, UserAdmin) site.register(Role, RoleAdmin) site.register(SyncLog, SyncLogAdmin)
class LayerGroupLayersAdmin(admin.ModelAdmin): list_display = ("id", "_group", "order", "_wmslayer") readonly_fields = () search_fields = ["group__name", "layer__name"] ordering = ["group", "order"] form = LayerGroupLayersForm def _group(self, o): return "<a href='/layergroup/layergroup/{0}/'>{1}</a>".format( o.group.pk, o.group.name) _group.allow_tags = True _group.short_description = "Group" def _wmslayer(self, o): if o.layer: return "<a href='/wmsmanager/wmslayer/{0}'>{1}</a>".format( o.layer.pk, o.layer.name) else: return "" _wmslayer.allow_tags = True _wmslayer.short_description = "WMS Layer" _wmslayer.admin_order_field = "layer__name" site.register(LayerGroup, LayerGroupAdmin) site.register(LayerGroupLayers, LayerGroupLayersAdmin)
if failed_objects or warning_message: if failed_objects: if warning_message: messages.warning(request, mark_safe("<ul><li>{0}</li><li>Some selected publishs are processed failed:<ul>{1}</ul></li></ul>".format(warning_message,"".join(["<li>{0} : {1}</li>".format(o[0],o[1]) for o in failed_objects])))) else: messages.warning(request, mark_safe("Some selected publishs are processed failed:<ul>{0}</ul>".format("".join(["<li>{0} : {1}</li>".format(o[0],o[1]) for o in failed_objects])))) else: messages.warning(request, mark_safe(warning_message)) else: messages.success(request, "All selected publishs are processed successfully.") empty_gwc.short_description = "Empty GWC" actions = ['enable_publish','disable_publish','create_harvest_job','publish_meta_data','empty_gwc'] def get_actions(self, request): #import ipdb;ipdb.set_trace() actions = super(PublishAdmin, self).get_actions(request) self.default_delete_action = actions['delete_selected'] del actions['delete_selected'] actions['delete_selected'] = (PublishAdmin.custom_delete_selected,self.default_delete_action[1],self.default_delete_action[2]) return actions site.register(Workspace, WorkspaceAdmin) site.register(ForeignTable, ForeignTableAdmin) site.register(Input, InputAdmin) site.register(Publish, PublishAdmin) site.register(Normalise, NormaliseAdmin) site.register(NormalTable, NormalTableAdmin) site.register(PublishChannel, PublishChannelAdmin) site.register(DataSource, DataSourceAdmin)
class Media: js = ('/static/js/admin-model-readonly.js',) class SyncLogAdmin(admin.ModelAdmin): list_display = ("sync_time","automatic", "load_status","commit_status","push_status","end_time") readonly_fields = ("sync_time","automatic", "load_status","commit_status","push_status","end_time","_message") actions = None def _message(self,o): if o.message: return "<p style='white-space:pre'>" + o.message + "</p>" else: return '' _message.allow_tags = True _message.short_description = "Message" def has_add_permission(self,request): return False def has_delete_permission(self,request,obj=None): return False class Media: js = ('/static/js/admin-model-readonly.js',) site.register(User, UserAdmin) site.register(Role, RoleAdmin) site.register(SyncLog, SyncLogAdmin)
messages.warning(request, mark_safe(warning_message)) else: messages.success(request, "All selected layers are processed successfully.") def get_search_results(self,request,queryset,search_term): try: datasource = Datasource.objects.get(pk = search_term) return self.model.objects.filter(datasource = datasource).order_by("name"),False except: return super(AbstractLayerAdmin,self).get_search_results(request,queryset,search_term) actions = ['publish','empty_gwc','unpublish','refresh'] def get_actions(self, request): #import ipdb;ipdb.set_trace() actions = super(AbstractLayerAdmin, self).get_actions(request) del actions['delete_selected'] return actions class LayerAdmin(AbstractLayerAdmin): pass class PublishedLayerAdmin(AbstractLayerAdmin): def get_queryset(self,request): qs = super(PublishedLayerAdmin,self).get_queryset(request) return qs.filter(status__in = ResourceStatus.published_status) site.register(Datasource, DatasourceAdmin) site.register(Layer, LayerAdmin) site.register(PublishedLayer, PublishedLayerAdmin)