Files
pi-weekly-newspaper/templates/issues.html
cottongin 0d1a898caa feat: add Grimmory/Booklore push integration
- Added "Push to Library" button to issues archive
- Implemented direct API upload to Grimmory/Booklore
- Added support for `.env` files via `python-dotenv`
- Handled 409 Conflict for duplicate files gracefully
- Resolved library name to numeric ID for direct uploads
- Fixed SQLAlchemy and ebooklib warnings in tests
- Added comprehensive tests for push functionality

Made-with: Cursor
2026-04-07 02:22:35 -04:00

53 lines
2.1 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends "base.html" %}
{% block title %}Issues{% endblock %}
{% block content %}
<h1>Issues Archive</h1>
{% if issues %}
<table>
<thead>
<tr>
<th>Cover</th>
<th>Week</th>
<th>Articles</th>
<th>Cover Method</th>
<th>Created</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
{% for item in issues %}
<tr>
<td>
<img src="/issues/{{ item.issue.id }}/cover" alt="Cover"
style="max-width: 100px; max-height: 60px;">
</td>
<td>{{ item.issue.week_start.strftime('%b %d') }} {{ item.issue.week_end.strftime('%b %d, %Y') }}</td>
<td>{{ item.article_count }}</td>
<td>{{ item.issue.cover_method }}</td>
<td>{{ item.issue.created_at.strftime('%b %d, %Y %H:%M') }}</td>
<td class="issue-actions">
<a href="/issues/{{ item.issue.id }}/read" role="button" class="outline">Read</a>
<a href="/issues/{{ item.issue.id }}/download" role="button" class="outline">Download</a>
{% if config.GRIMMORY_URL and config.GRIMMORY_USERNAME and config.GRIMMORY_PASSWORD %}
<form method="post" action="/issues/{{ item.issue.id }}/push">
<button type="submit" class="outline">Push to Library</button>
</form>
{% endif %}
<form method="post" action="/issues/{{ item.issue.id }}/regenerate">
<button type="submit" class="outline contrast">Regenerate</button>
</form>
<form method="post" action="/issues/{{ item.issue.id }}/delete" data-confirm-danger="true"
onsubmit="event.preventDefault(); confirmAction('The ePub and cover files will also be removed.', this, 'Delete Issue?');">
<button type="submit" class="outline btn-danger">Delete</button>
</form>
</td>
</tr>
{% endfor %}
</tbody>
</table>
{% else %}
<p>No issues published yet. <a href="/publish">Create one?</a></p>
{% endif %}
{% endblock %}