def get_context(self, request: WSGIRequest): context = get_discord_context(request=request) challenges = Challenge.objects.all() context["monthly_challenges"] = [ challenge for challenge in challenges if challenge.type == "MO" and challenge.posted and not challenge.ended ] context["weekly_challenges"] = [ challenge for challenge in challenges if challenge.type == "WE" and challenge.posted and not challenge.ended ] context["unreleased_challenges"] = { "monthly_challenges": [], "weekly_challenges": [] } context["ended_challenges"] = {"MO": [], "WE": []} for challenge in challenges: if challenge.type == "WE" and not challenge.posted: context["unreleased_challenges"]["weekly_challenges"].append( challenge) if challenge.type == "MO" and not challenge.posted: context["unreleased_challenges"]["monthly_challenges"].append( challenge) if challenge.ended: # TODO : Someone pls create view for ended challenges context["ended_challenges"][challenge.type].append(challenge) context["challenges"] = any( (context["monthly_challenges"], context["weekly_challenges"], context["unreleased_challenges"]["weekly_challenges"], context["unreleased_challenges"]["monthly_challenges"])) return context
def get(request: WSGIRequest) -> HttpResponse: if not request.user.is_authenticated: messages.add_message(request, messages.INFO, 'You are already logged out!', extra_tags='alert alert-primary') return redirect('/') return render(request=request, template_name="challenges/logout.html", context=get_discord_context(request=request))
def get_context(self, request: WSGIRequest, team_ID) -> dict: context = get_discord_context(request) if not context["is_verified"]: return context team = get_object_or_404(Team, ID=team_ID) # Team.objects.get(ID=team_ID) members = team.members.all() discord_members = [] for member in members: new_member = {} try: user = SocialAccount.objects.get(user_id=member.id) except SocialAccount.DoesNotExist: pass else: new_member["user_id"] = user.uid avatar_url = user.get_avatar_url() if avatar_url.endswith("None.png"): random = randint(0, 4) avatar_url = ( f"https://cdn.discordapp.com/embed/avatars/{random}.png" ) new_member["avatar_url"] = avatar_url new_member["username"] = user.extra_data["username"] new_member["discriminator"] = user.extra_data["discriminator"] discord_members.append(new_member) team.discord_members = discord_members print(team) context["team"] = team context["challenge"] = team.challenge if team.submitted: try: context["submission"] = Submission.objects.get( team=team, challenge=team.challenge) except: pass print(context["challenge"].submissions_status) context["invite"] = request.build_absolute_uri( location=f"/timathon/member/{team.invite}") return context
def get(request: WSGIRequest, challenge_id: int) -> HttpResponse: if not request.user.is_authenticated: messages.add_message(request, messages.INFO, 'You are not logged in!') return redirect('/') challenges = Challenge.objects.filter(id=challenge_id) print(len(challenges)) if not len(challenges): return redirect('/') context = get_discord_context(request=request) context["challenge"] = challenges[0] if not challenges[0].posted: if not discord.is_staff(member_id=context["user_id"]): messages.add_message( request, messages.INFO, "You do not have permission to view that!") return redirect('/') return render(request=request, template_name="challenges/view.html", context=context)
def get_context(self, request: WSGIRequest) -> dict: return get_discord_context(request=request)
def get_context(self, request: WSGIRequest): context = get_discord_context(request=request) return context
def get_context(self, request: WSGIRequest): context = get_discord_context(request=request) # challenges = Challenge.objects.all() challenges = Challenge.objects.filter(type="MO", posted=True) context["challenges"] = challenges try: current_challenge = Challenge.objects.get(type="MO", posted=True, ended=False) except: current_challenge = None context["current_challenge"] = current_challenge """ context['challenges'] = \ [challenge for challenge in challenges if challenge.type == Challenge.ChallengeType.MONTHLY] context['current_challenge'] = [challenge for challenge in challenges if challenge.type == Challenge.ChallengeType.MONTHLY and not challenge.ended] context['current_challenge'] = context['current_challenge'][0] or None """ if context["current_challenge"]: old_teams = list( Team.objects.filter(challenge=context["current_challenge"])) user_teams = list( Team.objects.filter(challenge=context["current_challenge"], members=request.user)) if not len(user_teams) == 0: old_teams.remove(user_teams[0]) old_teams.insert(0, user_teams[0]) teams = [] is_in_team = False for team in old_teams: members = team.members.all() discord_members = [] for member in members: new_member = {} if member.id == request.user.id: is_in_team = True try: user = SocialAccount.objects.get(user_id=member.id) except SocialAccount.DoesNotExist: pass else: new_member["user_id"] = user.uid avatar_url = user.get_avatar_url() if avatar_url.endswith("None.png"): random = randint(0, 4) avatar_url = ( f"https://cdn.discordapp.com/embed/avatars/{random}.png" ) new_member["avatar_url"] = avatar_url new_member["username"] = user.extra_data["username"] new_member["discriminator"] = user.extra_data[ "discriminator"] discord_members.append(new_member) team.discord_members = discord_members teams.append(team) context["in_team"] = is_in_team context["teams"] = teams paginator = Paginator(context["teams"], 24) page_number = request.GET.get("page") page_obj = paginator.get_page(page_number) context["page_obj"] = page_obj context["teams_registered"] = len( list( Team.objects.filter( challenge=context["current_challenge"]))) return context
def get(request: WSGIRequest) -> HttpResponse: return render( request=request, template_name="challenges/test.html", context=get_discord_context(request=request), )