]>
git.ipfire.org Git - ipfire.org.git/blob - www/webapp/backend/news.py
3 from databases
import Databases
4 from misc
import Singleton
7 __metaclass__
= Singleton
11 return Databases().webapp
14 return [i
.uuid
for i
in self
.db
.query("SELECT DISTINCT uuid FROM news ORDER BY date")]
16 def get(self
, uuid
, lang
="en"):
17 return self
.db
.get("SELECT * FROM news WHERE uuid=%s AND lang=%s",
20 def get_by_slug(self
, slug
):
21 return self
.db
.get("SELECT * FROM news WHERE slug=%s", slug
)
23 def get_latest(self
, author
=None, locale
=None, limit
=1, offset
=0):
24 query
= "SELECT * FROM news WHERE published='Y'"
27 query
+= " AND author_id='%s'" % author
30 query
+= " AND lang='%s'" % locale
.code
[:2]
32 query
+= " ORDER BY date DESC"
36 query
+= " LIMIT %d,%d" % (offset
, limit
)
38 query
+= " LIMIT %d" % limit
40 news
= self
.db
.query(query
)
44 def get_by_year(self
, year
, locale
=None):
45 query
= "SELECT * FROM news WHERE published = 'Y' AND YEAR(date) = %s"
49 query
+= " AND lang = %s"
50 args
.append(locale
.code
[:2])
52 query
+= " ORDER BY date DESC"
54 return self
.db
.query(query
, *args
)
60 for row
in self
.db
.query("SELECT DISTINCT YEAR(date) AS year FROM news \
61 WHERE published = 'Y' ORDER BY year DESC"):
62 years
.append(row
.year
)
67 if __name__
== "__main__":