@baravak/risloo-profile-cli 4.19.1 → 4.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/helpers/angleABS.js +15 -0
- package/src/helpers/polarXY.js +9 -0
- package/src/helpers/polygonDefaultStart.js +25 -0
- package/src/helpers/polygonXY.js +15 -0
- package/src/publish/json/profiles/BEQI93.json +9 -103
- package/src/publish/json/profiles/BNQ93.json +429 -0
- package/src/samples/BNQ93.js +76 -0
- package/views/profiles/samples/BNQ93.hbs +53 -0
package/package.json
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
function angleABS(_angle) {
|
|
2
|
+
let angle = _angle;
|
|
3
|
+
if (typeof _angle === "string") {
|
|
4
|
+
angle = parseInt(_angle);
|
|
5
|
+
} else if (typeof _angle !== "number") {
|
|
6
|
+
angle = 0;
|
|
7
|
+
}
|
|
8
|
+
const quotient = angle % 360;
|
|
9
|
+
if (angle >= 0 || quotient === 0) {
|
|
10
|
+
return Math.abs(quotient);
|
|
11
|
+
}
|
|
12
|
+
return Math.abs(360 + quotient);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
module.exports = angleABS;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
const angleABS = require("./angleABS");
|
|
2
|
+
|
|
3
|
+
function polarXY(cx, cy, radius, angle, radian = false) {
|
|
4
|
+
const angleInRadian = radian ? angle : angleABS(angle) * (Math.PI / 180);
|
|
5
|
+
const x = cx + (radius * Math.cos(angleInRadian));
|
|
6
|
+
const y = cy + (radius * Math.sin(angleInRadian));
|
|
7
|
+
return [x, y];
|
|
8
|
+
}
|
|
9
|
+
module.exports = polarXY;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
const angleABS = require("./angleABS");
|
|
2
|
+
|
|
3
|
+
function polygonDefaultStart(points, defaultAngle) {
|
|
4
|
+
if(defaultAngle) return angleABS(defaultAngle)
|
|
5
|
+
let angle = 0;
|
|
6
|
+
switch (points) {
|
|
7
|
+
case 3:
|
|
8
|
+
angle = -90;
|
|
9
|
+
break;
|
|
10
|
+
case 4:
|
|
11
|
+
angle = -45;
|
|
12
|
+
break;
|
|
13
|
+
case 5:
|
|
14
|
+
angle = -90;
|
|
15
|
+
break;
|
|
16
|
+
case 6:
|
|
17
|
+
angle = -60;
|
|
18
|
+
break;
|
|
19
|
+
case 7:
|
|
20
|
+
angle = -90;
|
|
21
|
+
break;
|
|
22
|
+
}
|
|
23
|
+
return angleABS(angle);
|
|
24
|
+
}
|
|
25
|
+
module.exports = polygonDefaultStart;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
const angleABS = require("./angleABS");
|
|
2
|
+
const polarXY = require("./polarXY");
|
|
3
|
+
|
|
4
|
+
function polygonXY(cx, cy, points, angle = 0) {
|
|
5
|
+
const xyPoints = [];
|
|
6
|
+
const angleSeperation = 360 / points.length;
|
|
7
|
+
for (let i = 0; i < points.length; i++) {
|
|
8
|
+
const currentAngle = (Math.PI / 180) * angleABS(angle + angleSeperation * i);
|
|
9
|
+
const point = points[i];
|
|
10
|
+
xyPoints.push(polarXY(cx, cy, point, currentAngle, true));
|
|
11
|
+
}
|
|
12
|
+
return xyPoints;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
module.exports = polygonXY;
|
|
@@ -9,75 +9,30 @@
|
|
|
9
9
|
"edition": "",
|
|
10
10
|
"edition_version": null,
|
|
11
11
|
"client": {
|
|
12
|
-
"id": "
|
|
13
|
-
"name": "
|
|
12
|
+
"id": "GH96XXXXX",
|
|
13
|
+
"name": "مراجع"
|
|
14
14
|
},
|
|
15
15
|
"room": {
|
|
16
|
-
"id": "
|
|
16
|
+
"id": "RS96XXXXX",
|
|
17
17
|
"manager": {
|
|
18
|
-
"id": "
|
|
19
|
-
"name": "
|
|
20
|
-
"user_id": "
|
|
18
|
+
"id": "GH96XXXXX",
|
|
19
|
+
"name": "درمانگر",
|
|
20
|
+
"user_id": "IR96XXXXX",
|
|
21
21
|
"avatar": null
|
|
22
22
|
},
|
|
23
23
|
"center": {
|
|
24
|
-
"id": "
|
|
24
|
+
"id": "RS96XXXXX",
|
|
25
25
|
"acceptation": null,
|
|
26
26
|
"status": "active",
|
|
27
27
|
"type": "counseling_center",
|
|
28
28
|
"detail": {
|
|
29
|
-
"title": "مرکز
|
|
30
|
-
"avatar": [
|
|
31
|
-
{
|
|
32
|
-
"id": "F96DUMD",
|
|
33
|
-
"file_name": "P9666FW9_large.png",
|
|
34
|
-
"slug": "storage/public/Files_1000/P9666FW9_large.png",
|
|
35
|
-
"mode": "large",
|
|
36
|
-
"url": "https://api.risloo.ir/storage/public/Files_1000/P9666FW9_large.png",
|
|
37
|
-
"type": "image",
|
|
38
|
-
"mime": "image/png",
|
|
39
|
-
"exec": "png"
|
|
40
|
-
},
|
|
41
|
-
{
|
|
42
|
-
"id": "F96DUM3",
|
|
43
|
-
"file_name": "P9666FW9_medium.png",
|
|
44
|
-
"slug": "storage/public/Files_1000/P9666FW9_medium.png",
|
|
45
|
-
"mode": "medium",
|
|
46
|
-
"url": "https://api.risloo.ir/storage/public/Files_1000/P9666FW9_medium.png",
|
|
47
|
-
"type": "image",
|
|
48
|
-
"mime": "image/png",
|
|
49
|
-
"exec": "png"
|
|
50
|
-
},
|
|
51
|
-
{
|
|
52
|
-
"id": "F96DUM9",
|
|
53
|
-
"file_name": "P9666FW9_original.png",
|
|
54
|
-
"slug": "storage/public/Files_1000/P9666FW9_original.png",
|
|
55
|
-
"mode": "original",
|
|
56
|
-
"url": "https://api.risloo.ir/storage/public/Files_1000/P9666FW9_original.png",
|
|
57
|
-
"type": "image",
|
|
58
|
-
"mime": "image/png",
|
|
59
|
-
"exec": "png"
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"id": "F96DUMT",
|
|
63
|
-
"file_name": "P9666FW9_small.png",
|
|
64
|
-
"slug": "storage/public/Files_1000/P9666FW9_small.png",
|
|
65
|
-
"mode": "small",
|
|
66
|
-
"url": "https://api.risloo.ir/storage/public/Files_1000/P9666FW9_small.png",
|
|
67
|
-
"type": "image",
|
|
68
|
-
"mime": "image/png",
|
|
69
|
-
"exec": "png"
|
|
70
|
-
}
|
|
71
|
-
]
|
|
29
|
+
"title": "مرکز"
|
|
72
30
|
}
|
|
73
31
|
},
|
|
74
32
|
"acceptation": null,
|
|
75
33
|
"status": "active",
|
|
76
34
|
"type": "room"
|
|
77
35
|
},
|
|
78
|
-
"case": {
|
|
79
|
-
"id": "CS9666N3T"
|
|
80
|
-
},
|
|
81
36
|
"code": null,
|
|
82
37
|
"created_at": 1673193951,
|
|
83
38
|
"started_at": 1673194339,
|
|
@@ -86,33 +41,6 @@
|
|
|
86
41
|
"total_amount": 110000,
|
|
87
42
|
"prepayment": true,
|
|
88
43
|
"purchased": true,
|
|
89
|
-
"amount": 110000,
|
|
90
|
-
"billing": {
|
|
91
|
-
"id": "BL969FG8",
|
|
92
|
-
"creditor": {
|
|
93
|
-
"id": "TE96TWH9",
|
|
94
|
-
"symbol": "rs96662ev",
|
|
95
|
-
"title": "کیف پول مرکز RS96662EV",
|
|
96
|
-
"creditable": true,
|
|
97
|
-
"chargeable": true,
|
|
98
|
-
"my_treasury": false
|
|
99
|
-
},
|
|
100
|
-
"debtor": {
|
|
101
|
-
"id": "TE96TQ66",
|
|
102
|
-
"symbol": "wallet",
|
|
103
|
-
"title": "کیف پول",
|
|
104
|
-
"creditable": true,
|
|
105
|
-
"chargeable": true,
|
|
106
|
-
"my_treasury": false
|
|
107
|
-
},
|
|
108
|
-
"amount": 110000,
|
|
109
|
-
"type": "final",
|
|
110
|
-
"action": "samples",
|
|
111
|
-
"action_serial": "$X1HHV2QBJ",
|
|
112
|
-
"title": "انجام نمونه",
|
|
113
|
-
"created_at": 1673194149,
|
|
114
|
-
"updated_at": 1673194149
|
|
115
|
-
},
|
|
116
44
|
"description": "## دستور اجرای آزمون\n\nلطفا عبارتهای زیر را با دقت بخوانید و پاسخ خود را از بین گزینههای مطرح مشخص کنید.",
|
|
117
45
|
"psychologist_description": null,
|
|
118
46
|
"items": [
|
|
@@ -1563,27 +1491,5 @@
|
|
|
1563
1491
|
"stress_management": 25
|
|
1564
1492
|
},
|
|
1565
1493
|
"score_current_version": "1.0.0",
|
|
1566
|
-
"score_last_version": "1.0.0"
|
|
1567
|
-
"profiles": [
|
|
1568
|
-
{
|
|
1569
|
-
"id": "F96DSSS",
|
|
1570
|
-
"file_name": "X1HHV2QBJ.json",
|
|
1571
|
-
"slug": "storage/profiles/X1HHV2QBJVdVgNUkTdcjvwiQKDxBJB1p5xejSHYKDXdN4CqYxuzH7S0JL5znS2Qe55UG5bT4cvcvKCLI1d2ABUl9P8eGHyvz3eTRrid4LcCrgQzgVQBdOnuXtyJfDVSBu/X1HHV2QBJ.json",
|
|
1572
|
-
"mode": "profile_json",
|
|
1573
|
-
"url": "https://api.risloo.ir/storage/profiles/X1HHV2QBJVdVgNUkTdcjvwiQKDxBJB1p5xejSHYKDXdN4CqYxuzH7S0JL5znS2Qe55UG5bT4cvcvKCLI1d2ABUl9P8eGHyvz3eTRrid4LcCrgQzgVQBdOnuXtyJfDVSBu/X1HHV2QBJ.json",
|
|
1574
|
-
"type": "data",
|
|
1575
|
-
"mime": "application/json",
|
|
1576
|
-
"exec": "json"
|
|
1577
|
-
},
|
|
1578
|
-
{
|
|
1579
|
-
"id": "F96DSSX",
|
|
1580
|
-
"file_name": "X1HHV2QBJ.xlsx",
|
|
1581
|
-
"slug": "storage/profiles/X1HHV2QBJVdVgNUkTdcjvwiQKDxBJB1p5xejSHYKDXdN4CqYxuzH7S0JL5znS2Qe55UG5bT4cvcvKCLI1d2ABUl9P8eGHyvz3eTRrid4LcCrgQzgVQBdOnuXtyJfDVSBu/X1HHV2QBJ.xlsx",
|
|
1582
|
-
"mode": "profile_xlsx",
|
|
1583
|
-
"url": "https://api.risloo.ir/storage/profiles/X1HHV2QBJVdVgNUkTdcjvwiQKDxBJB1p5xejSHYKDXdN4CqYxuzH7S0JL5znS2Qe55UG5bT4cvcvKCLI1d2ABUl9P8eGHyvz3eTRrid4LcCrgQzgVQBdOnuXtyJfDVSBu/X1HHV2QBJ.xlsx",
|
|
1584
|
-
"type": "document",
|
|
1585
|
-
"mime": "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
|
1586
|
-
"exec": "xlsx"
|
|
1587
|
-
}
|
|
1588
|
-
]
|
|
1494
|
+
"score_last_version": "1.0.0"
|
|
1589
1495
|
}
|
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "$X1HED93S7",
|
|
3
|
+
"scale": { "id": "$BNQ-93", "title": "پرسشنامه نیازهای اساسی گلاسر (BNQ)" },
|
|
4
|
+
"chain": null,
|
|
5
|
+
"version": "1",
|
|
6
|
+
"edition": "صاحبی",
|
|
7
|
+
"edition_version": null,
|
|
8
|
+
"client": {
|
|
9
|
+
"id": "GH96XXXXX",
|
|
10
|
+
"name": "مراجع"
|
|
11
|
+
},
|
|
12
|
+
"room": {
|
|
13
|
+
"id": "RS96XXXXX",
|
|
14
|
+
"manager": {
|
|
15
|
+
"id": "GH96XXXXX",
|
|
16
|
+
"name": "درمانگر",
|
|
17
|
+
"user_id": "IR96XXXXX"
|
|
18
|
+
},
|
|
19
|
+
"center": {
|
|
20
|
+
"id": "RS96XXXXX",
|
|
21
|
+
"acceptation": null,
|
|
22
|
+
"status": "active",
|
|
23
|
+
"type": "counseling_center",
|
|
24
|
+
"detail": {
|
|
25
|
+
"title": "مرکز مشاوره"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"acceptation": null,
|
|
29
|
+
"status": "active",
|
|
30
|
+
"type": "room"
|
|
31
|
+
},
|
|
32
|
+
"case": null,
|
|
33
|
+
"code": null,
|
|
34
|
+
"created_at": 1748453740,
|
|
35
|
+
"started_at": 1748453770,
|
|
36
|
+
"scored_at": 1748454467,
|
|
37
|
+
"closed_at": 1748453772,
|
|
38
|
+
"total_amount": null,
|
|
39
|
+
"prepayment": false,
|
|
40
|
+
"purchased": true,
|
|
41
|
+
"amount": null,
|
|
42
|
+
"billing": null,
|
|
43
|
+
"description": "## دستور اجرای آزمون\n\nپاسخگوی گرامی، این پرسشنامه جهت سنجش نیازهای شما تهیه شده است. لطفاً به سؤالها همانگونه که وجود دارد پاسخ دهید نه به صورتی که دوست دارید باشد. جواب صحیح و غلط در این ابزار سنجش وجود ندارد. در پاسخگویی به سوالات صادق بوده و وقت زیادی را صرف یک عبارت نکنید.",
|
|
44
|
+
"psychologist_description": null,
|
|
45
|
+
"items": [
|
|
46
|
+
{
|
|
47
|
+
"type": "text",
|
|
48
|
+
"text": "مسائلی مثل پسانداز، مخارج زندگی، مسکن، آینده شغلی و … تا چه اندازه ذهن شما را به خود مشغول میدارد؟",
|
|
49
|
+
"answer": {
|
|
50
|
+
"type": "optional",
|
|
51
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
52
|
+
},
|
|
53
|
+
"user_answered": "5"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"type": "text",
|
|
57
|
+
"text": "تا چه اندازه به سلامت جسمانی، بهداشت و احتمال ابتلا به بیماری فکر می کنید؟",
|
|
58
|
+
"answer": {
|
|
59
|
+
"type": "optional",
|
|
60
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
61
|
+
},
|
|
62
|
+
"user_answered": "2"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"type": "text",
|
|
66
|
+
"text": "شدت میل جنسی خود را چگونه ارزیابی میکنید؟",
|
|
67
|
+
"answer": {
|
|
68
|
+
"type": "optional",
|
|
69
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
70
|
+
},
|
|
71
|
+
"user_answered": "4"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"type": "text",
|
|
75
|
+
"text": "در انجام کارها و اقدامات مخاطرهآمیز تا چه اندازه محتاطانه عمل میکنید؟",
|
|
76
|
+
"answer": {
|
|
77
|
+
"type": "optional",
|
|
78
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
79
|
+
},
|
|
80
|
+
"user_answered": "3"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"type": "text",
|
|
84
|
+
"text": "از روبرویی با تجارب جدید و شروع راههای ناشناخته تا چه اندازه اجتناب میکنید؟",
|
|
85
|
+
"answer": {
|
|
86
|
+
"type": "optional",
|
|
87
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
88
|
+
},
|
|
89
|
+
"user_answered": "3"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"type": "text",
|
|
93
|
+
"text": "از نظر دوستان و همکاران خود تا چه اندازه محتاطانه عمل می کنید؟",
|
|
94
|
+
"answer": {
|
|
95
|
+
"type": "optional",
|
|
96
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
97
|
+
},
|
|
98
|
+
"user_answered": "1"
|
|
99
|
+
},
|
|
100
|
+
{
|
|
101
|
+
"type": "text",
|
|
102
|
+
"text": "تا چه اندازه امنیت شغلی و داشتن شغل و درآمد ثابت برایتان اهمیت دارد؟",
|
|
103
|
+
"answer": {
|
|
104
|
+
"type": "optional",
|
|
105
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
106
|
+
},
|
|
107
|
+
"user_answered": "4"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "text",
|
|
111
|
+
"text": "احساس می کنید به چه میزان عشق، صمیمیت و مهرورزی نیاز دارید؟",
|
|
112
|
+
"answer": {
|
|
113
|
+
"type": "optional",
|
|
114
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
115
|
+
},
|
|
116
|
+
"user_answered": "2"
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"type": "text",
|
|
120
|
+
"text": "تا چه اندازه رفاه و سعادت انسانهای دیگر برایتان مهم است؟",
|
|
121
|
+
"answer": {
|
|
122
|
+
"type": "optional",
|
|
123
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
124
|
+
},
|
|
125
|
+
"user_answered": "2"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"type": "text",
|
|
129
|
+
"text": "چه مقدار نیاز دارید که دیگران شما را پذیرفته و دوستتان بدارند؟",
|
|
130
|
+
"answer": {
|
|
131
|
+
"type": "optional",
|
|
132
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
133
|
+
},
|
|
134
|
+
"user_answered": "2"
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"type": "text",
|
|
138
|
+
"text": "چه مقدار نیاز دارید که دیگران شما را مورد لطف و مهر و محبت قرارداده و شما نیز متقابلا به آن ها محبت کنید و به آن ها احساس تعلق خاطر نمایید؟",
|
|
139
|
+
"answer": {
|
|
140
|
+
"type": "optional",
|
|
141
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
142
|
+
},
|
|
143
|
+
"user_answered": "1"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"type": "text",
|
|
147
|
+
"text": "چه اندازه دوست دارید که با دیگران مراوده داشته باشید و در مجالس، مراسم و فعالیت های گروهی فعالانه شرکت کنید؟",
|
|
148
|
+
"answer": {
|
|
149
|
+
"type": "optional",
|
|
150
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
151
|
+
},
|
|
152
|
+
"user_answered": "4"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"type": "text",
|
|
156
|
+
"text": "از نظر دوستان و همکاران خود تا چه اندازه گرم، صمیمی، دلسوز و مهربان هستید؟",
|
|
157
|
+
"answer": {
|
|
158
|
+
"type": "optional",
|
|
159
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
160
|
+
},
|
|
161
|
+
"user_answered": "1"
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"type": "text",
|
|
165
|
+
"text": "داشتن روابطه خوب با عزیزان و اطرافیان تا چه اندازه برایتان مهم است و برای آن وقت و انرژی می گذارید؟",
|
|
166
|
+
"answer": {
|
|
167
|
+
"type": "optional",
|
|
168
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
169
|
+
},
|
|
170
|
+
"user_answered": "1"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"type": "text",
|
|
174
|
+
"text": "تا چه اندازه نیاز دارید که تمام چیزهایی را که انجام می دهید خودتان انتخاب کنید؟",
|
|
175
|
+
"answer": {
|
|
176
|
+
"type": "optional",
|
|
177
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
178
|
+
},
|
|
179
|
+
"user_answered": "5"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"type": "text",
|
|
183
|
+
"text": "تا چه میزان اعتقاد دارید که هیچ کس نباید به شما بگوید که چگونه زندگی خود را اداره کنید (بگوید چه بکنید و چه نکنید)؟",
|
|
184
|
+
"answer": {
|
|
185
|
+
"type": "optional",
|
|
186
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
187
|
+
},
|
|
188
|
+
"user_answered": "2"
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"type": "text",
|
|
192
|
+
"text": "تا چه میزان تمایل دارید آن چه را که می خواهید بدون توجه به دخالت ها و فشارهای همسرتان / شریکتان حتما انجام رسانید؟",
|
|
193
|
+
"answer": {
|
|
194
|
+
"type": "optional",
|
|
195
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
196
|
+
},
|
|
197
|
+
"user_answered": "1"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"type": "text",
|
|
201
|
+
"text": "تا چه میزان اصرار دارید در تصمیم گیری های بزرگ و کوچک زندگی استقلال رای داشته باشید و بر وفق مراد خود عمل کنید؟",
|
|
202
|
+
"answer": {
|
|
203
|
+
"type": "optional",
|
|
204
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
205
|
+
},
|
|
206
|
+
"user_answered": "3"
|
|
207
|
+
},
|
|
208
|
+
{
|
|
209
|
+
"type": "text",
|
|
210
|
+
"text": "تا چه اندازه نیاز دارید که زمان هایی را برای خودتان در اختیار داشته باشید که هر گونه دلتان می خواهد از آن استفاده کنید؟",
|
|
211
|
+
"answer": {
|
|
212
|
+
"type": "optional",
|
|
213
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
214
|
+
},
|
|
215
|
+
"user_answered": "3"
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"type": "text",
|
|
219
|
+
"text": "تا چه اندازه تمایل دارید که به مکان های جدید سفر کنید؟",
|
|
220
|
+
"answer": {
|
|
221
|
+
"type": "optional",
|
|
222
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
223
|
+
},
|
|
224
|
+
"user_answered": "5"
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
"type": "text",
|
|
228
|
+
"text": "تا چه میزان به دنبال تغییر و چیزهای نو هستید و از محیط های کاری ثابت و یکسان که تغییر نمی کنند احساس کسالت می کنید؟",
|
|
229
|
+
"answer": {
|
|
230
|
+
"type": "optional",
|
|
231
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
232
|
+
},
|
|
233
|
+
"user_answered": "4"
|
|
234
|
+
},
|
|
235
|
+
{
|
|
236
|
+
"type": "text",
|
|
237
|
+
"text": "تا چه اندازه تلاش می کنید در زمینه کار خود به عنوان یک فرد توانمند و با لیاقت خود را نشان داده و شناخته شوید؟",
|
|
238
|
+
"answer": {
|
|
239
|
+
"type": "optional",
|
|
240
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
241
|
+
},
|
|
242
|
+
"user_answered": "4"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"type": "text",
|
|
246
|
+
"text": "تا چه اندازه دوست دارید که به دیگران دستور بدهید؟ ( فرمان بدهید تا این که فرمان ببرید)",
|
|
247
|
+
"answer": {
|
|
248
|
+
"type": "optional",
|
|
249
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
250
|
+
},
|
|
251
|
+
"user_answered": "5"
|
|
252
|
+
},
|
|
253
|
+
{
|
|
254
|
+
"type": "text",
|
|
255
|
+
"text": "فکر می کنید تا چه اندازه اهل پیشرفت و رقابت هستید؟",
|
|
256
|
+
"answer": {
|
|
257
|
+
"type": "optional",
|
|
258
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
259
|
+
},
|
|
260
|
+
"user_answered": "5"
|
|
261
|
+
},
|
|
262
|
+
{
|
|
263
|
+
"type": "text",
|
|
264
|
+
"text": "تا چه اندازه دوست دارید که دیگران (اعم از فرزند، همسر یا دوستانتان) به حرف شما گوش دهند و از آن پیروی کنند؟",
|
|
265
|
+
"answer": {
|
|
266
|
+
"type": "optional",
|
|
267
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
268
|
+
},
|
|
269
|
+
"user_answered": "1"
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
"type": "text",
|
|
273
|
+
"text": "تا چه اندازه تلاش می کنید تا ثابت کنید ایده، فکر یا راه شما درست است و اصرار دارید که دیگران را متقاعد کنید که آن را قبول کنند؟",
|
|
274
|
+
"answer": {
|
|
275
|
+
"type": "optional",
|
|
276
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
277
|
+
},
|
|
278
|
+
"user_answered": "5"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"type": "text",
|
|
282
|
+
"text": "تا چه اندازه دغدغه رشد و پیشرفت دارید و در زندگی شخصی و حرفه ای تان به دنبال شکوفایی توانمندی های خود هستید؟",
|
|
283
|
+
"answer": {
|
|
284
|
+
"type": "optional",
|
|
285
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
286
|
+
},
|
|
287
|
+
"user_answered": "1"
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
"type": "text",
|
|
291
|
+
"text": "تا چه اندازه زمان تان را صرف یادگیری چیزهای جدید در زمینه های مختلف می کنید؟",
|
|
292
|
+
"answer": {
|
|
293
|
+
"type": "optional",
|
|
294
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
295
|
+
},
|
|
296
|
+
"user_answered": "1"
|
|
297
|
+
},
|
|
298
|
+
{
|
|
299
|
+
"type": "text",
|
|
300
|
+
"text": "چقدر به شوخی، مزاح و لطیفه گویی نیازمندید؟",
|
|
301
|
+
"answer": {
|
|
302
|
+
"type": "optional",
|
|
303
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
304
|
+
},
|
|
305
|
+
"user_answered": "5"
|
|
306
|
+
},
|
|
307
|
+
{
|
|
308
|
+
"type": "text",
|
|
309
|
+
"text": "تا چه میزان به اوقات فراغت و سرگرمی های مخصوص به خودتان نیاز دارید؟",
|
|
310
|
+
"answer": {
|
|
311
|
+
"type": "optional",
|
|
312
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
313
|
+
},
|
|
314
|
+
"user_answered": "3"
|
|
315
|
+
},
|
|
316
|
+
{
|
|
317
|
+
"type": "text",
|
|
318
|
+
"text": "میزان شوخ طبعی و خوش مشربی خود را چگونه ارزیابی می کنید؟",
|
|
319
|
+
"answer": {
|
|
320
|
+
"type": "optional",
|
|
321
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
322
|
+
},
|
|
323
|
+
"user_answered": "2"
|
|
324
|
+
},
|
|
325
|
+
{
|
|
326
|
+
"type": "text",
|
|
327
|
+
"text": "تا چه میزان احساس می کنید که نیاز دارید به کارهای غیر جدی و غیر رسمی از قبیل دوچرخه سواری، ماهی گیری، تماشای فیلم و دیگر سرگرمی های لذت بخش بپردازید؟",
|
|
328
|
+
"answer": {
|
|
329
|
+
"type": "optional",
|
|
330
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
331
|
+
},
|
|
332
|
+
"user_answered": "2"
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
"type": "text",
|
|
336
|
+
"text": "تا چه اندازه به دنبال اوقات سرگرم کننده و موقعیت های شادی بخش از قبیل جشن ها، مهمانی ها، مراسم سرگرم کننده و بازی و … هستید؟",
|
|
337
|
+
"answer": {
|
|
338
|
+
"type": "optional",
|
|
339
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
340
|
+
},
|
|
341
|
+
"user_answered": "4"
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
"type": "text",
|
|
345
|
+
"text": "خندیدن و خنداندن تا چه میزان در زندگی شما مهم است؟",
|
|
346
|
+
"answer": {
|
|
347
|
+
"type": "optional",
|
|
348
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
349
|
+
},
|
|
350
|
+
"user_answered": "3"
|
|
351
|
+
},
|
|
352
|
+
{
|
|
353
|
+
"type": "text",
|
|
354
|
+
"text": "از نظر شما تفریح، بازی و شادی کردن تا چه اندازه جزء مهمی از زندگی محسوب می شود؟",
|
|
355
|
+
"answer": {
|
|
356
|
+
"type": "optional",
|
|
357
|
+
"options": ["بسیار کم", "کم", "متوسط", "زیاد", "بسیار زیاد"]
|
|
358
|
+
},
|
|
359
|
+
"user_answered": "1"
|
|
360
|
+
}
|
|
361
|
+
],
|
|
362
|
+
"prerequisites": [
|
|
363
|
+
{
|
|
364
|
+
"type": "text",
|
|
365
|
+
"label": "gender",
|
|
366
|
+
"text": "جنسیت",
|
|
367
|
+
"answer": { "type": "select", "options": ["زن", "مرد"] },
|
|
368
|
+
"alias": "gender",
|
|
369
|
+
"force": true,
|
|
370
|
+
"user_answered": "2"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"type": "text",
|
|
374
|
+
"label": "age",
|
|
375
|
+
"text": "سن",
|
|
376
|
+
"answer": { "type": "number" },
|
|
377
|
+
"alias": "age",
|
|
378
|
+
"force": true,
|
|
379
|
+
"user_answered": "51"
|
|
380
|
+
},
|
|
381
|
+
{
|
|
382
|
+
"type": "text",
|
|
383
|
+
"label": "education",
|
|
384
|
+
"text": "تحصیلات",
|
|
385
|
+
"answer": {
|
|
386
|
+
"type": "select",
|
|
387
|
+
"options": [
|
|
388
|
+
"ابتدایی اول",
|
|
389
|
+
"ابتدایی دوم",
|
|
390
|
+
"متوسطه اول",
|
|
391
|
+
"متوسطه دوم",
|
|
392
|
+
"دیپلم",
|
|
393
|
+
"کارشناسی",
|
|
394
|
+
"کارشناسی ارشد",
|
|
395
|
+
"پزشکی عمومی",
|
|
396
|
+
"متخصص",
|
|
397
|
+
"دکتری تخصصی",
|
|
398
|
+
"حوزوی مقدمات",
|
|
399
|
+
"حوزوی سطح۱",
|
|
400
|
+
"حوزوی سطح۲",
|
|
401
|
+
"حوزوی سطح۳",
|
|
402
|
+
"حوزوی سطح۴"
|
|
403
|
+
]
|
|
404
|
+
},
|
|
405
|
+
"alias": "education",
|
|
406
|
+
"force": true,
|
|
407
|
+
"user_answered": "10"
|
|
408
|
+
},
|
|
409
|
+
{
|
|
410
|
+
"type": "text",
|
|
411
|
+
"label": "marital_status",
|
|
412
|
+
"text": "وضعیت تأهل",
|
|
413
|
+
"answer": { "type": "select", "options": ["مجرد", "متأهل"] },
|
|
414
|
+
"alias": "marital_status",
|
|
415
|
+
"force": true,
|
|
416
|
+
"user_answered": "1"
|
|
417
|
+
}
|
|
418
|
+
],
|
|
419
|
+
"cornometer": 0,
|
|
420
|
+
"score": {
|
|
421
|
+
"survival": 22,
|
|
422
|
+
"love_belonging": 13,
|
|
423
|
+
"power": 23,
|
|
424
|
+
"freedom": 22,
|
|
425
|
+
"fun": 20
|
|
426
|
+
},
|
|
427
|
+
"score_current_version": "1.0.0",
|
|
428
|
+
"score_last_version": "1.0.0"
|
|
429
|
+
}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const { Profile, FS } = require("../Profile");
|
|
2
|
+
const polygonXY = require("../helpers/polygonXY");
|
|
3
|
+
const polygonDefaultStart = require("../helpers/polygonDefaultStart");
|
|
4
|
+
const round = require("../handlebars/helpers/round");
|
|
5
|
+
|
|
6
|
+
class BNQ93 extends Profile {
|
|
7
|
+
// Number of pages
|
|
8
|
+
static pages = 1;
|
|
9
|
+
|
|
10
|
+
// Labels of the sample
|
|
11
|
+
labels = {
|
|
12
|
+
L1: {eng: 'survival', fa: 'نیاز به بقاء'},
|
|
13
|
+
L2: {eng: 'love_belonging', fa: 'نیاز به عشق و تعلق'},
|
|
14
|
+
L3: {eng: 'power', fa: 'نیاز به قدرت'},
|
|
15
|
+
L4: {eng: 'freedom', fa: 'نیاز به آزادی'},
|
|
16
|
+
L5: {eng: 'fun', fa: 'نیاز به تفریح'},
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
profileSpec = {
|
|
20
|
+
/* "sample" determines some important info about the sample and profile */
|
|
21
|
+
/* Default prerequisites: 1. gender, 2. age, 3. education */
|
|
22
|
+
/* "prerequisites" is synonym to "fields" in our program */
|
|
23
|
+
sample: {
|
|
24
|
+
name: "پرسشنامه نیازهای اساسی گلاسر (BNQ)" /* Name of the sample */,
|
|
25
|
+
multiProfile: false /* Whether the sample has multiple profiles or not */,
|
|
26
|
+
questions: false /* Determines whether to get questions from inital dataset or not */,
|
|
27
|
+
defaultFields: true /* Determines whether to have default prerequisites in the profile or not */,
|
|
28
|
+
fields: [] /* In case you want to get some additional fields and show in the profile */,
|
|
29
|
+
},
|
|
30
|
+
/* "profile" determines the dimensions of the drawn profile (to be used in svg tag viewbox) */
|
|
31
|
+
/* calculating its dimensions carefully is of great importance */
|
|
32
|
+
profile: {
|
|
33
|
+
get dimensions() {
|
|
34
|
+
return {
|
|
35
|
+
width: 468 + 2 * this.padding.x,
|
|
36
|
+
height: 391 + 2 * this.padding.y,
|
|
37
|
+
}
|
|
38
|
+
},
|
|
39
|
+
padding: {
|
|
40
|
+
x: 218,
|
|
41
|
+
y: 162,
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
/* "raw" is the general term used for total data element in the profile */
|
|
45
|
+
/* "labels" part which has to be provided for each profile */
|
|
46
|
+
labels: Object.values(this.labels),
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
constructor(dataset, options, config = {}) {
|
|
50
|
+
super();
|
|
51
|
+
this._init(dataset, options, config);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
_calcContext() {
|
|
55
|
+
const {
|
|
56
|
+
spec: { parameters: spec },
|
|
57
|
+
dataset,
|
|
58
|
+
} = this;
|
|
59
|
+
const startAngle = polygonDefaultStart(5)
|
|
60
|
+
const rs = [
|
|
61
|
+
{r: 157.5, points: polygonXY(0, 0, Array(5).fill(157.5), startAngle)},
|
|
62
|
+
{r: 112.5, points: polygonXY(0, 0, Array(5).fill(112.5), startAngle)},
|
|
63
|
+
{r: 67.5, points: polygonXY(0, 0, Array(5).fill(67.5), startAngle)},
|
|
64
|
+
]
|
|
65
|
+
const points = dataset.score.map(score => (157.5 * score.mark) / 35)
|
|
66
|
+
const polygonDots = polygonXY(0,0, points, startAngle)
|
|
67
|
+
const polygonArea = polygonDots.map(points => `${round(points[0], 6)},${round(points[1], 6)}`).join(' ')
|
|
68
|
+
const scores = {}
|
|
69
|
+
dataset.score.forEach(score => {
|
|
70
|
+
scores[score.label.eng] = {mark: score.mark, label: score.label.fa}
|
|
71
|
+
})
|
|
72
|
+
return [{ rs, polygonDots, polygonArea, scores }];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
module.exports = BNQ93;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
{{#> layout}}
|
|
2
|
+
|
|
3
|
+
<g transform="translate({{spec.profile.padding.x}}, {{spec.profile.padding.y}})">
|
|
4
|
+
<g transform="translate(236.5, 211.5)">
|
|
5
|
+
{{#each rs as | item index |}}
|
|
6
|
+
{{#if (boolean index '===' 0)}}
|
|
7
|
+
<g>
|
|
8
|
+
{{#each item.points as | point index |}}
|
|
9
|
+
<line x1="0" y1="0" x2="{{point.[0]}}" y2="{{point.[1]}}" stroke="#E2E8F0" stroke-width="1" />
|
|
10
|
+
{{/each}}
|
|
11
|
+
</g>
|
|
12
|
+
{{/if}}
|
|
13
|
+
<g>
|
|
14
|
+
<circle cx="0" cy="0" r="{{item.r}}" stroke="#E2E8F0" stroke-width="1" fill="none" />
|
|
15
|
+
{{#each item.points as | point index |}}
|
|
16
|
+
<circle cx="{{point.[0]}}" cy="{{point.[1]}}" r="2.5" fill="#E2E8F0" />
|
|
17
|
+
{{/each}}
|
|
18
|
+
</g>
|
|
19
|
+
{{/each}}
|
|
20
|
+
<circle cx="0" cy="0" r="22.5" stroke="#E2E8F0" stroke-width="1" fill="none" />
|
|
21
|
+
<circle cx="0" cy="0" r="2.5" fill="#E2E8F0" />
|
|
22
|
+
<g>
|
|
23
|
+
{{#each polygonDots as | point index |}}
|
|
24
|
+
<circle cx="{{point.[0]}}" cy="{{point.[1]}}" r="3.5" fill="#4F46E5" />
|
|
25
|
+
{{/each}}
|
|
26
|
+
</g>
|
|
27
|
+
<polygon points="{{polygonArea}}" fill="#4F46E533" stroke="#4F46E5" stroke-width="3" />
|
|
28
|
+
<text x="0" y="169" dy=".35em" text-anchor="middle" font-size="10" font-weight="400" fill="#94A3B8">35</text>
|
|
29
|
+
<g transform="translate(-30, -210.5)">
|
|
30
|
+
<text x="30" y="0" dy=".7em" text-anchor="middle" font-size="16" font-weight="700" fill="#4F46E5">{{scores.survival.mark}}</text>
|
|
31
|
+
<text x="30" y="17" dy="1em" text-anchor="middle" font-size="14" font-weight="500" fill="#475569">{{scores.survival.label}}</text>
|
|
32
|
+
</g>
|
|
33
|
+
<g transform="translate(165.5, -107.5)">
|
|
34
|
+
<text x="0" y="0" dy=".7em" text-anchor="end" font-size="16" font-weight="700" fill="#4F46E5">{{scores.love_belonging.mark}}</text>
|
|
35
|
+
<text x="0" y="17" dy="1em" text-anchor="end" font-size="14" font-weight="500" fill="#475569">نیاز به عشق</text>
|
|
36
|
+
<text x="0" y="17" dy="2.5em" text-anchor="end" font-size="14" font-weight="500" fill="#475569">و تعلق</text>
|
|
37
|
+
</g>
|
|
38
|
+
<g transform="translate(96.5, 141.5)">
|
|
39
|
+
<text x="0" y="0" dy=".7em" text-anchor="end" font-size="14" font-weight="500" fill="#475569">نیاز به قدرت</text>
|
|
40
|
+
<text x="0" y="17" dy="1em" text-anchor="end" font-size="16" font-weight="700" fill="#4F46E5">{{scores.power.mark}}</text>
|
|
41
|
+
</g>
|
|
42
|
+
<g transform="translate(-101.5, 141.5)">
|
|
43
|
+
<text x="0" y="0" dy=".7em" text-anchor="start" font-size="14" font-weight="500" fill="#475569">نیاز به آزادی</text>
|
|
44
|
+
<text x="0" y="17" dy="1em" text-anchor="start" font-size="16" font-weight="700" fill="#4F46E5">{{scores.freedom.mark}}</text>
|
|
45
|
+
</g>
|
|
46
|
+
<g transform="translate(-165.5, -87.5)">
|
|
47
|
+
<text x="0" y="0" dy=".7em" text-anchor="start" font-size="16" font-weight="700" fill="#4F46E5">{{scores.fun.mark}}</text>
|
|
48
|
+
<text x="0" y="17" dy="1em" text-anchor="start" font-size="14" font-weight="500" fill="#475569">نیاز به تفریح</text>
|
|
49
|
+
</g>
|
|
50
|
+
</g>
|
|
51
|
+
</g>
|
|
52
|
+
|
|
53
|
+
{{/layout}}
|