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 }))
def get_association(self, form): selection = SelectionSearch(form) filters = selection.get_filters() queries = selection.get_queries() weighted = form.cleaned_data["weigh"] interval = form.cleaned_data["interval"] return Association(queries, filters, weighted=weighted, interval=interval)
def get_association(self, form): selection = SelectionSearch(form) filters = selection.get_filters() queries = selection.get_queries() weighted = form.cleaned_data["weigh"] interval = form.cleaned_data["interval"] return Association(queries, filters, weighted=weighted, interval=interval)
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) 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}))