LIL-606 Обычный пользователь видит вкладку Опубликованные курсы

remotes/origin/feature/lil-592
gzbender 8 years ago
parent 89165ffbda
commit 8e714a9eb7
  1. 24
      apps/user/templates/user/profile.html
  2. 37
      apps/user/views.py
  3. 2
      project/templates/blocks/user_menu.html
  4. 5
      project/urls.py

@ -2,9 +2,7 @@
<div class="section">
<div class="section__center center">
<div class="profile">
{% if not guest %}
<a class="profile__btn profile__btn_edit btn" href="{% url 'user-edit-profile' user.id %}">Редактировать</a>
{% endif %}
<a class="profile__btn profile__btn_edit btn" href="{% url 'user-edit-profile' %}">Редактировать</a>
<div class="profile__ava ava">
{% thumbnail user.photo "120x120" crop="center" as im %}
<img class="ava__pic" src="{{ im.url }}" width="{{ im.width }}" height="{{ im.height }}" />
@ -56,7 +54,7 @@
{% endif %}
</div>
<div class="profile__foot">
<a class="profile__btn btn" href="{% url 'user-edit-profile' user.id %}">Изменить</a>
<a class="profile__btn btn" href="{% url 'user-edit-profile' %}">Изменить</a>
</div>
</div>
</div>
@ -66,18 +64,18 @@
<div class="section__center center">
<div class="tabs js-tabs">
<div class="tabs__nav">
{% if owner %}
<button class="tabs__btn js-tabs-btn active">ЛАГЕРЬ</button>
{# <button class="tabs__btn js-tabs-btn active">ЛАГЕРЬ</button> #}
<button class="tabs__btn js-tabs-btn">ПРИОБРЕТЕННЫЕ
<span class="mobile-hide">КУРСЫ</span>
</button>
{% endif %}
<button class="tabs__btn js-tabs-btn {% if not owner %}active{% endif %}">ОПУБЛИКОВАННЫЕ
{% if is_author %}
<button class="tabs__btn js-tabs-btn">ОПУБЛИКОВАННЫЕ
<span class="mobile-hide">КУРСЫ</span>
</button>
{% endif %}
</div>
<div class="tabs__container">
{% if owner %}
{% comment %}
<div class="tabs__item js-tabs-item" style="display: block;">
{% if is_purchased_future %}
<div class="center center_xs">
@ -108,7 +106,8 @@
{% endif %}
{% endif %}
</div>
<div class="tabs__item js-tabs-item">
{% endcomment %}
<div class="tabs__item js-tabs-item" style="display: block;">
<div class="courses courses_scroll">
<div class="courses__list">
{% if paid.exists %}
@ -126,8 +125,8 @@
</div>
</div>
</div>
{% endif %}
<div class="tabs__item js-tabs-item" {% if not owner %}style="display: block;"{% endif %}>
{% if is_author %}
<div class="tabs__item js-tabs-item">
<div class="courses courses_scroll">
<div class="courses__list">
{% if published.exists %}
@ -145,6 +144,7 @@
</div>
</div>
</div>
{% endif %}
</div>
</div>
</div>

@ -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):

@ -26,7 +26,7 @@
{% endif %}
{% endif %}
{% endif %}
<a class="header__link" href="{% url 'user' request.user.id %}">
<a class="header__link" href="{% url 'user-profile' %}">
<div class="header__title">ПРОФИЛЬ</div>
</a>
<a class="header__link" href="{% url 'lilcity:logout' %}">

@ -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/<int:pk>/', UserView.as_view(), name='user'),
path('user/<int:pk>/edit', UserEditView.as_view(), name='user-edit-profile'),
path('user/<int:pk>/notifications', NotificationEditView.as_view(), name='user-edit-notifications'),
path('user/<int:pk>/payments', PaymentHistoryView.as_view(), name='user-edit-payments'),
path('user/resend-email-verify', resend_email_verify, name='resend-email-verify'),

Loading…
Cancel
Save