def get_by_id(tallySheetId, tallySheetVersionId): result = TallySheetVersion.get_by_id( tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId ) return TallySheetVersionCE201Schema().dump(result).data
def json_data(self): candidate_wise_vote_count_result, total_valid_votes = TallySheetVersion.create_candidate_preference_struct( self.content) candidates = [] for candidate_wise_valid_vote_count_result_item in candidate_wise_vote_count_result: total_vote_count = candidate_wise_valid_vote_count_result_item['total'] candidates.append({ "party_code": candidate_wise_valid_vote_count_result_item['partyAbbreviation'], "votes": str(total_vote_count), "votes1st": str(candidate_wise_valid_vote_count_result_item['firstPreferenceCount']), "votes2nd": str(candidate_wise_valid_vote_count_result_item['secondPreferenceCount']), "votes3rd": str(candidate_wise_valid_vote_count_result_item['thirdPreferenceCount']), "percentage": f'{round(total_vote_count * 100 / total_valid_votes, 2)}', "party_name": candidate_wise_valid_vote_count_result_item['partyName'], "candidate": candidate_wise_valid_vote_count_result_item['name'] }) response = { "timestamp": str(datetime.now()), "level": "ALL-ISLAND", "by_party": candidates, "summary": { "valid": str(total_valid_votes), "rejected": "", "polled": "", "electors": "", "percent_valid": "", "percent_rejected": "", "percent_polled": "", } } return response, "FINAL"
def lock(tallySheetId, body): request_body = RequestBody(body) tallySheetVersionId = request_body.get("lockedVersionId") tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId) if tally_sheet is None: raise NotFoundException("Tally sheet not found (tallySheetId=%d)" % tallySheetId) tally_sheet_version = TallySheetVersion.get_by_id( tallySheetVersionId=tallySheetVersionId, tallySheetId=tallySheetId) if tally_sheet_version is None: raise NotFoundException( message="Tally sheet version not found (tallySheetVersionId=%d)" % tallySheetVersionId, code=MESSAGE_CODE_TALLY_SHEET_VERSION_NOT_FOUND) if not tally_sheet_version.isComplete: raise NotFoundException( message="Incomplete tally sheet version (tallySheetVersionId=%d)" % tallySheetVersionId, code= MESSAGE_CODE_TALLY_SHEET_INCOMPLETE_TALLY_SHEET_CANNOT_BE_LOCKED) tally_sheet.set_locked_version(tally_sheet_version) if tally_sheet.tallySheetCode in [ TallySheetCodeEnum.CE_201, TallySheetCodeEnum.CE_201_PV ]: election = tally_sheet.submission.election electionId = election.parentElectionId countingCentreId = tally_sheet.areaId results = StatusCE201.get_status_records(electionId, countingCentreId) for item in results: item.status = "Verified" if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_41]: election = tally_sheet.submission.election electionId = election.parentElectionId countingCentreId = tally_sheet.areaId results = StatusPRE41.get_status_records(electionId, countingCentreId) for item in results: item.status = "Verified" if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_34_CO]: election = tally_sheet.submission.election electionId = election.parentElectionId countingCentreId = tally_sheet.areaId results = StatusPRE34.get_status_records(electionId, countingCentreId) for item in results: item.status = "Verified" db.session.commit() return TallySheetSchema().dump(tally_sheet).data, 201
def release_results(tally_sheet, tally_sheet_version_id): if tally_sheet.tallySheetCode in release_allowed_tally_sheet_codes: tally_sheet_version = TallySheetVersion.get_by_id( tallySheetId=tally_sheet.tallySheetId, tallySheetVersionId=tally_sheet_version_id) response, result_code = tally_sheet_version.json_data() result_dissemination_result_type = RESULT_DISSEMINATION_SYSTEM_RESULT_TYPE_VOTE if tally_sheet.tallySheetCode in PREFERENCE_TALLY_SHEET_CODES: result_dissemination_result_type = RESULT_DISSEMINATION_SYSTEM_RESULT_TYPE_PREF response['type'] = result_dissemination_result_type url = "%s/%s/%s/%s/%s" % ( RESULT_DISSEMINATION_SYSTEM_URL, RELEASE_RESULTS_ENDPOINT, RESULT_DISSEMINATION_SYSTEM_ELECTION_CODE, result_dissemination_result_type, result_code) print("#### RESULT_DISSEMINATION_API - Release #### ", [url, response]) result = requests.post(url, verify=False, json=response) print(result.status_code, result.content) upload_proof_last_image(tally_sheet, tally_sheet_version) return result else: raise MethodNotAllowedException( message="Tally sheet is not allowed to be released.", code=MESSAGE_CODE_TALLY_SHEET_NOT_ALLOWED_TO_BE_RELEASED)
def html(tallySheetId, tallySheetVersionId): tallySheetVersion = TallySheetVersion.get_by_id( tallySheetVersionId=tallySheetVersionId) db.session.commit() return Response(tallySheetVersion.html(), mimetype='text/html')
def get_by_id(tallySheetId, tallySheetVersionId): result = TallySheetVersion.get_by_id( tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId ) return TallySheetVersion_PRE_ALL_ISLAND_RESULT_BY_ELECTORAL_DISTRICTS_Schema().dump(result).data
def submit(tallySheetId, body): request_body = RequestBody(body) tallySheetVersionId = request_body.get("submittedVersionId") tally_sheet: TallySheetModel = TallySheet.get_by_id(tallySheetId=tallySheetId) if tally_sheet is None: raise NotFoundException( message="Tally sheet not found (tallySheetId=%d)" % tallySheetId, code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND ) if tally_sheet.tallySheetCode not in [TallySheetCodeEnum.PRE_41, TallySheetCodeEnum.CE_201, TallySheetCodeEnum.CE_201_PV, TallySheetCodeEnum.PRE_34_CO]: raise ForbiddenException( message="Submit operation is not supported for this tally sheet type.", code=MESSAGE_CODE_TALLY_SHEET_SUBMIT_IS_NOT_SUPPORTED ) tally_sheet_version = TallySheetVersion.get_by_id(tallySheetVersionId=tallySheetVersionId, tallySheetId=tallySheetId) if tally_sheet_version is None: raise NotFoundException( message="Tally sheet version not found (tallySheetVersionId=%d)" % tallySheetVersionId, code=MESSAGE_CODE_TALLY_SHEET_VERSION_NOT_FOUND ) tally_sheet.set_submitted_version(tally_sheet_version) if tally_sheet.tallySheetCode in [TallySheetCodeEnum.CE_201, TallySheetCodeEnum.CE_201_PV]: election = tally_sheet.submission.election electionId = election.parentElectionId countingCentreId = tally_sheet.areaId results = StatusCE201.get_status_records(electionId, countingCentreId) for item in results: item.status = "Submitted" if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_41]: election = tally_sheet.submission.election electionId = election.parentElectionId countingCentreId = tally_sheet.areaId results = StatusPRE41.get_status_records(electionId, countingCentreId) for item in results: item.status = "Submitted" if tally_sheet.tallySheetCode in [TallySheetCodeEnum.PRE_34_CO]: election = tally_sheet.submission.election electionId = election.parentElectionId countingCentreId = tally_sheet.areaId results = StatusPRE34.get_status_records(electionId, countingCentreId) for item in results: item.status = "Submitted" db.session.commit() return TallySheetSchema().dump(tally_sheet).data, 201
def html(self): stamp = self.stamp content = { "tallySheetCode": "PRE-34-ED", "election": { "electionName": self.submission.election.get_official_name() }, "stamp": { "createdAt": stamp.createdAt, "createdBy": stamp.createdBy, "barcodeString": stamp.barcodeString }, "electoralDistrict": Area.get_associated_areas( self.submission.area, AreaTypeEnum.ElectoralDistrict)[0].areaName, "data": [] } content[ "data"], total_valid_vote_count = TallySheetVersion.create_candidate_preference_struct( self.content) html = render_template('PRE-34-ED.html', content=content) return html
def notify_results(tally_sheet, tally_sheet_version_id): if tally_sheet.tallySheetCode in notify_allowed_tally_sheet_codes: tally_sheet_version = TallySheetVersion.get_by_id( tallySheetId=tally_sheet.tallySheetId, tallySheetVersionId=tally_sheet_version_id ) response = tally_sheet_version.json_data() result_dissemination_result_type = RESULT_DISSEMINATION_SYSTEM_RESULT_TYPE_VOTE if tally_sheet.tallySheetCode in PREFERENCE_TALLY_SHEET_CODES: result_dissemination_result_type = RESULT_DISSEMINATION_SYSTEM_RESULT_TYPE_PREF url = "%s/%s/%s/%s" % ( RESULT_DISSEMINATION_SYSTEM_URL, NOTIFY_RESULTS_ENDPOINT, RESULT_DISSEMINATION_SYSTEM_ELECTION_CODE, # result_dissemination_result_type, response['result_code'] ) print("#### RESULT_DISSEMINATION_API - Notify #### ", [url, response]) return requests.post(url, verify=False) else: raise MethodNotAllowedException( message="Tally sheet is not allowed to be notified.", code=MESSAGE_CODE_TALLY_SHEET_NOT_ALLOWED_TO_BE_NOTIFIED )
def html(self): stamp = self.stamp content = { "tallySheetCode": "PRE-34-PD", "election": { "electionName": self.submission.election.get_official_name() }, "stamp": { "createdAt": stamp.createdAt, "createdBy": stamp.createdBy, "barcodeString": stamp.barcodeString }, "electoralDistrict": Area.get_associated_areas( self.submission.area, AreaTypeEnum.ElectoralDistrict)[0].areaName, "pollingDivision": "XX", "data": [], # "candidates": disqualifiedCandidates } if self.submission.election.voteType == VoteTypeEnum.Postal: content["tallySheetCode"] = "PRE-34-PV" content["pollingDivision"] = "Postal" elif self.submission.election.voteType == VoteTypeEnum.NonPostal: content["pollingDivision"] = self.submission.area.areaName content["data"], total_valid_vote_count = TallySheetVersion.create_candidate_preference_struct(self.content) html = render_template( 'PRE-34-PD.html', content=content ) return html
def _cache_letter_pdf(user_access_area_ids, tally_sheet_id, tally_sheet_version_id): tally_sheet = TallySheet.get_by_id(tallySheetId=tally_sheet_id) if tally_sheet is None: raise NotFoundException( message="Tally sheet not found (tallySheetId=%d)" % tally_sheet_id, code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND) tally_sheet_version = TallySheetVersion.get_by_id( tallySheetId=tally_sheet_id, tallySheetVersionId=tally_sheet_version_id) if tally_sheet_version is None: raise NotFoundException( message="Tally sheet version not found (tallySheetVersionId=%d)" % tally_sheet_version_id, code=MESSAGE_CODE_TALLY_SHEET_VERSION_NOT_FOUND) file_response = FileApi.get_download_file( fileId=tally_sheet_version.get_exported_letter_pdf_file_id( tallySheetId=tally_sheet_id, tallySheetVersionId=tally_sheet_version_id)) db.session.commit() return file_response
def html(self): stamp = self.stamp disqualifiedCandidates = db.session.query( ElectionCandidate.Model.candidateId, Candidate.Model.candidateName, ).join( Candidate.Model, Candidate.Model.candidateId == ElectionCandidate.Model.candidateId).filter( ElectionCandidate.Model.qualifiedForPreferences == False, ElectionCandidate.Model.electionId.in_( self.submission.election.mappedElectionIds)).all() content = { "tallySheetCode": "PRE/34/I/RO", "election": { "electionName": self.submission.election.get_official_name() }, "stamp": { "createdAt": stamp.createdAt, "createdBy": stamp.createdBy, "barcodeString": stamp.barcodeString }, "title": "PRESIDENTIAL ELECTION ACT NO. 15 OF 1981", "electoralDistrict": Area.get_associated_areas( self.submission.area, AreaTypeEnum.ElectoralDistrict)[0].areaName, "pollingDivisionOrPostalVoteCountingCentres": "XX", "data": [], "candidates": disqualifiedCandidates, "summary": self.summary } if self.submission.election.voteType == VoteTypeEnum.Postal: content["tallySheetCode"] = "PRE/34/I/RO PV" content["pollingDivisionOrPostalVoteCountingCentres"] = ", ".join([ countingCentre.areaName for countingCentre in Area.get_associated_areas( self.submission.area, AreaTypeEnum.CountingCentre, electionId=self.submission.electionId) ]) elif self.submission.election.voteType == VoteTypeEnum.NonPostal: content[ "pollingDivisionOrPostalVoteCountingCentres"] = Area.get_associated_areas( self.submission.area, AreaTypeEnum.PollingDivision)[0].areaName content["data"] = TallySheetVersion.create_candidate_preference_struct( self.content) html = render_template('PRE-34-I-RO.html', content=content) return html
def create(body): request_body = RequestBody(body) result = TallySheetVersion.create( tallySheetId=request_body.get("tallySheetId")) db.session.commit() return Schema().dump(result).data, 201
def get_by_id(tallySheetId, tallySheetVersionId): tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId) if tallySheet is None: raise NotFoundException("Tally sheet not found. (tallySheetId=%d)" % tallySheetId) result = TallySheetVersion.get_by_id( tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId) return TallySheetVersionPRE41Schema().dump(result).data
def html_letter(self): stamp = self.stamp total_registered_voters = get_polling_division_total_registered_voters(tallySheetVersion=self) electoral_district = Area.get_associated_areas(self.submission.area, AreaTypeEnum.ElectoralDistrict)[0] polling_division = self.submission.area content = { "resultTitle": "Results of PD", "election": { "electionName": self.submission.election.get_official_name(), "isPostal": self.submission.election.voteType == VoteTypeEnum.Postal }, "stamp": { "createdAt": stamp.createdAt, "createdBy": stamp.createdBy, "barcodeString": stamp.barcodeString }, "date": stamp.createdAt.strftime("%d/%m/%Y"), "time": stamp.createdAt.strftime("%H:%M:%S %p"), "data": [ ], "validVoteCounts": [0, 0], "rejectedVoteCounts": [0, 0], "totalVoteCounts": [0, 0], "registeredVoters": [ to_comma_seperated_num(total_registered_voters), 100 ], "electoralDistrict": Area.get_associated_areas( self.submission.area, AreaTypeEnum.ElectoralDistrict)[0].areaName, "pollingDivision": self.submission.area.areaName } if self.submission.election.voteType == VoteTypeEnum.Postal: content["tallySheetCode"] = "PRE/34/PV" content["pollingDivision"] = "Postal" content["resultTitle"] = "Results of Electoral District %s (Postal)" % electoral_district.areaName else: content["pollingDivision"] = self.submission.area.areaName content["resultTitle"] = "Results of Electoral District %s - Polling Division %s" % ( electoral_district.areaName, polling_division.areaName ) content["data"], total_valid_vote_count = TallySheetVersion.create_candidate_preference_struct(self.content) content["logo"] = convert_image_to_data_uri("static/Emblem_of_Sri_Lanka.png") html = render_template( 'PRE_34_ALL_ISLAND_RESULTS.html', content=content ) return html
def get_by_id(tallySheetId, tallySheetVersionId): tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId) if tallySheet is None: raise NotFoundException( message="Tally sheet not found (tallySheetId=%d)" % tallySheetId, code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND) result = TallySheetVersion.get_by_id( tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId) return TallySheetVersionSchema().dump(result).data
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 = TallySheetVersion.get_all(tallySheetId=tallySheetId) result = get_paginated_query(result).all() return TallySheetVersion_CE_201_PV_Schema(many=True).dump(result).data
def get_extended_tally_sheet_version(self, tallySheetVersionId): tally_sheet_version = TallySheetVersion.get_by_id( tallySheetId=self.tallySheetId, tallySheetVersionId=tallySheetVersionId) extended_election = self.submission.election.get_extended_election() extended_tally_sheet_class = extended_election.get_extended_tally_sheet_class( self.template.templateName) extended_tally_sheet_version = extended_tally_sheet_class.ExtendedTallySheetVersion( tallySheet=self, tallySheetVersion=tally_sheet_version) return extended_tally_sheet_version
def get_all(tallySheetId): tallySheet = TallySheet.get_by_id(tallySheetId=tallySheetId) if tallySheet is None: raise NotFoundException( message="Tally sheet not found (tallySheetId=%d)" % tallySheetId, code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND) result = TallySheetVersion.get_all(tallySheetId=tallySheetId) result = get_paginated_query(result).all() return TallySheetVersion_CE_201_PV_Schema(many=True).dump(result).data
def json_data(self): electoral_district = self.submission.area.areaName candidate_wise_vote_count_result, total_valid_votes = TallySheetVersion.create_candidate_preference_struct( self.content) candidates = [] for candidate_wise_valid_vote_count_result_item in candidate_wise_vote_count_result: total_vote_count = candidate_wise_valid_vote_count_result_item[ 'total'] candidates.append({ "party_code": candidate_wise_valid_vote_count_result_item[ 'partyAbbreviation'], "votes": str(total_vote_count), "votes1st": str(candidate_wise_valid_vote_count_result_item[ 'firstPreferenceCount']), "votes2nd": str(candidate_wise_valid_vote_count_result_item[ 'secondPreferenceCount']), "votes3rd": str(candidate_wise_valid_vote_count_result_item[ 'thirdPreferenceCount']), "percentage": f'{round(total_vote_count*100/total_valid_votes,2)}', "party_name": candidate_wise_valid_vote_count_result_item['partyName'], "candidate": candidate_wise_valid_vote_count_result_item['name'] }) ed_code, ed_name = split_area_name(electoral_district) response = { "timestamp": str(datetime.now()), "level": "ELECTORAL-DISTRICT", "ed_code": ed_code, "ed_name": ed_name, "by_party": candidates, "summary": { "valid": str(total_valid_votes), "rejected": "", "polled": "", "electors": "", "percent_valid": "", "percent_rejected": "", "percent_polled": "", } } return response, ed_code
def json_data(self): electoral_district = Area.get_associated_areas(self.submission.area, AreaTypeEnum.ElectoralDistrict)[0].areaName polling_division = self.submission.area.areaName candidate_wise_vote_count_result, total_valid_votes = TallySheetVersion.create_candidate_preference_struct( self.content) candidates = [] for candidate_wise_valid_vote_count_result_item in candidate_wise_vote_count_result: total_vote_count = candidate_wise_valid_vote_count_result_item['total'] candidates.append({ "party_code": candidate_wise_valid_vote_count_result_item['partyAbbreviation'], "votes": str(total_vote_count), "votes1st": str(candidate_wise_valid_vote_count_result_item['firstPreferenceCount']), "votes2nd": str(candidate_wise_valid_vote_count_result_item['secondPreferenceCount']), "votes3rd": str(candidate_wise_valid_vote_count_result_item['thirdPreferenceCount']), "percentage": f'{round(total_vote_count * 100 / total_valid_votes, 2)}', "party_name": candidate_wise_valid_vote_count_result_item['partyName'], "candidate": candidate_wise_valid_vote_count_result_item['name'] }) is_postal = self.submission.election.voteType == VoteTypeEnum.Postal ed_code, ed_name = split_area_name(electoral_district) if is_postal: pd_name = "Postal Votes" pd_code = ed_code + 'P' else: pd_code, pd_name = split_area_name(polling_division) pd_code = ed_code + pd_code response = { "timestamp": str(datetime.now()), "level": "POLLING-DIVISION", "ed_code": ed_code, "ed_name": ed_name, "pd_code": pd_code, "pd_name": pd_name, "by_party": candidates, "summary": { "valid": str(total_valid_votes), "rejected": "", "polled": "", "electors": "", "percent_valid": "", "percent_rejected": "", "percent_polled": "", } } return response, pd_code
def html(tallySheetId, tallySheetVersionId): tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId) if tally_sheet is None: raise NotFoundException("Tally sheet not found (tallySheetId=%d)" % tallySheetId) tally_sheet_version = TallySheetVersion.get_by_id( tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId) if tally_sheet_version is None: NotFoundException( "Tally sheet version not found (tallySheetVersionId=%d)" % tallySheetVersionId) return Response(tally_sheet_version.html(), mimetype='text/html')
def html(tallySheetId, tallySheetVersionId): tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId) if tally_sheet is None: raise NotFoundException( message="Tally sheet not found (tallySheetId=%d)" % tallySheetId, code=MESSAGE_CODE_TALLY_SHEET_NOT_FOUND) tally_sheet_version = TallySheetVersion.get_by_id( tallySheetId=tallySheetId, tallySheetVersionId=tallySheetVersionId) if tally_sheet_version is None: raise NotFoundException( message="Tally sheet version not found (tallySheetVersionId=%d)" % tallySheetVersionId, code=MESSAGE_CODE_TALLY_SHEET_VERSION_NOT_FOUND) return Response(tally_sheet.html(tallySheetVersionId=tallySheetVersionId), mimetype='text/html')
def html_letter(self): stamp = self.stamp content = { "election": { "electionName": self.submission.election.get_official_name(), "isPostal": self.submission.election.voteType == VoteTypeEnum.Postal }, "stamp": { "createdAt": stamp.createdAt, "createdBy": stamp.createdBy, "barcodeString": stamp.barcodeString }, "date": stamp.createdAt.strftime("%d/%m/%Y"), "time": stamp.createdAt.strftime("%H:%M:%S %p"), "data": [], "validVoteCounts": [0, 0], "rejectedVoteCounts": [0, 0], "totalVoteCounts": [0, 0], "registeredVoters": [ to_comma_seperated_num( self.submission.area.registeredVotersCount), 100 ], "electoralDistrict": Area.get_associated_areas( self.submission.area, AreaTypeEnum.ElectoralDistrict)[0].areaName, "pollingDivision": self.submission.area.areaName } content["data"] = TallySheetVersion.create_candidate_preference_struct( self.content) html = render_template('PRE-34-PD-LETTER.html', content=content) return html
def html_letter(self): stamp = self.stamp electoralDistrict = self.submission.area content = { "resultTitle": "Results of Electoral District %s" % electoralDistrict.areaName, "election": { "electionName": self.submission.election.get_official_name() }, "stamp": { "createdAt": stamp.createdAt, "createdBy": stamp.createdBy, "barcodeString": stamp.barcodeString }, "date": stamp.createdAt.strftime("%d/%m/%Y"), "time": stamp.createdAt.strftime("%H:%M:%S %p"), "data": [], "validVoteCounts": [0, 0], "rejectedVoteCounts": [0, 0], "totalVoteCounts": [0, 0], "registeredVoters": [ to_comma_seperated_num( self.submission.area.registeredVotersCount), 100 ], "electoralDistrict": self.submission.area.areaName } content[ "data"], total_valid_vote_count = TallySheetVersion.create_candidate_preference_struct( self.content) content["logo"] = convert_image_to_data_uri( "static/Emblem_of_Sri_Lanka.png") html = render_template('PRE_34_ALL_ISLAND_RESULTS.html', content=content) return html
def html(self): stamp = self.stamp content = { "tallySheetCode": "PRE-34-AI", "election": { "electionName": self.submission.election.get_official_name() }, "stamp": { "createdAt": stamp.createdAt, "createdBy": stamp.createdBy, "barcodeString": stamp.barcodeString }, "data": [] } content["data"] = TallySheetVersion.create_candidate_preference_struct( self.content) html = render_template('PRE-34-AI.html', content=content) return html
def notify_results(tally_sheet, tally_sheet_version_id): if tally_sheet.tallySheetCode in notify_allowed_tally_sheet_codes: tally_sheet_version = TallySheetVersion.get_by_id( tallySheetId=tally_sheet.tallySheetId, tallySheetVersionId=tally_sheet_version_id ) response, result_code = tally_sheet_version.json_data() result_dissemination_result_type = RESULT_DISSEMINATION_SYSTEM_RESULT_TYPE_VOTE # if tally_sheet.tallySheetCode in PREFERENCE_TALLY_SHEET_CODES: # result_dissemination_result_type = RESULT_DISSEMINATION_SYSTEM_RESULT_TYPE_PREF response['type'] = result_dissemination_result_type url = "%s/%s/%s/%s/%s" % ( RESULT_DISSEMINATION_SYSTEM_URL, NOTIFY_RESULTS_ENDPOINT, RESULT_DISSEMINATION_SYSTEM_ELECTION_CODE, result_dissemination_result_type, result_code ) params = { "level": get_result_level(tally_sheet), } required_params_from_response = [PARAM_ED_NAME, PARAM_PD_NAME] for required_param in required_params_from_response: if required_param in response: params[required_param] = response[required_param] print("#### RESULT_DISSEMINATION_API - Notify #### ", [url, response, params]) result = requests.post(url, verify=False, params=params) print(result.status_code, result.content) return result else: raise MethodNotAllowedException( message="Tally sheet is not allowed to be notified.", code=MESSAGE_CODE_TALLY_SHEET_NOT_ALLOWED_TO_BE_NOTIFIED )
def lock(tallySheetId, body): request_body = RequestBody(body) tallySheetVersionId = request_body.get("lockedVersionId") tally_sheet = TallySheet.get_by_id(tallySheetId=tallySheetId) if tally_sheet is None: raise NotFoundException("Tally sheet not found (tallySheetId=%d)" % tallySheetId) tally_sheet_version = TallySheetVersion.get_by_id( tallySheetVersionId=tallySheetVersionId, tallySheetId=tallySheetId) if tally_sheet_version is None: raise NotFoundException( "Tally sheet version not found (tallySheetVersionId=%d)" % tallySheetVersionId) tally_sheet.set_locked_version(tally_sheet_version) db.session.commit() return TallySheetSchema().dump(tally_sheet).data, 201
def get_all(tallySheetId): result = TallySheetVersion.get_all(tallySheetId=tallySheetId) result = get_paginated_query(result).all() return TallySheetVersionSchema(many=True).dump(result).data
def create_empty_version(self): tally_sheet_version = TallySheetVersion.create( tallySheetId=self.tallySheetId) return tally_sheet_version