Skip to content

Commit 1c9d0dc

Browse files
committed
Migrace na lepsi system views
Signed-off-by: Kosieh Barter <[email protected]>
1 parent 965a9b7 commit 1c9d0dc

File tree

3 files changed

+252
-1
lines changed

3 files changed

+252
-1
lines changed

apps/web/views/car.py

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
from django.views.generic import DetailView
2+
from django.shortcuts import render
3+
4+
from .. import forms
5+
from .. import models
6+
7+
8+
class Car(DetailView):
9+
header = "Car Management page"
10+
11+
model = None
12+
owner = None
13+
name = None
14+
color = None
15+
16+
air_conditioning = False
17+
animals_allowed = False
18+
has_wifi = False
19+
has_highway_sign = False
20+
smoking_allowed = False
21+
22+
register_sign = None
23+
reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\
24+
to enter your national car sign. Hovever, if\
25+
you fill it, you will make it easier for\
26+
passengers to find you.")
27+
28+
form = forms.CarManageForm()
29+
model = models.Vehicle
30+
31+
def get(self, request):
32+
return render(request, 'web/cars.html', {"form": self.form,
33+
"header": self.header,
34+
"reg_notice": self.reg_notice,
35+
"cars": self.model})
36+
37+
"""class Car(DetailView):
38+
header = "Car Management page"
39+
40+
model = None
41+
owner = None
42+
name = None
43+
color = None
44+
45+
air_conditioning = False
46+
animals_allowed = False
47+
has_wifi = False
48+
has_highway_sign = False
49+
smoking_allowed = False
50+
51+
register_sign = None
52+
reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\
53+
to enter your national car sign. Hovever, if\
54+
you fill it, you will make it easier for\
55+
passengers to find you.")
56+
57+
form = forms.CarManageForm()
58+
inp_method = None
59+
message = None
60+
61+
def get(self, request):
62+
self.model = models.Vehicle.objects.filter(owner=request.user)
63+
print (self.model)
64+
return render(request, 'web/cars.html', {"form": self.form,
65+
"car_list": self.model,
66+
"message": self.message,
67+
"reg_notice": self.reg_notice,
68+
"header": self.header})
69+
70+
def post(self, request):
71+
self.inp_method = request.POST.get('method')
72+
if self.inp_method == 'add_vehicle':
73+
return self._add_car(request)
74+
elif self.inp_method == 'remove_vehicle':
75+
return self._delete_car(request)
76+
else:
77+
return HttpResponse("UNKOWN ERROR WITH DATABASE.")
78+
79+
def _delete_car(self, in_request):
80+
self.owner = in_request.user
81+
remove_id = in_request.POST.get('car_id')
82+
models.Vehicle.objects.filter(owner = self.owner, id = remove_id).delete()
83+
return HttpResponseRedirect(".")
84+
85+
def _add_car(self, in_request):
86+
self.owner = in_request.user
87+
self.name = in_request.POST.get('car_name')
88+
self.color = in_request.POST.get('color')
89+
90+
self.air_conditioning = in_request.POST.get('air_conditioning', False)
91+
self.animals_allowed = in_request.POST.get('animals_allowed', False)
92+
self.has_wifi = in_request.POST.get('has_wifi', False)
93+
self.has_highway_sign = in_request.POST.get('has_highway_sign', False)
94+
self.smoking_allowed = in_request.POST.get('smoking_allowed', False)
95+
96+
self.register_sign = in_request.POST.get('register_sign')
97+
return self._check_required()
98+
99+
def _check_required(self):
100+
if self.name and self.color:
101+
new_car = models.Vehicle(owner=self.owner, name=self.name,
102+
color=self.color, register=self.register_sign,
103+
air_conditioning=self.air_conditioning,
104+
animals_allowed=self.animals_allowed,
105+
wifi_on_board=self.has_wifi,
106+
smoking_allowed=self.smoking_allowed,
107+
highway_mark=self.has_highway_sign)
108+
new_car.save()
109+
return HttpResponseRedirect(".")
110+
else:
111+
return HttpResponse("FAILED TO SAVE, MISSING DATA!")
112+
"""

apps/web/views/journey.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
21
from django.shortcuts import render
32
from django.views.generic import ListView, DetailView, TemplateView, RedirectView, CreateView, UpdateView
43
from django.views.generic.edit import FormView
@@ -244,6 +243,15 @@ class WaypointNotFound(Exception):
244243

245244
class JourneyList(ListView, FormView):
246245

246+
from django.views.generic import ListView, DetailView
247+
from pprint import pprint
248+
249+
# Import forms
250+
from .. import forms
251+
# Import models
252+
from .. import models
253+
254+
247255
model = models.Journey
248256
form_class = forms.SearchJourney
249257
success_url = '/' # TODO: replace by generic URL of this page

apps/web/views/user.py

Lines changed: 131 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,138 @@
11
from django.views.generic import DetailView
2+
from django.contrib.auth import login, logout, authenticate
3+
from emailusernames.utils import create_user, get_user
4+
from django.shortcuts import render
5+
from django.http import HttpResponse, HttpResponseRedirect
26

37
# FIXME: Really, really ugly!
48
from .. import models
9+
from .. import forms
10+
11+
12+
def logout_user(request):
13+
logout(request)
14+
return HttpResponseRedirect('../../') ## TODO: OPRAVIT, vyvaruj se absolutnim adresam
15+
16+
17+
class UserSettings(DetailView):
18+
header = "User control panel"
19+
form = forms.ManageForm
20+
21+
def get(self, request):
22+
return render(request, 'web/settings.html', {"form": self.form,
23+
"header": self.header})
24+
def post(self, request):
25+
password
26+
27+
28+
class LoginScreen(DetailView):
29+
"""
30+
Allows user to login into the system.
31+
"""
32+
header = "Login"
33+
34+
name = None
35+
password = None
36+
login_form = forms.LoginForm()
37+
redirect_bool = False
38+
info_text = None
39+
40+
user = None
41+
42+
def get(self, request):
43+
return render(request, 'web/login_screen.html', {"form": self.login_form,
44+
"header": self.header})
45+
46+
def post(self, request):
47+
self.name = request.POST['name']
48+
self.password = request.POST['password']
49+
self._check_credentials()
50+
print (self.name, self.password)
51+
52+
if self.user:
53+
login(request, self.user)
54+
return HttpResponseRedirect('../../')
55+
else:
56+
return HttpResponse("INVALID CREDENTIALS!")
57+
58+
def _check_credentials(self):
59+
if self.name and self.password:
60+
self.user = authenticate(email=self.name,
61+
password=self.password)
62+
else:
63+
return HttpResponse("MISSING CREDENTIALS!")
64+
65+
66+
class RegisterScreen(DetailView):
67+
header = "User Registration"
68+
69+
mail = None
70+
mail_confirm = None
71+
password = None
72+
password_confirm = None
73+
register_form = forms.RegisterForm()
74+
75+
correct_day = None
76+
asked_day = None
77+
78+
question_ok = False
79+
exists = False
80+
81+
correct_details = {}
82+
83+
request = None
84+
85+
def get(self, request):
86+
return render(request, 'web/register.html', {"form": self.register_form,
87+
"header": self.header})
88+
89+
def post(self, request):
90+
self.correct_day = self.register_form.correct_day
91+
self.request = request
92+
93+
self._post_get_details()
94+
self._check_security_question()
95+
self._check_details()
96+
self._check_existing_user()
97+
98+
if self.exists:
99+
return HttpResponse("ERROR: USER ALREADY EXISTS!")
100+
else:
101+
new_user = create_user(email = self.mail, password = self.password)
102+
new_user.save()
103+
return HttpResponse("SUCCESS: USER CREATED")
104+
105+
def _post_get_details(self):
106+
self.mail = self.request.POST['email']
107+
self.mail_confirm = self.request.POST['email_confirm']
108+
self.password = self.request.POST['password']
109+
self.password_confirm = self.request.POST['password_confirm']
110+
111+
self.asked_day = self.request.POST['random_antibot']
112+
113+
def _check_security_question(self):
114+
self.correct_day = self.register_form.correct_day
115+
if self.correct_day == self.asked_day:
116+
self.question_ok = True
117+
else:
118+
return HttpResponse("ERROR: INVALID CONTROL ANSWER!")
119+
120+
def _check_details(self):
121+
self.correct_details.update({"correct_name": self.mail == self.mail_confirm})
122+
self.correct_details.update({"correct_password": self.password == self.password_confirm})
123+
124+
if False in self.correct_details:
125+
return HttpResponse("ERROR: Some data you entered does not match")
126+
127+
128+
def _check_existing_user(self):
129+
test_auth = authenticate(username = self.mail,
130+
password = self.password,
131+
email = self.mail)
132+
if test_auth:
133+
self.exists = True
134+
else:
135+
self.exists = False
5136

6137

7138
class UserDetail(DetailView):

0 commit comments

Comments
 (0)