mirror of
https://github.com/cisagov/manage.get.gov.git
synced 2025-07-22 10:46:06 +02:00
Add waffle flags
This commit is contained in:
parent
c352869f6b
commit
059a99aca1
2 changed files with 23 additions and 5 deletions
|
@ -2,8 +2,9 @@
|
|||
Contains middleware used in settings.py
|
||||
"""
|
||||
from urllib.parse import urlparse, urlunparse, parse_qs, urlencode
|
||||
from django.urls import reverse, resolve
|
||||
from django.urls import reverse
|
||||
from django.http import HttpResponseRedirect
|
||||
from waffle.decorators import flag_is_active
|
||||
|
||||
class CheckUserProfileMiddleware:
|
||||
"""
|
||||
|
@ -21,11 +22,16 @@ class CheckUserProfileMiddleware:
|
|||
|
||||
def process_view(self, request, view_func, view_args, view_kwargs):
|
||||
|
||||
# Check that the user is "opted-in" to the profile feature flag
|
||||
has_profile_feature_flag = flag_is_active(request, "profile_feature")
|
||||
|
||||
# If they aren't, skip this entirely
|
||||
if not has_profile_feature_flag:
|
||||
return None
|
||||
|
||||
# Check if setup is not finished
|
||||
finished_setup = hasattr(request.user, "finished_setup") and request.user.finished_setup
|
||||
if request.user.is_authenticated and not finished_setup:
|
||||
# redirect_to_domain_request = request.GET.get('domain_request', "") != ""
|
||||
setup_page = reverse(
|
||||
"finish-contact-profile-setup",
|
||||
kwargs={"pk": request.user.contact.pk}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
from enum import Enum
|
||||
from waffle.decorators import waffle_flag
|
||||
from urllib.parse import urlencode, urlunparse, urlparse, quote
|
||||
from django.urls import NoReverseMatch, reverse
|
||||
from registrar.forms.contact import ContactForm
|
||||
|
@ -18,7 +18,8 @@ logger = logging.getLogger(__name__)
|
|||
|
||||
|
||||
class BaseContactView(ContactPermissionView):
|
||||
|
||||
"""Provides a base view for the contact object. On get, the contact
|
||||
is saved in the session and on self.object."""
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""Sets the current contact in cache, defines the current object as self.object
|
||||
then returns render_to_response"""
|
||||
|
@ -54,7 +55,7 @@ class BaseContactView(ContactPermissionView):
|
|||
|
||||
|
||||
class ContactFormBaseView(BaseContactView, FormMixin):
|
||||
|
||||
"""Adds a FormMixin to BaseContactView, and handles post"""
|
||||
def post(self, request, *args, **kwargs):
|
||||
"""Form submission posts to this view.
|
||||
|
||||
|
@ -104,6 +105,7 @@ class ContactProfileSetupView(ContactFormBaseView):
|
|||
TO_SPECIFIC_PAGE = "domain_request"
|
||||
|
||||
# TODO - refactor
|
||||
@waffle_flag('profile_feature')
|
||||
@method_decorator(csrf_protect)
|
||||
def dispatch(self, request, *args, **kwargs):
|
||||
|
||||
|
@ -140,6 +142,16 @@ class ContactProfileSetupView(ContactFormBaseView):
|
|||
return super().dispatch(request, *args, **kwargs)
|
||||
|
||||
def get_redirect_url(self):
|
||||
"""
|
||||
Returns a URL string based on the current value of self.redirect_type.
|
||||
|
||||
Depending on self.redirect_type, constructs a base URL and appends a
|
||||
'redirect' query parameter. Handles different redirection types such as
|
||||
HOME, BACK_TO_SELF, COMPLETE_SETUP, and TO_SPECIFIC_PAGE.
|
||||
|
||||
Returns:
|
||||
str: The full URL with the appropriate query parameters.
|
||||
"""
|
||||
base_url = ""
|
||||
query_params = {}
|
||||
match self.redirect_type:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue