Exemple #1
0
  def get(self):
    user = self.get_user()
    if not user:
      return

    # generate the query table
    params = {
      'queries': self.generate_query_table(user), 
      'user_email': user.email, 
      'template_metrics': TemplateMetric.json_list(),
    }
    
    self.register_css([
      'dashboard.css',
      'popup.css', 
      'new_metric_autocomplete.css',
    ])

    self.register_js([
      'https://www.google.com/jsapi',
      'google_charts.js',
      'dashboard.js',
    ])

    html = self.render_page('ui/html/dashboard.html', params)

    self.response.out.write(html)
  def get(self):
    user = self.get_user()
    if not user:
      return

    if TemplateMetric.all().count() > 0:
      return

    f = open('scripts/templates.json')
    json_templates = json.loads(f.read())

    for json_template in json_templates:
      template = TemplateMetric(
        format = json_template['format'],
        frequency = json_template['frequency'],
        name = json_template['name'],
        normalized_name = Query.normalize_name(json_template['name']),
        text = json_template['text'],
      )

      template.put()
Exemple #3
0
  def get(self): # this should really be post, all these db-writes
    # unpack the values from the query string
    program = self.request.get('program')
    sms = self.request.get('sms', None) 
    invite_code_name = self.request.get('invite_code', None)

    user = self.get_user(invite_code_name)
    if not user:
      return

    if sms != None and len(sms) == 10:
      # need to check that no one has this phone number yet
      # also, validate the phone number somewhat
      user.phone = sms
      user.query_medium = 'sms' # favour sms over email
      user.put()

    metrics = None

    if program == 'casual':
      metrics = json.loads(open('scripts/casual_program.json').read())
    else:
      metrics = json.loads(open('scripts/moderate_program.json').read())

    for metric in metrics:
      if metric == None:
        continue

      # add the metric
      name = metric["name"]
      frequency = int(metric["frequency"])
      text = metric['text']
      user_email = self.request.get('user_email')
      format = metric['format']
      template = TemplateMetric.get_by_name(name)

      query = Query(
        name = name,
        # we should really do normalization inside the Query constructor,
        # but it will take some time to figure out how, lacking a nearby
        # python badass
        normalized_name = Query.normalize_name(name), 
        text = text,
        frequency = frequency,
        user = user,
        format = format,
        template = template,
      )

      query.put()
    
    self.redirect('/dashboard?first_time=true')
Exemple #4
0
  def get(self):
    google_user = users.get_current_user()
    if google_user != None:
      user = User.get_by_google_user(google_user)
      if user != None and user.is_whitelisted:
        self.redirect('/dashboard');
      else:
        self.redirect(users.create_logout_url('/no-invite'))
      

    f = open('ui/html/home.html')
    html = f.read()

    login_url = users.create_login_url(self.request.uri)

    params = {
      'login_url': login_url,
      'template_metrics': TemplateMetric.json_list()
    }

    html = html % params

    self.response.out.write(html)