Beispiel #1
0
def view_view(request):
    try:
        action=request.matchdict['action']
    except:
        action='c'
    try:
        id=int(request.matchdict['id'])
    except:
        id=0
    try:
        page_number=int(request.matchdict['page'].replace('/',''))
    except:
        page_number=None
    if id==0 and page_number==None:
        q = DBSession.query(Image).order_by(Image.timestamp_original)
        image_count=q.count()
        page_fract=float(Fraction(str(image_count)+'/10'))
        if int(str(page_fract).split('.')[1])==0:
            page=int(str(page_fract).split('.')[0])-1
        else:               
            page=str(page_fract).split('.')[0]
    elif page_number==None:
        page=0
    else:
        page=page_number
    #navstring=countryDetails(model,id)
    curr_page=int(page)
    #return { 'bla': log_count}
    if id==0:
        ##TODO what was the idea behind "country_id!=None"?
        ##q = DBSession.query(Trackpoint).filter(Trackpoint.country_id!=None)
        #q = DBSession.query(Trackpoint)
        #images=fetch_images_for_trackpoints(q)
        images=Image.get_images()
        #print '\n\n\n\n\n'
        #print images
        #print '\n\n\n\n\n'
    elif action=='c':
        #q = DBSession.query(Trackpoint).filter(and_(Trackpoint.country_id==id))
        #images=fetch_images_for_trackpoints(q)
        images=Image.get_images()
    elif action=='log':
        #q = DBSession.query(Trackpoint).filter(and_(Trackpoint.id==id))
        #images=fetch_images_for_trackpoints(q)
        log = DBSession.query(Log).filter(Log.id==id).one()
        images = DBSession.query(Image).filter(Image.logs.contains(log)).order_by(Image.timestamp_original).all()
    elif action=='id':
        images = DBSession.query(Image).filter(Image.id==id).order_by(Image.timestamp_original).all()
    page_list=list()
    pages_list=list()
    i=0
    for image in images:
        page_list.append(image)
        i=i+1
        if i==10:
            page_list.reverse()
            pages_list.append(page_list)
            page_list=list()
            i=0
    if i<10 and i>0:
        page_list.reverse()
        pages_list.append(page_list)
    viewlist=list()
    #print page_list
    #print pages_list
    #print curr_page
    #print pages_list[curr_page]
    for image in pages_list[curr_page]:
        if image.trackpoint:
            trackpoint_id=image.trackpoint
        else:
            trackpoint_id=3572 #TODO
            prefix='near '
        q = DBSession.query(Trackpoint).filter(Trackpoint.id==trackpoint_id)
        try:
            trackpointinfo=q.one()
            #print '\n\n\n\n'
            #print trackpointinfo.location_ref[0].name
        except:
            trackpointinfo = Trackpoint(
                                    track_id = None,
                                    latitude = None,
                                    longitude = None,
                                    altitude = None,
                                    velocity = None,
                                    temperature = None,
                                    direction = None,
                                    pressure = None,
                                    timestamp = None,
                                    uuid = None
                                    )
        #print image.location.replace('/srv','')
        #print '\n\n\n\n'
        ##TODO: fix timezone
        ##q = DBSession.query(Timezone).filter(Timezone.id==trackpointinfo.timezone_id)
        q = DBSession.query(Timezone).filter(Timezone.id==8)
        timezone = q.one()
        localtime = image.timestamp_original+timezone.utcoffset
        deltaseconds=round(timezone.utcoffset.days*86400+timezone.utcoffset.seconds)
        #TODO THIS SUCKS!
        class Viewdetail(object):
            def __init__(self, image, photoid, name, location, title, comment, alt, aperture, shutter, focal_length, iso, trackpointinfo, localtime, timezone, utcoffset, log, author):
                self.image = image
                self.photoid=photoid
                self.name=name
                self.location=location
                self.title=title
                self.comment=comment
                self.alt=alt
                self.aperture= image.aperture
                self.shutter= image.shutter
                self.focal_length= image.focal_length
                self.iso= image.iso
                #logdate=c.loginfo.created.strftime('%Y-%m-%d') #needed for the imagepath
                self.trackpointinfo=trackpointinfo
                self.localtime=localtime
                self.timezone=timezone
                #calculate the offset in seconds
                self.utcoffset=utcoffset
                self.log = log
                self.author = image.author_img_ref
        viewdetail = Viewdetail(image, image.id, image.name, image.location.replace('/srv',''), image.title, image.comment, image.alt, image.aperture, image.shutter, image.focal_length, image.iso, trackpointinfo, localtime.strftime('%Y-%m-%d %H:%M:%S'), timezone, timediff(deltaseconds), image.log, image.author)
        viewlist.append(viewdetail)

    return {
        'pages_list': pages_list,
        'curr_page': int(curr_page),
        'viewlist': viewlist,
        'request': request,
        'action': action,
        'id': id,
    }