@@ -78,14 +78,15 @@ def saverawrequest(cls, _requestrawdata, sourceofsubmission, ispiiredacted, user
7878 db .session .add (newrawrequest )
7979 if not axisrequestid :
8080 db .session .flush () # Force insert to generate PK, but do not commit yet
81- bcgovcode = _requestrawdata .get ('selectedMinistries' )[0 ].get ('code' )
82- programarea = ProgramArea .getprogramarea (bcgovcode )
83- iaocode = programarea ['iaocode' ]
84- newaxisrequestid = cls .generaterequestid (newrawrequest .requestid , iaocode , newrawrequest .isconsultflag )
85- updated_rawdata = copy .deepcopy (_requestrawdata )
86- updated_rawdata ["axisRequestId" ] = newaxisrequestid
87- newrawrequest .axisrequestid = newaxisrequestid
88- newrawrequest .requestrawdata = updated_rawdata
81+ bcgovcode = cls .getbcgovcodefromrawdata (_requestrawdata )
82+ if bcgovcode :
83+ programarea = ProgramArea .getprogramarea (bcgovcode )
84+ iaocode = programarea ['iaocode' ]
85+ newaxisrequestid = cls .generaterequestid (newrawrequest .requestid , iaocode , newrawrequest .isconsultflag )
86+ updated_rawdata = copy .deepcopy (_requestrawdata )
87+ updated_rawdata ["axisRequestId" ] = newaxisrequestid
88+ newrawrequest .axisrequestid = newaxisrequestid
89+ newrawrequest .requestrawdata = updated_rawdata
8990 db .session .commit ()
9091 return DefaultMethodResult (True ,'Request added' ,newrawrequest .requestid )
9192
@@ -112,6 +113,16 @@ def saverawrequestversion(cls,_requestrawdata,requestid,assigneegroup,assignee,s
112113 linkedrequests = _requestrawdata ["linkedRequests" ] if 'linkedRequests' in _requestrawdata else None
113114 isconsultflag = _requestrawdata ["isconsultflag" ] if 'isconsultflag' in _requestrawdata else False
114115
116+ if not axisrequestid :
117+ bcgovcode = cls .getbcgovcodefromrawdata (_requestrawdata )
118+ if bcgovcode :
119+ programarea = ProgramArea .getprogramarea (bcgovcode )
120+ iaocode = programarea ['iaocode' ]
121+ axisrequestid = cls .generaterequestid (request .requestid , iaocode , isconsultflag )
122+ updated_rawdata = copy .deepcopy (_requestrawdata )
123+ updated_rawdata ["axisRequestId" ] = axisrequestid
124+ _requestrawdata = updated_rawdata
125+
115126 _version = request .version + 1
116127 insertstmt = (
117128 insert (FOIRawRequest ).
@@ -1229,6 +1240,26 @@ def getpotentialactionedmatches(cls, request):
12291240 db .session .close ()
12301241 return requests
12311242
1243+ @classmethod
1244+ def getbcgovcodefromrawdata (cls , requestrawdata : dict ) -> str | None :
1245+ if not isinstance (requestrawdata , dict ):
1246+ return None
1247+ # For onlineform submissions
1248+ # ministry = requestrawdata.get("ministry")
1249+ # if isinstance(ministry, dict):
1250+ # selected = ministry.get("selectedMinistry")
1251+ # if isinstance(selected, list) and selected:
1252+ # code = selected[0].get("code")
1253+ # if isinstance(code, str):
1254+ # return code
1255+
1256+ selected = requestrawdata .get ("selectedMinistries" )
1257+ if isinstance (selected , list ) and selected :
1258+ code = selected [0 ].get ("code" )
1259+ if isinstance (code , str ):
1260+ return code
1261+ return None
1262+
12321263
12331264
12341265class FOIRawRequestSchema (ma .Schema ):
0 commit comments