Skip to content

Commit

Permalink
Apply updates following PR review
Browse files Browse the repository at this point in the history
Fix tests
  • Loading branch information
KevinEtchells committed Oct 10, 2024
1 parent 05bdd70 commit 5fd50ae
Show file tree
Hide file tree
Showing 9 changed files with 61 additions and 42 deletions.
3 changes: 1 addition & 2 deletions django_app/redbox_app/jinja2.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,12 @@
import humanize
import jinja2
import pytz
import waffle
from django.conf import settings
from django.templatetags.static import static
from django.urls import reverse
from django.utils.timezone import template_localtime
from markdown_it import MarkdownIt
import waffle

# `js-default` setting required to sanitize inputs
# https://markdown-it-py.readthedocs.io/en/latest/security.html
Expand Down Expand Up @@ -98,7 +98,6 @@ def environment(**options):
"environment": settings.ENVIRONMENT.value,
"security": settings.MAX_SECURITY_CLASSIFICATION.value,
"waffle_flag": waffle.flag_is_active,

}
)
return env
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
# Generated by Django 5.1.1 on 2024-10-10 08:34
# Generated by Django 5.1.1 on 2024-10-10 14:33

from django.db import migrations, models


class Migration(migrations.Migration):

dependencies = [
('redbox_core', '0046_chat_archived'),
('redbox_core', '0047_aisettings_agentic_give_up_question_prompt_and_more'),
]

operations = [
Expand Down
19 changes: 16 additions & 3 deletions django_app/redbox_app/redbox_core/views/info_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,21 @@
These shouldn't contain sensitive data and don't require login.
"""

import waffle
from django.conf import settings
from django.shortcuts import render
from django.views.decorators.http import require_http_methods
import waffle


@require_http_methods(["GET"])
def privacy_notice_view(request):
return render(request, "privacy-notice.html", {"waffle_flag": waffle.flag_is_active,})
return render(
request,
"privacy-notice.html",
{
"waffle_flag": waffle.flag_is_active,
},
)


@require_http_methods(["GET"])
Expand All @@ -23,4 +29,11 @@ def support_view(request):

@require_http_methods(["GET"])
def accessibility_statement_view(request):
return render(request, "accessibility-statement.html", {"contact_email": settings.CONTACT_EMAIL, "waffle_flag": waffle.flag_is_active,})
return render(
request,
"accessibility-statement.html",
{
"contact_email": settings.CONTACT_EMAIL,
"waffle_flag": waffle.flag_is_active,
},
)
6 changes: 1 addition & 5 deletions django_app/redbox_app/redbox_core/views/misc_views.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,14 @@
import logging
import os
from http import HTTPStatus

from django.conf import settings
from django.http import HttpRequest, HttpResponse
from django.shortcuts import render
from django.views.decorators.http import require_http_methods
from django.views.generic.base import RedirectView
from dotenv import load_dotenv

from redbox_app.redbox_core.models import Chat

load_dotenv()

logger = logging.getLogger(__name__)


Expand All @@ -21,7 +17,7 @@ def homepage_view(request):
return render(
request,
template_name="homepage.html",
context={"request": request, "allow_sign_ups": os.getenv("ALLOW_SIGN_UPS") == "True"},
context={"request": request, "allow_sign_ups": settings.ALLOW_SIGN_UPS},
)


Expand Down
31 changes: 14 additions & 17 deletions django_app/redbox_app/redbox_core/views/signup_views.py
Original file line number Diff line number Diff line change
@@ -1,30 +1,27 @@
import logging
import os

from django.conf import settings
from django.contrib.auth import get_user_model
from django.http import HttpRequest, HttpResponse, QueryDict
from django.shortcuts import redirect, render
from django.views import View
from dotenv import load_dotenv

from redbox_app.redbox_core.forms import SignUpForm

load_dotenv()

User = get_user_model()

logger = logging.getLogger(__name__)


class Signup1(View):
def get(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
form = SignUpForm()
return render(request, "sign-up-page-1.html", {"form": form})

def post(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
form = SignUpForm(request.POST)

Expand All @@ -42,13 +39,13 @@ def post(self, request: HttpRequest) -> HttpResponse:

class Signup2(View):
def get(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
form = SignUpForm()
return render(request, "sign-up-page-2.html", {"form": form})

def post(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
combined_data = {**request.session.get("sign_up_data", {}), **request.POST.dict()}
query_dict = QueryDict("", mutable=True)
Expand All @@ -64,13 +61,13 @@ def post(self, request: HttpRequest) -> HttpResponse:

class Signup3(View):
def get(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
form = SignUpForm()
return render(request, "sign-up-page-3.html", {"form": form})

def post(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
combined_data = {**request.session.get("sign_up_data", {}), **request.POST.dict()}
query_dict = QueryDict("", mutable=True)
Expand All @@ -86,13 +83,13 @@ def post(self, request: HttpRequest) -> HttpResponse:

class Signup4(View):
def get(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
form = SignUpForm()
return render(request, "sign-up-page-4.html", {"form": form})

def post(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
combined_data = {**request.session.get("sign_up_data", {}), **request.POST.dict()}
query_dict = QueryDict("", mutable=True)
Expand All @@ -108,13 +105,13 @@ def post(self, request: HttpRequest) -> HttpResponse:

class Signup5(View):
def get(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
form = SignUpForm()
return render(request, "sign-up-page-5.html", {"form": form})

def post(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
combined_data = {**request.session.get("sign_up_data", {}), **request.POST.dict()}
query_dict = QueryDict("", mutable=True)
Expand All @@ -130,13 +127,13 @@ def post(self, request: HttpRequest) -> HttpResponse:

class Signup6(View):
def get(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
form = SignUpForm()
return render(request, "sign-up-page-6.html", {"form": form})

def post(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
combined_data = {**request.session.get("sign_up_data", {}), **request.POST.dict()}
query_dict = QueryDict("", mutable=True)
Expand Down Expand Up @@ -167,6 +164,6 @@ def post(self, request: HttpRequest) -> HttpResponse:

class Signup7(View):
def get(self, request: HttpRequest) -> HttpResponse:
if os.getenv("ALLOW_SIGN_UPS") != "True":
if settings.ALLOW_SIGN_UPS:
return redirect("homepage")
return render(request, "sign-up-page-7.html")
2 changes: 2 additions & 0 deletions django_app/redbox_app/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

env = environ.Env()

ALLOW_SIGN_UPS = env.bool("ALLOW_SIGN_UPS")

SECRET_KEY = env.str("DJANGO_SECRET_KEY")
ENVIRONMENT = Environment[env.str("ENVIRONMENT").upper()]
WEBSOCKET_SCHEME = "ws" if ENVIRONMENT.is_test else "wss"
Expand Down
36 changes: 23 additions & 13 deletions django_app/redbox_app/templates/homepage.html
Original file line number Diff line number Diff line change
Expand Up @@ -11,25 +11,35 @@
{% if waffle_flag(request, 'uktrade') %}
<h1 class="govuk-heading-xl govuk-!-margin-bottom-7">Use Artificial Intelligence (AI) to interact with {{ security }} level documents from your own document set</h1>
<p class="govuk-body-l govuk-!-margin-bottom-7">You may summarise documents, ask questions related to one or more documents, and chat directly with the AI to assist you in your work. You can use up to, and including, Official documents.</p>
<div class="rb-banner__links">
{% if not request.user.is_authenticated %}
{{ govukButton(
text="Sign in",
href=url('sign-in'),
classes="govuk-button--secondary govuk-!-margin-bottom-0 rb-banner__button"
) }}
{% endif %}
</div>
{% else %}
<h1 class="govuk-heading-xl govuk-!-margin-bottom-7">Ask any question of documents in your Redbox</h1>
<p class="govuk-body-l govuk-!-margin-bottom-7">Use Artificial Intelligence (AI) to get insights from your personal document set. You can use up to, and including, {{ security }} documents.</p>
{% endif %}
<div class="rb-banner__links">
{% if not request.user.is_authenticated %}
{{ govukButton(
text="Sign in",
href=url('sign-in'),
classes="govuk-button--secondary govuk-!-margin-bottom-0 rb-banner__button"
) }}
{% if allow_sign_ups %}
<span class="govuk-body govuk-!-margin-bottom-0">or <a class="govuk-link" href="{{ url('sign-up-page-1') }}">sign up</a> to use Redbox</span>
<div class="rb-banner__links">
{% if not request.user.is_authenticated %}
{{ govukButton(
text="Sign in",
href=url('sign-in'),
classes="govuk-button--secondary govuk-!-margin-bottom-0 rb-banner__button"
) }}
{% if allow_sign_ups %}
<span class="govuk-body govuk-!-margin-bottom-0">or <a class="govuk-link" href="{{ url('sign-up-page-1') }}">sign up</a> to use Redbox</span>
{% endif %}
{% endif %}
</div>
{% if not request.user.is_authenticated and not allow_sign_ups %}
<p class="govuk-body govuk-!-margin-bottom-0 govuk-!-margin-top-5">We are not currently allowing new users to sign up. Please check back soon.</p>
{% endif %}
</div>
{% if not allow_sign_ups %}
<p class="govuk-body govuk-!-margin-bottom-0 govuk-!-margin-top-5">We are not currently allowing new users to sign up. Please check back soon.</p>
{% endif %}

</div>
</div>
</div>
Expand Down
1 change: 1 addition & 0 deletions tests/.env.integration
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ POSTGRES_DB=redbox-core
POSTGRES_PASSWORD=insecure
CONTACT_EMAIL=redbox-support@cabinetoffice.gov.uk
POSTGRES_HOST=db
ALLOW_SIGN_UPS=True

EMAIL_BACKEND_TYPE=CONSOLE
GOV_NOTIFY_API_KEY=f4k3_k3y
Expand Down
1 change: 1 addition & 0 deletions tests/.env.test
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ GOVUK_NOTIFY_PLAIN_EMAIL_TEMPLATE_ID=example-id
EMAIL_FILE_PATH='/app/mail'
AWS_REGION=eu-west-2
FILE_EXPIRY_IN_DAYS=30
ALLOW_SIGN_UPS=True

# === Playwright Tests ===

Expand Down

0 comments on commit 5fd50ae

Please sign in to comment.