feat: overhaul UI styling, improve templates, enhance services and tests
This commit is contained in:
+54
-14
@@ -43,13 +43,39 @@ class Paper(Base):
|
||||
raw_output_path = Column(String)
|
||||
summary_quality = Column(String)
|
||||
|
||||
authors = relationship("PaperAuthor", back_populates="paper", cascade="all, delete-orphan")
|
||||
tags = relationship("PaperTag", back_populates="paper", cascade="all, delete-orphan")
|
||||
summary = relationship("PaperSummary", back_populates="paper", uselist=False, cascade="all, delete-orphan")
|
||||
summary_status = relationship("SummaryStatus", back_populates="paper", uselist=False, cascade="all, delete-orphan")
|
||||
bookmark = relationship("UserBookmark", back_populates="paper", uselist=False, cascade="all, delete-orphan")
|
||||
reading_status = relationship("UserReadingStatus", back_populates="paper", uselist=False, cascade="all, delete-orphan")
|
||||
note = relationship("UserNote", back_populates="paper", uselist=False, cascade="all, delete-orphan")
|
||||
authors = relationship(
|
||||
"PaperAuthor", back_populates="paper", cascade="all, delete-orphan"
|
||||
)
|
||||
tags = relationship(
|
||||
"PaperTag", back_populates="paper", cascade="all, delete-orphan"
|
||||
)
|
||||
summary = relationship(
|
||||
"PaperSummary",
|
||||
back_populates="paper",
|
||||
uselist=False,
|
||||
cascade="all, delete-orphan",
|
||||
)
|
||||
summary_status = relationship(
|
||||
"SummaryStatus",
|
||||
back_populates="paper",
|
||||
uselist=False,
|
||||
cascade="all, delete-orphan",
|
||||
)
|
||||
bookmark = relationship(
|
||||
"UserBookmark",
|
||||
back_populates="paper",
|
||||
uselist=False,
|
||||
cascade="all, delete-orphan",
|
||||
)
|
||||
reading_status = relationship(
|
||||
"UserReadingStatus",
|
||||
back_populates="paper",
|
||||
uselist=False,
|
||||
cascade="all, delete-orphan",
|
||||
)
|
||||
note = relationship(
|
||||
"UserNote", back_populates="paper", uselist=False, cascade="all, delete-orphan"
|
||||
)
|
||||
|
||||
|
||||
# ── paper_authors ───────────────────────────────────────────────────────
|
||||
@@ -58,7 +84,9 @@ class PaperAuthor(Base):
|
||||
__table_args__ = (UniqueConstraint("paper_id", "name"),)
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
paper_id = Column(Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False)
|
||||
paper_id = Column(
|
||||
Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
name = Column(String, nullable=False)
|
||||
position = Column(Integer, default=0)
|
||||
|
||||
@@ -71,7 +99,9 @@ class PaperTag(Base):
|
||||
__table_args__ = (UniqueConstraint("paper_id", "tag", "source"),)
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
paper_id = Column(Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False)
|
||||
paper_id = Column(
|
||||
Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
tag = Column(String, nullable=False)
|
||||
source = Column(String, default="hf")
|
||||
|
||||
@@ -82,7 +112,9 @@ class PaperTag(Base):
|
||||
class PaperSummary(Base):
|
||||
__tablename__ = "paper_summaries"
|
||||
|
||||
paper_id = Column(Integer, ForeignKey("papers.id", ondelete="CASCADE"), primary_key=True)
|
||||
paper_id = Column(
|
||||
Integer, ForeignKey("papers.id", ondelete="CASCADE"), primary_key=True
|
||||
)
|
||||
one_line = Column(Text)
|
||||
difficulty = Column(String)
|
||||
prerequisites_json = Column(Text)
|
||||
@@ -111,7 +143,9 @@ class SummaryStatus(Base):
|
||||
__table_args__ = (UniqueConstraint("paper_id"),)
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
paper_id = Column(Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False)
|
||||
paper_id = Column(
|
||||
Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
status = Column(String, nullable=False, default="pending")
|
||||
quality = Column(String)
|
||||
error_type = Column(String)
|
||||
@@ -158,7 +192,9 @@ class UserBookmark(Base):
|
||||
__table_args__ = (UniqueConstraint("paper_id"),)
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
paper_id = Column(Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False)
|
||||
paper_id = Column(
|
||||
Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
note = Column(Text)
|
||||
created_at = Column(DateTime, nullable=False)
|
||||
|
||||
@@ -170,7 +206,9 @@ class UserReadingStatus(Base):
|
||||
__table_args__ = (UniqueConstraint("paper_id"),)
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
paper_id = Column(Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False)
|
||||
paper_id = Column(
|
||||
Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
status = Column(String, nullable=False, default="unread")
|
||||
updated_at = Column(DateTime, nullable=False)
|
||||
|
||||
@@ -182,7 +220,9 @@ class UserNote(Base):
|
||||
__table_args__ = (UniqueConstraint("paper_id"),)
|
||||
|
||||
id = Column(Integer, primary_key=True, autoincrement=True)
|
||||
paper_id = Column(Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False)
|
||||
paper_id = Column(
|
||||
Integer, ForeignKey("papers.id", ondelete="CASCADE"), nullable=False
|
||||
)
|
||||
content = Column(Text, nullable=False)
|
||||
created_at = Column(DateTime, nullable=False)
|
||||
updated_at = Column(DateTime, nullable=False)
|
||||
|
||||
Reference in New Issue
Block a user