From 579885cd2437046335e4cffb3b5c10a01d070eb1 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 21 Feb 2016 11:37:58 +0100 Subject: [PATCH 01/37] Pridany drafty na login, loga a CSS CSS zalozeno na stylu blog.jizdoteka.cz Signed-off-by: Kosieh Barter --- apps/web/templates/draft.css | 9 +++ apps/web/templates/draft_jizdoteka.svg | 81 +++++++++++++++++++++++ apps/web/templates/draft_jizdoteka_2.svg | 81 +++++++++++++++++++++++ apps/web/templates/draft_jizdoteka_3.svg | 82 ++++++++++++++++++++++++ apps/web/templates/draft_jizdoteka_4.svg | 82 ++++++++++++++++++++++++ apps/web/templates/draft_login.html | 29 +++++++++ 6 files changed, 364 insertions(+) create mode 100644 apps/web/templates/draft.css create mode 100644 apps/web/templates/draft_jizdoteka.svg create mode 100644 apps/web/templates/draft_jizdoteka_2.svg create mode 100644 apps/web/templates/draft_jizdoteka_3.svg create mode 100644 apps/web/templates/draft_jizdoteka_4.svg create mode 100644 apps/web/templates/draft_login.html diff --git a/apps/web/templates/draft.css b/apps/web/templates/draft.css new file mode 100644 index 0000000..f099430 --- /dev/null +++ b/apps/web/templates/draft.css @@ -0,0 +1,9 @@ +body { background: black; padding: 0px; margin: 0 auto; max-width: 1280px; font-family: arial;} +h1 { margin: 0px; padding: 5px; text-align: right; color: white;} +h4 { padding: 10px; margin: 0px; text-align: center;} +p { padding: 4px; margin: 2px;border: 1px solid black; border-radius: 10px;} +input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } +div { background: #4b9320; } + +#prechod {background: linear-gradient(#4b9320, #80e400);} +#stranka {background: #80e400;} diff --git a/apps/web/templates/draft_jizdoteka.svg b/apps/web/templates/draft_jizdoteka.svg new file mode 100644 index 0000000..e1d358b --- /dev/null +++ b/apps/web/templates/draft_jizdoteka.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_jizdoteka_2.svg b/apps/web/templates/draft_jizdoteka_2.svg new file mode 100644 index 0000000..04b5dab --- /dev/null +++ b/apps/web/templates/draft_jizdoteka_2.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_jizdoteka_3.svg b/apps/web/templates/draft_jizdoteka_3.svg new file mode 100644 index 0000000..63a9249 --- /dev/null +++ b/apps/web/templates/draft_jizdoteka_3.svg @@ -0,0 +1,82 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_jizdoteka_4.svg b/apps/web/templates/draft_jizdoteka_4.svg new file mode 100644 index 0000000..11797d6 --- /dev/null +++ b/apps/web/templates/draft_jizdoteka_4.svg @@ -0,0 +1,82 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_login.html b/apps/web/templates/draft_login.html new file mode 100644 index 0000000..2667eb7 --- /dev/null +++ b/apps/web/templates/draft_login.html @@ -0,0 +1,29 @@ + + + + Jizdoteka - Draft + + + + + + + +
+

Jizdoteka.cz

+

Přihlášení

+
+
+ + + +

+ Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. +

+
+
+
+ + From c46bfc297a913c7ff5ac83a7ab423d61597680d9 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 21 Feb 2016 11:47:12 +0100 Subject: [PATCH 02/37] Proveden squash Puvodni: Predelan styl Pridan formular pro registraci a sjednocen styl a Signed-off-by: Kosieh Barter Pridan formular pro vytvoreni spolujizdy Zahrnuta i moznost pravidelne spolujizdy, jednorazova prednastavena Signed-off-by: Kosieh Barter Pridany moznosti spolujizdy Pridano pole na poznamky a select pro menu ceny. Signed-off-by: Kosieh Barter Pridan formular pro pridani vozidla Poznamka: SPZ vozidla je volitelny opt-in. Dobrovolne Signed-off-by: Kosieh Barter Pridan styl pro info, pozn a dalsi Informace Poznamka Tlacitka - unifikovane Prechody WIP: Vyber barvy - ten je zatim v HTML5 Signed-off-by: Kosieh Barter Pridano info Signed-off-by: Kosieh Barter Pridany info po updatu CSS Signed-off-by: Kosieh Barter Pridany checkboxy - WIP Signed-off-by: Kosieh Barter Draft pro uziv panel Zatim pouze email Signed-off-by: Kosieh Barter Zprehledneni formulare Signed-off-by: Kosieh Barter Draft pro hlavni stranku Signed-off-by: Kosieh Barter Pridan draft pro registraci a index Signed-off-by: Kosieh Barter Port draftu na Django HTML Signed-off-by: Kosieh Barter Pridan model pro vozidla Signed-off-by: Kosieh Barter Upraven half-page vypis pro seznam Signed-off-by: Kosieh Barter Pridan draft na spravu vozidel Signed-off-by: Kosieh Barter Makemigrations na vozidlech Signed-off-by: Kosieh Barter Opraven __str__ Signed-off-by: Kosieh Barter Pridan model do admin rozhrani Signed-off-by: Kosieh Barter Pridan atribut pro vlastnika vozidla Signed-off-by: Kosieh Barter Opraven owner_id na owner Signed-off-by: Kosieh Barter Pridan login vcetne kontroly a podpora pro nej Kumulativni update, obsahuje login a logout, upraveno a pridana podpora pro prihlaseni. Zname chyby: pri redirectu zobrazuje co redirectuje, mozna chovani pri zapnutem flagu debug=True Signed-off-by: Kosieh Barter Jednotny styl - mobilni verze webu Signed-off-by: Kosieh Barter Opraven link rel na ikonu, nacita ze static Signed-off-by: Kosieh Barter Pridany odkazy Login, logout, uziv panel a reigstraci Signed-off-by: Kosieh Barter Jednoduchy login screen, bez chybovych hlasek Signed-off-by: Kosieh Barter Single-page logout odkaz Presmeruje na index.html Signed-off-by: Kosieh Barter Pridan login, logout, user_mgmt a registrace Zatim vse v navrhu, funkcni login, logout registrace: WIP, uzivatelsky panel: WIP Signed-off-by: Kosieh Barter Pridany URL Na: registrace, logout, uzivatelsky panel a login Signed-off-by: Kosieh Barter Pridany definice formularu Poznamka: v HTML se zobrazuje jako odstavec s labelem Signed-off-by: Kosieh Barter Pridan WIP na registraci uzivatele Signed-off-by: Kosieh Barter Page na upravu uzivatelskych dat Dekorator: vyzaduje prihlaseni, pozor, nefunguje, jak ma Signed-off-by: Kosieh Barter Napad: jednotne HTML na chybove zpravy Signed-off-by: Kosieh Barter Navrh pro vyhledavani spolujizd POZOR: NENI funkcni! Signed-off-by: Kosieh Barter Pridan mustr na pridavani vozidel Signed-off-by: Kosieh Barter Prepracovan Login a Register (stale ve WIP) Signed-off-by: Kosieh Barter Predelani na novy views.py Signed-off-by: Kosieh Barter --- apps/web/admin.py | 1 + apps/web/forms.py | 42 ++++++++++- apps/web/migrations/0002_vehicle.py | 30 ++++++++ apps/web/models.py | 26 +++++++ apps/web/static/web/css/styles.css | 51 ++++++++++++-- apps/web/templates/base.html | 26 +++---- apps/web/templates/draft.css | 9 --- apps/web/templates/draft_jizdoteka.svg | 81 --------------------- apps/web/templates/draft_jizdoteka_2.svg | 81 --------------------- apps/web/templates/draft_jizdoteka_3.svg | 82 ---------------------- apps/web/templates/draft_jizdoteka_4.svg | 82 ---------------------- apps/web/templates/draft_login.html | 29 -------- apps/web/templates/web/car_management.html | 57 +++++++++++++++ apps/web/templates/web/index.html | 14 ++++ apps/web/templates/web/journey_search.html | 17 +++++ apps/web/templates/web/login_screen.html | 19 +++++ apps/web/templates/web/logout_user.html | 0 apps/web/templates/web/register.html | 15 ++++ apps/web/templates/web/user_mgmt.html | 11 +++ jizdoteka/urls.py | 15 +++- 20 files changed, 303 insertions(+), 385 deletions(-) create mode 100644 apps/web/migrations/0002_vehicle.py delete mode 100644 apps/web/templates/draft.css delete mode 100644 apps/web/templates/draft_jizdoteka.svg delete mode 100644 apps/web/templates/draft_jizdoteka_2.svg delete mode 100644 apps/web/templates/draft_jizdoteka_3.svg delete mode 100644 apps/web/templates/draft_jizdoteka_4.svg delete mode 100644 apps/web/templates/draft_login.html create mode 100644 apps/web/templates/web/car_management.html create mode 100644 apps/web/templates/web/index.html create mode 100644 apps/web/templates/web/journey_search.html create mode 100644 apps/web/templates/web/login_screen.html create mode 100644 apps/web/templates/web/logout_user.html create mode 100644 apps/web/templates/web/register.html create mode 100644 apps/web/templates/web/user_mgmt.html diff --git a/apps/web/admin.py b/apps/web/admin.py index 2634554..e460fb9 100644 --- a/apps/web/admin.py +++ b/apps/web/admin.py @@ -6,6 +6,7 @@ admin.site.register(models.Comment) admin.site.register(models.Waypoint) admin.site.register(models.Passanger) +admin.site.register(models.Vehicle) admin.site.register(models.JourneyWaypoints) diff --git a/apps/web/forms.py b/apps/web/forms.py index 467fbf8..9d39803 100644 --- a/apps/web/forms.py +++ b/apps/web/forms.py @@ -1,6 +1,6 @@ from django import forms from . import models - +from random import randint class SearchJourney(forms.Form): city_from = forms.CharField() @@ -36,3 +36,43 @@ class Meta: model = models.JourneyWaypoints fields = ['journey', 'waypoint', 'label'] js = ('js/jquery.js',) + +class RegisterForm(forms.Form): + + def rand_anti_question(): + day_list = ["pondělí", "úterý", "středa", "čtvrtek", "pátek", "sobota", "neděle"] + + rand_day_num = randint(0, len(day_list)) + rand_addition = randint(0, len(day_list)) + correct_day_num = rand_day_num + rand_addition + correct_day_index = correct_day_num + + if correct_day_index >= len(day_list): + correct_day_index = correct_day_index - len(day_list) + + print (len(day_list)) + print (correct_day_index) + + question = "Dnes je %s. V případě, že je toto tvrzení pravdivé, co bude za %s dny?" % (day_list[rand_day_num], rand_addition) + return (question, day_list[correct_day_index]) + + user_email = forms.CharField(max_length = 100, label = "Vaše emailová adresa") + user_email_confirm = forms.CharField(max_length = 100, label = "Vaše emailová adresa - kontrola") + user_password = forms.CharField(widget = forms.PasswordInput(), label = "Vaše heslo") + user_password_confirm = forms.CharField(widget = forms.PasswordInput(), label = "Vaše heslo - kontrola") + + cont_question, correct_day = rand_anti_question() + random_antibot = forms.CharField(max_length = 50, label = cont_question) + +class LoginForm(forms.Form): + user_name = forms.CharField(max_length = 100, label = "Váš email") + user_pass = forms.CharField(widget = forms.PasswordInput(), label = "Vaše heslo") + +class ManageForm(forms.Form): + user_mail = forms.EmailField(max_length = 100, label = "Váš email") + user_mail_confirm = forms.EmailField(max_length = 100, label = "Váš email - kontrola") + user_pass = forms.CharField(max_length = 100, widget = forms.PasswordInput(), label = "Vaše heslo") + user_pass_confirm = forms.EmailField(max_length = 100, widget = forms.PasswordInput(), label = "Vaše heslo - kontrola") + +class CarManageForm(forms.Form): + pass diff --git a/apps/web/migrations/0002_vehicle.py b/apps/web/migrations/0002_vehicle.py new file mode 100644 index 0000000..5056d6f --- /dev/null +++ b/apps/web/migrations/0002_vehicle.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.2 on 2016-02-24 06:27 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('web', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='Vehicle', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=20)), + ('owner', models.IntegerField(default=None)), + ('register', models.CharField(blank=True, default=None, max_length=20)), + ('color', models.CharField(max_length=10)), + ('wifi_on_board', models.BooleanField(default=False)), + ('animals_allowed', models.BooleanField(default=False)), + ('highway_mark', models.BooleanField(default=False)), + ('smoking_allowed', models.BooleanField(default=False)), + ('air_conditioning', models.BooleanField(default=True)), + ], + ), + ] diff --git a/apps/web/models.py b/apps/web/models.py index 52926df..0cc7134 100644 --- a/apps/web/models.py +++ b/apps/web/models.py @@ -8,6 +8,32 @@ from django.contrib.auth.models import User +class Vehicle(models.Model): + name = models.CharField(max_length=20, blank=False) + owner = models.IntegerField(blank=False, default = None) + register = models.CharField(max_length=20, blank = True, default = None) + color = models.CharField(max_length=10, blank=False) + + wifi_on_board = models.BooleanField(default=False) + animals_allowed = models.BooleanField(default=False) + highway_mark = models.BooleanField(default=False) + smoking_allowed = models.BooleanField(default=False) + air_conditioning = models.BooleanField(default=True) + + def __str__(self): + ret_str = "Vehicle basic attrs:\n\ + name: %s, register: %s, \ + color: %s\, owner_id: %s, \ + wifi_on_board: %s, animals_allowed: %s, \ + highway_mark: %s\nsmoking_allowed: %s, \ + air_conditioning: %s" % (self.name, self.register, + self.color, self.owner.id, + self.wifi_on_board, self.animals_allowed, + self.highway_mark,self.smoking_allowed, + self.air_conditioning) + return ret_str + + class UserProfile(models.Model): user = models.OneToOneField( settings.AUTH_USER_MODEL, diff --git a/apps/web/static/web/css/styles.css b/apps/web/static/web/css/styles.css index 82e27d6..febd268 100644 --- a/apps/web/static/web/css/styles.css +++ b/apps/web/static/web/css/styles.css @@ -1,6 +1,45 @@ -table td, table th { - border: 1px solid black; -} -table th { - background-color: #ccc; -} \ No newline at end of file +/* Zaklady. Nejdrive zakladni veci, ktere sjednocuji drtivou vetsinu nastaveni. */ + +body { background: black; padding: 0px; margin: 0 auto; max-width: 1280px; font-family: arial;} + +h1 { margin: 0px; padding: 5px; text-align: right; color: white;} +h2 { padding: 10px; margin: 0px; text-align: center;} +h4 { padding: 10px; margin: 0px; text-align: center;} + +a {text-align: center; padding: 10px; border: 2px solid black; border-radius: 10px; text-decoration: none; display: inline-block; width: 50%; box-sizing: border-box; margin: -1px} +p { padding: 4px; margin: 0px;border: 1px solid black; border-radius: 10px;} +label {text-align: center;} + +input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } +select {width: 100%; text-align: center; padding: 5px;} +textarea {width: 100%; box-sizing: border-box;} + +/* Spolecne pro div a vzhled zakladu */ +#hlavicka { background: #4b9320; } +#prechod {background: linear-gradient(#4b9320, #71c900)} +#stranka {background: #71c900;} +#vyber_barvy { height: 64px;} + +/* Nastaveni k dialogu ceny */ +#cena_spolujizdy {width: 49%; box-sizing: border-box;} +#cena_spolujizdy_sel {width: 49%; box-sizing: border-box;} + +/* Nastaveni pro chybu */ +#chyba {text-align: center ; background: red; font-size: 20px;} + +/* Nastaveni pro tlacitko typu submit */ +.tlacitko {width: 100%; box-sizing: border-box; background-color: #094100; color: white;} +.tlacitko:hover {background-color: #1f9900; border: 2px solid white;} +/* Chceme sjednotit tlacitko typu a a submit? */ +.tlacitko {width: 100%; background-color: #094100; color: white; border: 2px solid black;} +.tlacitko:hover {background-color: #1f9900; border: 2px solid white;} + +.poznamka {background: orange; font-size: 20px; text-align: center;} +.informace {background: #4e7fff; font-size: 20px; text-align: center;} +.vlas_voz { width: 20px;} +.pulsegment { width: 50%; float: left; background: #71c900;} +.nadpis_hod {font-size: 20px;} +.text_hod { font-size: 20px;} + +.vyber_spolujizdy {width: 100%; text-align: center; background: #03a200; color: white; border: 1px solid black; border-radius: 15px; display: block;} +.vyber_spolujizdy:hover { background: #b6ff6c; color: black;} diff --git a/apps/web/templates/base.html b/apps/web/templates/base.html index 952c488..d597cdc 100644 --- a/apps/web/templates/base.html +++ b/apps/web/templates/base.html @@ -1,20 +1,20 @@ {% load i18n %} {% load static from staticfiles %} - - + + + - - Title - - + Jizdoteka + + + + + - {% block extrahead %}{% endblock %} - -{% block content %}Here is missing {block}!{% endblock %} - - - - +

Jizdoteka.cz

+ {% block content %} + {% endblock %} + diff --git a/apps/web/templates/draft.css b/apps/web/templates/draft.css deleted file mode 100644 index f099430..0000000 --- a/apps/web/templates/draft.css +++ /dev/null @@ -1,9 +0,0 @@ -body { background: black; padding: 0px; margin: 0 auto; max-width: 1280px; font-family: arial;} -h1 { margin: 0px; padding: 5px; text-align: right; color: white;} -h4 { padding: 10px; margin: 0px; text-align: center;} -p { padding: 4px; margin: 2px;border: 1px solid black; border-radius: 10px;} -input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } -div { background: #4b9320; } - -#prechod {background: linear-gradient(#4b9320, #80e400);} -#stranka {background: #80e400;} diff --git a/apps/web/templates/draft_jizdoteka.svg b/apps/web/templates/draft_jizdoteka.svg deleted file mode 100644 index e1d358b..0000000 --- a/apps/web/templates/draft_jizdoteka.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_jizdoteka_2.svg b/apps/web/templates/draft_jizdoteka_2.svg deleted file mode 100644 index 04b5dab..0000000 --- a/apps/web/templates/draft_jizdoteka_2.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_jizdoteka_3.svg b/apps/web/templates/draft_jizdoteka_3.svg deleted file mode 100644 index 63a9249..0000000 --- a/apps/web/templates/draft_jizdoteka_3.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_jizdoteka_4.svg b/apps/web/templates/draft_jizdoteka_4.svg deleted file mode 100644 index 11797d6..0000000 --- a/apps/web/templates/draft_jizdoteka_4.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_login.html b/apps/web/templates/draft_login.html deleted file mode 100644 index 2667eb7..0000000 --- a/apps/web/templates/draft_login.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - Jizdoteka - Draft - - - - - - - -
-

Jizdoteka.cz

-

Přihlášení

-
-
- - - -

- Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. -

-
-
-
- - diff --git a/apps/web/templates/web/car_management.html b/apps/web/templates/web/car_management.html new file mode 100644 index 0000000..6683466 --- /dev/null +++ b/apps/web/templates/web/car_management.html @@ -0,0 +1,57 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static from staticfiles %} +{% load journey_tags %} + +{% block content %} + +

Přidat vozidlo

+
+
+

Značka Vašeho vozidla

+ +

Barva Vašeho vozidla

+ +

Další vlastnosti

+
+
+
+
+
+

SPZ Vašeho vozidla

+

+ Poznámka:
+ SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
+ V případě vyplnění ulehčíte spolucestujícím snažší nalezení. +

+ + +
+ + + {% for vehicle in vehicle_list %} +
+

+ {{ _('Vozidlo:') }}
+ {{ _('Barva:') }}
+ {{ _('SPZ:') }} +

+
+
+

+ {{ vehicle.name }}
+ {{ vehicle.color }}
+ {{ vehicle.register }} +

+
+
+
+ + + +
+
+ {% endfor %} + + +{% endblock %} diff --git a/apps/web/templates/web/index.html b/apps/web/templates/web/index.html new file mode 100644 index 0000000..d4f42ee --- /dev/null +++ b/apps/web/templates/web/index.html @@ -0,0 +1,14 @@ +{% extends "base.html" %} +{% block content %} +
+
{{ request.user }} +
+ +{% endblock content %} diff --git a/apps/web/templates/web/journey_search.html b/apps/web/templates/web/journey_search.html new file mode 100644 index 0000000..58990e7 --- /dev/null +++ b/apps/web/templates/web/journey_search.html @@ -0,0 +1,17 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static from staticfiles %} +{% load journey_tags %} + +{% block content %} + +

Vyhledávání spolujízd
--trasa_z-- - --trasa_do--

+
+
+ + + + +
+
+{% endblock %} diff --git a/apps/web/templates/web/login_screen.html b/apps/web/templates/web/login_screen.html new file mode 100644 index 0000000..aaee7fa --- /dev/null +++ b/apps/web/templates/web/login_screen.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} +{% block content %} +

Přihlášení uživatele

+
+ +
{% csrf_token %} + {{ form.as_p}} + +

+ Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. +

+
+ Nemáte účet? Zaregistrujte se zde. + + {% block error_message %} + + {% endblock error_message %} +
+{% endblock content %} diff --git a/apps/web/templates/web/logout_user.html b/apps/web/templates/web/logout_user.html new file mode 100644 index 0000000..e69de29 diff --git a/apps/web/templates/web/register.html b/apps/web/templates/web/register.html new file mode 100644 index 0000000..1015ed2 --- /dev/null +++ b/apps/web/templates/web/register.html @@ -0,0 +1,15 @@ +{% extends 'base.html' %} +{% block content %} + +

Registrace

+
+
{% csrf_token %} + {{ form.as_p }} + +

+ Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. +

+
+
+ +{% endblock %} diff --git a/apps/web/templates/web/user_mgmt.html b/apps/web/templates/web/user_mgmt.html new file mode 100644 index 0000000..7316107 --- /dev/null +++ b/apps/web/templates/web/user_mgmt.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} +

Nastavení uživatele

+
+
+
{% csrf_token %} + {{ form }} + +
+
+{% endblock content %} diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index d0ca2e3..d9d7807 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -13,7 +13,7 @@ 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ -from django.conf.urls import url +from django.conf.urls import url, include from django.contrib import admin from apps.web.views import journey @@ -26,4 +26,17 @@ journey.JourneyDetail.as_view(), name='journey_detail' ), + + ## Nutne pro prihlaseni + url(r'^login_screen/$', views.LoginScreen.as_view(), name = "login_screen"), + url(r'^logout_user/$', views.logout_user, name = "logout_user"), + url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), + + #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), + + + #url(r'^(?P[0-9]+)$', views.JourneyDetail.as_view(), name='journey_detail'), + + ## Login pro facebook + #url(r'accounts/', include('allauth.urls')) ] From 9af90b6c52a77560c57d91eaa0b998dd0b28b87b Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 28 Feb 2016 17:06:50 +0100 Subject: [PATCH 03/37] Minifix: Docasne vyrazen user_mgmt (neni v urls) Duvod: Rozpracovany RegisterScreen (viz views.py) UserManagement: WIP Signed-off-by: Kosieh Barter --- apps/web/templates/web/index.html | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/web/templates/web/index.html b/apps/web/templates/web/index.html index d4f42ee..9155277 100644 --- a/apps/web/templates/web/index.html +++ b/apps/web/templates/web/index.html @@ -5,10 +5,11 @@ Přihlásit se Odhlásit se Registrovat se - Uživatelský panel +
{{ request.user }}
{% endblock content %} +Uživatelský panel From 3ee6fb48b985ba6e7837bf5e920b0acd1d27eff6 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 28 Feb 2016 18:34:14 +0100 Subject: [PATCH 04/37] Pridan dialog na spravu vozidel - WIP Vse potrebne zahrnuto Signed-off-by: Kosieh Barter --- apps/web/forms.py | 22 ++++++++++++++----- apps/web/static/web/css/styles.css | 1 - apps/web/templates/web/car_mgmt.html | 28 ++++++++++++++++++++++++ apps/web/templates/web/login_screen.html | 2 +- jizdoteka/urls.py | 2 ++ 5 files changed, 47 insertions(+), 8 deletions(-) create mode 100644 apps/web/templates/web/car_mgmt.html diff --git a/apps/web/forms.py b/apps/web/forms.py index 9d39803..1e38b6a 100644 --- a/apps/web/forms.py +++ b/apps/web/forms.py @@ -50,11 +50,8 @@ def rand_anti_question(): if correct_day_index >= len(day_list): correct_day_index = correct_day_index - len(day_list) - print (len(day_list)) - print (correct_day_index) - - question = "Dnes je %s. V případě, že je toto tvrzení pravdivé, co bude za %s dny?" % (day_list[rand_day_num], rand_addition) - return (question, day_list[correct_day_index]) + question = "Dnes je %s. V případě, že je toto tvrzení pravdivé, co bude za %s dny?" % (day_list[rand_day_num - 1], rand_addition) + return (question, day_list[correct_day_index - 1]) user_email = forms.CharField(max_length = 100, label = "Vaše emailová adresa") user_email_confirm = forms.CharField(max_length = 100, label = "Vaše emailová adresa - kontrola") @@ -64,15 +61,28 @@ def rand_anti_question(): cont_question, correct_day = rand_anti_question() random_antibot = forms.CharField(max_length = 50, label = cont_question) + class LoginForm(forms.Form): user_name = forms.CharField(max_length = 100, label = "Váš email") user_pass = forms.CharField(widget = forms.PasswordInput(), label = "Vaše heslo") + class ManageForm(forms.Form): user_mail = forms.EmailField(max_length = 100, label = "Váš email") user_mail_confirm = forms.EmailField(max_length = 100, label = "Váš email - kontrola") user_pass = forms.CharField(max_length = 100, widget = forms.PasswordInput(), label = "Vaše heslo") user_pass_confirm = forms.EmailField(max_length = 100, widget = forms.PasswordInput(), label = "Vaše heslo - kontrola") + user_phone = forms.CharField(max_length = 20, label = "Vaše telefonní číslo") + class CarManageForm(forms.Form): - pass + car_name = forms.CharField(max_length = 20, label = "Značka Vašeho vozidla") + car_color = forms.CharField(max_length = 10, label = "Barva Vašeho vozidla") + + car_air_conditioning = forms.BooleanField(label = "Vozidlo je vybaveno klimatizací") + car_animals_allowed = forms.BooleanField(label = "Ve vozidle lze převážet zvířata") + car_has_wifi = forms.BooleanField(label = "Ve vozidle je síť Wi-Fi") + car_has_highway_sign = forms.BooleanField(label = "Vozidlo má dálniční známku") + car_smoking_allowed = forms.BooleanField(label = "Ve vozidle se smí kouřit") + + car_register_sign = forms.CharField(max_length = 16, label = "SPZ Vašeho vozidla") diff --git a/apps/web/static/web/css/styles.css b/apps/web/static/web/css/styles.css index febd268..0085545 100644 --- a/apps/web/static/web/css/styles.css +++ b/apps/web/static/web/css/styles.css @@ -8,7 +8,6 @@ h4 { padding: 10px; margin: 0px; text-align: center;} a {text-align: center; padding: 10px; border: 2px solid black; border-radius: 10px; text-decoration: none; display: inline-block; width: 50%; box-sizing: border-box; margin: -1px} p { padding: 4px; margin: 0px;border: 1px solid black; border-radius: 10px;} -label {text-align: center;} input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } select {width: 100%; text-align: center; padding: 5px;} diff --git a/apps/web/templates/web/car_mgmt.html b/apps/web/templates/web/car_mgmt.html new file mode 100644 index 0000000..80ca87b --- /dev/null +++ b/apps/web/templates/web/car_mgmt.html @@ -0,0 +1,28 @@ +{% extends "base.html" %} + +{% block content %} +

Správa vozidel

+
+
{% csrf_token %} + {{ form.as_p }} +

POZNÁMKA:
+ SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
+ V případě vyplnění ulehčíte spolucestujícím snažší nalezení.

+ +
+
+

Seznam vozidel

+ +{% for inc in car_list %} + +
+ {{ inc }}
+
{% csrf_token %} + + +
+
+{% endfor %} +
+ +{% endblock content %} diff --git a/apps/web/templates/web/login_screen.html b/apps/web/templates/web/login_screen.html index aaee7fa..1542149 100644 --- a/apps/web/templates/web/login_screen.html +++ b/apps/web/templates/web/login_screen.html @@ -3,7 +3,7 @@

Přihlášení uživatele

-
{% csrf_token %} + {% csrf_token %} {{ form.as_p}}

diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index d9d7807..ae97509 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -32,6 +32,8 @@ url(r'^logout_user/$', views.logout_user, name = "logout_user"), url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), + url(r'^car_mgmt/$', views.CarManagement.as_view(), name = "car_mgmt") + #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), From 548260f94904dfc641c5a05d0fd4b9270d183fef Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:12:19 +0100 Subject: [PATCH 05/37] Pridany formulare Sprava vozidel, uzivatele (WIP) a registrace Signed-off-by: Kosieh Barter --- apps/web/forms.py | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/apps/web/forms.py b/apps/web/forms.py index 1e38b6a..a32236c 100644 --- a/apps/web/forms.py +++ b/apps/web/forms.py @@ -1,6 +1,8 @@ from django import forms from . import models from random import randint +from . import models +from django.utils.translation import ugettext_lazy as _ class SearchJourney(forms.Form): city_from = forms.CharField() @@ -53,36 +55,41 @@ def rand_anti_question(): question = "Dnes je %s. V případě, že je toto tvrzení pravdivé, co bude za %s dny?" % (day_list[rand_day_num - 1], rand_addition) return (question, day_list[correct_day_index - 1]) - user_email = forms.CharField(max_length = 100, label = "Vaše emailová adresa") - user_email_confirm = forms.CharField(max_length = 100, label = "Vaše emailová adresa - kontrola") - user_password = forms.CharField(widget = forms.PasswordInput(), label = "Vaše heslo") - user_password_confirm = forms.CharField(widget = forms.PasswordInput(), label = "Vaše heslo - kontrola") + user_email = forms.CharField(max_length = 100, label = _("Your E-Mail address")) + user_email_confirm = forms.CharField(max_length = 100, label = _("Your E-Mail address - Confirmation")) + user_password = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password")) + user_password_confirm = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password - Confirmation")) cont_question, correct_day = rand_anti_question() random_antibot = forms.CharField(max_length = 50, label = cont_question) class LoginForm(forms.Form): - user_name = forms.CharField(max_length = 100, label = "Váš email") - user_pass = forms.CharField(widget = forms.PasswordInput(), label = "Vaše heslo") + user_name = forms.EmailField(max_length = 100, label = _("Your email")) + user_pass = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password")) class ManageForm(forms.Form): - user_mail = forms.EmailField(max_length = 100, label = "Váš email") - user_mail_confirm = forms.EmailField(max_length = 100, label = "Váš email - kontrola") - user_pass = forms.CharField(max_length = 100, widget = forms.PasswordInput(), label = "Vaše heslo") - user_pass_confirm = forms.EmailField(max_length = 100, widget = forms.PasswordInput(), label = "Vaše heslo - kontrola") - user_phone = forms.CharField(max_length = 20, label = "Vaše telefonní číslo") + user_mail = forms.EmailField(max_length = 100, label = _("Your E-mail address")) + user_mail_confirm = forms.EmailField(max_length = 100, label = _("Your E-mail address - Confirmation")) + user_pass = forms.CharField(max_length = 100, widget = forms.PasswordInput(), label = _("Your Password")) + user_pass_confirm = forms.EmailField(max_length = 100, widget = forms.PasswordInput(), label = _("Your Password - Confirmation")) + user_phone = forms.CharField(max_length = 20, label = _("Your phone number")) class CarManageForm(forms.Form): - car_name = forms.CharField(max_length = 20, label = "Značka Vašeho vozidla") - car_color = forms.CharField(max_length = 10, label = "Barva Vašeho vozidla") + car_name = forms.CharField(max_length = 20, label = _("Your car brand")) + #color = forms.CharField(max_length = 10, label = _("Your car's color")) + + air_conditioning = forms.BooleanField(label = _("Air conditioning in car")) + animals_allowed = forms.BooleanField(label = _("Animal transport is allowed")) + has_wifi = forms.BooleanField(label = _("Wifi is in car")) + has_highway_sign = forms.BooleanField(label = _("Car has a Highway stamp")) + smoking_allowed = forms.BooleanField(label = "Smoking allowed in vehicle") + + register_sign = forms.CharField(max_length = 16, label = _("Car national register sign")) + - car_air_conditioning = forms.BooleanField(label = "Vozidlo je vybaveno klimatizací") - car_animals_allowed = forms.BooleanField(label = "Ve vozidle lze převážet zvířata") - car_has_wifi = forms.BooleanField(label = "Ve vozidle je síť Wi-Fi") - car_has_highway_sign = forms.BooleanField(label = "Vozidlo má dálniční známku") - car_smoking_allowed = forms.BooleanField(label = "Ve vozidle se smí kouřit") +class CreateJourneyForm(forms.Form): - car_register_sign = forms.CharField(max_length = 16, label = "SPZ Vašeho vozidla") + pass From 5ec246dd78459dca3c4a8ed3927147e0e779e82f Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:14:26 +0100 Subject: [PATCH 06/37] Minoritni opravy Signed-off-by: Kosieh Barter --- apps/web/models.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/web/models.py b/apps/web/models.py index 0cc7134..155dc59 100644 --- a/apps/web/models.py +++ b/apps/web/models.py @@ -10,7 +10,7 @@ class Vehicle(models.Model): name = models.CharField(max_length=20, blank=False) - owner = models.IntegerField(blank=False, default = None) + owner = models.ForeignKey(User) register = models.CharField(max_length=20, blank = True, default = None) color = models.CharField(max_length=10, blank=False) @@ -18,7 +18,7 @@ class Vehicle(models.Model): animals_allowed = models.BooleanField(default=False) highway_mark = models.BooleanField(default=False) smoking_allowed = models.BooleanField(default=False) - air_conditioning = models.BooleanField(default=True) + air_conditioning = models.BooleanField(default=False) def __str__(self): ret_str = "Vehicle basic attrs:\n\ @@ -47,7 +47,7 @@ class UserProfile(models.Model): drive_years = models.IntegerField(blank=True, default=0) def __str__(self): - return self.user.username + return self.user.email def create_user_profile(sender, instance, created, **kwargs): From f626b3074603111cb81f01eaeb6b2c22f549ad17 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:15:13 +0100 Subject: [PATCH 07/37] Pridan canvas pro zobrazeni barvy Signed-off-by: Kosieh Barter --- apps/web/static/web/css/styles.css | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/web/static/web/css/styles.css b/apps/web/static/web/css/styles.css index 0085545..9a5d863 100644 --- a/apps/web/static/web/css/styles.css +++ b/apps/web/static/web/css/styles.css @@ -13,6 +13,8 @@ input { width: 100%; text-align: center; box-sizing: border-box; border-radius: select {width: 100%; text-align: center; padding: 5px;} textarea {width: 100%; box-sizing: border-box;} +canvas {width: 100%; height: 32px;} + /* Spolecne pro div a vzhled zakladu */ #hlavicka { background: #4b9320; } #prechod {background: linear-gradient(#4b9320, #71c900)} From a7cb6832bab6010c05b994f4c1120cfa0e0f8fc0 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:16:48 +0100 Subject: [PATCH 08/37] Hardcodovane hrefy predelany na for z renderu Signed-off-by: Kosieh Barter --- apps/web/templates/web/index.html | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/apps/web/templates/web/index.html b/apps/web/templates/web/index.html index 9155277..9814ecf 100644 --- a/apps/web/templates/web/index.html +++ b/apps/web/templates/web/index.html @@ -2,14 +2,12 @@ {% block content %}

- Přihlásit se - Odhlásit se - Registrovat se - + {% for name, href in links.items %} + {{ name }} + {% endfor %}
-
{{ request.user }} +
{{ request.user.email }}
{% endblock content %} -Uživatelský panel From 7358ca1f3c8a5b989f3f382534ae2fba9cf2c7e4 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:18:01 +0100 Subject: [PATCH 09/37] Predelan nadpis pro multilang support Signed-off-by: Kosieh Barter --- apps/web/templates/web/login_screen.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/templates/web/login_screen.html b/apps/web/templates/web/login_screen.html index 1542149..92f12a7 100644 --- a/apps/web/templates/web/login_screen.html +++ b/apps/web/templates/web/login_screen.html @@ -1,6 +1,6 @@ {% extends "base.html" %} {% block content %} -

Přihlášení uživatele

+

{{ header }}

{% csrf_token %} From d04f9eef7e1b153eb6f8495db2272ab5828cf05a Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:20:09 +0100 Subject: [PATCH 10/37] Predelan nadpis pro multilang support Signed-off-by: Kosieh Barter --- apps/web/templates/web/register.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/templates/web/register.html b/apps/web/templates/web/register.html index 1015ed2..db4b8fc 100644 --- a/apps/web/templates/web/register.html +++ b/apps/web/templates/web/register.html @@ -1,7 +1,7 @@ {% extends 'base.html' %} {% block content %} -

Registrace

+

{{ header }}

{% csrf_token %} {{ form.as_p }} From 39ffc8f97bfe83a211a9dc5625f897c27d535e58 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:27:27 +0100 Subject: [PATCH 11/37] Pridana podpora a override pro prihlaseni mailem Signed-off-by: Kosieh Barter --- jizdoteka/settings.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/jizdoteka/settings.py b/jizdoteka/settings.py index 054bc72..b39b71b 100644 --- a/jizdoteka/settings.py +++ b/jizdoteka/settings.py @@ -28,6 +28,8 @@ ALLOWED_HOSTS = [] + + # Application definition INSTALLED_APPS = [ @@ -40,6 +42,8 @@ # 'django.contrib.gis', 'debug_toolbar', 'apps.web', + 'emailusernames', + 'colorfield', ] MIDDLEWARE_CLASSES = [ @@ -88,6 +92,11 @@ } } +AUTHENTICATION_BACKENDS = ( + 'emailusernames.backends.EmailAuthBackend', + # Uncomment the following to make Django tests pass: + # 'django.contrib.auth.backends.ModelBackend', +) # Password validation # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators From 70d5af3e82e95e13751947e38e9212a3f60eb72c Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:28:04 +0100 Subject: [PATCH 12/37] Prejmenovan z car_mgmt a pridana podpora pro mazani Signed-off-by: Kosieh Barter --- apps/web/templates/web/cars.html | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 apps/web/templates/web/cars.html diff --git a/apps/web/templates/web/cars.html b/apps/web/templates/web/cars.html new file mode 100644 index 0000000..9a14bf3 --- /dev/null +++ b/apps/web/templates/web/cars.html @@ -0,0 +1,33 @@ +{% extends "base.html" %} + +{% block content %} +

{{ header }}

+
+

Logged in as {{ request.user.email }}

+ {% csrf_token %} +

+ {{ form.as_p }} +

{{ reg_notice.0 }}:
{{ reg_notice.1 }}

+ + +

+
+

Vehicle list

+
+ + {% for inc in car_list %} +
+
{% csrf_token %} + + +

Vehicle name / brand: {{ inc.name }}
+ National register sign: {{ inc.register }}
+ Vehicle color:

+ + +
+
+ {% endfor %} +
+ +{% endblock content %} From 46c0d259ae2d53bc16ad349aa5e54d440b78842a Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:28:47 +0100 Subject: [PATCH 13/37] Koncept pro upravu uziv nastaveni Signed-off-by: Kosieh Barter --- apps/web/templates/web/user.html | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 apps/web/templates/web/user.html diff --git a/apps/web/templates/web/user.html b/apps/web/templates/web/user.html new file mode 100644 index 0000000..650da12 --- /dev/null +++ b/apps/web/templates/web/user.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} +

{{ header }}

+
+
+
{% csrf_token %} + {{ form }} + +
+
+{% endblock content %} From 48240dd20161611d9e5a361c110b7b73ee4513fe Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:29:33 +0100 Subject: [PATCH 14/37] Opravy pro stavajici veci a pridany nove Signed-off-by: Kosieh Barter --- jizdoteka/urls.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index ae97509..0181d8a 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -31,8 +31,12 @@ url(r'^login_screen/$', views.LoginScreen.as_view(), name = "login_screen"), url(r'^logout_user/$', views.logout_user, name = "logout_user"), url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), + url(r'^user/$', views.UserManagement.as_view(), name = "user"), + + url(r'^cars/$', views.CarManagement.as_view(), name = "cars"), + + url(r'^journey_create/$', views.JourneyCreate.as_view(), name = "cars"), - url(r'^car_mgmt/$', views.CarManagement.as_view(), name = "car_mgmt") #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), From 0555f6436558ef8669aee30deb1c6e419eb0f3fc Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:34:36 +0100 Subject: [PATCH 15/37] Vymazano url na tvorbu spolujizdy (not assigned) Signed-off-by: Kosieh Barter --- apps/web/templates/web/car_management.html | 57 ---------------------- apps/web/templates/web/car_mgmt.html | 28 ----------- apps/web/templates/web/user_mgmt.html | 11 ----- jizdoteka/urls.py | 3 -- 4 files changed, 99 deletions(-) delete mode 100644 apps/web/templates/web/car_management.html delete mode 100644 apps/web/templates/web/car_mgmt.html delete mode 100644 apps/web/templates/web/user_mgmt.html diff --git a/apps/web/templates/web/car_management.html b/apps/web/templates/web/car_management.html deleted file mode 100644 index 6683466..0000000 --- a/apps/web/templates/web/car_management.html +++ /dev/null @@ -1,57 +0,0 @@ -{% extends 'base.html' %} -{% load i18n %} -{% load static from staticfiles %} -{% load journey_tags %} - -{% block content %} - -

Přidat vozidlo

-
-
-

Značka Vašeho vozidla

- -

Barva Vašeho vozidla

- -

Další vlastnosti

-
-
-
-
-
-

SPZ Vašeho vozidla

-

- Poznámka:
- SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
- V případě vyplnění ulehčíte spolucestujícím snažší nalezení. -

- - -
- - - {% for vehicle in vehicle_list %} -
-

- {{ _('Vozidlo:') }}
- {{ _('Barva:') }}
- {{ _('SPZ:') }} -

-
-
-

- {{ vehicle.name }}
- {{ vehicle.color }}
- {{ vehicle.register }} -

-
-
-
- - - -
-
- {% endfor %} - - -{% endblock %} diff --git a/apps/web/templates/web/car_mgmt.html b/apps/web/templates/web/car_mgmt.html deleted file mode 100644 index 80ca87b..0000000 --- a/apps/web/templates/web/car_mgmt.html +++ /dev/null @@ -1,28 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -

Správa vozidel

-
-
{% csrf_token %} - {{ form.as_p }} -

POZNÁMKA:
- SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
- V případě vyplnění ulehčíte spolucestujícím snažší nalezení.

- -
-
-

Seznam vozidel

- -{% for inc in car_list %} - -
- {{ inc }}
-
{% csrf_token %} - - -
-
-{% endfor %} -
- -{% endblock content %} diff --git a/apps/web/templates/web/user_mgmt.html b/apps/web/templates/web/user_mgmt.html deleted file mode 100644 index 7316107..0000000 --- a/apps/web/templates/web/user_mgmt.html +++ /dev/null @@ -1,11 +0,0 @@ -{% extends "base.html" %} -{% block content %} -

Nastavení uživatele

-
-
-
{% csrf_token %} - {{ form }} - -
-
-{% endblock content %} diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index 0181d8a..9e08f9d 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -35,9 +35,6 @@ url(r'^cars/$', views.CarManagement.as_view(), name = "cars"), - url(r'^journey_create/$', views.JourneyCreate.as_view(), name = "cars"), - - #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), From bf70993133bf6dc75e8a96b1862d2b29b743e47f Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 22:04:59 +0100 Subject: [PATCH 16/37] Opraveno pro splneni PEP8 Signed-off-by: Kosieh Barter --- jizdoteka/urls.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index 9e08f9d..87235ff 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -28,12 +28,12 @@ ), ## Nutne pro prihlaseni - url(r'^login_screen/$', views.LoginScreen.as_view(), name = "login_screen"), - url(r'^logout_user/$', views.logout_user, name = "logout_user"), - url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), - url(r'^user/$', views.UserManagement.as_view(), name = "user"), + url(r'^login_screen/$', views.LoginScreen.as_view(), name="login_screen"), + url(r'^logout_user/$', views.logout_user, name="logout_user"), + url(r'^register/$', views.RegisterScreen.as_view(), name="register"), + url(r'^user/$', views.UserManagement.as_view(), name="user"), - url(r'^cars/$', views.CarManagement.as_view(), name = "cars"), + url(r'^cars/$', views.CarManagement.as_view(), name="cars"), #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), From 8c57966d960f4843594ee7eb9544a6cf185633e5 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sat, 5 Mar 2016 22:35:57 +0100 Subject: [PATCH 17/37] Commit pred rozdelenim Signed-off-by: Kosieh Barter --- jizdoteka/urls.py | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index 87235ff..b1db9fd 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -27,19 +27,17 @@ name='journey_detail' ), - ## Nutne pro prihlaseni + ## Nutne pro prihlasen url(r'^login_screen/$', views.LoginScreen.as_view(), name="login_screen"), url(r'^logout_user/$', views.logout_user, name="logout_user"), url(r'^register/$', views.RegisterScreen.as_view(), name="register"), - url(r'^user/$', views.UserManagement.as_view(), name="user"), + url(r'^user/$', views.User.as_view(), name="user"), - url(r'^cars/$', views.CarManagement.as_view(), name="cars"), + url(r'^cars/$', views.Car.as_view(), name="cars"), #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), + url(r'^accounts/', include('allauth.urls')), #url(r'^(?P[0-9]+)$', views.JourneyDetail.as_view(), name='journey_detail'), - - ## Login pro facebook - #url(r'accounts/', include('allauth.urls')) ] From 4ecbb631cf135718ee7c073c1f38a68030c7bb5a Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 21 Feb 2016 11:37:58 +0100 Subject: [PATCH 18/37] Pridany drafty na login, loga a CSS CSS zalozeno na stylu blog.jizdoteka.cz Signed-off-by: Kosieh Barter --- apps/web/templates/draft.css | 9 +++ apps/web/templates/draft_jizdoteka.svg | 81 +++++++++++++++++++++++ apps/web/templates/draft_jizdoteka_2.svg | 81 +++++++++++++++++++++++ apps/web/templates/draft_jizdoteka_3.svg | 82 ++++++++++++++++++++++++ apps/web/templates/draft_jizdoteka_4.svg | 82 ++++++++++++++++++++++++ apps/web/templates/draft_login.html | 29 +++++++++ 6 files changed, 364 insertions(+) create mode 100644 apps/web/templates/draft.css create mode 100644 apps/web/templates/draft_jizdoteka.svg create mode 100644 apps/web/templates/draft_jizdoteka_2.svg create mode 100644 apps/web/templates/draft_jizdoteka_3.svg create mode 100644 apps/web/templates/draft_jizdoteka_4.svg create mode 100644 apps/web/templates/draft_login.html diff --git a/apps/web/templates/draft.css b/apps/web/templates/draft.css new file mode 100644 index 0000000..f099430 --- /dev/null +++ b/apps/web/templates/draft.css @@ -0,0 +1,9 @@ +body { background: black; padding: 0px; margin: 0 auto; max-width: 1280px; font-family: arial;} +h1 { margin: 0px; padding: 5px; text-align: right; color: white;} +h4 { padding: 10px; margin: 0px; text-align: center;} +p { padding: 4px; margin: 2px;border: 1px solid black; border-radius: 10px;} +input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } +div { background: #4b9320; } + +#prechod {background: linear-gradient(#4b9320, #80e400);} +#stranka {background: #80e400;} diff --git a/apps/web/templates/draft_jizdoteka.svg b/apps/web/templates/draft_jizdoteka.svg new file mode 100644 index 0000000..e1d358b --- /dev/null +++ b/apps/web/templates/draft_jizdoteka.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_jizdoteka_2.svg b/apps/web/templates/draft_jizdoteka_2.svg new file mode 100644 index 0000000..04b5dab --- /dev/null +++ b/apps/web/templates/draft_jizdoteka_2.svg @@ -0,0 +1,81 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_jizdoteka_3.svg b/apps/web/templates/draft_jizdoteka_3.svg new file mode 100644 index 0000000..63a9249 --- /dev/null +++ b/apps/web/templates/draft_jizdoteka_3.svg @@ -0,0 +1,82 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_jizdoteka_4.svg b/apps/web/templates/draft_jizdoteka_4.svg new file mode 100644 index 0000000..11797d6 --- /dev/null +++ b/apps/web/templates/draft_jizdoteka_4.svg @@ -0,0 +1,82 @@ + + + + + + + + + + image/svg+xml + + + + + + + + + + + + diff --git a/apps/web/templates/draft_login.html b/apps/web/templates/draft_login.html new file mode 100644 index 0000000..2667eb7 --- /dev/null +++ b/apps/web/templates/draft_login.html @@ -0,0 +1,29 @@ + + + + Jizdoteka - Draft + + + + + + + +
+

Jizdoteka.cz

+

Přihlášení

+
+
+ + + +

+ Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. +

+
+
+
+ + From 0b378bde2508e528abd67fe93b3122f3179f3d51 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 21 Feb 2016 11:47:12 +0100 Subject: [PATCH 19/37] Proveden squash Puvodni: Predelan styl Pridan formular pro registraci a sjednocen styl a Signed-off-by: Kosieh Barter Pridan formular pro vytvoreni spolujizdy Zahrnuta i moznost pravidelne spolujizdy, jednorazova prednastavena Signed-off-by: Kosieh Barter Pridany moznosti spolujizdy Pridano pole na poznamky a select pro menu ceny. Signed-off-by: Kosieh Barter Pridan formular pro pridani vozidla Poznamka: SPZ vozidla je volitelny opt-in. Dobrovolne Signed-off-by: Kosieh Barter Pridan styl pro info, pozn a dalsi Informace Poznamka Tlacitka - unifikovane Prechody WIP: Vyber barvy - ten je zatim v HTML5 Signed-off-by: Kosieh Barter Pridano info Signed-off-by: Kosieh Barter Pridany info po updatu CSS Signed-off-by: Kosieh Barter Pridany checkboxy - WIP Signed-off-by: Kosieh Barter Draft pro uziv panel Zatim pouze email Signed-off-by: Kosieh Barter Zprehledneni formulare Signed-off-by: Kosieh Barter Draft pro hlavni stranku Signed-off-by: Kosieh Barter Pridan draft pro registraci a index Signed-off-by: Kosieh Barter Port draftu na Django HTML Signed-off-by: Kosieh Barter Pridan model pro vozidla Signed-off-by: Kosieh Barter Upraven half-page vypis pro seznam Signed-off-by: Kosieh Barter Pridan draft na spravu vozidel Signed-off-by: Kosieh Barter Makemigrations na vozidlech Signed-off-by: Kosieh Barter Opraven __str__ Signed-off-by: Kosieh Barter Pridan model do admin rozhrani Signed-off-by: Kosieh Barter Pridan atribut pro vlastnika vozidla Signed-off-by: Kosieh Barter Opraven owner_id na owner Signed-off-by: Kosieh Barter Pridan login vcetne kontroly a podpora pro nej Kumulativni update, obsahuje login a logout, upraveno a pridana podpora pro prihlaseni. Zname chyby: pri redirectu zobrazuje co redirectuje, mozna chovani pri zapnutem flagu debug=True Signed-off-by: Kosieh Barter Jednotny styl - mobilni verze webu Signed-off-by: Kosieh Barter Opraven link rel na ikonu, nacita ze static Signed-off-by: Kosieh Barter Pridany odkazy Login, logout, uziv panel a reigstraci Signed-off-by: Kosieh Barter Jednoduchy login screen, bez chybovych hlasek Signed-off-by: Kosieh Barter Single-page logout odkaz Presmeruje na index.html Signed-off-by: Kosieh Barter Pridan login, logout, user_mgmt a registrace Zatim vse v navrhu, funkcni login, logout registrace: WIP, uzivatelsky panel: WIP Signed-off-by: Kosieh Barter Pridany URL Na: registrace, logout, uzivatelsky panel a login Signed-off-by: Kosieh Barter Pridany definice formularu Poznamka: v HTML se zobrazuje jako odstavec s labelem Signed-off-by: Kosieh Barter Pridan WIP na registraci uzivatele Signed-off-by: Kosieh Barter Page na upravu uzivatelskych dat Dekorator: vyzaduje prihlaseni, pozor, nefunguje, jak ma Signed-off-by: Kosieh Barter Napad: jednotne HTML na chybove zpravy Signed-off-by: Kosieh Barter Navrh pro vyhledavani spolujizd POZOR: NENI funkcni! Signed-off-by: Kosieh Barter Pridan mustr na pridavani vozidel Signed-off-by: Kosieh Barter Prepracovan Login a Register (stale ve WIP) Signed-off-by: Kosieh Barter Predelani na novy views.py Signed-off-by: Kosieh Barter --- apps/web/templates/base.html | 5 +- apps/web/templates/draft.css | 31 ++++++- apps/web/templates/draft_index.html | 14 +++ apps/web/templates/draft_login.html | 29 ------ apps/web/templates/draft_pridat_vozidlo.html | 38 ++++++++ apps/web/templates/draft_register.html | 30 +++++++ apps/web/templates/draft_uziv_panel.html | 24 +++++ apps/web/templates/draft_vypis_jizd.html | 16 ++++ apps/web/templates/draft_vypsat_jizdu.html | 87 ++++++++++++++++++ apps/web/templates/web/car_management.html | 57 ++++++++++++ apps/web/templates/web/journey_list.html | 31 ++++++- apps/web/templates/web/user_mgmt.html | 11 +++ apps/web/views/journey.py | 93 +++++++++++++++++++- jizdoteka/urls.py | 17 ++-- 14 files changed, 442 insertions(+), 41 deletions(-) create mode 100644 apps/web/templates/draft_index.html delete mode 100644 apps/web/templates/draft_login.html create mode 100644 apps/web/templates/draft_pridat_vozidlo.html create mode 100644 apps/web/templates/draft_register.html create mode 100644 apps/web/templates/draft_uziv_panel.html create mode 100644 apps/web/templates/draft_vypis_jizd.html create mode 100644 apps/web/templates/draft_vypsat_jizdu.html create mode 100644 apps/web/templates/web/car_management.html create mode 100644 apps/web/templates/web/user_mgmt.html diff --git a/apps/web/templates/base.html b/apps/web/templates/base.html index d597cdc..c9ec1a9 100644 --- a/apps/web/templates/base.html +++ b/apps/web/templates/base.html @@ -9,8 +9,11 @@ + - + + + {% block extrahead %}{% endblock %}

Jizdoteka.cz

diff --git a/apps/web/templates/draft.css b/apps/web/templates/draft.css index f099430..1c58c5c 100644 --- a/apps/web/templates/draft.css +++ b/apps/web/templates/draft.css @@ -1,9 +1,34 @@ +/* Zaklady. Nejdrive zakladni veci, ktere sjednocuji drtivou vetsinu nastaveni. */ + body { background: black; padding: 0px; margin: 0 auto; max-width: 1280px; font-family: arial;} +div { background: #4b9320; } + h1 { margin: 0px; padding: 5px; text-align: right; color: white;} +h2 { padding: 10px; margin: 0px; text-align: center;} h4 { padding: 10px; margin: 0px; text-align: center;} + +a {width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px;} p { padding: 4px; margin: 2px;border: 1px solid black; border-radius: 10px;} + input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } -div { background: #4b9320; } +select {width: 100%; text-align: center; padding: 5px;} +textarea {width: 100%; box-sizing: border-box;} + +#prechod {background: linear-gradient(#4b9320, #71c900)} +#stranka {background: #71c900;} +#vyber_barvy { height: 64px;} + +/* Nastaveni pro tlacitko typu submit */ +#login_tlacitko {width: 100%; box-sizing: border-box; background-color: #094100; color: white; border: 2px solid black;} +#login_tlacitko:hover {background-color: #1f9900; border: 2px solid white;} +/* Chceme sjednotit tlacitko typu a a submit? */ +#tlacitko {width: 100%; box-sizing: border-box; background-color: #094100; color: white; border: 2px solid black; display: block;} +#tlacitko:hover {background-color: #1f9900; border: 2px solid white;} + +/* Nastaveni k dialogu ceny */ +#cena_spolujizdy {width: 49%; box-sizing: border-box;} +#cena_spolujizdy_sel {width: 49%; box-sizing: border-box;} -#prechod {background: linear-gradient(#4b9320, #80e400);} -#stranka {background: #80e400;} +.poznamka {background: orange; font-size: 20px; text-align: center;} +.informace {background: #4e7fff; font-size: 20px; text-align: center;} +.vlas_voz { width: 20px;} diff --git a/apps/web/templates/draft_index.html b/apps/web/templates/draft_index.html new file mode 100644 index 0000000..cc7bf13 --- /dev/null +++ b/apps/web/templates/draft_index.html @@ -0,0 +1,14 @@ + + + + Jizdoteka + + + + + + + +

Jizdoteka.cz

+ + diff --git a/apps/web/templates/draft_login.html b/apps/web/templates/draft_login.html deleted file mode 100644 index 2667eb7..0000000 --- a/apps/web/templates/draft_login.html +++ /dev/null @@ -1,29 +0,0 @@ - - - - Jizdoteka - Draft - - - - - - - -
-

Jizdoteka.cz

-

Přihlášení

-
-
- - - -

- Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. -

-
-
-
- - diff --git a/apps/web/templates/draft_pridat_vozidlo.html b/apps/web/templates/draft_pridat_vozidlo.html new file mode 100644 index 0000000..dabdb69 --- /dev/null +++ b/apps/web/templates/draft_pridat_vozidlo.html @@ -0,0 +1,38 @@ + + + + Jizdoteka - Přidat vozidlo + + + + + + + +

Jizdoteka.cz

+

Přidat vozidlo

+
+
+

Značka Vašeho vozidla

+ +

Barva Vašeho vozidla

+ +

Další vlastnosti

+
+
+
+
+

SPZ Vašeho vozidla

+

+ Poznámka:
+ SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
+ V případě vyplnění ulehčíte spolucestujícím snažší nalezení. +

+ + +
+
+ + diff --git a/apps/web/templates/draft_register.html b/apps/web/templates/draft_register.html new file mode 100644 index 0000000..1f5734e --- /dev/null +++ b/apps/web/templates/draft_register.html @@ -0,0 +1,30 @@ + + + + Jizdoteka - Registrace + + + + + + + +

Jizdoteka.cz

+

Registrace

+
+
+ + + +
+ + +

+ Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. +

+
+
+ + diff --git a/apps/web/templates/draft_uziv_panel.html b/apps/web/templates/draft_uziv_panel.html new file mode 100644 index 0000000..2af4add --- /dev/null +++ b/apps/web/templates/draft_uziv_panel.html @@ -0,0 +1,24 @@ + + + + Jizdoteka - Nastavení uživatele + + + + + + + +

Jizdoteka.cz

+ +

Nastavení uživatele

+
+
+ + +
+
+ + diff --git a/apps/web/templates/draft_vypis_jizd.html b/apps/web/templates/draft_vypis_jizd.html new file mode 100644 index 0000000..07591d9 --- /dev/null +++ b/apps/web/templates/draft_vypis_jizd.html @@ -0,0 +1,16 @@ + + + + Jizdoteka + + + + + + + +
+

Jizdoteka.cz

+
+ + diff --git a/apps/web/templates/draft_vypsat_jizdu.html b/apps/web/templates/draft_vypsat_jizdu.html new file mode 100644 index 0000000..fd86ecd --- /dev/null +++ b/apps/web/templates/draft_vypsat_jizdu.html @@ -0,0 +1,87 @@ + + + + Jizdoteka - Vypsat spolujízdu + + + + + + + +

Jizdoteka.cz

+

Vypsat spolujízdu

+
+
+ + +

Počátek Vaší trasy

+ + +

Cíl Vaší trasy

+ + +

Pravidelnost

+ + +

+ UPOZORNĚNÍ:
+ V případě zadání pravidelného dne spolujízdy se použije Vaše cena, čas a trasa.
+ Prosím, berte na vědomí, že po vypsání pravidelné spolujízdy se Vás Jízdotéka bude ptát, zda chcete jízdu zrušit. + Pakliže chcete jezdit opakovaně, můžete dotaz Jízdotéky ignorovat. +

+ + +

Cena spolujízdy

+

+ Průměrná cena na dané trase:
+ << cena >>
+ Toto má pouze informativní charakter. + +

+ + + + + +

Poznámky

+ + +
+
+ + diff --git a/apps/web/templates/web/car_management.html b/apps/web/templates/web/car_management.html new file mode 100644 index 0000000..6683466 --- /dev/null +++ b/apps/web/templates/web/car_management.html @@ -0,0 +1,57 @@ +{% extends 'base.html' %} +{% load i18n %} +{% load static from staticfiles %} +{% load journey_tags %} + +{% block content %} + +

Přidat vozidlo

+
+
+

Značka Vašeho vozidla

+ +

Barva Vašeho vozidla

+ +

Další vlastnosti

+
+
+
+
+
+

SPZ Vašeho vozidla

+

+ Poznámka:
+ SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
+ V případě vyplnění ulehčíte spolucestujícím snažší nalezení. +

+ + +
+ + + {% for vehicle in vehicle_list %} +
+

+ {{ _('Vozidlo:') }}
+ {{ _('Barva:') }}
+ {{ _('SPZ:') }} +

+
+
+

+ {{ vehicle.name }}
+ {{ vehicle.color }}
+ {{ vehicle.register }} +

+
+
+
+ + + +
+
+ {% endfor %} + + +{% endblock %} diff --git a/apps/web/templates/web/journey_list.html b/apps/web/templates/web/journey_list.html index 436d365..456c79d 100644 --- a/apps/web/templates/web/journey_list.html +++ b/apps/web/templates/web/journey_list.html @@ -5,6 +5,7 @@ {% block content %} +
{% csrf_token %} {{ form }} @@ -60,4 +61,32 @@ -{% endblock %} \ No newline at end of file +{% endblock %} +======= +

Vypsané spolujízdy

+
diff --git a/apps/web/templates/web/user_mgmt.html b/apps/web/templates/web/user_mgmt.html new file mode 100644 index 0000000..7316107 --- /dev/null +++ b/apps/web/templates/web/user_mgmt.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} +

Nastavení uživatele

+
+
+ {% csrf_token %} + {{ form }} + + +
+{% endblock content %} diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index f32dc6f..e29829b 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -1,6 +1,8 @@ + from django.shortcuts import render from django.views.generic import ListView, DetailView, TemplateView, RedirectView, CreateView, UpdateView from django.views.generic.edit import FormView + from .. import models from .. import forms import googlemaps @@ -15,6 +17,94 @@ # Create your views here. # Google API key: AIzaSyAen5jtHmdJ5ZW3ZOCoqDVjZLkDlILJ014 +from django.shortcuts import render, redirect +from django.views.generic import ListView, DetailView, TemplateView, RedirectView, View +from . import models +from pprint import pprint + +from django.contrib.auth.decorators import login_required +from django.contrib.auth import authenticate, login, logout + + +from django.http import HttpResponse, HttpResponseRedirect + +## Import forms +from . import forms + +def index(request): + return render(request, 'web/index.html') + +def logout_user(request): + logout(request) + return HttpResponseRedirect('../../') + +class LoginScreen(View): + user_name = None + user_pass = None + login_form = forms.LoginForm() + redirect_bool = False + + user = None + + def get(self, request): + return render(request, 'web/login_screen.html', {"form": self.login_form}) + + def post(self, request): + self.user_name = request.POST['user_name'] + self.user_pass = request.POST['user_pass'] + self._check_credentials() + + if self.user: + login(request, self.user) + else: + return HttpResponse("INVALID CREDENTIALS!") + return HttpResponseRedirect('../../') + + def _check_credentials(self): + if self.user_name and self.user_pass: + self.user = authenticate(username = self.user_name, password = self.user_pass) + else: + return HttpResponse("MISSING CREDENTIALS!") + +class RegisterScreen(View): + user_mail = None + user_pass = None + register_form = forms.RegisterForm() + + correct_day = None + asked_day = None + question_ok = False + + request = None + + def get(self, request): + return render(request, 'web/register.html', {"form": self.register_form}) + + def post(self, request): + self.correct_day = self.register_form.correct_day + self.request = request + + self._post_get_details() + self._check_security_question() + return render(request, 'web/register.html', {"form": self.register_form}) + + def _post_get_details(self): + self.user_mail = self.request.POST['user_email'] + user_mail_confirm = self.request.POST['user_email_confirm'] + self.user_pass = self.request.POST['user_password'] + user_pass_confirm = self.request.POST['user_password_confirm'] + + self.asked_day = self.request.POST['random_antibot'] + + def _check_security_question(self): + self.correct_day = self.register_form.correct_day + if self.correct_day == self.asked_day: + self.question_ok = True + +#@login_required +#def user_mgmt(request): +# manage_form = forms.ManageForm() +# return render(request, 'web/user_mgmt.html', {"form": manage_form}) class WaypointNotFound(Exception): pass @@ -162,6 +252,7 @@ def __repr__(self): class UserDetail(DetailView): model = models.User + # http://kevindias.com/writing/django-class-based-views-multiple-inline-formsets/ class JourneyCreate(CreateView): template_name = 'web/journey_create2.html' @@ -301,4 +392,4 @@ def form_invalid(self, form, form_wpt): super(JourneyUpdate, self).form_invalid(form) return self.render_to_response( self.get_context_data(form=form, - form_wpt=form_wpt)) \ No newline at end of file + form_wpt=form_wpt)) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index b1db9fd..ad8ad5b 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -27,13 +27,18 @@ name='journey_detail' ), - ## Nutne pro prihlasen - url(r'^login_screen/$', views.LoginScreen.as_view(), name="login_screen"), - url(r'^logout_user/$', views.logout_user, name="logout_user"), - url(r'^register/$', views.RegisterScreen.as_view(), name="register"), - url(r'^user/$', views.User.as_view(), name="user"), + url(r'^journey/$', journey.JourneyList.as_view(), name='journey'), + url(r'^journey/new/$', journey.JourneyCreate.as_view(), name='journey_new'), + url(r'^journey/update/(?P[0-9]+)$', journey.JourneyUpdate.as_view(), name='journey_update'), + url(r'^jounrey/(?P[0-9]+)$', - url(r'^cars/$', views.Car.as_view(), name="cars"), + url(r'^journey/(?P[0-9]+)$', journey.JourneyDetail.as_view(), name='journey_detail'), + url(r'^$', views.index, name='index'), + + ## Nutne pro prihlaseni + url(r'^login_screen/$', views.LoginScreen.as_view(), name = "login_screen"), + url(r'^logout_user/$', views.logout_user, name = "logout_user"), + url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), url(r'^accounts/', include('allauth.urls')), From 36be8f5767854632da51faeb4d226d14b4f41d4c Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 28 Feb 2016 17:06:50 +0100 Subject: [PATCH 20/37] Minifix: Docasne vyrazen user_mgmt (neni v urls) Duvod: Rozpracovany RegisterScreen (viz views.py) UserManagement: WIP Signed-off-by: Kosieh Barter --- apps/web/templates/web/index.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/apps/web/templates/web/index.html b/apps/web/templates/web/index.html index 9814ecf..6f439e4 100644 --- a/apps/web/templates/web/index.html +++ b/apps/web/templates/web/index.html @@ -2,12 +2,20 @@ {% block content %}
+<<<<<<< HEAD {% for name, href in links.items %} {{ name }} {% endfor %} +======= + Přihlásit se + Odhlásit se + Registrovat se + +>>>>>>> Minifix: Docasne vyrazen user_mgmt (neni v urls)
{{ request.user.email }}
{% endblock content %} +Uživatelský panel From 964a5fd3c851f0b02c439db1e999acf868348394 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 28 Feb 2016 18:34:14 +0100 Subject: [PATCH 21/37] Pridan dialog na spravu vozidel - WIP Vse potrebne zahrnuto Signed-off-by: Kosieh Barter --- apps/web/templates/web/car_mgmt.html | 28 ++++++++++++++++++++++++++++ apps/web/views/journey.py | 22 ++++++++++++++++++++++ jizdoteka/urls.py | 2 ++ 3 files changed, 52 insertions(+) create mode 100644 apps/web/templates/web/car_mgmt.html diff --git a/apps/web/templates/web/car_mgmt.html b/apps/web/templates/web/car_mgmt.html new file mode 100644 index 0000000..80ca87b --- /dev/null +++ b/apps/web/templates/web/car_mgmt.html @@ -0,0 +1,28 @@ +{% extends "base.html" %} + +{% block content %} +

Správa vozidel

+
+
{% csrf_token %} + {{ form.as_p }} +

POZNÁMKA:
+ SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
+ V případě vyplnění ulehčíte spolucestujícím snažší nalezení.

+ +
+
+

Seznam vozidel

+ +{% for inc in car_list %} + +
+ {{ inc }}
+
{% csrf_token %} + + +
+
+{% endfor %} +
+ +{% endblock content %} diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index e29829b..90ea1d0 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -38,6 +38,7 @@ def logout_user(request): logout(request) return HttpResponseRedirect('../../') + class LoginScreen(View): user_name = None user_pass = None @@ -66,6 +67,7 @@ def _check_credentials(self): else: return HttpResponse("MISSING CREDENTIALS!") + class RegisterScreen(View): user_mail = None user_pass = None @@ -101,6 +103,25 @@ def _check_security_question(self): if self.correct_day == self.asked_day: self.question_ok = True + +class CarManagement(View): + car_name = None + car_color = None + + car_air_conditioning = False + car_animals_allowed = False + car_has_wifi = False + car_has_highway_sign = False + car_smoking_allowed = False + + car_register_sign = None + + car_form = forms.CarManageForm() + car_list = ["ASFA", "SDFSD"] + + def get(self, request): + return render(request, 'web/car_mgmt.html', {"form": self.car_form, "car_list": self.car_list}) + #@login_required #def user_mgmt(request): # manage_form = forms.ManageForm() @@ -111,6 +132,7 @@ class WaypointNotFound(Exception): class JourneyList(ListView, FormView): + model = models.Journey form_class = forms.SearchJourney success_url = '/' # TODO: replace by generic URL of this page diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index ad8ad5b..303e761 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -40,6 +40,8 @@ url(r'^logout_user/$', views.logout_user, name = "logout_user"), url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), + url(r'^car_mgmt/$', views.CarManagement.as_view(), name = "car_mgmt") + #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), url(r'^accounts/', include('allauth.urls')), From 79c0310503aac8db5e247c50bc577f3778f177fa Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:12:19 +0100 Subject: [PATCH 22/37] Pridany formulare Sprava vozidel, uzivatele (WIP) a registrace Signed-off-by: Kosieh Barter --- apps/web/forms.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/apps/web/forms.py b/apps/web/forms.py index a32236c..8f9b11e 100644 --- a/apps/web/forms.py +++ b/apps/web/forms.py @@ -1,4 +1,5 @@ from django import forms +<<<<<<< HEAD from . import models from random import randint from . import models @@ -27,11 +28,16 @@ class Meta: wpt_update_factory_kwargs = dict(wpt_base_factory_kwargs) wpt_new_factory_kwargs['extra'] = 2 + WaypointNewFormSetFactory = forms.inlineformset_factory( **wpt_new_factory_kwargs) WaypointUpdateFormSetFactory = forms.inlineformset_factory( **wpt_update_factory_kwargs) + user_email = forms.CharField(max_length = 100, label = _("Your E-Mail address")) + user_email_confirm = forms.CharField(max_length = 100, label = _("Your E-Mail address - Confirmation")) + user_password = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password")) + user_password_confirm = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password - Confirmation")) class JourneyFormSet(forms.ModelForm): class Meta: From 788daba06bfdf5d63ebc312008640b2bceb6f751 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:16:48 +0100 Subject: [PATCH 23/37] Hardcodovane hrefy predelany na for z renderu Signed-off-by: Kosieh Barter --- apps/web/templates/web/index.html | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/web/templates/web/index.html b/apps/web/templates/web/index.html index 6f439e4..57374bc 100644 --- a/apps/web/templates/web/index.html +++ b/apps/web/templates/web/index.html @@ -18,4 +18,3 @@
{% endblock content %} -Uživatelský panel From 71c6b7ea632213c36b2a01679ba95e386266599e Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:20:42 +0100 Subject: [PATCH 24/37] Majoritni zmeny, viz komentar Index predelan pro podporu vice odkazu Prihlaseni upraveno pro multilang Opraven formular pro registraci a pridana logika pro registraci uzivatele Pridana logika pro spravu vozidel, pridavani a mazani Koncept spravy uzivatele Signed-off-by: Kosieh Barter --- apps/web/views/journey.py | 155 ++++++++++++++++++++++++++++++++------ 1 file changed, 134 insertions(+), 21 deletions(-) diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index 90ea1d0..d09b104 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -24,6 +24,7 @@ from django.contrib.auth.decorators import login_required from django.contrib.auth import authenticate, login, logout +from emailusernames.utils import create_user from django.http import HttpResponse, HttpResponseRedirect @@ -31,8 +32,12 @@ ## Import forms from . import forms + def index(request): - return render(request, 'web/index.html') + link_dict = {"Login": 'login_screen', "Register": 'register', + "Log out": 'logout_user', "Car Management": 'cars', + "User Management": 'user'} + return render(request, 'web/index.html', {"links": link_dict}) def logout_user(request): logout(request) @@ -40,15 +45,19 @@ def logout_user(request): class LoginScreen(View): + header = "Login" + user_name = None user_pass = None login_form = forms.LoginForm() redirect_bool = False + info_text = None user = None def get(self, request): - return render(request, 'web/login_screen.html', {"form": self.login_form}) + return render(request, 'web/login_screen.html', {"form": self.login_form, + "header": self.header}) def post(self, request): self.user_name = request.POST['user_name'] @@ -69,18 +78,27 @@ def _check_credentials(self): class RegisterScreen(View): + header = "User Registration" + user_mail = None + user_mail_confirm = None user_pass = None + user_pass_confirm = None register_form = forms.RegisterForm() correct_day = None asked_day = None + question_ok = False + user_exists = False + + correct_details = {} request = None def get(self, request): - return render(request, 'web/register.html', {"form": self.register_form}) + return render(request, 'web/register.html', {"form": self.register_form, + "header": self.header}) def post(self, request): self.correct_day = self.register_form.correct_day @@ -88,44 +106,139 @@ def post(self, request): self._post_get_details() self._check_security_question() - return render(request, 'web/register.html', {"form": self.register_form}) + self._check_details() + self._check_existing_user() + + if self.user_exists: + return HttpResponse("ERROR: USER ALREADY EXISTS!") + else: + new_user = create_user(email = self.user_mail, password = self.user_pass) + new_user.save() + return HttpResponse("SUCCESS: USER CREATED") + + #return render(request, 'web/register.html', {"form": self.register_form}) + def _post_get_details(self): self.user_mail = self.request.POST['user_email'] - user_mail_confirm = self.request.POST['user_email_confirm'] + self.user_mail_confirm = self.request.POST['user_email_confirm'] self.user_pass = self.request.POST['user_password'] - user_pass_confirm = self.request.POST['user_password_confirm'] + self.user_pass_confirm = self.request.POST['user_password_confirm'] self.asked_day = self.request.POST['random_antibot'] + def _check_security_question(self): self.correct_day = self.register_form.correct_day if self.correct_day == self.asked_day: self.question_ok = True + else: + return HttpResponse("ERROR: INVALID CONTROL ANSWER!") + + + def _check_details(self): + self.correct_details.update({"correct_name": self.user_mail == self.user_mail_confirm}) + self.correct_details.update({"correct_pass": self.user_pass == self.user_pass_confirm}) + + if False in self.correct_details: + return HttpResponse("ERROR: Some data you entered does not match") + + + def _check_existing_user(self): + test_auth = authenticate(username = self.user_mail, password = self.user_pass) + if test_auth: + self.user_exists = True + else: + self.user_exists = False + class CarManagement(View): - car_name = None - car_color = None + header = "Car Management page" - car_air_conditioning = False - car_animals_allowed = False - car_has_wifi = False - car_has_highway_sign = False - car_smoking_allowed = False + model = None + owner = None + name = None + color = None - car_register_sign = None + air_conditioning = False + animals_allowed = False + has_wifi = False + has_highway_sign = False + smoking_allowed = False - car_form = forms.CarManageForm() - car_list = ["ASFA", "SDFSD"] + register_sign = None + reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\ + to enter your national car sign. Hovever, if\ + you fill it, you will make it easier for\ + passengers to find you.") + + form = forms.CarManageForm() + inp_method = None + message = None def get(self, request): - return render(request, 'web/car_mgmt.html', {"form": self.car_form, "car_list": self.car_list}) + self.model = models.Vehicle.objects.filter(owner = request.user) + return render(request, 'web/cars.html', {"form": self.form, + "car_list": self.model, + "message": self.message, + "reg_notice": self.reg_notice, + "header": self.header}) -#@login_required -#def user_mgmt(request): -# manage_form = forms.ManageForm() -# return render(request, 'web/user_mgmt.html', {"form": manage_form}) + def post(self, request): + self.inp_method = request.POST.get('method') + print (request.POST) + if self.inp_method == 'add_vehicle': + return self._add_car(request) + elif self.inp_method == 'remove_vehicle': + return self._delete_car(request) + else: + return HttpResponse("UNKOWN ERROR WITH DATABASE.") + + def _delete_car(self, in_request): + self.owner = in_request.user + remove_id = in_request.POST.get('car_id') + models.Vehicle.objects.filter(owner = self.owner, id = remove_id).delete() + return HttpResponseRedirect(".") + + def _add_car(self, in_request): + self.owner = in_request.user + self.name = in_request.POST.get('car_name') + self.color = in_request.POST.get('color') + + self.air_conditioning = in_request.POST.get('air_conditioning', False) + self.animals_allowed = in_request.POST.get('animals_allowed', False) + self.has_wifi = in_request.POST.get('has_wifi', False) + self.has_highway_sign = in_request.POST.get('has_highway_sign', False) + self.smoking_allowed = in_request.POST.get('smoking_allowed', False) + + self.register_sign = in_request.POST.get('register_sign') + return self._check_required() + + def _check_required(self): + if self.name and self.color: + new_car = models.Vehicle(owner = self.owner, name = self.name, + color = self.color, register = self.register_sign, + air_conditioning = self.air_conditioning, + animals_allowed = self.animals_allowed, + wifi_on_board = self.has_wifi, + smoking_allowed = self.smoking_allowed, + highway_mark = self.has_highway_sign) + new_car.save() + return HttpResponseRedirect(".") + else: + return HttpResponse("FAILED TO SAVE, MISSING DATA!") + + +class UserManagement(View): + header = "User control panel and information page" + form = forms.ManageForm + + def get(self, request): + return render(request, 'web/user.html', {"form": self.form, + "header": self.header}) + def post(self, request): + pass class WaypointNotFound(Exception): pass From 889d71e3567ac725141a204cc180cde5b027393f Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:29:33 +0100 Subject: [PATCH 25/37] Opravy pro stavajici veci a pridany nove Signed-off-by: Kosieh Barter --- jizdoteka/urls.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index 303e761..a97d9be 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -39,8 +39,12 @@ url(r'^login_screen/$', views.LoginScreen.as_view(), name = "login_screen"), url(r'^logout_user/$', views.logout_user, name = "logout_user"), url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), + url(r'^user/$', views.UserManagement.as_view(), name = "user"), + + url(r'^cars/$', views.CarManagement.as_view(), name = "cars"), + + url(r'^journey_create/$', views.JourneyCreate.as_view(), name = "cars"), - url(r'^car_mgmt/$', views.CarManagement.as_view(), name = "car_mgmt") #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), url(r'^accounts/', include('allauth.urls')), From 7582389562303de9b913bab435788c031fcd31bf Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 21:34:36 +0100 Subject: [PATCH 26/37] Vymazano url na tvorbu spolujizdy (not assigned) Signed-off-by: Kosieh Barter --- apps/web/templates/draft_pridat_vozidlo.html | 38 ------------- apps/web/templates/web/car_management.html | 57 -------------------- apps/web/templates/web/car_mgmt.html | 28 ---------- apps/web/templates/web/user_mgmt.html | 11 ---- jizdoteka/urls.py | 3 -- 5 files changed, 137 deletions(-) delete mode 100644 apps/web/templates/draft_pridat_vozidlo.html delete mode 100644 apps/web/templates/web/car_management.html delete mode 100644 apps/web/templates/web/car_mgmt.html delete mode 100644 apps/web/templates/web/user_mgmt.html diff --git a/apps/web/templates/draft_pridat_vozidlo.html b/apps/web/templates/draft_pridat_vozidlo.html deleted file mode 100644 index dabdb69..0000000 --- a/apps/web/templates/draft_pridat_vozidlo.html +++ /dev/null @@ -1,38 +0,0 @@ - - - - Jizdoteka - Přidat vozidlo - - - - - - - -

Jizdoteka.cz

-

Přidat vozidlo

-
-
-

Značka Vašeho vozidla

- -

Barva Vašeho vozidla

- -

Další vlastnosti

-
-
-
-
-

SPZ Vašeho vozidla

-

- Poznámka:
- SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
- V případě vyplnění ulehčíte spolucestujícím snažší nalezení. -

- - -
-
- - diff --git a/apps/web/templates/web/car_management.html b/apps/web/templates/web/car_management.html deleted file mode 100644 index 6683466..0000000 --- a/apps/web/templates/web/car_management.html +++ /dev/null @@ -1,57 +0,0 @@ -{% extends 'base.html' %} -{% load i18n %} -{% load static from staticfiles %} -{% load journey_tags %} - -{% block content %} - -

Přidat vozidlo

-
-
-

Značka Vašeho vozidla

- -

Barva Vašeho vozidla

- -

Další vlastnosti

-
-
-
-
-
-

SPZ Vašeho vozidla

-

- Poznámka:
- SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
- V případě vyplnění ulehčíte spolucestujícím snažší nalezení. -

- - -
- - - {% for vehicle in vehicle_list %} -
-

- {{ _('Vozidlo:') }}
- {{ _('Barva:') }}
- {{ _('SPZ:') }} -

-
-
-

- {{ vehicle.name }}
- {{ vehicle.color }}
- {{ vehicle.register }} -

-
-
-
- - - -
-
- {% endfor %} - - -{% endblock %} diff --git a/apps/web/templates/web/car_mgmt.html b/apps/web/templates/web/car_mgmt.html deleted file mode 100644 index 80ca87b..0000000 --- a/apps/web/templates/web/car_mgmt.html +++ /dev/null @@ -1,28 +0,0 @@ -{% extends "base.html" %} - -{% block content %} -

Správa vozidel

-
-
{% csrf_token %} - {{ form.as_p }} -

POZNÁMKA:
- SPZ Vašeho vozidla vyplňovat NEMUSÍTE, jedná se o dobrovolný údaj.
- V případě vyplnění ulehčíte spolucestujícím snažší nalezení.

- -
-
-

Seznam vozidel

- -{% for inc in car_list %} - -
- {{ inc }}
-
{% csrf_token %} - - -
-
-{% endfor %} -
- -{% endblock content %} diff --git a/apps/web/templates/web/user_mgmt.html b/apps/web/templates/web/user_mgmt.html deleted file mode 100644 index 7316107..0000000 --- a/apps/web/templates/web/user_mgmt.html +++ /dev/null @@ -1,11 +0,0 @@ -{% extends "base.html" %} -{% block content %} -

Nastavení uživatele

-
-
-
{% csrf_token %} - {{ form }} - -
-
-{% endblock content %} diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index a97d9be..ee851d1 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -43,9 +43,6 @@ url(r'^cars/$', views.CarManagement.as_view(), name = "cars"), - url(r'^journey_create/$', views.JourneyCreate.as_view(), name = "cars"), - - #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), url(r'^accounts/', include('allauth.urls')), From 2a49589d3fda4c45c0874c4abead652448283031 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 22:04:14 +0100 Subject: [PATCH 27/37] Pridana informace o externim repu na emailusernames Signed-off-by: Kosieh Barter --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index 4051526..0005087 100644 --- a/README.md +++ b/README.md @@ -47,7 +47,15 @@ Rozpracováno (částečně funguje): Chybí, je třeba opravit (hmm.. od čeho začít :) * plnění webu day prozatím pouze skrze administraci (viz. link výše) + * front-end, design * hodnocení jízd * poptávky jízd * (a všechno ostatní ...) + + * (skrze administraci) lze přihlásit pasažéra i na trasu mimo jeho jízdu - toto budeme stejně ošetřovat už při vkládání do DB, takže to nakonec tak moc vadit nebude + * všechno ostatní ... + +## Zavislosti + * je potreba rucne doinstalovat emailusernames, pip nefunguje (nevim proc) + * https://github.com/harmo/django-email-as-username From 4aaa039f3a3e650a1cd0182c6d2a504134a8e8ba Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 22:04:59 +0100 Subject: [PATCH 28/37] Opraveno pro splneni PEP8 Signed-off-by: Kosieh Barter --- jizdoteka/urls.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index ee851d1..ca5d521 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -36,12 +36,12 @@ url(r'^$', views.index, name='index'), ## Nutne pro prihlaseni - url(r'^login_screen/$', views.LoginScreen.as_view(), name = "login_screen"), - url(r'^logout_user/$', views.logout_user, name = "logout_user"), - url(r'^register/$', views.RegisterScreen.as_view(), name = "register"), - url(r'^user/$', views.UserManagement.as_view(), name = "user"), + url(r'^login_screen/$', views.LoginScreen.as_view(), name="login_screen"), + url(r'^logout_user/$', views.logout_user, name="logout_user"), + url(r'^register/$', views.RegisterScreen.as_view(), name="register"), + url(r'^user/$', views.UserManagement.as_view(), name="user"), - url(r'^cars/$', views.CarManagement.as_view(), name = "cars"), + url(r'^cars/$', views.CarManagement.as_view(), name="cars"), #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), url(r'^accounts/', include('allauth.urls')), From 97100c028797a885d41fbaec1b447c6548b36087 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 1 Mar 2016 22:05:27 +0100 Subject: [PATCH 29/37] Opraveno pro splneni PEP8 Signed-off-by: Kosieh Barter --- apps/web/views/journey.py | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index d09b104..e86ed5e 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -178,7 +178,7 @@ class CarManagement(View): message = None def get(self, request): - self.model = models.Vehicle.objects.filter(owner = request.user) + self.model = models.Vehicle.objects.filter(owner=request.user) return render(request, 'web/cars.html', {"form": self.form, "car_list": self.model, "message": self.message, @@ -217,13 +217,13 @@ def _add_car(self, in_request): def _check_required(self): if self.name and self.color: - new_car = models.Vehicle(owner = self.owner, name = self.name, - color = self.color, register = self.register_sign, - air_conditioning = self.air_conditioning, - animals_allowed = self.animals_allowed, - wifi_on_board = self.has_wifi, - smoking_allowed = self.smoking_allowed, - highway_mark = self.has_highway_sign) + new_car = models.Vehicle(owner=self.owner, name=self.name, + color=self.color, register=self.register_sign, + air_conditioning=self.air_conditioning, + animals_allowed=self.animals_allowed, + wifi_on_board=self.has_wifi, + smoking_allowed=self.smoking_allowed, + highway_mark=self.has_highway_sign) new_car.save() return HttpResponseRedirect(".") else: From 5fb4eefee98b8591c681b69457a2bb2f3f39abdd Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sat, 5 Mar 2016 22:34:06 +0100 Subject: [PATCH 30/37] Commit pred rozdelenim Signed-off-by: Kosieh Barter --- apps/web/views/journey.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index e86ed5e..90bae8e 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -34,14 +34,11 @@ def index(request): - link_dict = {"Login": 'login_screen', "Register": 'register', - "Log out": 'logout_user', "Car Management": 'cars', - "User Management": 'user'} - return render(request, 'web/index.html', {"links": link_dict}) + return render(request, 'web/index.html') def logout_user(request): logout(request) - return HttpResponseRedirect('../../') + return HttpResponseRedirect('../../') ## TODO: OPRAVIT, vyvaruj se absolutnim adresam class LoginScreen(View): @@ -66,13 +63,14 @@ def post(self, request): if self.user: login(request, self.user) + return HttpResponseRedirect('../../') else: return HttpResponse("INVALID CREDENTIALS!") - return HttpResponseRedirect('../../') def _check_credentials(self): if self.user_name and self.user_pass: - self.user = authenticate(username = self.user_name, password = self.user_pass) + self.user = authenticate(email=self.user_name, + password=self.user_pass) else: return HttpResponse("MISSING CREDENTIALS!") @@ -145,7 +143,9 @@ def _check_details(self): def _check_existing_user(self): - test_auth = authenticate(username = self.user_mail, password = self.user_pass) + test_auth = authenticate(username = self.user_mail, + password = self.user_pass, + email = self.user_mail) if test_auth: self.user_exists = True else: @@ -153,7 +153,7 @@ def _check_existing_user(self): -class CarManagement(View): +class Car(View): header = "Car Management page" model = None @@ -187,7 +187,6 @@ def get(self, request): def post(self, request): self.inp_method = request.POST.get('method') - print (request.POST) if self.inp_method == 'add_vehicle': return self._add_car(request) elif self.inp_method == 'remove_vehicle': @@ -230,7 +229,7 @@ def _check_required(self): return HttpResponse("FAILED TO SAVE, MISSING DATA!") -class UserManagement(View): +class User(View): header = "User control panel and information page" form = forms.ManageForm From 853baa9d23498a81155fffe1c17e575a02325a7f Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sat, 5 Mar 2016 22:35:57 +0100 Subject: [PATCH 31/37] Commit pred rozdelenim Signed-off-by: Kosieh Barter --- jizdoteka/urls.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index ca5d521..feb0528 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -35,13 +35,13 @@ url(r'^journey/(?P[0-9]+)$', journey.JourneyDetail.as_view(), name='journey_detail'), url(r'^$', views.index, name='index'), - ## Nutne pro prihlaseni + ## Nutne pro prihlasen url(r'^login_screen/$', views.LoginScreen.as_view(), name="login_screen"), url(r'^logout_user/$', views.logout_user, name="logout_user"), url(r'^register/$', views.RegisterScreen.as_view(), name="register"), - url(r'^user/$', views.UserManagement.as_view(), name="user"), + url(r'^user/$', views.User.as_view(), name="user"), - url(r'^cars/$', views.CarManagement.as_view(), name="cars"), + url(r'^cars/$', views.Car.as_view(), name="cars"), #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), url(r'^accounts/', include('allauth.urls')), From dfbe2ac5b24d65643a61dadcb8e7adfb1a3b8463 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 6 Mar 2016 08:04:42 +0100 Subject: [PATCH 32/37] Commit pred rebasem Signed-off-by: Kosieh Barter --- apps/web/forms.py | 10 ++++------ apps/web/models.py | 6 ++++++ apps/web/static/web/css/styles.css | 2 +- apps/web/templates/base.html | 17 +++++++++++++++++ apps/web/templates/web/index.html | 15 +++++---------- apps/web/templates/web/login_screen.html | 5 ----- jizdoteka/settings.py | 20 +++++++++++++++----- 7 files changed, 48 insertions(+), 27 deletions(-) diff --git a/apps/web/forms.py b/apps/web/forms.py index 8f9b11e..06890c1 100644 --- a/apps/web/forms.py +++ b/apps/web/forms.py @@ -1,10 +1,12 @@ from django import forms -<<<<<<< HEAD + from . import models + from random import randint from . import models from django.utils.translation import ugettext_lazy as _ + class SearchJourney(forms.Form): city_from = forms.CharField() city_to = forms.CharField() @@ -39,6 +41,7 @@ class Meta: user_password = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password")) user_password_confirm = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password - Confirmation")) + class JourneyFormSet(forms.ModelForm): class Meta: model = models.JourneyWaypoints @@ -94,8 +97,3 @@ class CarManageForm(forms.Form): smoking_allowed = forms.BooleanField(label = "Smoking allowed in vehicle") register_sign = forms.CharField(max_length = 16, label = _("Car national register sign")) - - -class CreateJourneyForm(forms.Form): - - pass diff --git a/apps/web/models.py b/apps/web/models.py index 155dc59..97ce33b 100644 --- a/apps/web/models.py +++ b/apps/web/models.py @@ -5,6 +5,12 @@ from django.db import models from django.conf import settings from django.db.models import signals +<<<<<<< HEAD +======= + +from django.contrib.auth.hashers import check_password +#from django.contrib.gis.db import models as gis_models +>>>>>>> Commit pred rebasem from django.contrib.auth.models import User diff --git a/apps/web/static/web/css/styles.css b/apps/web/static/web/css/styles.css index 9a5d863..241f7be 100644 --- a/apps/web/static/web/css/styles.css +++ b/apps/web/static/web/css/styles.css @@ -7,7 +7,7 @@ h2 { padding: 10px; margin: 0px; text-align: center;} h4 { padding: 10px; margin: 0px; text-align: center;} a {text-align: center; padding: 10px; border: 2px solid black; border-radius: 10px; text-decoration: none; display: inline-block; width: 50%; box-sizing: border-box; margin: -1px} -p { padding: 4px; margin: 0px;border: 1px solid black; border-radius: 10px;} +p { padding: 4px; margin: 0px; } input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } select {width: 100%; text-align: center; padding: 5px;} diff --git a/apps/web/templates/base.html b/apps/web/templates/base.html index c9ec1a9..1f3c9f0 100644 --- a/apps/web/templates/base.html +++ b/apps/web/templates/base.html @@ -16,6 +16,23 @@ {% block extrahead %}{% endblock %} +

Jizdoteka.cz

{% block content %} {% endblock %} diff --git a/apps/web/templates/web/index.html b/apps/web/templates/web/index.html index 57374bc..c90bfa5 100644 --- a/apps/web/templates/web/index.html +++ b/apps/web/templates/web/index.html @@ -2,16 +2,11 @@ {% block content %}
-<<<<<<< HEAD - {% for name, href in links.items %} - {{ name }} - {% endfor %} -======= - Přihlásit se - Odhlásit se - Registrovat se - ->>>>>>> Minifix: Docasne vyrazen user_mgmt (neni v urls) + Login + Logout + Register + User Management + Cars
{{ request.user.email }} diff --git a/apps/web/templates/web/login_screen.html b/apps/web/templates/web/login_screen.html index 92f12a7..0e4e9cf 100644 --- a/apps/web/templates/web/login_screen.html +++ b/apps/web/templates/web/login_screen.html @@ -2,7 +2,6 @@ {% block content %}

{{ header }}

-
{% csrf_token %} {{ form.as_p}} @@ -11,9 +10,5 @@

Nemáte účet? Zaregistrujte se zde. - - {% block error_message %} - - {% endblock error_message %}
{% endblock content %} diff --git a/jizdoteka/settings.py b/jizdoteka/settings.py index b39b71b..d6d34ef 100644 --- a/jizdoteka/settings.py +++ b/jizdoteka/settings.py @@ -28,8 +28,6 @@ ALLOWED_HOSTS = [] - - # Application definition INSTALLED_APPS = [ @@ -42,8 +40,14 @@ # 'django.contrib.gis', 'debug_toolbar', 'apps.web', + 'django.contrib.sites', + 'allauth', + 'allauth.account', + 'allauth.socialaccount', 'emailusernames', - 'colorfield', + + # Facebook + 'allauth.socialaccount.providers.facebook', ] MIDDLEWARE_CLASSES = [ @@ -70,6 +74,9 @@ 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', + # Required by allauth template tags + "django.core.context_processors.request", + # allauth specific context processors ], 'libraries': { # TODO: ugly hack! Figure out how to load templatetags properly @@ -93,11 +100,14 @@ } AUTHENTICATION_BACKENDS = ( - 'emailusernames.backends.EmailAuthBackend', # Uncomment the following to make Django tests pass: - # 'django.contrib.auth.backends.ModelBackend', + 'emailusernames.backends.EmailAuthBackend', + #'django.contrib.auth.backends.ModelBackend', + # `allauth` specific authentication methods, such as login by e-mail + 'allauth.account.auth_backends.AuthenticationBackend', ) + # Password validation # https://docs.djangoproject.com/en/1.9/ref/settings/#auth-password-validators From 4a18a6ee6fb9b762cbe62b394acbb767c4b2bfda Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 6 Mar 2016 08:07:57 +0100 Subject: [PATCH 33/37] Odstraneni nepotrebnosti a commit pred rebasem Signed-off-by: Kosieh Barter --- apps/web/migrations.old/0001_initial.py | 91 --------------- .../migrations.old/0002_auto_20160211_2320.py | 36 ------ .../migrations.old/0003_auto_20160211_2321.py | 21 ---- .../migrations.old/0004_auto_20160212_0905.py | 49 --------- .../migrations.old/0005_auto_20160212_0907.py | 25 ----- .../migrations.old/0006_auto_20160212_0921.py | 36 ------ .../0007_journeywaypoints_partial_price.py | 20 ---- .../migrations.old/0008_auto_20160212_0941.py | 34 ------ .../migrations.old/0009_auto_20160212_1109.py | 81 -------------- .../migrations.old/0010_auto_20160212_1128.py | 25 ----- .../migrations.old/0011_auto_20160212_1138.py | 29 ----- .../migrations.old/0012_auto_20160212_1143.py | 24 ---- .../migrations.old/0013_auto_20160212_1235.py | 27 ----- .../migrations.old/0014_auto_20160212_1236.py | 22 ---- .../migrations.old/0015_auto_20160212_1253.py | 25 ----- .../migrations.old/0016_auto_20160212_1256.py | 24 ---- .../migrations.old/0017_auto_20160212_1307.py | 20 ---- apps/web/migrations.old/__init__.py | 0 apps/web/migrations/0001_initial.py | 104 ------------------ apps/web/migrations/__init__.py | 0 20 files changed, 693 deletions(-) delete mode 100644 apps/web/migrations.old/0001_initial.py delete mode 100644 apps/web/migrations.old/0002_auto_20160211_2320.py delete mode 100644 apps/web/migrations.old/0003_auto_20160211_2321.py delete mode 100644 apps/web/migrations.old/0004_auto_20160212_0905.py delete mode 100644 apps/web/migrations.old/0005_auto_20160212_0907.py delete mode 100644 apps/web/migrations.old/0006_auto_20160212_0921.py delete mode 100644 apps/web/migrations.old/0007_journeywaypoints_partial_price.py delete mode 100644 apps/web/migrations.old/0008_auto_20160212_0941.py delete mode 100644 apps/web/migrations.old/0009_auto_20160212_1109.py delete mode 100644 apps/web/migrations.old/0010_auto_20160212_1128.py delete mode 100644 apps/web/migrations.old/0011_auto_20160212_1138.py delete mode 100644 apps/web/migrations.old/0012_auto_20160212_1143.py delete mode 100644 apps/web/migrations.old/0013_auto_20160212_1235.py delete mode 100644 apps/web/migrations.old/0014_auto_20160212_1236.py delete mode 100644 apps/web/migrations.old/0015_auto_20160212_1253.py delete mode 100644 apps/web/migrations.old/0016_auto_20160212_1256.py delete mode 100644 apps/web/migrations.old/0017_auto_20160212_1307.py delete mode 100644 apps/web/migrations.old/__init__.py delete mode 100644 apps/web/migrations/0001_initial.py delete mode 100644 apps/web/migrations/__init__.py diff --git a/apps/web/migrations.old/0001_initial.py b/apps/web/migrations.old/0001_initial.py deleted file mode 100644 index bef3624..0000000 --- a/apps/web/migrations.old/0001_initial.py +++ /dev/null @@ -1,91 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-11 23:14 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Comment', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date', models.DateTimeField()), - ('message', models.TextField()), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_author', to=settings.AUTH_USER_MODEL)), - ('recipient', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_recipient', to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='Journey', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('price', models.FloatField(default=0)), - ('currency', models.CharField(default='CZK', max_length=3)), - ], - ), - migrations.CreateModel( - name='JourneyWaypoints', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('order', models.IntegerField(default=0, verbose_name='Number of stop from start point')), - ('journey', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Journey')), - ], - ), - migrations.CreateModel( - name='UserProfile', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('phone_number', models.CharField(blank=True, max_length=13, verbose_name='Phone numberr')), - ('reputation', models.IntegerField(blank=True, default=0)), - ('modeid', models.CharField(blank=True, max_length=100)), - ('num_journeys', models.IntegerField(blank=True, default=0)), - ('driven_km', models.IntegerField(blank=True, default=0)), - ('drive_years', models.IntegerField(blank=True, default=0)), - ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='Waypoint', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('city', models.CharField(max_length=100)), - ('label', models.CharField(blank=True, default='', max_length=100)), - ], - ), - migrations.AddField( - model_name='journeywaypoints', - name='waypoint', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Waypoint'), - ), - migrations.AddField( - model_name='journey', - name='city_from', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='wpt_from', to='web.Waypoint'), - ), - migrations.AddField( - model_name='journey', - name='city_to', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='wpt_to', to='web.Waypoint'), - ), - migrations.AddField( - model_name='journey', - name='comments', - field=models.ManyToManyField(blank=True, to='web.Comment'), - ), - migrations.AddField( - model_name='journey', - name='driver', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/apps/web/migrations.old/0002_auto_20160211_2320.py b/apps/web/migrations.old/0002_auto_20160211_2320.py deleted file mode 100644 index f9d7403..0000000 --- a/apps/web/migrations.old/0002_auto_20160211_2320.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-11 23:20 -from __future__ import unicode_literals - -import datetime -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0001_initial'), - ] - - operations = [ - migrations.AddField( - model_name='journey', - name='approx', - field=models.BooleanField(default='', verbose_name='Driver is not sure about exact time of departure'), - ), - migrations.AddField( - model_name='journey', - name='approx_note', - field=models.CharField(blank=True, max_length=100, verbose_name='If approx is applied, this can be used for short note to departure'), - ), - migrations.AddField( - model_name='journey', - name='date', - field=models.DateTimeField(default=datetime.datetime(2016, 2, 11, 23, 20, 43, 417232), verbose_name='Date/time of start of journey'), - ), - migrations.AddField( - model_name='journey', - name='waypoints', - field=models.ManyToManyField(through='web.JourneyWaypoints', to='web.Waypoint'), - ), - ] diff --git a/apps/web/migrations.old/0003_auto_20160211_2321.py b/apps/web/migrations.old/0003_auto_20160211_2321.py deleted file mode 100644 index 4f9933a..0000000 --- a/apps/web/migrations.old/0003_auto_20160211_2321.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-11 23:21 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.utils.timezone - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0002_auto_20160211_2320'), - ] - - operations = [ - migrations.AlterField( - model_name='journey', - name='date', - field=models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date/time of start of journey'), - ), - ] diff --git a/apps/web/migrations.old/0004_auto_20160212_0905.py b/apps/web/migrations.old/0004_auto_20160212_0905.py deleted file mode 100644 index 6c0832c..0000000 --- a/apps/web/migrations.old/0004_auto_20160212_0905.py +++ /dev/null @@ -1,49 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 09:05 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0003_auto_20160211_2321'), - ] - - operations = [ - migrations.CreateModel( - name='Group', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=128)), - ], - ), - migrations.CreateModel( - name='Membership', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date_joined', models.DateField()), - ('invite_reason', models.CharField(max_length=64)), - ('group', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Group')), - ], - ), - migrations.CreateModel( - name='Person', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('name', models.CharField(max_length=128)), - ], - ), - migrations.AddField( - model_name='membership', - name='person', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Person'), - ), - migrations.AddField( - model_name='group', - name='members', - field=models.ManyToManyField(through='web.Membership', to='web.Person'), - ), - ] diff --git a/apps/web/migrations.old/0005_auto_20160212_0907.py b/apps/web/migrations.old/0005_auto_20160212_0907.py deleted file mode 100644 index 2644aad..0000000 --- a/apps/web/migrations.old/0005_auto_20160212_0907.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 09:07 -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0004_auto_20160212_0905'), - ] - - operations = [ - migrations.RenameField( - model_name='membership', - old_name='group', - new_name='group1', - ), - migrations.RenameField( - model_name='membership', - old_name='person', - new_name='person1', - ), - ] diff --git a/apps/web/migrations.old/0006_auto_20160212_0921.py b/apps/web/migrations.old/0006_auto_20160212_0921.py deleted file mode 100644 index b8db398..0000000 --- a/apps/web/migrations.old/0006_auto_20160212_0921.py +++ /dev/null @@ -1,36 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 09:21 -from __future__ import unicode_literals - -from django.db import migrations - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0005_auto_20160212_0907'), - ] - - operations = [ - migrations.RemoveField( - model_name='group', - name='members', - ), - migrations.RemoveField( - model_name='membership', - name='group1', - ), - migrations.RemoveField( - model_name='membership', - name='person1', - ), - migrations.DeleteModel( - name='Group', - ), - migrations.DeleteModel( - name='Membership', - ), - migrations.DeleteModel( - name='Person', - ), - ] diff --git a/apps/web/migrations.old/0007_journeywaypoints_partial_price.py b/apps/web/migrations.old/0007_journeywaypoints_partial_price.py deleted file mode 100644 index f5fb8e2..0000000 --- a/apps/web/migrations.old/0007_journeywaypoints_partial_price.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 09:25 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0006_auto_20160212_0921'), - ] - - operations = [ - migrations.AddField( - model_name='journeywaypoints', - name='partial_price', - field=models.FloatField(blank=True, default=None, null=True, verbose_name='Price between previous and this waypoint (currency is same).'), - ), - ] diff --git a/apps/web/migrations.old/0008_auto_20160212_0941.py b/apps/web/migrations.old/0008_auto_20160212_0941.py deleted file mode 100644 index 1144541..0000000 --- a/apps/web/migrations.old/0008_auto_20160212_0941.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 09:41 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0007_journeywaypoints_partial_price'), - ] - - operations = [ - migrations.AddField( - model_name='waypoint', - name='lat', - field=models.FloatField(default=0, verbose_name='Lattitude'), - ), - migrations.AddField( - model_name='waypoint', - name='long', - field=models.FloatField(default=0, verbose_name='Longtitude'), - ), - migrations.AlterField( - model_name='journeywaypoints', - name='order', - field=models.IntegerField(default=0, verbose_name='Number of stop from start city'), - ), - migrations.AlterUniqueTogether( - name='journeywaypoints', - unique_together=set([('journey', 'waypoint', 'order')]), - ), - ] diff --git a/apps/web/migrations.old/0009_auto_20160212_1109.py b/apps/web/migrations.old/0009_auto_20160212_1109.py deleted file mode 100644 index 9cbef42..0000000 --- a/apps/web/migrations.old/0009_auto_20160212_1109.py +++ /dev/null @@ -1,81 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 11:09 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ('web', '0008_auto_20160212_0941'), - ] - - operations = [ - migrations.CreateModel( - name='Passanger', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('state', models.CharField(choices=[('subscr', 'Assigned to the journey'), ('unsubs', 'Unsubscribed to the journey'), ('reject', 'Rejected by driver')], default='subscr', max_length=6)), - ], - ), - migrations.RenameField( - model_name='userprofile', - old_name='modeid', - new_name='mojeid', - ), - migrations.RemoveField( - model_name='journey', - name='city_from', - ), - migrations.RemoveField( - model_name='journey', - name='city_to', - ), - migrations.AddField( - model_name='journeywaypoints', - name='segment_price', - field=models.FloatField(blank=True, default=None, help_text='Price between previous and this waypoint (currency is same as set in journey).', null=True, verbose_name='Partial price of journey'), - ), - migrations.AddField( - model_name='waypoint', - name='output_only', - field=models.BooleanField(default=False, help_text='Waypoting is for leaving only.'), - ), - migrations.AlterField( - model_name='journeywaypoints', - name='order', - field=models.IntegerField(default=0, verbose_name='Order number from start'), - ), - migrations.AlterField( - model_name='userprofile', - name='phone_number', - field=models.CharField(blank=True, max_length=13), - ), - migrations.RemoveField( - model_name='journeywaypoints', - name='partial_price', - ), - migrations.AddField( - model_name='journeywaypoints', - name='passangers', - field=models.ManyToManyField(to='web.Passanger'), - ), - migrations.AlterUniqueTogether( - name='journeywaypoints', - unique_together=set([('journey', 'order')]), - ), - migrations.AddField( - model_name='passanger', - name='journey', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Journey'), - ), - migrations.AddField( - model_name='passanger', - name='user', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/apps/web/migrations.old/0010_auto_20160212_1128.py b/apps/web/migrations.old/0010_auto_20160212_1128.py deleted file mode 100644 index f14fd8a..0000000 --- a/apps/web/migrations.old/0010_auto_20160212_1128.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 11:28 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0009_auto_20160212_1109'), - ] - - operations = [ - migrations.AlterField( - model_name='journey', - name='currency', - field=models.CharField(choices=[('CZK', 'Kc'), ('EUR', 'Eur')], default='CZK', max_length=3), - ), - migrations.AlterField( - model_name='journey', - name='price', - field=models.FloatField(default=0, help_text='Price for whole journey from beginning to end.'), - ), - ] diff --git a/apps/web/migrations.old/0011_auto_20160212_1138.py b/apps/web/migrations.old/0011_auto_20160212_1138.py deleted file mode 100644 index ff928bf..0000000 --- a/apps/web/migrations.old/0011_auto_20160212_1138.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 11:38 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0010_auto_20160212_1128'), - ] - - operations = [ - migrations.RemoveField( - model_name='waypoint', - name='output_only', - ), - migrations.AddField( - model_name='journeywaypoints', - name='output_only', - field=models.BooleanField(default=False, help_text='Waypoting is for leaving only.'), - ), - migrations.AlterField( - model_name='journeywaypoints', - name='passangers', - field=models.ManyToManyField(blank=True, to='web.Passanger'), - ), - ] diff --git a/apps/web/migrations.old/0012_auto_20160212_1143.py b/apps/web/migrations.old/0012_auto_20160212_1143.py deleted file mode 100644 index a4ffd90..0000000 --- a/apps/web/migrations.old/0012_auto_20160212_1143.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 11:43 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0011_auto_20160212_1138'), - ] - - operations = [ - migrations.RemoveField( - model_name='waypoint', - name='label', - ), - migrations.AddField( - model_name='journeywaypoints', - name='label', - field=models.CharField(blank=True, max_length=100, null=True), - ), - ] diff --git a/apps/web/migrations.old/0013_auto_20160212_1235.py b/apps/web/migrations.old/0013_auto_20160212_1235.py deleted file mode 100644 index 5e043c7..0000000 --- a/apps/web/migrations.old/0013_auto_20160212_1235.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 12:35 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0012_auto_20160212_1143'), - ] - - operations = [ - migrations.AlterField( - model_name='comment', - name='recipient', - field=models.ForeignKey(blank=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_recipient', to=settings.AUTH_USER_MODEL), - ), - migrations.AlterField( - model_name='passanger', - name='state', - field=models.CharField(choices=[('subscr', 'Assigned'), ('unsubs', 'Unsubscribed'), ('reject', 'Rejected by driver')], default='subscr', max_length=6), - ), - ] diff --git a/apps/web/migrations.old/0014_auto_20160212_1236.py b/apps/web/migrations.old/0014_auto_20160212_1236.py deleted file mode 100644 index fbea0d0..0000000 --- a/apps/web/migrations.old/0014_auto_20160212_1236.py +++ /dev/null @@ -1,22 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 12:36 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0013_auto_20160212_1235'), - ] - - operations = [ - migrations.AlterField( - model_name='comment', - name='recipient', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_recipient', to=settings.AUTH_USER_MODEL), - ), - ] diff --git a/apps/web/migrations.old/0015_auto_20160212_1253.py b/apps/web/migrations.old/0015_auto_20160212_1253.py deleted file mode 100644 index cce99da..0000000 --- a/apps/web/migrations.old/0015_auto_20160212_1253.py +++ /dev/null @@ -1,25 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 12:53 -from __future__ import unicode_literals - -from django.db import migrations, models -import django.db.models.deletion - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0014_auto_20160212_1236'), - ] - - operations = [ - migrations.RemoveField( - model_name='journeywaypoints', - name='passangers', - ), - migrations.AddField( - model_name='journeywaypoints', - name='passangers', - field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='web.Passanger'), - ), - ] diff --git a/apps/web/migrations.old/0016_auto_20160212_1256.py b/apps/web/migrations.old/0016_auto_20160212_1256.py deleted file mode 100644 index 41e3c24..0000000 --- a/apps/web/migrations.old/0016_auto_20160212_1256.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 12:56 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0015_auto_20160212_1253'), - ] - - operations = [ - migrations.RemoveField( - model_name='journeywaypoints', - name='passangers', - ), - migrations.AddField( - model_name='journeywaypoints', - name='passangers', - field=models.ManyToManyField(to='web.Passanger'), - ), - ] diff --git a/apps/web/migrations.old/0017_auto_20160212_1307.py b/apps/web/migrations.old/0017_auto_20160212_1307.py deleted file mode 100644 index ef4fb56..0000000 --- a/apps/web/migrations.old/0017_auto_20160212_1307.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 13:07 -from __future__ import unicode_literals - -from django.db import migrations, models - - -class Migration(migrations.Migration): - - dependencies = [ - ('web', '0016_auto_20160212_1256'), - ] - - operations = [ - migrations.AlterField( - model_name='journeywaypoints', - name='passangers', - field=models.ManyToManyField(blank=True, to='web.Passanger'), - ), - ] diff --git a/apps/web/migrations.old/__init__.py b/apps/web/migrations.old/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/apps/web/migrations/0001_initial.py b/apps/web/migrations/0001_initial.py deleted file mode 100644 index c3f140d..0000000 --- a/apps/web/migrations/0001_initial.py +++ /dev/null @@ -1,104 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by Django 1.9.2 on 2016-02-12 23:37 -from __future__ import unicode_literals - -from django.conf import settings -from django.db import migrations, models -import django.db.models.deletion -import django.utils.timezone - - -class Migration(migrations.Migration): - - initial = True - - dependencies = [ - migrations.swappable_dependency(settings.AUTH_USER_MODEL), - ] - - operations = [ - migrations.CreateModel( - name='Comment', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('date', models.DateTimeField()), - ('message', models.TextField()), - ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='user_author', to=settings.AUTH_USER_MODEL)), - ('recipient', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='user_recipient', to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='Journey', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('price', models.FloatField(default=0, help_text='Price for whole journey from beginning to end.')), - ('date', models.DateTimeField(default=django.utils.timezone.now, verbose_name='Date/time of start of journey')), - ('approx', models.BooleanField(default='', verbose_name='Driver is not sure about exact time of departure')), - ('approx_note', models.CharField(blank=True, max_length=100, verbose_name='If approx is applied, this can be used for short note to departure')), - ('currency', models.CharField(choices=[('CZK', 'Kc'), ('EUR', 'Eur')], default='CZK', max_length=3)), - ('comments', models.ManyToManyField(blank=True, to='web.Comment')), - ('driver', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='JourneyWaypoints', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('label', models.CharField(blank=True, help_text='Note about the place, i.e. corner of cross.', max_length=100, null=True)), - ('output_only', models.BooleanField(default=False, help_text='Waypoting is for leaving only.')), - ('order', models.IntegerField(default=0, verbose_name='Order number from start')), - ('segment_price', models.FloatField(blank=True, default=None, help_text='Price between previous and this waypoint (currency is same as set in journey).', null=True, verbose_name='Partial price of journey')), - ('journey', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Journey')), - ], - ), - migrations.CreateModel( - name='Passanger', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('state', models.CharField(choices=[('subscr', 'Assigned'), ('unsubs', 'Unsubscribed'), ('reject', 'Rejected by driver')], default='subscr', max_length=6)), - ('journey', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Journey')), - ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='UserProfile', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('phone_number', models.CharField(blank=True, max_length=13)), - ('reputation', models.IntegerField(blank=True, default=0)), - ('mojeid', models.CharField(blank=True, max_length=100)), - ('num_journeys', models.IntegerField(blank=True, default=0)), - ('driven_km', models.IntegerField(blank=True, default=0)), - ('drive_years', models.IntegerField(blank=True, default=0)), - ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), - ], - ), - migrations.CreateModel( - name='Waypoint', - fields=[ - ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), - ('city', models.CharField(max_length=100)), - ('lat', models.FloatField(default=0, verbose_name='Lattitude')), - ('long', models.FloatField(default=0, verbose_name='Longtitude')), - ], - ), - migrations.AddField( - model_name='journeywaypoints', - name='passangers', - field=models.ManyToManyField(blank=True, to='web.Passanger'), - ), - migrations.AddField( - model_name='journeywaypoints', - name='waypoint', - field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='web.Waypoint'), - ), - migrations.AddField( - model_name='journey', - name='waypoints', - field=models.ManyToManyField(through='web.JourneyWaypoints', to='web.Waypoint'), - ), - migrations.AlterUniqueTogether( - name='journeywaypoints', - unique_together=set([('journey', 'order')]), - ), - ] diff --git a/apps/web/migrations/__init__.py b/apps/web/migrations/__init__.py deleted file mode 100644 index e69de29..0000000 From b395dbfc5e4d95add044f4d840c0b8dde2fb86c1 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 6 Mar 2016 09:14:46 +0100 Subject: [PATCH 34/37] Rozdeleno: nastaveni uzivatele a profil Signed-off-by: Kosieh Barter --- apps/web/templates/draft.css | 34 -------- apps/web/templates/draft_index.html | 14 --- apps/web/templates/draft_jizdoteka.svg | 81 ----------------- apps/web/templates/draft_jizdoteka_2.svg | 81 ----------------- apps/web/templates/draft_jizdoteka_3.svg | 82 ----------------- apps/web/templates/draft_jizdoteka_4.svg | 82 ----------------- apps/web/templates/draft_register.html | 30 ------- apps/web/templates/draft_uziv_panel.html | 24 ----- apps/web/templates/draft_vypis_jizd.html | 16 ---- apps/web/templates/draft_vypsat_jizdu.html | 87 ------------------- apps/web/templates/web/logout_user.html | 0 .../templates/web/{user.html => profile.html} | 0 apps/web/templates/web/settings.html | 11 +++ 13 files changed, 11 insertions(+), 531 deletions(-) delete mode 100644 apps/web/templates/draft.css delete mode 100644 apps/web/templates/draft_index.html delete mode 100644 apps/web/templates/draft_jizdoteka.svg delete mode 100644 apps/web/templates/draft_jizdoteka_2.svg delete mode 100644 apps/web/templates/draft_jizdoteka_3.svg delete mode 100644 apps/web/templates/draft_jizdoteka_4.svg delete mode 100644 apps/web/templates/draft_register.html delete mode 100644 apps/web/templates/draft_uziv_panel.html delete mode 100644 apps/web/templates/draft_vypis_jizd.html delete mode 100644 apps/web/templates/draft_vypsat_jizdu.html delete mode 100644 apps/web/templates/web/logout_user.html rename apps/web/templates/web/{user.html => profile.html} (100%) create mode 100644 apps/web/templates/web/settings.html diff --git a/apps/web/templates/draft.css b/apps/web/templates/draft.css deleted file mode 100644 index 1c58c5c..0000000 --- a/apps/web/templates/draft.css +++ /dev/null @@ -1,34 +0,0 @@ -/* Zaklady. Nejdrive zakladni veci, ktere sjednocuji drtivou vetsinu nastaveni. */ - -body { background: black; padding: 0px; margin: 0 auto; max-width: 1280px; font-family: arial;} -div { background: #4b9320; } - -h1 { margin: 0px; padding: 5px; text-align: right; color: white;} -h2 { padding: 10px; margin: 0px; text-align: center;} -h4 { padding: 10px; margin: 0px; text-align: center;} - -a {width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px;} -p { padding: 4px; margin: 2px;border: 1px solid black; border-radius: 10px;} - -input { width: 100%; text-align: center; box-sizing: border-box; border-radius: 10px; padding: 5px; margin-top: 2px; margin-bottom: 2px; } -select {width: 100%; text-align: center; padding: 5px;} -textarea {width: 100%; box-sizing: border-box;} - -#prechod {background: linear-gradient(#4b9320, #71c900)} -#stranka {background: #71c900;} -#vyber_barvy { height: 64px;} - -/* Nastaveni pro tlacitko typu submit */ -#login_tlacitko {width: 100%; box-sizing: border-box; background-color: #094100; color: white; border: 2px solid black;} -#login_tlacitko:hover {background-color: #1f9900; border: 2px solid white;} -/* Chceme sjednotit tlacitko typu a a submit? */ -#tlacitko {width: 100%; box-sizing: border-box; background-color: #094100; color: white; border: 2px solid black; display: block;} -#tlacitko:hover {background-color: #1f9900; border: 2px solid white;} - -/* Nastaveni k dialogu ceny */ -#cena_spolujizdy {width: 49%; box-sizing: border-box;} -#cena_spolujizdy_sel {width: 49%; box-sizing: border-box;} - -.poznamka {background: orange; font-size: 20px; text-align: center;} -.informace {background: #4e7fff; font-size: 20px; text-align: center;} -.vlas_voz { width: 20px;} diff --git a/apps/web/templates/draft_index.html b/apps/web/templates/draft_index.html deleted file mode 100644 index cc7bf13..0000000 --- a/apps/web/templates/draft_index.html +++ /dev/null @@ -1,14 +0,0 @@ - - - - Jizdoteka - - - - - - - -

Jizdoteka.cz

- - diff --git a/apps/web/templates/draft_jizdoteka.svg b/apps/web/templates/draft_jizdoteka.svg deleted file mode 100644 index e1d358b..0000000 --- a/apps/web/templates/draft_jizdoteka.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_jizdoteka_2.svg b/apps/web/templates/draft_jizdoteka_2.svg deleted file mode 100644 index 04b5dab..0000000 --- a/apps/web/templates/draft_jizdoteka_2.svg +++ /dev/null @@ -1,81 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_jizdoteka_3.svg b/apps/web/templates/draft_jizdoteka_3.svg deleted file mode 100644 index 63a9249..0000000 --- a/apps/web/templates/draft_jizdoteka_3.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_jizdoteka_4.svg b/apps/web/templates/draft_jizdoteka_4.svg deleted file mode 100644 index 11797d6..0000000 --- a/apps/web/templates/draft_jizdoteka_4.svg +++ /dev/null @@ -1,82 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - - - - - diff --git a/apps/web/templates/draft_register.html b/apps/web/templates/draft_register.html deleted file mode 100644 index 1f5734e..0000000 --- a/apps/web/templates/draft_register.html +++ /dev/null @@ -1,30 +0,0 @@ - - - - Jizdoteka - Registrace - - - - - - - -

Jizdoteka.cz

-

Registrace

-
-
- - - -
- - -

- Po přihlášení můžete svůj účet na Jízdotéce propojit s Vaším účtem na Facebooku pro snadnější a rychlejší přihlašování. -

-
-
- - diff --git a/apps/web/templates/draft_uziv_panel.html b/apps/web/templates/draft_uziv_panel.html deleted file mode 100644 index 2af4add..0000000 --- a/apps/web/templates/draft_uziv_panel.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - Jizdoteka - Nastavení uživatele - - - - - - - -

Jizdoteka.cz

- -

Nastavení uživatele

-
-
- - -
-
- - diff --git a/apps/web/templates/draft_vypis_jizd.html b/apps/web/templates/draft_vypis_jizd.html deleted file mode 100644 index 07591d9..0000000 --- a/apps/web/templates/draft_vypis_jizd.html +++ /dev/null @@ -1,16 +0,0 @@ - - - - Jizdoteka - - - - - - - -
-

Jizdoteka.cz

-
- - diff --git a/apps/web/templates/draft_vypsat_jizdu.html b/apps/web/templates/draft_vypsat_jizdu.html deleted file mode 100644 index fd86ecd..0000000 --- a/apps/web/templates/draft_vypsat_jizdu.html +++ /dev/null @@ -1,87 +0,0 @@ - - - - Jizdoteka - Vypsat spolujízdu - - - - - - - -

Jizdoteka.cz

-

Vypsat spolujízdu

-
-
- - -

Počátek Vaší trasy

- - -

Cíl Vaší trasy

- - -

Pravidelnost

- - -

- UPOZORNĚNÍ:
- V případě zadání pravidelného dne spolujízdy se použije Vaše cena, čas a trasa.
- Prosím, berte na vědomí, že po vypsání pravidelné spolujízdy se Vás Jízdotéka bude ptát, zda chcete jízdu zrušit. - Pakliže chcete jezdit opakovaně, můžete dotaz Jízdotéky ignorovat. -

- - -

Cena spolujízdy

-

- Průměrná cena na dané trase:
- << cena >>
- Toto má pouze informativní charakter. - -

- - - - - -

Poznámky

- - -
-
- - diff --git a/apps/web/templates/web/logout_user.html b/apps/web/templates/web/logout_user.html deleted file mode 100644 index e69de29..0000000 diff --git a/apps/web/templates/web/user.html b/apps/web/templates/web/profile.html similarity index 100% rename from apps/web/templates/web/user.html rename to apps/web/templates/web/profile.html diff --git a/apps/web/templates/web/settings.html b/apps/web/templates/web/settings.html new file mode 100644 index 0000000..650da12 --- /dev/null +++ b/apps/web/templates/web/settings.html @@ -0,0 +1,11 @@ +{% extends "base.html" %} +{% block content %} +

{{ header }}

+
+
+
{% csrf_token %} + {{ form }} + +
+
+{% endblock content %} From 965a9b7f82a22ce118c2270bf74bd58f354d8848 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 6 Mar 2016 09:15:21 +0100 Subject: [PATCH 35/37] Vymazan chybny odkaz na models Signed-off-by: Kosieh Barter --- apps/web/views/journey.py | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index 90bae8e..d3c7914 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -19,7 +19,6 @@ from django.shortcuts import render, redirect from django.views.generic import ListView, DetailView, TemplateView, RedirectView, View -from . import models from pprint import pprint from django.contrib.auth.decorators import login_required From 1c9d0dc2cc1c6420e08b6e053a5e72b058c67cf9 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Sun, 6 Mar 2016 12:17:15 +0100 Subject: [PATCH 36/37] Migrace na lepsi system views Signed-off-by: Kosieh Barter --- apps/web/views/car.py | 112 ++++++++++++++++++++++++++++++++ apps/web/views/journey.py | 10 ++- apps/web/views/user.py | 131 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 252 insertions(+), 1 deletion(-) create mode 100644 apps/web/views/car.py diff --git a/apps/web/views/car.py b/apps/web/views/car.py new file mode 100644 index 0000000..4579a6e --- /dev/null +++ b/apps/web/views/car.py @@ -0,0 +1,112 @@ +from django.views.generic import DetailView +from django.shortcuts import render + +from .. import forms +from .. import models + + +class Car(DetailView): + header = "Car Management page" + + model = None + owner = None + name = None + color = None + + air_conditioning = False + animals_allowed = False + has_wifi = False + has_highway_sign = False + smoking_allowed = False + + register_sign = None + reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\ + to enter your national car sign. Hovever, if\ + you fill it, you will make it easier for\ + passengers to find you.") + + form = forms.CarManageForm() + model = models.Vehicle + + def get(self, request): + return render(request, 'web/cars.html', {"form": self.form, + "header": self.header, + "reg_notice": self.reg_notice, + "cars": self.model}) + +"""class Car(DetailView): + header = "Car Management page" + + model = None + owner = None + name = None + color = None + + air_conditioning = False + animals_allowed = False + has_wifi = False + has_highway_sign = False + smoking_allowed = False + + register_sign = None + reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\ + to enter your national car sign. Hovever, if\ + you fill it, you will make it easier for\ + passengers to find you.") + + form = forms.CarManageForm() + inp_method = None + message = None + + def get(self, request): + self.model = models.Vehicle.objects.filter(owner=request.user) + print (self.model) + return render(request, 'web/cars.html', {"form": self.form, + "car_list": self.model, + "message": self.message, + "reg_notice": self.reg_notice, + "header": self.header}) + + def post(self, request): + self.inp_method = request.POST.get('method') + if self.inp_method == 'add_vehicle': + return self._add_car(request) + elif self.inp_method == 'remove_vehicle': + return self._delete_car(request) + else: + return HttpResponse("UNKOWN ERROR WITH DATABASE.") + + def _delete_car(self, in_request): + self.owner = in_request.user + remove_id = in_request.POST.get('car_id') + models.Vehicle.objects.filter(owner = self.owner, id = remove_id).delete() + return HttpResponseRedirect(".") + + def _add_car(self, in_request): + self.owner = in_request.user + self.name = in_request.POST.get('car_name') + self.color = in_request.POST.get('color') + + self.air_conditioning = in_request.POST.get('air_conditioning', False) + self.animals_allowed = in_request.POST.get('animals_allowed', False) + self.has_wifi = in_request.POST.get('has_wifi', False) + self.has_highway_sign = in_request.POST.get('has_highway_sign', False) + self.smoking_allowed = in_request.POST.get('smoking_allowed', False) + + self.register_sign = in_request.POST.get('register_sign') + return self._check_required() + + def _check_required(self): + if self.name and self.color: + new_car = models.Vehicle(owner=self.owner, name=self.name, + color=self.color, register=self.register_sign, + air_conditioning=self.air_conditioning, + animals_allowed=self.animals_allowed, + wifi_on_board=self.has_wifi, + smoking_allowed=self.smoking_allowed, + highway_mark=self.has_highway_sign) + new_car.save() + return HttpResponseRedirect(".") + else: + return HttpResponse("FAILED TO SAVE, MISSING DATA!") +""" diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index d3c7914..c39a96d 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -1,4 +1,3 @@ - from django.shortcuts import render from django.views.generic import ListView, DetailView, TemplateView, RedirectView, CreateView, UpdateView from django.views.generic.edit import FormView @@ -244,6 +243,15 @@ class WaypointNotFound(Exception): class JourneyList(ListView, FormView): +from django.views.generic import ListView, DetailView +from pprint import pprint + +# Import forms +from .. import forms +# Import models +from .. import models + + model = models.Journey form_class = forms.SearchJourney success_url = '/' # TODO: replace by generic URL of this page diff --git a/apps/web/views/user.py b/apps/web/views/user.py index 6e0febf..dc1a14d 100644 --- a/apps/web/views/user.py +++ b/apps/web/views/user.py @@ -1,7 +1,138 @@ from django.views.generic import DetailView +from django.contrib.auth import login, logout, authenticate +from emailusernames.utils import create_user, get_user +from django.shortcuts import render +from django.http import HttpResponse, HttpResponseRedirect # FIXME: Really, really ugly! from .. import models +from .. import forms + + +def logout_user(request): + logout(request) + return HttpResponseRedirect('../../') ## TODO: OPRAVIT, vyvaruj se absolutnim adresam + + +class UserSettings(DetailView): + header = "User control panel" + form = forms.ManageForm + + def get(self, request): + return render(request, 'web/settings.html', {"form": self.form, + "header": self.header}) + def post(self, request): + password + + +class LoginScreen(DetailView): + """ + Allows user to login into the system. + """ + header = "Login" + + name = None + password = None + login_form = forms.LoginForm() + redirect_bool = False + info_text = None + + user = None + + def get(self, request): + return render(request, 'web/login_screen.html', {"form": self.login_form, + "header": self.header}) + + def post(self, request): + self.name = request.POST['name'] + self.password = request.POST['password'] + self._check_credentials() + print (self.name, self.password) + + if self.user: + login(request, self.user) + return HttpResponseRedirect('../../') + else: + return HttpResponse("INVALID CREDENTIALS!") + + def _check_credentials(self): + if self.name and self.password: + self.user = authenticate(email=self.name, + password=self.password) + else: + return HttpResponse("MISSING CREDENTIALS!") + + +class RegisterScreen(DetailView): + header = "User Registration" + + mail = None + mail_confirm = None + password = None + password_confirm = None + register_form = forms.RegisterForm() + + correct_day = None + asked_day = None + + question_ok = False + exists = False + + correct_details = {} + + request = None + + def get(self, request): + return render(request, 'web/register.html', {"form": self.register_form, + "header": self.header}) + + def post(self, request): + self.correct_day = self.register_form.correct_day + self.request = request + + self._post_get_details() + self._check_security_question() + self._check_details() + self._check_existing_user() + + if self.exists: + return HttpResponse("ERROR: USER ALREADY EXISTS!") + else: + new_user = create_user(email = self.mail, password = self.password) + new_user.save() + return HttpResponse("SUCCESS: USER CREATED") + + def _post_get_details(self): + self.mail = self.request.POST['email'] + self.mail_confirm = self.request.POST['email_confirm'] + self.password = self.request.POST['password'] + self.password_confirm = self.request.POST['password_confirm'] + + self.asked_day = self.request.POST['random_antibot'] + + def _check_security_question(self): + self.correct_day = self.register_form.correct_day + if self.correct_day == self.asked_day: + self.question_ok = True + else: + return HttpResponse("ERROR: INVALID CONTROL ANSWER!") + + def _check_details(self): + self.correct_details.update({"correct_name": self.mail == self.mail_confirm}) + self.correct_details.update({"correct_password": self.password == self.password_confirm}) + + if False in self.correct_details: + return HttpResponse("ERROR: Some data you entered does not match") + + + def _check_existing_user(self): + test_auth = authenticate(username = self.mail, + password = self.password, + email = self.mail) + if test_auth: + self.exists = True + else: + self.exists = False class UserDetail(DetailView): From 7b88fc20b0cd87e2926ead4a754e05f34bc25842 Mon Sep 17 00:00:00 2001 From: Kosieh Barter Date: Tue, 8 Mar 2016 20:01:56 +0100 Subject: [PATCH 37/37] Commit po rebase z master Signed-off-by: Kosieh Barter --- apps/web/forms.py | 5 - apps/web/models.py | 5 +- apps/web/views/__init__.py | 4 + apps/web/views/car.py | 31 ------ apps/web/views/journey.py | 217 +------------------------------------ apps/web/views/user.py | 12 +- jizdoteka/urls.py | 35 ++---- 7 files changed, 25 insertions(+), 284 deletions(-) diff --git a/apps/web/forms.py b/apps/web/forms.py index 06890c1..559b1b6 100644 --- a/apps/web/forms.py +++ b/apps/web/forms.py @@ -36,11 +36,6 @@ class Meta: WaypointUpdateFormSetFactory = forms.inlineformset_factory( **wpt_update_factory_kwargs) - user_email = forms.CharField(max_length = 100, label = _("Your E-Mail address")) - user_email_confirm = forms.CharField(max_length = 100, label = _("Your E-Mail address - Confirmation")) - user_password = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password")) - user_password_confirm = forms.CharField(widget = forms.PasswordInput(), label = _("Your Password - Confirmation")) - class JourneyFormSet(forms.ModelForm): class Meta: diff --git a/apps/web/models.py b/apps/web/models.py index 97ce33b..28e3524 100644 --- a/apps/web/models.py +++ b/apps/web/models.py @@ -5,12 +5,11 @@ from django.db import models from django.conf import settings from django.db.models import signals -<<<<<<< HEAD -======= + from django.contrib.auth.hashers import check_password #from django.contrib.gis.db import models as gis_models ->>>>>>> Commit pred rebasem + from django.contrib.auth.models import User diff --git a/apps/web/views/__init__.py b/apps/web/views/__init__.py index e69de29..fd9bef9 100644 --- a/apps/web/views/__init__.py +++ b/apps/web/views/__init__.py @@ -0,0 +1,4 @@ +from django.shortcuts import render + +def index(request): + return render(request, 'web/index.html') diff --git a/apps/web/views/car.py b/apps/web/views/car.py index 4579a6e..951288c 100644 --- a/apps/web/views/car.py +++ b/apps/web/views/car.py @@ -19,35 +19,6 @@ class Car(DetailView): has_highway_sign = False smoking_allowed = False - register_sign = None - reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\ - to enter your national car sign. Hovever, if\ - you fill it, you will make it easier for\ - passengers to find you.") - - form = forms.CarManageForm() - model = models.Vehicle - - def get(self, request): - return render(request, 'web/cars.html', {"form": self.form, - "header": self.header, - "reg_notice": self.reg_notice, - "cars": self.model}) - -"""class Car(DetailView): - header = "Car Management page" - - model = None - owner = None - name = None - color = None - - air_conditioning = False - animals_allowed = False - has_wifi = False - has_highway_sign = False - smoking_allowed = False - register_sign = None reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\ to enter your national car sign. Hovever, if\ @@ -60,7 +31,6 @@ def get(self, request): def get(self, request): self.model = models.Vehicle.objects.filter(owner=request.user) - print (self.model) return render(request, 'web/cars.html', {"form": self.form, "car_list": self.model, "message": self.message, @@ -109,4 +79,3 @@ def _check_required(self): return HttpResponseRedirect(".") else: return HttpResponse("FAILED TO SAVE, MISSING DATA!") -""" diff --git a/apps/web/views/journey.py b/apps/web/views/journey.py index c39a96d..7f51872 100644 --- a/apps/web/views/journey.py +++ b/apps/web/views/journey.py @@ -28,214 +28,8 @@ from django.http import HttpResponse, HttpResponseRedirect ## Import forms -from . import forms - - -def index(request): - return render(request, 'web/index.html') - -def logout_user(request): - logout(request) - return HttpResponseRedirect('../../') ## TODO: OPRAVIT, vyvaruj se absolutnim adresam - - -class LoginScreen(View): - header = "Login" - - user_name = None - user_pass = None - login_form = forms.LoginForm() - redirect_bool = False - info_text = None - - user = None - - def get(self, request): - return render(request, 'web/login_screen.html', {"form": self.login_form, - "header": self.header}) - - def post(self, request): - self.user_name = request.POST['user_name'] - self.user_pass = request.POST['user_pass'] - self._check_credentials() - - if self.user: - login(request, self.user) - return HttpResponseRedirect('../../') - else: - return HttpResponse("INVALID CREDENTIALS!") - - def _check_credentials(self): - if self.user_name and self.user_pass: - self.user = authenticate(email=self.user_name, - password=self.user_pass) - else: - return HttpResponse("MISSING CREDENTIALS!") - - -class RegisterScreen(View): - header = "User Registration" - - user_mail = None - user_mail_confirm = None - user_pass = None - user_pass_confirm = None - register_form = forms.RegisterForm() - - correct_day = None - asked_day = None - - question_ok = False - user_exists = False - - correct_details = {} - - request = None - - def get(self, request): - return render(request, 'web/register.html', {"form": self.register_form, - "header": self.header}) - - def post(self, request): - self.correct_day = self.register_form.correct_day - self.request = request - - self._post_get_details() - self._check_security_question() - self._check_details() - self._check_existing_user() - - if self.user_exists: - return HttpResponse("ERROR: USER ALREADY EXISTS!") - else: - new_user = create_user(email = self.user_mail, password = self.user_pass) - new_user.save() - return HttpResponse("SUCCESS: USER CREATED") - - #return render(request, 'web/register.html', {"form": self.register_form}) - - - def _post_get_details(self): - self.user_mail = self.request.POST['user_email'] - self.user_mail_confirm = self.request.POST['user_email_confirm'] - self.user_pass = self.request.POST['user_password'] - self.user_pass_confirm = self.request.POST['user_password_confirm'] - - self.asked_day = self.request.POST['random_antibot'] - - - def _check_security_question(self): - self.correct_day = self.register_form.correct_day - if self.correct_day == self.asked_day: - self.question_ok = True - else: - return HttpResponse("ERROR: INVALID CONTROL ANSWER!") - - - def _check_details(self): - self.correct_details.update({"correct_name": self.user_mail == self.user_mail_confirm}) - self.correct_details.update({"correct_pass": self.user_pass == self.user_pass_confirm}) - - if False in self.correct_details: - return HttpResponse("ERROR: Some data you entered does not match") - - - def _check_existing_user(self): - test_auth = authenticate(username = self.user_mail, - password = self.user_pass, - email = self.user_mail) - if test_auth: - self.user_exists = True - else: - self.user_exists = False - - - -class Car(View): - header = "Car Management page" - - model = None - owner = None - name = None - color = None - - air_conditioning = False - animals_allowed = False - has_wifi = False - has_highway_sign = False - smoking_allowed = False - - register_sign = None - reg_notice = ("NOTE", "If you really don't want to, you DO NOT have\ - to enter your national car sign. Hovever, if\ - you fill it, you will make it easier for\ - passengers to find you.") - - form = forms.CarManageForm() - inp_method = None - message = None - - def get(self, request): - self.model = models.Vehicle.objects.filter(owner=request.user) - return render(request, 'web/cars.html', {"form": self.form, - "car_list": self.model, - "message": self.message, - "reg_notice": self.reg_notice, - "header": self.header}) - - def post(self, request): - self.inp_method = request.POST.get('method') - if self.inp_method == 'add_vehicle': - return self._add_car(request) - elif self.inp_method == 'remove_vehicle': - return self._delete_car(request) - else: - return HttpResponse("UNKOWN ERROR WITH DATABASE.") - - def _delete_car(self, in_request): - self.owner = in_request.user - remove_id = in_request.POST.get('car_id') - models.Vehicle.objects.filter(owner = self.owner, id = remove_id).delete() - return HttpResponseRedirect(".") - - def _add_car(self, in_request): - self.owner = in_request.user - self.name = in_request.POST.get('car_name') - self.color = in_request.POST.get('color') - - self.air_conditioning = in_request.POST.get('air_conditioning', False) - self.animals_allowed = in_request.POST.get('animals_allowed', False) - self.has_wifi = in_request.POST.get('has_wifi', False) - self.has_highway_sign = in_request.POST.get('has_highway_sign', False) - self.smoking_allowed = in_request.POST.get('smoking_allowed', False) - - self.register_sign = in_request.POST.get('register_sign') - return self._check_required() - - def _check_required(self): - if self.name and self.color: - new_car = models.Vehicle(owner=self.owner, name=self.name, - color=self.color, register=self.register_sign, - air_conditioning=self.air_conditioning, - animals_allowed=self.animals_allowed, - wifi_on_board=self.has_wifi, - smoking_allowed=self.smoking_allowed, - highway_mark=self.has_highway_sign) - new_car.save() - return HttpResponseRedirect(".") - else: - return HttpResponse("FAILED TO SAVE, MISSING DATA!") - - -class User(View): - header = "User control panel and information page" - form = forms.ManageForm +from .. import forms - def get(self, request): - return render(request, 'web/user.html', {"form": self.form, - "header": self.header}) - def post(self, request): - pass class WaypointNotFound(Exception): pass @@ -243,15 +37,6 @@ class WaypointNotFound(Exception): class JourneyList(ListView, FormView): -from django.views.generic import ListView, DetailView -from pprint import pprint - -# Import forms -from .. import forms -# Import models -from .. import models - - model = models.Journey form_class = forms.SearchJourney success_url = '/' # TODO: replace by generic URL of this page diff --git a/apps/web/views/user.py b/apps/web/views/user.py index dc1a14d..1aa82b4 100644 --- a/apps/web/views/user.py +++ b/apps/web/views/user.py @@ -14,15 +14,15 @@ def logout_user(request): return HttpResponseRedirect('../../') ## TODO: OPRAVIT, vyvaruj se absolutnim adresam -class UserSettings(DetailView): - header = "User control panel" +class User(DetailView): + header = "User control panel and information page" form = forms.ManageForm def get(self, request): - return render(request, 'web/settings.html', {"form": self.form, + return render(request, 'web/user.html', {"form": self.form, "header": self.header}) def post(self, request): - password + pass class LoginScreen(DetailView): @@ -44,8 +44,8 @@ def get(self, request): "header": self.header}) def post(self, request): - self.name = request.POST['name'] - self.password = request.POST['password'] + self.name = request.POST['user_name'] + self.password = request.POST['user_pass'] self._check_credentials() print (self.name, self.password) diff --git a/jizdoteka/urls.py b/jizdoteka/urls.py index feb0528..9f69ca0 100644 --- a/jizdoteka/urls.py +++ b/jizdoteka/urls.py @@ -15,37 +15,26 @@ """ from django.conf.urls import url, include from django.contrib import admin -from apps.web.views import journey +from apps.web.views import journey, index, user, car urlpatterns = [ + ## Zaklady url(r'^admin/', admin.site.urls), - url(r'^$', journey.JourneyList.as_view(), name='home'), - url(r'^new/$', journey.JourneyCreate.as_view(), name='journey_new'), - url(r'^update/(?P[0-9]+)$', journey.JourneyUpdate.as_view(), name='journey_update'), - url(r'^(?P[0-9]+)$', - journey.JourneyDetail.as_view(), - name='journey_detail' - ), + url(r'^$', index, name='index'), + ## Nutne pro prihlasen + url(r'^login_screen/$', user.LoginScreen.as_view(), name="login_screen"), + url(r'^logout_user/$', user.logout_user, name="logout_user"), + url(r'^register/$', user.RegisterScreen.as_view(), name="register"), + + ## Jizdy url(r'^journey/$', journey.JourneyList.as_view(), name='journey'), url(r'^journey/new/$', journey.JourneyCreate.as_view(), name='journey_new'), url(r'^journey/update/(?P[0-9]+)$', journey.JourneyUpdate.as_view(), name='journey_update'), - url(r'^jounrey/(?P[0-9]+)$', - url(r'^journey/(?P[0-9]+)$', journey.JourneyDetail.as_view(), name='journey_detail'), - url(r'^$', views.index, name='index'), - - ## Nutne pro prihlasen - url(r'^login_screen/$', views.LoginScreen.as_view(), name="login_screen"), - url(r'^logout_user/$', views.logout_user, name="logout_user"), - url(r'^register/$', views.RegisterScreen.as_view(), name="register"), - url(r'^user/$', views.User.as_view(), name="user"), - - url(r'^cars/$', views.Car.as_view(), name="cars"), - - #url(r'^user_mgmt/$', views.user_mgmt, name = "user_mgmt"), - url(r'^accounts/', include('allauth.urls')), + ## Managing + url(r'^user/$', user.User.as_view(), name="user"), + url(r'^cars/$', car.Car.as_view(), name="cars"), - #url(r'^(?P[0-9]+)$', views.JourneyDetail.as_view(), name='journey_detail'), ]