| @ -0,0 +1,14 @@ | |||
| {% extends 'base.html' %} | |||
| {% block content %} | |||
| <div class="app-card p-5 text-center shadow-sm"> | |||
| <h1 class="page-title mb-4">Error<br><span class="font-weight-light">No hay autores</span></h1> | |||
| <div class="mb-4"> | |||
| Lo siento, no hay autores por lo que no se puede crear un libro. | |||
| </div> | |||
| <a class="btn app-btn-primary" href="{{ url_for('paginas.index') }}">Ir a la página de inicio</a> | |||
| </div> | |||
| {% endblock %} | |||
| @ -1,37 +0,0 @@ | |||
| {% extends 'base.html' %} | |||
| {% block content %} | |||
| <div class="container-xl"> | |||
| <div class="app-card app-card-notification shadow-sm mb-4"> | |||
| <div class="app-card-header px-4 py-3"> | |||
| <div class="row g-3 align-items-center"> | |||
| <div class="col-12 col-lg-auto text-center text-lg-start"> | |||
| {% if album.cover_image %} | |||
| <p><img src="{{ url_for('paginas.uploaded_file', filename=album.cover_image) }}" alt="{{ album.name }}" style="width:200px;height:200px;"></p> | |||
| {% else %} | |||
| <p>No hay imágen disponible</p> | |||
| {% endif %} | |||
| </div><!--//col--> | |||
| <div class="col-12 col-lg-auto text-center text-lg-start"> | |||
| <h4 class="notification-title mb-1">{{ song.title }}</h4> | |||
| <ul class="notification-meta list-inline mb-0"> | |||
| <li class="list-inline-item">{{ song.author }}</li> | |||
| <li class="list-inline-item">|</li> | |||
| <li class="list-inline-item">{{ song.album.year }}</li> | |||
| <li class="list-inline-item">|</li> | |||
| <li class="list-inline-item"><a href="{{ url_for('paginas.album', album_id=song.album.id) }}">{{ song.album.name }}</a></li> | |||
| </ul> | |||
| </div><!--//col--> | |||
| <div class="col-12 col-lg-auto text-center text-lg-start"> | |||
| <p><a href="{{ url_for('paginas.edit_song', song_id=song.id) }}">Editar</a></p> | |||
| </div> | |||
| </tr> | |||
| </div><!--//row--> | |||
| </div><!--//app-card-header--> | |||
| <div class="app-card-body p-4"> | |||
| <pre>{{ song.lyrics }}</pre> | |||
| </div><!--//app-card-body--> | |||
| </div><!--//app-card--> | |||
| {% endblock %} | |||
| @ -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 ### | |||
| @ -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 ### | |||
| @ -1,37 +0,0 @@ | |||
| {% extends 'base.html' %} | |||
| {% block content %} | |||
| <div class="container-xl"> | |||
| <div class="app-card app-card-notification shadow-sm mb-4"> | |||
| <div class="app-card-header px-4 py-3"> | |||
| <div class="row g-3 align-items-center"> | |||
| <div class="col-12 col-lg-auto text-center text-lg-start"> | |||
| {% if album.cover_image %} | |||
| <p><img src="{{ url_for('paginas.uploaded_file', filename=album.cover_image) }}" alt="{{ album.name }}" style="width:200px;height:200px;"></p> | |||
| {% else %} | |||
| <p>No hay imágen disponible</p> | |||
| {% endif %} | |||
| </div><!--//col--> | |||
| <div class="col-12 col-lg-auto text-center text-lg-start"> | |||
| <h4 class="notification-title mb-1">{{ song.title }}</h4> | |||
| <ul class="notification-meta list-inline mb-0"> | |||
| <li class="list-inline-item">{{ song.author }}</li> | |||
| <li class="list-inline-item">|</li> | |||
| <li class="list-inline-item">{{ song.album.year }}</li> | |||
| <li class="list-inline-item">|</li> | |||
| <li class="list-inline-item"><a href="{{ url_for('paginas.album', album_id=song.album.id) }}">{{ song.album.name }}</a></li> | |||
| </ul> | |||
| </div><!--//col--> | |||
| <div class="col-12 col-lg-auto text-center text-lg-start"> | |||
| <p><a href="{{ url_for('paginas.edit_song', song_id=song.id) }}">Editar</a></p> | |||
| </div> | |||
| </tr> | |||
| </div><!--//row--> | |||
| </div><!--//app-card-header--> | |||
| <div class="app-card-body p-4"> | |||
| <pre>{{ song.lyrics }}</pre> | |||
| </div><!--//app-card-body--> | |||
| </div><!--//app-card--> | |||
| {% endblock %} | |||