Skip to content

Commit

Permalink
Merge pull request #61 from uktrade/feature/ORPD-127-orp_search-to-se…
Browse files Browse the repository at this point in the history
…arch

ORPD-127 - orp_search-to-search
  • Loading branch information
gdbarnes authored Nov 28, 2024
2 parents 16a03b8 + 579d797 commit 2719bd8
Show file tree
Hide file tree
Showing 25 changed files with 51 additions and 50 deletions.
2 changes: 1 addition & 1 deletion fbr/config/settings/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@

LOCAL_APPS = [
"core",
"orp_search",
"search",
]

THIRD_PARTY_APPS: list = [
Expand Down
24 changes: 12 additions & 12 deletions fbr/config/urls.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,6 @@
import logging
import time

import orp_search.views as orp_search_views

from orp_search.config import SearchDocumentConfig
from orp_search.models import DataResponseModel
from orp_search.utils.documents import clear_all_documents
from orp_search.utils.search import get_publisher_names, search
from rest_framework import routers, serializers, status, viewsets
from rest_framework.decorators import action
from rest_framework.response import Response
Expand All @@ -18,6 +12,12 @@
from django.urls import include, path

import core.views as core_views
import search.views as search_views

from search.config import SearchDocumentConfig
from search.models import DataResponseModel
from search.utils.documents import clear_all_documents
from search.utils.search import get_publisher_names, search

urls_logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -94,8 +94,8 @@ def search(self, request, *args, **kwargs):
class RebuildCacheViewSet(viewsets.ViewSet):
@action(detail=False, methods=["post"], url_path="rebuild")
def rebuild_cache(self, request, *args, **kwargs):
from orp_search.legislation import Legislation
from orp_search.public_gateway import PublicGateway
from search.legislation import Legislation
from search.public_gateway import PublicGateway

tx_begin = time.time()
try:
Expand Down Expand Up @@ -156,16 +156,16 @@ def publishers(self, request, *args, **kwargs):

urlpatterns = [
path("api/", include(router.urls)),
path("", orp_search_views.search_react, name="search_react"),
path("nojs/", orp_search_views.search_django, name="search_django"),
path("", search_views.search_react, name="search_react"),
path("nojs/", search_views.search_django, name="search_django"),
# If we choose to have a start page with green button, this is it:
# path("", core_views.home, name="home"),
path(
"download_csv/",
orp_search_views.download_search_csv,
search_views.download_search_csv,
name="download_csv",
),
path("document/<str:id>", orp_search_views.document, name="document"),
path("document/<str:id>", search_views.document, name="document"),
path("healthcheck/", core_views.health_check, name="healthcheck"),
path(
"accessibility-statement/",
Expand Down
File renamed without changes.
2 changes: 1 addition & 1 deletion fbr/orp_search/apps.py → fbr/search/apps.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ class SearchConfig(AppConfig):
"""

name = "orp_search"
name = "search"
verbose_name = "Find business regulations application functionality"
default_auto_field = "django.db.models.BigAutoField"
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions fbr/orp_search/legislation.py → fbr/search/legislation.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@

import requests # type: ignore

from orp_search.config import SearchDocumentConfig
from orp_search.construction_legislation import ( # noqa: E501
from search.config import SearchDocumentConfig
from search.construction_legislation import ( # noqa: E501
construction_legislation_dataframe,
)
from orp_search.utils.date import convert_date_string_to_obj
from orp_search.utils.documents import ( # noqa: E501
from search.utils.date import convert_date_string_to_obj
from search.utils.documents import ( # noqa: E501
generate_short_uuid,
insert_or_update_document,
)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@

import requests # type: ignore

from orp_search.utils.date import convert_date_string_to_obj
from orp_search.utils.documents import ( # noqa: E501
from search.utils.date import convert_date_string_to_obj
from search.utils.documents import ( # noqa: E501
generate_short_uuid,
insert_or_update_document,
)
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

{% comment %}
To pass small amounts of data from the Django view to the React app,
we use the following template tags passed in from orp_search/views.py:
we use the following template tags passed in from search/views.py:
{{ publishers|json_script:"publishers" }}
{% endcomment %}
{% block body_content %}
Expand All @@ -30,7 +30,7 @@
<div class="govuk-width-container">
<main class="govuk-main-wrapper" id="main-content" role="main">
{% include "intro.html" %}
<div id="orp-react-app"></div>
<div id="find-business-regulations-react-app"></div>
</main>
</div>
{% endblock %}
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@

from unittest.mock import MagicMock, call, patch

from orp_search.utils.search import create_search_query
from search.utils.search import create_search_query


class TestCreateSearchQuery(unittest.TestCase):

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_single_word_query(self, mock_search_query):
result = create_search_query("test")
mock_search_query.assert_called_with("test", search_type="plain")
self.assertEqual(result, mock_search_query.return_value)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_implicit_and_search_operator_query(self, mock_search_query):
# Mock SearchQuery instances
mock_query1 = MagicMock(name="MockQuery1")
Expand All @@ -35,7 +35,7 @@ def test_implicit_and_search_operator_query(self, mock_search_query):
# Assert the AND operation was applied
mock_query1.__and__.assert_called_once_with(mock_query2)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_multiple_implicit_and_search_operator_query(
self, mock_search_query
):
Expand All @@ -61,7 +61,7 @@ def test_multiple_implicit_and_search_operator_query(
# Assert the AND operation was applied
mock_query1.__and__.assert_called_with(mock_query3)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_and_search_operator_query(self, mock_search_query):
# Mock SearchQuery instances
mock_query1 = MagicMock(name="MockQuery1")
Expand All @@ -83,7 +83,7 @@ def test_and_search_operator_query(self, mock_search_query):
# Assert the AND operation was applied
mock_query1.__and__.assert_called_once_with(mock_query2)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_multiple_and_search_operator_query(self, mock_search_query):
# Mock SearchQuery instances
mock_query1 = MagicMock(name="MockQuery1")
Expand All @@ -107,7 +107,7 @@ def test_multiple_and_search_operator_query(self, mock_search_query):
# Assert the AND operation was applied
mock_query1.__and__.assert_called_with(mock_query3)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_or_search_operator_query(self, mock_search_query):
# Mock SearchQuery instances
mock_query1 = MagicMock(name="MockQuery1")
Expand All @@ -129,7 +129,7 @@ def test_or_search_operator_query(self, mock_search_query):
# Assert the AND operation was applied
mock_query1.__or__.assert_called_once_with(mock_query2)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_multple_or_search_operator_query(self, mock_search_query):
# Mock SearchQuery instances
mock_query1 = MagicMock(name="MockQuery1")
Expand All @@ -153,7 +153,7 @@ def test_multple_or_search_operator_query(self, mock_search_query):
# Assert the AND operation was applied
mock_query1.__or__.assert_called_with(mock_query3)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_multiple_or_search_operator_query(self, mock_search_query):
# Mock SearchQuery instances
mock_query1 = MagicMock(name="MockQuery1")
Expand All @@ -177,15 +177,15 @@ def test_multiple_or_search_operator_query(self, mock_search_query):
# Assert the AND operation was applied
mock_query1.__or__.assert_called_with(mock_query3)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_phrase_search_query(self, mock_search_query):
result = create_search_query('"test trial"')
mock_search_query.assert_called_with(
"test trial", search_type="phrase"
)
self.assertEqual(result, mock_search_query.return_value)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_and_multiple_single_single_phrase_search_query(
self, mock_search_query
):
Expand Down Expand Up @@ -221,7 +221,7 @@ def test_and_multiple_single_single_phrase_search_query(
# Assert the AND operation was applied
mock_query1.__and__.assert_called_with(mock_query5)

@patch("orp_search.utils.search.SearchQuery", autospec=True)
@patch("search.utils.search.SearchQuery", autospec=True)
def test_single_or_and_search_operator_query(self, mock_search_query):
# Mock SearchQuery instances
mock_query1 = MagicMock(name="MockQuery1")
Expand Down
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,11 @@
import uuid

from numpy.f2py.auxfuncs import throw_error
from orp_search.models import DataResponseModel, logger

from django.db.models import QuerySet

from search.models import DataResponseModel, logger


def clear_all_documents():
"""
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import logging
import time

from orp_search.config import SearchDocumentConfig

from django.core.paginator import EmptyPage, PageNotAnInteger, Paginator
from django.db.models import QuerySet

from search.config import SearchDocumentConfig

logger = logging.getLogger(__name__)


Expand Down
12 changes: 6 additions & 6 deletions fbr/orp_search/utils/search.py → fbr/search/utils/search.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@
import re
import time

from orp_search.config import SearchDocumentConfig
from orp_search.models import DataResponseModel
from orp_search.utils.documents import calculate_score
from orp_search.utils.paginate import paginate
from orp_search.utils.terms import sanitize_input

from django.contrib.postgres.search import SearchQuery, SearchVector
from django.db.models import F, Func, Q, QuerySet
from django.http import HttpRequest

from search.config import SearchDocumentConfig
from search.models import DataResponseModel
from search.utils.documents import calculate_score
from search.utils.paginate import paginate
from search.utils.terms import sanitize_input

logger = logging.getLogger(__name__)


Expand Down
File renamed without changes.
12 changes: 6 additions & 6 deletions fbr/orp_search/views.py → fbr/search/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@

import pandas as pd

from orp_search.config import SearchDocumentConfig
from orp_search.models import DataResponseModel
from orp_search.utils.search import search, search_database

from django.conf import settings
from django.core.serializers import serialize
from django.http import HttpRequest, HttpResponse
from django.shortcuts import render
from django.views.decorators.http import require_http_methods

from search.config import SearchDocumentConfig
from search.models import DataResponseModel
from search.utils.search import search, search_database

logger = logging.getLogger(__name__)


Expand Down Expand Up @@ -128,7 +128,7 @@ def search_django(request: HttpRequest):
}

context = search(context, request)
return render(request, template_name="orp.html", context=context)
return render(request, template_name="django-fbr.html", context=context)


@require_http_methods(["GET"])
Expand All @@ -148,4 +148,4 @@ def search_react(request: HttpRequest) -> HttpResponse:
},
}

return render(request, template_name="react-orp.html", context=context)
return render(request, template_name="react-fbr.html", context=context)
2 changes: 1 addition & 1 deletion react_front_end/src/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import React from "react"
import ReactDOM from "react-dom/client"
import App from "./App"

const root = ReactDOM.createRoot(document.getElementById("orp-react-app"))
const root = ReactDOM.createRoot(document.getElementById("find-business-regulations-react-app"))
root.render(
<React.StrictMode>
<App />
Expand Down

0 comments on commit 2719bd8

Please sign in to comment.