def report_monthly_activity_group_detail(request,year,month,activity_id): activity_list = (Activity.objects.filter(date__month=month,date__year=year) if activity_id == u'0' else \ Activity.objects.filter(group__id=activity_id,date__month=month,date__year=year)) today = datetime.date.today() try: caption = ("Event" if activity_id == u'0' else Activity.objects.filter(group__id=activity_id,date__month=month,date__year=year)[0].group) except IndexError: caption = "Event" for activity in activity_list: gen_activity_report(activity) return render_to_response('report_monthly_activity_group_detail.html', { 'caption' : caption, 'date' : datetime.datetime(int(year),int(month),1), 'year' : year, 'month' : month, 'activity_list' : activity_list, }, context_instance=RequestContext(request))
def gen_report_group_summary_monthly_version(year,month): report_header = ["<thead><tr><th rowspan=2 >Name</th>"] activity_group_list = ActivityGroup.objects.filter() activity_header_cell=[] summary_report_version=0 for activity_group in activity_group_list: activity_list = Activity.objects.filter(group=activity_group,date__month=month,date__year=year) al_count = activity_list.count() if al_count: report_header.append('<th colspan=%s>%s</th>' % (al_count+1,activity_group.name[0:5])) for activity in activity_list: gen_activity_report(activity) activity_header_cell.append('<th>%s</th>' % activity.date.day) summary_report_version += activity.version if al_count: activity_header_cell.append('<th>sum</th>') report_header.append(("<th rowspan=2>Total</th></tr><tr>%s</tr></thead>") % ''.join(activity_header_cell)) report_table = ''.join(report_header) student_list = Student.objects.filter(status=True) student_row = [] for student in student_list: student_row.append("<tr><td>%s %s</td>" % (student.people.name_th,student.people.lastname_th)) activity_group_list = ActivityGroup.objects.filter() activity_allgroup_status_ok_count = 0 activity_allgroup_count = 0 for activity_group in activity_group_list: activity_list = Activity.objects.filter(group=activity_group,date__month=month,date__year=year) activity_status_ok_count = 0 for activity in activity_list: try : ar = ActivityReport.objects.get(activity=activity,attendance=student,version=activity.version) student_row.append('<td><small class=\"tag %s\">%s</small></td>' % (ar.tx_bg_color(),ar.transaction_status)) if ar.transaction_status=='O': activity_status_ok_count +=1 except ActivityReport.DoesNotExist: student_row.append('<td>-</td>') if activity_list.count(): student_row.append('<td>%s/%s</td>' % (activity_status_ok_count,activity_list.count())) activity_allgroup_status_ok_count += activity_status_ok_count activity_allgroup_count += activity_list.count() activity_status_ok_count=0 student_row.append('<td>%s/%s : %d%</td>' % ( activity_allgroup_status_ok_count, activity_allgroup_count, ((float(activity_allgroup_status_ok_count)/activity_allgroup_count)*100), ) ) student_row.append("</tr>") report_table = report_table+''.join(student_row) asr = ActivitySummaryReport.objects.create( month = month, year = year, data = report_table , generate_date = datetime.datetime.now(), version = summary_report_version ) return ActivitySummaryReport.objects.get(version = summary_report_version)