This commit is contained in:
Administrator
2023-09-23 16:13:11 +03:00
commit 9e7fc7b4c1
605 changed files with 78660 additions and 0 deletions

6
web/views/__init__.py Normal file
View File

@@ -0,0 +1,6 @@
from .welcome import WelcomeView
from .projects import ProjectsView
from .select_project import SelectProject
from .profile import ProfileView
from .profile_photo import ProfilePhoto
from .logout import LogoutView

12
web/views/logout.py Normal file
View File

@@ -0,0 +1,12 @@
from django.contrib.auth import logout
from BaseLib.BaseView import BaseView
class LogoutView(BaseView):
required_login = True
endpoint = 'logout'
def get(self):
logout(self.request)
return '/welcome'

24
web/views/profile.py Normal file
View File

@@ -0,0 +1,24 @@
from django.contrib.auth import login
from BaseLib.BaseView import BaseView
from BaseLib.minio import minio_client
class ProfileView(BaseView):
required_login = True
endpoint = 'profile'
view_file = 'profile.html'
def get(self):
self.context['owner'] = not hasattr(self, 'customUser') or self.customUser == self.request.user
self.context['account'] = getattr(self, 'customUser', None) or self.request.user
def post_upload_photo(self):
minio_client.put_object(self.request.FILES["file"].read(), f"profile_photos/{self.request.user.id}")
return self
def post_change_password(self):
self.request.user.set_password(self.request.POST['password'])
self.request.user.save()
login(self.request, self.request.user)
return self

View File

@@ -0,0 +1,17 @@
from django.http import HttpResponse
from BaseLib.BaseView import BaseView
from BaseLib.minio import minio_client
class ProfilePhoto(BaseView):
required_login = True
endpoint = "profile_photo"
def get(self):
profile_photo_bytes = minio_client.get_object(f"profile_photos/{self.request.GET['id']}")
if profile_photo_bytes == b"":
profile_photo_bytes = open("content/empty_profile_photo.jpg", "rb").read()
return HttpResponse(
profile_photo_bytes, content_type="image/jpg"
)

7
web/views/projects.py Normal file
View File

@@ -0,0 +1,7 @@
from BaseLib.BaseView import BaseView
class ProjectsView(BaseView):
required_login = True
endpoint = ''
view_file = 'projects.html'

View File

@@ -0,0 +1,11 @@
from BaseLib.BaseView import BaseView
class SelectProject(BaseView):
required_login = True
endpoint = 'select_project'
def get(self):
self.request.user.selected_project = self.project
self.request.user.save()
return '/'

18
web/views/welcome.py Normal file
View File

@@ -0,0 +1,18 @@
from django.contrib.auth import authenticate, login
from BaseLib.BaseView import BaseView
class WelcomeView(BaseView):
required_login = False
endpoint = 'welcome'
view_file = 'welcome.html'
def post(self):
username = self.request.POST['username']
password = self.request.POST['password']
user = authenticate(username=username, password=password)
if user is None:
return self
login(self.request, user)
return '/'