示例#1
0
    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
示例#2
0
 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']
示例#3
0
 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
示例#4
0
 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
示例#5
0
 def __findpublicbody(self, curextension):
     extnreson = extensionreasonservice().getextensionreasonbyid(
         curextension['extensionreasonid'])
     extntype = self.__getextensiontype(extnreson)
     if extntype == ExtensionType.publicbody.value:
         return True
示例#6
0
 def __getextensionreason(self, reasonid):
     return extensionreasonservice().getextensionreasonbyid(reasonid)
示例#7
0
 def __ispublicbodyextension(self, reasonid):
     extensionreason = extensionreasonservice().getextensionreasonbyid(
         reasonid)
     return 'extensiontype' in extensionreason and extensionreason[
         'extensiontype'] == 'Public Body'