from django.conf import settings from django.core.paginator import Paginator from django.utils.translation import ugettext_lazy as _ # Create your views here. from cart.models import BUYING_STATUS_IN_CART from core.views import ProtectedView def get_mobile_phone_number(user): return user.profile.phone class IndexView(ProtectedView): template_name = 'cabinet/index.html' title = _('Личный кабинет') def get_ref_link(self,user): return user.referral.url if user.referral else "" def get_bought_item_list(self,user): paginator = Paginator(object_list=user.buying_set.filter(status=BUYING_STATUS_IN_CART).order_by('create_at').all(), per_page=settings.DEFAULT_PAGE_AMMOUNT) the_page = self.kwargs.get('page',1) return paginator.page(the_page) def get_full_name(self,user): return '{last_name}{first_name}{patronymic}'.format(**{ 'last_name': user.profile.last_name or "", 'first_name': user.profile.first_name or "", 'patronymic': user.profile.patronymic or "" }) def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) context['title'] = self.title context['ref_link'] = self.get_ref_link(self.request.user) context['bought_item_list'] = self.get_bought_item_list(self.request.user) context['full_name'] = self.get_full_name(self.request.user) context['email'] = self.request.user.email context['phone_number'] = self.request.user.profile.phone return context