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
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
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
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
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')
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
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