Shed.
This commit is contained in:
parent
8fa216c06c
commit
44dd77cec5
src/snek
@ -1,14 +1,25 @@
|
||||
from snek.system.form import Form, FormInputElement, FormButtonElement, HTMLElement
|
||||
from snek.system.form import Form, FormButtonElement, FormInputElement, HTMLElement
|
||||
|
||||
|
||||
class SettingsProfileForm(Form):
|
||||
|
||||
nick = FormInputElement(name="nick", required=True, place_holder="Your Nickname", min_length=1, max_length=20)
|
||||
nick = FormInputElement(
|
||||
name="nick",
|
||||
required=True,
|
||||
place_holder="Your Nickname",
|
||||
min_length=1,
|
||||
max_length=20,
|
||||
)
|
||||
action = FormButtonElement(
|
||||
name="action", value="submit", text="Save", type="button"
|
||||
)
|
||||
title = HTMLElement(tag="h1", text="Profile")
|
||||
profile = FormInputElement(name="profile", place_holder="Tell about yourself.", required=False,max_length=300)
|
||||
profile = FormInputElement(
|
||||
name="profile",
|
||||
place_holder="Tell about yourself.",
|
||||
required=False,
|
||||
max_length=300,
|
||||
)
|
||||
action = FormButtonElement(
|
||||
name="action", value="submit", text="Save", type="button"
|
||||
)
|
@ -1,5 +1,3 @@
|
||||
import mimetypes
|
||||
|
||||
from snek.system.model import BaseModel, ModelField
|
||||
|
||||
|
||||
@ -7,4 +5,3 @@ class UserPropertyModel(BaseModel):
|
||||
user_uid = ModelField(name="user_uid", required=True, kind=str)
|
||||
name = ModelField(name="name", required=True, kind=str)
|
||||
value = ModelField(name="path", required=True, kind=str)
|
||||
|
||||
|
@ -9,9 +9,10 @@ from snek.service.drive_item import DriveItemService
|
||||
from snek.service.notification import NotificationService
|
||||
from snek.service.socket import SocketService
|
||||
from snek.service.user import UserService
|
||||
from snek.service.user_property import UserPropertyService
|
||||
from snek.service.util import UtilService
|
||||
from snek.system.object import Object
|
||||
from snek.service.user_property import UserPropertyService
|
||||
|
||||
|
||||
@functools.cache
|
||||
def get_services(app):
|
||||
|
@ -1,6 +1,5 @@
|
||||
import pathlib
|
||||
import json
|
||||
from snek.system import security
|
||||
|
||||
from snek.system.service import BaseService
|
||||
|
||||
|
||||
@ -31,4 +30,3 @@ class UserPropertyService(BaseService):
|
||||
async for result in self.find(name={"ilike": "%" + query + "%"}, **kwargs):
|
||||
results.append(result)
|
||||
return results
|
||||
|
||||
|
@ -89,9 +89,7 @@ def set_link_target_blank(text):
|
||||
def embed_youtube(text):
|
||||
soup = BeautifulSoup(text, "html.parser")
|
||||
for element in soup.find_all("a"):
|
||||
if (
|
||||
element.attrs["href"].startswith("https://www.you")
|
||||
):
|
||||
if element.attrs["href"].startswith("https://www.you"):
|
||||
video_name = element.attrs["href"].split("/")[-1]
|
||||
if "v=" in element.attrs["href"]:
|
||||
video_name = element.attrs["href"].split("?v=")[1].split("&")[0]
|
||||
|
@ -1,8 +1,9 @@
|
||||
from snek.system.view import BaseView
|
||||
|
||||
|
||||
class SettingsIndexView(BaseView):
|
||||
|
||||
login_required = True
|
||||
|
||||
async def get(self):
|
||||
return await self.render_template('settings/index.html')
|
||||
return await self.render_template("settings/index.html")
|
||||
|
@ -1,7 +1,7 @@
|
||||
from snek.system.view import BaseView,BaseFormView
|
||||
from aiohttp import web
|
||||
|
||||
from snek.form.settings.profile import SettingsProfileForm
|
||||
from aiohttp import web
|
||||
from snek.system.view import BaseFormView
|
||||
|
||||
|
||||
class SettingsProfileView(BaseFormView):
|
||||
@ -13,12 +13,11 @@ class SettingsProfileView(BaseFormView):
|
||||
form = self.form(app=self.app)
|
||||
|
||||
if self.request.path.endswith(".json"):
|
||||
form['nick'] = self.request['user']['nick']
|
||||
form["nick"] = self.request["user"]["nick"]
|
||||
return web.json_response(await form.to_json())
|
||||
|
||||
user = await self.services.user.get(uid=self.session.get("uid"))
|
||||
|
||||
|
||||
return await self.render_template(
|
||||
"settings/profile.html", {"form": await form.to_json(), "user": user}
|
||||
)
|
||||
@ -28,9 +27,8 @@ class SettingsProfileView(BaseFormView):
|
||||
form.set_user_data(post["form"])
|
||||
|
||||
if await form.is_valid:
|
||||
user = self.request['user']
|
||||
user = self.request["user"]
|
||||
user["nick"] = form["nick"]
|
||||
await self.services.user.save(user)
|
||||
return {"redirect_url": "/settings/profile.html"}
|
||||
return {"is_valid": False}
|
||||
|
||||
|
@ -1,8 +1,7 @@
|
||||
import logging
|
||||
import pathlib
|
||||
import asyncio
|
||||
|
||||
logging.basicConfig(level=logging.DEBUG)
|
||||
from app.cache import time_cache,time_cache_async
|
||||
import base64
|
||||
import datetime
|
||||
import mimetypes
|
||||
@ -13,8 +12,10 @@ import uuid
|
||||
import aiofiles
|
||||
import aiohttp
|
||||
import aiohttp.web
|
||||
from app.cache import time_cache_async
|
||||
from lxml import etree
|
||||
|
||||
|
||||
@aiohttp.web.middleware
|
||||
async def debug_middleware(request, handler):
|
||||
print(request.method, request.path, request.headers)
|
||||
@ -26,6 +27,7 @@ async def debug_middleware(request, handler):
|
||||
pass
|
||||
return result
|
||||
|
||||
|
||||
class WebdavApplication(aiohttp.web.Application):
|
||||
def __init__(self, parent, *args, **kwargs):
|
||||
middlewares = [debug_middleware]
|
||||
@ -196,7 +198,6 @@ class WebdavApplication(aiohttp.web.Application):
|
||||
total_size += await self.get_file_size(str(fp))
|
||||
return total_size
|
||||
|
||||
|
||||
@time_cache_async(30)
|
||||
async def get_disk_free_space(self, path="/"):
|
||||
loop = self.parent.loop
|
||||
|
Loading…
Reference in New Issue
Block a user