Пример #1
0
def album_create(request):
    if request.method == 'POST':
        form = AlbumForm(request.POST)
        print 'submit album'
        if form.is_valid():  # coming from save button click
            q = Album()
            for each in form:
                if type(
                        each.field
                ) is forms.ModelChoiceField:  # get the value from 'select' (artist)
                    # value_needed = form.cleaned_data[each.name].pk ---> this is the option number
                    value_needed = form.cleaned_data[each.name]
                    a = Artist.objects.get(
                        name=value_needed)  # a is Artist instance
                    setattr(q, each.name, a)
                else:  # get the value from title or date
                    value_needed = form.cleaned_data[each.name]
                    setattr(q, each.name, value_needed)
            q.save()
            return redirect('index')  # you won't see 'form' in url
    else:  # if a GET (or any other method, or when getting to this page at first - we'll create a blank form
        form = AlbumForm()
        print 'Initial album_create page '
    return render(
        request,
        'mymusic/album_create.html',
        {
            'form':
            form  # render create album with empty form or with the form we already started to fill
        })
Пример #2
0
def create_album(request, artist_id, album_id=None):
    if request.method != "POST":
        return HttpResponse(
            json.dumps({'error': 'Invalid http method for this uri'}))
    SongFormset = inlineformset_factory(Album, Song)
    if album_id is not None:
        album = Album.objects.get(pk=album_id)
        albumForm = AlbumForm(request.POST, request.FILES, instance=album)
        songsForm = SongFormset(request.POST,
                                request.FILES,
                                instance=album,
                                prefix="form")
    else:
        albumForm = AlbumForm(request.POST, request.FILES)
        songsForm = SongFormset(request.POST, request.FILES, prefix="form")

    if songsForm.is_valid() and albumForm.is_valid():
        albumForm.save()
        songsForm.save()
        return HttpResponse(json.dumps({'success': 'true'}))
    else:
        errors = {}
        errors['song_errors'] = [dict(err.items()) for err in songsForm.errors]
        errors['album_errors'] = dict(albumForm.errors.items())
        resp = HttpResponse(json.dumps({'errors': errors}),
                            mimetype="application/json")
        resp.status_code = 400
        return resp
Пример #3
0
def edit(album_id):
    form = AlbumForm(request.form)
    if request.method == 'POST' and form.validate():
        title = form.title.data
        body = form.body.data

        # create cursor
        cur = mysql.connection.cursor()

        update = """UPDATE albums
        SET title = '{0}', body = '{1}'
        WHERE id = '{2}'
        """.format(title, body, album_id)
        cur.execute(update)

        # commit to db
        mysql.connection.commit()

        # close cursor connection
        cur.close()

        flash('album successfully updated', 'success')

        return redirect(url_for('album', album_id=album_id))
    return render_template('edit.html', form=form, album=find_by_id(album_id))
Пример #4
0
def delete(id):
    qry = db_session.query(Album).filter(Album.id==id)
    album = qry.first()
    if album:
        form = AlbumForm(formdata=request.form, obj=album)
        if request.method == 'DELETE' and form.validate():
            db_session.delete(album)
            db_session.commit()
Пример #5
0
def album_create(request):
    if request.method == 'POST':
        form = AlbumForm(request.POST)
        if form.is_valid():
            album = form.save(commit=False)
            if 'album_form_avatar' in request.FILES:
                avatar_img_name = handle_uploaded_file(
                    request.FILES['album_form_avatar'])
                album.avatar_img_name = avatar_img_name

            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm()

    return render(request, 'gallery/administration/album_create.html',
                  {'form': form})
Пример #6
0
def new_album():
    form = AlbumForm(request.form)
    if request.method == 'POST' and form.validate():
        # save the album
        al = Album()

        album_save_changes(al, form, new=True)
        flash('Album created successfully!')
        return redirect('/albuminfo')
    return render_template('new_album.html', form=form)
Пример #7
0
def new_album():
    """
    Add a new album
    """
    form = AlbumForm(request.form)
    if request.method == 'POST' and form.validate():
        # save the album
        album = Album()
        save_changes(album, form, new=True)
        flash('Data inserted successfully!')
        return redirect('/')
    return render_template('new_album.html', form=form)
Пример #8
0
def edit(id):
    qry = Album.query.filter(Album.id == id)
    al = qry.first()
    if Album:
        form = AlbumForm(formdata=request.form, obj=al)
        if request.method == 'POST' and form.validate():
            # save edits
            album_save_changes(al, form)
            flash('Album updated successfully!')
            return redirect('/Albuminfo')
        return render_template('edit_Album.html', form=form)
    else:
        return 'Error loading #{id}'.format(id=id)
Пример #9
0
def edit(id):
    qry = db_session.query(Album).filter(Album.id==id)
    album = qry.first()
    
    if album:
        form = AlbumForm(formdata=request.form, obj=album)
        if request.method == 'POST' and form.validate():
            # save edits
            save_changes(album, form)
            return redirect('/')
        return render_template('edit_album.html', form=form)
    else:
        return 'Error loading #{id}'.format(id=id)
Пример #10
0
def new_album():
    """
    Add a new album
    """
    form = AlbumForm(request.form)


    if request.method == 'POST':
        # save the album
        album = Album()
        save_changes(album, form, new=True)
        return redirect('/')

    return render_template('new_album.html', form=form)
Пример #11
0
def new_album():
    """
    Add a new album
    """
    form = AlbumForm(request.form)

    if request.method == 'POST':
        # save the album
        album = Album()
        save_changes(album, form, new=True)
        flash('Invoice created successfully!')
        return redirect('/invoice/invoice') 

    return render_template('new_album.html', form=form)
Пример #12
0
def delet(id):
    qry = Album.query.filter(Album.id == id)
    al = qry.first()
    if al:
        form = AlbumForm(formdata=request.form, obj=al)
        if request.method == 'POST' and form.validate():
            # delete the item from the database
            db.session.delete(al)
            db.session.commit()
            flash('Album deleted successfully!')
            return redirect('/albuminfo')
        return render_template('delete_album.html', form=form)
    else:
        return 'Error deleting #{id}'.format(id=id)
Пример #13
0
def album_edit(request, id):
    album = get_object_or_404(Album, id=id)
    if request.method == 'POST':
        form = AlbumForm(request.POST, instance=album)
        if form.is_valid():
            album = form.save(commit=False)
            if 'album_form_avatar' in request.FILES:
                if album.avatar_img_name:
                    handle_uploaded_file(request.FILES['album_form_avatar'],
                                         album.avatar_img_name)
                else:
                    avatar_img_name = handle_uploaded_file(
                        request.FILES['album_form_avatar'])
                    album.avatar_img_name = avatar_img_name

            if not request.user.has_perm('gallery.public_album'):
                album.public = False
            album.save()
            return redirect('gallery:administration:albums_list')
    else:
        form = AlbumForm(instance=album)

    return render(request, 'gallery/administration/album_edit.html',
                  {'form': form})
Пример #14
0
def edit(id):
    qry = db.session.query(Album).filter(
                Album.id==id)
    album = qry.first()

    if album:
        form = AlbumForm(formdata=request.form, obj=album)
        if request.method == 'POST':
            # save edits
            save_changes(album, form)
            flash('Invoice updated successfully!')
            return redirect('/invoice/invoice')
        return render_template('edit_album.html', form=form)
    else:
        return 'Error loading #{id}'.format(id=id)
Пример #15
0
def post_album(username):
    user = User.query.filter_by(username=username).first()
    form = AlbumForm()
    if request.method == 'POST' and form.validate():
        new_album = Album(title=form.title.data,
                          image=form.image.data,
                          user_id=current_user.id)
        db.session.add(new_album)
        db.session.commit()
        flash('Album successfully created')
        album = Album.query.filter_by(title=new_album.title).first()
        return redirect(
            url_for('photos',
                    username=current_user.username,
                    album_id=album.id))
    return render_template('new_album.html', user=user, form=form)
Пример #16
0
def new_album():
    """
    Add a new album
    """
    form = AlbumForm(request.form)

    if request.method == 'POST' and form.validate():
        # save the album
        album = Album()
        save_changes(album, form, new=True)
        flash(
            f'You have successfully created the album {album.title} by {album.artist}!'
        )
        return redirect('/')

    return render_template('new_album.html', form=form)
Пример #17
0
def edit(id):
    """
    Add / edit an item in the database
    """
    qry = db_session.query(Album).filter(Album.id == id)
    album = qry.first()

    if album:
        form = AlbumForm(formdata=request.form, obj=album)
        if request.method == 'POST' and form.validate():
            # save edits
            save_changes(album, form)
            flash('Album updated successfully!')
            return redirect('/')
        return render_template('edit_album.html', form=form)
    else:
        return 'Error loading #{id}'.format(id=id)
Пример #18
0
def delete(id):
    """
    Delete the item in the database that matches the specified
    id in the URL
    """
    qry = db_session.query(Album).filter(Album.id == id)
    album = qry.first()
    if album:
        form = AlbumForm(formdata=request.form, obj=album)
        if request.method == 'POST' and form.validate():
            # delete the item from the database
            db_session.delete(album)
            db_session.commit()
            flash('Album deleted successfully!')
            return redirect('/')
        return render_template('delete_album.html', form=form)
    else:
        return 'Error deleting #{id}'.format(id=id)
Пример #19
0
def createalbum():
    user = User.query.get(current_user.id)
    form = AlbumForm()
    if form.validate_on_submit():
        album = Album(name=form.name.data,
                      picturelink=form.picturelink.data,
                      user_id=user.id,
                      songs=[])

        user.albums.append(album)
        db.session.add(album)
        db.session.commit()

        return redirect('albums')

    return render_template('/home/createalbum.html',
                           action="Add",
                           form=form,
                           title="Add album")
Пример #20
0
def new():
    form = AlbumForm(request.form)
    if request.method == 'POST' and form.validate():
        title = form.title.data
        body = form.body.data

        # create cursor
        cur = mysql.connection.cursor()

        insert = """INSERT INTO albums(title, author, body)
        VALUES('{0}', '{1}', '{2}')
        """.format(title, session['username'], body)
        cur.execute(insert)

        # commit to db
        mysql.connection.commit()

        # close cursor connection
        cur.close()

        flash('album successfully updated', 'success')

        return redirect(url_for('albums'))
    return render_template('new.html', form=form)
Пример #21
0
def new():
    """
    Create a new album.
    ---
    tags:
        - Albums
    security:
        - OAuth2:
            - write
    responses:
        200:
            description: Returns id and slug.
    """
    current_user = current_token.user
    if not current_user:
        return jsonify({"error": "Unauthorized"}), 403

    # Check artwork file size
    if "artwork" in request.files:
        artwork_uploaded = request.files["artwork"]
        artwork_uploaded.seek(0, os.SEEK_END)
        artwork_size = artwork_uploaded.tell()
        artwork_uploaded.seek(0)
        if artwork_size > Reel2bitsDefaults.artwork_size_limit:
            return jsonify({"error": "artwork too big, 2MB maximum"
                            }), 413  # Request Entity Too Large
    else:
        artwork_uploaded = None

    form = AlbumForm()

    if form.validate_on_submit():
        rec = Album()
        rec.user_id = current_user.id
        rec.title = form.title.data
        rec.private = form.private.data
        rec.description = form.description.data
        rec.genre = form.genre.data

        # Save the artwork
        if artwork_uploaded:
            artwork_filename = get_hashed_filename(artwork_uploaded.filename)
            artworkalbums.save(artwork_uploaded,
                               folder=current_user.slug,
                               name=artwork_filename)
            rec.artwork_filename = artwork_filename

        # Handle tags
        tags = form.tags.data.split(",")
        # Clean
        tags = [t.strip() for t in tags if t]
        # For each tag get it or create it
        for tag in tags:
            dbt = SoundTag.query.filter(SoundTag.name == tag).first()
            if not dbt:
                dbt = SoundTag(name=tag)
                db.session.add(dbt)
            rec.tags.append(dbt)

        db.session.add(rec)
        db.session.commit()

        # log
        add_user_log(rec.id, rec.user_id, "albums", "info",
                     "Created {0} -- {1}".format(rec.id, rec.title))

        return jsonify({"id": rec.flake_id, "slug": rec.slug})

    return jsonify({"error": json.dumps(form.errors)}), 400