Example #1
0
    def run(self, form):
        assert isinstance(
            self.data, QueryDict
        ), "Class should have been instantiated with a django QueryDict as 'data'"

        selection = SelectionSearch(form)
        data = {API_KEYWORD_MAP.get(k, k): v for k, v in self.data.lists()}
        data["q"] = [
            "{}#{}".format(q.label, q.query) for q in selection.get_queries()
        ]
        data["ids"] = data.get("ids", selection.get_filters().get("ids", []))
        url = urlencode(data, doseq=True)
        rowlink = ARTICLE_ROWLINK.format(
            reverse("navigator:project-details", args=[self.project.id]),
            "{id}")
        table = Datatable(SearchResource,
                          url="/api/v4/search",
                          rowlink=rowlink,
                          rowlink_open_in="new",
                          checkboxes=True,
                          allow_export_via_post=True,
                          allow_html_export=True)
        table = table.add_arguments(minimal="1")
        table = table.add_arguments(project=str(self.project.id))

        for k, vs in data.items():
            for v in vs:
                table = table.add_arguments(**{k: v})

        return TABLE_TEMPLATE.render(
            Context({
                "form": form,
                "url": url,
                "table": table
            }))
Example #2
0
    def run(self, form):
        assert isinstance(self.data, QueryDict), "Class should have been instantiated with a django QueryDict as 'data'"

        selection = SelectionSearch.get_instance(form)
        data = {API_KEYWORD_MAP.get(k, k): v for k, v in self.data.lists()}
        data["q"] = ["{}#{}".format(q.label, q.query) for q in selection.get_queries()]
        data["ids"] = data.get("ids", selection.get_filters().get("ids", []))
        url = urlencode(data, doseq=True)
        rowlink = ARTICLE_ROWLINK.format(reverse("navigator:project-details", args=[self.project.id]), "{id}")
        table = Datatable(
            SearchResource,
            url="/api/v4/search",
            rowlink=rowlink,
            rowlink_open_in="new",
            checkboxes=True,
            allow_export_via_post=True,
            allow_html_export=True
        )
        table = table.add_arguments(minimal="1")
        table = table.add_arguments(project=str(self.project.id))

        for k, vs in data.items():
            for v in vs:
                table = table.add_arguments(**{k:v})

        return TABLE_TEMPLATE.render({"form": form, "url": url, "table": table})
Example #3
0
def getDatatable(form, rowlink='article/{id}'):
    from api.rest.datatable import Datatable
    from api.rest.resources import SearchResource
    table = Datatable(SearchResource, rowlink=rowlink)
    
    for field, val in filters_from_form(form):
        table = table.filter(**{field : val})

    for query in queries_from_form(form):
        table = table.add_arguments(q=query.query)

    if form.get('include_all') and form.get('include_all') != 'False':
        table = table.add_arguments(q="*")
    return table
Example #4
0
def getDatatable(form, rowlink='article/{id}', **kwargs):
    from api.rest.datatable import Datatable
    from api.rest.resources import SearchResource
    table = Datatable(SearchResource, rowlink=rowlink, **kwargs)
    
    for field, val in filters_from_form(form):
        table = table.filter(**{field : val})

    for query in queries_from_form(form):
        table = table.add_arguments(q=query.query)

    if form.get('include_all') and form.get('include_all') != 'False':
        table = table.add_arguments(q="*")
    return table
Example #5
0
    def run(self, form):
        selection = SelectionSearch(form)
        data = {API_KEYWORD_MAP.get(k, k): v for k,v in self.data.iterlists()}
        data["q"] = ["{}#{}".format(q.label, q.query) for q in selection.get_queries()]
        url = urllib.urlencode(data, doseq=True)

        table = Datatable(SearchResource, url="/api/v4/search")
        table = table.add_arguments(minimal="1")
        table = table.add_arguments(project=str(self.project.id))

        for k, vs in data.items():
            for v in vs:
                table = table.add_arguments(**{k:v})

        return TABLE_TEMPLATE.render(Context({"form": form, "url": url, "table": table}))
Example #6
0
    def run(self, form):
        selection = SelectionSearch(form)
        data = {API_KEYWORD_MAP.get(k, k): v for k, v in self.data.iterlists()}
        data["q"] = [
            "{}#{}".format(q.label, q.query) for q in selection.get_queries()
        ]
        url = urllib.urlencode(data, doseq=True)

        table = Datatable(SearchResource, url="/api/v4/search")
        table = table.add_arguments(minimal="1")
        table = table.add_arguments(project=str(self.project.id))

        for k, vs in data.items():
            for v in vs:
                table = table.add_arguments(**{k: v})

        return TABLE_TEMPLATE.render(
            Context({
                "form": form,
                "url": url,
                "table": table
            }))