def run(self, form): selection = SelectionSearch(form) queries = selection.get_queries() articlesets = form.cleaned_data["articlesets"] mediums = form.cleaned_data["mediums"] statistics = selection.get_statistics() if hasattr(statistics, "start_date"): start_date = statistics.start_date end_date = statistics.end_date else: start_date = None end_date = None return json.dumps({ "queries": {q.label: q.query for q in queries}, "mediums": {m.id: m.name for m in mediums}, "articlesets": {a.id: a.name for a in articlesets}, "statistics": { "start_date": start_date, "end_date": end_date, "narticles": statistics.n } }, cls=DjangoJSONEncoder)
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): selection = SelectionSearch(form) queries = selection.get_queries() articlesets = form.cleaned_data["articlesets"] mediums = form.cleaned_data["mediums"] statistics = selection.get_statistics() if hasattr(statistics, "start_date"): start_date = statistics.start_date end_date = statistics.end_date else: start_date = None end_date = None return json.dumps( { "queries": {q.label: q.query for q in queries}, "mediums": {m.id: m.name for m in mediums}, "articlesets": {a.id: a.name for a in articlesets}, "statistics": { "start_date": start_date, "end_date": end_date, "narticles": statistics.n } }, cls=DjangoJSONEncoder)
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): 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): 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}))
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 }))