/
ResolutionActions.py
112 lines (95 loc) · 3.82 KB
/
ResolutionActions.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
import dblayer
import comm
import collections
import pdb
from ResolutionStatuses import *
from ActionDialogs import *
from languages import *
ActionInfo = collections.namedtuple("ActionInfo",
["actionID", "displayName", "actionFunc", "dialog", "verifications", "expectToKeep"])
(SAVE_RESOLUTION, SUBMIT_RESOLUTION, DELETE_RESOLUTION, RESOLUTION_PASSED, RESOLUTION_FAILED, ACCEPT_DRAFT, REJECT_DRAFT, TRANSLATION_FINISHED, ACCEPT_FINAL, REJECT_FINAL, ASSIGN_DRAFT, DRAFT_PRINTED, ASSIGN_FOR_TRANSLATION, FINAL_PRINTED) = range(14)
def getSerializableVersion(ra):
return {"actionID": ra.actionID, "displayName": ra.displayName, "dialog": ra.dialog, "verifications": ra.verifications, "expectToKeep": ra.expectToKeep}
def saveResolution(ri, unused):
dblayer.save(ri)
def submitResolution(ri, unused):
ri["status"] = DRAFT_BEING_PROCESSED
ri["assigneeId"] = None
lang = dblayer.getCommitteeLanguage(ri["committeeId"])
usr = dblayer.getRPC_ID(lang)
ri["ownerId"] = usr
dblayer.save(ri)
comm.push(ri, usr)
def deleteResolution(ri, unused):
dblayer.delete(ri["resolutionId"])
def resolutionPassed(ri, unused):
ri["status"] = PASSED_RESOLUTION_BEING_PROCESSED
lang = dblayer.getCommitteeLanguage(ri["committeeId"])
ri["assigneeId"] = ri["originalAssigneeId"]
if ri["assigneeId"] == None:
ri["ownerId"] = dblayer.getRPC_ID(lang)
else:
ri["ownerId"] = ri["assigneeId"]
dblayer.save(ri)
comm.push(ri, ri["ownerId"])
def resolutionFailed(ri, unused):
ri["status"] = FAILED_RESOLUTION
ri["ownerId"] = None
dblayer.save(ri)
def acceptDraft(ri, unused):
lang = dblayer.getCommitteeLanguage(ri["committeeId"])
if lang == BILINGUAL:
ri["status"] = ACCEPTED_DRAFT_BEING_TRANSLATED
else:
ri["status"] = ACCEPTED_DRAFT_WAITING_FOR_PRINTING
ri["assigneeId"] = None
ri["ownerId"] = dblayer.getRPC_ID(lang)
dblayer.save(ri)
comm.push(ri, ri["ownerId"])
def rejectDraft(ri, unused):
ri["status"] = RETURNED_DRAFT
usr = dblayer.getCommitteeRapporteurID(ri["committeeId"])
ri["ownerId"] = usr
dblayer.save(ri)
comm.push(ri, usr)
def translationFinished(ri, unused):
ri["status"] = ACCEPTED_DRAFT_WAITING_FOR_PRINTING
ri["assigneeId"] = None
ri["ownerId"] = dblayer.getRPC_ID(dblayer.getCommitteeLanguage(ri["committeeId"]))
dblayer.save(ri)
comm.push(ri, ri["ownerId"])
def acceptFinal(ri, unused):
ri["status"] = PASSED_RESOLUTION_WAITING_FOR_PRINTING
ri["ownerId"] = dblayer.getRPC_ID(dblayer.getCommitteeLanguage(ri["committeeId"]))
dblayer.save(ri)
comm.push(ri, ri["ownerId"])
def rejectFinal(ri, unused):
ri["status"] = SERIOUS_WTF
ri["ownerId"] = dblayer.getRPC_ID(dblayer.getCommitteeLanguage(ri["committeeId"]))
dblayer.save(ri)
comm.push(ri, ri["ownerId"])
def assignDraft(ri, rpParam):
ri["assigneeId"] = rpParam
ri["originalAssigneeId"] = rpParam
ri["ownerId"] = rpParam
dblayer.save(ri)
comm.push(ri, rpParam)
def draftPrinted(ri, unused):
ri["status"] = PRINTED_DRAFT
user = dblayer.getCommitteeRapporteurID(ri["committeeId"])
ri["ownerId"] = user
dblayer.save(ri)
comm.setMessage(ri, user, "Draft printed!", "The draft resolution {} has been printed; go pick it up!".format(ri["resolutionId"]))
comm.push(ri, user)
def assignForTranslation(ri, translatorParam):
ri["assigneeId"] = translatorParam
ri["ownerId"] = translatorParam
dblayer.save(ri)
comm.push(ri, translatorParam)
def finalPrinted(ri, unused):
ri["status"] = PRINTED_FINAL_RESOLUTION
user = dblayer.getCommitteeRapporteurID(ri["committeeId"])
ri["ownerId"] = user
dblayer.save(ri)
comm.setMessage(ri, user, "Final resolution printed!", "The final resolution {} has been printed; go pick it up!".format(ri["resolutionId"]))
comm.push(ri, user)