Revert "Revert "store views on the shouts table, remove the viewed table""

This commit is contained in:
Igor Lobanov
2023-08-05 00:21:54 +02:00
committed by GitHub
parent 6e9699513a
commit 9d94464614
5 changed files with 29 additions and 99 deletions

View File

@@ -6,7 +6,6 @@ from orm.reaction import Reaction
from orm.shout import Shout
from orm.topic import Topic, TopicFollower
from orm.user import User, UserRating
from orm.viewed import ViewedEntry
# NOTE: keep orm module isolated
@@ -22,7 +21,6 @@ __all__ = [
"Notification",
"Reaction",
"UserRating",
"ViewedEntry"
]
@@ -35,5 +33,4 @@ def init_tables():
Role.init_table()
UserRating.init_table()
Shout.init_table()
ViewedEntry.init_table()
print("[orm] tables initialized")

View File

@@ -1,7 +1,7 @@
from datetime import datetime
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, String, JSON
from sqlalchemy.orm import relationship
from sqlalchemy import Boolean, Column, DateTime, ForeignKey, Integer, String, JSON
from sqlalchemy.orm import column_property, relationship
from base.orm import Base, local_session
from orm.reaction import Reaction
@@ -61,6 +61,11 @@ class Shout(Base):
authors = relationship(lambda: User, secondary=ShoutAuthor.__tablename__)
topics = relationship(lambda: Topic, secondary=ShoutTopic.__tablename__)
# views from the old Discours website
viewsOld = Column(Integer, default=0)
# views from Ackee tracker on the new Discours website
viewsAckee = Column(Integer, default=0)
views = column_property(viewsOld + viewsAckee)
reactions = relationship(lambda: Reaction)
# TODO: these field should be used or modified

View File

@@ -1,24 +0,0 @@
from datetime import datetime
from sqlalchemy import Column, DateTime, ForeignKey, Integer
from base.orm import Base, local_session
class ViewedEntry(Base):
__tablename__ = "viewed"
viewer = Column(ForeignKey("user.id"), index=True, default=1)
shout = Column(ForeignKey("shout.id"), index=True, default=1)
amount = Column(Integer, default=1)
createdAt = Column(
DateTime, nullable=False, default=datetime.now, comment="Created at"
)
@staticmethod
def init_table():
with local_session() as session:
entry = {
"amount": 0
}
viewed = ViewedEntry.create(**entry)
session.add(viewed)
session.commit()