-
Notifications
You must be signed in to change notification settings - Fork 103
Expand file tree
/
Copy pathforms.py
More file actions
61 lines (51 loc) · 1.76 KB
/
forms.py
File metadata and controls
61 lines (51 loc) · 1.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
from django import forms
from django_summernote.widgets import SummernoteInplaceWidget
from django.utils.translation import gettext_lazy as _
from urllib.parse import urlparse
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Div, ButtonHolder, Layout, Submit
from .models import Company, UserCompanyProfile
class CompanyForm(forms.ModelForm):
"""A PyAr companies form."""
description = forms.CharField(widget=SummernoteInplaceWidget())
link = forms.CharField(
help_text=_('Por favor, ingrese una URL válida con esquema (por ejemplo, https://).')
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.layout = Layout(
Div(
'name',
'photo',
'link',
'description'
),
ButtonHolder(
Submit(_('Guardar'), _('Guardar'), css_class='btn btn-default')
)
)
def clean_link(self):
link = self.cleaned_data.get('link')
if link and not urlparse(link).scheme:
link = f'https://{link}'
return link
class Meta:
fields = ['name', 'photo', 'link', 'description']
model = Company
class UserCompanyForm(forms.ModelForm):
"""A PyAr user companies form."""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.layout = Layout(
Div(
'user'
),
ButtonHolder(
Submit(_('Guardar'), _('Guardar'), css_class='btn btn-default')
)
)
class Meta:
fields = ['user']
model = UserCompanyProfile