def index(request,site_id=0): """ Initial user view user needs to be logged Get user related site data initially to display on main-dashboard view """ sites = _get_user_sites(request) context_dict = {} # Handle fisrt login if user has no site setup: if not sites: context_dict['VRM_form'] = _create_vrm_login_form() return render(request,'seshdash/initial-login.html',context_dict) if not site_id: #return first site user has action site_id = sites[0].pk #Check if user has any sites under their permission context_dict, content_json = get_user_data(request.user,site_id,sites) context_dict = jsonify_dict(context_dict,content_json) #Generate date for dashboard TODO use victron solar yield data using mock weather data for now context_dict['site_id'] = site_id #Generating site measurements for a graph current_site = Sesh_Site.objects.filter(id = site_id).first() #getting site measurements site_measurements = get_site_measurements(current_site) measurements ={} for measurement in site_measurements: #getting verbose names measurement_verbose_name = get_measurement_verbose_name(measurement) measurements[measurement] = measurement_verbose_name context_dict['measurements']= measurements # status card form site = Sesh_Site.objects.filter(id=site_id).first() form = StatusCardForm(instance=site.status_card) context_dict['status_form'] = form #sites witth weather and battery status sites_stats = get_quick_status(sites) context_dict['sites_stats'] = sites_stats # user permissions context_dict['permitted'] = get_org_edit_permissions(request.user) context_dict['user'] = request.user return render(request,'seshdash/main-dash.html',context_dict)
def test_get_measurements(self): site_measurements = get_site_measurements(self.site) measurements = Site_Measurements.objects.all() self.assertEqual(len(measurements), 1)
def test_get_measurements(self): site_measurements = get_site_measurements(self.site) measurements = Site_Measurements.objects.all() self.assertEqual(len(measurements),1)