Browse Source

Se añade canción directamente desde album usando valores del album

politica
Celestino Rey 1 year ago
parent
commit
fb8f8067b7
4 changed files with 67 additions and 1 deletions
  1. +1
    -0
      .gitignore
  2. +22
    -0
      LyricsPy/servicios/lyrics/paginas.py
  3. +43
    -0
      LyricsPy/servicios/lyrics/templates/add_song2album.html
  4. +1
    -1
      LyricsPy/servicios/lyrics/templates/album.html

+ 1
- 0
.gitignore View File

@ -16,3 +16,4 @@ Thumbs.db
*.sqlite
uploads/*
*.db

+ 22
- 0
LyricsPy/servicios/lyrics/paginas.py View File

@ -63,6 +63,28 @@ def add_song():
albums = Album.query.all()
return render_template('add_song.html', albums=albums)
@bp.route('/add_song2album/<int:album_id>', methods=['GET', 'POST'])
@login_required
def add_song2album(album_id):
if request.method == 'POST':
title = request.form['title']
# author = request.form['author']
# album_id = request.form['album_id']
lyrics = request.form['lyrics']
pista = request.form['pista']
album = Album.query.filter_by(id=album_id).first() # obtiene el album cuyo id hemos recibido
author = album.artist
new_song = Song(title=title, author=author, album_id=album_id, lyrics=lyrics, pista=pista)
db.session.add(new_song)
db.session.commit()
return redirect(url_for('paginas.album', album_id=album_id))
albums = Album.query.all()
return render_template('add_song2album.html', album_id=album_id)
@bp.route('/add_album', methods=['GET', 'POST'])
@login_required
def add_album():


+ 43
- 0
LyricsPy/servicios/lyrics/templates/add_song2album.html View File

@ -0,0 +1,43 @@
{% extends 'base.html' %}
{% block content %}
<div class="column is-4 is-offset-4">
<h3>Añadir nueva canción</h3>
<div class="box">
<form method="POST" action=" {{ url_for('paginas.add_song2album', album_id=album_id) }}">
<div class="text mb-3">
<label for="pista">Nº de pista:</label>
<input class="form-control" type="number" id="pista" name="pista" required>
</div>
<div class="text mb-3">
<label for="title">Título:</label>
<input class="form-control" type="text" id="title" name="title" required>
</div>
<div class="text mb-3">
<label for="lyrics">Letra:</label>
<textarea class="form-control" id="lyrics" name="lyrics" required></textarea>
</div>
<div class="text mb-3">
<button type="submit" class="btn app-btn-primary w-100 theme-btn mx-auto">Añadir canción</button>
</div>
</form>
</div>
<script>
function updateAuthor() {
var albumSelect = document.getElementById("album_id");
var selectedAlbum = albumSelect.options[albumSelect.selectedIndex];
var artist = selectedAlbum.getAttribute("data-artist");
document.getElementById("author").value = artist;
}
// Initialize the author field with the artist of the first album
document.addEventListener('DOMContentLoaded', function() {
updateAuthor();
});
</script>
</div>
{% endblock %}

+ 1
- 1
LyricsPy/servicios/lyrics/templates/album.html View File

@ -55,7 +55,7 @@
<a class="btn app-btn-secondary" href="{{ url_for('paginas.index') }}">Volver al inicio</a>
</div>
<div class="col-auto">
<a class="btn app-btn-primary" href="{{ url_for('paginas.add_song') }}">Añadir canción</a>
<a class="btn app-btn-primary" href="{{ url_for('paginas.add_song2album', album_id=album.id) }}">Añadir canción</a>
</div>
</div>
</div>


Loading…
Cancel
Save