def badges(request): _ensure_own_team(request) tags = set() for check in Check.objects.filter(user=request.team.user): tags.update(check.tags_list()) username = request.user.username urls = [] for tag in sorted(tags, key=lambda s: s.lower()): if not re.match("^[\w-]+$", tag): continue urls.append({ "svg": get_badge_url(username, tag), "json": get_badge_url(username, tag, format="json"), }) ctx = { "page": "profile", "urls": urls, "master": { "svg": get_badge_url(username, "*"), "json": get_badge_url(username, "*", format="json") } } return render(request, "accounts/badges.html", ctx)
def badges(request): badge_sets = [] for project in request.profile.projects(): tags = set() for check in Check.objects.filter(project=project): tags.update(check.tags_list()) sorted_tags = sorted(tags, key=lambda s: s.lower()) sorted_tags.append("*") # For the "overall status" badge urls = [] username = project.owner.username for tag in sorted_tags: if not re.match("^[\w-]+$", tag) and tag != "*": continue urls.append({ "svg": get_badge_url(username, tag), "json": get_badge_url(username, tag, format="json"), }) badge_sets.append({"project": project, "urls": urls}) ctx = { "page": "profile", "badges": badge_sets } return render(request, "accounts/badges.html", ctx)
def badges(request): _ensure_own_team(request) teams = [request.profile] for membership in request.user.memberships.all(): teams.append(membership.team) badge_sets = [] for team in teams: tags = set() for check in Check.objects.filter(user=team.user): tags.update(check.tags_list()) sorted_tags = sorted(tags, key=lambda s: s.lower()) sorted_tags.append("*") # For the "overall status" badge urls = [] username = team.user.username for tag in sorted_tags: if not re.match("^[\w-]+$", tag) and tag != "*": continue urls.append({ "svg": get_badge_url(username, tag), "json": get_badge_url(username, tag, format="json"), }) badge_sets.append({"team": team, "urls": urls}) ctx = {"page": "profile", "badges": badge_sets} return render(request, "accounts/badges.html", ctx)
def badges(request, code): project = _get_project_for_user(request, code) tags = set() for check in Check.objects.filter(project=project): tags.update(check.tags_list()) sorted_tags = sorted(tags, key=lambda s: s.lower()) sorted_tags.append("*") # For the "overall status" badge urls = [] for tag in sorted_tags: urls.append({ "tag": tag, "svg": get_badge_url(project.badge_key, tag), "json": get_badge_url(project.badge_key, tag, format="json"), }) ctx = { "have_tags": len(urls) > 1, "page": "badges", "project": project, "badges": urls, } return render(request, "front/badges.html", ctx)
def badges(request): profile = request.user.profile # Switch user back to its own team if request.team != profile: request.team = profile profile.current_team = profile profile.save() tags = set() for check in Check.objects.filter(user=request.team.user): tags.update(check.tags_list()) username = request.team.user.username urls = [] for tag in sorted(tags, key=lambda s: s.lower()): if not re.match("^[\w-]+$", tag): continue urls.append({ "svg": get_badge_url(username, tag), "json": get_badge_url(username, tag, format="json"), }) ctx = {"page": "profile", "urls": urls} return render(request, "accounts/badges.html", ctx)
def badges(request): profile = request.user.profile # Switch user back to its default team if profile.current_team_id != profile.id: request.team = profile profile.current_team_id = profile.id profile.save() tags = set() for check in Check.objects.filter(user=request.team.user): tags.update(check.tags_list()) username = request.team.user.username badge_urls = [] for tag in sorted(tags, key=lambda s: s.lower()): if not re.match("^[\w-]+$", tag): continue badge_urls.append(get_badge_url(username, tag)) ctx = { "page": "profile", "badge_urls": badge_urls, } return render(request, "accounts/badges.html", ctx)
def badges(request): tags = set(["*"]) for check in Check.objects.filter(project=request.project): tags.update(check.tags_list()) key = request.project.badge_key badges = {} for tag in tags: badges[tag] = { "svg": get_badge_url(key, tag), "svg3": get_badge_url(key, tag, with_late=True), "json": get_badge_url(key, tag, fmt="json"), "json3": get_badge_url(key, tag, fmt="json", with_late=True), "shields": get_badge_url(key, tag, fmt="shields"), "shields3": get_badge_url(key, tag, fmt="shields", with_late=True), } return JsonResponse({"badges": badges})
def profile(request): profile = request.user.profile # Switch user back to its default team if profile.current_team_id != profile.id: request.team = profile profile.current_team_id = profile.id profile.save() show_api_key = False if request.method == "POST": if "set_password" in request.POST: profile.send_set_password_link() return redirect("hc-set-password-link-sent") elif "create_api_key" in request.POST: profile.set_api_key() show_api_key = True messages.success(request, "The API key has been created!") elif "revoke_api_key" in request.POST: profile.api_key = "" profile.save() messages.info(request, "The API key has been revoked!") elif "show_api_key" in request.POST: show_api_key = True elif "update_reports_allowed" in request.POST: form = ReportSettingsForm(request.POST) if form.is_valid(): profile.reports_allowed = form.cleaned_data["reports_allowed"] profile.save() messages.success(request, "Your settings have been updated!") elif "invite_team_member" in request.POST: if not profile.team_access_allowed: return HttpResponseForbidden() form = InviteTeamMemberForm(request.POST) if form.is_valid(): email = form.cleaned_data["email"] try: user = User.objects.get(email=email) except User.DoesNotExist: user = _make_user(email) profile.invite(user) messages.success(request, "Invitation to %s sent!" % email) elif "remove_team_member" in request.POST: form = RemoveTeamMemberForm(request.POST) if form.is_valid(): email = form.cleaned_data["email"] farewell_user = User.objects.get(email=email) farewell_user.profile.current_team = None farewell_user.profile.save() Member.objects.filter(team=profile, user=farewell_user).delete() messages.info(request, "%s removed from team!" % email) elif "set_team_name" in request.POST: if not profile.team_access_allowed: return HttpResponseForbidden() form = TeamNameForm(request.POST) if form.is_valid(): profile.team_name = form.cleaned_data["team_name"] profile.save() messages.success(request, "Team Name updated!") tags = set() for check in Check.objects.filter(user=request.team.user): tags.update(check.tags_list()) username = request.team.user.username badge_urls = [] for tag in sorted(tags, key=lambda s: s.lower()): if not re.match("^[\w-]+$", tag): continue badge_urls.append(get_badge_url(username, tag)) ctx = { "page": "profile", "badge_urls": badge_urls, "profile": profile, "show_api_key": show_api_key } return render(request, "accounts/profile.html", ctx)