def action_buttons(self): actions = [LinkButton(url=self.remove_view_uri, content=get_icon(IconEnum.WINDOW_CLOSE), color=ButtonColorEnum.DANGER, tooltip=_("Cancle this task"), )] if self.error_report: actions.append(LinkButton(url=self.error_report_uri, content=get_icon(IconEnum.CSW), color=ButtonColorEnum.WARNING, tooltip=_("Download the error report as text file."), )) return actions
class CswIndexView(CustomSingleTableMixin, FilterView): model = Metadata table_class = OgcServiceTable filterset_fields = { 'title': ['icontains'], } title = get_icon(IconEnum.CSW) + _(' CSW').__str__() def get_table(self, **kwargs): # set some custom attributes for template rendering table = super(CswIndexView, self).get_table(**kwargs) table.exclude = ('parent_service', 'layers', 'featuretypes', 'service__published_for') render_helper = RenderHelper(user_permissions=list( filter(None, self.request.user.get_all_permissions())), update_url_qs=get_current_view_args( self.request)) table.actions = [ render_helper.render_item(item=Metadata.get_add_resource_action()) ] return table def get_queryset(self): return get_queryset_filter_by_service_type( instance=self, service_type=OGCServiceEnum.CSW)
class WfsIndexView(CustomSingleTableMixin, FilterView): model = Metadata table_class = OgcServiceTable filterset_fields = { 'title': ['icontains'], } #extra_context = {'above_content': render_to_string(template_name='pending_task_list_ajax.html')} title = get_icon(IconEnum.WFS) + _(' WFS').__str__() def get_table(self, **kwargs): # set some custom attributes for template rendering table = super(WfsIndexView, self).get_table(**kwargs) table.exclude = ( 'parent_service', 'layers', 'last_harvest', 'collected_harvest_records', ) render_helper = RenderHelper(user_permissions=list( filter(None, self.request.user.get_all_permissions())), update_url_qs=get_current_view_args( self.request)) table.actions = [ render_helper.render_item(item=Metadata.get_add_resource_action()) ] return table def get_queryset(self): return get_queryset_filter_by_service_type( instance=self, service_type=OGCServiceEnum.WFS)
def render_status(self, value): icon = '' if value == states.PENDING: icon = get_icon(IconEnum.PENDING, 'text-warning') tooltip = _('Task is pending') elif value == states.STARTED: icon = get_icon(IconEnum.PLAY, 'text-success') tooltip = _('Task is running') elif value == states.SUCCESS: icon = get_icon(IconEnum.OK, 'text-success') tooltip = _('Task successfully done') elif value == states.FAILURE: icon = get_icon(IconEnum.CRITICAL, 'text-danger') tooltip = _('Task unexpected stopped') # use Template with templatecode to speed up rendering context = Context() context.update({'content': icon, 'tooltip': tooltip}) return Template(TOOLTIP).render(context)
def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) related_datasets = self.object.get_related_dataset_metadatas() item_list = [] for related_dataset in related_datasets: link_to_dataset = Link(url=related_dataset.detail_view_uri, content=related_dataset.title) metadata_xml = Link(url=related_dataset.service_metadata_uri, content=get_icon(IconEnum.CAPABILITIES) + _(' XML'), open_in_new_tab=True) metadata_html = Link(url=related_dataset.html_metadata_uri, content=get_icon(IconEnum.NEWSPAPER) + _(' HTML'), open_in_new_tab=True) dataset_metadata_dropdown = Dropdown( btn_value=get_icon(IconEnum.METADATA) + _(' Metadata'), items=[metadata_xml, metadata_html], color=ButtonColorEnum.SECONDARY, header=_l('Show metadata as:')) render_helper = RenderHelper( user_permissions=list( filter(None, self.request.user.get_all_permissions())), update_url_qs=get_current_view_args(request=self.request), update_attrs={"class": ["btn-sm", "mr-1"]}) right = render_helper.render_list_coherent( items=related_dataset.get_actions()) item_content = DefaultHeaderRow( content_left=link_to_dataset.render(), content_center=dataset_metadata_dropdown.render(), content_right=right) item_list.append(ListGroupItem(content=item_content.render())) dataset_list = ListGroup(items=item_list) context.update({'card_body': dataset_list if related_datasets else ''}) return context
class PendingTaskView(CustomSingleTableMixin, FilterView): model = TaskResult table_class = PendingTaskTable filterset_class = TaskResultFilter title = get_icon(IconEnum.PENDING_TASKS) + _(' Pending tasks').__str__() template_name = 'service/views/pending_tasks.html' def get_queryset(self): qs = super(PendingTaskView, self).get_queryset() return qs
class WmsIndexView(CustomSingleTableMixin, FilterView): model = Metadata table_class = OgcServiceTable filterset_class = OgcWmsFilter title = get_icon(IconEnum.WMS) + _(' WMS').__str__() def get_filterset_kwargs(self, *args): kwargs = super(WmsIndexView, self).get_filterset_kwargs(*args) if kwargs['data'] is None: kwargs['queryset'] = kwargs['queryset'].filter( service__is_root=True) return kwargs def get_table(self, **kwargs): # set some custom attributes for template rendering table = super(WmsIndexView, self).get_table(**kwargs) # whether whole services or single layers should be displayed, we have to exclude some columns filter_by_show_layers = self.filterset.form_prefix + '-' + 'service__is_root' if filter_by_show_layers in self.filterset.data and self.filterset.data.get( filter_by_show_layers) == 'on': table.exclude = ( 'layers', 'featuretypes', 'harvest_results', 'collected_harvest_records', 'harvest_duration', ) else: table.exclude = ( 'parent_service', 'featuretypes', 'harvest_results', 'collected_harvest_records', 'harvest_duration', ) render_helper = RenderHelper(user_permissions=list( filter(None, self.request.user.get_all_permissions()))) table.actions = [ render_helper.render_item(item=Metadata.get_add_resource_action()) ] return table def get_queryset(self): return get_queryset_filter_by_service_type( instance=self, service_type=OGCServiceEnum.WMS)
class DatasetIndexView(CustomSingleTableMixin, FilterView): model = Metadata table_class = DatasetTable filterset_class = DatasetFilter title = get_icon(IconEnum.DATASET) + _(' Dataset').__str__() def get_table(self, **kwargs): # set some custom attributes for template rendering table = super(DatasetIndexView, self).get_table(**kwargs) render_helper = RenderHelper(user_permissions=list( filter(None, self.request.user.get_all_permissions())), update_url_qs=get_current_view_args( self.request)) table.actions = [ render_helper.render_item(item=Metadata.get_add_dataset_action()) ] return table def get_queryset(self): return self.request.user.get_datasets_as_qs( user_groups=self.request.user.groups.all())
class MapContextIndexView(CustomSingleTableMixin, FilterView): model = MapContext table_class = MapContextTable filterset_fields = { 'title': ['icontains'], } title = get_icon(IconEnum.MAP_CONTEXT) + _(' Map Contexts').__str__() def get_table(self, **kwargs): # set some custom attributes for template rendering table = super(MapContextIndexView, self).get_table(**kwargs) render_helper = RenderHelper(user_permissions=list( filter(None, self.request.user.get_all_permissions())), update_url_qs=get_current_view_args( self.request)) table.actions = [ render_helper.render_item(item=MapContext.get_add_action()) ] return table def get_queryset(self): return MapContext.objects.all()
def get_add_action(cls): return LinkButton(content=get_icon(IconEnum.ADD) + _(' New group').__str__(), color=ButtonColorEnum.SUCCESS, url=reverse('structure:group_new'), needs_perm=PermissionEnum.CAN_EDIT_GROUP.value)
class PendingTaskView(CustomSingleTableMixin, ListView): model = PendingTask table_class = PendingTaskTable title = get_icon(IconEnum.PENDING_TASKS) + _(' Pending tasks').__str__()
def icon(self): return get_icon(IconEnum.SUBSCRIPTION)
def icon(self): return get_icon(IconEnum.ORGANIZATION)
def icon(self): return get_icon(IconEnum.GROUP)
def icon(self): return get_icon(IconEnum.PUBLISHERS)
def icon(self): return get_icon(IconEnum.PENDING_TASKS)
def icon(self): return get_icon(IconEnum.USER)