diff --git a/django_api/etools_prp/apps/core/views.py b/django_api/etools_prp/apps/core/views.py index f95c87190..d53a5c1c9 100644 --- a/django_api/etools_prp/apps/core/views.py +++ b/django_api/etools_prp/apps/core/views.py @@ -3,7 +3,9 @@ from django.conf import settings from django.contrib.auth.mixins import LoginRequiredMixin from django.db.models import Q +from django.http import HttpResponseRedirect from django.shortcuts import get_object_or_404 +from django.views import View from django.views.generic import RedirectView, TemplateView import django_filters @@ -250,6 +252,21 @@ def get_redirect_url(self, *args, **kwargs): return redirect_page +class RedirectAppView(LoginRequiredMixin, View): + + def get(self, request, *args, **kwargs): + url = self.get_redirect_url(request, *args, **kwargs) + return HttpResponseRedirect(url) + + def get_redirect_url(self, request, *args, **kwargs): + path = request.path + if "cluster" in path: + new_path = path.replace("app", "cluster", 1) + else: + new_path = path.replace("app", "ip", 1) + return new_path + + class UnauthorizedView(TemplateView): template_name = 'unauthorized.html' @@ -264,4 +281,4 @@ class SocialLogoutView(RedirectView): def get_redirect_url(self, *args, **kwargs): return f'https://{settings.TENANT_B2C_URL}/{settings.TENANT_ID}.onmicrosoft.com/{settings.POLICY}/oauth2/' \ - f'v2.0/logout?post_logout_redirect_uri={settings.FRONTEND_HOST}{settings.LOGOUT_URL}' + f'v2.0/logout?post_logout_redirect_uri={settings.FRONTEND_HOST}{settings.LOGOUT_URL}' diff --git a/django_api/etools_prp/apps/unicef/models.py b/django_api/etools_prp/apps/unicef/models.py index 9a3a1fec0..7717097d2 100644 --- a/django_api/etools_prp/apps/unicef/models.py +++ b/django_api/etools_prp/apps/unicef/models.py @@ -496,7 +496,7 @@ def send_notification_on_status_change(sender, instance, **kwargs): subject_template_path = 'emails/on_progress_report_status_change_subject.txt' pd = instance.programme_document - part_pr_url = f'/app/{pd.workspace.workspace_code}/ip-reporting/pd/{pd.id}/report/{instance.id}/' + part_pr_url = f'/ip/{pd.workspace.workspace_code}/ip-reporting/pd/{pd.id}/report/{instance.id}/' pr_url = urljoin(settings.FRONTEND_HOST, part_pr_url) template_data = { diff --git a/django_api/etools_prp/config/urls.py b/django_api/etools_prp/config/urls.py index 150ca1329..cf3915ff6 100644 --- a/django_api/etools_prp/config/urls.py +++ b/django_api/etools_prp/config/urls.py @@ -22,12 +22,13 @@ from rest_framework_swagger.views import get_swagger_view -from etools_prp.apps.core.views import HomeView, SocialLogoutView, UnauthorizedView +from etools_prp.apps.core.views import HomeView, RedirectAppView, SocialLogoutView, UnauthorizedView schema_view = get_swagger_view(title='eTools PRP API') urlpatterns = [ url(r'^$', HomeView.as_view()), + url(r'^app/', RedirectAppView.as_view()), url(r'^api/docs/', schema_view), url(r'^api/admin/', admin.site.urls), url(r'^api/core/', include('etools_prp.apps.core.urls')),