def invite_user_to_house(request): if request.user.is_authenticated and request.method == 'POST': token = secrets.token_urlsafe(32) password = secrets.token_urlsafe(8) house_id = sql.get_default_house(request.user.id)[0] user = User.objects.create_user( username=request.POST['email'], email=request.POST['email'], password=password, first_name="Name", last_name="Surname", is_active=0, ) user.save() is_admin = request.POST.get('admin', "false") print(is_admin) if is_admin == "on": is_admin = 1 else: is_admin = 0 sql.create_user_has_house(user.id, house_id, is_admin) sql.set_default_house(user.id, house_id) sql.save_token(user.id, token) text = 'Hello there,\n You were added to the house! Please click the link to continue registration \n' + DOMAIN_NAME + "dashboard/" + str( user.id) + "/confirm/" + token + '\nYour login is your current email and password is: ' + password send_email(user.email, text) return redirect('/dashboard/users')
def update_dashboard(request): if request.is_ajax() and request.user.is_authenticated: house_id = sql.get_default_house(request.user.id) response = {"valves": sql.get_house_valves_update(house_id), "sensors": sql.get_house_sensors(house_id)} return JsonResponse(response) else: raise Http404
def disable_user_invitation(request): if request.user.is_authenticated and request.is_ajax(): house_id = sql.get_default_house(request.user.id) sql.delete_user_invitation_token(house_id) response = {"token": 0} return JsonResponse(response) else: raise Http404
def delete_user(request): if request.user.is_authenticated and request.method == 'POST': # try: user_id = request.POST['id'] house_id = sql.get_default_house(request.user.id) sql.delete_user(user_id, house_id) user = User.objects.get(id=user_id) user.delete() return redirect('/dashboard/users')
def telegram_delete_user(request): if request.user.is_authenticated and request.method == 'POST': try: username = request.POST['username'] house_id = sql.get_default_house(request.user.id) sql.delete_telegram(username, house_id) return redirect('/dashboard/telegram_notification/') except Exception as ex: return redirect('/dashboard/telegram_notification/', exception=ex)
def valves_view(request): if request.user.is_authenticated: house_id = sql.get_default_house(request.user.id) user_id = request.user.id return render(request, "dashboard/valve.html", {"locations": sql.get_locations(), "valves": sql.get_house_valves_all(house_id), 'user': request.user.first_name + " " + request.user.last_name, 'preferences': sql.check_user_preferences(user_id)})
def telegram_notifications_view(request): if request.user.is_authenticated: house_id = sql.get_default_house(request.user.id) user_id = request.user.id return render(request, "dashboard/telegram_notification.html", {"users": sql.get_house_users(house_id), "telegram": sql.get_telegram_users(house_id), "messenger": sql.get_messenger_users_by_house(house_id), "user": request.user.first_name + " " + request.user.last_name, 'preferences': sql.check_user_preferences(user_id)})
def enable_user_invitation(request): if request.user.is_authenticated and request.is_ajax(): token = secrets.token_urlsafe(32) house_id = sql.get_default_house(request.user.id)[0] sql.create_user_invitation_token(house_id, token) url = DOMAIN_NAME + "dashboard/users/" + str(house_id) + "/add/" + token response = {"token": url} return JsonResponse(response) else: raise Http404
def telegram_new_user(request): if request.user.is_authenticated and request.method == 'POST': try: user_name = request.POST['username'] nickname = request.POST.get('user') if user_name[0] == "@": print(user_name) user_name = user_name[1:] sql.create_telegram(user_name, sql.get_default_house(request.user.id), nickname) return redirect('/dashboard/telegram_notification/') except Exception as ex: return redirect('/dashboard/telegram_notification/', exception=ex)
def create_new_valve(request): if request.user.is_authenticated and request.method == 'POST': try: name = request.POST['name'] location = request.POST['location'] token = secrets.token_urlsafe(4) locations_dict = {"Kitchen": 1, "Bathroom": 2, "Living room": 3, "Dining room": 4, "Bedroom": 5, "Utility room": 6, "Other": 7} sql.create_valve(locations_dict[location], name, sql.get_default_house(request.user.id), 1, token) return render(request, "dashboard/valve_instruction.html", {"token": token}) except Exception as ex: return redirect('/dashboard/', exception=ex)
def messenger_new_user(request): pass if request.user.is_authenticated and request.method == 'POST': try: url = request.POST['facebook_url'] user = request.POST.get('user') facebook_id = messenger.get_facebook_id(url) house_id = sql.get_default_house(request.user.id) sql.create_messenger_user(user, facebook_id, house_id) msg = "Hello test message!" messenger.send_message(msg, facebook_id) return redirect('/dashboard/telegram_notification/') except Exception as ex: return redirect('/dashboard/telegram_notification/', exception=ex)
def dashboard_view(request): if request.user.is_authenticated: house_id = sql.get_default_house(request.user.id) user_id = request.user.id return render(request, 'dashboard/index.html', {'valves_list': sql.get_house_valves(house_id), 'sensors_list': sql.get_house_sensors(house_id), 'locations_list': ("", "Kitchen", "Bathroom", "Living room", "Dining room", "Bedroom", "Utility room", "Other"), 'user': request.user.first_name + " " + request.user.last_name, 'preferences': sql.check_user_preferences(user_id) }) else: return redirect('/dashboard/login/')
def users_view(request): if request.user.is_authenticated: house_id = sql.get_default_house(request.user.id)[0] token = sql.get_invitation_token(house_id) user_id = request.user.id if token: url = DOMAIN_NAME + "dashboard/users/" + str(house_id) + "/add/" + token[0] print(url) else: url = None return render(request, 'dashboard/users.html', {'token': url, 'user': request.user.first_name + " " + request.user.last_name, 'users': sql.get_house_users(house_id), 'number': 0, 'preferences': sql.check_user_preferences(user_id) }) else: return render(request, 'dashboard/index.html')