Example #1
0
def host(request, host_id=None):
    """Get list of plugin's categories."""
    H = get_object_or_404(Host.objects.filter(id=host_id))
    if not has_perm(request.user, Host, host_id):
        raise Http404
    return render(request, 'hosttree/host.html', {
        'host': H.get_categories(),
    }) 
Example #2
0
def category(request, host_id):
    """Get list of plugins of a category."""
    H = get_object_or_404(Host.objects.filter(id=host_id))
    if not has_perm(request.user, Host, host_id):
        raise Http404
    return render(request, 'hosttree/category.html', {
        'category': H.get_plugins_by_category(request.GET['category']),
    }) 
Example #3
0
def host(request, host_id=None):
    """Get list of plugin's categories."""
    H = get_object_or_404(Host.objects.filter(id=host_id))
    if not has_perm(request.user, Host, host_id):
        raise Http404
    return render(request, 'hosttree/host.html', {
        'host': H.get_categories(),
    })
Example #4
0
def group(request, group_id=None):
    """Get list of Hosts from a Group."""
    Hs = get_list_or_404(Host, group__id=group_id)
    if not has_perm(request.user, Group, group_id):
        raise Http404
    return render(request, 'hosttree/group.html', {
        'group': Hs,
    }) 
Example #5
0
def group(request, group_id=None):
    """Get list of Hosts from a Group."""
    Hs = get_list_or_404(Host, group__id=group_id)
    if not has_perm(request.user, Group, group_id):
        raise Http404
    return render(request, 'hosttree/group.html', {
        'group': Hs,
    })
Example #6
0
def get_data(request, host_id, plugin):
    """Get JSON data from a plugin."""
    H = get_object_or_404(Host.objects.filter(id=host_id))
    if not has_perm(request.user, Host, host_id):
        raise Http404

    data = {'plugin':plugin, 'res':request.GET.get('res','Daily')}
    r = H.get_extended_data(**data)
    return HttpResponse(jdumps(r), content_type="application/json")
Example #7
0
def get_data(request, host_id, plugin):
    """Get JSON data from a plugin."""
    H = get_object_or_404(Host.objects.filter(id=host_id))
    if not has_perm(request.user, Host, host_id):
        raise Http404

    data = {'plugin': plugin, 'res': request.GET.get('res', 'Daily')}
    r = H.get_extended_data(**data)
    return HttpResponse(jdumps(r), content_type="application/json")
Example #8
0
def category(request, host_id):
    """Get list of plugins of a category."""
    H = get_object_or_404(Host.objects.filter(id=host_id))
    if not has_perm(request.user, Host, host_id):
        raise Http404
    return render(
        request, 'hosttree/category.html', {
            'category': H.get_plugins_by_category(request.GET['category']),
        })
Example #9
0
def category(request, host_id):
    """Get list of plugins of a category."""
    # H = get_object_or_404(Host.objects.filter(id=host_id))
    H = [{'plugin': plugin['Plugin'], 'title': plugin['Title']} for plugin in get_object_or_404(Host.objects.filter(id=host_id)).get_plugins_by_category(request.GET['category'])]
    if not has_perm(request.user, Host, host_id):
        raise Http404
    # return render(request, 'hosttree/category.html', {
    #     'category': H.get_plugins_by_category(request.GET['category']),
    # }) 
    return HttpResponse(jdumps(H), content_type="application/json")
Example #10
0
def host(request, host_id=None):
    """Get list of plugin's categories."""
    H = get_object_or_404(Host.objects.filter(id=host_id))
    if not has_perm(request.user, Host, host_id):
        raise Http404
    # return render(request, 'hosttree/host.html', {
    #     'host': H.get_categories(),
    # }) 

    return HttpResponse(jdumps(H.get_categories()), content_type="application/json")
Example #11
0
    def test_user_perm(self):
        """Simple user can only access to his group."""
        r = has_perm(self.user, Group, '1')
        self.assertTrue(r, "User hasn't perms.")
        r = has_perm(self.user, Group, '2')
        self.assertFalse(r, "User has bad perms.")
        r = has_perm(self.user, Group, None)
        self.assertFalse(r, "User has bad perms.")

        r = has_perm(self.user, Host, '1')
        self.assertTrue(r, "User can't access to his group's hosts.")
        r = has_perm(self.user, Host, '2')
        self.assertFalse(r, "Simple user can access to others group's Host")
        r = has_perm(self.user, Host, '3')
        self.assertFalse(r, "Simple user can access to not grouped host.")
Example #12
0
    def test_superuser_perm(self):
        """Superuser has all access."""
        r = has_perm(self.admin, Group, '1')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Group, '2')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Group, None)
        self.assertTrue(r, "Superuser hasn't perms.")

        r = has_perm(self.admin, Host, '1')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Host, '2')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Host, '3')
        self.assertTrue(r, "Superuser hasn't perms.")
Example #13
0
    def test_user_perm(self):
        """Simple user can only access to his group."""
        r = has_perm(self.user, Group, '1')
        self.assertTrue(r, "User hasn't perms.")
        r = has_perm(self.user, Group, '2')
        self.assertFalse(r, "User has bad perms.")
        r = has_perm(self.user, Group, None)
        self.assertFalse(r, "User has bad perms.")

        r = has_perm(self.user, Host, '1')
        self.assertTrue(r, "User can't access to his group's hosts.")
        r = has_perm(self.user, Host, '2')
        self.assertFalse(r, "Simple user can access to others group's Host")
        r = has_perm(self.user, Host, '3')
        self.assertFalse(r, "Simple user can access to not grouped host.")
Example #14
0
    def test_superuser_perm(self):
        """Superuser has all access."""
        r = has_perm(self.admin, Group, '1')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Group, '2')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Group, None)
        self.assertTrue(r, "Superuser hasn't perms.")

        r = has_perm(self.admin, Host, '1')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Host, '2')
        self.assertTrue(r, "Superuser hasn't perms.")
        r = has_perm(self.admin, Host, '3')
        self.assertTrue(r, "Superuser hasn't perms.")
Example #15
0
 def has_permission(self, *args, **kwargs):
     return has_perm(self.request.user, self.get_object())
Example #16
0
    def get_context_data(self, *args, **kwargs):
        context = super().get_context_data(*args, **kwargs)

        tournaments = []

        tournaments = [result.tournament \
                       for result in TeamResult.objects.filter(
                               team__debaters=self.object
                       ).all()]
        tournaments += [result.tournament \
                        for result in self.object.speaker_results.all()]

        if 'all' in self.request.GET:
            for team in self.object.teams.all():
                tournaments += [round.tournament for round in team.govs.all()]
                tournaments += [round.tournament for round in team.opps.all()]

        tournaments = list(set(tournaments))

        seasons = [tournament.season for tournament in tournaments]
        seasons = list(set(seasons))

        seasons.sort(key=lambda season: season, reverse=True)
        current_season = settings.CURRENT_SEASON

        if not len(seasons) == 0:
            current_season = self.request.GET.get('season', seasons[0])

        if current_season == '':
            current_season = seasons[0]

        seasons = [season \
                   for season in settings.SEASONS if season[0] in seasons]

        seasons.sort(key=lambda season: season[0], reverse=True)

        context['seasons'] = seasons

        context['current_season'] = current_season

        tournaments = [tournament \
                       for tournament in tournaments if tournament.season == current_season]

        tournaments.sort(key=lambda tournament: tournament.date)

        tournament_render = []

        for tournament in tournaments:
            to_add = {}
            to_add['tournament'] = tournament
            to_append = []

            to_append += [('team', result) \
                          for result in TeamResult.objects.filter(
                                  team__debaters=self.object
                          ).filter(
                              tournament=tournament
                          ).order_by('-type_of_place').all()]
            to_append += [('speaker', result) \
                          for result in self.object.speaker_results.filter(
                                  tournament=tournament
                          ).order_by('-type_of_place').all()]

            team_result = TeamResult.objects.filter(
                team__debaters=self.object
            ).filter(
                tournament=tournament
            ).first()

            gov_round = Round.objects.filter(
                gov__debaters=self.object
            ).filter(
                tournament=tournament
            )

            opp_round = Round.objects.filter(
                opp__debaters=self.object
            ).filter(
                tournament=tournament
            )

            # THIS IS WHERE YOU HAVE TO CHANGE THINGS #
            team = None if not team_result else team_result.team

            if not team and (gov_round.exists() or opp_round.exists()):
                if gov_round.exists():
                    team = gov_round.first().gov
                else:
                    team = opp_round.first().opp

            to_add['team'] = team
            to_add['data'] = to_append
            to_add['tab_card'] = get_tab_card_data(team, tournament)

            tournament_render.append(to_add)

        context['results'] = tournament_render        

        context['totys'] = TOTY.objects.filter(
            team__debaters=self.object
        ).order_by(
            'place',
            'season'
        )

        context['sotys'] = self.object.soty.order_by(
            'place',
            'season'
        )

        context['notys'] = self.object.noty.order_by(
            'place',
            'season'
        )

        teams = [team for team in self.object.teams.all()]
        teams.sort(key=lambda team: (num_distinct_tournaments(team), team.toty_points), reverse=True)

        context['teams'] = teams

        context['videos'] = []
        context['videos'] += list(self.object.pm_videos.all())
        context['videos'] += list(self.object.lo_videos.all())
        context['videos'] += list(self.object.mg_videos.all())
        context['videos'] += list(self.object.mo_videos.all())

        context['videos'] = [video for video in context['videos']
                             if has_perm(self.request.user, video)]

        return context