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(), })
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']), })
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, })
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")
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")
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']), })
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")
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")
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.")
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.")
def has_permission(self, *args, **kwargs): return has_perm(self.request.user, self.get_object())
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