41 lines
1.2 KiB
Python
Raw Normal View History

2025-04-09 15:12:34 +02:00
from aiohttp import web
2025-04-03 08:35:25 +02:00
from snek.form.settings.profile import SettingsProfileForm
2025-04-09 15:12:34 +02:00
from snek.system.view import BaseFormView
2025-04-03 08:35:25 +02:00
class SettingsProfileView(BaseFormView):
form = SettingsProfileForm
login_required = True
async def get(self):
form = self.form(app=self.app)
2025-04-09 15:12:34 +02:00
2025-04-03 08:35:25 +02:00
if self.request.path.endswith(".json"):
2025-04-09 15:12:34 +02:00
form["nick"] = self.request["user"]["nick"]
2025-04-13 23:31:52 +02:00
2025-04-09 15:12:34 +02:00
return web.json_response(await form.to_json())
2025-04-03 08:35:25 +02:00
2025-04-13 23:31:52 +02:00
profile = await self.services.user_property.get(self.session.get("uid"), "profile")
2025-04-09 15:12:34 +02:00
user = await self.services.user.get(uid=self.session.get("uid"))
2025-04-03 08:35:25 +02:00
return await self.render_template(
2025-04-13 23:31:52 +02:00
"settings/profile.html", {"form": await form.to_json(), "user": user, "profile": profile or ''}
2025-04-03 08:35:25 +02:00
)
2025-04-13 23:31:52 +02:00
async def post(self):
data = await self.request.post()
user = await self.services.user.get(uid=self.session.get("uid"))
2025-04-14 23:00:05 +02:00
2025-04-13 23:31:52 +02:00
user['nick'] = data['nick']
await self.services.user.save(user)
2025-04-14 23:00:05 +02:00
await self.services.user_property.set(user["uid"],"profile", data['profile'])
2025-04-13 23:31:52 +02:00
return web.HTTPFound("/settings/profile.html")
2025-04-03 08:35:25 +02:00