Exemple #1
0
def _get_basket(request):
    if request.user.is_authenticated():
        Basket.objects.filter(
            session_key=get_session_from_request(request)).update(
                user=request.user)
        return Basket.objects.filter(user=request.user)
    else:
        return Basket.objects.filter(
            session_key=get_session_from_request(request))
Exemple #2
0
def delete_basket(request, object_id):
    # Link used when User delete the item from basket
    # noinspection PyBroadException
    try:
        Basket.objects.get(pk=int(object_id)).delete()
        if request.user.is_authenticated():
            basket_user = Basket.objects.filter(user=request.user)
        else:
            basket_user = Basket.objects.filter(
                session_key=get_session_from_request(request))
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {
            'success': True,
            'basket_count': basket_count,
            'basket_sum': "%0.2f" % (all_sum, ),
            'id': int(object_id)
        }
    except AccessError as aerr:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Exemple #3
0
    def process_request(self, request):
        if request.is_ajax():
            return
        if request.path.startswith(settings.ADMIN_SYSTEM_PREFIX):
            return
            # see if the user agent is not supposed to be tracked
        user_agent = request.META.get('HTTP_USER_AGENT', '')[:255]
        for ua in UNTRACKED_USER_AGENT:
            # if the keyword is found in the user agent, stop tracking
            if user_agent.find(ua) != -1:
                return
        from nnmware.core.models import VisitorHit

        v = VisitorHit()
        if request.user.is_authenticated():
            v.user = request.user
        v.user_agent = user_agent
        v.ip = request.META.get('REMOTE_ADDR', '')
        v.session_key = get_session_from_request(request)
        v.secure = request.is_secure()
        v.referer = request.META.get('HTTP_REFERER', '')
        v.hostname = request.META.get('REMOTE_HOST', '')[:100]
        v.url = request.get_full_path()
        v.date = now()
        v.save()
Exemple #4
0
 def dispatch(self, request, *args, **kwargs):
     obj = get_object_or_404(Order, pk=kwargs['pk'])
     if not request.user.is_authenticated():
         if obj.session_key != get_session_from_request(request):
             raise Http404
     else:
         if not request.user == obj.user and not request.user.is_superuser:
             raise Http404
     return super(CurrentUserOrderAccess, self).dispatch(request, *args, **kwargs)
Exemple #5
0
def add_basket(request, object_id):
    # Link used when User add to basket
    # noinspection PyBroadException
    try:
        p = Product.objects.get(pk=int(object_id))
        if not p.avail or p.quantity < 1 or p.amount <= 0:
            raise AccessError
        # noinspection PyBroadException
        try:
            color_id = request.POST['color']
            color = ProductColor.objects.get(pk=int(color_id))
            addon_text = color.name
        except:
            addon_text = ''
        if not request.user.is_authenticated():
            session_key = get_session_from_request(request)
            if Basket.objects.filter(session_key=session_key,
                                     product=p,
                                     addon=addon_text).count() > 0:
                b = Basket.objects.get(session_key=session_key,
                                       product=p,
                                       addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(session_key=session_key,
                           product=p,
                           addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(session_key=session_key)
        else:
            if Basket.objects.filter(user=request.user,
                                     product=p,
                                     addon=addon_text).count() > 0:
                b = Basket.objects.get(user=request.user,
                                       product=p,
                                       addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(user=request.user, product=p, addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(user=request.user)
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {
            'success': True,
            'basket_count': basket_count,
            'basket_sum': "%0.2f" % (all_sum, )
        }
    except AccessError as aerr:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Exemple #6
0
 def dispatch(self, request, *args, **kwargs):
     obj = get_object_or_404(Order, pk=kwargs['pk'])
     if not request.user.is_authenticated():
         if obj.session_key != get_session_from_request(request):
             raise Http404
     else:
         if not request.user == obj.user and not request.user.is_superuser:
             raise Http404
     return super(CurrentUserOrderAccess, self).dispatch(request, *args, **kwargs)
Exemple #7
0
def add_basket(request, object_id):
    # Link used when User add to basket
    # noinspection PyBroadException
    try:
        p = Product.objects.get(pk=int(object_id))
        if not p.avail or p.quantity < 1 or p.amount <= 0:
            raise AccessError
        # noinspection PyBroadException
        try:
            color_id = request.POST['color']
            color = ProductColor.objects.get(pk=int(color_id))
            addon_text = color.name
        except:
            addon_text = ''
        if not request.user.is_authenticated():
            session_key = get_session_from_request(request)
            if Basket.objects.filter(session_key=session_key, product=p, addon=addon_text).count() > 0:
                b = Basket.objects.get(session_key=session_key, product=p, addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(session_key=session_key, product=p, addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(session_key=session_key)
        else:
            if Basket.objects.filter(user=request.user, product=p, addon=addon_text).count() > 0:
                b = Basket.objects.get(user=request.user, product=p, addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(user=request.user, product=p, addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(user=request.user)
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {'success': True, 'basket_count': basket_count,
                   'basket_sum': "%0.2f" % (all_sum,)}
    except AccessError as aerr:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return ajax_answer_lazy(payload)
Exemple #8
0
def delete_basket(request, object_id):
    # Link used when User delete the item from basket
    try:
        Basket.objects.get(pk=int(object_id)).delete()
        if request.user.is_authenticated():
            basket_user = Basket.objects.filter(user=request.user)
        else:
            basket_user = Basket.objects.filter(session_key=get_session_from_request(request))
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {'success': True, 'basket_count':basket_count,
                   'basket_sum':"%0.2f" % (all_sum,),'id':int(object_id)}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
Exemple #9
0
 def form_valid(self, form):
     if not self.request.user.is_authenticated() and not settings.MARKET_ANONYMOUS_ORDERS:
         return super(AnonymousUserAddOrderView, self).form_invalid(form)
     basket = get_basket(self.request)
     if basket.count() < 1:
         return super(AnonymousUserAddOrderView, self).form_invalid(form)
     self.object = form.save(commit=False)
     self.object.ip = self.request.META['REMOTE_ADDR']
     self.object.user_agent = self.request.META['HTTP_USER_AGENT']
     self.object.status = STATUS_WAIT
     self.object.lite = True
     self.object.session_key = get_session_from_request(self.request)
     self.object.save()
     success_add_items = make_order_from_basket(self.object, basket)
     if success_add_items is not True:
         self.object.delete()
         return super(AnonymousUserAddOrderView, self).form_invalid(form)
     send_new_order_seller(self.object)
     send_new_order_buyer(self.object, [self.object.email])
     return super(AnonymousUserAddOrderView, self).form_valid(form)
Exemple #10
0
 def form_valid(self, form):
     if not self.request.user.is_authenticated and not settings.MARKET_ANONYMOUS_ORDERS:
         return super(AnonymousUserAddOrderView, self).form_invalid(form)
     basket = get_basket(self.request)
     if basket.count() < 1:
         return super(AnonymousUserAddOrderView, self).form_invalid(form)
     self.object = form.save(commit=False)
     self.object.ip = self.request.META['REMOTE_ADDR']
     self.object.user_agent = self.request.META['HTTP_USER_AGENT']
     self.object.status = STATUS_WAIT
     self.object.lite = True
     self.object.session_key = get_session_from_request(self.request)
     self.object.save()
     success_add_items = make_order_from_basket(self.object, basket)
     if success_add_items is not True:
         self.object.delete()
         return super(AnonymousUserAddOrderView, self).form_invalid(form)
     send_new_order_seller(self.object)
     send_new_order_buyer(self.object, [self.object.email])
     return super(AnonymousUserAddOrderView, self).form_valid(form)
Exemple #11
0
def add_basket(request, object_id):
    # Link used when User add to basket
    try:
        p = Product.objects.get(pk=int(object_id))
        if not p.avail or p.quantity < 1 or p.amount <= 0:
            raise AccessError
        try:
            color_id = request.POST["color"]
            color = ProductColor.objects.get(pk=int(color_id))
            addon_text = color.name
        except:
            addon_text = ""
        if not request.user.is_authenticated():
            session_key = get_session_from_request(request)
            if Basket.objects.filter(session_key=session_key, product=p, addon=addon_text).count() > 0:
                b = Basket.objects.get(session_key=session_key, product=p, addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(session_key=session_key, product=p, addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(session_key=session_key)
        else:
            if Basket.objects.filter(user=request.user, product=p, addon=addon_text).count() > 0:
                b = Basket.objects.get(user=request.user, product=p, addon=addon_text)
                b.quantity += 1
            else:
                b = Basket(user=request.user, product=p, addon=addon_text)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(user=request.user)
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {"success": True, "basket_count": basket_count, "basket_sum": "%0.2f" % (all_sum,)}
    except AccessError:
        payload = {"success": False}
    except:
        payload = {"success": False}
    return AjaxLazyAnswer(payload)
Exemple #12
0
def add_basket(request, object_id):
    # Link used when User add to basket
    try:
        p = Product.objects.get(pk=int(object_id))
        if not p.avail or p.quantity < 1 or p.amount <= 0 :
            raise AccessError
        if not request.user.is_authenticated():
            session_key = get_session_from_request(request)
            if Basket.objects.filter(session_key=session_key, product=p).count() >0 :
                b = Basket.objects.get(session_key=session_key, product=p)
                b.quantity += 1
            else:
                b = Basket(session_key=session_key,product=p)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(session_key=session_key)
        else:
            if Basket.objects.filter(user=request.user, product=p).count() >0 :
                b = Basket.objects.get(user=request.user, product=p)
                b.quantity += 1
            else:
                b = Basket(user=request.user,product=p)
                b.quantity = 1
            b.save()
            basket_user = Basket.objects.filter(user=request.user)
        basket_count = basket_user.count()
        all_sum = 0
        for item in basket_user:
            all_sum += item.sum
        payload = {'success': True, 'basket_count':basket_count,
                   'basket_sum':"%0.2f" % (all_sum,)}
    except AccessError:
        payload = {'success': False}
    except:
        payload = {'success': False}
    return AjaxLazyAnswer(payload)
Exemple #13
0
def _get_basket(request):
    if request.user.is_authenticated():
        Basket.objects.filter(session_key=get_session_from_request(request)).update(user=request.user)
        return Basket.objects.filter(user=request.user)
    else:
        return Basket.objects.filter(session_key=get_session_from_request(request))
Exemple #14
0
def get_basket(request):
    if not request.user.is_authenticated():
        session_key = get_session_from_request(request)
        return Basket.objects.filter(session_key=session_key)
    return Basket.objects.filter(user=request.user)