def update_folder_stats(request): logging.info(request.POST) folder_key = request.POST['folder_key'] season_key = request.POST['season_key'] course_list=Course.list_filter(season_key,folder_key) tc_em = 0 tc_ef = 0 tc_e = 0 tc_pm = 0 tc_pf = 0 tc_p = 0 tc_ppm = 0 tc_ppf = 0 tc_pp = 0 tc_npm = 0 tc_npf = 0 tc_np = 0 tc_sum = 0 if course_list is not None: for c in course_list: tc_em+=c.stat_e_m tc_ef+=c.stat_e_f tc_e+=c.usage tc_pm+=c.stat_fp_m tc_pf+=c.stat_fp_f tc_p+=c.stat_fp_m+c.stat_fp_f tc_ppm+=c.stat_pp_m tc_ppf+=c.stat_pp_f tc_pp+=c.stat_pp_m+c.stat_pp_f tc_npm+=c.stat_np_m tc_npf+=c.stat_np_f tc_np+=c.stat_np_m+c.stat_np_f tc_sum+=c.stat_paid logging.info('stat done') fs = FolderStats.get_or_create(season_key,folder_key) logging.info('old folder stats %s' % (fs)) fs.stat_em = tc_em fs.stat_ef = tc_ef fs.stat_e = tc_e fs.stat_pm = tc_pm fs.stat_pf = tc_pf fs.stat_p = tc_p fs.stat_ppm = tc_ppm fs.stat_ppf = tc_ppf fs.stat_pp = tc_pp fs.stat_npm = tc_npm fs.stat_npf = tc_npf fs.stat_np = tc_np fs.stat_sum = tc_sum fs.mark_update() fs.save() logging.info('folder stats %s' % (fs)) return HttpResponse('ok')
def index(request): season = None if request.method == 'POST': form = SeasonFilterForm(request.POST) if form.is_valid(): season = Season.get(str(form.cleaned_data['season_key'])) if not season is None: request.session['course_season_key']=str(season.key()) else: cskey = request.session.get('course_season_key',None) if not cskey is None: season = Season.get(str(cskey)) if (season is None): form = SeasonFilterForm() else: form = SeasonFilterForm({'season_key':str(season.key())}) logging.info(season) prev_season = None if not season is None: prev_season = season.get_prev() logging.info(prev_season) prev_prev_season = None if not prev_season is None: prev_prev_season = prev_season.get_prev() logging.info(prev_prev_season) folder_stats = [] if not season is None: folder_stats = list(FolderStats.list_by_season(str(season.key()))) if not prev_season is None: prev_folder_stats = FolderStats.list_by_season(str(prev_season.key())) for fs,ps in izip(folder_stats,prev_folder_stats): fs.prev_season_sum_1 = ps.stat_sum if not prev_prev_season is None: prev_prev_folder_stats = FolderStats.list_by_season(str(prev_prev_season.key())) for fs,ps in izip(folder_stats,prev_prev_folder_stats): fs.prev_season_sum_2 = ps.stat_sum ts_em = 0 ts_ef = 0 ts_e = 0 ts_pm = 0 ts_pf = 0 ts_p = 0 ts_ppm = 0 ts_ppf = 0 ts_pp = 0 ts_npm = 0 ts_npf = 0 ts_np = 0 ts_sum = 0 ts_prev_s1 = 0 ts_prev_s2 = 0 for fs in folder_stats: ts_em = ts_em + fs.stat_em ts_ef = ts_ef + fs.stat_ef ts_e = ts_e + fs.stat_e ts_pm = ts_pm + fs.stat_pm ts_pf = ts_pf + fs.stat_pf ts_p = ts_p + fs.stat_p ts_ppm = ts_ppm + fs.stat_ppm ts_ppf = ts_ppf + fs.stat_ppf ts_pp = ts_pp + fs.stat_pp ts_npm = ts_npm + fs.stat_npm ts_npf = ts_npf + fs.stat_npf ts_np = ts_np + fs.stat_np ts_sum = ts_sum + fs.stat_sum ts_prev_s1 = ts_prev_s1 + fs.prev_season_sum_1 ts_prev_s2 = ts_prev_s2 + fs.prev_season_sum_2 return render_to_response('admin/index.html', RequestContext(request, { 'form': form, 'folder_stats':folder_stats, 'ts_em': ts_em, 'ts_ef': ts_ef, 'ts_e': ts_e, 'ts_pm': ts_pm, 'ts_pf': ts_pf, 'ts_p': ts_p, 'ts_ppm': ts_ppm, 'ts_ppf': ts_ppf, 'ts_pp': ts_pp, 'ts_npm': ts_npm, 'ts_npf': ts_npf, 'ts_np': ts_np, 'ts_sum':ts_sum, 'ts_prev_s1': ts_prev_s1, 'ts_prev_s2': ts_prev_s2, 's': season, 'prev_s1': prev_season, 'prev_s2': prev_prev_season }))