Beispiel #1
0
    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)
Beispiel #2
0
    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)
Beispiel #3
0
 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()
Beispiel #4
0
 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))
Beispiel #5
0
 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))  
Beispiel #6
0
 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))
Beispiel #7
0
 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)