Przeglądaj źródła

:100: Working overlapping dynamic spider charts

tags/0.0.3^2
juancarbajal98 3 lat temu
rodzic
commit
f6e4c30ec9

+ 4
- 4
backend/db/data-generator/mock.js Wyświetl plik

@@ -414,16 +414,16 @@ module.exports = {
414 414
         },
415 415
         {
416 416
             response_key_id: 3,
417
-            response_key_category: 'collaborative_vs_independent',
417
+            response_key_category: 'dynamic_vs_ordered',
418 418
             response_key_prompt:
419
-                'Do you structure and encourage your team to be a Collaborative or Independent environment?',
419
+                'Do you structure and encourage your team to be a Collaborative or Independent environment? (NEEDS UPDATED COPY)',
420 420
             response_key_description: 'first round draft scoring question',
421 421
         },
422 422
         {
423 423
             response_key_id: 4,
424
-            response_key_category: 'innovative_vs_conventional',
424
+            response_key_category: 'precise_vs_resourceful',
425 425
             response_key_prompt:
426
-                'Do you find higher success in employees on your team that are Innovative or Conventional?',
426
+                'Do you find higher success in employees on your team that are Innovative or Conventional? (NEEDS UPDATED COPY)',
427 427
             response_key_description: 'first round draft scoring question',
428 428
         },
429 429
         {

+ 1
- 1
backend/db/seeds/04-responses.js Wyświetl plik

@@ -28,7 +28,7 @@ exports.seed = async knex => {
28 28
     for (let i = 1; i <= len; i += 1) {
29 29
         responsesToPush.push(responses.shift())
30 30
         if (i % batchSize === 0 || i > responses.length) {
31
-            // await knex('responses').insert(responsesToPush)
31
+            await knex('responses').insert(responsesToPush)
32 32
             responsesToPush = []
33 33
         }
34 34
     }

+ 1
- 2
backend/lib/services/profile/index.js Wyświetl plik

@@ -62,9 +62,8 @@ module.exports = class ProfileService extends Schmervice.Service {
62 62
             .withGraphFetched('tags')
63 63
             .withGraphFetched('responses')
64 64
             .withGraphFetched('user')
65
-
66 65
         tagger.setProfileTags(matchingProfile, matchingProfile, this.tagLookup)
67
-        const complete = new profiler.CompleteProfile(matchingProfile)
66
+        const complete = new profiler.CompleteProfile(matchingProfile, true)
68 67
         return complete
69 68
     }
70 69
 

+ 1
- 1
backend/lib/services/profile/profiler.js Wyświetl plik

@@ -7,7 +7,7 @@ const tagger = require('./tagger')
7 7
  * !: This needs to match the responseSchema in profiles.js
8 8
  */
9 9
 class CompleteProfile {
10
-    constructor(profile, type, includeResponses = false) {
10
+    constructor(profile, includeResponses = false, type) {
11 11
         this.user_id = profile.user_id // int user_id
12 12
         this.profile_id = profile.profile_id // int profile_id
13 13
         this.user_name = profile.user.user_name // string user_name

+ 1
- 0
frontend/src/components/ProfileCard.vue Wyświetl plik

@@ -29,6 +29,7 @@ w-card.profile-card-list--card.xs12
29 29
             SummaryBar(
30 30
                 :aspects='aspects'
31 31
                 :is-tab='true'
32
+                :name='card.name'
32 33
                 :tab-content='card.summary'
33 34
                 @tab-change='onTab'
34 35
             )

+ 15
- 12
frontend/src/components/SummaryBar.vue Wyświetl plik

@@ -31,8 +31,8 @@ section.w-flex.column.pb5
31 31
                     SpiderChart(
32 32
                         :labels='aspects.map(label => label.name)'
33 33
                         :profile-data='profileScore'
34
-                        :target-data='targetScore'
35
-                        profile-name='lucy'
34
+                        :target-data='aspects.map(data => data.percentage)'
35
+                        :profile-name='name'
36 36
                         v-if='isTab'
37 37
                     )
38 38
 
@@ -75,6 +75,10 @@ export default {
75 75
             required: true,
76 76
             type: Object,
77 77
         },
78
+        name:{
79
+            required:true,
80
+            type: String
81
+        },
78 82
         isTab: {
79 83
             required: false,
80 84
             type: Boolean,
@@ -87,17 +91,16 @@ export default {
87 91
         },
88 92
     },
89 93
     emits: ['tab-change'],
90
-    // data: () => ({
91
-    //     profileScore: [5.7, 5.2, 4.8, 5.2, 4.9, 4.9], // lucy 
92
-    //     targetScore: [5.3, 4.8, 5.7, 4.8, 5.6, 4.8], // Role
93
-    // }),
94 94
     computed: {
95
-        profileScore(){ // take from built up aspects object
96
-            return this.aspects.map(data => data.percentage * .1) 
97
-        },
98
-        targetScore(){ // take directly from currentUser profile
99
-            let aspectResponses = currentProfile.responses.filter(r => [1,2,3,4,5,6].indexOf(r.response_key_id) !== -1)
100
-            return aspectResponses.map(r => r.val * .1)
95
+        profileScore(){
96
+            try{
97
+                let aspectResponses = currentProfile._profile.responses.filter(r => [1,2,3,4,5,6].indexOf(r.response_key_id) !== -1)
98
+                return aspectResponses.map(r => Number(r.val)) 
99
+            }
100
+            catch(e){
101
+                console.warn('error: No aspect responses for current profile.')
102
+                return [1,1,1,1,1,1]
103
+            }
101 104
         }
102 105
     },
103 106
     methods: {

+ 20
- 21
frontend/src/entities/card/card.js Wyświetl plik

@@ -47,25 +47,25 @@ class Aspect {
47 47
     }
48 48
 }
49 49
 const cardAspects = [ // TODO these aspects don't align with response_keys DB table
50
-    new Aspect({
51
-        name: 'creativity',
52
-        labels: ['creative', 'methodical'],
53
-    }),
54
-    new Aspect({
55
-        name: 'dynamism',
56
-        labels: ['dynamic', 'ordered'],
57
-    }),
58
-    new Aspect({
59
-        name: 'precision',
60
-        labels: ['precise', 'resourceful'],
61
-    }),
62
-    new Aspect({
63
-        name: 'vision',
64
-        labels: ['visionary', 'implementer'],
65
-    }),
66
-    new Aspect({
67
-        name: 'focus',
68
-        labels: ['big picture', 'focused'],
50
+new Aspect({
51
+    name: 'creativity',
52
+    labels: ['creative', 'methodical'],
53
+}),
54
+new Aspect({
55
+    name: 'dynamism',
56
+    labels: ['dynamic', 'ordered'],
57
+}),
58
+new Aspect({
59
+    name: 'precision',
60
+    labels: ['precise', 'resourceful'],
61
+}),
62
+new Aspect({
63
+    name: 'vision',
64
+    labels: ['visionary', 'implementer'],
65
+}),
66
+new Aspect({
67
+    name: 'focus',
68
+    labels: ['big picture', 'focused'],
69 69
     }),
70 70
     new Aspect({
71 71
         name: 'attention',
@@ -134,11 +134,10 @@ const makeCardFromProfile = profile => {
134 134
     c.email = profile.user_email
135 135
 
136 136
 
137
-    console.log(`RESP: ${profile?.responses}`)
138 137
     let aspectResponses = profile?.responses.filter(r => [1,2,3,4,5,6].indexOf(r.response_key_id) !== -1)
139 138
     if(aspectResponses.length){ // if user has responses for aspects we overwrite default percentages
140 139
         c.aspects.map(a => {
141
-            a.percentage = aspectResponses.find(r => responseKeyIdToAspectName[r.response_key_id] == a.name).val 
140
+            a.percentage = Number(aspectResponses.find(r => responseKeyIdToAspectName[r.response_key_id] == a.name).val )
142 141
             return a 
143 142
         })
144 143
     }

Ładowanie…
Anuluj
Zapisz