Skip to content

Commit 9c31b14

Browse files
authored
Merge pull request #13 from mastertech/improvement/phone-field
Implementa novo campo de telefone no formulario
2 parents 2b12288 + 55d4f32 commit 9c31b14

File tree

6 files changed

+53
-0
lines changed

6 files changed

+53
-0
lines changed

nisia_cadastro/form.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,3 +53,16 @@ def __init__(self, *args, **kwargs):
5353
),
5454
required = False
5555
)
56+
57+
phone = forms.CharField(
58+
max_length=15,
59+
label='Telefone',
60+
widget=forms.TextInput(
61+
attrs={
62+
'data-mask': '(00) 00000-0000',
63+
'required': True,
64+
'id': 'phone_id',
65+
'placeholder': 'TELEFONE'
66+
}
67+
)
68+
)
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# Generated by Django 2.2.3 on 2020-01-30 13:57
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('nisia_cadastro', '0003_auto_20200130_1039'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='registered',
15+
name='phone',
16+
field=models.CharField(default=1, max_length=15),
17+
preserve_default=False,
18+
),
19+
]

nisia_cadastro/models.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ class Meta:
77

88
name = models.CharField(max_length=120, verbose_name='Nome')
99
email = models.CharField(max_length=120, verbose_name='Email')
10+
phone = models.CharField(max_length=15)
11+
1012
role = models.CharField(
1113
max_length=50,
1214
choices=CHOICES_ROLE,

nisia_cadastro/static/js/demob.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,21 @@ form.onsubmit = e => {
1515
grabFormData();
1616
};
1717

18+
let telephoneField = document.querySelector('#phone_id')
19+
20+
const handleChange = e => {
21+
let newValue = e.target.value.replace(/\D/g, '')
22+
.match(/(\d{0,2})(\d{0,5})(\d{0,4})/);
23+
e.target.value = !newValue[2] ? newValue[1] :
24+
'(' + newValue[1]
25+
+ ') '
26+
+ newValue[2]
27+
+ (newValue[3] ? '-'
28+
+ newValue[3] : '');
29+
};
30+
31+
telephoneField.addEventListener('input', handleChange);
32+
1833
function getCookie(name) {
1934
let cookieValue = null;
2035
if (document.cookie) {
@@ -33,11 +48,13 @@ function getCookie(name) {
3348
function grabFormData() {
3449
let regName = document.querySelector('input[type="text"][name="name"]').value;
3550
let regEmail = document.querySelector('input[type="email"][name="email"]').value;
51+
let regPhone = document.querySelector('input[type="text"][name="phone"]').value;
3652
let regRole = document.querySelector('select[name="role"]').value;
3753
let regStory = document.querySelector('textarea[name="story"]').value;
3854
let data = {
3955
"name": regName,
4056
"email": regEmail,
57+
"phone": regPhone,
4158
"role": regRole,
4259
"story": regStory
4360
};

nisia_cadastro/templates/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -318,6 +318,7 @@ <h1 data-aos="fade-up" data-aos-duration="2000">ONDE VOCÊ ESTÁ <br> NESSE SIST
318318
{% csrf_token %}
319319
<div class="identidade__input">
320320
{{ form.name }} {{ form.email }}
321+
{{ form.phone }}
321322
</div>
322323
<div class="identidade__form__b__a">
323324
<h2> {{ form.role.label }} </h2>

nisia_cadastro/views.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ def form(request):
1616
registered_person = Registered()
1717
registered_person.name = register_form.cleaned_data['name']
1818
registered_person.email = register_form.cleaned_data['email']
19+
registered_person.phone = register_form.cleaned_data['phone']
1920
registered_person.role = register_form.cleaned_data['role']
2021
registered_person.story = register_form.cleaned_data['story']
2122
try:

0 commit comments

Comments
 (0)