From 61528e5269e9360a03d908a915cfb09c8f7d219d Mon Sep 17 00:00:00 2001 From: Untone Date: Fri, 2 Feb 2024 19:36:30 +0300 Subject: [PATCH] visibility-no-need --- CHANGELOG.txt | 2 +- orm/shout.py | 9 --------- resolvers/editor.py | 4 ++-- resolvers/reaction.py | 6 +++--- resolvers/reader.py | 9 ++++----- schema/enum.graphql | 6 ------ schema/type.graphql | 1 - 7 files changed, 10 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.txt b/CHANGELOG.txt index e5fe46f7..df1c8583 100644 --- a/CHANGELOG.txt +++ b/CHANGELOG.txt @@ -2,7 +2,7 @@ - Shout.featured_at timestamp of the frontpage featuring event - added proposal accepting logics - schema modulized -- +- Shout.visibility removed [0.2.22] - added precommit hook diff --git a/orm/shout.py b/orm/shout.py index 4685b2d5..2757bcb6 100644 --- a/orm/shout.py +++ b/orm/shout.py @@ -1,5 +1,4 @@ import time -from enum import Enum as Enumeration from sqlalchemy import JSON, Boolean, Column, ForeignKey, Integer, String from sqlalchemy.orm import relationship @@ -48,12 +47,6 @@ class ShoutCommunity(Base): community = Column(ForeignKey('community.id'), primary_key=True, index=True) -class ShoutVisibility(Enumeration): - AUTHORS = 'AUTHORS' - COMMUNITY = 'COMMUNITY' - FEATURED = 'FEATURED' - - class Shout(Base): __tablename__ = 'shout' @@ -83,8 +76,6 @@ class Shout(Base): communities = relationship(lambda: Community, secondary='shout_community') reactions = relationship(lambda: Reaction) - visibility = Column(String, default=ShoutVisibility.AUTHORS.value) - lang = Column(String, nullable=False, default='ru', comment='Language') version_of = Column(ForeignKey('shout.id'), nullable=True) oid = Column(String, nullable=True) diff --git a/resolvers/editor.py b/resolvers/editor.py index 93f8bc40..839eba59 100644 --- a/resolvers/editor.py +++ b/resolvers/editor.py @@ -5,7 +5,7 @@ from sqlalchemy.orm import joinedload from orm.author import Author from orm.reaction import Reaction, ReactionKind -from orm.shout import Shout, ShoutAuthor, ShoutTopic, ShoutVisibility +from orm.shout import Shout, ShoutAuthor, ShoutTopic from orm.topic import Topic from resolvers.follower import reactions_follow, reactions_unfollow from resolvers.rater import is_negative, is_positive @@ -61,7 +61,7 @@ async def create_shout(_, info, inp): 'authors': [], 'slug': slug, 'topics': inp.get('topics', []), - 'visibility': ShoutVisibility.AUTHORS.value, + 'published_at': None, 'created_at': current_time, # Set created_at as Unix timestamp } diff --git a/resolvers/reaction.py b/resolvers/reaction.py index fbd646bf..af67ddb5 100644 --- a/resolvers/reaction.py +++ b/resolvers/reaction.py @@ -8,7 +8,7 @@ from sqlalchemy.sql import union from orm.author import Author from orm.reaction import Reaction, ReactionKind -from orm.shout import Shout, ShoutVisibility +from orm.shout import Shout from resolvers.editor import handle_proposing from resolvers.follower import reactions_follow from resolvers.rater import RATING_REACTIONS, is_negative, is_positive @@ -90,7 +90,7 @@ def check_to_unfeature(session, rejecter_id, reaction): async def set_featured(session, shout_id): s = session.query(Shout).where(Shout.id == shout_id).first() s.featured_at = int(time.time()) - Shout.update(s, {'visibility': ShoutVisibility.FEATURED.value}) + Shout.update(s, { 'featured_at': int(time.time()) }) author = session.query(Author).filter(Author.id == s.created_by).first() if author: await add_user_role(str(author.user)) @@ -100,7 +100,7 @@ async def set_featured(session, shout_id): def set_unfeatured(session, shout_id): s = session.query(Shout).where(Shout.id == shout_id).first() - Shout.update(s, {'visibility': ShoutVisibility.COMMUNITY.value , 'featured_at': None }) + Shout.update(s, {'featured_at': None }) session.add(s) session.commit() diff --git a/resolvers/reader.py b/resolvers/reader.py index ebc619c3..9fb08062 100644 --- a/resolvers/reader.py +++ b/resolvers/reader.py @@ -7,7 +7,7 @@ from starlette.exceptions import HTTPException from orm.author import Author, AuthorFollower from orm.reaction import Reaction, ReactionKind -from orm.shout import Shout, ShoutAuthor, ShoutTopic, ShoutVisibility +from orm.shout import Shout, ShoutAuthor, ShoutTopic from orm.topic import Topic, TopicFollower from resolvers.reaction import add_stat_columns from resolvers.topic import get_random_topic @@ -28,7 +28,7 @@ def apply_filters(q, filters, author_id=None): by_featured = filters.get('featured') if by_featured: - q = q.filter(Shout.visibility == ShoutVisibility.FEATURED.value) + q = q.filter(Shout.featered_at.is_not(None)) by_layouts = filters.get('layouts') if by_layouts: q = q.filter(Shout.layout.in_(by_layouts)) @@ -206,8 +206,7 @@ async def load_shouts_drafts(_, info): joinedload(Shout.authors), joinedload(Shout.topics), ) - .filter(Shout.deleted_at.is_(None)) - .filter(Shout.visibility == ShoutVisibility.AUTHORS.value) + .filter(and_(Shout.deleted_at.is_(None), Shout.published_at.is_(None))) ) shouts = [] @@ -466,7 +465,7 @@ async def load_shouts_random_topic(_, info, limit: int = 10): .filter( and_( Shout.deleted_at.is_(None), - Shout.visibility == ShoutVisibility.FEATURED.value, + Shout.featured_at.is_not(None), Shout.topics.any(slug=topic.slug), ) ) diff --git a/schema/enum.graphql b/schema/enum.graphql index a219ae00..cbcd8e42 100644 --- a/schema/enum.graphql +++ b/schema/enum.graphql @@ -1,9 +1,3 @@ -enum ShoutVisibility { - AUTHORS - COMMUNITY - FEATURED -} - enum ReactionStatus { NEW UPDATED diff --git a/schema/type.graphql b/schema/type.graphql index 3b4c01ef..ebbbaf1c 100644 --- a/schema/type.graphql +++ b/schema/type.graphql @@ -84,7 +84,6 @@ type Shout { cover: String cover_caption: String layout: String! - visibility: String created_at: Int! updated_at: Int