Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optional TOS feature with /environment flag #4726

Merged
merged 6 commits into from Nov 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
17 changes: 17 additions & 0 deletions kpi/tests/api/test_api_environment.py
Expand Up @@ -12,6 +12,7 @@
from django.urls import reverse
from django.utils import timezone
from markdown import markdown
from hub.models.sitewide_message import SitewideMessage
from model_bakery import baker
from rest_framework import status

Expand Down Expand Up @@ -116,6 +117,7 @@ def setUp(self):
'custom_password_localized_help_text': markdown(
I18nUtils.get_custom_password_help_text()
),
'terms_of_service__sitewidemessage__exists': False,
}

def _check_response_dict(self, response_dict):
Expand Down Expand Up @@ -305,3 +307,18 @@ def test_social_apps(self):
with self.assertNumQueries(queries):
response = self.client.get(self.url, format='json')
self.assertContains(response, app.name)

def test_tos_sitewide_message(self):
# Check that fixtures properly stores terms of service
response = self.client.get(self.url, format='json')
assert response.status_code == status.HTTP_200_OK
assert not response.data['terms_of_service__sitewidemessage__exists']

# Create SitewideMessage object and check that it properly updates terms of service
SitewideMessage.objects.create(
slug='terms_of_service',
body='tos agreement',
)
response = self.client.get(self.url, format='json')
assert response.status_code == status.HTTP_200_OK
assert response.data['terms_of_service__sitewidemessage__exists']
5 changes: 5 additions & 0 deletions kpi/views/environment.py
Expand Up @@ -7,6 +7,7 @@
from django.conf import settings
from django.utils.translation import gettext_lazy as t
from markdown import markdown
from hub.models.sitewide_message import SitewideMessage
from rest_framework.response import Response
from rest_framework.views import APIView

Expand Down Expand Up @@ -191,6 +192,10 @@ def process_other_configs(request):
data['free_tier_thresholds'] = FREE_TIER_NO_THRESHOLDS
data['free_tier_display'] = FREE_TIER_EMPTY_DISPLAY

data[
'terms_of_service__sitewidemessage__exists'
] = SitewideMessage.objects.filter(slug='terms_of_service').exists()

return data

def get(self, request, *args, **kwargs):
Expand Down