Fix LIL-572 Незареганные пользователи видят черновики

remotes/origin/hotfix/lil-572
gzbender 8 years ago
parent e43e890114
commit 8fb1fe5a8d
  1. 72
      apps/user/templates/user/profile.html
  2. 80
      apps/user/views.py

@ -78,54 +78,54 @@
</div> </div>
<div class="tabs__container"> <div class="tabs__container">
{% if owner %} {% if owner %}
<div class="tabs__item js-tabs-item" style="display: block;"> <div class="tabs__item js-tabs-item" style="display: block;">
{% if is_purchased_future %} {% if is_purchased_future %}
<div class="center center_xs"> <div class="center center_xs">
<div class="done"> <div class="done">
<div class="done__title title">Ваша подписка начинается {{school_purchased_future.date_start}}</div> <div class="done__title title">Ваша подписка начинается {{school_purchased_future.date_start}}</div>
</div>
</div>
{% else %}
{% if is_purchased %}
{% include "blocks/schedule_purchased.html" %}
{% else %}
<div class="center center_xs">
<div class="done">
<div class="done__title title">Вы не подписаны на лагерь!</div>
<div class="done__foot">
<a
{% if not user.is_authenticated %}
data-popup=".js-popup-auth"
{% else %}
data-popup=".js-popup-buy"
{% endif %}
href="#"
class="done__btn btn btn_md btn_stroke"
>Купить подписку</a>
</div> </div>
</div> </div>
</div> {% else %}
{% endif %} {% if is_purchased %}
{% endif %} {% include "blocks/schedule_purchased.html" %}
</div>
<div class="tabs__item js-tabs-item">
<div class="courses courses_scroll">
<div class="courses__list">
{% if paid.exists %}
{% include "course/course_items.html" with course_items=paid %}
{% else %} {% else %}
<div class="center center_xs"> <div class="center center_xs">
<div class="done"> <div class="done">
<div class="done__title title">Нет приобретённых курсов!</div> <div class="done__title title">Вы не подписаны на лагерь!</div>
<div class="done__foot"> <div class="done__foot">
<a class="done__btn btn btn_md btn_stroke" href="{% url 'courses' %}">Купить курсы</a> <a
{% if not user.is_authenticated %}
data-popup=".js-popup-auth"
{% else %}
data-popup=".js-popup-buy"
{% endif %}
href="#"
class="done__btn btn btn_md btn_stroke"
>Купить подписку</a>
</div> </div>
</div> </div>
</div> </div>
{% endif %} {% endif %}
{% endif %}
</div>
<div class="tabs__item js-tabs-item">
<div class="courses courses_scroll">
<div class="courses__list">
{% if paid.exists %}
{% include "course/course_items.html" with course_items=paid %}
{% else %}
<div class="center center_xs">
<div class="done">
<div class="done__title title">Нет приобретённых курсов!</div>
<div class="done__foot">
<a class="done__btn btn btn_md btn_stroke" href="{% url 'courses' %}">Купить курсы</a>
</div>
</div>
</div>
{% endif %}
</div>
</div> </div>
</div> </div>
</div>
{% endif %} {% endif %}
<div class="tabs__item js-tabs-item" {% if not owner %}style="display: block;"{% endif %}> <div class="tabs__item js-tabs-item" {% if not owner %}style="display: block;"{% endif %}>
<div class="courses courses_scroll"> <div class="courses courses_scroll">

@ -56,56 +56,62 @@ class UserView(DetailView):
else: else:
context['simple_user'] = True context['simple_user'] = True
context['guest'] = True context['guest'] = True
context['owner'] = self.request.user.id == self.object.id owner = self.request.user.id == self.object.id
if context['guest'] and self.object.role <= User.USER_ROLE: if context['guest'] and self.object.role <= User.USER_ROLE:
raise Http404() raise Http404()
context['published'] = Course.objects.filter( published = Course.objects.filter(
author=self.object, author=self.object,
) )
context['paid'] = Course.objects.filter( if not owner:
payments__in=CoursePayment.objects.filter( published = published.filter(status=Course.PUBLISHED)
else:
context['paid'] = Course.objects.filter(
payments__in=CoursePayment.objects.filter(
user=self.object,
status__in=[
Pingback.PINGBACK_TYPE_REGULAR,
Pingback.PINGBACK_TYPE_GOODWILL,
Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED,
],
),
).distinct()
school_payment = SchoolPayment.objects.filter(
user=self.object, user=self.object,
date_start__lte=now(),
date_end__gt=now(),
status__in=[ status__in=[
Pingback.PINGBACK_TYPE_REGULAR, Pingback.PINGBACK_TYPE_REGULAR,
Pingback.PINGBACK_TYPE_GOODWILL, Pingback.PINGBACK_TYPE_GOODWILL,
Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED, Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED,
], ],
), )
).distinct() school_schedules_purchased = school_payment.annotate(
school_payment = SchoolPayment.objects.filter( joined_weekdays=Func(F('weekdays'), function='unnest',)
user=self.object, ).values_list('joined_weekdays', flat=True).distinct()
date_start__lte=now(), context['school_schedules_purchased'] = school_schedules_purchased
date_end__gt=now(), context['school_payment'] = school_payment
status__in=[ context['is_purchased'] = school_payment.exists()
Pingback.PINGBACK_TYPE_REGULAR, context['profile'] = True
Pingback.PINGBACK_TYPE_GOODWILL, if school_payment.exists() and school_payment.last().date_end:
Pingback.PINGBACK_TYPE_RISK_REVIEWED_ACCEPTED, context['subscription_ends'] = school_payment.last().date_end
], context['school_schedules'] = SchoolSchedule.objects.filter(
) weekday__in=school_schedules_purchased if school_payment.exists() else [],
school_schedules_purchased = school_payment.annotate( ).all()
joined_weekdays=Func(F('weekdays'), function='unnest',) context['all_school_schedules'] = SchoolSchedule.objects.all()
).values_list('joined_weekdays', flat=True).distinct()
context['school_schedules_purchased'] = school_schedules_purchased school_payment_future = SchoolPayment.objects.filter(
context['school_payment'] = school_payment user=self.object,
context['is_purchased'] = school_payment.exists() date_start__gte=now(),
context['profile'] = True date_end__gte=now()
if school_payment.exists() and school_payment.last().date_end: )
context['subscription_ends'] = school_payment.last().date_end
context['school_schedules'] = SchoolSchedule.objects.filter( context['is_purchased_future'] = school_payment_future.exists()
weekday__in=school_schedules_purchased if school_payment.exists() else [], context['school_purchased_future'] = school_payment_future.last()
).all()
context['all_school_schedules'] = SchoolSchedule.objects.all()
school_payment_future = SchoolPayment.objects.filter(
user=self.object,
date_start__gte=now(),
date_end__gte=now()
)
context['is_purchased_future'] = school_payment_future.exists() context['owner'] = owner
context['school_purchased_future'] = school_payment_future.last() context['published'] = published
return context return context

Loading…
Cancel
Save