Beispiel #1
0
def search(request):
    query = request.GET.get("q", "")

    docs = None
    if query:
        docs = VisnykDocument.search().query(
            "multi_match", query=query,
            operator="and",
            fields=["plain_content", "goods_name", "cust_name"])

        if docs.count() == 0:
            # PLAN B, PLAN B

            docs = VisnykDocument.search().query(
                "multi_match", query=query,
                operator="or",
                minimum_should_match="2",
                fields=["plain_content", "goods_name", "cust_name"])

        docs = paginated_search(
            request,
            docs.highlight('plain_content', order="score")
        )

    return render(request, "search.html", {
        "docs": docs,
        "query": query
    })
Beispiel #2
0
def preview(request, doc_id):
    try:
        doc = VisnykDocument.get(id=doc_id)
    except (ValueError, NotFoundError):
        raise Http404("Таких не знаємо!")

    return render(request, "preview.html", {"doc": doc})
Beispiel #3
0
    def handle(self, *args, **options):
        VisnykDocument.init()

        for arg in args:
            for root, _, files in os.walk(arg, topdown=True):
                for fl in files:
                    fname, ext = os.path.splitext(fl)

                    if ext.lower() in [".xml", ""]:
                        continue

                    basename = os.path.join(root, fname)

                    if not os.path.exists(basename + ".xml"):
                        self.stderr.write(
                            'Cannot find "{0}.xml", skipping'.format(basename))
                        continue

                    try:
                        doc = None

                        if not os.path.exists(basename + ".json"):
                            # continue
                            doc = self.convert_to_json_doc(basename, ext)

                            if doc:
                                with open(basename + ".json", "w") as fp:
                                    json.dump(doc, fp)
                        else:
                            with open(basename + ".json", "r") as fp:
                                doc = json.load(fp)

                        if doc:
                            doc["_id"] = fname
                            doc["filename"] = basename.replace(
                                arg, "", 1).lstrip("/") + ext

                            el_doc = VisnykDocument(**doc)
                            el_doc.save()

                    except ConvertException:
                        self.stderr.write("Cannot convert {0}".format(fl))
Beispiel #4
0
    def handle(self, *args, **options):
        VisnykDocument.init()

        for arg in args:
            for root, _, files in os.walk(arg, topdown=True):
                for fl in files:
                    fname, ext = os.path.splitext(fl)

                    if ext.lower() in [".xml", ""]:
                        continue

                    basename = os.path.join(root, fname)

                    if not os.path.exists(basename + ".xml"):
                        self.stderr.write(
                            'Cannot find "{0}.xml", skipping'.format(basename))
                        continue

                    try:
                        doc = None

                        if not os.path.exists(basename + ".json"):
                            # continue
                            doc = self.convert_to_json_doc(basename, ext)

                            if doc:
                                with open(basename + ".json", "w") as fp:
                                    json.dump(doc, fp)
                        else:
                            with open(basename + ".json", "r") as fp:
                                doc = json.load(fp)

                        if doc:
                            doc["_id"] = fname
                            doc["filename"] = basename.replace(
                                arg, "", 1).lstrip("/") + ext

                            el_doc = VisnykDocument(**doc)
                            el_doc.save()

                    except ConvertException:
                        self.stderr.write("Cannot convert {0}".format(fl))