From: Danilo M. Date: Sun, 3 May 2026 10:58:15 +0000 (+0200) Subject: feat: show type, date, tags, categories in article list rows X-Git-Tag: v1.1~4 X-Git-Url: https://git.danix.xyz/?a=commitdiff_plain;h=1570667d5d2b66588bd7d5b44ab70c25ba16d5d4;p=publisher.git feat: show type, date, tags, categories in article list rows --- diff --git a/ui/articles_view.py b/ui/articles_view.py index f45e736..36ca5ec 100644 --- a/ui/articles_view.py +++ b/ui/articles_view.py @@ -3,7 +3,7 @@ from PyQt6.QtWidgets import ( QWidget, QVBoxLayout, QTabWidget, QListWidget, QListWidgetItem, QLabel, ) -from PyQt6.QtCore import Qt, pyqtSignal +from PyQt6.QtCore import Qt, pyqtSignal, QSize from PyQt6.QtGui import QColor from core.models import Article @@ -13,12 +13,30 @@ class ArticleItem(QListWidgetItem): self.article = article if article.has_translation: badge = f"🇬🇧 ✓" if article.lang == "it" else "🇮🇹 ✓" - status = f"{article.slug} [{badge}]" else: badge = f"🇬🇧 ✗" if article.lang == "it" else "🇮🇹 ✗" - status = f"{article.slug} [{badge}]" - self.setText(status) - if not article.has_translation: + line1 = f"{article.slug} [{badge}]" + if article.draft: + line1 = f"[DRAFT] {line1}" + + parts = [] + if article.meta_type: + parts.append(article.meta_type) + if article.meta_date: + parts.append(article.meta_date) + if article.meta_tags: + parts.append(f"#{article.meta_tags.replace(', ', ' #')}") + if article.meta_categories: + parts.append(f"[{article.meta_categories}]") + line2 = " ".join(parts) if parts else "" + + text = f"{line1}\n{line2}" if line2 else line1 + self.setText(text) + self.setSizeHint(QSize(0, 42) if line2 else QSize(0, 26)) + + if article.draft: + self.setForeground(QColor("#f59e0b")) + elif not article.has_translation: self.setForeground(QColor("#ff6b6b")) class ArticlesView(QWidget):