def get(self): key = self.request.get("key", False) if not key or key != "hartley-rulez": self.error(401) return self.response.out.write("What's the magic password??") # commence shufflin' http://youtu.be/KQ6zr6kCPj8 all_employees = [e for e in Employee.all() ] # lists are easier to work w than Query objects already_matched_employees = [] created_lunches = [] for employee in all_employees: if employee not in already_matched_employees: already_matched_employees.append(employee) employees_left = [ e for e in all_employees if e not in already_matched_employees ] partner = choose_partner(employees_left, employee) if partner: logging.info("creating lunch between %s and %s" % (employee, partner)) already_matched_employees.append(partner) l = Lunch(employees=[employee.key(), partner.key()]) l.put() created_lunches.append(l) else: logging.info("couldn't find lunch mate for %s" % employee) already_matched_employees.remove(employee) logging.info("created lunches:") logging.info(created_lunches)
def get(self): key = self.request.get("key", False) if not key or key != "hartley-rulez": self.error(401) return self.response.out.write("What's the magic password??") # commence shufflin' http://youtu.be/KQ6zr6kCPj8 all_employees = [e for e in Employee.all()] # lists are easier to work w than Query objects already_matched_employees = [] created_lunches = [] for employee in all_employees: if employee not in already_matched_employees: already_matched_employees.append(employee) employees_left = [e for e in all_employees if e not in already_matched_employees] partner = choose_partner(employees_left, employee) if partner: logging.info("creating lunch between %s and %s" % (employee, partner)) already_matched_employees.append(partner) l = Lunch(employees=[employee.key(), partner.key()]) l.put() created_lunches.append(l) else: logging.info("couldn't find lunch mate for %s" % employee) already_matched_employees.remove(employee) logging.info("created lunches:") logging.info(created_lunches)
def post(self): q_id = int(self.request.get('q_id')) q = QueueEntry.get_by_id(q_id) twilio_settings = TwilioSettings.all().get() schedule = SMSSchedule.all().get() tclient = TwilioRestClient(twilio_settings.account_sid, twilio_settings.auth_token) if q and q.status == 'P': employees = Employee.all() for employee in employees: entry = ReportingEntry.all().filter('reporting_date = ', q.report_date).filter('mobile_number =', employee.mobile_number).get() if not entry: entry = ReportingEntry(name = employee.name, mobile_number = employee.mobile_number, email = employee.email, reporting_date = q.report_date, reporting_location = "NOT REPORTED", reporting_time = None, employee = employee) entry.put() if schedule.status=='Active': tclient.sms.messages.create(to = employee.mobile_number, from_ = twilio_settings.twilio_number, body = schedule.message[:160]) smslog = SMSLog(message = schedule.message[:160], from_number = twilio_settings.twilio_number, to_number = employee.mobile_number, direction = 'outgoing-scheduled', employee_name = employee.name) smslog.put() q.status = 'S' q.save()
def get(self): template_values = { "user": users.get_current_user(), "gravatar": get_gravatar_from_email(users.get_current_user().nickname(), 40), "departments": DEPARTMENTS, "employee_count": Employee.all().count(), } self.response.out.write(template.render("templates/employee.html", template_values))
def get(self): try: page = int(self.request.get('page',0)) next_page = page + 1 employees = Employee.all().order('-created').fetch(PAGE_SIZE, page*PAGE_SIZE) next_count = Employee.all().order('-created').fetch(PAGE_SIZE, next_page*PAGE_SIZE) has_next = len(next_count) > 0 has_previous = page > 0 emp_array = [] for employee in employees: emp_array.append(employee.to_dict()) result_dict = {'success':True, 'employees':emp_array,'has_next':has_next,'has_previous':has_previous,'next_count':len(next_count)} except: result_dict = {'success':False} self.response.headers['Content-Type'] = 'application/json' self.response.out.write(json.dumps(result_dict))
def get(self): template_values = { "user": users.get_current_user(), "gravatar": get_gravatar_from_email(users.get_current_user().nickname(), 40), "departments": DEPARTMENTS, "employee_count": Employee.all().count(), } self.response.out.write( template.render("templates/employee.html", template_values))
def get(self): fromNumber = self.request.get('From') to = self.request.get('To') body = self.request.get('Body') if fromNumber != '': fromNumber = fromNumber[-10:] smslog_incoming = SMSLog(message = body, from_number = fromNumber, to_number = to, direction = 'incoming', employee_name = '** NOT AN EMPLOYEE') employee = Employee.all().filter('mobile_number =', fromNumber).get() utc = timezone.UTC() est = timezone.Eastern_tzinfo() now = datetime.now() in_est = now.replace(tzinfo=utc).astimezone(est) schedule = SMSSchedule.all().get() if employee: smslog_incoming.employee_name = employee.name smslog_incoming.put() entry = ReportingEntry.all().filter('reporting_date = ', in_est.date()).filter('mobile_number =', employee.mobile_number).get() if not entry: entry = ReportingEntry(name = employee.name, mobile_number = employee.mobile_number, email = employee.email, reporting_date = in_est.date(), reporting_location = body, employee = employee) entry.put() else: entry.reporting_location = body entry.save() logging.debug(" From: %s"%fromNumber) if schedule and schedule.auto_reply_enabled=='Y' and schedule.auto_reply!=None and schedule.auto_reply!='': r = twiml.Response() r.sms(schedule.auto_reply[:160]) smslog = SMSLog(message = schedule.auto_reply[:160], from_number = to, to_number = fromNumber, direction = 'outgoing-reply', employee_name = employee.name) smslog.put() self.response.out.write(r)