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
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
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' )
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
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')
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
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
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
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/')
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
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
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
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
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
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
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)
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
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
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
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)
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)
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')
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')
def default(request): args = create_args(request) args['title'] = 'Darbu saraksts | Svabwilla' args['heading'] = "Darbu saraksts" return args
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
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
def denied(request): args = create_args(request) response = render(request, 'denied.html', args) response.set_cookie( key='page_location', value='/denied/' ) return response
def default(request): args = create_args(request) args['title'] = "Lietu parametri | Svabwilla" args['heading'] = "Lietu parametri" return args
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