User registration
This commit is contained in:
parent
300e535b5c
commit
15f5a4d281
|
@ -1,9 +1,19 @@
|
|||
from django import forms
|
||||
from django.contrib.auth.forms import UserCreationForm
|
||||
from friendly_captcha.fields import FrcCaptchaField
|
||||
|
||||
from .models import PflaenzliUser, Offer
|
||||
from .models import Offer, PflaenzliUser
|
||||
|
||||
|
||||
class CreateOfferForm(forms.ModelForm):
|
||||
class Meta:
|
||||
model = Offer
|
||||
fields = ['title', 'description', 'zipcode', 'image']
|
||||
|
||||
|
||||
class RegistrationForm(UserCreationForm):
|
||||
class Meta(UserCreationForm.Meta):
|
||||
model = PflaenzliUser
|
||||
fields = UserCreationForm.Meta.fields + ('zipcode',)
|
||||
|
||||
captcha = FrcCaptchaField()
|
||||
|
|
|
@ -6,7 +6,7 @@ from django.core.files.storage import default_storage
|
|||
|
||||
|
||||
class PflaenzliUser(User):
|
||||
zipcode = models.PositiveIntegerField()
|
||||
zipcode = models.PositiveIntegerField(blank=True)
|
||||
|
||||
|
||||
class Offer(models.Model):
|
||||
|
|
|
@ -13,7 +13,9 @@
|
|||
</p>
|
||||
<hr />
|
||||
<p>To offer your plants, please register first.</p>
|
||||
<a href="#" class="btn btn-pfl btn-lg mb-3" type="button">Register</a>
|
||||
<a href="{% url 'register_user' %}"
|
||||
class="btn btn-pfl btn-lg mb-3"
|
||||
type="button">Register</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -16,5 +16,6 @@ urlpatterns = [
|
|||
path("accounts/<int:user_id>", views.user_detail, name="user_detail"),
|
||||
path('accounts/login/', auth_views.LoginView.as_view(template_name='registration/login.html')),
|
||||
path('accounts/profile/', auth_views.LoginView.as_view(template_name='user/detail.html'), name='user_profile'),
|
||||
path('accounts/register/', views.register_user, name='register_user'),
|
||||
path('accounts/', include('django.contrib.auth.urls')),
|
||||
]
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
from django.shortcuts import render, get_object_or_404, redirect
|
||||
from django.utils import timezone
|
||||
from django.contrib import messages
|
||||
from django.contrib.auth import login
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.http import HttpResponseForbidden
|
||||
|
||||
from .forms import CreateOfferForm
|
||||
from .forms import CreateOfferForm, RegistrationForm
|
||||
|
||||
from .models import PflaenzliUser, Offer, Wish
|
||||
from .mail import send_offer_email
|
||||
from .upload import generate_unique_filename
|
||||
|
@ -97,3 +99,16 @@ def user_detail(request, user_id):
|
|||
wishes = Wish.objects.filter(user=user_id)
|
||||
|
||||
return render(request, "user/public.html", {"user": user, "offers": offers, "wishes": wishes})
|
||||
|
||||
|
||||
def register_user(request):
|
||||
if request.method == "POST":
|
||||
form = RegistrationForm(request.POST)
|
||||
if form.is_valid():
|
||||
user = form.save()
|
||||
login(request, user)
|
||||
return redirect("index")
|
||||
else:
|
||||
form = RegistrationForm()
|
||||
|
||||
return render(request, "basic_form.html", {"form": form, "button_label": "Register", "title": "Registeration"})
|
||||
|
|
|
@ -48,6 +48,7 @@ INSTALLED_APPS = [
|
|||
"fontawesomefree",
|
||||
"crispy_forms",
|
||||
"crispy_bootstrap5",
|
||||
"friendly_captcha",
|
||||
]
|
||||
|
||||
MIDDLEWARE = [
|
||||
|
@ -161,3 +162,9 @@ EMAIL_PORT = os.getenv('SMTP_PORT')
|
|||
EMAIL_HOST_USER = os.getenv('SMTP_USER')
|
||||
EMAIL_HOST_PASSWORD = os.getenv('SMTP_PASSWORD')
|
||||
EMAIL_USE_SSL = True
|
||||
|
||||
|
||||
# Friendly Captcha setting
|
||||
FRC_CAPTCHA_SECRET = os.getenv('FRC_SECRET')
|
||||
FRC_CAPTCHA_SITE_KEY = os.getenv('FRC_SITEKEY')
|
||||
FRC_CAPTCHA_VERIFICATION_URL = 'https://api.friendlycaptcha.com/api/v1/siteverify'
|
||||
|
|
Loading…
Reference in a new issue