def get(self):
        if not onTeam(): return self.redirect('/')

        user = users.get_current_user()
        if not user:
          self.redirect(users.create_login_url(self.request.uri))
          return

        def formatter(person):
            JSON = {}
            key = getattr(person, 'key')
            JSON['id'] = key.urlsafe()
            JSON['kind'] = key.kind()
            JSON.update(person.asDict(['email', 'name', 'checked_in']))
            return JSON

        from models import Volunteer, Rep

        source = map(formatter, Hacker.query(Hacker.checked_in == False).fetch())
        source += map(formatter, Rep.query(Rep.checked_in == False).fetch())
        source += map(formatter, Volunteer.query(Volunteer.checked_in == False).fetch())

        total_checked_in = getTotal()

        session = models.CheckInSession()
        session.user = user.email()

        session.put()
        token = channel.create_channel(session.key.urlsafe())

        self.response.write(template("checkin.html", {"source" : json.dumps(source), 'total_checked_in' : total_checked_in, 'token' : token}))
Exemple #2
0
    def get(self):

        if not onTeam():
            logging.info("Not authorized")
            return self.redirect('/')

        isQA = envIsQA()
        isDev = envIsDev()

        self.response.write(
            template(
                "dashboard.html", {
                    "envIsDev": isDev,
                    "isQA": isQA,
                    "admin": isAdmin(),
                    "onTeam": onTeam(),
                    "logout": users.create_logout_url('/')
                }))
    def get(self):

        if not onTeam():
            logging.info("Not authorized")
            return self.redirect('/')

        isQA = envIsQA()
        isDev = envIsDev()

        self.response.write(template("dashboard.html", {"envIsDev" : isDev, "isQA" : isQA, "admin" : isAdmin(), "onTeam" : onTeam(), "logout" : users.create_logout_url('/')}))
    def get(self):
        if not onTeam(): return self.redirect('/')

        keys = list(set(list(hacker_keys) + list(personal_info_keys) + list(non_required_keys) + ['status', 'admit_priority', 'rsvpd', 'checked_in', 'has_resume', 'secret', 'address1', 'address2', 'city', 'state', 'country', 'zip']))
        if (not self.request.get('include_personally_identifiable_info')) or not isAdmin():
            for key in personal_info_keys:
                keys.remove(key)
        self.response.headers['Content-Type'] = 'text/csv; charset=utf-8'
        writer = csv.DictWriter(self.response, fieldnames=keys)
        writer.writeheader()
        for hacker in Hacker.query():
          writer.writerow({key: unicode(val).encode('utf-8') for key, val in hacker.asDict(keys).iteritems()})
    def get(self):
        if not onTeam(): return self.redirect('/')

        user = users.get_current_user()
        if not user:
            self.redirect(users.create_login_url(self.request.uri))
            return

        def formatter(person):
            JSON = {}
            key = getattr(person, 'key')
            JSON['id'] = key.urlsafe()
            JSON['kind'] = key.kind()
            JSON.update(person.asDict(['email', 'name', 'checked_in']))
            return JSON

        from models import Volunteer, Rep

        source = map(formatter,
                     Hacker.query(Hacker.checked_in == False).fetch())
        source += map(formatter, Rep.query(Rep.checked_in == False).fetch())
        source += map(formatter,
                      Volunteer.query(Volunteer.checked_in == False).fetch())

        total_checked_in = getTotal()

        session = models.CheckInSession()
        session.user = user.email()

        session.put()
        token = channel.create_channel(session.key.urlsafe())

        self.response.write(
            template(
                "checkin.html", {
                    "source": json.dumps(source),
                    'total_checked_in': total_checked_in,
                    'token': token
                }))
    def post(self):
        if not onTeam(): return self.response.write({'success' : False, 'message' : 'You do not have permission to do this'})

        id = json.loads(self.request.body).get('id')
        hacker = ndb.Key(urlsafe=id).get()

        if hacker is None:
            success = False
            newTotal = 0
        elif hacker.phone_number is None:
            success = False
        else:
            newTotal = getTotal(increment_first=True)
            #We do this before so eventual consistency doesn't confuse users
            success = True
            hacker.checked_in = True
            hacker.put()
            for session in models.CheckInSession.query(models.CheckInSession.active == True):
                channel.send_message(session.key.urlsafe(), str(newTotal))

        msg = "{0} in {1} - {2}".format('successfully checked' if success else 'failed to check', hacker.name, hacker.email)

        self.response.write(json.dumps({'success' : success, 'message' : msg, 'total_checked_in' : newTotal}))
    def post(self):
        if not onTeam():
            return self.response.write({
                'success':
                False,
                'message':
                'You do not have permission to do this'
            })

        id = json.loads(self.request.body).get('id')
        hacker = ndb.Key(urlsafe=id).get()

        if hacker is None:
            success = False
            newTotal = 0
        elif hacker.phone_number is None:
            success = False
        else:
            newTotal = getTotal(increment_first=True)
            #We do this before so eventual consistency doesn't confuse users
            success = True
            hacker.checked_in = True
            hacker.put()
            for session in models.CheckInSession.query(
                    models.CheckInSession.active == True):
                channel.send_message(session.key.urlsafe(), str(newTotal))

        msg = "{0} in {1} - {2}".format(
            'successfully checked' if success else 'failed to check',
            hacker.name, hacker.email)

        self.response.write(
            json.dumps({
                'success': success,
                'message': msg,
                'total_checked_in': newTotal
            }))