예제 #1
0
파일: app.py 프로젝트: jze/sfhistory
    def post(self):
        cookie = self.request.get('cookie')
        if not cookie:
            logging.warning('Submit to /geocode without cookie.')
            self.redirect('/')
            return

        user = labeler_db.User.get(cookie)
        assert user

        assert self.request.get('id')
        photo = labeler_db.ImageRecord.get_by_key_name(self.request.get('id'))
        assert photo

        geocode = labeler_db.Geocode(user=user, photo=photo)

        lat = self.request.get('lat')
        lon = self.request.get('lon')
        if lat and lon:
            geocode.location = GeoPt(lat=float(lat), lon=float(lon))

        if self.request.get('impossible'):
            geocode.feasibility = 'no'
        elif self.request.get('notme'):
            geocode.feasibility = 'maybe'
        elif self.request.get('notsf'):
            geocode.feasibility = 'notsf'
        elif self.request.get('success'):
            geocode.feasibility = 'yes'
        else:
            logging.warning('Got rating w/o feasibility')
            self.redirect('/')
            return

        setting = self.request.get('setting')
        if setting: geocode.setting = setting

        rating = self.request.get('rating')
        if rating:
            rating = int(rating)
            if rating >= 1 and rating <= 5:
                geocode.rating = rating
            else:
                logging.warning('Got odd rating: %s' % rating)

        comments = self.request.get('comments')
        if comments:
            geocode.comments = comments

        geocode.put()
        logging.info('Geocode %s for %s by %s' %
                     (geocode.feasibility, photo.photo_id, user.key()))

        # Take them to another random image.
        id = labeler.randomImage(user)
        self.redirect('/?id=%d' % id)
예제 #2
0
파일: app.py 프로젝트: Web5design/sfhistory
  def post(self):
    cookie = self.request.get('cookie')
    if not cookie:
      logging.warning('Submit to /geocode without cookie.')
      self.redirect('/')
      return

    user = labeler_db.User.get(cookie)
    assert user

    assert self.request.get('id')
    photo = labeler_db.ImageRecord.get_by_key_name(self.request.get('id'))
    assert photo

    geocode = labeler_db.Geocode(user=user, photo=photo)

    lat = self.request.get('lat') 
    lon = self.request.get('lon') 
    if lat and lon:
      geocode.location = GeoPt(lat=float(lat), lon=float(lon))

    if self.request.get('impossible'):
      geocode.feasibility = 'no'
    elif self.request.get('notme'):
      geocode.feasibility = 'maybe'
    elif self.request.get('notsf'):
      geocode.feasibility = 'notsf'
    elif self.request.get('success'):
      geocode.feasibility = 'yes'
    else:
      logging.warning('Got rating w/o feasibility')
      self.redirect('/')
      return

    setting = self.request.get('setting')
    if setting: geocode.setting = setting

    rating = self.request.get('rating')
    if rating:
      rating = int(rating)
      if rating >= 1 and rating <= 5:
        geocode.rating = rating
      else:
        logging.warning('Got odd rating: %s' % rating)

    comments = self.request.get('comments')
    if comments:
      geocode.comments = comments

    geocode.put()
    logging.info('Geocode %s for %s by %s' % (
        geocode.feasibility, photo.photo_id, user.key()))

    # Take them to another random image.
    id = labeler.randomImage(user)
    self.redirect('/?id=%d' % id)
예제 #3
0
파일: app.py 프로젝트: jze/sfhistory
    def get(self):
        user = labeler.userFromCookie(self)
        assert user

        if not self.request.get('id'):
            # Redirect them to a random image.
            id = labeler.randomImage(user)
            self.redirect('/?id=%d' % id)
            return

        id = int(self.request.get('id'))
        logging.info('Showing record %d to %s' % (id, user.key()))
        image = labeler_db.ImageRecord.get_by_key_name(str(id))
        assert image

        carousel = labeler.nearbyIds(user, id)

        template_values = {
            'cookie':
            str(user.key()),
            'image': {
                'id': id,
                'photo_id': image.photo_id,
                'title': image.title,
                'date': image.date,
                'folder': image.folder,
                'description': image.description,
                'note': image.note,
                'library_url': image.library_url
            },
            'carousel': [{
                'id': this_id,
                'current': (id == this_id)
            } for this_id in carousel]
        }
        path = os.path.join(os.path.dirname(__file__),
                            'templates/mainpage.tpl')
        self.response.out.write(template.render(path, template_values))
예제 #4
0
파일: app.py 프로젝트: Web5design/sfhistory
  def get(self):
    user = labeler.userFromCookie(self)
    assert user

    if not self.request.get('id'):
      # Redirect them to a random image.
      id = labeler.randomImage(user)
      self.redirect('/?id=%d' % id)
      return

    id = int(self.request.get('id'))
    logging.info('Showing record %d to %s' % (id, user.key()))
    image = labeler_db.ImageRecord.get_by_key_name(str(id))
    assert image

    carousel = labeler.nearbyIds(user, id)

    template_values = {
      'cookie': str(user.key()),
      'image': {
        'id': id,
        'photo_id': image.photo_id,
        'title': image.title,
        'date': image.date,
        'folder': image.folder,
        'description': image.description,
        'note': image.note,
        'library_url': image.library_url
      },
      'carousel': [
        {
          'id': this_id,
          'current': (id == this_id)
        } for this_id in carousel
      ]
    }
    path = os.path.join(os.path.dirname(__file__), 'templates/mainpage.tpl')
    self.response.out.write(template.render(path, template_values))