예제 #1
0
파일: models.py 프로젝트: majo72/mrmap
 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
예제 #2
0
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)
예제 #3
0
파일: views.py 프로젝트: majo72/mrmap
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)
예제 #4
0
 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)
예제 #5
0
    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
예제 #6
0
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
예제 #7
0
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)
예제 #8
0
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())
예제 #9
0
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()
예제 #10
0
파일: models.py 프로젝트: majo72/mrmap
 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)
예제 #11
0
파일: views.py 프로젝트: majo72/mrmap
class PendingTaskView(CustomSingleTableMixin, ListView):
    model = PendingTask
    table_class = PendingTaskTable
    title = get_icon(IconEnum.PENDING_TASKS) + _(' Pending tasks').__str__()
예제 #12
0
 def icon(self):
     return get_icon(IconEnum.SUBSCRIPTION)
예제 #13
0
파일: models.py 프로젝트: majo72/mrmap
 def icon(self):
     return get_icon(IconEnum.ORGANIZATION)
예제 #14
0
파일: models.py 프로젝트: majo72/mrmap
 def icon(self):
     return get_icon(IconEnum.GROUP)
예제 #15
0
파일: models.py 프로젝트: majo72/mrmap
 def icon(self):
     return get_icon(IconEnum.PUBLISHERS)
예제 #16
0
파일: models.py 프로젝트: majo72/mrmap
 def icon(self):
     return get_icon(IconEnum.PENDING_TASKS)
예제 #17
0
파일: models.py 프로젝트: majo72/mrmap
 def icon(self):
     return get_icon(IconEnum.USER)