Esempio n. 1
0
def send_promos():
	cur_user = current_user()
	sms_counter = 0
	
	if request.form["schedule"] == "now":
		msgTemplate = MessageTemplate.get_by_id(int(request.form["msgTemplate"]))
		
		# Nasty hack because I just don't get JSON
		for key in request.form:
			if key[:5] == "guest":
				# Send message
				if not cur_user.is_demo or sms_counter <= 10:
					Message.send_promo(request.form[key], msgTemplate)
				if Guest.get_by_id(int(request.form[key])).preferred_contact == 'sms':
					sms_counter = sms_counter + 1
					if sms_counter % 5 == 0:
					# Delay message 1 min with every 5 sms
						time.sleep(60)
	return "Success"
Esempio n. 2
0
def advertise():
	demo = request.args.get('demo')
	if not demo:
		demo = False
	elif demo.lower() == "true":
		demo = True
	else:
		demo = False
	cur_user = current_user()
	# Create a list of guests (as dicts) within the user's library
	optInList = []
	for guest in cur_user.get_optins():
		if guest.sms_number or guest.email:
			optin = {}
			optin["guest_ID"] = guest.key.id()
			if guest.first_name and guest.last_name:
				optin["name"] = guest.first_name + ' ' + guest.last_name
			elif guest.first_name:
				optin["name"] = guest.first_name
			if guest.preferred_contact == 'sms':
				optin["smsNumber"] = functions.stylizePhoneNumber(guest.sms_number)
			elif guest.preferred_contact == 'email':
				optin["email"] = guest.email
			if guest.subscribe_date:
				optin["subscribe_date"] = guest.subscribe_date.strftime('%m/%d/%y')
			else:
				optin["subscribe_date"] = "Unknown"
			if guest.signup_method:
				if guest.signup_method == 1:
					optin["signup_method"] = 'Waitlist'
				elif guest.signup_method == 2:
					optin["signup_method"] = 'SMS'
				elif guest.signup_method == 3:
					optin["signup_method"] = "Website"
			else:
				optin["signup_method"] = 'Waitlist'
			optin["promos_sent"] = Message.query(Message.restaurant_key==cur_user.key,Message.recipient_key==guest.key).count() # TODO: Don't count table notifications (it's going to be nasty to fix that!)
			optInList.append(optin)
	optInList.sort(key=lambda optin: optin["subscribe_date"])
	
	# Create list of MessageTemplates
	msgTemplates = []
	for msgTemplate in MessageTemplate.query(MessageTemplate.restaurant_key==cur_user.key,MessageTemplate.message_type==2,MessageTemplate.is_active==True).fetch():
		if msgTemplate.message_name: # If it doesn't have a name, we can't show it
			msg = {}
			msg["msgID"] = msgTemplate.key.id()
			msg["msgName"] = msgTemplate.message_name
			msg["msgText"] = msgTemplate.message_text
			msgTemplates.append(msg)
	msgTemplates.sort(key=lambda msg: msg["msgName"])
	return render_response("advertise.html", optInList=optInList, msgTemplates=msgTemplates, demo=demo)
Esempio n. 3
0
def logout():
	# Clear out guests and checkins if demo account
	cur_user = current_user()
	if cur_user.is_demo:
		# Delete guest objects, checkin objects, and user object
		guests = Guest.query(Guest.restaurant_key==cur_user.key).fetch()
		for guest in guests:
			checkins = CheckIn.query(CheckIn.guest_key==guest.key).fetch()
			for checkin in checkins:
				checkin.key.delete()
			guest.key.delete()
		for msg in Message.query(Message.restaurant_key==cur_user.key).fetch():
			msg.key.delete()
		for msgTemplate in MessageTemplate.query(MessageTemplate.restaurant_key==cur_user.key).fetch():
			msgTemplate.key.delete()
		cur_user.key.delete()
	# Logs out User
	logout_account()
	return redirect(users.create_logout_url("/"))
Esempio n. 4
0
def send_custom_msg(guest_ID):
	if Message.send_notification(guest_ID,request.form["msg"]):
		return "Success"
	else:
		return "Error"
Esempio n. 5
0
def send_default_msg(guest_ID):
	if Message.send_notification(guest_ID,False):
		return "Success"
	else:
		return "Error"