You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

41 lines
1.5 KiB

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