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
104
105
106
107
108
109
110
111
112
113
114
115
|
from random import randint
from django.contrib.auth.models import Group, Permission, User
from client.models import UserCode, Keys, DocumentType, Document, PersonalData, KeyVal
from django.db.models import Q
from django.http import HttpResponseRedirect
from django.shortcuts import render
# Create your views here.
def index(request):
context = {}
if (request.user.is_authenticated):
users = UserCode.objects.filter(user=request.user)
code = None
if (len(users) == 0):
while (True):
code = randint(100000, 999999)
if len(UserCode.objects.filter(code=code)) == 0:
break
userCode = UserCode(user=request.user, code=code)
userCode.save()
documents = Document.objects.filter(Q(user=request.user) & ~Q(status='archive'))
out = []
for i in documents:
out.append([i, KeyVal.objects.filter(container=i)])
context = {
"docs": out,
"empty": len(out) == 0,
}
return render(request, 'client/index.html', context)
def approve(request):
context = {}
if not (request.user.is_staff or request.user.has_perm('approved')):
usercode = UserCode.objects.filter(user=request.user)[0]
okay = False
if request.user.first_name != "" and request.user.last_name != "" and request.user.email != "" and len(request.user.groups.values_list('name', flat=True)) != 0:
okay = True
context = {'code': 'U' + str(usercode.code), 'okay': okay}
return render(request, 'client/approve.html', context)
else:
return render(request, 'client/index.html', context)
def create(request):
context = {}
if request.user.is_authenticated:
parent_group = request.user.groups.values_list('name', flat=True)[
0]
group = Group.objects.get(name=parent_group)
doctypes = DocumentType.objects.filter(
(Q(group_private=False) | Q(group=group)) & Q(enabled=True))
out = []
for doc in doctypes:
if len(Document.objects.filter(Q(user=request.user) & Q(document_type=doc))) == 0:
out.append(doc)
context = {'docs': out}
if request.method == "POST":
if request.POST["action"] == "details":
if "doctype" not in request.POST.keys():
context['error'] = True
context['error_text'] = "Seleziona un documento"
else:
context['next'] = True
document_type = DocumentType.objects.get(
id=request.POST["doctype"])
context['doctype'] = document_type
context['personal_data'] = document_type.personal_data
context['medical_data'] = document_type.medical_data
context['custom_data'] = document_type.custom_data
keys = Keys.objects.filter(container=document_type)
out_keys = []
for i in keys:
out_keys.append([i, ""])
context['keys'] = out_keys
context['custom_message'] = document_type.custom_message
context['custom_message_text'] = document_type.custom_message_text
elif request.POST["action"] == "save":
usercode = UserCode.objects.filter(user=request.user)[0]
code = 0
status = "wait"
personal_data = None
document_type = DocumentType.objects.get(
id=request.POST["doctype"])
keys = []
if document_type.personal_data:
personal_data = PersonalData(parent_name=usercode.parent_name, via=usercode.via, cap=usercode.cap, country=usercode.country,
nationality=usercode.nationality, born_date=usercode.born_date, home_phone=usercode.home_phone, phone=usercode.phone)
personal_data.save()
while (True):
code = randint(100000, 999999)
if len(Document.objects.filter(code=code)) == 0:
break
document = Document(
user=request.user, group=group, code=code, status=status, document_type=document_type, personal_data=personal_data)
document.save()
for i in request.POST.keys():
if i == "doctype" or i=="csrfmiddlewaretoken" or i=="action":
continue
key = KeyVal(container=document, key=Keys.objects.get(id=i).key, value=request.POST[i])
key.save()
return HttpResponseRedirect('/')
return render(request, 'client/doc_create.html', context)
else:
return render(request, 'client/index.html', context)
|