/
views.py
93 lines (64 loc) · 2.45 KB
/
views.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
from django.shortcuts import render, get_object_or_404, redirect, HttpResponse
from django.views import View
from webapp.apps.users.models import Project, Profile, EmbedApproval
ABOUT_URL = "https://about.compute.studio"
class HomeView(View):
profile_template = "profile/home_base.html"
projects = Project.objects.all()
def get(self, request, *args, **kwargs):
if request.user.is_authenticated:
return render(
request,
self.profile_template,
context={"username": request.user.username, "show_readme": False},
)
return redirect(ABOUT_URL)
class ProfileView(View):
profile_template = "profile/home_base.html"
projects = Project.objects.all()
def get(self, request, *args, **kwargs):
username = kwargs["username"]
get_object_or_404(Profile, user__username__iexact=username)
return render(
request,
self.profile_template,
context={"username": request.user.username, "show_readme": False},
)
class LogView(View):
profile_template = "profile/home_base.html"
projects = Project.objects.all()
def get(self, request, *args, **kwargs):
return render(
request,
self.profile_template,
context={"username": request.user.username, "show_readme": False},
)
class AboutView(View):
def get(self, request, *args, **kwargs):
return redirect(ABOUT_URL)
class PrivacyView(View):
template = "pages/privacy.html"
def get(self, request, *args, **kwargs):
return render(request, self.template)
class TermsView(View):
template = "pages/terms.html"
def get(self, request, *args, **kwargs):
return render(request, self.template)
class DMCAView(View):
template = "pages/dmca.html"
def get(self, request, *args, **kwargs):
return render(request, self.template)
class RobotsText(View):
def get(self, request, *args, **kwargs):
lines = [
"User-Agent: *",
]
viz_projects = Project.objects.exclude(
pk__in=Project.objects.filter(tech="python-paramtools")
)
for project in viz_projects:
lines.append(f"Disallow: /{project}/viz/")
eas = EmbedApproval.objects.all()
for ea in eas:
lines.append(f"Disallow: {ea.get_absolute_url()}")
return HttpResponse("\n".join(lines), content_type="text/plain")