def setUp(self): super(BaseDebateTestCase, self).setUp() # add test models self.t = Tournament(slug="tournament") self.t.save() for i in range(4): ins = Institution(code="INS%s"%i, name="Institution %s"%i) ins.save() for j in range(3): team = Team(tournament=self.t, institution=ins, reference="Team%s%s" % (i,j)) team.save() for k in range(2): speaker = Speaker(team=team, name="Speaker%s%s%s" % (i,j,k)) speaker.save() for j in range(2): adj = Adjudicator(tournament=self.t, institution=ins, name="Adjudicator%s%s" % (i,j), test_score=0) adj.save() for i in range(8): venue = Venue(name="Venue %s" % i) venue.priority = i venue.save() venue = Venue(name="IVenue %s" % i) venue.priority = i venue.save()
def confirm_teams(request, t): sorted_post = sorted(request.POST.items()) for i in range(0, len(sorted_post) - 1, 4): # Sort through the items advancing 4 at a time instititution_id = sorted_post[i][1] team_name = sorted_post[i + 1][1] use_prefix = False if (sorted_post[i + 2][1] == "yes"): use_prefix = True speaker_names = sorted_post[i + 3][1].split(',') institution = Institution.objects.get(id=instititution_id) if team_name and speaker_names and institution: newteam = Team(institution=institution, reference=team_name, short_reference=team_name[:34], tournament=t, use_institution_prefix=use_prefix, ) newteam.save() for speaker in speaker_names: newspeaker = Speaker(name=speaker, team=newteam) newspeaker.save() confirmed = {"kind": "Teams", "quantity": int((len(sorted_post) - 1) / 4)} return render(request, 'confirmed_data.html', dict(confirmed=confirmed))
def confirm_teams(request, t): sorted_post = sorted(request.POST.items()) print(sorted_post) for i in range(0, len(sorted_post) - 1, 4): # Sort through the items advancing 4 at a time instititution_id = sorted_post[i][1] team_name = sorted_post[i + 1][1] use_prefix = False if (sorted_post[i + 2][1] == "yes"): use_prefix = True speaker_names = sorted_post[i + 3][1].split(',') institution = Institution.objects.get(id=instititution_id) if team_name and speaker_names and institution: newteam = Team(institution=institution, reference=team_name, short_reference=team_name[:34], tournament=t, use_institution_prefix=use_prefix, ) newteam.save() for speaker in speaker_names: newspeaker = Speaker(name=speaker, team=newteam) newspeaker.save() messages.success(request, "%s Teams have been added" % int((len(sorted_post) - 1) / 4)) return render(request, 'data_index.html')
def confirm_teams(request, t): sorted_post = sorted(request.POST.items()) added_teams = 0 for i in range(0, len(sorted_post) - 1, 4): # Sort through the items advancing 4 at a time instititution_id = sorted_post[i][1] team_name = sorted_post[i + 1][1] team_name = enforce_length(team_name, 'reference', Team, request) use_prefix = False if (sorted_post[i + 2][1] == "yes"): use_prefix = True speaker_names = sorted_post[i + 3][1].split(',') institution = Institution.objects.get(id=instititution_id) if team_name and speaker_names and institution: extra_reference_limit = 0 extra_short_reference_limit = 0 if use_prefix: # Team references/short_references depend on institution names extra_reference_limit = len(institution.name) extra_short_reference_limit = len(institution.code) reference = enforce_length(team_name, 'reference', Team, request, extra_limit=extra_reference_limit) short_reference = enforce_length( team_name, 'short_reference', Team, request, extra_limit=extra_short_reference_limit) newteam = Team(institution=institution, reference=reference, short_reference=short_reference, tournament=t, use_institution_prefix=use_prefix) try: newteam.save() for speaker in speaker_names: name = enforce_length(speaker, 'name', Speaker, request) newspeaker = Speaker(name=name, team=newteam) newspeaker.save() added_teams += 1 except IntegrityError: messages.error( request, "Team '%s %s' Was not saved; probably because that team already exists." % (institution, team_name)) if added_teams > 0: messages.success( request, "%s Teams have been added" % int( (len(sorted_post) - 1) / 4)) return render(request, 'old_importer/data_index.html')
def _post_clean_speakers(self): """Validates the Speaker instances that would be created.""" for i, name in enumerate(self.cleaned_data.get('speakers', [])): try: speaker = Speaker(name=name) speaker.full_clean(exclude=('team',)) except ValidationError as errors: for field, e in errors: # replace field with `speakers` self.add_error('speakers', e)
def import_speakers(self): self.speakers = {} for team in self.root.findall('participants/team'): for speaker in team.findall('speaker'): speaker_obj = Speaker( team=self.teams[team.get('id')], name=speaker.text, gender=speaker.get('gender', ''), email=speaker.get('email', '')) speaker_obj.save() self.speakers[speaker.get('id')] = speaker_obj speaker_obj.categories.set([self.speaker_categories[sc] for sc in speaker.get('categories', "").split() if sc != ""])