Пример #1
0
from django.shortcuts import redirect
from django.urls import reverse
from django.views import generic
from django.views.generic.base import RedirectView

from basket.models import Basket
from catalog.mixins import PageTitleMixin
from catalog.loggers.query_logger_config import init_log
from catalog.utils import consts
from catalog.utils.main import query_log
from item.models import Item
from order.models import Order, OrderItem

active_tab = '\'orders\''
log_name = consts.logs['basket']
init_log(log_name)


class BasketListView(PageTitleMixin, LoginRequiredMixin, generic.ListView):
    model = Basket
    paginate_by = 10
    page_title = 'Корзина'
    active_tab = active_tab
    template_name = 'basket/basket_list.html'

    @query_log(log_name=log_name)
    def get_context_data(self, **kwargs):
        context = super(BasketListView, self).get_context_data(**kwargs)
        total = sum((basket.item.price for basket in self.get_queryset()))
        context['total'] = total
        return context
Пример #2
0
import logging
from datetime import datetime

from django.db import connection

from catalog.loggers.query_logger import QueryLogger
from catalog.loggers.query_logger_config import init_log
from catalog.utils import consts

main_log_name = consts.logs['main']
init_log(main_log_name)


def date_format_str(value, date_format=None):
    if date_format is None:
        date_format = "%Y-%m-%d %H:%M:%S.%f+00:00"
    to_datetime = datetime.strptime(value, date_format)
    to_str = '{0:02}.{1:02}.{2} {3:02}:{4:02}:{5:02}'.format(
        to_datetime.day, to_datetime.month, to_datetime.year, to_datetime.hour,
        to_datetime.minute, to_datetime.second)

    return to_str


def query_log(log_name=main_log_name):
    def on_call(func):
        def wrapper(*args, **kwargs):
            logger = logging.getLogger(log_name)
            ql = QueryLogger()
            with connection.execute_wrapper(ql):
                result = func(*args, **kwargs)