Ejemplo n.º 1
0
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)})
Ejemplo n.º 2
0
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)
                  } )