Skip to content

Commit

Permalink
Improve activity queries
Browse files Browse the repository at this point in the history
  • Loading branch information
avdata99 committed May 6, 2022
1 parent e0abe03 commit 64443b2
Showing 1 changed file with 16 additions and 21 deletions.
37 changes: 16 additions & 21 deletions ckan/model/activity.py
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ def package_activity_list(
etc.
'''
import ckan.model as model
q = _package_activity_query(package_id)

if not include_hidden_activity:
Expand All @@ -257,13 +258,24 @@ def package_activity_list(
q, include=False, types=exclude_activity_types)

if after:
q = _filter_activitites_from_timestamp(q, timestamp=after, after=True)
q = q.filter(model.Activity.timestamp > after)
if before:
q = _filter_activitites_from_timestamp(q, timestamp=before, after=False)
q = q.filter(model.Activity.timestamp < before)

# revert sort queries for "only after" queries
# revert sort queries for "only before" queries
revese_order = before and not after
results = _activities_limit(q, limit, offset, revese_order).all()
if revese_order:
q = q.order_by(model.Activity.timestamp)
else:
# type_ignore_reason: incomplete SQLAlchemy types
q = q.order_by(model.Activity.timestamp.desc()) # type: ignore

if offset:
q = q.offset(offset)
if limit:
q = q.limit(limit)

results = q.all()

# revert result if required
if revese_order:
Expand Down Expand Up @@ -546,23 +558,6 @@ def _filter_activitites_from_users(q: QActivity) -> QActivity:
return q


def _filter_activitites_from_timestamp(
q: QActivity,
timestamp: datetime.datetime,
after: bool
) -> QActivity:
'''Adds a filter to an existing query object to include or exclude
(include=False) activities based on a list of types.
'''
import ckan.model as model
if after:
q = q.filter(model.Activity.timestamp > timestamp)
else:
q = q.filter(model.Activity.timestamp < timestamp)
return q


def _filter_activitites_from_type(
q: QActivity, types: list[str], include: bool = True):
'''Adds a filter to an existing query object to include or exclude
Expand Down

0 comments on commit 64443b2

Please sign in to comment.