-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathviews.py
executable file
·103 lines (87 loc) · 3.19 KB
/
views.py
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
from client.forms import ClientForm, AddressForm
from client.models import Client, Address
from django.http import HttpResponseRedirect, HttpResponse
from annoying.decorators import render_to
import csv
# CRUD Cliente
@render_to('index.html')
def index(request, message=''):
return {'clients': Client.objects.all(), 'message': message}
@render_to('client/profile.html')
def profile(request, id):
return {'client': Client.objects.get(id=id)}
@render_to('client/create.html')
def create_client(request):
if request.method == 'POST':
form = ClientForm(request.POST)
if form.is_valid():
c = form.save()
for i in range(2):
p = 'phone'+i.__str__()
c.phone_set.create(number=request.POST[p])
c.save()
return HttpResponseRedirect('/')
else:
form = ClientForm()
return {'form': form, 'action': '/client/', 'button': 'Salvar'}
@render_to('client/create.html')
def edit_client(request, id):
c = Client.objects.get(id=id)
if request.method == 'POST':
form = ClientForm(request.POST, instance=c)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
else:
form = ClientForm(instance=c)
return {'form': form, 'action': '/client/edit/'+id+'/', 'button': 'Editar'}
def delete_client(request, id):
Client.objects.get(id=id).delete()
return HttpResponseRedirect('/')
# CRUD Endereco
@render_to('address/list.html')
def list_addresses(request):
return {'addresses': Address.objects.all()}
@render_to('address/show.html')
def list_address(request, id):
return {'address': Address.objects.get(id=id)}
@render_to('address/create.html')
def address(request):
if request.method == 'POST':
form = AddressForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/client/')
else:
form = AddressForm()
return {'form': form, 'button': 'Criar'}
@render_to('address/create.html')
def edit_address(request, id):
a = Address.objects.get(id=id)
if request.method == 'POST':
form = AddressForm(request.POST, instance=a)
if form.is_valid():
form.save()
return HttpResponseRedirect('/client/')
else:
form = AddressForm(instance=a)
return {'form': form, 'action': '/address/edit/'+id+'/', 'button': 'Editar'}
def delete_address(request, id):
Address.objects.get(id=id).delete()
return HttpResponseRedirect('/')
# Exporting data
def export(request):
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="clientes.csv"'
writer = csv.writer(response)
clients = Client.objects.filter()
writer = csv.writer(response)
writer.writerow(['Nome', 'Sexo', 'Data de Nascimento', 'Email', 'Fones', 'CPF', 'Endereco'])
for client in clients:
name = client.name.encode('utf-8')
sex = client.sex.encode('utf-8')
email = client.email.encode('utf-8')
cpf = client.cpf.encode('utf-8')
phone = client.get_phones()
writer.writerow([name, sex, client.birthday, email, phone, cpf, client.address])
return response