コード例 #1
0
ファイル: tests.py プロジェクト: BenMusch/tabbycat
    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()
コード例 #2
0
ファイル: views.py プロジェクト: BenMusch/tabbycat
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))
コード例 #3
0
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')
コード例 #4
0
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')
コード例 #5
0
 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)
コード例 #6
0
ファイル: forms.py プロジェクト: czlee/tabbycat
 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)
コード例 #7
0
ファイル: archive.py プロジェクト: tienne-B/tabbycat
    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 != ""])