def lunch_blocks(): now = datetime.datetime.now(pytz.timezone('US/Eastern')) day_of_week = 'Monday' if now.weekday() > 4 else now.strftime('%A') day_of_week_lower = day_of_week.lower() a, b = 'a_%s' % day_of_week_lower, 'b_%s' % day_of_week_lower a_or_b_today = db.get_ab_week() if a_or_b_today: correct_day_week = a if a_or_b_today['a_or_b'] == 'A' else b db_resp = db.get_lunch_blocks_multi_find(correct_day_week) else: correct_day_week = 'A/B' db_resp = db.get_both_lunch_blocks(a, b) ts, ts_delta, header_title, eng_week_day_name = None, None, None, None resp, classes = [], [] for i in db_resp: ts = i['ts'] ts_delta = clean_rd(relativedelta.relativedelta(datetime.datetime.now(), ts)) week_id = 'A' if 'a_' in i['week_day_name'] else 'B' resp.append({ 'blocks': sorted(i['classes']), 'header_title': u'%s week \u00b7 go to class first \u00b7 revised %s' % (week_id, ts_delta), 'day_week': i['english_week_day_name'] }) return jsonify({ 'ok': 1, 'result': resp, 'navtitle': u'Lunch blocks \u00b7 %s (%s)' % (day_of_week, correct_ab_week if not a_or_b_today else a_or_b_today['a_or_b']) })
def news(item): xml = xmltodict.parse(item.resp) # item.date is localized to US/Eastern now = item.date three_days_ago = now - datetime.timedelta(days=3) stories = map(lambda x: { 'url': x['link'], 'text': x['title'], 'pub_date': utils.news_ts_to_dt(x['pubDate']), 'date_delta': utils.clean_rd(relativedelta.relativedelta(now, utils.news_ts_to_dt(x['pubDate']))), 'class': 'article' }, xml['rss']['channel']['item']) if item.filter_news: recent_stories = sorted( filter(lambda x: x['pub_date'] >= three_days_ago, stories), key=lambda x: x['pub_date'], reverse=True) for i in xrange(len(recent_stories)): recent_stories[i]['pub_date'] = str(recent_stories[i]['pub_date']) return recent_stories else: sorted_articles = sorted(stories, key=lambda x: x['pub_date'], reverse=True) for i in xrange(len(sorted_articles)): sorted_articles[i]['pub_date'] = str(sorted_articles[i]['pub_date']) return sorted_articles
def form_list(): res = [] res_append = res.append for f in db.get_forms(): res_append({ 'class': 'article', 'img': 'doc.png', 'url': 'https://now.2pitau.org/static/forms/%s' % f['filename'], 'text': f['name'], 'ts': f['ts'], 'date_delta': clean_rd(relativedelta.relativedelta(datetime.datetime.now(), f['ts'])) }) return jsonify({ 'ok': 1, 'forms': sorted(res, key=lambda x: x['ts'], reverse=True) })
def lunch_blocks_by_name(day_week_name): """intended only for Admin """ if day_week_name.lower() not in AB_DAYS: raise UsageError('day-not-found') db_resp = db.get_lunch_blocks(day_week_name) ts_eastern, ts_delta, blocks = None, None, None if db_resp: ts = db_resp['ts'] ts_delta = clean_rd(relativedelta.relativedelta(datetime.datetime.now(), ts)) blocks = '\n'.join(sorted(db_resp['classes'])) eastern = pytz.timezone('US/Eastern') ts_eastern = pytz.utc.localize(ts, is_dst=None).astimezone(eastern) return jsonify({ 'ok': 1, 'ts_delta': ts_delta, 'blocks': blocks, 'ts': ts_eastern.strftime('%a, %d %b %Y %H:%M:%S %Z') })
def clean_rd(d): return utils.clean_rd(relativedelta.relativedelta(datetime.datetime.now(), d))