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"
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)
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("/"))
def send_custom_msg(guest_ID): if Message.send_notification(guest_ID,request.form["msg"]): return "Success" else: return "Error"
def send_default_msg(guest_ID): if Message.send_notification(guest_ID,False): return "Success" else: return "Error"