lib.itmens/users/profile.py
2024-06-07 22:44:28 -04:00

54 lines
1.4 KiB
Python

from django import forms
from django.conf import settings
from django.contrib.auth.decorators import login_required
from django.http import HttpResponseRedirect
from django.shortcuts import render
from django.urls import reverse
from takahe.models import Identity as TakaheIdentity
from takahe.utils import Takahe
class ProfileForm(forms.ModelForm):
class Meta:
model = TakaheIdentity
fields = [
"name",
"summary",
"manually_approves_followers",
"discoverable",
"icon",
]
def clean_summary(self):
return Takahe.txt2html(self.cleaned_data["summary"])
@login_required
def account_info(request):
profile_form = ProfileForm(
instance=request.user.identity.takahe_identity,
initial={
"summary": Takahe.html2txt(request.user.identity.summary),
},
)
return render(
request,
"users/account.html",
{
"allow_any_site": settings.MASTODON_ALLOW_ANY_SITE,
"profile_form": profile_form,
},
)
@login_required
def account_profile(request):
if request.method == "POST":
form = ProfileForm(
request.POST, request.FILES, instance=request.user.identity.takahe_identity
)
if form.is_valid():
i = form.save()
Takahe.update_state(i, "edited")
return HttpResponseRedirect(reverse("users:info"))