예제 #1
0
def profile(request):
    client = mpd.MPDClient()
    client.timeout = 10
    client.idletimeout = None
    client.connect(Grooplayer.settings.MPD_SERVER,
                   Grooplayer.settings.MPD_PORT)

    if request.method == 'POST':
        form = TrackForm(request.POST, request.FILES, user=request.user)
        if form.is_valid():
            instance = form.save(commit=True)
            client.update()
            return HttpResponseRedirect('/profile/')
    else:
        form = TrackForm(user=request.user)

    status = client.status()
    journal = Action.objects.all().order_by("-date")
    tracks = Track.objects.filter(user=request.user)
    return {
        "status": status,
        "journal": journal,
        "tracks": tracks,
        "form": form
    }
예제 #2
0
파일: main.py 프로젝트: rachel-kt/FlaskApp
def track():
    form_tr = TrackForm()
    engine_dropdown = carbon_em.loc[(
        carbon_em['category_of_vehicle'] == 'bus'), 'engine__cc']
    form_tr.engine.choices = [(i.lower().replace(' ',
                                                 '_'), i.replace('_', ' '))
                              for i in engine_dropdown]
    fuel_dropdown = carbon_em.loc[((carbon_em['category_of_vehicle'] == 'bus')
                                   & (carbon_em['engine__cc'] == 'none')),
                                  'fuel']
    form_tr.fuel.choices = [(i.lower().replace(' ', '_'), i.replace('_', ' '))
                            for i in fuel_dropdown]
    if form_tr.is_submitted():
        origin = request.form['origin'].replace(' ', '+')
        destination = request.form['dest'].replace(' ', '+')
        select_vehicle = request.form['vehicle']
        select_engine = request.form['engine']
        select_fuel = request.form['fuel']
        val = carbon_em.loc[(
            (carbon_em['category_of_vehicle'] == select_vehicle)
            & (carbon_em['engine__cc'] == select_engine)
            & (carbon_em['fuel'] == select_fuel)),
                            'emission_factor(kgco2perkm)']
        print(select_vehicle, select_engine, select_fuel, val)
        carbon_out = calc_carb(origin, destination, float(val))
        return render_template('carbon_out.html', result=carbon_out)
    return render_template('track.html', form=form_tr)
예제 #3
0
파일: views.py 프로젝트: matzech/RaceApp
def edit_track(id):
    """
    Edit a department
    """
    check_admin()

    add_track = False

    track = Track.query.get_or_404(id)
    form = TrackForm(obj=track)
    if form.validate_on_submit():
        track.track_id = form.track_id.data
        track.name = form.name.data
        track.description = form.description.data
        db.session.commit()
        flash('You have successfully edited the track.')

        # redirect to the departments page
        return redirect(url_for('admin.list_tracks'))

    form.description.data = track.description
    form.name.data = track.name
    return render_template('admin/tracks/track.html',
                           action="Edit",
                           add_track=add_track,
                           form=form,
                           track=track,
                           title="Edit track")
예제 #4
0
파일: views.py 프로젝트: matzech/RaceApp
def add_track():
    """
    Add a department to the database
    """
    check_admin()

    add_track = True

    form = TrackForm()
    if form.validate_on_submit():
        track = Track(name=form.name.data)
        try:
            # add track to the database
            db.session.add(track)
            db.session.commit()
            flash('You have successfully added a new track.')
        except:
            # in case department name already exists
            db.session.rollback()
            flash('Error: track name already exists.')

        # redirect to departments page
        return redirect(url_for('admin.list_tracks'))

    # load department template
    return render_template('admin/tracks/track.html',
                           action="Add",
                           add_track=add_track,
                           form=form,
                           title="Add track")
예제 #5
0
파일: main.py 프로젝트: rachel-kt/FlaskApp
def lemon_land():
    form = TrackForm()
    return render_template('test-land.html', form=form)
예제 #6
0
def mainpage(request, id=None, action=None):
    """

    :param request:
    :param id:
    :param action:
    :return:
    """
    client = mpd.MPDClient()
    client.timeout = 10
    client.idletimeout = None
    client.connect(Grooplayer.settings.MPD_SERVER,
                   Grooplayer.settings.MPD_PORT)

    if request.user.is_authenticated():
        profile = user_profile(request.user)
        carma = profile.carma

    if action:
        if request.user.is_authenticated():
            if action == "play" and carma > 0:
                client.play()
                profile.take(2)
                log(request.user, "used the play button")
            elif action == "stop" and carma > 0:
                client.stop()
                profile.take(2)
                log(request.user, "used the stop button")
            elif action == "pause" and carma > 0:
                client.pause()
                profile.take(2)
                log(request.user, "used the pause button")
            return HttpResponseRedirect("/")
        else:
            return HttpResponseRedirect("/login/")

    if id:
        if request.user.is_authenticated():
            if carma > 0:
                client.playid(id)
                profile.take(2)
                log(request.user, "changed song to #%s" % id)
                return HttpResponseRedirect("/")
        else:
            return HttpResponseRedirect("/login/")

    playlist = client.playlistinfo()

    current_song = client.currentsong()
    status = client.status()
    #status['volume'] = str((int(status['volume'])-80)*5)
    next_song = [{}]
    try:
        next_song = client.playlistinfo(status['nextsong'])
    except:
        pass
    client.close()
    client.disconnect()

    if request.user.is_authenticated():
        carma = profile.carma
    else:
        carma = "0"

    login_form = AuthenticationForm(request=request)
    registration_form = RegistrationForm()
    upload_form = TrackForm(user=request.user)
    csrf_token = get_token(request)

    return {
        "playlist": playlist,
        "current_song": current_song,
        "next_song": next_song[0],
        "status": status,
        "carma": carma,
        "login_form": login_form,
        "registration_form": registration_form,
        "upload_form": upload_form,
        'csrf_token': csrf_token
    }