Add display profile info
BIN
vagus/camper/__pycache__/__init__.cpython-38.pyc
Normal file
@ -3,10 +3,7 @@ from .models import Offer, Offer_Category, Image_offer
|
||||
from reservation.models import Reservation
|
||||
# Register your models here.
|
||||
|
||||
class ReservationOfferDetail(admin.TabularInline):
|
||||
model = Reservation
|
||||
can_delete = False
|
||||
verbose_name = 'Rezerwację'
|
||||
|
||||
class OfferALlDetail(admin.TabularInline):
|
||||
model = Image_offer
|
||||
can_delete = True
|
||||
@ -14,7 +11,7 @@ class OfferALlDetail(admin.TabularInline):
|
||||
|
||||
class OfferAdmin(admin.ModelAdmin):
|
||||
model = Offer
|
||||
inlines = [OfferALlDetail,ReservationOfferDetail]
|
||||
inlines = [OfferALlDetail]
|
||||
list_display = ('id','title','category','date_added','status','slug')
|
||||
order = 'date_added'
|
||||
|
||||
|
18
vagus/camper/migrations/0003_offer_description.py
Normal file
@ -0,0 +1,18 @@
|
||||
# Generated by Django 3.1.3 on 2021-01-24 16:53
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('camper', '0002_auto_20210112_1748'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='offer',
|
||||
name='description',
|
||||
field=models.TextField(default='', max_length=1000),
|
||||
),
|
||||
]
|
@ -53,6 +53,7 @@ class Offer(models.Model):
|
||||
|
||||
title = models.CharField(_("Title"), max_length=50,default='Tytuł oferty')
|
||||
slug = models.SlugField(max_length=70, editable = False,default='' , unique=True,)
|
||||
description = models.TextField(max_length = 1000,default = '')
|
||||
|
||||
category = models.ForeignKey(Offer_Category ,default= None,on_delete= models.CASCADE)
|
||||
price = models.DecimalField(max_digits=10, decimal_places=2)
|
||||
|
@ -6,7 +6,7 @@ from django.views.generic import (
|
||||
)
|
||||
from camper.models import Offer, Image_offer
|
||||
from django.http import Http404, HttpResponseRedirect
|
||||
|
||||
from django.core.paginator import Paginator ,EmptyPage, PageNotAnInteger
|
||||
|
||||
class Home(View):
|
||||
|
||||
@ -22,6 +22,9 @@ class OfferListView(ListView):
|
||||
model = Offer
|
||||
template_name = 'offer/offers.html'
|
||||
context_object_name = 'active_offers_list'
|
||||
paginate_by = 4
|
||||
|
||||
ordering = ['-date_added']
|
||||
|
||||
def get_queryset(self):
|
||||
return Offer.objects.filter(status = 'Active')
|
||||
|
BIN
vagus/media/avatars/default.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 124 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 148 KiB |
After Width: | Height: | Size: 148 KiB |
BIN
vagus/reservation/__pycache__/__init__.cpython-38.pyc
Normal file
19
vagus/reservation/migrations/0003_auto_20210124_1557.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.3 on 2021-01-24 14:57
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.utils.timezone
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('reservation', '0002_auto_20210115_0037'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AlterField(
|
||||
model_name='reservation',
|
||||
name='reservation_start_date',
|
||||
field=models.DateField(default=django.utils.timezone.now),
|
||||
),
|
||||
]
|
@ -3,6 +3,21 @@ body {
|
||||
color: black;
|
||||
font-family: 'Poppins';
|
||||
}
|
||||
body a {
|
||||
color:black;
|
||||
text-decoration: none;
|
||||
}
|
||||
body a:hover {
|
||||
color:black;
|
||||
text-decoration: none;
|
||||
}
|
||||
.link {
|
||||
color:black;
|
||||
text-decoration: none;
|
||||
}
|
||||
.link:hover {
|
||||
color:black;
|
||||
text-decoration: none;}
|
||||
|
||||
.container {
|
||||
width: 1380px;
|
||||
@ -50,11 +65,9 @@ body {
|
||||
max-width: 85px;
|
||||
}
|
||||
.header-logo a {
|
||||
color: black;
|
||||
font-family: 'Dosis';
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* HEADER NAV */
|
||||
@ -65,10 +78,8 @@ body {
|
||||
max-width: 90%;
|
||||
}
|
||||
.header-nav a {
|
||||
color: black;
|
||||
font-family: 'Poppins';
|
||||
font-size: 14px;
|
||||
text-decoration: none;
|
||||
font-weight: 500;
|
||||
padding-left: 15px;
|
||||
padding-right: 15px;
|
||||
@ -100,8 +111,14 @@ body {
|
||||
.header-nav-bar-text {
|
||||
margin: auto;
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
|
||||
}
|
||||
.header-nav-bar-text a {
|
||||
font-size: 1em;
|
||||
font-weight: 600!important;
|
||||
}
|
||||
|
||||
|
||||
.header-nav-bar-avatar {
|
||||
min-width: 36px;
|
||||
max-height: 36px;
|
||||
@ -143,3 +160,127 @@ body {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
|
||||
/* OFFERS BOX */
|
||||
|
||||
.offer-box-wrapper{
|
||||
margin-top: 50px;
|
||||
margin-bottom: 50px;
|
||||
|
||||
}
|
||||
|
||||
.offer-box-row{
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
justify-content:flex-start;
|
||||
|
||||
}
|
||||
.offer-box-row div {
|
||||
margin-left:6px;
|
||||
|
||||
}
|
||||
.offer-box-wrapper-photo{
|
||||
flex:10%;
|
||||
|
||||
}
|
||||
|
||||
.offer-box-wrapper-photo img {
|
||||
width:400px;
|
||||
border-radius: 5%;
|
||||
display: block;
|
||||
height: auto; /* maintain aspect ratio*/
|
||||
margin: auto;
|
||||
}
|
||||
.offer-box-wrapper-content{
|
||||
margin-top: 10px;
|
||||
flex:50%;
|
||||
}
|
||||
.offer-box-wrapper-content h2 {
|
||||
font-size:19px;
|
||||
font-weight: 500;
|
||||
}
|
||||
.offer-box-wrapper-content p {
|
||||
font-size: 12px;
|
||||
}
|
||||
.offer-box-wrapper-content a {
|
||||
color:black;
|
||||
font-size: 15px;
|
||||
font-family: 'Poppins';
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.offer-box-wrapper-content ul {
|
||||
white-space:wrap;
|
||||
margin-left: 0; padding-left: 0;
|
||||
}
|
||||
.offer-box-wrapper-content li {
|
||||
display: inline;
|
||||
font-size:11px;
|
||||
}
|
||||
|
||||
/* OFFERS PAGINATION */
|
||||
.page-item.active .page-link {
|
||||
z-index: 1;
|
||||
color: #fff;
|
||||
background-color: #070707 !important;
|
||||
border-color: #000000 !important;
|
||||
}
|
||||
|
||||
/* PROFILE */
|
||||
|
||||
.profile-wrapper {
|
||||
margin-top: 50px;
|
||||
width: 100%;
|
||||
}
|
||||
.profile-wrapper-row{
|
||||
display: flex;
|
||||
flex-flow:row wrap;
|
||||
justify-content:flex-start;
|
||||
min-height: 600px;
|
||||
}
|
||||
.profile-wrapper-row-information {
|
||||
flex:20%;
|
||||
background-color: crimson;
|
||||
}
|
||||
.profile-wrapper-row-content {
|
||||
flex:70%;
|
||||
|
||||
}
|
||||
|
||||
.profile-information-row {
|
||||
display: flex;
|
||||
flex-flow:row wrap;
|
||||
}
|
||||
|
||||
.profile-information-avatar{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex:1 100%;
|
||||
|
||||
}
|
||||
.profile-information-avatar img {
|
||||
width: 200px;
|
||||
height: 200px;
|
||||
margin:5px;
|
||||
border-radius: 50%;
|
||||
border: 0.5px solid black;
|
||||
}
|
||||
.profile-information-content {
|
||||
margin-top:10px;
|
||||
flex:1 100%;
|
||||
}
|
||||
|
||||
.profile-email, .profile-date-joined {
|
||||
color:#48484898;
|
||||
text-align: center;
|
||||
}
|
||||
.profile-date-joined{
|
||||
font-size: 0.9em;
|
||||
}
|
||||
.profile-logout {
|
||||
color:black;
|
||||
text-align: center;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
@ -6,7 +6,10 @@
|
||||
<link rel="stylesheet" href="{% static 'css/style.css' %}">
|
||||
<link href = "https://fonts.googleapis.com/css?family=Dosis" rel='stylesheet'>
|
||||
<link href = "https://fonts.googleapis.com/css?family=Poppins" rel='stylesheet'>
|
||||
|
||||
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
|
||||
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
|
||||
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div class='header-smart-baner'> <!-- TOP HEADER SMART BANER-->
|
||||
@ -28,15 +31,21 @@
|
||||
|
||||
{% if user.is_authenticated %}
|
||||
{% if user.status != 'Moderator' %}
|
||||
Witaj, {{ user.first_name }}
|
||||
<a class='link' href='{{ request.scheme }}://{{ request.META.HTTP_HOST }}/profile'> Witaj, {{ user.first_name }} </a>
|
||||
{% else %}
|
||||
Witaj, Adminie
|
||||
<a href='{{ request.scheme }}://{{ request.META.HTTP_HOST }}/profile'>Witaj, Adminie </a>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
Witaj, nieznajomy
|
||||
<a href='{{ request.scheme }}://{{ request.META.HTTP_HOST }}/signup'>Witaj, nieznajomy </a>
|
||||
{% endif %}
|
||||
</div>
|
||||
<div class='header-nav-bar-avatar'> <img src='photo.jpg'> </div>
|
||||
<div class='header-nav-bar-avatar'>
|
||||
{% if user.avatar %}
|
||||
<img src={{ user.avatar.url }}>
|
||||
{% else %}
|
||||
<img src='/media/avatars/default.png'>
|
||||
{%endif%}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -3,18 +3,60 @@
|
||||
<link rel="stylesheet" href="{% static 'css/styles.css' %}">
|
||||
|
||||
{% block content %}
|
||||
{% if active_offers_list %}
|
||||
{% for Offer in active_offers_list %}
|
||||
|
||||
<a href ="{{ Offer.get_absolute_url}}"> <h1> {{ Offer.title}} </h1> </a>
|
||||
{{ Offer.category }} {{ Offer.price }} {{ Offer.created_by }}
|
||||
{% if active_offers_list %}
|
||||
{% for Offer in active_offers_list %}
|
||||
|
||||
{% for photo in Offer.images.all %}
|
||||
{% if photo.main_image == True%}
|
||||
<img src="{{ photo.image.url }}" width = 300px>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<div class='offer-box-wrapper'>
|
||||
<div class='offer-box-row'>
|
||||
<div class='offer-box-wrapper-photo'>
|
||||
{% for photo in Offer.images.all %}
|
||||
{% if photo.main_image == True%}
|
||||
<img src="{{ photo.image.url }}">
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class='offer-box-wrapper-content'>
|
||||
<a href ="{{ Offer.get_absolute_url}}"> <h2> {{ Offer.title}} </h2></a>
|
||||
<p> {{ Offer.description|truncatewords:50 }} </p>
|
||||
<ul>
|
||||
<li> Ilośc miejsc do spania: {{Offer.Places_to_sleep}} </li>
|
||||
<li> Skrzynia biegów: {{Offer.get_gearbox_display}}</li>
|
||||
</ul>
|
||||
<div class='offer-box-price'>Cena: {{ Offer.price }} PLN / dzień </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
<nav aria-label="...">
|
||||
{% if is_paginated %}
|
||||
<ul class="pagination">
|
||||
{% if page_obj.has_previous %}
|
||||
<li class="page-item"><a class="page-link" href="?page={{ page_obj.previous_page_number }}" tabindex="-1">Previous</a></li>
|
||||
{% else %}
|
||||
<li class="page-item disabled"></li>
|
||||
{% endif %}
|
||||
|
||||
{% for i in paginator.page_range %}
|
||||
{% if page_obj.number == i %}
|
||||
<li class="page-item active"><a class="page-link" href="#">{{ i }} <span class="sr-only">(current)</span></a></li>
|
||||
{% else %}
|
||||
<li class="page-item"><a class="page-link" href="?page={{ i }}">{{ i }}</a></li>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if page_obj.has_next %}
|
||||
<li class="page-item"><a class="page-link" href="?page={{ page_obj.next_page_number }}#">Next</a></li>
|
||||
{% else %}
|
||||
<li class="page-item disabled"></li>
|
||||
{% endif %}
|
||||
|
||||
</ul>
|
||||
{% endif %}
|
||||
</nav>
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
30
vagus/template/users/profile.html
Normal file
@ -0,0 +1,30 @@
|
||||
{% extends 'index.html' %}
|
||||
{% load static %}
|
||||
|
||||
{% block content %}
|
||||
<div class='profile-wrapper'>
|
||||
<div class='profile-wrapper-row'>
|
||||
<div class='profile-wrapper-row-information'>
|
||||
<div class='profile-information-row'>
|
||||
<div class='profile-information-avatar'>
|
||||
{% if user.avatar %}
|
||||
<img src={{ user.avatar.url }}>
|
||||
{% else %}
|
||||
<img src='media/avatars/default.png'>
|
||||
{%endif%}
|
||||
</div>
|
||||
<div class='profile-information-content'>
|
||||
<div class='profile-email'> @{{user.email}} </div>
|
||||
<div class='profile-date-joined'>Data dołączenia: {{user.date_joined|date}} </div>
|
||||
<div class='profile-logout'> <p><a href="{% url 'logout_user' %}">Log Out</a></p> </div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class='profile-wrapper-row-content'>
|
||||
{% for offer in offers%}
|
||||
{{offer.id}}
|
||||
{% endfor %}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
BIN
vagus/users/__pycache__/__init__.cpython-38.pyc
Normal file
BIN
vagus/users/__pycache__/urls.cpython-37.pyc
Normal file
BIN
vagus/users/__pycache__/views.cpython-37.pyc
Normal file
@ -24,13 +24,13 @@ class CustomUserAdmin(UserAdmin):
|
||||
|
||||
list_display = ('id','email', "is_staff", "is_active","is_superuser",'status')
|
||||
fieldsets = (
|
||||
(None, {'fields': ('email','first_name','last_name', 'password','status')}),
|
||||
(None, {'fields': ('email','phone','first_name','last_name', 'password','status','avatar')}),
|
||||
('Permissions', {'fields': ('is_staff', 'is_active',)}),
|
||||
)
|
||||
add_fieldsets = (
|
||||
(None, {
|
||||
'classes': ('wide',),
|
||||
'fields': ('email','first_name','last_name', 'password1', 'password2', 'is_staff', 'is_active','status')}
|
||||
'fields': ('email','phone','first_name','last_name', 'password1', 'password2', 'is_staff', 'is_active','status','avatar')}
|
||||
),
|
||||
)
|
||||
ordering = ('email',)
|
||||
|
@ -1,20 +1,22 @@
|
||||
from django import forms
|
||||
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
|
||||
from phonenumber_field.formfields import PhoneNumberField
|
||||
|
||||
from .models import Base_User
|
||||
|
||||
|
||||
class CustomUserCreationForm(UserCreationForm):
|
||||
|
||||
phone = PhoneNumberField()
|
||||
class Meta(UserCreationForm):
|
||||
model = Base_User
|
||||
fields = ('email','password',)
|
||||
fields =['email','password','phone']
|
||||
|
||||
|
||||
|
||||
class CustomUserChangeForm(UserChangeForm):
|
||||
|
||||
phone = PhoneNumberField()
|
||||
class Meta:
|
||||
model = Base_User
|
||||
fields = ('email','password',)
|
||||
fields = ['email','password','phone']
|
||||
|
||||
|
19
vagus/users/migrations/0005_base_user_phone.py
Normal file
@ -0,0 +1,19 @@
|
||||
# Generated by Django 3.1.3 on 2021-01-26 19:13
|
||||
|
||||
from django.db import migrations
|
||||
import phonenumber_field.modelfields
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('users', '0004_auto_20210114_2051'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='base_user',
|
||||
name='phone',
|
||||
field=phonenumber_field.modelfields.PhoneNumberField(blank=True, default='', max_length=128, null=True, region=None, unique=True),
|
||||
),
|
||||
]
|
@ -42,7 +42,8 @@ class UserManager(BaseUserManager):
|
||||
class Base_User(AbstractBaseUser,PermissionsMixin):
|
||||
id = models.AutoField(primary_key= True)
|
||||
email = models.EmailField(_('Email'), unique= True)
|
||||
#phone = PhoneNumberField(null = False, blank = False, unique = True)
|
||||
phone = PhoneNumberField(null = False, blank = False, unique = True, default = '')
|
||||
avatar = models.ImageField(upload_to='media/avatars', null = True, blank = True,default='media/avatars/default.png')
|
||||
|
||||
first_name = models.CharField(_('First Name'), max_length=30, blank = False, default = '')
|
||||
last_name = models.CharField(_('Last name'), max_length=30, blank = False,default = '')
|
||||
@ -63,7 +64,6 @@ class Base_User(AbstractBaseUser,PermissionsMixin):
|
||||
def __str__(self):
|
||||
return self.email
|
||||
|
||||
|
||||
class Meta:
|
||||
verbose_name = "User"
|
||||
verbose_name_plural = "Users"
|
||||
@ -71,8 +71,6 @@ class Base_User(AbstractBaseUser,PermissionsMixin):
|
||||
|
||||
class NormalUser(models.Model):
|
||||
user = models.OneToOneField(Base_User, on_delete=models.CASCADE, blank= True,null = True )
|
||||
|
||||
#avatar = models.ImageField(upload_to='media/avatars', null = True, blank = True,)
|
||||
birth_date = models.DateField(_('Birth date'),null=True, blank=True)
|
||||
#add fields Country, state, postal code, city, address1, address2
|
||||
|
||||
|
@ -0,0 +1,10 @@
|
||||
from django.conf.urls import url
|
||||
from django.urls import path
|
||||
from django.conf.urls.static import static
|
||||
from . import views
|
||||
|
||||
|
||||
urlpatterns = [
|
||||
path('profile', views.ProfileView.as_view(), name = 'profile_view'),
|
||||
path('logout', views.logout_view, name ='logout_user'),
|
||||
]
|
@ -1,7 +1,17 @@
|
||||
from django.shortcuts import render
|
||||
from .forms import CustomUserCreationForm
|
||||
from django.shortcuts import render, redirect
|
||||
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.utils.decorators import method_decorator
|
||||
from .models import Base_User, NormalUser, OwnerUser
|
||||
from django.views.generic import (
|
||||
View,
|
||||
)
|
||||
from django.contrib.auth import logout
|
||||
from django.conf import settings
|
||||
from django.http import HttpResponseRedirect
|
||||
from django.contrib import messages
|
||||
from camper.models import Offer
|
||||
|
||||
# Create your views here.
|
||||
#REJESTRACJA BASE USERA NASTĘPNIE WYBOR JAKI RODZAJ KONTA UZYTKOWNIK CCHE ZALOZYC
|
||||
@ -9,7 +19,6 @@ from django.shortcuts import render, redirect
|
||||
|
||||
class RegisterBaseUser(): # tworzy BaseUsera ze statusem BaseACC dla NormalUser i OwnerUser
|
||||
|
||||
|
||||
def register_create_base_user(self,request):
|
||||
pass
|
||||
|
||||
@ -19,11 +28,33 @@ class RegisterBaseUser(): # tworzy BaseUsera ze statusem BaseACC dla NormalUser
|
||||
class UserPickAccStatus(): #uzytkownik wybiera swoj rodzaj konta i uzuieplnia danymi
|
||||
pass
|
||||
|
||||
class EditProfile(): #edycja danych w profilu - zmiana hasłą + zmiana danych
|
||||
pass
|
||||
|
||||
class UpgradeProfileToOwnerUser(): #uzytkownik moze w kazdej cwhili zmienic swoje konto na konto firmowe
|
||||
pass
|
||||
|
||||
class DowngradeProfileToNormalUser(): #uzytkownik moze zawieisc swoje konto firmowa wracajac na status konta NormalUser
|
||||
pass
|
||||
|
||||
class ProfileView(View):
|
||||
|
||||
def get_context_data(self, **kwargs):
|
||||
context = super().get_context_data(**kwargs)
|
||||
context["offers"] = Offer.objects.filter(created_by = self.Base_User)
|
||||
return context
|
||||
@method_decorator(login_required,name='dispatch')
|
||||
|
||||
def get(self,request):
|
||||
self.Base_User = request.user
|
||||
return render(request,'users/profile.html', {'Base_User':Base_User})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
class EditProfile(): #edycja danych w profilu - zmiana hasłą + zmiana danych
|
||||
pass
|
||||
|
||||
def logout_view(request):
|
||||
logout(request)
|
||||
messages.success(request,'Zostałeś poprawnie wylogowany')
|
||||
return HttpResponseRedirect('/')
|
||||
|
||||
|
BIN
vagus/vagus/__pycache__/__init__.cpython-38.pyc
Normal file
BIN
vagus/vagus/__pycache__/settings.cpython-38.pyc
Normal file
@ -43,6 +43,8 @@ INSTALLED_APPS = [
|
||||
'address',
|
||||
'django_extensions',
|
||||
'reservation',
|
||||
'phonenumber_field',
|
||||
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
@ -119,6 +121,7 @@ AUTH_PASSWORD_VALIDATORS = [
|
||||
# https://docs.djangoproject.com/en/3.1/topics/i18n/
|
||||
|
||||
AUTH_USER_MODEL = 'users.Base_User'
|
||||
LOGIN_REDIRECT_URL = '/'
|
||||
|
||||
LANGUAGE_CODE = 'en-us'
|
||||
|
||||
|
@ -15,6 +15,7 @@ Including another URLconf
|
||||
"""
|
||||
from django.contrib import admin
|
||||
from django.urls import path,include
|
||||
from users import views
|
||||
from camper import views
|
||||
from reservation import views
|
||||
from django.conf.urls.static import static
|
||||
@ -25,6 +26,7 @@ from django.contrib.staticfiles.urls import staticfiles_urlpatterns
|
||||
|
||||
urlpatterns = [
|
||||
path('admin/', admin.site.urls),
|
||||
path(r'',include('users.urls')),
|
||||
path(r'', include('camper.urls')),
|
||||
path(r'', include('reservation.urls')),
|
||||
|
||||
|