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)
Beispiel #2
0
 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)