This commit is contained in:
Jędrzej Klepacki 2020-12-30 22:49:17 +01:00
parent f9a932eebf
commit 63ee0aa9c7
10 changed files with 251 additions and 3 deletions

View File

@ -0,0 +1,18 @@
# Generated by Django 3.1.4 on 2020-12-30 21:12
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('homepage', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='product',
name='Wolontatriat',
field=models.BooleanField(default=False),
),
]

View File

@ -35,7 +35,7 @@
</select>
</div>
</div>
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
@ -49,6 +49,18 @@
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-10 col-md-8 col-lg-6">
<label for="cun">To ogłoszenie wolontariackie <span>*</span></label>
<select id="cun" name="wol">
<option value="1">Nie</option>
<option value="2">Tak</option>
</select>
</div>
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-10 col-md-8 col-lg-6">

View File

@ -3,6 +3,92 @@
{% block content %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
body {font-family: Arial, Helvetica, sans-serif;}
/* The Modal (background) */
.modal {
display: none; /* Hidden by default */
position: fixed; /* Stay in place */
z-index: 1; /* Sit on top */
left: 0;
top: 0;
width: 100%; /* Full width */
height: 100%; /* Full height */
overflow: auto; /* Enable scroll if needed */
background-color: rgb(0,0,0); /* Fallback color */
background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
-webkit-animation-name: fadeIn; /* Fade in the background */
-webkit-animation-duration: 0.4s;
animation-name: fadeIn;
animation-duration: 0.4s
}
/* Modal Content */
.modal-content {
position: fixed;
bottom: 0;
background-color: #fefefe;
width: 100%;
-webkit-animation-name: slideIn;
-webkit-animation-duration: 0.4s;
animation-name: slideIn;
animation-duration: 0.4s
}
/* The Close Button */
.close {
color: white;
float: right;
font-size: 28px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: #000;
text-decoration: none;
cursor: pointer;
}
.modal-header {
padding: 2px 16px;
background-color: #5cb85c;
color: white;
}
.modal-body {padding: 2px 16px;}
.modal-footer {
padding: 2px 16px;
background-color: #5cb85c;
color: white;
}
/* Add Animation */
@-webkit-keyframes slideIn {
from {bottom: -300px; opacity: 0}
to {bottom: 0; opacity: 1}
}
@keyframes slideIn {
from {bottom: -300px; opacity: 0}
to {bottom: 0; opacity: 1}
}
@-webkit-keyframes fadeIn {
from {opacity: 0}
to {opacity: 1}
}
@keyframes fadeIn {
from {opacity: 0}
to {opacity: 1}
}
</style>
</head>
<body>
<!--================Categories Banner Area =================-->
@ -32,7 +118,7 @@
<input type="text" class="form-control" id="name" aria-describedby="name" placeholder="" name="email">
</div>
</div>
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
@ -43,6 +129,61 @@
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-10 col-md-8 col-lg-6">
<input type="checkbox" id="scales" name="scales" >
<label>Zapoznałem się z <a id="myBtn" style="color:blue">Regulaminem</a></label>
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal-content">
<div class="modal-header">
<span class="close">&times;</span>
<h2>Regulamin</h2>
</div>
<div class="modal-body">
<h6>Serwis wystawiania przedmiotów i usług SocialHelper jest zarządzany przez spółkę SocialHelper z siedzibą przy ulicy Jana Kowalskiego 99, 12-200 Warszawa, Polska.
</h6>
<br/>
<h6>Przed zarejestrowaniem się w serwisie użytkownik ma obowiązek zapoznania się z niniejszym regulaminem i zobowiązać się do jego przestrzegania.
</h6>
<br>
§1.1 Niniejsze warunki określają wzajemne relacje pomiędzy SocialHelper a Użytkownikami lub Odwiedzającymi.
<br/>
§1.2 Witryna umożliwia Użytkownikom wymianę przedmiotów oraz usług na zasadach barteru lub wolontariatu.
<br/>
§1.3 Witryna nie jest przeznaczona dla osób niepełnoletnich. W przypadku osób niepełnoletnich rodzic lub opiekun musi zarejestrować się w celu korzystania z usług oraz nadzorować korzystanie z usług przez osoby niepełnoletnie.
<br/>
§1.4 Rejestrując się w witrynie użytkownik zobowiązany jest do podania swojego adresu e-mail i hasła (bezpośrednio lub za pomocą profilu Facebook lub Google).
<br/><br/>
§2.1 SocialHelper jest internetowym pośredniczącym serwisem oferującym użytkownikom wirtualne forum wymiany. SocialHelper nie jest stroną żadnej transakcji pomiędzy użytkownikami.
<br/>
§2.2 Wystawione przedmioty nie mogą być produktami medycznymi oraz pochodzenia ludzkiego, używkami, bronią palną i amunicją, a także wszelkimi przedmiotami, których posiadanie jest niezgodne z polskim prawem.
<br/>
§2.3 Wystawione usługi nie mogą mieć charakteru seksualnego.
<br/>
§2.4 Użytkownik musi być właścicielem wystawionych przedmiotów i posiadać prawo do ich wymiany.
<br/>
§2.5 SocialHelper zastrzega sobie prawo do blokowania użytkowników naruszających regulamin, podających niewłaściwe informacje, niewywiązujących się z transakcji oraz wykorzystujących chat do spraw niezwiązanych z przeprowadzanymi transakcjami.
<br/>
§2.6 Użytkownicy mogą aktywować konto premium podlegające cyklicznej opłacie miesięcznej wynoszącej 9.99 PLN obciążającej ich konto lub kartę debetową.
<br/><br/>
§3.1 Wszyscy Odwiedzający i Użytkownicy ponoszą pełną odpowiedzialność za przedmioty i usługi wystawione na witrynie SocialHelper w tym jego opis, prawidłowość innych przedstawionych szczegółów oraz komunikację z innymi użytkownikami, a także ogólnie transakcje zawierane z innymi użytkownikami i mogące z nich wyniknąć spory.
<br/><br/>
§4.1 SocialHelper posiada wszelkie prawa własności intelektualnej dotyczące witryny, jej systemu (katalogu, jego przenoszenia, itp.), projektu witryny i oprogramowania wykorzystywanego przez witrynę, w tym znaków towarowych i nazw domen.
<br/>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-10 col-md-8 col-lg-6">
@ -142,6 +283,33 @@ Copyright &copy;<script>document.write(new Date().getFullYear());</script> All r
</div>
</footer>
<!--================End Footer Area =================-->
<script>
// Get the modal
var modal = document.getElementById("myModal");
// Get the button that opens the modal
var btn = document.getElementById("myBtn");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal
btn.onclick = function() {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function() {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function(event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
</script>
</body>
</html>
{% endblock %}

View File

@ -59,6 +59,18 @@
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-10 col-md-8 col-lg-6">
<label for="cun">To ogłoszenie wolontariackie <span>*</span></label>
<select id="cun" name="wol">
<option value="1">Nie</option>
<option value="2">Tak</option>
</select>
</div>
</div>
</div>
<div class="container h-100">
<div class="row h-100 justify-content-center align-items-center">
<div class="col-10 col-md-8 col-lg-6">

View File

@ -80,7 +80,6 @@ def index_offer(request):
}
return HttpResponse(template.render(context, request))
def contact(request):
return render(request , 'homepage/contact.html')
@ -168,6 +167,14 @@ def add_offer(request):
type_local = request.POST['type']
script_local = request.POST['script']
title_local = request.POST['title']
wol_local = request.POST['wol']
if wol_local == "1":
wol = False
else:
wol = True
data_local = timezone.now()
if request.FILES:
pic_local = request.FILES['file']
@ -176,6 +183,7 @@ def add_offer(request):
offer_local = request.POST['offer']
product = Product(
picture = pic_local,
Wolontatriat = wol,
create_date = data_local,
user_iden = request.user,
type = int(type_local),
@ -186,6 +194,7 @@ def add_offer(request):
keywords = "",
)
product.save()
messages.success(request, 'Ogłoszenie dodane!')
return redirect(my_offer)
return render(request , 'homepage/add_offer.html')
else:
@ -195,6 +204,7 @@ def delete_offer(request, offer_id):
instance = Product.objects.get(id=offer_id)
instance.active = False
instance.save()
messages.success(request, 'Ogłoszenie usunięte!')
return redirect(my_offer)
@ -212,12 +222,20 @@ def edit_offer(request, offer_id):
type_local = request.POST['type']
script_local = request.POST['script']
title_local = request.POST['title']
wol_local = request.POST['wol']
if wol_local == "1":
wol = False
else:
wol = True
if request.FILES:
pic_local = request.FILES['file']
instance.picture = pic_local
offer_local = request.POST['offer']
instance.Wolontatriat = wol,
instance.type = int(type_local)
instance.offer = int(offer_local)
instance.title = title_local
@ -226,6 +244,7 @@ def edit_offer(request, offer_id):
instance.keywords = ""
instance.save()
messages.success(request, 'Ogłoszenie edytowane!')
return redirect(my_offer)
return render(request , 'homepage/edycja_ogloszenia.html', context)
@ -234,6 +253,18 @@ def create_user(request):
User = get_user_model()
email = request.POST['email']
password = request.POST['password']
if email == "":
messages.error(request,'Pole email jest puste!')
return redirect('create_user')
if "@" not in email:
messages.error(request,'Wprowadzony email jest niepoprawny!')
return redirect('create_user')
if password == "":
messages.error(request,'Pole hasło jest puste!')
return redirect('create_user')
if User.objects.filter(email=email).exists():
messages.error(request,'Ten adres e-mail jest już używany')
return redirect('create_user')
@ -255,7 +286,14 @@ def delete_user(request):
User = get_user_model()
instant = User.objects.filter(id=request.user.id).first()
instant.is_active = False
instant.email = str(instant.id)
instant.username = str(instant.id)
instant_offer = Product.objects.filter(user_iden = instant)
for offer in instant_offer:
offer.active = False
offer.save()
instant.save()
messages.success(request,'Konto skasowane!')
return redirect(index)