コード例 #1
0
def smhouse_electro_main(request):
    args = create_args(request)

    # RESTRICT ACCESS
    if args['username'].get_username() == '':  # NO USER
        return redirect('access_denied')
    else:
        electr_access = User_data.objects.get(
            user_user=args['username']).sm_electr
    if electr_access != True:
        return redirect('access_denied')

# ACCESS GRANTED
    args['input_date'] = today

    args['heading'] = "Elektro Patēriņš"
    args['title'] = 'Gudrā Māja | Svabwilla'

    data = ElConsumption.objects.all().order_by('date')
    if data.count() < 2:
        args['graf'] = False

    args['data'] = data
    args['input_read'] = data.reverse()[0]

    response = render(request, 'electro.html', args)
    response.set_cookie(key='page_loc', value='/sm_house/electro/', path='/')
    return response
コード例 #2
0
def default(request):
    args = create_args(request)
    args['title'] = 'Darbu saraksts | Svabwilla'
    args['heading'] = "Darbu saraksts"

    args['type'] = JobsTypes.objects.all()

    # User Restrictions
    try:
        args['u_job_list'] = User_data.objects.get(
            user_user=args['username']).job_list
        args['u_job_start'] = User_data.objects.get(
            user_user=args['username']).job_start
        args['u_job_fin'] = User_data.objects.get(
            user_user=args['username']).job_fin
        args['u_job_cancel'] = User_data.objects.get(
            user_user=args['username']).job_cancel
        args['u_job_mark'] = User_data.objects.get(
            user_user=args['username']).job_mark
#        args['job_restart'] = User_data.objects.get(user_user = args['username']).job_fin
    except:
        args['u_job_list'] = args['u_job_start'] = args['u_job_fin'] = args[
            'u_job_cancel'] = args['u_job_mark'] = False
#        args['u_job_list'] = args['u_job_start'] = args['u_job_fin'] = args['u_job_cancel'] = args['u_job_mark'] = args['job_restart'] = False
    return args
コード例 #3
0
def stream(request):
    args = create_args(request)
    args['title'] = 'Video dzīvajā | Svabwilla'
    args['heading'] = 'Video dzīvajā'

    if args['username'].get_username() == '': # NO USER
        return redirect( 'access_denied' )
    else:
        video_live = User_data.objects.get(user_user = args['username']).video_live

    if video_live:
# ACCESS ALLOWED -->

        args['cameras'] = Camera.objects.filter( cam_visible = True).order_by('cam_nr')
#        args['cameras'] = Camera.objects.filter( cam_visible = True, stream=True ).order_by('cam_nr')

        response = render( request, 'stream.html', args )
        response.set_cookie( key='page_loc', value='/video/stream/', path='/' )

       # check uuid cookie
        c_value = uuid.uuid4()
        if 'video_live' in request.COOKIES:
            c_value = request.COOKIES.get('video_live')
            response.set_cookie( key='video_live', value=c_value, max_age=900 )

       # new "Live_Video" session detected: creation DB entry
        else:
            Live_video.objects.create( user = args['username'], mobile = args['mobile_browser'], tablet=args['tablet_browser'], device=args['device'], cookie_uuid=c_value )

        response.set_cookie( key='video_live', value=c_value, max_age=900 )
        return response

# ACCESS DENIED -->
    else:
        return redirect( 'access_denied' )
コード例 #4
0
def home(request):
    args = create_args(request)
    args['title'] = 'Svabwilla'

    response = render(request, 'home.html', args)
    response.set_cookie( key='page_loc', value='/', path='/' )
    return response
コード例 #5
0
def smhouse_termo_update(request, slug=""):
    args = create_args(request)
    # RESTRICT ACCESS
    if args['username'].get_username() == '':  # NO USER
        return HttpResponse('fail')
    else:
        termo_access = User_data.objects.get(
            user_user=args['username']).sm_termo
    if termo_access != True:
        return HttpResponse('fail')

# ACCESS GRANTED
    a = Location.objects.get(slug=slug)

    # Draw Termo day
    import threading
    d1 = threading.Thread(target=draw_termo,
                          args=(a.slug, 24, 24, "%H", 1, "day", True),
                          daemon=True)
    d1.start()
    d2 = threading.Thread(target=draw_termo,
                          args=(a.slug, 24, 24, "%H", 1, "day", False),
                          daemon=True)
    d2.start()
    d3 = threading.Thread(target=draw_termo,
                          args=(a.slug, 24, 24, "%H", 1, "day", None),
                          daemon=True)
    d3.start()

    return HttpResponse('done')
コード例 #6
0
ファイル: views.py プロジェクト: svabis/servax
def plot(request):
    args = create_args(request)
    args['title'] = 'Kartes plotteris | Svabwilla'
    args['heading'] = 'Kartes ploteris'

    args['data'] = MapPlot.objects.filter(deleted=False)

    args['form'] = MapPlotForm

    if request.POST:  # actions if login Form is submitted
        form = MapPlotForm(request.POST)
        if form.is_valid():
            form.save()

            # !!!!!!!!!!!!!!!!!!!!!!!
            # !!!!! Validate ID !!!!!
            # !!!!!!!!!!!!!!!!!!!!!!!

            # Set return to added Point
            c = request.POST['zoom']
            response = redirect('/mapplot/plot/')
            response.set_cookie(key='view', value=c, path='/', max_age=5)
            #            response.set_cookie( key='city', value=request.POST['city'], path='/') #, max_age=5 )
            return response

        else:
            # !!!!! TE IF IR ERRORS FORMAI
            pass

    response = render(request, 'plot.html', args)
    response.set_cookie(key='page_loc', value='/plot/', path='/')
    return response
コード例 #7
0
def archive_main(request):
    args = create_args(request)
    args['heading'] = "Video Arhīvs"
    args['title'] = 'Video arhīvs | Svabwilla'

# RESTRICT ACCESS
    if args['username'].get_username() == '': # NO USER
        return redirect('access_denied')
    else:
        video_archive = User_data.objects.get(user_user = args['username']).video_archive
    if video_archive != True:
        return redirect('access_denied')
    else:
# ACCESS ALOWED
#        d = datetime.now().replace(day=1).date()
        d = ( datetime.now().replace(day=1) - timedelta(120) ).date()
#        args['data'] = Video.objects.filter( video_date__startswith = d )
#        args['data'] = Video.objects.filter( video_date__year = '2017', video_date__month = '05' )
        args['data'] = Video.objects.filter( video_date__range = [ d, datetime.now().date() ] )
#        args['data'] = Video.objects.all().order_by("-video_date")

        args['comments'] = VideoDayComment.objects.filter( date__range = [ d, datetime.now().date() ] )

        args['today'] = datetime.now()

        args['cam'] = Camera.objects.all()

    response = render( request, 'archive.html', args )
    response.set_cookie( key='page_loc', value='/video/archive/', path='/' )
    return response
コード例 #8
0
def r_web(request):
    args = create_args(request)
    args['title'] = 'Simple Video WEB | Svabwilla'

    response = render(request, 'rudis_cam.html', args)
    response.set_cookie( key='page_loc', value='/r_web/', path='/' )
    return response
コード例 #9
0
ファイル: idea_add.py プロジェクト: svabis/servax
def add_tema(request):
    args = create_args(request)
    if args['username'].get_username() == '': # NO USER
        return redirect('access_denied')
    else:
        idea_access = User_data.objects.get(user_user = args['username']).idea
    if idea_access != True:
      # ACCESS DENIED
        return redirect('access_denied')

    try:
        idea_add = User_data.objects.get(user_user = args['username']).idea_add
    except:
        idea_add = False

    args['super'] = SuperTheme.objects.all().order_by('order')
    args['user'] = auth.get_user(request)

    if request.POST and idea_add:
        form = ThemeForm( request.POST )

        location = str(request.COOKIES.get('page_loc')).split('/')

        if form.is_valid():
           # RETRIEVE ALL SLUG
            st = list(SuperTheme.objects.values_list('slug', flat=True))
            ts = list(Theme.objects.values_list('slug', flat=True))
            slugs = st + ts

            new_tema = form.save( commit=False )
            new_tema.relate_to_super = SuperTheme.objects.get( slug = location[2] )

            new_tema.created_by = auth.get_user(request)
#            new_tema.save()

           # Create Tema slug from title
            slug = form.cleaned_data.get('title').replace("/", "")
            slug = unicodedata.normalize('NFKD', slug).encode('ascii','ignore')

            while slug in slugs:
                slug = slug + random.choice(string.ascii_letters)
            new_tema.slug = slug

            try:
                if len(location[3]) != 0:
                    new_tema.parent = Theme.objects.get( slug = location[3] )
            except:
                new_tema.parent = None

            new_tema.save()

       # REDIRECT TO PAGE OF ORIGIN
        if str('page_loc') in request.COOKIES:
            response = redirect( str(request.COOKIES.get('page_loc')) )
        else:
            response = redirect( '/idea/' )
        return response

    return redirect('/idea/')
コード例 #10
0
def weather(request):
    args = create_args(request)
    args['title'] = 'Laika prognoze | Svabwilla'
    args['heading'] = 'Laika prognoze'

    response = render(request, 'weather.html', args)
    response.set_cookie( key='page_loc', value='/weather/', path='/' )
    return response
コード例 #11
0
def location(request):
    args = create_args(request)
    args['title'] = 'Atrašanās vieta | Svabwilla'
    args['heading'] = 'Atrašanās vieta'

    response = render(request, 'map.html', args)
    response.set_cookie( key='page_loc', value='/location/', path='/' )
    return response
コード例 #12
0
def super(request, s_id, pageid=1):
    args = create_args(request)
    if args['username'].get_username() == '': # NO USER
        return redirect('access_denied')
    else:
        idea_access = User_data.objects.get(user_user = args['username']).idea
    if idea_access != True:
      # ACCESS DENIED
        return redirect('access_denied')

    try:
        args['idea_add'] = User_data.objects.get(user_user = args['username']).idea_add
    except:
        pass

    try:
        s = SuperTheme.objects.get(slug=str(s_id))
    except:
        return redirect('/idea/')

    args['super'] = SuperTheme.objects.all().order_by('order')
    args['user'] = auth.get_user(request)

    args['title'] = u'Ideju Lāde | ' + s.title
    args['heading'] = u'Ideju Lāde'
    args['active_tab'] = s.slug

    args['disable_back'] = True

    rez_obj = Theme.objects.filter( relate_to_super = s, parent = None ).order_by('comment', '-last_entry')

    results_per_page = 3

    if int(pageid) < 1: # negative page number --> 404
        return redirect ('/idea/')

    pagecount = int(math.ceil( int(rez_obj.count()) / float( results_per_page ))) # integer identical to range by count

    if int(pageid) > pagecount: # pageid exceeds pagecount --> 404
        return redirect ('/idea/')

    start_obj = int(pageid) * results_per_page - results_per_page # start from image NR
    end_obj = int(pageid) * results_per_page # end with image NR
    if end_obj > rez_obj.count(): # if end NR exceeds limit set it to end NR
        end_obj = rez_obj.count()

    args['paginator'] = Paginator( pagecount, pageid, 10 )
    args['temas'] = rez_obj[start_obj:end_obj]

    args['add_tema'] = True
    args['form'] = ThemeForm

    response = render(request, 'theme.html', args)
    response.set_cookie( key='page_loc', value='/idea/' + str(s_id) + '/' )
    return response
コード例 #13
0
ファイル: views.py プロジェクト: svabis/servax
def plot_search(request):
    args = create_args(request)
    try:
        s = request.POST['search']
        edit = MapPlot.objects.filter(mark=s)[0]
        response = redirect('/mapplot/plot/' + str(edit.id) + '/')
        return response

    except:
        response = redirect('/mapplot/plot/')
        return response
コード例 #14
0
ファイル: idea_del.py プロジェクト: svabis/servax
def del_post(request, p_id):
    try:
        p = Post.objects.get( id=p_id )
    except:
        return redirect ('/idea/')

    args = create_args(request)

    if p.user == args['username']:
       # get parent Theme
        t = Theme.objects.get(id = p.relate_to.id)
       # delete post
        p.delete()
        last = Theme.objects.all().order_by("last_entry")[0].last_entry

       # update Theme entry count in cascade up to parent...parent e.t.c.
        while t.parent != None:
            t.entry_count -= 1
            t.save()

           # new last entry
#            if True:
            try:
                parent = Theme.objects.get( id = t.relate_to.id )
                t.last_entry = parent.objects.all().order_by("last_entry")[0].last_entry
                t.save()
            except:
                pass

            t = t.parent

        if t.parent == None:
            t.entry_count -= 1
            t.save()

           # new last entry
#            if True:
            try:
                parent = Theme.objects.get( id = t.relate_to.id )
                t.last_entry = parent.objects.all().order_by("last_entry")[0].last_entry
                t.save()
            except:
                pass

    if 'page_loc' in request.COOKIES:
        ret_loc = str(request.COOKIES.get('page_loc'))
    else:
        ret_loc = '/idea/'

    response = redirect( ret_loc )
    return response
コード例 #15
0
ファイル: views.py プロジェクト: svabis/servax
def plot_del(request, d_id):
    args = create_args(request)
    #    args['title'] = 'Kartes plotteris | Svabwilla'

    plot = MapPlot.objects.get(id=d_id)
    plot.deleted = True
    plot.save()

    # Set return to added Point
    c = plot.lat + ":" + plot.lon + ":" + "18"
    response = redirect('/mapplot/plot/')
    response.set_cookie(key='view', value=c, path='/', max_age=5)
    #            response.set_cookie( key='city', value=request.POST['city'], path='/') #, max_age=5 )
    return response
コード例 #16
0
ファイル: views.py プロジェクト: svabis/servax
def change_password(request):
    args = create_args(request)
    if request.method == 'POST':
        form = PasswordChangeForm(request.user, request.POST)
        if form.is_valid():
            user = form.save()
            update_session_auth_hash(request, user)  # Important!
            messages.success(request,
                             'Your password was successfully updated!')
            return redirect('change_password')
        else:
            messages.error(request, 'Please correct the error below.')
    else:
        form = PasswordChangeForm(request.user)

    args['form'] = form
    return render(request, 'change_password.html', args)
コード例 #17
0
def smhouse_led(request):
    args = create_args(request)
    args['heading'] = "Apgaismojums"
    args['title'] = 'Gudrā Māja | Svabwilla'

    # RESTRICT ACCESS
    if args['username'].get_username() == '':  # NO USER
        return redirect('access_denied')
    else:
        elektr_access = User_data.objects.get(
            user_user=args['username']).sm_led
    if elektr_access != True:
        return redirect('access_denied')

# ACCESS GRANTED
    response = render(request, 'led.html', args)
    response.set_cookie(key='page_loc', value='/sm_house/led/', path='/')
    return response
コード例 #18
0
ファイル: views.py プロジェクト: svabis/servax
def galery_default(request):
    args = create_args(request)
    args['heading'] = "Galerija"
    args['title'] = "Galerija | Svabwilla"

   # enable zoom on mobile device
    args["mobile_zoom"] = True

   # IF USER
    if args['username'].get_username() != '':
        galery = User_data.objects.get(user_user = args['username']).galery
        if galery:
           # ACCESS ALL ALOWED
            args['images'] = Galery.objects.all().order_by('-galery_date')
        else:
           # ACCESS PUBLIC IMAGES ONLY
            args['images'] = Galery.objects.filter( galery_public = True ).order_by('-galery_date')

  # nav username
    else:
       # ACCESS PUBLIC IMAGES ONLY
        args['images'] = Galery.objects.filter( galery_public = True ).order_by('-galery_date')

    try:
        args['u_galery_add'] = User_data.objects.get(user_user = args['username']).galery_add
       # Add_image form to template
        if args['u_galery_add']:
            args['form'] = GaleryAddForm
    except:
        args['u_galery_add'] = False

   # Create Tag list
    tags = []
    for g in args['images']:
        tags += g.galery_tags.split(",")
    temp = filter( None, list(set( tags )) )
    tags = []
    for t in temp:
         tags.append( [ slugify(t), t ] )
    args['tag_list'] = tags

    return args
コード例 #19
0
def ai(request):
    args = create_args(request)

   # LIMIT ACCES TO GROUP MEMBERS
    if not args['username'].groups.filter(name="misc").exists():
        return redirect("/")

    args['title'] = 'Viss ir slikti | Svabwilla'
    args['heading'] = 'Viss ir slikti'

    import threading
    from main.life_v3 import main_life
    life = threading.Thread(target=main_life, args=(), daemon=True)
#    life = threading.Thread(target='/home/alex/skripti/LIFE/life_v2.py', args=(), daemon=True)
    life.daemon = True
    life.start()


    response = render(request, 'ai.html', args)
    response.set_cookie( key='page_loc', value='/ai/', path='/' )
    return response
コード例 #20
0
def led_control(request):
    args = create_args(request)
    # RESTRICT ACCESS
    if args['username'].get_username() == '':  # NO USER
        return HttpResponse('fail')
    else:
        elektr_access = User_data.objects.get(
            user_user=args['username']).sm_led
    if elektr_access != True:
        return HttpResponse('fail')

    resp = '{"RGB":[0, 0, 0]}'

    if request.POST:
        # proces JSON data
        jdata = request.POST['data']

        # RaspbberyPi socket data
        HOST = '172.16.5.90'
        PORT = 65432

        try:
            #        if True:
            s = socket.socket()
            s.connect((HOST, PORT))
            s.send(bytes(jdata, 'utf-8'))
            data = s.recv(1024)

            j = json.loads(data)
            r = int((j["RGB"][0] * j["B"]) / 255)
            g = int((j["RGB"][1] * j["B"]) / 255)
            b = int((j["RGB"][2] * j["B"]) / 255)
            resp = '{"RGB":[' + str(r) + ', ' + str(g) + ', ' + str(
                b) + '], "B":' + str(j["B"]) + ', "S":' + str(j["S"]) + '}'
        except:
            #            resp = '{"ERROR":}'
            pass

    return HttpResponse(resp)
コード例 #21
0
ファイル: views.py プロジェクト: svabis/servax
def login(request):
    args = create_args(request)  # create new argument list
    #    args.update(csrf(request))      # encript data
    args['heading'] = "Autorizēšanās"

    if request.POST:  # actions if login Form is submitted
        username = request.POST.get(
            'username', ''
        )  # usermname <= get variable from Form (name="username"), if not leave blank
        password = request.POST.get(
            'password', ''
        )  # password <= get variable from Form (name="password"), if not leave blank
        user = auth.authenticate(
            username=username,
            password=password)  # new variable --> user from auth system

        if user is not None:  # auth return None if this user does not exit, if not then:
            if user.is_active == False:  # User is disabled in Django Admin -->
                args['login_error'] = "Lietotājs uz doto momentu ir bloķēts"
                return render(request, 'login.html', args)

            auth.login(request, user)  # authorizate user from Form
            if 'page_loc' in request.COOKIES:
                ret_loc = str(request.COOKIES.get('page_loc'))
            else:
                ret_loc = '/'
            rd = redirect(ret_loc)
            rd.set_cookie(
                'ret', 'True',
                max_age=10)  # 10 second Cookie for not changing sort order
            return rd

        else:  # if user does not exist:
            args['login_error'] = "Lietotājs nav atrasts"
            return render(request, 'login.html', args)

    else:  # actions if activated hyperlink to login Form
        return render(request, 'login.html', args)
コード例 #22
0
def smhouse_electro_input_data(request):
    args = create_args(request)
    if request.POST:  # actions if login Form is submitted
        # get last data
        last = ElConsumption.objects.all().order_by('-date')[0]

        #        if True:
        try:
            obj_date = request.POST.get('date', '')
            date = datetime.strptime(obj_date, '%Y/%m/%d')

            obj_value = request.POST.get('read', '')
            value = int(obj_value)

            # !!!!!!!!!!!!!!!!!!!!!!
            # !!!!! VALIDATION !!!!!
            # !!!!!!!!!!!!!!!!!!!!!!

            new_data = ElConsumption(date=date, read=value)
            # calculate fields
            temp_cons = value - last.read
            temp_days = (date.date() - last.date).days
            if temp_days == 0:
                temp_days = 1
            temp_cons_days = float(temp_cons / temp_days)

            # fill fields
            new_data.cons = temp_cons
            new_data.days = temp_days
            new_data.cons_days = temp_cons_days

            new_data.save()
            return redirect('electro_main')
        except:
            pass

    return redirect('electro_main')
コード例 #23
0
def leave_video(request):
    args = create_args(request)

   # check uuid cookie
    c_value = uuid.uuid4()
    if 'video_live' in request.COOKIES:
        c_value = request.COOKIES.get('video_live')
        try:
           temp = Live_video.objects.get( user = args['username'], cookie_uuid=c_value )
           temp.leave = timezone.now()
          # calculate time elapsed watching
           t = temp.leave - temp.visit
           visit_time = (datetime.min + t).time()
           temp.time = visit_time
           temp.save()
        except:
           pass

        response = HttpResponse('ok')
        response.set_cookie( key='page_loc', value='/video/live/', path='/' )
        response.set_cookie( key='video_live', value=c_value, max_age=900 ) #datetime.now() + timedelta(minutes=10) )
        return response

    return HttpResponse('done')
コード例 #24
0
ファイル: jobs_add.py プロジェクト: svabis/servax
def default(request):
    args = create_args(request)
    args['title'] = 'Darbu saraksts | Svabwilla'
    args['heading'] = "Darbu saraksts"
    return args
コード例 #25
0
def temas(request, s_id, t_id, pageid=1):
    try:
        t = Theme.objects.get(slug=str(t_id))
    except:
        return redirect('/idea/')

    args = create_args(request)
    if args['username'].get_username() == '':  # NO USER
        return redirect('access_denied')
    else:
        idea_access = User_data.objects.get(user_user=args['username']).idea
    if idea_access != True:
        # ACCESS DENIED
        return redirect('access_denied')

    try:
        args['idea_add'] = User_data.objects.get(
            user_user=args['username']).idea_add
    except:
        pass

    args['super'] = SuperTheme.objects.all().order_by('order')
    args['user'] = auth.get_user(request)

    args[
        'title'] = u'Ideju Lāde | ' + t.relate_to_super.title + " | " + t.title
    args['heading'] = u'Ideju Lāde'
    args['active_tab'] = t.relate_to_super.slug

    args['parent'] = t.parent
    args['s_id'] = str(s_id)

    # IF TEMA COMMENT IS DISABLED
    if t.comment == False:
        temas = Theme.objects.filter(parent=t).order_by(
            'comment', '-last_entry')

        args['temas'] = temas
        args['add_tema'] = True

        args['form'] = ThemeForm

        response = render(request, 'theme.html', args)
        response.set_cookie(key='page_loc',
                            value='/idea/' + str(s_id) + '/' + str(t_id) +
                            '/' + str(pageid) + '/')
        return response

    args['tema_nr'] = t.id
    args['tema_slug'] = t.slug
    args['tema_title'] = t.title

    results_per_page = 50

    rez_obj = Post.objects.filter(relate_to=t).order_by('date')

    if int(pageid) < 1:  # negative page number --> 404
        return redirect('/')

    pagecount = int(math.ceil(
        int(rez_obj.count()) /
        float(results_per_page)))  # integer identical to range by count

    if int(pageid) > pagecount and int(
            pageid) > 1:  # pageid exceeds pagecount --> 404
        return redirect('/')

    start_obj = int(
        pageid) * results_per_page - results_per_page  # start from image NR
    end_obj = int(pageid) * results_per_page  # end with image NR
    if end_obj > rez_obj.count():  # if end NR exceeds limit set it to end NR
        end_obj = rez_obj.count()

    args['paginator'] = Paginator(pagecount, pageid, 10)
    args['diskusija'] = rez_obj[start_obj:end_obj]

    args['form'] = PostForm

    if request.POST:
        form = PostForm(request.POST, request.FILES)

        # save Post object
        if form.is_valid():
            new_coment = form.save(commit=False)
            new_coment.relate_to = t
            new_coment.user = args['user']
            new_coment.save()

            # Save images
            #            for img in request.FILES.getlist('file'):
            for img in request.FILES.getlist('image'):
                PostImage.objects.create(post=new_coment, image=img)

            while t.parent != None:
                try:
                    t.parent.last_entry = new_coment.date
                    t.parent.save()
                except:
                    pass
                t.last_entry = new_coment.date
                t.entry_count += 1
                t.save()
                t = t.parent

            if t.parent == None:
                t.last_entry = new_coment.date
                t.entry_count += 1
                t.save()

            response = redirect('/idea/' + str(s_id) + '/' + str(t_id) +
                                '/#new_comment')
            response.set_cookie(key='page_loc',
                                value='/idea/' + str(s_id) + '/' + str(t_id) +
                                '/#new_comment')
            return response
    else:
        args['form'] = PostForm

    response = render(request, 'discussions.html', args)
    response.set_cookie(key='page_loc',
                        value='/idea/' + str(s_id) + '/' + str(t_id) + '/' +
                        str(pageid) + '/')
    return response
コード例 #26
0
def stats(request):
    args = create_args(request)
    args['title'] = 'Statistika | Svabwilla'
    args['heading'] = 'Statistika'

   # DISK USAGE
    import os
    head = os.popen("df -h | grep Filesystem").read().rstrip().split(" ")[:-1]
    while '' in head:
      head.remove('')
    args['df_head'] = head

    rez = []
    temp = os.popen("df -h | grep /dev/sd").read().split("\n")
    for t in temp:
        if t != "":
            rez.append( t.split(" ") )

    rez.append( os.popen("df -h | grep /var/www/").read().replace("\n","").split(" ") )
    rez.append( os.popen("df -h | grep /home/").read().replace("\n","").split(" ") )
    for r in rez:
      while '' in r:
        r.remove('')
    args['df'] = rez

   # "Live video" ACTIVITY
    from datetime import datetime, timedelta
#    import pytz
#    tz = pytz.timezone('UTC')
   # now
    start = datetime.now()
   # 24h
    end = (start - timedelta(hours=24))
   # 7days
    week_end = (start - timedelta(days=7))

    video_stat = Live_video.objects.filter(leave__range=[week_end, start]).order_by('-leave')
    vid = []

   # days in different colors
    temp_day = dst(video_stat[0].leave).day
    day = 0
    for v in video_stat:
       # set day color
        if dst(v.leave).day != temp_day:
            day = 1 if day == 0 else 0
            temp_day = dst(v.leave).day

       # set 24h/7day
        if end <= dst(v.leave).replace(tzinfo=None) <= start:
            vid.append([0, day, v])
        else:
            vid.append([1, day, v])

    args['video'] = vid

   # Cam_online
    args['cameras'] = Camera.objects.all().order_by('cam_nr')

    temp = Camera_online.objects.all().order_by('-date')[:5]
    args['cam_online'] = temp

    response = render(request, 'stat.html', args)
    response.set_cookie( key='page_loc', value='/stats/', path='/' )
    return response
コード例 #27
0
def denied(request):
    args = create_args(request)
    response = render(request, 'denied.html', args)
    response.set_cookie( key='page_location', value='/denied/' )
    return response
コード例 #28
0
def default(request):
    args = create_args(request)
    args['title'] = "Lietu parametri | Svabwilla"
    args['heading'] = "Lietu parametri"
    return args
コード例 #29
0
def smhouse_termo(request, slug=""):
    args = create_args(request)
    args['heading'] = "Temperatūras"
    args['title'] = 'Gudrā Māja | Svabwilla'

    # enable zoom on mobile device
    args["mobile_zoom"] = True

    # RESTRICT ACCESS
    if args['username'].get_username() == '':  # NO USER
        return redirect('access_denied')
    else:
        termo_access = User_data.objects.get(
            user_user=args['username']).sm_termo
    if termo_access != True:
        return redirect('access_denied')

# ACCESS GRANTED

# Date ranges
    args['termo_day'] = [datetime.now() - timedelta(hours=24), datetime.now()]
    args['termo_week'] = [datetime.now() - timedelta(days=7), datetime.now()]
    args['termo_month'] = [datetime.now() - timedelta(days=30), datetime.now()]
    args['termo_year'] = [datetime.now() - timedelta(days=365), datetime.now()]

    if datetime.now().hour > 12:
        args['hours'] = "12:00"
    else:
        args['hours'] = "00:00"

# Get Termo Adress for tabs
    adress = Location.objects.all().order_by('order')
    args['adress'] = adress

    # set variable slug
    if slug == "":
        if User_data.objects.get(
                user_user=args['username']).location is not None:
            slug = User_data.objects.get(
                user_user=args['username']).location.slug
        else:
            slug = adress[0].slug

    a = Location.objects.get(slug=slug)
    args['slug'] = slug

    args['data'] = TermoPlace.objects.filter(where=a).order_by('order')

    # TermoPlaces
    args['data_ambient'] = TermoPlace.objects.filter(where=a, ambient=True)
    args['data_data'] = TermoPlace.objects.filter(where=a, ambient=False)
    args['data_humy'] = TermoPlace.objects.filter(where=a)

    # Draw Termo day
    import threading
    d1 = threading.Thread(target=draw_termo,
                          args=(a.slug, 24, 24, "%H", 1, "day", True),
                          daemon=True)
    d1.start()
    d2 = threading.Thread(target=draw_termo,
                          args=(a.slug, 24, 24, "%H", 1, "day", False),
                          daemon=True)
    d2.start()
    d3 = threading.Thread(target=draw_termo,
                          args=(a.slug, 24, 24, "%H", 1, "day", None),
                          daemon=True)
    d3.start()

    # rand for image cache reload
    import random
    args['cache'] = "?=" + str(random.randint(20, 99))

    response = render(request, 'termo.html', args)
    response.set_cookie(key='page_loc', value='/sm_house/termo/', path='/')
    #    response.set_cookie( key='show_termo_graph', value='true', path='/', max_age=20 )
    return response