aboutsummaryrefslogtreecommitdiff
path: root/src/web/controllers/article.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/web/controllers/article.py')
-rw-r--r--src/web/controllers/article.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/web/controllers/article.py b/src/web/controllers/article.py
index 3d8d5c01..72288a09 100644
--- a/src/web/controllers/article.py
+++ b/src/web/controllers/article.py
@@ -1,6 +1,8 @@
import re
import logging
+import sqlalchemy
from sqlalchemy import func
+from collections import Counter
from bootstrap import db
from .abstract import AbstractController
@@ -70,3 +72,22 @@ class ArticleController(AbstractController):
attrs['link'])
return super().create(**attrs)
+
+ def get_history(self, year=None, month=None):
+ """
+ Sort articles by year and month.
+ """
+ articles_counter = Counter()
+ articles = self.read()
+ if year is not None:
+ articles = articles.filter(
+ sqlalchemy.extract('year', Article.date) == year)
+ if month is not None:
+ articles = articles.filter(
+ sqlalchemy.extract('month', Article.date) == month)
+ for article in articles.all():
+ if year is not None:
+ articles_counter[article.date.month] += 1
+ else:
+ articles_counter[article.date.year] += 1
+ return articles_counter, articles
bgstack15