diff --git a/users/forms.py b/users/forms.py
new file mode 100644
index 0000000..c467235
--- /dev/null
+++ b/users/forms.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',
+ )
+
diff --git a/users/mixins.py b/users/mixins.py
new file mode 100644
index 0000000..91bbfc7
--- /dev/null
+++ b/users/mixins.py
@@ -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)
diff --git a/users/templates/contractor_profile_test_edit.html b/users/templates/contractor_profile_test_edit.html
new file mode 100644
index 0000000..c39b283
--- /dev/null
+++ b/users/templates/contractor_profile_test_edit.html
@@ -0,0 +1,11 @@
+{#{% extends 'partials/base.html' %}#}
+{##}
+{#{% load staticfiles %}#}
+{##}
+{#{% block content %}#}
+
+{#{% endblock %}#}
diff --git a/users/urls.py b/users/urls.py
index fcb9be9..62dfc83 100755
--- a/users/urls.py
+++ b/users/urls.py
@@ -10,6 +10,7 @@ from .views import (
CustomerProfileOpenProjectsView,
CustomerProfileReviewsView,
CustomerProfileTrashedProjectsView,
+ ContractorTestProfileEditView,
# UserDetailView,
# UserInfoListView,
UserListView,
@@ -32,5 +33,5 @@ urlpatterns = [
# urls.url(r'^info$', UserInfoListView.as_view(), name='users_info_list'),
urls.url(r'contractors/$', ContractorListView.as_view(), name='contractor-list' ),
# urls.url(r'^(?P\d+)/$', UserView.as_view(), name='user_view'),
- urls.url(r'contractors/(?P\d+)/edit/$', ContractorProfileEditView.as_view(), name='contractor-edit' ),
+ urls.url(r'contractors/(?P\d+)/edit/$', ContractorTestProfileEditView.as_view(), name='contractor-edit' ),
]
diff --git a/users/views.py b/users/views.py
index 8b2895a..1a10177 100644
--- a/users/views.py
+++ b/users/views.py
@@ -5,6 +5,8 @@ from django.views.generic.base import TemplateView
from archilance.mixins import BaseMixin
from .models import User
+from .mixins import CheckForUserMixin
+from .forms import UserEditForm
class UserListView(ListView):
@@ -65,9 +67,35 @@ class CustomerProfileReviewsView(BaseMixin, DetailView):
context_object_name = 'customer'
-class ContractorProfileEditView(BaseMixin, View):
+class ContractorProfileEditView(CheckForUserMixin, View):
+ form_class = ''
template_name = 'contractor_profile_edit.html'
def get(self, request, *args, **kwargs):
contractor = get_object_or_404(User, pk=kwargs.get('pk'))
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})