def filter(request,survey_id): survey = get_object_or_404(TeamTemperature, pk=survey_id) survey_type = survey.survey_type dept_names = survey.dept_names region_names = survey.region_names site_names = survey.site_names dept_names_list = dept_names.split(',') region_names_list = region_names.split(',') site_names_list = site_names.split(',') if request.method == 'POST': form = FilteredBvcForm(request.POST, error_class=ErrorBox, dept_names_list=dept_names_list, region_names_list=region_names_list, site_names_list=site_names_list ) if form.is_valid(): csf = form.cleaned_data team_name = csf['team_name'].replace(" ", "_") dept_name = csf['dept_name'] region_name = csf['region_name'] site_name = csf['site_name'] team_found = survey.teams_set.filter(team_name = team_name).count() if team_found == 0: team_details = Teams(request = survey, team_name = team_name, dept_name = dept_name, region_name = region_name, site_name = site_name) team_details.save() return HttpResponseRedirect('/admin/%s' % survey_id) else: raise Exception('Form Is Not Valid:',form) else: return render(request, 'filter.html', {'form': FilteredBvcForm(dept_names_list=dept_names_list, region_names_list=region_names_list, site_names_list=site_names_list)})
def bvc(request, survey_id, team_name='', archive_id='', num_iterations='0', add_survey_ids=None, region_names='', site_names='', dept_names=''): survey_ids = request.REQUEST.get('add_survey_ids',add_survey_ids) survey_id_list = [survey_id] if survey_ids: survey_id_list = survey_id_list + survey_ids.split(',') survey = get_object_or_404(TeamTemperature, pk=survey_id) timezone.activate(pytz.timezone(survey.default_tz or 'UTC')) json_history_chart_table = None historical_options = {} bvc_data={} team_index = 0 #Populate data for BVC including previously archived BVC #bvc_data['archived_dates'] & ['archive_date'] & ['archived'] & ['stats_date'] & ['team_history'] & ['survey_teams'] bvc_data = populate_bvc_data(survey_id_list, team_name, archive_id, num_iterations, dept_names, region_names, site_names, survey.survey_type) bvc_data['survey_id'] = survey_id #If there is history to chart generate all data required for historical charts if bvc_data['num_rows'] > 0: historical_options, json_history_chart_table, team_index = populate_chart_data_structures(bvc_data['survey_type_title'], bvc_data['teams'], bvc_data['team_history'],survey.default_tz) #raise Exception(historical_options,json_history_chart_table,team_index) #Cached word cloud if bvc_data['stats']['words']: bvc_data['word_cloudurl'] = cached_word_cloud(bvc_data['stats']['words']) all_dept_names = [] all_region_names = [] all_site_names = [] filter_dept_names = '' filter_region_names = '' filter_site_names = '' for survey_team in bvc_data['survey_teams']: team_details = survey.teams_set.filter(team_name = survey_team.team_name).values('dept_name','region_name','site_name') for team in team_details: if not team['dept_name'] in all_dept_names: all_dept_names.append(team['dept_name']) if not team['region_name'] in all_region_names: all_region_names.append(team['region_name']) if not team['site_name'] in all_site_names: all_site_names.append(team['site_name']) #print >>sys.stderr,all_dept_names,all_region_names,all_site_names if len(all_dept_names) < 2: all_dept_names = [] if len(all_region_names) < 2: all_region_names = [] if len(all_site_names) < 2: all_site_names = [] if dept_names == '': dept_names_list_on = all_dept_names else: dept_names_list_on = dept_names.split(',') if region_names == '': region_names_list_on = all_region_names else: region_names_list_on = region_names.split(',') if site_names == '': site_names_list_on = all_site_names else: site_names_list_on = site_names.split(',') filter_this_bvc = False if request.method == 'POST': form = FilteredBvcForm(request.POST, error_class=ErrorBox, dept_names_list=all_dept_names,dept_names_list_on=dept_names, region_names_list=all_region_names, region_names_list_on=region_names, site_names_list=all_site_names,site_names_list_on=site_names) if form.is_valid(): #raise Exception('Form Is Valid:',form) csf = form.cleaned_data if len(all_dept_names) > len(csf['filter_dept_names']) or len(all_region_names) > len(csf['filter_region_names']) or len(all_site_names) > len(csf['filter_site_names']): filter_this_bvc = True print >>sys.stderr,"len(all_dept_names)",len(all_dept_names),"len(csf['filter_dept_names']",len(csf['filter_dept_names']) for filter_dept_name in csf['filter_dept_names']: filter_dept_names = filter_dept_names + filter_dept_name + ',' for filter_region_name in csf['filter_region_names']: filter_region_names = filter_region_names + filter_region_name + ',' for filter_site_name in csf['filter_site_names']: filter_site_names = filter_site_names + filter_site_name + ',' print >>sys.stderr,"Filter this bvc:",filter_this_bvc return HttpResponseRedirect('/bvc/%s/dept=%s/region=%s/site=%s' % (survey_id, filter_dept_names.rstrip(","), filter_region_names.rstrip(","), filter_site_names.rstrip(",")) ) else: raise Exception('Form Is Not Valid:',form) else: return render(request, 'bvc.html', { 'bvc_data' : bvc_data, 'json_historical_data' : json_history_chart_table, 'historical_options' : historical_options, 'team_count' : team_index, 'num_iterations':num_iterations, 'dept_names':dept_names,'region_names':region_names,'site_names':site_names, 'form': FilteredBvcForm(dept_names_list=all_dept_names,dept_names_list_on=dept_names_list_on, region_names_list=all_region_names, region_names_list_on=region_names_list_on, site_names_list=all_site_names,site_names_list_on=site_names_list_on) } )