예제 #1
0
 def logout(self):
     del session['user']
     if 'current_trip' in session:
         del session['current_trip']
     session.clear()
     session.save()
     tripsharing.cancel()
     redirect(h.url_for(controller='splash',action="index"))
예제 #2
0
 def logout(self):
     del session['user']
     if 'current_trip' in session:
         del session['current_trip']
     session.clear()
     session.save()
     tripsharing.cancel()
     redirect(h.url_for(controller='splash', action="index"))
예제 #3
0
 def shared(self):
     shares=meta.Session.query(SharedTrip).filter(SharedTrip.secret==request.params['secret']).all()
     if len(shares):
         myshare,=shares
         tripsharing.view_other(user=myshare.user,trip=myshare.trip)
         return redirect(h.url_for(controller='mapview',action="index"))
     tripsharing.cancel()
     return redirect(h.url_for(controller='mapview',action="index"))
예제 #4
0
 def shared(self):
     shares = meta.Session.query(SharedTrip).filter(
         SharedTrip.secret == request.params['secret']).all()
     if len(shares):
         myshare, = shares
         tripsharing.view_other(user=myshare.user, trip=myshare.trip)
         return redirect(h.url_for(controller='mapview', action="index"))
     tripsharing.cancel()
     return redirect(h.url_for(controller='mapview', action="index"))
예제 #5
0
    def upload_track(self):
        print "In upload", request.params.get("gpstrack", None)
        if 'asplan' in request.params:
            t = request.params.get("gpstrack", None)
            orderint = 0
            curid = 100
            tripsharing.cancel()
            tripname, waypoints = parse_gpx_fplan(t.value)
            tripname = self.get_free_tripname(tripname)
            trip = Trip(tripuser(), tripname)
            meta.Session.add(trip)
            meta.Session.flush()
            out = []
            for waypoint in waypoints:
                name = waypoint['name']
                pos = waypoint['pos']
                alt = waypoint['alt']
                waypoint = Waypoint(tripuser(), trip.trip, pos, curid,
                                    orderint, name, alt)
                meta.Session.add(waypoint)
                out.append(waypoint)
                orderint += 1
                curid += 1
            for w1, w2 in zip(out, out[1:]):
                r = Route(tripuser(),
                          trip.trip,
                          w1.id,
                          w2.id,
                          altitude=str(w2.altitude))
                meta.Session.add(r)
            acs = meta.Session.query(Aircraft).filter(
                sa.and_(Aircraft.user == tripuser())).all()
            if len(acs):
                trip.aircraft = acs[0].aircraft

            session['current_trip'] = tripname
            session.save()
            meta.Session.commit()
            redirect(
                h.url_for(controller='mapview', action="zoom", zoom='auto'))
            return
        t = request.params.get("gpstrack", None)
        if t != None:
            if len(t.value) > 30000000:
                redirect(
                    h.url_for(controller='error',
                              action="document",
                              message="GPX file is too large."))
            session['showtrack'] = parse_gpx(t.value,
                                             request.params.get('start'),
                                             request.params.get('end'))
            session['showarea'] = ''
            session['showarea_id'] = ''
            session.save()
        redirect(h.url_for(controller='mapview', action="zoom", zoom='auto'))
예제 #6
0
def actual_login(user,firsturl=None):
    session['user']=user.user
    if 'current_trip' in session:
        del session['current_trip']
    if 'showtrack' in session:
        del session['showtrack']
    if 'showarea' in session:
        del session['showarea']
                
    tripsharing.cancel()
    session.save()
    user.lastlogin=datetime.utcnow()
    meta.Session.flush()
    meta.Session.commit()    
    if firsturl==None:
        firsturl=h.url_for(controller='mapview',action="index")
    redirect(firsturl)
예제 #7
0
def actual_login(user, firsturl=None):
    session['user'] = user.user
    if 'current_trip' in session:
        del session['current_trip']
    if 'showtrack' in session:
        del session['showtrack']
    if 'showarea' in session:
        del session['showarea']

    tripsharing.cancel()
    session.save()
    user.lastlogin = datetime.utcnow()
    meta.Session.flush()
    meta.Session.commit()
    if firsturl == None:
        firsturl = h.url_for(controller='mapview', action="index")
    redirect(firsturl)
예제 #8
0
    def upload_track(self):
        print "In upload",request.params.get("gpstrack",None)
        if 'asplan' in request.params:
            t=request.params.get("gpstrack",None)
            orderint=0
            curid=100
            tripsharing.cancel()
            tripname,waypoints=parse_gpx_fplan(t.value)
            tripname=self.get_free_tripname(tripname)
            trip=Trip(tripuser(), tripname)
            meta.Session.add(trip)
            meta.Session.flush()
            out=[]
            for waypoint in waypoints:
                name=waypoint['name']
                pos=waypoint['pos']
                alt=waypoint['alt']
                waypoint=Waypoint(tripuser(),trip.trip,pos,curid,orderint,name,alt)
                meta.Session.add(waypoint)
                out.append(waypoint)
                orderint+=1
                curid+=1
            for w1,w2 in zip(out,out[1:]):
                r=Route(tripuser(),trip.trip,
                    w1.id,w2.id,altitude=str(w2.altitude))
                meta.Session.add(r)
            acs=meta.Session.query(Aircraft).filter(sa.and_(
                Aircraft.user==tripuser())).all()
            if len(acs):
                trip.aircraft=acs[0].aircraft

            session['current_trip']=tripname
            session.save()       
            meta.Session.commit()
            redirect(h.url_for(controller='mapview',action="zoom",zoom='auto'))
            return
        t=request.params.get("gpstrack",None)
        if t!=None:
            if len(t.value)>30000000:
                redirect(h.url_for(controller='error',action="document",message="GPX file is too large."))
            session['showtrack']=parse_gpx(t.value,request.params.get('start'),request.params.get('end'))
            session['showarea']=''
            session['showarea_id']=''
            session.save()
        redirect(h.url_for(controller='mapview',action="zoom",zoom='auto'))
예제 #9
0
    def trip_actions(self):
        #print "trip actions:",request.params

        if request.params.get('addtripname', None):
            tripsharing.cancel()
            tripname = self.get_free_tripname(request.params['addtripname'])
            trip = Trip(tripuser(), tripname)
            acs = meta.Session.query(Aircraft).filter(
                sa.and_(Aircraft.user == tripuser())).all()
            if len(acs):
                trip.aircraft = acs[0].aircraft

            print "Adding trip:", trip
            meta.Session.add(trip)
            session['current_trip'] = tripname
            session.save()
        if request.params.get('opentripname', None):
            tripsharing.cancel()
            tripname = request.params['opentripname']
            if meta.Session.query(Trip).filter(
                    sa.and_(Trip.user == tripuser(),
                            Trip.trip == tripname)).count():
                session['current_trip'] = tripname
                session.save()
        if request.params.get('reversetripname', None):
            tripsharing.cancel()
            username = tripuser()
            print "Reversing"
            tripname = request.params['reversetripname']
            wps = list(
                meta.Session.query(Waypoint).filter(
                    sa.and_(Waypoint.user == username,
                            Waypoint.trip == tripname)).order_by(
                                Waypoint.ordering).all())
            if len(wps):
                maxord = max([wp.ordering for wp in wps])
                for wp in wps:
                    wp.ordering = maxord + 1 - wp.ordering
                    print "Reversed order of", wp.waypoint, " = ", wp.ordering
                    meta.Session.add(wp)
                firststays = meta.Session.query(Stay).filter(
                    sa.and_(Stay.user == username, Stay.trip == tripname,
                            Stay.waypoint_id == wps[0].id)).all()
                if len(firststays) == 1:
                    stay, = firststays
                    stay.waypoint_id = wps[-1].id

        if request.params.get('copytripname', None):
            tripsharing.cancel()
            tripobj = meta.Session.query(Trip).filter(
                sa.and_(Trip.user == tripuser(),
                        Trip.trip == request.params['copytripname'])).first()
            newtripname = self.get_free_tripname(tripobj.trip + "(copy)")
            trip = Trip(tripuser(), newtripname)
            meta.Session.add(trip)
            acs = meta.Session.query(Aircraft).filter(
                sa.and_(Aircraft.user == tripuser(),
                        Aircraft.aircraft == tripobj.aircraft)).all()
            if len(acs):
                trip.aircraft = acs[0].aircraft

            for origwp in meta.Session.query(Waypoint).filter(
                    sa.and_(Waypoint.user == tripuser(),
                            Waypoint.trip == tripobj.trip)).all():
                wp = Waypoint(user=origwp.user,
                              trip=newtripname,
                              pos=origwp.pos,
                              id_=origwp.id,
                              ordering=origwp.ordering,
                              waypoint=origwp.waypoint,
                              altitude=origwp.altitude)
                meta.Session.add(wp)
            for origrt in meta.Session.query(Route).filter(
                    sa.and_(Route.user == tripuser(),
                            Route.trip == tripobj.trip)).all():
                rt = Route(user=origrt.user,
                           trip=newtripname,
                           waypoint1=origrt.waypoint1,
                           waypoint2=origrt.waypoint2,
                           tas=origrt.tas,
                           winddir=origrt.winddir,
                           windvel=origrt.windvel,
                           variation=origrt.variation)
                meta.Session.add(rt)
            for origstay in meta.Session.query(Stay).filter(
                    sa.and_(Stay.user == tripuser(),
                            Stay.trip == tripobj.trip)).all():
                stay = Stay(user=origstay.user,
                            trip=newtripname,
                            waypoint_id=origstay.waypoint_id,
                            fuel=origstay.fuel,
                            date_of_flight=origstay.date_of_flight,
                            departure_time=origstay.departure_time,
                            nr_persons=origstay.nr_persons,
                            fueladjust=origstay.fueladjust)
                meta.Session.add(stay)
            print "Adding trip:", trip
            session['current_trip'] = newtripname
            session.save()

        if request.params.get('deletetripname',
                              None) and not tripsharing.sharing_active():
            meta.Session.query(Trip).filter(
                sa.and_(
                    Trip.user == tripuser(),
                    Trip.trip == request.params['deletetripname'])).delete()
            del session['current_trip']
            session.save()

        meta.Session.flush()
        meta.Session.commit()
        redirect(h.url_for(controller='mapview', action="index"))
예제 #10
0
 def trip_actions(self):
     #print "trip actions:",request.params
         
     if request.params.get('addtripname',None):
         tripsharing.cancel()
         tripname=self.get_free_tripname(request.params['addtripname'])
         trip = Trip(tripuser(), tripname)
         acs=meta.Session.query(Aircraft).filter(sa.and_(
             Aircraft.user==tripuser())).all()
         if len(acs):
             trip.aircraft=acs[0].aircraft
         
         print "Adding trip:",trip
         meta.Session.add(trip)
         session['current_trip']=tripname
         session.save()       
     if request.params.get('opentripname',None):
         tripsharing.cancel()
         tripname=request.params['opentripname']
         if meta.Session.query(Trip).filter(sa.and_(Trip.user==tripuser(),
             Trip.trip==tripname)).count():
             session['current_trip']=tripname
             session.save()
     if request.params.get('reversetripname',None):
         tripsharing.cancel()
         username=tripuser()
         print "Reversing"
         tripname=request.params['reversetripname']
         wps=list(meta.Session.query(Waypoint).filter(sa.and_(Waypoint.user==username,Waypoint.trip==tripname)).order_by(Waypoint.ordering).all())
         if len(wps):
             maxord=max([wp.ordering for wp in wps])
             for wp in wps:
                 wp.ordering=maxord+1-wp.ordering
                 print "Reversed order of",wp.waypoint," = ",wp.ordering
                 meta.Session.add(wp)
             firststays=meta.Session.query(Stay).filter(sa.and_(Stay.user==username,Stay.trip==tripname,Stay.waypoint_id==wps[0].id)).all()
             if len(firststays)==1:
                 stay,=firststays
                 stay.waypoint_id=wps[-1].id
         
     if request.params.get('copytripname',None):
         tripsharing.cancel()
         tripobj=meta.Session.query(Trip).filter(sa.and_(Trip.user==tripuser(),
             Trip.trip==request.params['copytripname'])).first()
         newtripname=self.get_free_tripname(tripobj.trip+"(copy)")            
         trip = Trip(tripuser(), newtripname)
         meta.Session.add(trip)
         acs=meta.Session.query(Aircraft).filter(sa.and_(
             Aircraft.user==tripuser(),Aircraft.aircraft==tripobj.aircraft)).all()
         if len(acs):
             trip.aircraft=acs[0].aircraft
         
         for origwp in meta.Session.query(Waypoint).filter(sa.and_(Waypoint.user==tripuser(),Waypoint.trip==tripobj.trip)).all():
             wp=Waypoint(user=origwp.user,trip=newtripname,pos=origwp.pos,id_=origwp.id,
                         ordering=origwp.ordering,waypoint=origwp.waypoint,altitude=origwp.altitude)
             meta.Session.add(wp)
         for origrt in meta.Session.query(Route).filter(sa.and_(Route.user==tripuser(),Route.trip==tripobj.trip)).all():
             rt=Route(user=origrt.user,trip=newtripname,waypoint1=origrt.waypoint1,waypoint2=origrt.waypoint2,tas=origrt.tas,
                      winddir=origrt.winddir,windvel=origrt.windvel,variation=origrt.variation)
             meta.Session.add(rt)
         for origstay in meta.Session.query(Stay).filter(sa.and_(Stay.user==tripuser(),Stay.trip==tripobj.trip)).all():
             stay=Stay(user=origstay.user,trip=newtripname,waypoint_id=origstay.waypoint_id,
                       fuel=origstay.fuel,date_of_flight=origstay.date_of_flight,
                       departure_time=origstay.departure_time,
                       nr_persons=origstay.nr_persons,fueladjust=origstay.fueladjust)
             meta.Session.add(stay)
         print "Adding trip:",trip
         session['current_trip']=newtripname
         session.save()       
         
     if request.params.get('deletetripname',None) and not tripsharing.sharing_active():
         meta.Session.query(Trip).filter(sa.and_(Trip.user==tripuser(),
             Trip.trip==request.params['deletetripname'])).delete()
         del session['current_trip']
         session.save()
         
     meta.Session.flush()
     meta.Session.commit();
     redirect(h.url_for(controller='mapview',action="index"))