subject_template_name, RequestContext(request, {'order': order}) ) subject = subject.join(subject.splitlines()) body = loader.render_to_string( body_template_name, RequestContext(request, {'order': order}) ) from_email = getattr(settings, 'SN_FROM_EMAIL', settings.DEFAULT_FROM_EMAIL) owners = getattr(settings, 'SN_OWNERS', settings.ADMINS) send_mail(subject, body, from_email, [owner[1] for owner in owners], fail_silently=False) if 'confirmed' in getattr(settings, 'SN_BIND_NEW_ORDER_NOTIFICATION_TO', ['confirmed']): confirmed.connect(confirmed_email_notification) if 'completed' in getattr(settings, 'SN_BIND_NEW_ORDER_NOTIFICATION_TO', []): completed.connect(confirmed_email_notification) def payment_instructions_email_notification(sender, **kwargs): """ Sends an email with payment instructions to the customer once and order is placed. """ subject_template_name = 'shop_simplenotifications/payment_instructions_subject.txt' body_template_name = 'shop_simplenotifications/payment_instructions_body.txt' request = kwargs.get('request') order = kwargs.get('order') emails = [] if order.user and order.user.email:
except IndexError: pass else: try: unique_discount_code = UniqueDiscountCode.objects.get(code=discount_str) except: discount = DiscountBase.objects.get(code=discount_str) else: discount = unique_discount_code.discount unique_discount_code.delete() discount.num_uses += 1 discount.save() DiscountBase.objects.active().filter(code="", is_unique_code_discount=False).update(num_uses=F("num_uses") + 1) completed_signal.connect(on_order_completed) class DiscountBaseManager(PolymorphicManager): def active(self, at_datetime=None, code=""): if not at_datetime: at_datetime = datetime.now qs = self.filter( Q(is_active=True) & Q(valid_from__lte=at_datetime) & (Q(valid_until__isnull=True) | Q(valid_until__gt=at_datetime)) ) if code == "": qs = qs.filter(Q(code="") & Q(is_unique_code_discount=False)) else: qs = qs.filter(Q(code="") | Q(code=code))
# -*- coding: utf-8 -*- from django.db import models from shop.order_signals import completed from base.models import BaseProduct, BaseProductImage from signals import confirmed_email_notification class CustomProduct(BaseProduct): """Master data: info about product""" long_text = models.TextField(u'Описание для страницы товара') class Meta: abstract = False verbose_name = u'Товар' verbose_name_plural = u'Товары' def __unicode__(self): return u'{0}'.format(self.name) class ProductImage(BaseProductImage): product = models.ForeignKey(CustomProduct, related_name='images') completed.connect(confirmed_email_notification)
# -*- coding: utf-8 -*- from django.db import models from shop.order_signals import completed from base import BaseProductImage, BaseProduct from morozoff.apps.customshop.signals import confirmed_email_notification class CustomProduct(BaseProduct): """Master data: info about product""" long_text = models.TextField(u'Описание для страницы товара') class Meta: abstract = False verbose_name = u'Товар' verbose_name_plural = u'Товары' def __unicode__(self): return u'{0}'.format(self.name) class ProductImage(BaseProductImage): product = models.ForeignKey(CustomProduct, related_name='images') completed.connect(confirmed_email_notification)