Exemplo n.º 1
0
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)
Exemplo n.º 2
0
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")
Exemplo n.º 3
0
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")
Exemplo n.º 4
0
def addtrack(request,userid):
    if request.method == 'POST':
        form = TrackForm(request.POST)
        if form.is_valid():
            track = form.save()
            track.user = request.user
            track.save()
            return render(request, 'postlogin/mainmenu.html')
    else:
        form = TrackForm()
    data = {'form': form}

    return render(request, 'postlogin/addtrack.html', data)
Exemplo n.º 5
0
def add_track(request):
    """ Add a track to the pianostore. """
    track_form = TrackForm()

    if request.method == "POST":
        track_form = TrackForm(request.user, request.POST, request.FILES)
        if track_form.is_valid():
            new_track = track_form.save(commit=False)
            new_track.adder = request.user
            new_track.save()
            request.user.message_set.create(
                message=_("You have successfully " "uploaded track '%(title)s'") % {"title": new_track.title}
            )
            return HttpResponseRedirect(reverse("pianostore.views.tracks"))
    return render_to_response(
        "pianostore/add.html", {"track_form": track_form}, context_instance=RequestContext(request)
    )
Exemplo n.º 6
0
def save_audio_post(request):
    """
    Saves a Track
    """
    form = TrackForm(request.POST, request.FILES)
    if form.is_valid():
        the_track_file = request.FILES["file"]
        meta = metadata_for_filelike(the_track_file)
        newdoc = Track(docfile = request.FILES["file"]) 

        try:
            newdoc.title = meta['title']
        except: 
            newdoc.title = request.FILES['file'].name

        try:
            newdoc.album = meta['album']
        except: 
            newdoc.album = 'unspecified'

        try:
            newdoc.author = meta['author']
        except:         
            newdoc.author = 'unspecified'

        try:
            newdoc.duration = meta['duration']
        except:         
            newdoc.duration = 'unspecified'

        try:
            newdoc.music_genre = meta['music_genre']
        except:         
            newdoc.music_genre = 'unspecified'

        newdoc.meta_data = meta
		
        if meta['mime_type'] == 'audio/mpeg':
            newdoc.body = "Audio track: "+newdoc.title+" was uploaded." 
            if request.POST["body"] != "": 
                newdoc.body = newdoc.body+ request.POST["body"]
            newdoc.save() 
 
    else:
        print form.errors
Exemplo n.º 7
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}
Exemplo n.º 8
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
    }
Exemplo n.º 9
0
def index():
    form = TrackForm()
    if form.validate_on_submit():
        tracking = Track (
                weight = form.weight.data,
                happy = form.happy.data,
                diet = form.diet.data,
                exercise = form.exercise.data,
                floss = form.floss.data,
                meditation = form.meditation.data,
                note = form.note.data,
                timestamp = datetime.utcnow(),
                author = g.user.to_dbref())
        tracking.save()
        flash('Your post is now live!')
        calculate_weightAvg_async(g.user.to_dbref())
        return redirect(url_for('index'))
    posts = Track.objects(author=g.user)
    analysis = Analysis.objects(author=g.user).first()
    return render_template("index.html", 
        title = 'Home',
        form = form,
        posts = posts,
        analysis = analysis)
Exemplo n.º 10
0
def update_track(request, track_id):
    """ Update a track given its id. """
    track = Track.objects.get(id=track_id)
    if request.method == "POST":
        track_form = TrackForm(request.user, request.POST, request.FILES, instance=track)
        track_form.is_update = True
        if request.user == track.adder:
            if track_form.is_valid():
                track_form.save()
                request.user.message_set.create(
                    message=_("You have updated " "track '%(title)s'") % {"title": track.title}
                )
                return HttpResponseRedirect(reverse("pianostore.views.tracks"))
    else:
        track_form = TrackForm(instance=track)
        return render_to_response(
            "pianostore/update.html",
            {"track_form": track_form, "track": track},
            context_instance=RequestContext(request),
        )
Exemplo n.º 11
0
def lemon_land():
    form = TrackForm()
    return render_template('test-land.html', form=form)
Exemplo n.º 12
0
def track_edit(request, track_id=None):
    errors = []
    messages = []
    if track_id is not None:
        track = get_object_or_404(Track, id=track_id)
        title = u'Редактирование маршрута'
    else:
        track=None
        title = u'Новый маршрут'
    trans_forms = []
    
    if request.method == "POST":
        form = TrackForm(request.POST, request.FILES, instance=track)
        for lang_code, lang_name in settings.LANGUAGES:
            if lang_code != settings.LANGUAGE_CODE:
                if track is not None:
                    trans, c = Translation.objects.get_or_create(track=track, language=lang_code)
                else:
                    trans = None
                trans_forms.append(TransFormTrack(request.POST, instance=trans, prefix=lang_code))
        if form.is_valid() and all([i.is_valid() for i in trans_forms]):
            _track = form.save()
            for i in trans_forms:
                t = i.save()
                if not t.language:
                    t.language = i.prefix
                if t.track is None:
                    t.track = _track
                t.save()

            xml_file = request.FILES.get('xml_coordinates', None)
            created = False
            if track is None:
                track = form.instance
                created = True
            if xml_file:
                try:
                    t = XMLTrack(xml_file.read())                
                    rout = t.get_track()['rout']
                    track.coordinates = json.dumps(rout)
                    track.full_coordinates = json.dumps(rout)
                    track.save()
                except:
                    errors.append(u"Ошибка разбора XML.")
            if not errors:
                messages.append(u"Изменения успешно сохранены.")
            if request.POST.get('submit', 'to_current_page') == 'to_section' and not errors:
                return HttpResponseRedirect(reverse('manager_tracks'))
            if created and not errors:
                return HttpResponseRedirect(reverse('track-edit', 
                                                    args=[form.instance.id]))

    else:
        form = TrackForm(instance=track)
        for lang_code, lang_name in settings.LANGUAGES:
            if lang_code != settings.LANGUAGE_CODE:
                if track is not None:
                    trans, c = Translation.objects.get_or_create(track=track, language=lang_code)
                else:
                    trans = None
                trans_forms.append(TransFormTrack(instance=trans, prefix=lang_code))
    
    return render_to_response('obj_edit.html',
                              {'form': form,
                               'comments_instance': track,
                               'title': title,
                               'trans_forms': trans_forms,
                               'back_url': reverse('manager_tracks'),
                               'info': {'errors': errors,
                                        'messages': messages}
                               },
                              RequestContext(request))
Exemplo n.º 13
0
 def test_form_with_valid_spotify_uri_is_valid(self):
     post_dict = {'spotify_uri': 'spotify:track:5RT0e9PkjBtmvqQzNbe1vA'}
     form = TrackForm(post_dict)
     self.assertTrue(form.is_valid())
Exemplo n.º 14
0
 def test_form_with_random_text_is_invalid(self):
     post_dict = {'spotify_uri': 'hello'}
     form = TrackForm(post_dict)
     self.assertFalse(form.is_valid())
Exemplo n.º 15
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
    }