Coverage for rfpy/auth/vendor_actions.py: 100%
8 statements
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-31 16:00 +0000
« prev ^ index » next coverage.py v7.0.1, created at 2022-12-31 16:00 +0000
1from rfpy.auth import perms
4ADMIN_ACTIONS = {
5 perms.MANAGE_ORGANISATION,
6 perms.MANAGE_USERS
7}
9ISSUE_ACTIONS = {
10 perms.ISSUE_ACCEPT,
11 perms.ISSUE_DECLINE,
12 perms.ISSUE_SUBMIT,
13 perms.APPROVE_ANSWERS,
14 perms.ISSUE_VIEW_WINLOSS,
15 perms.ISSUE_VIEW_ANSWERS,
16 perms.ISSUE_UPDATE_WORKFLOW,
17 perms.ISSUE_SAVE_QUESTION_RESPONSE,
18 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS
19}
21ISSUE_STATUS_ACTIONS = {
23 'Not Sent': {},
24 'Opportunity': {
25 perms.ISSUE_ACCEPT,
26 perms.ISSUE_DECLINE,
27 perms.ISSUE_VIEW_ANSWERS
28 },
29 'Accepted': {
30 perms.ISSUE_DECLINE,
31 perms.ISSUE_SUBMIT,
32 perms.APPROVE_ANSWERS,
33 perms.ISSUE_VIEW_ANSWERS,
34 perms.ISSUE_SAVE_QUESTION_RESPONSE,
35 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS,
36 perms.ISSUE_UPDATE_WORKFLOW
37 },
38 'Submitted': {
39 perms.ISSUE_VIEW_ANSWERS,
40 perms.ISSUE_VIEW_WINLOSS
41 },
42 'Updateable': {
43 perms.ISSUE_DECLINE,
44 perms.APPROVE_ANSWERS,
45 perms.ISSUE_VIEW_ANSWERS,
46 perms.ISSUE_SAVE_QUESTION_RESPONSE,
47 perms.ISSUE_VIEW_WINLOSS,
48 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS,
49 perms.ISSUE_UPDATE_WORKFLOW
50 },
51 'Declined': {
52 perms.ISSUE_VIEW_ANSWERS,
53 },
54 'Retracted': {}
55}
57ILLEGAL_AFTER_DEADLINE = {
58 perms.ISSUE_SUBMIT,
59 perms.ISSUE_SAVE_QUESTION_RESPONSE,
60 perms.ISSUE_MANAGE_RESPONDENT_ATTACHMENTS,
61 perms.ISSUE_UPDATE_WORKFLOW,
62 perms.ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE,
63 perms.APPROVE_ANSWERS
64}
66ANSWERING_ACTIONS = {
67 perms.ISSUE_SAVE_QUESTION_RESPONSE,
68 perms.ANSWER_QUESTIONS_ALLOCATED_TO_ANYONE,
69 perms.APPROVE_ANSWERS
70}
72for status_actions in ISSUE_STATUS_ACTIONS.values():
73 for action in status_actions:
74 if action not in ISSUE_ACTIONS: # pragma: no cover
75 raise Exception(f'Invalid configuration - {action} not in ISSUE_ACTIONS')