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)
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()
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")
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()
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
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")