aboutsummaryrefslogtreecommitdiffstats
path: root/src/dashboard/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/dashboard/views.py')
-rw-r--r--src/dashboard/views.py53
1 files changed, 43 insertions, 10 deletions
diff --git a/src/dashboard/views.py b/src/dashboard/views.py
index 2942d59..f250a3c 100644
--- a/src/dashboard/views.py
+++ b/src/dashboard/views.py
@@ -16,8 +16,11 @@ from django.db.models import Q
from datetime import datetime
import pytz
-from account.models import Lab
+from account.models import Lab, UserProfile
+from api.utils import get_ipa_migration_form, ipa_query_user
+from api.views import ipa_conflict_account
from booking.models import Booking
+from dashboard.forms import *
from laas_dashboard import settings
@@ -72,25 +75,55 @@ def host_profile_detail_view(request):
def landing_view(request):
user = request.user
+ ipa_migrator = {
+ "exists": "false" # Jinja moment
+ }
if not user.is_anonymous:
bookings = Booking.objects.filter(
Q(owner=user) | Q(collaborators=user),
end__gte=datetime.now(pytz.utc)
)
+ profile = UserProfile.objects.get(user=user)
+ if (not profile.ipa_username):
+ ipa_migrator = get_ipa_migration_form(user, profile)
+ ipa_migrator["exists"] = "true"
+
else:
bookings = None
+ print("IPA migrator is", ipa_migrator)
LFID = True if settings.AUTH_SETTING == 'LFID' else False
- return render(
- request,
- 'dashboard/landing.html',
- {
- 'title': "Welcome to the Lab as a Service Dashboard",
- 'bookings': bookings,
- 'LFID': LFID
- }
- )
+ if request.method == "GET":
+ return render(
+ request,
+ 'dashboard/landing.html',
+ {
+ 'title': "Welcome to the Lab as a Service Dashboard",
+ 'bookings': bookings,
+ 'LFID': LFID,
+ 'ipa_migrator': ipa_migrator,
+ }
+ )
+
+ # Using this for the special case in the ipa_migrator
+ if request.method == 'POST':
+ existing_profile = ipa_query_user(request.POST['ipa_username'])
+ print("exists already?", existing_profile != None)
+ if (existing_profile != None):
+ return render(
+ request,
+ 'dashboard/landing.html',
+ {
+ 'title': "Welcome to the Lab as a Service Dashboard",
+ 'bookings': bookings,
+ 'LFID': LFID,
+ 'ipa_migrator': ipa_migrator,
+ 'error': "Username is already taken"
+ }
+ )
+ else:
+ return ipa_conflict_account(request)
class LandingView(TemplateView):
template_name = "dashboard/landing.html"