def create(tallySheetId, body):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" % tallySheetId)

    request_body = RequestBody(body)
    tallySheetVersion = TallySheetVersionPRE41.create(
        tallySheetId=tallySheetId
    )

    tally_sheet_content = request_body.get("content")
    if tally_sheet_content is not None:
        for row in tally_sheet_content:
            party_count_body = RequestBody(row)
            tallySheetVersion.add_row(
                candidateId=party_count_body.get("candidateId"),
                count=party_count_body.get("count"),
                countInWords=party_count_body.get("countInWords")
            )

    tally_sheet_summary_body = request_body.get("summary")
    if tally_sheet_summary_body is not None:
        tallySheetVersion.add_invalid_vote_count(
            electionId=tallySheetVersion.submission.electionId,
            rejectedVoteCount=tally_sheet_summary_body.get("rejectedVoteCount")
        )

    db.session.commit()

    return TallySheetVersionSchema().dump(tallySheetVersion).data
    def test_get_by_id(self, test_client):
        random_tally_sheet: TallySheetModel = random.choice(self.tally_sheets)
        tally_sheet_id = random_tally_sheet.tallySheetId

        candidate_id = 2
        count = 200
        count_in_words = "Two hundred"

        from orm.entities.SubmissionVersion.TallySheetVersion import TallySheetVersionPRE41

        tally_sheet_version = TallySheetVersionPRE41.create(
            tallySheetId=tally_sheet_id)
        tally_sheet_version.add_row(candidateId=candidate_id,
                                    count=count,
                                    countInWords=count_in_words)
        db.session.commit()

        response: Response = test_client.get(
            f"/tally-sheet/{self.tally_sheet_code}/{tally_sheet_id}/version/{tally_sheet_version.tallySheetVersionId}"
        )
        assert response.status_code == 200
        json_response = response.get_json()
        assert len(json_response) > 0
        match_element = [
            x for x in json_response.get('content')
            if x.get('candidateId') == candidate_id
        ][0]
        assert match_element.get("candidateId") == candidate_id
        assert match_element.get("count") == count
        assert match_element.get("countInWords") == count_in_words
Exemple #3
0
def get_by_id(tallySheetId, tallySheetVersionId):
    result = TallySheetVersionPRE41.get_by_id(
        tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId)

    print("\n\n\n ####### result ##### ", result)

    return TallySheetVersionPRE41Schema().dump(result).data
Exemple #4
0
def get_all(tallySheetId):
    tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId)
    if tallySheet is None:
        raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" %
                                tallySheetId)

    result = TallySheetVersionPRE41.get_all(tallySheetId=tallySheetId)

    return TallySheetVersionPRE41Schema(many=True).dump(result).data
Exemple #5
0
def create(tallySheetId, body):
    request_body = RequestBody(body)
    tallySheetVersion = TallySheetVersionPRE41.create(
        tallySheetId=tallySheetId)

    tally_sheet_content = request_body.get("content")
    if tally_sheet_content is not None:
        for row in tally_sheet_content:
            party_count_body = RequestBody(row)
            tallySheetVersion.add_row(
                candidateId=party_count_body.get("candidateId"),
                count=party_count_body.get("count"),
                countInWords=party_count_body.get("countInWords"))

    return TallySheetVersionPRE41Schema().dump(tallySheetVersion).data
def get_by_id(tallySheetId, tallySheetVersionId):
    result = TallySheetVersionPRE41.get_by_id(
        tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId)

    return TallySheetVersionPRE41Schema().dump(result).data