format files with black

This commit is contained in:
Aarni Halinen
2022-01-13 22:10:24 +02:00
parent a0f062c697
commit 11efcdd579
178 changed files with 3763 additions and 2324 deletions
+104 -59
View File
@@ -16,7 +16,12 @@ from rest_framework.response import Response
from rest_framework.viewsets import ModelViewSet, ReadOnlyModelViewSet
from rest_framework.filters import OrderingFilter, SearchFilter
from rest_framework.decorators import action
from rest_framework.permissions import IsAuthenticatedOrReadOnly, BasePermission, AllowAny, IsAuthenticated
from rest_framework.permissions import (
IsAuthenticatedOrReadOnly,
BasePermission,
AllowAny,
IsAuthenticated,
)
from jsonschema import validate
from jsonschema.exceptions import ValidationError
@@ -26,9 +31,8 @@ from webapp.utils import admin_send_email_signupees, decode_base64_file
class SignupPermission(BasePermission):
def has_permission(self, request, view):
if request.method == 'POST':
if request.method == "POST":
return True
return request.user and request.user.is_authenticated
@@ -44,44 +48,64 @@ class EventViewSet(ModelViewSet):
serializer_class = EventSerializer
permission_classes = [IsAuthenticatedOrReadOnly]
filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
filter_fields = ('id', 'tags', 'visible', 'signupForm')
search_fields = ('id', 'tags', 'visible', 'signupForm')
filter_fields = ("id", "tags", "visible", "signupForm")
search_fields = ("id", "tags", "visible", "signupForm")
def get_queryset(self):
# TODO: For create and update, this return old data in signupForm field (prefetched)...
if self.request.user.is_authenticated or \
self.request.method == 'POST' or \
self.request.method == 'PUT':
if (
self.request.user.is_authenticated
or self.request.method == "POST"
or self.request.method == "PUT"
):
return Event.objects.filter(deleted=False).prefetch_related(
Prefetch('signupForm', queryset=SignupForm.objects.filter(deleted=False), to_attr='filtered_signup_forms')
Prefetch(
"signupForm",
queryset=SignupForm.objects.filter(deleted=False),
to_attr="filtered_signup_forms",
)
)
since = self.request.query_params.get('since', None)
since = self.request.query_params.get("since", None)
if since:
return Event.objects.filter(deleted=False, visible=True, end_time__gt=since).order_by('start_time').prefetch_related(
Prefetch('signupForm', queryset=SignupForm.objects.filter(deleted=False, visible=True), to_attr='filtered_signup_forms')
return (
Event.objects.filter(deleted=False, visible=True, end_time__gt=since)
.order_by("start_time")
.prefetch_related(
Prefetch(
"signupForm",
queryset=SignupForm.objects.filter(deleted=False, visible=True),
to_attr="filtered_signup_forms",
)
)
)
return (
Event.objects.filter(
deleted=False, visible=True, end_time__gt=timezone.now()
)
.order_by("start_time")
.prefetch_related(
Prefetch(
"signupForm",
queryset=SignupForm.objects.filter(deleted=False, visible=True),
to_attr="filtered_signup_forms",
)
)
return Event.objects.filter(deleted=False, visible=True, end_time__gt=timezone.now()).order_by('start_time').prefetch_related(
Prefetch('signupForm', queryset=SignupForm.objects.filter(deleted=False, visible=True), to_attr='filtered_signup_forms')
)
def create(self, request, *args, **kwargs):
raw_image = request.data.get("image", None)
if raw_image is not None:
image = decode_base64_file(raw_image)
request.data.update({
"image": image
})
request.data.update({"image": image})
return super().create(request, *args, **kwargs)
def update(self, request, *args, **kwargs):
raw_image = request.data.get("image", None)
if raw_image is not None:
image = decode_base64_file(raw_image)
request.data.update({
"image": image
})
request.data.update({"image": image})
return super().update(request, *args, **kwargs)
def destroy(self, request, pk=None, *args, **kwargs):
@@ -112,8 +136,10 @@ class SignupFormViewSet(ModelViewSet):
def get_queryset(self):
if self.request.user.is_authenticated:
return SignupForm.objects.filter(deleted=False).order_by('start_time')
return SignupForm.objects.filter(deleted=False, visible=True).order_by('start_time')
return SignupForm.objects.filter(deleted=False).order_by("start_time")
return SignupForm.objects.filter(deleted=False, visible=True).order_by(
"start_time"
)
def destroy(self, request, pk=None, *args, **kwargs):
try:
@@ -122,33 +148,39 @@ class SignupFormViewSet(ModelViewSet):
form.save()
return JsonResponse(status=200, data={"message": "OK"})
except ObjectDoesNotExist:
return JsonResponse(status=404, data={"error": f"SignupForm {pk} not found"})
return JsonResponse(
status=404, data={"error": f"SignupForm {pk} not found"}
)
@action(detail=True, methods=['post'], permission_classes=[IsAuthenticated])
@action(detail=True, methods=["post"], permission_classes=[IsAuthenticated])
def sendemail(self, request, pk=None, *args, **kwargs):
subject = request.data["subject"]
content = request.data["content"]
mode = request.data["mode"]
queryset = self.filter_queryset(self.get_queryset())
filter = {'pk': pk}
filter = {"pk": pk}
signupForm = get_object_or_404(queryset, **filter)
if (mode == "all"):
if mode == "all":
admin_send_email_signupees(signupForm.signups, subject, content)
return JsonResponse(status=201, data={"message": "Email sent"})
elif (mode == "actual"):
admin_send_email_signupees(signupForm.signups[:signupForm.quota], subject, content)
elif mode == "actual":
admin_send_email_signupees(
signupForm.signups[: signupForm.quota], subject, content
)
return JsonResponse(status=201, data={"message": "Email sent"})
elif (mode == "reserved"):
admin_send_email_signupees(signupForm.signups[signupForm.quota:], subject, content)
elif mode == "reserved":
admin_send_email_signupees(
signupForm.signups[signupForm.quota :], subject, content
)
return JsonResponse(status=201, data={"message": "Email sent"})
else:
return JsonResponse(status=400, data={"error": f"Bad mode '{mode}'"})
@action(detail=True, methods=['get'], permission_classes=[IsAuthenticated])
@action(detail=True, methods=["get"], permission_classes=[IsAuthenticated])
def signups(self, request, pk=None, *args, **kwargs):
queryset = self.filter_queryset(self.get_queryset())
filter = {'pk': pk}
filter = {"pk": pk}
signupForm = get_object_or_404(queryset, **filter)
return Response(SignupSerializer(signupForm.signups, many=True).data)
@@ -158,15 +190,15 @@ class SignupViewSet(ModelViewSet):
serializer_class = SignupSerializer
permission_classes = [SignupPermission]
@action(detail=True, methods=['get', 'put'], permission_classes=[AllowAny])
@action(detail=True, methods=["get", "put"], permission_classes=[AllowAny])
def edit(self, request, pk=None, *args, **kwargs):
uuid = request.query_params.get("uuid", None)
queryset = self.filter_queryset(self.get_queryset())
filter = {'pk': pk, 'uuid': uuid}
filter = {"pk": pk, "uuid": uuid}
get_object_or_404(queryset, **filter)
if request.method == 'GET':
if request.method == "GET":
return self.retrieve(request, *args, **kwargs)
elif request.method == 'PUT':
elif request.method == "PUT":
return self.partial_update(request, *args, **kwargs)
def create(self, request, *args, **kwargs):
@@ -174,16 +206,20 @@ class SignupViewSet(ModelViewSet):
try:
answer = request.data["answer"]
form = SignupForm.objects.get(id=id)
if (form.isOpen):
if form.isOpen:
# Throws ValidationError if not valid
validate(instance=answer, schema=form.schema)
return super().create(request, *args, **kwargs)
except ValidationError as inst:
return JsonResponse(status=400, data={"error": inst.message})
except ObjectDoesNotExist:
return JsonResponse(status=404, data={"error": f"SignupForm {id} not found"})
return JsonResponse(
status=404, data={"error": f"SignupForm {id} not found"}
)
else:
return JsonResponse(status=404, data={"error": f"SignupForm {id} not found"})
return JsonResponse(
status=404, data={"error": f"SignupForm {id} not found"}
)
def partial_update(self, request, pk=None, *args, **kwargs):
try:
@@ -193,16 +229,20 @@ class SignupViewSet(ModelViewSet):
answer = request.data["answer"]
form = SignupForm.objects.get(id=signup.signupForm_id)
if (form.visible):
if form.visible:
# Throws ValidationError if not valid
validate(instance=answer, schema=form.schema)
return super().partial_update(request, *args, **kwargs)
except ValidationError as inst:
return JsonResponse(status=400, data={"error": inst.message})
except ObjectDoesNotExist:
return JsonResponse(status=404, data={"error": f"SignupForm {id} not found"})
return JsonResponse(
status=404, data={"error": f"SignupForm {id} not found"}
)
else:
return JsonResponse(status=404, data={"error": f"SignupForm {id} not found"})
return JsonResponse(
status=404, data={"error": f"SignupForm {id} not found"}
)
def destroy(self, request, pk=None, *args, **kwargs):
try:
@@ -226,7 +266,9 @@ class SavedQuestionsViewSet(ModelViewSet):
question.save()
return JsonResponse(status=200, data={"message": "OK"})
except ObjectDoesNotExist:
return JsonResponse(status=404, data={"error": f"Template question {pk} not found"})
return JsonResponse(
status=404, data={"error": f"Template question {pk} not found"}
)
class FeedViewSet(ModelViewSet):
@@ -234,14 +276,16 @@ class FeedViewSet(ModelViewSet):
serializer_class = FeedSerializer
permission_classes = [IsAuthenticatedOrReadOnly]
filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
filter_fields = ('id', 'tags', 'visible')
search_fields = ('id', 'tags', 'visible')
filter_fields = ("id", "tags", "visible")
search_fields = ("id", "tags", "visible")
def get_queryset(self):
if self.request.user.is_authenticated:
return Feed.objects.filter(deleted=False).order_by('-publish_time')
return Feed.objects.filter(deleted=False).order_by("-publish_time")
else:
objs = Feed.objects.filter(deleted=False, visible=True).order_by('-publish_time')
objs = Feed.objects.filter(deleted=False, visible=True).order_by(
"-publish_time"
)
# TODO: Bad filtering. Rewrite!
result_ids = []
@@ -252,7 +296,7 @@ class FeedViewSet(ModelViewSet):
else:
result_ids.append(obj.id)
return Feed.objects.filter(id__in=result_ids).order_by('-publish_time')
return Feed.objects.filter(id__in=result_ids).order_by("-publish_time")
def destroy(self, request, pk=None, *args, **kwargs):
try:
@@ -278,7 +322,9 @@ class JobAdViewSet(ModelViewSet):
def get_queryset(self):
if self.request.user.is_authenticated:
return JobAd.objects.filter(deleted=False)
return JobAd.objects.filter(deleted=False, visible=True, autohide_at__gt=timezone.now())
return JobAd.objects.filter(
deleted=False, visible=True, autohide_at__gt=timezone.now()
)
def destroy(self, request, pk=None, *args, **kwargs):
try:
@@ -298,17 +344,16 @@ def about_view(request, *args, **kwargs):
latest_tag = "Not found"
try:
repo = git.init_repo()
latest_commit = repo.git("rev-parse HEAD").decode('utf-8')
latest_date = repo.git("show -s --format=%ci " + latest_commit).decode('utf-8')
latest_tag = repo.git("describe --tags " + repo.git("rev-list --tags --max-count=1").decode('utf-8')).decode('utf-8')
latest_commit = repo.git("rev-parse HEAD").decode("utf-8")
latest_date = repo.git("show -s --format=%ci " + latest_commit).decode("utf-8")
latest_tag = repo.git(
"describe --tags "
+ repo.git("rev-list --tags --max-count=1").decode("utf-8")
).decode("utf-8")
except Exception as e:
print(f"Git failed:\n{e}")
context = {
'commit': latest_commit,
'date': latest_date,
'tag': latest_tag
}
context = {"commit": latest_commit, "date": latest_date, "tag": latest_tag}
return render(request, "about.html", context)
@@ -321,7 +366,7 @@ def nginx_jwt_resp(request, *args, **kwargs):
token = decode(cookie, settings.SECRET_KEY)
except InvalidSignatureError:
return HttpResponse("", status=403)
user = 'admin' if token.get('username', '') == 'admin' else 'moderator'
user = "admin" if token.get("username", "") == "admin" else "moderator"
resp = HttpResponse("", status=200)
resp['X-FBrowser-User'] = user
resp["X-FBrowser-User"] = user
return resp