Exemplo n.º 1
0
def send_receipt(order_id):
    ordered_items = OrderedItem.objects.filter(order__order_id=order_id)
    subject, sender = settings.PAYMENT_SUCCESSFUL_EMAIL_TITLE, settings.EMAIL_SENDER

    recipients = []
    recipients.append(ordered_items[0].order.buyer.email)

    mail_template = "account/payment_successful_email.html"
    ordered_items = OrderedItem.objects.filter(order__order_id=order_id)

    delivery_charge = reduce(add, [item.delivery_total for item in ordered_items])
    order_total = reduce(add, [item.product_total + item.delivery_total for item in ordered_items])

    context_vars = {
	'site': Site.objects.get_current(),
	'buyer': ordered_items[0].order.buyer,
	'order_id': order_id,
	'receipt_date': ordered_items[0].order.created_at,
	'items': ordered_items,
	'delivery_charge': delivery_charge,
	'order_total': order_total,
	'payment_mode': ordered_items[0].order.payment_mode,
	'bank_name': ordered_items[0].order.bank_name,
	'bank_branch': ordered_items[0].order.bank_branch,
    }

    send_notification(subject % order_id, sender, mail_template, *recipients, **context_vars)
Exemplo n.º 2
0
    def save_model(self, request, obj, form, change):
	if not change:
	    store_slug = slugify(obj.name)

	    password = generate_password()
	    obj.owner.set_password(password)
	    obj.owner.save()

	    subject, sender = settings.STORE_CREATION_EMAIL_TITLE % obj.name, settings.EMAIL_SENDER

	    recipients = []
	    recipients.append(obj.owner.email)
	    recipients.append(settings.EMAIL_COPY_ADDRESS)

	    mail_template = 'store/store_creation_email.html'

	    context_vars = {
			"first_name": obj.owner.first_name,
			"store_name": obj.name,
			"store_home_url": "http://%s/%s/" % (Site.objects.get_current().domain, store_slug),
			"admin_url": "http://%s/admin/" % Site.objects.get_current().domain,
			"username": obj.owner.username,
			"password": password,
			"user_manual_url": "http://%s/%s" % (Site.objects.get_current().domain, settings.USER_MANUAL_NAME)
		    }

	    result = send_notification(subject, sender, mail_template, *recipients, **context_vars)

	    if result:
		obj.save() 
	else:
	    obj.save()
Exemplo n.º 3
0
def send_order_confirmation(*ordered_items):
    order_id = ordered_items[0].order.order_id
    buyer = ordered_items[0].order.buyer

    product_total = reduce(add, [item.product_total for item in ordered_items])
    delivery_total = reduce(add, [item.delivery_total for item in ordered_items])
    order_total = product_total + delivery_total

    subject, sender = settings.BUYER_ORDER_CONFIRMATION_EMAIL_TITLE % order_id, settings.EMAIL_SENDER

    recipients = []
    recipients.append(buyer.email)

    mail_template = 'account/buyer_order_confirmation_email.html'

    context_vars = {
	'site': Site.objects.get_current(),
	'buyer': buyer,
	'order_total': order_total,
	'order_id': order_id,
	'product_total': product_total,
	'delivery_total': delivery_total,
	'items': ordered_items,
	'order_date': ordered_items[0].order.created_at,
    }

    result = send_notification(subject, sender, mail_template, *recipients, **context_vars)

    return HttpResponse(mimetype="text/plain", content="OK")
Exemplo n.º 4
0
    def on_message(self, message):
        board = chess.Board(get_board_state())
        next_move = board.parse_san(message)

        if board.turn == chess.BLACK:
            # check for auth cookie
            auth_cookie = self.get_secure_cookie("auth")
            if not auth_cookie or not r.sismember("COOKIES", auth_cookie):
                return

        try:
            board.push_san(message)
        except ValueError:
            # ignore illegal moves
            pass
        else:
            new_board_state = board.fen()
            r.set("FEN", new_board_state)
            r.rpush("HISTORY", message)
            r.set("MR_UCI", next_move.uci())
            broadcast(
                json.dumps({
                    "FEN": new_board_state,
                    "SAN": message,
                    "MR_UCI": next_move.uci()
                }))

            if board.turn == chess.BLACK:
                # notify me, someone has made a valid move
                send_notification()

            if board.is_game_over():
                result = board.result()
                if result == "1-0":
                    white_win()
                elif result == "0-1":
                    black_win()
                else:
                    # draw
                    white_win()
                    black_win()

                self.reset()
Exemplo n.º 5
0
    def save(self, request):
	data = self.cleaned_data
	username = email = data["email"]
	password = generate_password()
	title = data["title"]
	first_name = data["first_name"]
	last_name = data["last_name"]
	mobile = data["mobile"]
	address = data["address"]
	city = data["city"]
	state = data["state"]
	country = data["country"]
	
	# Create user and corresponding profile
	user = User.objects.create_user(username, email, password)
	user.first_name = first_name
	user.last_name = last_name

	user.save()
	profile = Profile.objects.create(user=user, title=title, mobile=mobile, 
	    address=address, city=city, state=state, country=country)

	# Authenticate and log user in
	user = authenticate(username=username, password=password)
	login(request, user)

	# Send welcome email
	subject, sender = settings.WELCOME_EMAIL_TITLE, settings.EMAIL_SENDER

	recipients = []
	recipients.append(user.email)
	recipients.append(settings.EMAIL_COPY_ADDRESS)

	mail_template = 'account/welcome_email.html'

	context_vars = {
		'first_name': user.first_name,
		'username': username,
		'password': password,
		'login_url': "http://%s%s" % (Site.objects.get_current().domain, urlresolvers.reverse('account_login')) 
	}

	result = send_notification(subject, sender, mail_template, *recipients, **context_vars)

	if not result:
	    user.delete()

	return user
Exemplo n.º 6
0
def process_payment_response(request):
    """ Gets payment confirmation from Pay4Me, updates order accordingly and returns a 200 OK HttpResponse """
    soup = BeautifulStoneSoup(request.raw_post_data)
    item = soup.find('item')
    order_id = item.find('transaction-number').string
    amount = Decimal(item.amount.string)
    status = int(item.status.code.string)
    date_paid = item.find('payment-date').string 
    validation_no = item.find('validation-number').string
    payment_mode = item.find('mode').string
    bank_name = item.bank.find('name').string
    bank_branch = item.bank.find('branch').string

    
    """ Debug """

    #from django.core.mail import send_mail

    #message = """
    #order_id: %s type: %s \n
    #amount: %s type: %s \n
    #status: %s type: %s \n
    #validation_no: %s type: %s
    #date_paid: %s type: %s
    #payment_mode: %s type: %s
    #bank_name: %s type: %s
    #bank_branch: %s type: %s
    #""" % (
    
	    #order_id, type(order_id), 
	    #amount, str(type(amount)),
	    #str(status), str(type(status)),
	    #validation_no, str(type(validation_no)),
	    #date_paid, str(type(date_paid)),
	    #payment_mode, str(type(payment_mode)),
	    #bank_name, str(type(bank_name)),
	    #bank_branch, str(type(bank_branch)),
    #)

    #send_mail("Pay4Me Mall response debug", message, "*****@*****.**", ["*****@*****.**"])

    merchant_order_mail_template = 'store/merchant_order_confirmation_email.html'

    store_orders = get_list_or_404(Order, order_id=order_id)

    for so in store_orders:
	so.status = Order.DONE
	so.date_paid = date_paid.replace('T', ' ')
	so.validation_number = validation_no
	so.payment_mode = payment_mode
	if payment_mode != "ewallet":
	    so.bank_name = bank_name
	    so.bank_branch = bank_branch
	so.save()

	# Subtract ordered item quantity from product quantity.
	update_stock(so.ordereditem_set.all())

	recipients = []
	recipients.append(so.store.owner.email)

	context_vars = {
	    'store_name': so.store.name,
	    'items': so.ordereditem_set.all(),
	    'buyer_delivery_address': so.buyer.get_profile().delivery_address,
	    'admin_url': "http://%s/admin/" % Site.objects.get_current().domain,
	}

	send_notification(settings.MERCHANT_ORDER_CONFIRMATION_EMAIL_TITLE % so.store.name, settings.EMAIL_SENDER, 
		merchant_order_mail_template, *recipients, **context_vars)

    send_receipt(order_id)
    return HttpResponse(mimetype="text/plain", content="OK")