示例#1
0
    def activate(self, context):
        storage = context["Services"].getStorage()
        storedObj = storage.getObject(context["metadata"].getFirst("storage_id"))
        self.oid = storedObj.getId()

        assessment = Assessment()
        assessment.activate(context)
        self.status = assessment.queryStatus(self.oid)
示例#2
0
    def checkRequests(self, checklist_filter=['1'], role_filter='reviewer', exclusive=True, startPage=1):
        """ A customised query for arms at arms-review
            Get a list of requests filtered by provisioning_checklist

            For assessor, it is user based and queries against committee-responses.metadata
        """
        workflowStep = "arms-review"
        if self.packageType:
            req = SearchRequest(self.packageType)
        else:
            req = SearchRequest("packageType:arms")
        req.addParam("fq", 'workflow_step:' + workflowStep)
        for item in ['1','2','3','4']:
            if item in checklist_filter:
                req.addParam("fq", '-provisioning_checklist.' + item + ':null' + ' AND provisioning_checklist.' + item + ':[* TO *]')
            else:
                if exclusive:
                    # ensure that brand new submissions (not yet saved by reviewer) are also returned
                    req.addParam("fq", 'provisioning_checklist.' + item + ':null' + ' OR (*:* -provisioning_checklist.' + item + ':[* TO *])')
        req.setParam("sort", "date_object_modified desc, f_dc_title asc")
        req.setParam("fl",self.returnFields)
        out = ByteArrayOutputStream()
        self.indexer.search(req, out)
        solrResults = SolrResult(ByteArrayInputStream(out.toByteArray()))

        if solrResults:
            results = solrResults.getResults()
            if results:
                packageResults = results
                results = self.mergeEvents(packageResults, ["arms_draft","arms_redraft","arms_review","arms_approved","arms_rejected"])
            returnArray = JSONArray()
            if role_filter.startswith('assessor'):
                if role_filter == 'assessor':
                    query_status = ['new', 'draft']
                elif role_filter == 'assessor-assessed':
                    query_status = ['submitted']
                x = Assessment()
                x.activate(self.velocityContext)
                i = 0
                rows = self.recordsPerPage
                start = (startPage - 1) * self.recordsPerPage
                for r in results:
                    status = x.queryStatus(r.get("id"))
                    if status in query_status:
                        if i >= start and i - start < rows:
                            if status == 'submitted':
                                assessment_submitted_date = x.queryMyAttr('date')
                                if assessment_submitted_date:
                                    r.getJsonObject().put('date', assessment_submitted_date)
                            returnArray.add(r)
                        i = i + 1
            else:
                returnArray = results

            self._setPaging(returnArray.size())
            return returnArray
        else:
            return ArrayList()
示例#3
0
def read_solution(inputFileName):
    #This function ...
    try:
        with open(inputFileName, 'r') as f:
            content = f.read()
            content_list = content.split("\n")
            lab_list = []
            for item in content_list:
                result_list = item.split(':')
                solution = Assessment(result_list[0], result_list[1])
                lab_list.append(solution)
            return lab_list

    except FileNotFoundError:
        print("File out.txt could not be opened")
示例#4
0
    def getFilteredAssessments(self, packageType, stageName, filterType, startPage=1):
        """ A customised query to use filter to get certain assessment with desired status """
        ## reference /redbox-rdsi-arms/src/main/config/home/lib/jython/util/Assessment.py for methods
        filters = {'assessment-draft': ['new','draft'], 'assessment-submitted':['submitted']}
        statusFilter = filters[filterType]

        req = SearchRequest("packageType:" + packageType)
        req.addParam("fq", 'workflow_step:' + stageName)
        req.setParam("sort", "date_object_modified desc, f_dc_title asc")
        req.setParam("fl",self.returnFields)
        out = ByteArrayOutputStream()
        self.indexer.search(req, out)
        solrResults = SolrResult(ByteArrayInputStream(out.toByteArray()))

        if solrResults:
            results = solrResults.getResults()
            returnArray = JSONArray()
            x = Assessment()
            x.activate(self.velocityContext)
            i = 0
            rows = self.recordsPerPage
            start = (startPage - 1) * self.recordsPerPage
            for r in results:
                status = x.queryStatus(r.get("id"))
                if status in statusFilter:
                    if i >= start and i - start < rows:
                        assessment_submitted_date = x.queryAttr(r.get("id"), 'date')
                        if assessment_submitted_date:
                            r.getJsonObject().put('date', assessment_submitted_date)
                        returnArray.add(r)
                    i = i + 1

            self._setPaging(returnArray.size())
            return returnArray
        else:
            return ArrayList()
示例#5
0
def read_solution(filename):
    try:
        lab_list = []
        txt = open(filename, 'r')
        txt_read = txt.read()
        txt.close()

        txt_list = txt_read.split('\n')

        for x in range(len(txt_list)):
            txt_list[x] = txt_list[x].split(":")
        for y in range(len(txt_list)):
            lab_list.append(Assessment(txt_list[y][0], txt_list[y][1]))

        return lab_list

    except NameError:
        print("File", str(filename), "could not be opened")
    except FileNotFoundError:
        print("File", str(filename), "could not be opened")