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.
44 lines
1.6 KiB
44 lines
1.6 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 "{path}?ref={ref_link}".format(**{
|
|
'path': user.referral.url,
|
|
'ref_link': user.referral.code
|
|
})
|
|
|
|
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
|
|
|