From 8e714a9eb7b736c3f84d23f9a8269578d8a5a147 Mon Sep 17 00:00:00 2001 From: gzbender Date: Wed, 1 Aug 2018 02:57:23 +0500 Subject: [PATCH] =?UTF-8?q?LIL-606=20=D0=9E=D0=B1=D1=8B=D1=87=D0=BD=D1=8B?= =?UTF-8?q?=D0=B9=20=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D1=82?= =?UTF-8?q?=D0=B5=D0=BB=D1=8C=20=D0=B2=D0=B8=D0=B4=D0=B8=D1=82=20=D0=B2?= =?UTF-8?q?=D0=BA=D0=BB=D0=B0=D0=B4=D0=BA=D1=83=20=D0=9E=D0=BF=D1=83=D0=B1?= =?UTF-8?q?=D0=BB=D0=B8=D0=BA=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD=D1=8B=D0=B5=20?= =?UTF-8?q?=D0=BA=D1=83=D1=80=D1=81=D1=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/user/templates/user/profile.html | 24 ++++++++-------- apps/user/views.py | 37 +++++++++++++++---------- project/templates/blocks/user_menu.html | 2 +- project/urls.py | 5 ++-- 4 files changed, 38 insertions(+), 30 deletions(-) diff --git a/apps/user/templates/user/profile.html b/apps/user/templates/user/profile.html index 6b0f0b07..fd279635 100644 --- a/apps/user/templates/user/profile.html +++ b/apps/user/templates/user/profile.html @@ -2,9 +2,7 @@
- {% if not guest %} - Редактировать - {% endif %} + Редактировать
{% thumbnail user.photo "120x120" crop="center" as im %} @@ -56,7 +54,7 @@ {% endif %}
@@ -66,18 +64,18 @@
- {% if owner %} - + {# #} - {% endif %} - + {% endif %}
- {% if owner %} + {% comment %}
{% if is_purchased_future %}
@@ -108,7 +106,8 @@ {% endif %} {% endif %}
-
+ {% endcomment %} +
{% if paid.exists %} @@ -126,8 +125,8 @@
- {% endif %} -
+ {% if is_author %} +
{% if published.exists %} @@ -145,6 +144,7 @@
+ {% endif %}
diff --git a/apps/user/views.py b/apps/user/views.py index 500d8404..abbd2e4d 100644 --- a/apps/user/views.py +++ b/apps/user/views.py @@ -44,22 +44,20 @@ def resend_email_verify(request): return redirect('user-edit-profile', request.user.id) -class UserView(DetailView): +@method_decorator(login_required, name='dispatch') +class ProfileView(TemplateView): model = User template_name = 'user/profile.html' + def get(self, request, *args, **kwargs): + self.object = self.request.user + context = self.get_context_data(object=self.object) + return self.render_to_response(context) + def get_context_data(self, object): context = super().get_context_data() - if not self.request.user.is_anonymous: - context['simple_user'] = self.request.user.role == User.USER_ROLE - context['guest'] = self.request.user.id != self.object.id and self.request.user.role <= User.USER_ROLE - else: - context['simple_user'] = True - context['guest'] = True - context['owner'] = self.request.user.id == self.object.id - - if context['guest'] and self.object.role <= User.USER_ROLE: - raise Http404() + context['user'] = self.request.user + context['is_author'] = self.request.user.role == User.AUTHOR_ROLE context['published'] = Course.objects.filter( author=self.object, @@ -110,6 +108,18 @@ class UserView(DetailView): return context +class UserView(DetailView): + model = User + template_name = 'user/author_profile.html' + + def get_context_data(self, object): + context = super().get_context_data() + context['published'] = Course.objects.filter( + author=self.object, + ) + return context + + class SubscribeView(View): def post(self, request, pk=None, **kwargs): @@ -195,11 +205,8 @@ class UserEditView(UpdateView): template_name = 'user/profile-settings.html' form_class = UserEditForm - @method_decorator(login_required) def dispatch(self, request, *args, **kwargs): - self.object = self.get_object() - if request.user != self.object: - raise Http404() + self.object = request.user return super().dispatch(request, *args, **kwargs) def post(self, request, *args, **kwargs): diff --git a/project/templates/blocks/user_menu.html b/project/templates/blocks/user_menu.html index 13f4fbdf..e1bc7d57 100644 --- a/project/templates/blocks/user_menu.html +++ b/project/templates/blocks/user_menu.html @@ -26,7 +26,7 @@ {% endif %} {% endif %} {% endif %} - +
ПРОФИЛЬ
diff --git a/project/urls.py b/project/urls.py index a3b1a5ad..d24d6487 100644 --- a/project/urls.py +++ b/project/urls.py @@ -29,7 +29,7 @@ from apps.user.views import ( AuthorRequestView, UserView, UserEditView, NotificationEditView, PaymentHistoryView, resend_email_verify, - SubscribeView, + SubscribeView, ProfileView, ) from apps.payment.views import ( CourseBuySuccessView, CourseBuyView, @@ -67,8 +67,9 @@ urlpatterns = [ path('payments/error', TemplateView.as_view(template_name='payment/payment_error.html'), name='payment-error'), path('school/checkout', SchoolBuyView.as_view(), name='school-checkout'), path('search/', SearchView.as_view(), name='search'), + path('user/profile/', ProfileView.as_view(), name='user-profile'), + path('user/profile/edit', UserEditView.as_view(), name='user-edit-profile'), path('user//', UserView.as_view(), name='user'), - path('user//edit', UserEditView.as_view(), name='user-edit-profile'), path('user//notifications', NotificationEditView.as_view(), name='user-edit-notifications'), path('user//payments', PaymentHistoryView.as_view(), name='user-edit-payments'), path('user/resend-email-verify', resend_email_verify, name='resend-email-verify'),