def get_yn(self): while True: yn = get_input() if yn.lower() == 'y': return True elif yn.lower() == 'n': return False
def get_candidate_ix(self, num_candidates): while True: ix = get_input() try: ix = int(ix) except ValueError: continue if 0 <= ix <= num_candidates: return ix
def handle_concession(self, concession): self.stdout.write('~' * 10) self.stdout.write('Unreconciled concession:') self.stdout.write(u' drug: {}'.format(concession.drug)) self.stdout.write(u' pack size: {}'.format(concession.pack_size)) while True: self.stdout.write('') self.stdout.write('Enter search term (case insensitive):') q = get_input() self.stdout.write('') candidates = VMPP.objects.filter(nm__icontains=q).order_by('nm') num_candidates = candidates.count() if num_candidates == 0: self.stdout.write('Found no matching VMPPs') continue elif num_candidates == 1: self.stdout.write('Found 1 matching VMPP') else: self.stdout.write( 'Found {} matching VMPPs'.format(num_candidates)) for ix, candidate in enumerate(candidates): self.stdout.write('{:>3}. {}'.format(ix + 1, candidate.nm)) self.stdout.write('') self.stdout.write( 'Enter number of matching VMPP, or 0 to search again:') candidate_ix = self.get_candidate_ix(num_candidates) if candidate_ix == 0: continue candidate = candidates[candidate_ix - 1] self.stdout.write('Matching against:') self.stdout.write(' {}'.format(candidate.nm)) self.stdout.write('') self.stdout.write('Please confirm [yN]:') if self.get_yn(): break concession.vmpp = candidate concession.save()
def handle_concession(self, concession): self.stdout.write("~" * 10) self.stdout.write("Unreconciled concession:") self.stdout.write(" drug: {}".format(concession.drug)) self.stdout.write(" pack size: {}".format(concession.pack_size)) while True: self.stdout.write("") self.stdout.write("Enter search term (case insensitive):") q = get_input() self.stdout.write("") candidates = VMPP.objects.filter(nm__icontains=q).order_by("nm") num_candidates = candidates.count() if num_candidates == 0: self.stdout.write("Found no matching VMPPs") continue elif num_candidates == 1: self.stdout.write("Found 1 matching VMPP") else: self.stdout.write( "Found {} matching VMPPs".format(num_candidates)) for ix, candidate in enumerate(candidates): self.stdout.write("{:>3}. {}".format(ix + 1, candidate.nm)) self.stdout.write("") self.stdout.write( "Enter number of matching VMPP, or 0 to search again:") candidate_ix = self.get_candidate_ix(num_candidates) if candidate_ix == 0: continue candidate = candidates[candidate_ix - 1] self.stdout.write("Matching against:") self.stdout.write(" {}".format(candidate.nm)) self.stdout.write("") self.stdout.write("Please confirm [yN]:") if self.get_yn(): break concession.vmpp = candidate concession.save()