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 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})
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
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
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}))
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 }))