DevPlace CI / test (push) Failing after 2m7s
- Add `/block`, `/mute` endpoints with block/unblock and mute/unmute functionality in `routers/relations.py`, hiding blocked users' content everywhere except their own profile while muting only suppresses notifications - Introduce `devplace emoji-sync` CLI command to regenerate `static/js/emoji-shortcodes.js` from the emoji library, documented in `CLAUDE.md` and wired in `cli.py` - Create `get_blocked_uids()` database helper and apply it in `content.py` `load_detail()` to filter blocked users' posts from detail views - Implement `_uid_index()` and `_drop_index()` helpers in `database.py` for unique uid indexes across tables, with `user_relations` added to `SOFT_DELETE_TABLES` - Document new routes in `AGENTS.md` and `README.md`, including emoji shortcodes rendering behavior distinct from the emoji picker
41 lines
1.7 KiB
HTML
41 lines
1.7 KiB
HTML
{% extends "admin_base.html" %}
|
|
{% block extra_head %}
|
|
<link rel="stylesheet" href="{{ static_url('/static/css/admin.css') }}">
|
|
<link rel="stylesheet" href="{{ static_url('/static/css/sidebar.css') }}">
|
|
<link rel="stylesheet" href="{{ static_url('/static/css/planning.css') }}">
|
|
{% endblock %}
|
|
{% block admin_content %}
|
|
<div class="admin-header planning-header">
|
|
<div>
|
|
<h1>Ticket Planning</h1>
|
|
<p class="planning-subtitle">Generate a grouped, ordered planning report of every open ticket.</p>
|
|
</div>
|
|
{% if configured %}
|
|
<button type="button" class="btn btn-primary" data-planning-generate data-action="/issues/planning">
|
|
<span class="btn-spinner" aria-hidden="true"></span> Generate planning
|
|
</button>
|
|
{% endif %}
|
|
</div>
|
|
|
|
{% if not configured %}
|
|
<div class="empty-state">The issue tracker is not configured yet. Configure Gitea in Services first.</div>
|
|
{% else %}
|
|
<div class="planning-status" data-planning-status hidden role="status" aria-live="polite">
|
|
<span class="planning-spinner" aria-hidden="true"></span>
|
|
<span class="planning-status-text">Generating the planning report...</span>
|
|
</div>
|
|
|
|
<div class="planning-result" data-planning-result hidden role="region" aria-label="Planning report">
|
|
<div class="planning-actions">
|
|
<a class="btn btn-secondary" data-planning-download href="#" download>Download markdown</a>
|
|
<span class="planning-hint">Hover the report and use the Copy button to copy the markdown source.</span>
|
|
</div>
|
|
<dp-content class="planning-report" data-planning-report></dp-content>
|
|
</div>
|
|
|
|
<div class="planning-empty empty-state" data-planning-empty>
|
|
No planning generated yet. Click "Generate planning" to build one from the open tickets.
|
|
</div>
|
|
{% endif %}
|
|
{% endblock %}
|