Пример #1
0
    def sendtest(self, request, campaign_id):
        from premailer import Premailer
        from django.core.mail import send_mail, BadHeaderError

        receiver = request.POST.get('receiver')
        if not receiver:
            raise Http404

        try:
            campaign = self.model.objects.get(pk=campaign_id)
        except self.model.DoesNotExist:
            pass
        else:
            content = campaign.render_html(request,
                                           scheme='http://',
                                           test=True)
            content = Premailer(content, strip_important=False).transform()
            plain = campaign.render_plain(request, test=True)

            try:
                send_mail(campaign.subject,
                          plain,
                          settings.DEFAULT_FROM_EMAIL,
                          recipient_list=[receiver],
                          html_message=content)
            except BadHeaderError:
                pass

        response = JsonResponse({})
        set_cookie(response, 'last_receiver', receiver)
        return response
Пример #2
0
    def process_response(request, response):
        if getattr(request, 'disable_autoredirect', None) is True:
            set_cookie(response,
                       options.MULTILANGUAGE_COOKIE_KEY,
                       '1',
                       expires=365)

        return response
Пример #3
0
    def process_response(request, response):
        if request.is_ajax():
            return response

        utm_labels = {
            key: value
            for key, value in request.GET.items()
            if key.lower().startswith('utm_')
        }

        if utm_labels:
            set_cookie(response, 'utm', urlencode(utm_labels))
        return response
Пример #4
0
    def post(self, request):
        rating = request.POST.get('rating', 5)
        try:
            rating = int(rating)
        except (TypeError, ValueError):
            rating = 5

        # проверка, что уже голосовал (по куке)
        last_rating = request.COOKIES.get('voted')
        is_voted = last_rating is not None

        # проверка, что уже голосовал (по IP)
        client_ip = get_client_ip(request)
        last_vote = RatingVote.objects.filter(
            ip=client_ip,
            date__gte=now() - timedelta(seconds=conf.REVOTE_PERIOD)).first()
        if last_vote:
            last_rating = last_vote.rating
            is_voted = True

        if is_voted:
            response = self.json_response({
                'error': _('Already voted!'),
                'rating': last_rating,
            })
            set_cookie(response,
                       'voted',
                       last_rating,
                       expires=conf.COOKIE_DAYS_EXPIRES)
            return response

        # голосование
        vote = RatingVote(
            ip=client_ip,
            rating=rating,
        )
        try:
            vote.full_clean()
            vote.save()
        except ValidationError:
            return self.json_error()
        else:
            response = self.json_response({
                'rating': rating,
            })
            set_cookie(response,
                       'voted',
                       rating,
                       expires=conf.COOKIE_DAYS_EXPIRES)
            return response
Пример #5
0
    def clear(self, request, response=None):
        """
            Очистка корзины и данных сессии
        """
        self._unformatted = {}
        self._products = ()
        self._counts = ()

        try:
            del request.session[conf.SESSION_CART_NAME]
        except KeyError:
            pass

        if response:
            set_cookie(response, 'clear_cart', '1')
Пример #6
0
    def process_response(request, response):
        js_storage = getattr(request, 'js_storage', None)
        if js_storage is not None:
            js_storage['shop_cart_cookie'] = conf.COOKIE_CART_NAME

            cart = Cart.from_session(request)
            cart_cookie = request.COOKIES.get(conf.COOKIE_CART_NAME)
            cart_value = ':'.join(
                map(str, [cart.total_count,
                          cart.total_price.as_string()]))
            if cart and cart_cookie != cart_value:
                set_cookie(response, conf.COOKIE_CART_NAME, cart_value)
            elif not cart and cart_cookie is not None:
                delete_cookie(response, conf.COOKIE_CART_NAME)

        return response
Пример #7
0
def redirect_to_language(request, code):
    """
        Переход на сайт с выбранным языком
    """
    referer_url = get_referer_url(request)

    # язык некорректен или отсутствует
    if not code or code not in options.MULTILANGUAGE_SITES:
        return redirect(referer_url)

    # запрещаем авторедирект на удаленном домене
    language = options.MULTILANGUAGE_SITES.get(code)
    redirect_url = noredirect_url(language['url'], forced_path=referer_url)

    # запрещаем авторедирект на текущем домене
    response = redirect(redirect_url)
    set_cookie(response, options.MULTILANGUAGE_COOKIE_KEY, '1', expires=365)
    return response