Update.
This commit is contained in:
parent
8ae9aac045
commit
bee7d828cd
src/snek
@ -7,7 +7,7 @@ class UserPropertyService(BaseService):
|
|||||||
mapper_name = "user_property"
|
mapper_name = "user_property"
|
||||||
|
|
||||||
async def set(self, user_uid, name, value):
|
async def set(self, user_uid, name, value):
|
||||||
prop = await self.get(user_uid=user_uid, name=name)
|
prop = await super().get(user_uid=user_uid, name=name)
|
||||||
if not prop:
|
if not prop:
|
||||||
prop = await self.new()
|
prop = await self.new()
|
||||||
prop["user_uid"] = user_uid
|
prop["user_uid"] = user_uid
|
||||||
@ -18,8 +18,9 @@ class UserPropertyService(BaseService):
|
|||||||
|
|
||||||
async def get(self, user_uid, name):
|
async def get(self, user_uid, name):
|
||||||
try:
|
try:
|
||||||
return json.loads((await self.get(user_uid=user_uid, name=name)).value)
|
return json.loads((await super().get(user_uid=user_uid, name=name))["value"])
|
||||||
except:
|
except Exception as ex:
|
||||||
|
print(ex)
|
||||||
return None
|
return None
|
||||||
|
|
||||||
async def search(self, query, **kwargs):
|
async def search(self, query, **kwargs):
|
||||||
|
@ -4,16 +4,22 @@
|
|||||||
|
|
||||||
{% block main %}
|
{% block main %}
|
||||||
<section>
|
<section>
|
||||||
<form>
|
<form method="post">
|
||||||
<h2>Nickname</h2>
|
<h2>Nickname</h2>
|
||||||
|
|
||||||
<input type="text" name="nick" placeholder="Your nickname" value="{{ user.nick.value }}" />
|
<input type="text" name="nick" placeholder="Your nickname" value="{{ user.nick.value }}" />
|
||||||
|
|
||||||
</form>
|
|
||||||
<h2>Description</h2>
|
<h2>Description</h2>
|
||||||
|
|
||||||
|
<textarea name="profile" id="profile">{{profile}}</textarea>
|
||||||
|
|
||||||
|
|
||||||
|
<input type="submit" name="action" value="Save" />
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<textarea id="profile"></textarea>
|
|
||||||
</section>
|
</section>
|
||||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.css">
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.css">
|
||||||
<script src="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/easymde/dist/easymde.min.js"></script>
|
||||||
|
@ -15,4 +15,7 @@ from snek.system.view import BaseView
|
|||||||
|
|
||||||
class IndexView(BaseView):
|
class IndexView(BaseView):
|
||||||
async def get(self):
|
async def get(self):
|
||||||
|
if self.session.get("uid"):
|
||||||
|
return web.HTTPFound("/web.html")
|
||||||
|
|
||||||
return await self.render_template("index.html")
|
return await self.render_template("index.html")
|
||||||
|
@ -14,21 +14,26 @@ class SettingsProfileView(BaseFormView):
|
|||||||
|
|
||||||
if self.request.path.endswith(".json"):
|
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())
|
return web.json_response(await form.to_json())
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
profile = await self.services.user_property.get(self.session.get("uid"), "profile")
|
||||||
|
|
||||||
user = await self.services.user.get(uid=self.session.get("uid"))
|
user = await self.services.user.get(uid=self.session.get("uid"))
|
||||||
|
|
||||||
return await self.render_template(
|
return await self.render_template(
|
||||||
"settings/profile.html", {"form": await form.to_json(), "user": user}
|
"settings/profile.html", {"form": await form.to_json(), "user": user, "profile": profile or ''}
|
||||||
)
|
)
|
||||||
|
|
||||||
async def submit(self, form):
|
async def post(self):
|
||||||
post = await self.request.json()
|
data = await self.request.post()
|
||||||
form.set_user_data(post["form"])
|
user = await self.services.user.get(uid=self.session.get("uid"))
|
||||||
|
user['nick'] = data['nick']
|
||||||
|
await self.services.user.save(user)
|
||||||
|
await self.services.user_property.set(self.request["user"]["uid"],"profile", data['profile'])
|
||||||
|
return web.HTTPFound("/settings/profile.html")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
if await form.is_valid:
|
|
||||||
user = self.request["user"]
|
|
||||||
user["nick"] = form["nick"]
|
|
||||||
await self.services.user.save(user)
|
|
||||||
return {"redirect_url": "/settings/profile.html"}
|
|
||||||
return {"is_valid": False}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user