Coverage for website/forms/ProfileUpdateForm.py: 89%
19 statements
« prev ^ index » next coverage.py v7.5.0, created at 2025-09-13 15:29 -0300
« prev ^ index » next coverage.py v7.5.0, created at 2025-09-13 15:29 -0300
1from django import forms
4class ProfileUpdateForm(forms.Form):
5 PROFILE_CHOICES = [
6 ("author", "Autor"),
7 ("reader", "Leitor"),
8 ]
10 profile_type = forms.ChoiceField(
11 choices=PROFILE_CHOICES, widget=forms.RadioSelect, label="Tipo de Perfil"
12 )
14 name = forms.CharField(
15 max_length=100,
16 label="Nome",
17 widget=forms.TextInput(attrs={"placeholder": "Digite seu nome"}),
18 )
20 image = forms.ImageField(
21 required=False,
22 label="Foto do Perfil",
23 widget=forms.FileInput(attrs={"accept": "image/*"}),
24 )
26 def __init__(self, user=None, *args, **kwargs):
27 super().__init__(*args, **kwargs)
29 if user:
30 # Pre-populate form if user has existing profile
31 if hasattr(user, "author"):
32 self.fields["profile_type"].initial = "author"
33 self.fields["name"].initial = user.author.author_name
34 if user.author.image:
35 self.fields["image"].initial = user.author.image
36 elif hasattr(user, "reader"):
37 self.fields["profile_type"].initial = "reader"
38 self.fields["name"].initial = user.reader.reader_name
39 if user.reader.image:
40 self.fields["image"].initial = user.reader.image