11# added changes to update form

This commit is contained in:
Eligiusz Kurzawa 2021-01-11 21:01:47 +01:00
parent f8c4829d55
commit e2706d640f
3 changed files with 63 additions and 3 deletions

View File

@ -7,7 +7,7 @@
<div class="row no-gutters slider-text js-fullheight align-items-end justify-content-start" data-scrollax-parent="true"> <div class="row no-gutters slider-text js-fullheight align-items-end justify-content-start" data-scrollax-parent="true">
<div class="col-md-8 ftco-animate text-center text-md-left mb-5" data-scrollax=" properties: { translateY: '70%' }"> <div class="col-md-8 ftco-animate text-center text-md-left mb-5" data-scrollax=" properties: { translateY: '70%' }">
<p class="breadcrumbs" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }"><span class="mr-3"><a href="index.html">Home <i class="ion-ios-arrow-forward"></i></a></span> <span>Login</span></p> <p class="breadcrumbs" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }"><span class="mr-3"><a href="index.html">Home <i class="ion-ios-arrow-forward"></i></a></span> <span>Login</span></p>
<h1 class="mb-3 bread" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }">Login</h1> <h1 class="mb-3 bread" data-scrollax="properties: { translateY: '30%', opacity: 1.6 }">Update Profile</h1>
</div> </div>
</div> </div>
</div> </div>
@ -51,7 +51,49 @@
</div> </div>
<div class="row form-group"> <div class="row form-group">
<div class="col-md-12"> <div class="col-md-12">
<input type="submit" value="Login" class="btn btn-primary py-2 px-5"> <input type="submit" value="Update" class="btn btn-primary py-2 px-5">
</div>
</div>
</form>
{% endif %}
{% if user.is_employer %}
<form action="#" class="p-5 bg-white" method="post">
{% csrf_token %}
{% if form.errors %}
<div class="alert alert-danger alert-dismissible" role="alert">
<div id="form_errors">
{% for key, value in form.errors.items %}
<span class="fieldWrapper">
{{ key }}: {{ value }}
</span>
{% endfor %}
</div>
<button type="button" class="close" data-dismiss="alert" aria_hidden="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
{% endif %}
{% for field in form.visible_fields|slice:"3" %}
<div class="row form-group">
<div class="col-md-12 mb-3 mb-md-0">
<label class="font-weight-bold" for="fullname">{{ field.label }}</label>
<input type="{{ field.field.widget.input_type }}" id="fullname" class="form-control" placeholder="{{ field.label }}" name="{{ field.html_name }}">
</div>
</div>
{% endfor %}
<div class="row form-group">
<div class="col-md-12 mb-3 mb-md-0">
<label class="font-weight-bold" for="fullname">{{ form.company.label }}</label>
<input type="{{ form.company.field.widget.input_type }}" id="fullname" class="form-control" placeholder="{{ form.company.label }}" name="{{ form.company.html_name }}">
</div>
</div>
<div class="row form-group">
<div class="col-md-12">
<input type="submit" value="Update" class="btn btn-primary py-2 px-5">
</div> </div>
</div> </div>

View File

@ -6,5 +6,5 @@ urlpatterns = [
path('register/', UserRegisterView.as_view(), name='register'), path('register/', UserRegisterView.as_view(), name='register'),
path('login/', UserLoginView.as_view(), name='login'), path('login/', UserLoginView.as_view(), name='login'),
path('logout/', UserLogoutView.as_view(), name='logout'), path('logout/', UserLogoutView.as_view(), name='logout'),
path('update/<int:pk>/', UserUpdateView.as_view(), name='update'), path('update-profile/<int:pk>/', UserUpdateView.as_view(), name='update_profile'),
] ]

View File

@ -1,6 +1,10 @@
from django.contrib.auth.decorators import login_required
from django.contrib.auth.views import LoginView, LogoutView from django.contrib.auth.views import LoginView, LogoutView
from django.contrib.messages.views import SuccessMessageMixin from django.contrib.messages.views import SuccessMessageMixin
from django.http import HttpResponseRedirect
from django.shortcuts import redirect from django.shortcuts import redirect
from django.urls import reverse
from django.utils.decorators import method_decorator
from django.views.generic import CreateView, UpdateView from django.views.generic import CreateView, UpdateView
from users.forms import AccountRegisterForm, UserUpdateForm from users.forms import AccountRegisterForm, UserUpdateForm
@ -34,8 +38,22 @@ class UserLogoutView(LogoutView):
template_name = 'users/login.html' template_name = 'users/login.html'
@method_decorator(login_required(login_url='/users/login'), name='dispatch')
class UserUpdateView(SuccessMessageMixin, UpdateView): class UserUpdateView(SuccessMessageMixin, UpdateView):
model = Profile model = Profile
success_message = "You updated your profile!" success_message = "You updated your profile!"
template_name = 'users/update.html' template_name = 'users/update.html'
form_class = UserUpdateForm form_class = UserUpdateForm
def form_valid(self, form):
form.instance.user = self.request.user
return super(UserUpdateView, self).form_valid(form)
def get(self, request, *args, **kwargs):
self.object = self.get_object()
if self.object.user != request.user:
return HttpResponseRedirect('/')
return super(UserUpdateView, self).get(request, *args, **kwargs)
def get_success_url(self):
return reverse('users: update_profile', kwargs={'pk': self.object.pk})