You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2021/10/06 13:41:32 UTC

[airavata-django-portal] 08/13: AIRAVATA-3468 Inform user that they must complete profile

This is an automated email from the ASF dual-hosted git repository.

machristie pushed a commit to branch AIRAVATA-3319-handle-missing-name-and-email-attributes-from-cilo
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git

commit 4d910c99ddb05be1431e271a417e1aca9458f9eb
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Mon Jul 26 14:58:38 2021 -0400

    AIRAVATA-3468 Inform user that they must complete profile
---
 .../apps/api/static/django_airavata_api/js/models/User.js      | 10 +++++++++-
 django_airavata/apps/auth/serializers.py                       |  6 +++++-
 .../js/containers/UserProfileContainer.vue                     |  3 +++
 3 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/django_airavata/apps/api/static/django_airavata_api/js/models/User.js b/django_airavata/apps/api/static/django_airavata_api/js/models/User.js
index 53cbf79..648721a 100644
--- a/django_airavata/apps/api/static/django_airavata_api/js/models/User.js
+++ b/django_airavata/apps/api/static/django_airavata_api/js/models/User.js
@@ -1,6 +1,14 @@
 import BaseModel from "./BaseModel";
 
-const FIELDS = ["id", "username", "first_name", "last_name", "email", "pending_email_change"];
+const FIELDS = [
+  "id",
+  "username",
+  "first_name",
+  "last_name",
+  "email",
+  "pending_email_change",
+  "complete",
+];
 
 export default class User extends BaseModel {
   constructor(data = {}) {
diff --git a/django_airavata/apps/auth/serializers.py b/django_airavata/apps/auth/serializers.py
index f12854e..40723fd 100644
--- a/django_airavata/apps/auth/serializers.py
+++ b/django_airavata/apps/auth/serializers.py
@@ -23,10 +23,11 @@ class PendingEmailChangeSerializer(serializers.ModelSerializer):
 class UserSerializer(serializers.ModelSerializer):
 
     pending_email_change = serializers.SerializerMethodField()
+    complete = serializers.SerializerMethodField()
 
     class Meta:
         model = get_user_model()
-        fields = ['id', 'username', 'first_name', 'last_name', 'email', 'pending_email_change']
+        fields = ['id', 'username', 'first_name', 'last_name', 'email', 'pending_email_change', 'complete']
 
     def get_pending_email_change(self, instance):
         request = self.context['request']
@@ -37,6 +38,9 @@ class UserSerializer(serializers.ModelSerializer):
         else:
             return None
 
+    def get_complete(self, instance):
+        return instance.user_profile.is_complete
+
     @atomic
     def update(self, instance, validated_data):
         request = self.context['request']
diff --git a/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue b/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
index d6eebce..da4e001 100644
--- a/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
+++ b/django_airavata/apps/auth/static/django_airavata_auth/js/containers/UserProfileContainer.vue
@@ -1,6 +1,9 @@
 <template>
   <div>
     <h1 class="h4 mb-4">User Profile Editor</h1>
+    <b-alert :show="user && !user.complete"
+      >Please complete your user profile before continuing.</b-alert
+    >
     <user-profile-editor
       v-if="user"
       v-model="user"