ccs-digitalmarketplace-frameworks 3.4.0 → 3.6.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/frameworks/digital-outcomes-and-specialists-7/manifests/edit_service.yml +34 -0
- package/frameworks/digital-outcomes-and-specialists-7/manifests/edit_service_as_admin.yml +34 -0
- package/frameworks/digital-outcomes-and-specialists-7/manifests/edit_submission.yml +34 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/multiqVirtualStudioCompatibilityConstraints.yml +17 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/multiqVirtualStudioOtherBiometrics.yml +17 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/multiqVirtualStudioStreaming.yml +17 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualMinimumLeadTime.yml +29 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualMinimumStudioTime.yml +28 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioAnyCompatibilityConstraints.yml +22 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioAnyOtherBiometrics.yml +28 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioAvailability.yml +27 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioBookingCost.yml +37 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioCompatibilityConstraints.yml +19 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioEyeTracking.yml +23 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioNumberOfParticipants.yml +24 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioNumberOfResearchers.yml +24 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioOtherBiometrics.yml +19 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioSessionRecorded.yml +23 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioStreaming.yml +28 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioStreamingPlatform.yml +19 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioTechnicalAssistance.yml +23 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioViewOfMobileDevice.yml +23 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioViewOfScreen.yml +23 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/whatTypesOfUserResearchStudio.yml +36 -0
- package/frameworks/digital-outcomes-and-specialists-7/questions/services/whatUserResearchServices.yml +36 -0
- package/package.json +1 -1
- package/schema_generator/validation.py +14 -4
- package/schemas/questions.json +36 -0
- package/tests/test_generate_validation_schema.py +99 -2
|
@@ -245,3 +245,37 @@
|
|
|
245
245
|
editable: False
|
|
246
246
|
questions:
|
|
247
247
|
- multiqTradeOrIndustryBodies
|
|
248
|
+
|
|
249
|
+
- name: Virtual user research studio - Booking
|
|
250
|
+
editable: False
|
|
251
|
+
questions:
|
|
252
|
+
- virtualMinimumStudioTime
|
|
253
|
+
- virtualStudioBookingCost
|
|
254
|
+
- virtualMinimumLeadTime
|
|
255
|
+
|
|
256
|
+
- name: Virtual user research studio - Capacity
|
|
257
|
+
editable: False
|
|
258
|
+
questions:
|
|
259
|
+
- virtualStudioNumberOfParticipants
|
|
260
|
+
- virtualStudioNumberOfResearchers
|
|
261
|
+
|
|
262
|
+
- name: Virtual user research studio - Availability
|
|
263
|
+
editable: False
|
|
264
|
+
questions:
|
|
265
|
+
- virtualStudioAvailability
|
|
266
|
+
|
|
267
|
+
- name: Virtual user research studio - Technical assistance
|
|
268
|
+
editable: False
|
|
269
|
+
questions:
|
|
270
|
+
- virtualStudioTechnicalAssistance
|
|
271
|
+
|
|
272
|
+
- name: Virtual user research studio - Viewing
|
|
273
|
+
editable: False
|
|
274
|
+
questions:
|
|
275
|
+
- multiqVirtualStudioStreaming
|
|
276
|
+
- multiqVirtualStudioCompatibilityConstraints
|
|
277
|
+
- virtualStudioViewOfScreen
|
|
278
|
+
- virtualStudioViewOfMobileDevice
|
|
279
|
+
- virtualStudioEyeTracking
|
|
280
|
+
- multiqVirtualStudioOtherBiometrics
|
|
281
|
+
- virtualStudioSessionRecorded
|
|
@@ -273,3 +273,37 @@
|
|
|
273
273
|
editable: True
|
|
274
274
|
questions:
|
|
275
275
|
- multiqTradeOrIndustryBodies
|
|
276
|
+
|
|
277
|
+
- name: Virtual user research studio - Booking
|
|
278
|
+
editable: True
|
|
279
|
+
questions:
|
|
280
|
+
- virtualMinimumStudioTime
|
|
281
|
+
- virtualStudioBookingCost
|
|
282
|
+
- virtualMinimumLeadTime
|
|
283
|
+
|
|
284
|
+
- name: Virtual user research studio - Capacity
|
|
285
|
+
editable: True
|
|
286
|
+
questions:
|
|
287
|
+
- virtualStudioNumberOfParticipants
|
|
288
|
+
- virtualStudioNumberOfResearchers
|
|
289
|
+
|
|
290
|
+
- name: Virtual user research studio - Availability
|
|
291
|
+
editable: True
|
|
292
|
+
questions:
|
|
293
|
+
- virtualStudioAvailability
|
|
294
|
+
|
|
295
|
+
- name: Virtual user research studio - Technical assistance
|
|
296
|
+
editable: True
|
|
297
|
+
questions:
|
|
298
|
+
- virtualStudioTechnicalAssistance
|
|
299
|
+
|
|
300
|
+
- name: Virtual user research studio - Viewing
|
|
301
|
+
editable: True
|
|
302
|
+
questions:
|
|
303
|
+
- multiqVirtualStudioStreaming
|
|
304
|
+
- multiqVirtualStudioCompatibilityConstraints
|
|
305
|
+
- virtualStudioViewOfScreen
|
|
306
|
+
- virtualStudioViewOfMobileDevice
|
|
307
|
+
- virtualStudioEyeTracking
|
|
308
|
+
- multiqVirtualStudioOtherBiometrics
|
|
309
|
+
- virtualStudioSessionRecorded
|
|
@@ -317,3 +317,37 @@
|
|
|
317
317
|
editable: True
|
|
318
318
|
questions:
|
|
319
319
|
- multiqTradeOrIndustryBodies
|
|
320
|
+
|
|
321
|
+
- name: Virtual user research studio - Booking
|
|
322
|
+
editable: True
|
|
323
|
+
questions:
|
|
324
|
+
- virtualMinimumStudioTime
|
|
325
|
+
- virtualStudioBookingCost
|
|
326
|
+
- virtualMinimumLeadTime
|
|
327
|
+
|
|
328
|
+
- name: Virtual user research studio - Capacity
|
|
329
|
+
editable: True
|
|
330
|
+
questions:
|
|
331
|
+
- virtualStudioNumberOfParticipants
|
|
332
|
+
- virtualStudioNumberOfResearchers
|
|
333
|
+
|
|
334
|
+
- name: Virtual user research studio - Availability
|
|
335
|
+
editable: True
|
|
336
|
+
questions:
|
|
337
|
+
- virtualStudioAvailability
|
|
338
|
+
|
|
339
|
+
- name: Virtual user research studio - Technical assistance
|
|
340
|
+
editable: True
|
|
341
|
+
questions:
|
|
342
|
+
- virtualStudioTechnicalAssistance
|
|
343
|
+
|
|
344
|
+
- name: Virtual user research studio - Viewing
|
|
345
|
+
editable: True
|
|
346
|
+
questions:
|
|
347
|
+
- multiqVirtualStudioStreaming
|
|
348
|
+
- multiqVirtualStudioCompatibilityConstraints
|
|
349
|
+
- virtualStudioViewOfScreen
|
|
350
|
+
- virtualStudioViewOfMobileDevice
|
|
351
|
+
- virtualStudioEyeTracking
|
|
352
|
+
- multiqVirtualStudioOtherBiometrics
|
|
353
|
+
- virtualStudioSessionRecorded
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: Compatibility constraints
|
|
2
|
+
question: ""
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
depends_on_follow_up:
|
|
10
|
+
whatTypesOfUserResearchStudio:
|
|
11
|
+
- virtual-studio
|
|
12
|
+
|
|
13
|
+
type: multiquestion
|
|
14
|
+
|
|
15
|
+
questions:
|
|
16
|
+
- virtualStudioAnyCompatibilityConstraints
|
|
17
|
+
- virtualStudioCompatibilityConstraints
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: Other biometric technologies
|
|
2
|
+
question: ""
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
depends_on_follow_up:
|
|
10
|
+
whatTypesOfUserResearchStudio:
|
|
11
|
+
- virtual-studio
|
|
12
|
+
|
|
13
|
+
type: multiquestion
|
|
14
|
+
|
|
15
|
+
questions:
|
|
16
|
+
- virtualStudioAnyOtherBiometrics
|
|
17
|
+
- virtualStudioOtherBiometrics
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: Streaming
|
|
2
|
+
question: ""
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
depends_on_follow_up:
|
|
10
|
+
whatTypesOfUserResearchStudio:
|
|
11
|
+
- virtual-studio
|
|
12
|
+
|
|
13
|
+
type: multiquestion
|
|
14
|
+
|
|
15
|
+
questions:
|
|
16
|
+
- virtualStudioStreaming
|
|
17
|
+
- virtualStudioStreamingPlatform
|
package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualMinimumLeadTime.yml
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Minimum lead time you need to make a studio booking
|
|
2
|
+
question: What is the minimum lead time you need to make a studio booking?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: "1 day"
|
|
13
|
+
- label: "2 days"
|
|
14
|
+
- label: "3 to 5 days"
|
|
15
|
+
- label: "1 week"
|
|
16
|
+
- label: "2 weeks"
|
|
17
|
+
- label: "3 weeks"
|
|
18
|
+
- label: "1 month"
|
|
19
|
+
- label: "6 weeks"
|
|
20
|
+
- label: "More than 6 weeks"
|
|
21
|
+
|
|
22
|
+
depends_on_follow_up:
|
|
23
|
+
whatTypesOfUserResearchStudio:
|
|
24
|
+
- virtual-studio
|
|
25
|
+
|
|
26
|
+
validations:
|
|
27
|
+
-
|
|
28
|
+
name: answer_required
|
|
29
|
+
message: Select the minimum lead time you need to make a studio booking
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Minimum amount of time a studio can be booked for
|
|
2
|
+
question: What is the minimum amount of time a studio can be booked for?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: "1 hour"
|
|
13
|
+
- label: "2 hours"
|
|
14
|
+
- label: "3 hours"
|
|
15
|
+
- label: "4 hours"
|
|
16
|
+
- label: "5 hours"
|
|
17
|
+
- label: "6 hours"
|
|
18
|
+
- label: "7 hours"
|
|
19
|
+
- label: "8 hours"
|
|
20
|
+
|
|
21
|
+
depends_on_follow_up:
|
|
22
|
+
whatTypesOfUserResearchStudio:
|
|
23
|
+
- virtual-studio
|
|
24
|
+
|
|
25
|
+
validations:
|
|
26
|
+
-
|
|
27
|
+
name: answer_required
|
|
28
|
+
message: Select the minimum amount of time a studio can be booked for
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
name: Any compatibility constraints
|
|
2
|
+
question: Are there any compatibility constraints with the platform or system used which may exclude government clients?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: boolean
|
|
10
|
+
|
|
11
|
+
followup:
|
|
12
|
+
virtualStudioCompatibilityConstraints:
|
|
13
|
+
- True
|
|
14
|
+
|
|
15
|
+
depends_on_follow_up:
|
|
16
|
+
whatTypesOfUserResearchStudio:
|
|
17
|
+
- virtual-studio
|
|
18
|
+
|
|
19
|
+
validations:
|
|
20
|
+
-
|
|
21
|
+
name: answer_required
|
|
22
|
+
message: Select if there are any compatibility constraints
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Provide other biometric technologies
|
|
2
|
+
question: Do you provide any other biometric technologies other than eye tracking?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: Yes, included as standard
|
|
13
|
+
- label: Yes, for an additional cost
|
|
14
|
+
- label: "No"
|
|
15
|
+
|
|
16
|
+
followup:
|
|
17
|
+
virtualStudioOtherBiometrics:
|
|
18
|
+
- Yes, included as standard
|
|
19
|
+
- Yes, for an additional cost
|
|
20
|
+
|
|
21
|
+
depends_on_follow_up:
|
|
22
|
+
whatTypesOfUserResearchStudio:
|
|
23
|
+
- virtual-studio
|
|
24
|
+
|
|
25
|
+
validations:
|
|
26
|
+
-
|
|
27
|
+
name: answer_required
|
|
28
|
+
message: Select if you provide other biometric technologies
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
name: Days a studio can be hired
|
|
2
|
+
question: What days can a studio be hired?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: checkboxes
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: "Monday"
|
|
13
|
+
- label: "Tuesday"
|
|
14
|
+
- label: "Wednesday"
|
|
15
|
+
- label: "Thursday"
|
|
16
|
+
- label: "Friday"
|
|
17
|
+
- label: "Saturday"
|
|
18
|
+
- label: "Sunday"
|
|
19
|
+
|
|
20
|
+
depends_on_follow_up:
|
|
21
|
+
whatTypesOfUserResearchStudio:
|
|
22
|
+
- virtual-studio
|
|
23
|
+
|
|
24
|
+
validations:
|
|
25
|
+
-
|
|
26
|
+
name: answer_required
|
|
27
|
+
message: Select the days a studio can be hired
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
name: Cost of booking a studio
|
|
2
|
+
question: How much does it cost (excluding VAT) to book a studio?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: pricing
|
|
10
|
+
fields:
|
|
11
|
+
price: virtualStudioBookingCostPrice
|
|
12
|
+
price_unit: virtualStudioBookingCostUnit
|
|
13
|
+
|
|
14
|
+
units:
|
|
15
|
+
- label: an hour
|
|
16
|
+
value: Hour
|
|
17
|
+
- label: a half day
|
|
18
|
+
value: Half day
|
|
19
|
+
- label: a day
|
|
20
|
+
value: Day
|
|
21
|
+
- label: a week
|
|
22
|
+
value: Week
|
|
23
|
+
|
|
24
|
+
depends_on_follow_up:
|
|
25
|
+
whatTypesOfUserResearchStudio:
|
|
26
|
+
- virtual-studio
|
|
27
|
+
|
|
28
|
+
validations:
|
|
29
|
+
- name: answer_required
|
|
30
|
+
field: virtualStudioBookingCostPrice
|
|
31
|
+
message: Enter how much it costs to book a studio
|
|
32
|
+
- name: not_money_format
|
|
33
|
+
field: virtualStudioBookingCostPrice
|
|
34
|
+
message: Price must be a number, without units, eg 99.95
|
|
35
|
+
- name: answer_required
|
|
36
|
+
field: virtualStudioBookingCostUnit
|
|
37
|
+
message: You must select the unit
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: Compatibility constraints
|
|
2
|
+
question: Specify the compatibility constraints
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: textbox_large
|
|
10
|
+
max_length_in_words: 200
|
|
11
|
+
hidden: true
|
|
12
|
+
|
|
13
|
+
validations:
|
|
14
|
+
- name: answer_required
|
|
15
|
+
message: Enter the compatibility constraints
|
|
16
|
+
- name: under_200_words
|
|
17
|
+
message: "Your answer must be no more than 200 words"
|
|
18
|
+
- name: under_character_limit
|
|
19
|
+
message: "Your answer must be no more than 2000 characters"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Provide eye-tracking
|
|
2
|
+
question: Do you provide eye-tracking?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: Yes, included as standard
|
|
13
|
+
- label: Yes, for an additional cost
|
|
14
|
+
- label: "No"
|
|
15
|
+
|
|
16
|
+
depends_on_follow_up:
|
|
17
|
+
whatTypesOfUserResearchStudio:
|
|
18
|
+
- virtual-studio
|
|
19
|
+
|
|
20
|
+
validations:
|
|
21
|
+
-
|
|
22
|
+
name: answer_required
|
|
23
|
+
message: Select if you provide eye-tracking
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Number of participants
|
|
2
|
+
question: What is the maximum number of participants in a studio?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: number
|
|
10
|
+
|
|
11
|
+
limits:
|
|
12
|
+
min_value: 1
|
|
13
|
+
max_value: 99
|
|
14
|
+
integer_only: true
|
|
15
|
+
|
|
16
|
+
depends_on_follow_up:
|
|
17
|
+
whatTypesOfUserResearchStudio:
|
|
18
|
+
- virtual-studio
|
|
19
|
+
|
|
20
|
+
validations:
|
|
21
|
+
- name: answer_required
|
|
22
|
+
message: Enter the number of participants in a studio
|
|
23
|
+
- name: not_a_number
|
|
24
|
+
message: You need to enter a number from 1 to 99
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
name: Number of researchers
|
|
2
|
+
question: What is the maximum number of researchers in a studio?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: number
|
|
10
|
+
|
|
11
|
+
limits:
|
|
12
|
+
min_value: 1
|
|
13
|
+
max_value: 99
|
|
14
|
+
integer_only: true
|
|
15
|
+
|
|
16
|
+
depends_on_follow_up:
|
|
17
|
+
whatTypesOfUserResearchStudio:
|
|
18
|
+
- virtual-studio
|
|
19
|
+
|
|
20
|
+
validations:
|
|
21
|
+
- name: answer_required
|
|
22
|
+
message: Enter the number of researchers in a studio
|
|
23
|
+
- name: not_a_number
|
|
24
|
+
message: You need to enter a number from 1 to 99
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: Other biometric technologies
|
|
2
|
+
question: Specify the other biometric technologies
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: textbox_large
|
|
10
|
+
max_length_in_words: 200
|
|
11
|
+
hidden: true
|
|
12
|
+
|
|
13
|
+
validations:
|
|
14
|
+
- name: answer_required
|
|
15
|
+
message: Enter the other biometric technologies
|
|
16
|
+
- name: under_200_words
|
|
17
|
+
message: "Your answer must be no more than 200 words"
|
|
18
|
+
- name: under_character_limit
|
|
19
|
+
message: "Your answer must be no more than 2000 characters"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Record user research session
|
|
2
|
+
question: Can the user research session be recorded?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: Yes, included as standard
|
|
13
|
+
- label: Yes, for an additional cost
|
|
14
|
+
- label: "No"
|
|
15
|
+
|
|
16
|
+
depends_on_follow_up:
|
|
17
|
+
whatTypesOfUserResearchStudio:
|
|
18
|
+
- virtual-studio
|
|
19
|
+
|
|
20
|
+
validations:
|
|
21
|
+
-
|
|
22
|
+
name: answer_required
|
|
23
|
+
message: Select if you can record user research session
|
package/frameworks/digital-outcomes-and-specialists-7/questions/services/virtualStudioStreaming.yml
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Provide remote streaming from the studio
|
|
2
|
+
question: Do you provide remote streaming from the studio?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: Yes, included as standard
|
|
13
|
+
- label: Yes, for an additional cost
|
|
14
|
+
- label: "No"
|
|
15
|
+
|
|
16
|
+
followup:
|
|
17
|
+
virtualStudioStreamingPlatform:
|
|
18
|
+
- Yes, included as standard
|
|
19
|
+
- Yes, for an additional cost
|
|
20
|
+
|
|
21
|
+
depends_on_follow_up:
|
|
22
|
+
whatTypesOfUserResearchStudio:
|
|
23
|
+
- virtual-studio
|
|
24
|
+
|
|
25
|
+
validations:
|
|
26
|
+
-
|
|
27
|
+
name: answer_required
|
|
28
|
+
message: Select if you provide remote streaming from the studio
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
name: Streaming platform
|
|
2
|
+
question: What streaming platform do you use?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: textbox_large
|
|
10
|
+
max_length_in_words: 200
|
|
11
|
+
hidden: true
|
|
12
|
+
|
|
13
|
+
validations:
|
|
14
|
+
- name: answer_required
|
|
15
|
+
message: Enter the streaming platform you use
|
|
16
|
+
- name: under_200_words
|
|
17
|
+
message: "Your answer must be no more than 200 words"
|
|
18
|
+
- name: under_character_limit
|
|
19
|
+
message: "Your answer must be no more than 2000 characters"
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Provide technical support and assistance
|
|
2
|
+
question: Do you provide technical support and assistance?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: Yes, included as standard
|
|
13
|
+
- label: Yes, for an additional cost
|
|
14
|
+
- label: "No"
|
|
15
|
+
|
|
16
|
+
depends_on_follow_up:
|
|
17
|
+
whatTypesOfUserResearchStudio:
|
|
18
|
+
- virtual-studio
|
|
19
|
+
|
|
20
|
+
validations:
|
|
21
|
+
-
|
|
22
|
+
name: answer_required
|
|
23
|
+
message: Select if you provide technical support and assistance
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Stream a view of a mobile or tablet device
|
|
2
|
+
question: Do you stream a view of a mobile or tablet device?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: Yes, included as standard
|
|
13
|
+
- label: Yes, for an additional cost
|
|
14
|
+
- label: "No"
|
|
15
|
+
|
|
16
|
+
depends_on_follow_up:
|
|
17
|
+
whatTypesOfUserResearchStudio:
|
|
18
|
+
- virtual-studio
|
|
19
|
+
|
|
20
|
+
validations:
|
|
21
|
+
-
|
|
22
|
+
name: answer_required
|
|
23
|
+
message: Select if you stream a view of a mobile or tablet device
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Stream a view of the screen
|
|
2
|
+
question: Do you stream a view of the desktop or laptop screen?
|
|
3
|
+
|
|
4
|
+
depends:
|
|
5
|
+
- "on": lot
|
|
6
|
+
being:
|
|
7
|
+
- user-research-studios-and-participants
|
|
8
|
+
|
|
9
|
+
type: radios
|
|
10
|
+
|
|
11
|
+
options:
|
|
12
|
+
- label: Yes, included as standard
|
|
13
|
+
- label: Yes, for an additional cost
|
|
14
|
+
- label: "No"
|
|
15
|
+
|
|
16
|
+
depends_on_follow_up:
|
|
17
|
+
whatTypesOfUserResearchStudio:
|
|
18
|
+
- virtual-studio
|
|
19
|
+
|
|
20
|
+
validations:
|
|
21
|
+
-
|
|
22
|
+
name: answer_required
|
|
23
|
+
message: Select if you stream a view of the screen
|
|
@@ -21,10 +21,46 @@ depends_on_follow_up:
|
|
|
21
21
|
dependent_follow_up:
|
|
22
22
|
tradeOrIndustryBodies:
|
|
23
23
|
- virtual-studio
|
|
24
|
+
virtualMinimumStudioTime:
|
|
25
|
+
- virtual-studio
|
|
26
|
+
virtualStudioBookingCostPrice:
|
|
27
|
+
- virtual-studio
|
|
28
|
+
virtualStudioBookingCostUnit:
|
|
29
|
+
- virtual-studio
|
|
30
|
+
virtualMinimumLeadTime:
|
|
31
|
+
- virtual-studio
|
|
32
|
+
virtualStudioNumberOfParticipants:
|
|
33
|
+
- virtual-studio
|
|
34
|
+
virtualStudioNumberOfResearchers:
|
|
35
|
+
- virtual-studio
|
|
36
|
+
virtualStudioAvailability:
|
|
37
|
+
- virtual-studio
|
|
38
|
+
virtualStudioTechnicalAssistance:
|
|
39
|
+
- virtual-studio
|
|
40
|
+
virtualStudioStreaming:
|
|
41
|
+
- virtual-studio
|
|
42
|
+
virtualStudioAnyCompatibilityConstraints:
|
|
43
|
+
- virtual-studio
|
|
44
|
+
virtualStudioViewOfScreen:
|
|
45
|
+
- virtual-studio
|
|
46
|
+
virtualStudioViewOfMobileDevice:
|
|
47
|
+
- virtual-studio
|
|
48
|
+
virtualStudioEyeTracking:
|
|
49
|
+
- virtual-studio
|
|
50
|
+
virtualStudioAnyOtherBiometrics:
|
|
51
|
+
- virtual-studio
|
|
52
|
+
virtualStudioSessionRecorded:
|
|
53
|
+
- virtual-studio
|
|
24
54
|
|
|
25
55
|
dependent_follow_up_followup:
|
|
26
56
|
tradeOrIndustryBodiesOther:
|
|
27
57
|
- virtual-studio
|
|
58
|
+
virtualStudioStreamingPlatform:
|
|
59
|
+
- virtual-studio
|
|
60
|
+
virtualStudioCompatibilityConstraints:
|
|
61
|
+
- virtual-studio
|
|
62
|
+
virtualStudioOtherBiometrics:
|
|
63
|
+
- virtual-studio
|
|
28
64
|
|
|
29
65
|
validations:
|
|
30
66
|
-
|
|
@@ -35,6 +35,36 @@ dependent_follow_up:
|
|
|
35
35
|
- user-research-studios
|
|
36
36
|
tradeOrIndustryBodies:
|
|
37
37
|
- user-research-studios
|
|
38
|
+
virtualMinimumStudioTime:
|
|
39
|
+
- user-research-studios
|
|
40
|
+
virtualStudioBookingCostPrice:
|
|
41
|
+
- user-research-studios
|
|
42
|
+
virtualStudioBookingCostUnit:
|
|
43
|
+
- user-research-studios
|
|
44
|
+
virtualMinimumLeadTime:
|
|
45
|
+
- user-research-studios
|
|
46
|
+
virtualStudioNumberOfParticipants:
|
|
47
|
+
- user-research-studios
|
|
48
|
+
virtualStudioNumberOfResearchers:
|
|
49
|
+
- user-research-studios
|
|
50
|
+
virtualStudioAvailability:
|
|
51
|
+
- user-research-studios
|
|
52
|
+
virtualStudioTechnicalAssistance:
|
|
53
|
+
- user-research-studios
|
|
54
|
+
virtualStudioStreaming:
|
|
55
|
+
- user-research-studios
|
|
56
|
+
virtualStudioAnyCompatibilityConstraints:
|
|
57
|
+
- user-research-studios
|
|
58
|
+
virtualStudioViewOfScreen:
|
|
59
|
+
- user-research-studios
|
|
60
|
+
virtualStudioViewOfMobileDevice:
|
|
61
|
+
- user-research-studios
|
|
62
|
+
virtualStudioEyeTracking:
|
|
63
|
+
- user-research-studios
|
|
64
|
+
virtualStudioAnyOtherBiometrics:
|
|
65
|
+
- user-research-studios
|
|
66
|
+
virtualStudioSessionRecorded:
|
|
67
|
+
- user-research-studios
|
|
38
68
|
|
|
39
69
|
dependent_follow_up_followup:
|
|
40
70
|
otherTradeOrIndustryBodiesOther:
|
|
@@ -43,6 +73,12 @@ dependent_follow_up_followup:
|
|
|
43
73
|
- user-research-participants
|
|
44
74
|
tradeOrIndustryBodiesOther:
|
|
45
75
|
- user-research-studios
|
|
76
|
+
virtualStudioStreamingPlatform:
|
|
77
|
+
- user-research-studios
|
|
78
|
+
virtualStudioCompatibilityConstraints:
|
|
79
|
+
- user-research-studios
|
|
80
|
+
virtualStudioOtherBiometrics:
|
|
81
|
+
- user-research-studios
|
|
46
82
|
|
|
47
83
|
validations:
|
|
48
84
|
-
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ccs-digitalmarketplace-frameworks",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.6.0",
|
|
4
4
|
"description": "Data files for Digital Marketplace’s procurement frameworks",
|
|
5
5
|
"repository": "git@github.com:Crown-Commercial-Service/ccs-digitalmarketplace-frameworks",
|
|
6
6
|
"author": "enquiries@digitalmarketplace.service.gov.uk"
|
|
@@ -501,8 +501,10 @@ def pricing_property(question):
|
|
|
501
501
|
)
|
|
502
502
|
|
|
503
503
|
if 'price_unit' in question.fields:
|
|
504
|
-
|
|
505
|
-
|
|
504
|
+
if question.get('units'):
|
|
505
|
+
units = [unit.get('value', unit.get('label')) for unit in question.get('units')]
|
|
506
|
+
else:
|
|
507
|
+
units = [
|
|
506
508
|
"Unit",
|
|
507
509
|
"Person",
|
|
508
510
|
"Licence",
|
|
@@ -516,13 +518,18 @@ def pricing_property(question):
|
|
|
516
518
|
"Gigabyte",
|
|
517
519
|
"Terabyte"
|
|
518
520
|
]
|
|
521
|
+
|
|
522
|
+
pricing[question.fields['price_unit']] = {
|
|
523
|
+
"enum": units
|
|
519
524
|
}
|
|
520
525
|
if 'price_unit' in question.get('optional_fields', []):
|
|
521
526
|
pricing[question.fields['price_unit']]['enum'].insert(0, "")
|
|
522
527
|
|
|
523
528
|
if 'price_interval' in question.fields:
|
|
524
|
-
|
|
525
|
-
|
|
529
|
+
if question.get('intervals'):
|
|
530
|
+
intervals = [interval.get('value', interval.get('label')) for interval in question.get('intervals')]
|
|
531
|
+
else:
|
|
532
|
+
intervals = [
|
|
526
533
|
"Second",
|
|
527
534
|
"Minute",
|
|
528
535
|
"Hour",
|
|
@@ -533,6 +540,9 @@ def pricing_property(question):
|
|
|
533
540
|
"6 months",
|
|
534
541
|
"Year"
|
|
535
542
|
]
|
|
543
|
+
|
|
544
|
+
pricing[question.fields['price_interval']] = {
|
|
545
|
+
"enum": intervals
|
|
536
546
|
}
|
|
537
547
|
if 'price_interval' in question.get('optional_fields', []):
|
|
538
548
|
pricing[question.fields['price_interval']]['enum'].insert(0, "")
|
package/schemas/questions.json
CHANGED
|
@@ -367,6 +367,42 @@
|
|
|
367
367
|
"required": [
|
|
368
368
|
"passIfIn"
|
|
369
369
|
]
|
|
370
|
+
},
|
|
371
|
+
"units": {
|
|
372
|
+
"type": "array",
|
|
373
|
+
"items": {
|
|
374
|
+
"type": "object",
|
|
375
|
+
"properties": {
|
|
376
|
+
"label": {
|
|
377
|
+
"type": "string"
|
|
378
|
+
},
|
|
379
|
+
"value": {
|
|
380
|
+
"type": "string"
|
|
381
|
+
}
|
|
382
|
+
},
|
|
383
|
+
"additionalProperties": false,
|
|
384
|
+
"required": [
|
|
385
|
+
"label"
|
|
386
|
+
]
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"intervals": {
|
|
390
|
+
"type": "array",
|
|
391
|
+
"items": {
|
|
392
|
+
"type": "object",
|
|
393
|
+
"properties": {
|
|
394
|
+
"label": {
|
|
395
|
+
"type": "string"
|
|
396
|
+
},
|
|
397
|
+
"value": {
|
|
398
|
+
"type": "string"
|
|
399
|
+
}
|
|
400
|
+
},
|
|
401
|
+
"additionalProperties": false,
|
|
402
|
+
"required": [
|
|
403
|
+
"label"
|
|
404
|
+
]
|
|
405
|
+
}
|
|
370
406
|
}
|
|
371
407
|
},
|
|
372
408
|
"additionalProperties": false,
|
|
@@ -558,8 +558,31 @@ def test_pricing_property_price_unit_and_interval():
|
|
|
558
558
|
}
|
|
559
559
|
cq = ContentQuestion(manifest)
|
|
560
560
|
result = pricing_property(cq)
|
|
561
|
-
assert
|
|
562
|
-
|
|
561
|
+
assert result['priceUnit']['enum'] == [
|
|
562
|
+
"Unit",
|
|
563
|
+
"Person",
|
|
564
|
+
"Licence",
|
|
565
|
+
"User",
|
|
566
|
+
"Device",
|
|
567
|
+
"Instance",
|
|
568
|
+
"Server",
|
|
569
|
+
"Virtual machine",
|
|
570
|
+
"Transaction",
|
|
571
|
+
"Megabyte",
|
|
572
|
+
"Gigabyte",
|
|
573
|
+
"Terabyte"
|
|
574
|
+
]
|
|
575
|
+
assert result['priceInterval']['enum'] == [
|
|
576
|
+
"Second",
|
|
577
|
+
"Minute",
|
|
578
|
+
"Hour",
|
|
579
|
+
"Day",
|
|
580
|
+
"Week",
|
|
581
|
+
"Month",
|
|
582
|
+
"Quarter",
|
|
583
|
+
"6 months",
|
|
584
|
+
"Year"
|
|
585
|
+
]
|
|
563
586
|
|
|
564
587
|
|
|
565
588
|
def test_pricing_property_price_unit_and_interval_optional():
|
|
@@ -633,6 +656,80 @@ def test_pricing_property_digit_limits_decimal_place_restriction():
|
|
|
633
656
|
assert '{1,14}' in result['priceMax']['pattern']
|
|
634
657
|
|
|
635
658
|
|
|
659
|
+
def test_pricing_property_price():
|
|
660
|
+
manifest = {
|
|
661
|
+
"id": "Test",
|
|
662
|
+
"type": "pricing",
|
|
663
|
+
"fields": {
|
|
664
|
+
"price": "price"
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
cq = ContentQuestion(manifest)
|
|
668
|
+
result = pricing_property(cq)
|
|
669
|
+
assert not result['price']['pattern'].startswith("^$|")
|
|
670
|
+
|
|
671
|
+
|
|
672
|
+
def test_pricing_property_custom_units():
|
|
673
|
+
manifest = {
|
|
674
|
+
"id": "Test",
|
|
675
|
+
"type": "pricing",
|
|
676
|
+
"fields": {
|
|
677
|
+
"price": "price",
|
|
678
|
+
"price_unit": "priceUnit"
|
|
679
|
+
},
|
|
680
|
+
"units": [
|
|
681
|
+
{
|
|
682
|
+
"label": "Option 1"
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"label": "Option 2",
|
|
686
|
+
"value": "option-2"
|
|
687
|
+
},
|
|
688
|
+
{
|
|
689
|
+
"label": "Option 3",
|
|
690
|
+
"value": "option-3"
|
|
691
|
+
}
|
|
692
|
+
]
|
|
693
|
+
}
|
|
694
|
+
cq = ContentQuestion(manifest)
|
|
695
|
+
result = pricing_property(cq)
|
|
696
|
+
assert result['priceUnit']['enum'] == [
|
|
697
|
+
"Option 1",
|
|
698
|
+
"option-2",
|
|
699
|
+
"option-3"
|
|
700
|
+
]
|
|
701
|
+
|
|
702
|
+
|
|
703
|
+
def test_pricing_property_custom_intervals():
|
|
704
|
+
manifest = {
|
|
705
|
+
"id": "Test",
|
|
706
|
+
"type": "pricing",
|
|
707
|
+
"fields": {
|
|
708
|
+
"price": "price",
|
|
709
|
+
"price_interval": "priceInterval"
|
|
710
|
+
},
|
|
711
|
+
"intervals": [
|
|
712
|
+
{
|
|
713
|
+
"label": "Option 1",
|
|
714
|
+
"value": "option-1"
|
|
715
|
+
},
|
|
716
|
+
{
|
|
717
|
+
"label": "Option 2"
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
"label": "Option 3"
|
|
721
|
+
}
|
|
722
|
+
]
|
|
723
|
+
}
|
|
724
|
+
cq = ContentQuestion(manifest)
|
|
725
|
+
result = pricing_property(cq)
|
|
726
|
+
assert result['priceInterval']['enum'] == [
|
|
727
|
+
"option-1",
|
|
728
|
+
"Option 2",
|
|
729
|
+
"Option 3"
|
|
730
|
+
]
|
|
731
|
+
|
|
732
|
+
|
|
636
733
|
@given(st.text())
|
|
637
734
|
def test_number_property(id):
|
|
638
735
|
actual = number_property({'id': id, 'type': 'number'})
|