endpoints
This commit is contained in:
parent
07a04af473
commit
255a364c34
@ -7,6 +7,7 @@ from SprintLib.utils import delete_file, write_bytes
|
|||||||
class AccountView(BaseView):
|
class AccountView(BaseView):
|
||||||
view_file = "account.html"
|
view_file = "account.html"
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "account"
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
if "username" in self.request.GET.keys():
|
if "username" in self.request.GET.keys():
|
||||||
|
@ -4,3 +4,4 @@ from SprintLib.BaseView import BaseView
|
|||||||
class EnterView(BaseView):
|
class EnterView(BaseView):
|
||||||
view_file = "enter.html"
|
view_file = "enter.html"
|
||||||
required_login = False
|
required_login = False
|
||||||
|
endpoint = "enter"
|
||||||
|
@ -5,6 +5,7 @@ from SprintLib.BaseView import BaseView
|
|||||||
|
|
||||||
class ExitView(BaseView):
|
class ExitView(BaseView):
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "exit"
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
logout(self.request)
|
logout(self.request)
|
||||||
|
@ -5,5 +5,6 @@ from SprintLib.utils import get_bytes
|
|||||||
|
|
||||||
|
|
||||||
class ImageView(BaseView):
|
class ImageView(BaseView):
|
||||||
|
endpoint = "image"
|
||||||
def get(self):
|
def get(self):
|
||||||
return HttpResponse(get_bytes(int(self.request.GET['id'])), content_type="image/jpg")
|
return HttpResponse(get_bytes(int(self.request.GET['id'])), content_type="image/jpg")
|
||||||
|
@ -4,3 +4,4 @@ from SprintLib.BaseView import BaseView
|
|||||||
class MainView(BaseView):
|
class MainView(BaseView):
|
||||||
view_file = "main.html"
|
view_file = "main.html"
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = ""
|
||||||
|
@ -6,6 +6,7 @@ from SprintLib.BaseView import BaseView
|
|||||||
class RatingView(BaseView):
|
class RatingView(BaseView):
|
||||||
view_file = "rating.html"
|
view_file = "rating.html"
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "rating"
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
self.context["users"] = User.objects.filter(userinfo__verified=True).order_by(
|
self.context["users"] = User.objects.filter(userinfo__verified=True).order_by(
|
||||||
|
@ -7,6 +7,7 @@ from random import randrange
|
|||||||
|
|
||||||
|
|
||||||
class SendCodeView(BaseView):
|
class SendCodeView(BaseView):
|
||||||
|
endpoint = "send_code"
|
||||||
def post_create(self):
|
def post_create(self):
|
||||||
username = self.request.POST["username"]
|
username = self.request.POST["username"]
|
||||||
user = User.objects.filter(username=username).first()
|
user = User.objects.filter(username=username).first()
|
||||||
|
@ -4,3 +4,4 @@ from SprintLib.BaseView import BaseView
|
|||||||
class SetSettingsView(BaseView):
|
class SetSettingsView(BaseView):
|
||||||
required_login = True
|
required_login = True
|
||||||
view_file = 'set_settings.html'
|
view_file = 'set_settings.html'
|
||||||
|
endpoint = "admin/set"
|
@ -5,6 +5,7 @@ from SprintLib.BaseView import BaseView
|
|||||||
class SetsView(BaseView):
|
class SetsView(BaseView):
|
||||||
view_file = "sets.html"
|
view_file = "sets.html"
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "sets"
|
||||||
|
|
||||||
def post(self):
|
def post(self):
|
||||||
set_name = self.request.POST["name"]
|
set_name = self.request.POST["name"]
|
||||||
|
@ -4,6 +4,7 @@ from SprintLib.BaseView import BaseView, AccessError
|
|||||||
class SolutionView(BaseView):
|
class SolutionView(BaseView):
|
||||||
view_file = 'solution.html'
|
view_file = 'solution.html'
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "solution"
|
||||||
|
|
||||||
def pre_handle(self):
|
def pre_handle(self):
|
||||||
if self.request.user.is_superuser:
|
if self.request.user.is_superuser:
|
||||||
|
@ -8,6 +8,7 @@ from SprintLib.BaseView import BaseView
|
|||||||
class SolutionsTableView(BaseView):
|
class SolutionsTableView(BaseView):
|
||||||
view_file = 'solutions_table.html'
|
view_file = 'solutions_table.html'
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "solutions_table"
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
self.context['solutions'] = Solution.objects.filter(
|
self.context['solutions'] = Solution.objects.filter(
|
||||||
|
@ -7,6 +7,7 @@ from SprintLib.BaseView import BaseView
|
|||||||
class TaskRuntimeView(BaseView):
|
class TaskRuntimeView(BaseView):
|
||||||
view_file = 'task_runtime.html'
|
view_file = 'task_runtime.html'
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "task_runtime"
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
progress = Progress.objects.get(task=self.entities.task, user=self.request.user)
|
progress = Progress.objects.get(task=self.entities.task, user=self.request.user)
|
||||||
|
@ -8,6 +8,7 @@ from SprintLib.BaseView import BaseView, AccessError
|
|||||||
class TaskSettingsView(BaseView):
|
class TaskSettingsView(BaseView):
|
||||||
view_file = "task_settings.html"
|
view_file = "task_settings.html"
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "admin/task"
|
||||||
|
|
||||||
def pre_handle(self):
|
def pre_handle(self):
|
||||||
if self.entities.task not in self.request.user.userinfo.available_tasks:
|
if self.entities.task not in self.request.user.userinfo.available_tasks:
|
||||||
|
@ -10,6 +10,7 @@ from SprintLib.utils import write_bytes
|
|||||||
class TaskView(BaseView):
|
class TaskView(BaseView):
|
||||||
required_login = True
|
required_login = True
|
||||||
view_file = "task.html"
|
view_file = "task.html"
|
||||||
|
endpoint = "task"
|
||||||
|
|
||||||
def get(self):
|
def get(self):
|
||||||
progress, _ = Progress.objects.get_or_create(
|
progress, _ = Progress.objects.get_or_create(
|
||||||
|
@ -5,6 +5,7 @@ from SprintLib.BaseView import BaseView
|
|||||||
class TasksView(BaseView):
|
class TasksView(BaseView):
|
||||||
view_file = "tasks.html"
|
view_file = "tasks.html"
|
||||||
required_login = True
|
required_login = True
|
||||||
|
endpoint = "tasks"
|
||||||
|
|
||||||
def post(self):
|
def post(self):
|
||||||
task_name = self.request.POST["name"]
|
task_name = self.request.POST["name"]
|
||||||
|
@ -1,23 +1,15 @@
|
|||||||
from django.contrib import admin
|
from django.contrib import admin
|
||||||
from django.urls import path
|
from django.urls import path
|
||||||
|
|
||||||
|
import Main.views
|
||||||
from Main.views import *
|
from Main.views import *
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [path("admin/", admin.site.urls)]
|
||||||
path("enter", EnterView.as_view()),
|
|
||||||
path("rating", RatingView.as_view()),
|
for v in dir(Main.views):
|
||||||
path("tasks", TasksView.as_view()),
|
try:
|
||||||
path("account", AccountView.as_view()),
|
view = eval(v)
|
||||||
path("exit", ExitView.as_view()),
|
except NameError:
|
||||||
path("admin/task", TaskSettingsView.as_view()),
|
continue
|
||||||
path("admin/set", SetSettingsView.as_view()),
|
if hasattr(view, 'endpoint') and view.endpoint is not None:
|
||||||
path("sets", SetsView.as_view()),
|
urlpatterns.append(path(view.endpoint, view.as_view()))
|
||||||
path("task", TaskView.as_view()),
|
|
||||||
path("solution", SolutionView.as_view()),
|
|
||||||
path("solutions_table", SolutionsTableView.as_view()),
|
|
||||||
path("task_runtime", TaskRuntimeView.as_view()),
|
|
||||||
path("image", ImageView.as_view()),
|
|
||||||
path("send_code", SendCodeView.as_view()),
|
|
||||||
path("", MainView.as_view()),
|
|
||||||
path("admin/", admin.site.urls),
|
|
||||||
]
|
|
||||||
|
@ -19,6 +19,7 @@ class BaseView:
|
|||||||
entities = EntityStorage()
|
entities = EntityStorage()
|
||||||
required_login: Optional[bool] = None
|
required_login: Optional[bool] = None
|
||||||
view_file: Optional[str] = None
|
view_file: Optional[str] = None
|
||||||
|
endpoint: Optional[str] = None
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def as_view(cls):
|
def as_view(cls):
|
||||||
|
Loading…
Reference in New Issue
Block a user