]>
git.ipfire.org Git - ipfire.org.git/blob - webapp/backend/wishlist.py
3 from __future__
import division
8 from databases
import Databases
9 from misc
import Singleton
11 class Wishlist(object):
12 __metaclass__
= Singleton
16 return Databases().webapp
19 wish
= self
.db
.get("SELECT * FROM wishlist WHERE slug = %s", slug
)
22 return Wish(self
, wish
.id)
24 def get_all_by_query(self
, query
, *args
):
27 for row
in self
.db
.query(query
, *args
):
28 wish
= Wish(self
, row
.id, row
)
33 def get_all_running(self
):
34 return self
.get_all_by_query("SELECT * FROM wishlist \
35 WHERE DATE(NOW()) >= date_start AND DATE(NOW()) <= date_end AND status = 'running' \
36 ORDER BY prio ASC, date_end ASC")
38 def get_all_finished(self
, limit
=5, offset
=None):
39 query
= "SELECT * FROM wishlist WHERE DATE(NOW()) > date_end AND status IS NOT NULL \
40 ORDER BY date_end DESC"
45 query
+= " LIMIT %s,%s"
46 args
+= [limit
, offset
]
51 return self
.get_all_by_query(query
, *args
)
55 def __init__(self
, wishlist
, id, data
=None):
56 self
.wishlist
= wishlist
61 def __cmp__(self
, other
):
62 return cmp(self
.date_end
, other
.date_end
)
66 return self
.wishlist
.db
70 if self
.__data
is None:
71 self
.__data
= self
.db
.get("SELECT * FROM wishlist WHERE id = %s", self
.id)
78 return self
.data
.title
89 def description(self
):
90 return textile
.textile(self
.data
.description
)
98 return self
.data
.donated
101 def percentage(self
):
102 return (self
.donated
/ self
.goal
) * 100
105 def percentage_bar(self
):
106 if self
.percentage
> 100:
109 return self
.percentage
113 if self
.data
.status
== "running" and not self
.running
:
116 return self
.data
.status
120 if self
.remaining_days
< 0:
126 def date_start(self
):
127 return self
.data
.date_start
131 return self
.data
.date_end
134 def running_days(self
):
135 today
= datetime
.datetime
.today()
138 running
= today
- self
.date_start
142 def remaining_days(self
):
143 today
= datetime
.datetime
.today()
146 remaining
= self
.date_end
- today
147 return remaining
.days
149 def get_tweet(self
, locale
):
153 _("Checkout this crowdfunding wish from #ipfire:"),
154 "http://wishlist.ipfire.org/wish/%s" % self
.slug
,