diff --git a/LibrosPy/servicios/instance/uploads/Sunset_Park_-_Paul_Auster_12.epub b/LibrosPy/servicios/instance/uploads/Sunset_Park_-_Paul_Auster_12.epub new file mode 100644 index 0000000..dcb4e04 Binary files /dev/null and b/LibrosPy/servicios/instance/uploads/Sunset_Park_-_Paul_Auster_12.epub differ diff --git a/LibrosPy/servicios/instance/uploads/sunsetpark.jpeg b/LibrosPy/servicios/instance/uploads/sunsetpark.jpeg new file mode 100644 index 0000000..0f249cd Binary files /dev/null and b/LibrosPy/servicios/instance/uploads/sunsetpark.jpeg differ diff --git a/LibrosPy/servicios/libros/models.py b/LibrosPy/servicios/libros/models.py index 0d21eb9..37834f8 100644 --- a/LibrosPy/servicios/libros/models.py +++ b/LibrosPy/servicios/libros/models.py @@ -22,9 +22,10 @@ class Autores(db.Model): class Libros(db.Model): id = db.Column(db.Integer, primary_key=True) - fecha = db.Column(db.Date, nullable=False) + anno = db.Column(db.String(4), nullable=False) titulo = db.Column(db.String(100), nullable=False) portada = db.Column(db.String(100), nullable=True) + epub = db.Column(db.String(100), nullable=True) autor_id = db.Column(db.Integer, db.ForeignKey('autores.id'), nullable=False) diff --git a/LibrosPy/servicios/libros/paginas.py b/LibrosPy/servicios/libros/paginas.py index 11638b4..ab08ff1 100644 --- a/LibrosPy/servicios/libros/paginas.py +++ b/LibrosPy/servicios/libros/paginas.py @@ -54,12 +54,9 @@ def libro(libro_id): @login_required def add_libro(): if request.method == 'POST': - fecha = datetime.date.fromisoformat(request.form['fecha']) + anno = request.form['anno'] autor_id = request.form['autor_id'] titulo = request.form['titulo'] - - if 'portada' not in request.files: - return "Falta el fichero de imagen", 400 portada = request.files['portada'] @@ -73,8 +70,21 @@ def add_libro(): portada.save(os.path.join(current_app.config['UPLOAD_FOLDER'], image_filename)) else: image_filename = None + + epub = request.files['epub'] + + # Verificar que se ha seleccionado un archivo + + if epub.filename == '': + return "No selected file", 400 + + if epub: + epub_filename = secure_filename(epub.filename) + epub.save(os.path.join(current_app.config['UPLOAD_FOLDER'], epub_filename)) + else: + epub_filename = None - new_libro = Libros(fecha=fecha, autor_id=autor_id, titulo=titulo, portada=image_filename) + new_libro = Libros(anno=anno, autor_id=autor_id, titulo=titulo, portada=image_filename, epub=epub_filename) db.session.add(new_libro) db.session.commit() @@ -82,8 +92,11 @@ def add_libro(): autores = Autores.query.all() + if autores: + return render_template('add_libro.html', autores=autores) + else: + return render_template('nohayautores.html') - return render_template('add_libro.html', autores=autores) @bp.route('/edit_libro/', methods=['GET', 'POST']) @login_required @@ -91,9 +104,8 @@ def edit_libro(libro_id): libro = Libros.query.get_or_404(libro_id) autores = Autores.query.all() if request.method == 'POST': - libro.fecha = request.form['fecha'] + libro.anno = request.form['anno'] libro.autor_id = request.form['autor_id'] - libro.titulo = request.form['titulo'] if 'portada' in request.files: @@ -103,7 +115,15 @@ def edit_libro(libro_id): portada.save(os.path.join(current_app.config['UPLOAD_FOLDER'], image_filename)) libro.portada = image_filename - + + if 'epub' in request.files: + epub = request.files['epub'] + if epub.filename != '': + epub_filename = secure_filename(epub.filename) + + epub.save(os.path.join(current_app.config['UPLOAD_FOLDER'], epub_filename)) + libro.portada = epub_filename + db.session.commit() return redirect(url_for('paginas.libro', libro_id=libro.id)) diff --git a/LibrosPy/servicios/libros/templates/add_libro.html b/LibrosPy/servicios/libros/templates/add_libro.html index eab265e..eb1d9ad 100644 --- a/LibrosPy/servicios/libros/templates/add_libro.html +++ b/LibrosPy/servicios/libros/templates/add_libro.html @@ -4,10 +4,10 @@

Añadir nuevo libro

-
+
- - + +
@@ -20,10 +20,20 @@
- +
+
+ + +
+ +
+ + +
+
diff --git a/LibrosPy/servicios/libros/templates/autor.html b/LibrosPy/servicios/libros/templates/autor.html index 21a2f40..d1b1262 100644 --- a/LibrosPy/servicios/libros/templates/autor.html +++ b/LibrosPy/servicios/libros/templates/autor.html @@ -30,7 +30,7 @@ # - Fecha + anno Título Portada @@ -39,7 +39,7 @@ {% for libro in libros %} {{ libro.id }} - {{ libro.fecha }} + {{ libro.anno }} {{ libro.titulo }} {% if libro.portada %} {{ autor.apellido }}, {{ autor.nombre}} diff --git a/LibrosPy/servicios/libros/templates/edit_libro.html b/LibrosPy/servicios/libros/templates/edit_libro.html index d9d2fb3..57aa191 100644 --- a/LibrosPy/servicios/libros/templates/edit_libro.html +++ b/LibrosPy/servicios/libros/templates/edit_libro.html @@ -6,15 +6,15 @@
- - + +
@@ -31,6 +31,14 @@ {{ libro.titulo }}
{% endif %}
+ +
+ + + {% if libro.portada %} + {{ libro.titulo }}
+ {% endif %} +
diff --git a/LibrosPy/servicios/libros/templates/index.html b/LibrosPy/servicios/libros/templates/index.html index b9ca900..6544a2e 100644 --- a/LibrosPy/servicios/libros/templates/index.html +++ b/LibrosPy/servicios/libros/templates/index.html @@ -8,13 +8,7 @@ @@ -28,7 +22,7 @@ # - Fecha + anno Título Autor Portada @@ -37,7 +31,7 @@ {% for libro in libros %} {{ libro.id }} - {{ libro.fecha }} + {{ libro.anno }} {{ libro.titulo }} {{ libro.autores.apellido }}, {{ libro.autores.nombre }} {% if libro.portada %} @@ -53,53 +47,7 @@
- - {% for autor in autores %} - -
-
-
-
- - - - - - - - - - - - - {% for libro in libros %} - - {% if libro.autor_id == autor.id %} - - - - - - - {% if libro.portada %} - - {% else %} -

Sin imagen

- {% endif %} - - {% endif %} - {% endfor %} - - - -
#FechaTítuloAutorPortada
{{ libro.id }}{{ libro.fecha }}{{ libro.titulo }}{{ libro.autores.apellido }}, {{ libro.autores.nombre }}{{ autor.apellido }}, {{ autor.nombre}}
-
-
-
-
- {% endfor %} - - +
diff --git a/LibrosPy/servicios/libros/templates/libros.html b/LibrosPy/servicios/libros/templates/libros.html index af682f2..5f4ff66 100644 --- a/LibrosPy/servicios/libros/templates/libros.html +++ b/LibrosPy/servicios/libros/templates/libros.html @@ -24,7 +24,7 @@ # - Fecha + anno Título Autor Portada @@ -34,7 +34,7 @@ {% for libro in libros %} {{ libro.id }} - {{ libro.fecha }} + {{ libro.anno }} {{ libro.titulo }} {{ libro.autores.apellido }}, {{ libro.autores.nombre }} {% if libro.portada %} diff --git a/LibrosPy/servicios/libros/templates/nohayautores.html b/LibrosPy/servicios/libros/templates/nohayautores.html new file mode 100644 index 0000000..f2bc3b9 --- /dev/null +++ b/LibrosPy/servicios/libros/templates/nohayautores.html @@ -0,0 +1,14 @@ +{% extends 'base.html' %} + +{% block content %} + +
+

Error
No hay autores

+
+ Lo siento, no hay autores por lo que no se puede crear un libro. +
+ Ir a la página de inicio +
+ +{% endblock %} + diff --git a/LibrosPy/servicios/libros/templates/song.html b/LibrosPy/servicios/libros/templates/song.html deleted file mode 100644 index dc30fc1..0000000 --- a/LibrosPy/servicios/libros/templates/song.html +++ /dev/null @@ -1,37 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -
-
-
-
-
- {% if album.cover_image %} -

{{ album.name }}

- {% else %} -

No hay imágen disponible

- {% endif %} -
-
-

{{ song.title }}

- - - -
-
-

Editar

-
- -
-
-
-
{{ song.lyrics }}
-
-
-{% endblock %} diff --git a/LibrosPy/servicios/migrations/versions/e576e4755d2b_añado_campo_para_albergar_el_epub.py b/LibrosPy/servicios/migrations/versions/e576e4755d2b_añado_campo_para_albergar_el_epub.py new file mode 100644 index 0000000..3aca1b2 --- /dev/null +++ b/LibrosPy/servicios/migrations/versions/e576e4755d2b_añado_campo_para_albergar_el_epub.py @@ -0,0 +1,32 @@ +"""Añado campo para albergar el epub + +Revision ID: e576e4755d2b +Revises: eb0fff06a76e +Create Date: 2024-07-31 16:56:33.920059 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'e576e4755d2b' +down_revision = 'eb0fff06a76e' +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('libros', schema=None) as batch_op: + batch_op.add_column(sa.Column('epub', sa.String(length=100), nullable=True)) + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('libros', schema=None) as batch_op: + batch_op.drop_column('epub') + + # ### end Alembic commands ### diff --git a/LibrosPy/servicios/migrations/versions/eb0fff06a76e_cambio_fecha_por_año.py b/LibrosPy/servicios/migrations/versions/eb0fff06a76e_cambio_fecha_por_año.py new file mode 100644 index 0000000..f54daff --- /dev/null +++ b/LibrosPy/servicios/migrations/versions/eb0fff06a76e_cambio_fecha_por_año.py @@ -0,0 +1,34 @@ +"""Cambio fecha por año + +Revision ID: eb0fff06a76e +Revises: +Create Date: 2024-07-31 16:48:14.509488 + +""" +from alembic import op +import sqlalchemy as sa + + +# revision identifiers, used by Alembic. +revision = 'eb0fff06a76e' +down_revision = None +branch_labels = None +depends_on = None + + +def upgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('libros', schema=None) as batch_op: + batch_op.add_column(sa.Column('anno', sa.String(length=4), nullable=False)) + batch_op.drop_column('fecha') + + # ### end Alembic commands ### + + +def downgrade(): + # ### commands auto generated by Alembic - please adjust! ### + with op.batch_alter_table('libros', schema=None) as batch_op: + batch_op.add_column(sa.Column('fecha', sa.DATE(), nullable=False)) + batch_op.drop_column('anno') + + # ### end Alembic commands ### diff --git a/RepostajesPy/servicios/repostajes/templates/song.html b/RepostajesPy/servicios/repostajes/templates/song.html deleted file mode 100644 index dc30fc1..0000000 --- a/RepostajesPy/servicios/repostajes/templates/song.html +++ /dev/null @@ -1,37 +0,0 @@ -{% extends 'base.html' %} - -{% block content %} -
-
-
-
-
- {% if album.cover_image %} -

{{ album.name }}

- {% else %} -

No hay imágen disponible

- {% endif %} -
-
-

{{ song.title }}

- - - -
-
-

Editar

-
- -
-
-
-
{{ song.lyrics }}
-
-
-{% endblock %}