def createrequestextension(self, foirequestid, ministryrequestid, extensionschema, userid): version = self.__getversionforrequest(ministryrequestid) reasonid = extensionschema['extensionreasonid'] extensionreason = extensionreasonservice().getextensionreasonbyid( reasonid) ispublicbodyextension = self.__ispublicbodyextension(reasonid) if ('extensionstatusid' in extensionschema and extensionschema['extensionstatusid'] == 2) or ispublicbodyextension == True: ministryrequestschema = { "duedate": extensionschema['extendedduedate'] } result = requestservice().saveministryrequestversion( ministryrequestschema, foirequestid, ministryrequestid, userid) if result.success == True: version = self.__getversionforrequest(ministryrequestid) extnsionresult = FOIRequestExtension.saveextension( ministryrequestid, version, extensionschema, extensionreason, userid) else: extnsionresult = FOIRequestExtension.saveextension( ministryrequestid, version, extensionschema, extensionreason, userid) if 'documents' in extensionschema and extensionschema[ 'extensionstatusid'] != 1: self.saveextensiondocument(extensionschema['documents'], ministryrequestid, userid, extnsionresult.identifier) return extnsionresult
def getextendedduedate(self, extensionschema): extensionreason = extensionreasonservice().getextensionreasonbyid( extensionschema['extensionreasonid']) # if status is Approved or reason is Public Body then directly take the extendedduedate if ('extensionstatusid' in extensionschema and extensionschema['extensionstatusid'] == 2) or extensionreason['extensiontype'] == 'Public Body': return extensionschema['extendedduedate']
def get(): try: data = extensionreasonservice().getextensionreasons() jsondata = json.dumps(data) return jsondata, 200 except BusinessException as exception: return { 'status': exception.status_code, 'message': exception.message }, 500
def getrequestextension(self, extensionid): requestextension = FOIRequestExtension().getextension(extensionid) extensiondocuments = self.__getextensiondocuments( requestextension["foirequestextensionid"], requestextension["version"]) documents = self.__getextensiondocumentsinfo(extensiondocuments) extensionreason = extensionreasonservice().getextensionreasonbyid( requestextension['extensionreasonid']) requestextensionwithdocuments = self.__createextensionobject( requestextension, documents, extensionreason) return requestextensionwithdocuments
def __findpublicbody(self, curextension): extnreson = extensionreasonservice().getextensionreasonbyid( curextension['extensionreasonid']) extntype = self.__getextensiontype(extnreson) if extntype == ExtensionType.publicbody.value: return True
def __getextensionreason(self, reasonid): return extensionreasonservice().getextensionreasonbyid(reasonid)
def __ispublicbodyextension(self, reasonid): extensionreason = extensionreasonservice().getextensionreasonbyid( reasonid) return 'extensiontype' in extensionreason and extensionreason[ 'extensiontype'] == 'Public Body'