remotes/origin/setup
ArturBaybulatov 10 years ago
commit 3aaca296dd
  1. 18
      users/forms.py
  2. 12
      users/mixins.py
  3. 11
      users/templates/contractor_profile_test_edit.html
  4. 3
      users/urls.py
  5. 30
      users/views.py

@ -0,0 +1,18 @@
from django import forms
from django.forms import ModelForm
from .models import User
class UserEditForm(ModelForm):
class Meta:
model = User
fields = (
'first_name',
'last_name',
'patronym',
'location',
'date_of_birth',
'website',
)

@ -0,0 +1,12 @@
from django.http import HttpResponseForbidden
class CheckForUserMixin(object):
def dispatch(self, request, *args, **kwargs):
pk = kwargs.get('pk')
if pk:
if request.user.pk != int(pk):
return HttpResponseForbidden('403 Forbidden')
return super().dispatch(request, *args, **kwargs)

@ -0,0 +1,11 @@
{#{% extends 'partials/base.html' %}#}
{##}
{#{% load staticfiles %}#}
{##}
{#{% block content %}#}
<form method="post">{% csrf_token %}
{{ form.errors }}
{{ form.as_p }}
<input type="submit" value="Сохранить" />
</form>
{#{% endblock %}#}

@ -10,6 +10,7 @@ from .views import (
CustomerProfileOpenProjectsView, CustomerProfileOpenProjectsView,
CustomerProfileReviewsView, CustomerProfileReviewsView,
CustomerProfileTrashedProjectsView, CustomerProfileTrashedProjectsView,
ContractorTestProfileEditView,
# UserDetailView, # UserDetailView,
# UserInfoListView, # UserInfoListView,
UserListView, UserListView,
@ -32,5 +33,5 @@ urlpatterns = [
# urls.url(r'^info$', UserInfoListView.as_view(), name='users_info_list'), # urls.url(r'^info$', UserInfoListView.as_view(), name='users_info_list'),
urls.url(r'contractors/$', ContractorListView.as_view(), name='contractor-list' ), urls.url(r'contractors/$', ContractorListView.as_view(), name='contractor-list' ),
# urls.url(r'^(?P<pk>\d+)/$', UserView.as_view(), name='user_view'), # urls.url(r'^(?P<pk>\d+)/$', UserView.as_view(), name='user_view'),
urls.url(r'contractors/(?P<pk>\d+)/edit/$', ContractorProfileEditView.as_view(), name='contractor-edit' ), urls.url(r'contractors/(?P<pk>\d+)/edit/$', ContractorTestProfileEditView.as_view(), name='contractor-edit' ),
] ]

@ -5,6 +5,8 @@ from django.views.generic.base import TemplateView
from archilance.mixins import BaseMixin from archilance.mixins import BaseMixin
from .models import User from .models import User
from .mixins import CheckForUserMixin
from .forms import UserEditForm
class UserListView(ListView): class UserListView(ListView):
@ -65,9 +67,35 @@ class CustomerProfileReviewsView(BaseMixin, DetailView):
context_object_name = 'customer' context_object_name = 'customer'
class ContractorProfileEditView(BaseMixin, View): class ContractorProfileEditView(CheckForUserMixin, View):
form_class = ''
template_name = 'contractor_profile_edit.html' template_name = 'contractor_profile_edit.html'
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
contractor = get_object_or_404(User, pk=kwargs.get('pk')) contractor = get_object_or_404(User, pk=kwargs.get('pk'))
return render(request, self.template_name, {'contractor': contractor}) return render(request, self.template_name, {'contractor': contractor})
# class ContractorTestProfileEditView(CheckForUserMixin, View):
# form_class = UserEditForm
# template_name = 'contractor_profile_test_edit.html'
#
# def get(self, request, *args, **kwargs):
# contractor = get_object_or_404(User, pk=kwargs.get('pk'))
# form = self.form_class
# return render(request, self.template_name, {'contractor': contractor, 'form': form})
from django.views.generic import UpdateView
class ContractorTestProfileEditView(CheckForUserMixin, UpdateView):
model = User
fields = ['first_name','last_name','patronym',
'location', 'date_of_birth','website', 'skype', 'gender', 'cro']
# form_class = UserEditForm
template_name = 'contractor_profile_test_edit.html'
# success_url =
#
# def get(self, request, *args, **kwargs):
# contractor = get_object_or_404(User, pk=kwargs.get('pk'))
# form = self.form_class
# return render(request, self.template_name, {'contractor': contractor, 'form': form})

Loading…
Cancel
Save