Example #1
0
 def sum_of_quantity(self, request=None, calc_or_show='show', currency=980, ):
     """ Возвращаем значение суммы количества * на цену товара в текущей валюте сайта
     """
     from apps.product.views import get_product
     product = get_product(product_pk=self.product_id, product_url=None, )
     price = product.get_price(request, price=None, calc_or_show='show', currency=currency, )  # price=self.price,
     """
         Расчитываем цену товара.
     """
     from decimal import Decimal
     price = self.quantity * (Decimal(price, ) / product.price_of_quantity)
     if calc_or_show == 'calc':         # Если нас просят не просто показать, а посчитать цену товара?
         if product.is_availability == 2:  # Если товар доступен под заказ?
             """
                 Если товар доступен под заказ?
                 Показываем 50% стоимости.
             """
             price = price/2            # Берём 50% от стоимости
     return u'%5.2f'.replace(',', '.', ) % price  # .replace(',', '.', ).strip()
Example #2
0
def context(request, ):
    #    from apps.product.models import Category
    #    try:
    #        all_categories_ = Category.manager.published()
    #    except Category.DoesNotExist:
    #        all_categories_ = None

    #    ajax_resolution_ = request.session.get(u'ajax_resolution', True, )
    print 'Django_Context_Processor:'
    print 'print request: ', request
    if str(request, ).find('WSGIRequest:', ):
        url = str(request, ).split("'")[1]
        print url
        try:
            value = url.decode('cp1252').encode('utf8')
        except:
            pass
        else:
            try:
                print 'cp1252 -1', type(value, ), value
            except:
                print 'cp1252 -1', type(value, ), 'print value: Error'
        try:
            value = url.encode('cp1252')
        except:
            pass
        else:
            try:
                print 'cp1252 -2', type(value, ), value
            except:
                print 'cp1252 -2', type(value, ), 'print value: Error'

    try:
        url = dict(request)
        print 'dict: ', url
        url = url['WSGIRequest']
    except Exception as e:
        print 'Exception: ', e
    except TypeError as e:
        print 'TypeError: ', e
    print 'WSGIRequest: ', url
    url = request.get_full_path()
    from django.shortcuts import redirect
    # return redirect(to=url)
    from django.utils.encoding import uri_to_iri
    url = uri_to_iri(url, )
    url = url.encode('cp1252', )
    print 'Next URL: request.get_full_path: ', url
    from django.core.urlresolvers import resolve, Resolver404
    view, args, kwargs = resolve(url, )
    print view, args, kwargs
    from apps.product.views import show_product
    if 'view' in locals() and view == show_product:
        try:
            product_pk = int(kwargs[u'id'], )
        except ValueError:
            pass
        else:
            print product_pk, kwargs[u'product_url'].encode('utf8')
            from apps.product.views import get_product
            """ Убираем НАХРЕН проверку именования товара product_url """
            # product = get_product(product_pk=product_pk, product_url=kwargs[u'product_url'], )
            product = get_product(product_pk=product_pk, )
            print product
            #return redirect(to=product.get_absolute_url(), )
    #return redirect(to='http://keksik.com.ua%s' % url, )
    return dict(url=product.get_absolute_url(), )
Example #3
0
def context(request):

    try:
        static_pages = Static.objects.all()
    except Static.DoesNotExist:
        static_pages = None

    try:
        currency = Currency.objects.all()
    except Currency.DoesNotExist:
        currency = None

    """ Проверяем session на наличие currency pk """
    currency_pk = request.session.get(u'currency_pk', None, )
    if currency_pk:
        try:
            currency_pk = int(currency_pk, )
        except ValueError:
            request.session[u'currency_pk'] = 1
            current_currency = currency.get(pk=1, )
        else:
            try:
                current_currency = currency.get(pk=currency_pk, )
            except Currency.DoesNotExist:
                current_currency = currency.get(pk=1, )
            else:
                request.session[u'currency_pk'] = currency_pk
    else:
        request.session[u'currency_pk'] = 1
        current_currency = currency.get(pk=1, )

    try:
        slides = Slide.manager.visible()
    except Slide.DoesNotExist:
        slides = None

    try:
        categories_basement = Category.objects.basement()
    except Category.DoesNotExist:
        categories_basement = None

    if request.user.is_authenticated() and request.user.is_active:
        user_id_ = request.session.get(u'_auth_user_id', None, )
        # from django.contrib.auth.models import User
        UserModel = get_user_model()
        try:
            user_id_ = int(user_id_, )
        except ValueError:
            user_object = None
        else:
            user_object = UserModel.objects.get(pk=user_id_, )
    else:
        user_object = None

    user_cart = get_cart_or_create(request, user_object=user_object, created=False, )

    if user_cart:
        coupons = user_cart.Cart_child.all()
        """ Проверяем СПИСОК [] на пустоту """
        if coupons:
            coupon = coupons[0]
        else:
            coupon = None

    else:
        coupon = None


    #                    sessionid_carts = Carts.objects.filter(user_obj=None, sessionid=SESSIONID_SESSION_,
    #  order=None, account=None, package=None, ) #cartid=cartid,
    #                except:
    #                    sessionid_carts = None

    # #viewed_count = viewed.count()
    product = None
    product_pk = None
    # from apps.product.models import Product
    # try:
    #     product_count = Product.objects.count()
    # except Product.DoesNotExist:
    #     pass
    # else:
    #     if product_count > 0:
    #         from random import randint
    #         product_pk = randint(1, product_count, )
    #         try:
    #             product = Product.objects.get(pk=product_pk, )
    #         except Product.DoesNotExist:
    #             pass

    if not request.method == 'GET':
        print 'request.method', request.method
    else:
        if user_object:
            full_path = request.path

            """ Оказывается get_full_path() возвращает полный путь со строкой запроса в случае запроса типа GET
                и долбанный resolve не может её тогда обработать и вываливается с кодом 404.
            """
            try:
                """ Вот где выскакивает эта ошибка """
                # print 'HTTP_ACCEPT: ', request.META.get('HTTP_ACCEPT', None, )
                # print 'HTTP_ACCEPT_ENCODING: ', request.META.get('HTTP_ACCEPT_ENCODING', None, )
                # print 'HTTP_ACCEPT_LANGUAGE: ', request.META.get('HTTP_ACCEPT_LANGUAGE', None, )
                # print 'LANG: ', request.META.get('LANG', None, )
                # print 'LANGUAGE: ', request.META.get('LANGUAGE', None, )
                # print 'PYTHONIOENCODING: ', request.META.get('PYTHONIOENCODING', None, )
                # print 'REQUEST_METHOD: ', request.META.get('REQUEST_METHOD', None, )
                print 'resolve:'
                view, args, kwargs = resolve(full_path, )

            except UnicodeDecodeError:
                print 'Error: '
                print full_path.encode('utf8', )

            except Resolver404:
                try:
                    print 'request.get_full_path(): ', request.get_full_path()
                except:
                    pass

                try:
                    print 'Error: Resolver404 - cp1252 [2]', full_path.split('/')[2].encode('cp1252', )
                    print 'Error: Resolver404 - cp1252', full_path.encode('cp1252', )
                except:
                    pass

                try:
                    print 'Error: Resolver404 - utf8 - cp1252', full_path.encode('utf8').encode('cp1252', )
                except:
                    pass

                try:
                    print 'Error: Resolver404 - utf8', full_path.encode('utf8', )
                except:
                    print 'Error: Resolver404 - utf8', 'print value: Error'

            # else:
            #     try:
            #         print 'resolve(full_path, ) : view = ', view, ' args = ', args, ' kwargs = ', kwargs
            #     except:
            #         pass

    #        try:
    #            print 'Not error: ', request.path
    #        except UnicodeEncodeError:
    #            print 'Not print Not error: UniceodeEncodeError'

            if 'view' in locals() and view == show_product:
                try:
                    product_pk = int(kwargs[u'id'], )
                except ValueError:
                    pass
                else:
                    print product_pk, kwargs[u'product_url'].encode('utf8')
                    """ Убираем НАХРЕН проверку именования товара product_url """
                    # product = get_product(product_pk=product_pk, product_url=kwargs[u'product_url'], )
                    product = get_product(product_pk=product_pk, )

    sessionid = request.COOKIES.get(u'sessionid', None, )
    viewed = None
    viewed = get_or_create_Viewed(request, int_product_pk=product_pk, product=product, user_obj=user_object, sessionid=sessionid, )

    return dict(static_pages_=static_pages,
                currency_=currency,
                current_currency_=current_currency,
                slides_=slides,
                categories_basement_=categories_basement,
                user_cart_=user_cart,
                coupon_=coupon,
                viewed_=viewed, )


#    # print type(full_path, )
#    value = None
#    if isinstance(full_path, unicode):
#        try:
#            value = full_path.encode('us-ascii', )
#        except:
#            print 'Not US-ASCII'
#            try:
#                value = full_path.encode('utf8')
#            except:
#                pass
#            else:
#                try:
#                    print 'utf8', type(value, ), value
#                except:
#                    print 'utf8', type(value, ), 'print value: Error'
#            try:
#                value = full_path.decode('cp866').encode('utf8')
#            except:
#                pass
#            else:
#                try:
#                    print 'cp866', type(value, ), value
#                except:
#                    print 'cp866', type(value, ), 'print value: Error'
#            try:
#                value = full_path.decode('cp1251').encode('utf8')
#            except:
#                pass
#            else:
#                try:
#                    print 'cp1251', type(value, ), value
#                except:
#                    print 'cp1251', type(value, ), 'print value: Error'
#            try:
#                value = full_path.decode('cp1252').encode('utf8')
#            except:
#                pass
#            else:
#                try:
#                    print 'cp1252 -1', type(value, ), value
#                except:
#                    print 'cp1252 -1', type(value, ), 'print value: Error'
#            try:
#                value = full_path.encode('cp1252')
#            except:
#                pass
#            else:
#                try:
#                    print 'cp1252 -2', type(value, ), value
#                except:
#                    print 'cp1252 -2', type(value, ), 'print value: Error'
#            #try:
#            #    value = full_path.encode('cp1252').decode('utf8')
#            #except:
#            #    pass
#            #else:
#            #    print 'cp1252 -3', type(value, ), value
#            try:
#                value = full_path.encode('cp1252').encode('utf8')
#            except:
#                pass
#            else:
#                try:
#                    print 'cp1252 -4', type(value, ), value
#                except:
#                    print 'cp1252 -4', type(value, ), 'print value: Error'
#            #try:
#            #    value = full_path.encode('utf8').decode('cp1252').encode('utf8')
#            #except:
#            #    pass
#            #else:
#            #    print 'cp1252 -5', type(value, ), value
#            try:
#                value = full_path.encode('utf8').encode('cp1252')
#            except:
#                pass
#            else:
#                try:
#                    print 'cp1252 -6', type(value, ), value
#                except:
#                    print 'cp1252 -6', type(value, ), 'print value: Error'
#            try:
#                value = full_path.decode('koi8').encode('utf8')
#            except:
#                pass
#            else:
#                try:
#                    print 'koi8', type(value, ), value
#                except:
#                    print 'koi8', type(value, ), 'print value: Error'
#        else:
#            try:
#                print 'ascii', type(value, ), value
#            except:
#                print 'ascii', type(value, ), 'print value: Error'
#
#