Esempio n. 1
0
def feedback(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/')
    id = request.session['id']
    geo_ip = '7b9395a73758350d433f400a27280e69'

    if request.method == 'POST':
        feedbackForm = forms.SendFeedback(request.POST)
        if feedbackForm.is_valid():
            feedback = feedbackForm.save(commit=False)
            feedback.user_id = id
            feedback.save()

            user = DefaultUser.objects.get(id=id)
            user.decrypt()

            client_ip = str(request.META['REMOTE_ADDR'])

            geo_url = 'http://api.ipstack.com/' + client_ip + '?access_key=' + geo_ip

            with urllib.request.urlopen(geo_url) as url:
                geo_info = json.loads(str(url.read(), 'utf-8'))

            telegram_msg = 'Sender: ' + user.name + ' ' + user.surname + ' ' + user.patronymic + '\nTitle: ' + feedback.title + \
                           '\nMessage: ' + feedback.text + '\nMail: ' + user.mail + '\nuser IP: ' + client_ip + \
                           '\nCity: ' + geo_info['country_name'] + ' ' + geo_info['city']
            SendTelegram(token=GkuSettings.FEEDBACK_TELEGRAM_BOT_KEY, chat_id=GkuSettings.FEEDBACK_TELEGRAM_CHAT_ID, text=telegram_msg)

            return render(request, 'OK/index.html', {'title': 'Спасибо!', 'msg': 'Ваш запрос отправлен на рассмотрение!', 'link': 'account'})
    return HttpResponseRedirect('/account')
Esempio n. 2
0
def addElectricityVal(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/')
    id = request.session['id']

    if request.method == 'POST':
        elecOK = False
        addElecValForm = forms.AddElecticityMeter(request.POST)
        if addElecValForm.is_valid():
            meters = addElecValForm.save(commit=False)
            meters.user_id = id
            meters.date = datetime.date(year=int(request.POST['year']),
                                        month=int(request.POST['month']),
                                        day=1)
            print(meters.date)

            if ElectricityMeters.objects.filter(user_id=id).filter(
                    date=meters.date).exists():
                ElectricityMeters.objects.filter(user_id=id).filter(
                    date=meters.date).update(valueDay=meters.valueDay)
                ElectricityMeters.objects.filter(user_id=id).filter(
                    date=meters.date).update(valueNight=meters.valueNight)
            else:
                meters.save()

        elecOK = True
        feedbackForm = forms.SendFeedback()
        addWaterForm = forms.AddWaterMeter()

        if not DefaultUser.objects.filter(id=id).exists():
            return HttpResponseRedirect('/logout')

        user = DefaultUser.objects.get(id=id)
        user.decrypt()

        extUser = ExtUser()
        if ExtUser.objects.filter(user_id=id).exists():
            extUser = ExtUser.objects.get(user_id=id)

        return render(
            request, 'UploadData/index.html', {
                'user': user,
                'extUser': extUser,
                'feedbackForm': feedbackForm,
                'addWaterForm': addWaterForm,
                'addElectForm': addElecValForm,
                'elecOK': elecOK
            })
    return HttpResponseRedirect('/account')
Esempio n. 3
0
def changeMode(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/')
    id = request.session['id']

    if not DefaultUser.objects.filter(id=id).exists():
        return HttpResponseRedirect('/logout')

    user = DefaultUser.objects.get(id=id)
    user.decrypt()

    extUser = ExtUser()
    if ExtUser.objects.filter(user_id=id).exists():
        extUser = ExtUser.objects.get(user_id=id)

    feedbackForm = forms.SendFeedback()
    return render(request, 'Mode/index.html', {'user': user, 'extUser': extUser, 'feedbackForm': feedbackForm})
Esempio n. 4
0
def uploadData(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/')
    id = request.session['id']

    if not DefaultUser.objects.filter(id=id).exists():
        return HttpResponseRedirect('/logout')

    user = DefaultUser.objects.get(id=id)
    user.decrypt()

    extUser = ExtUser()
    if ExtUser.objects.filter(user_id=id).exists():
        extUser = ExtUser.objects.get(user_id=id)

    feedbackForm = forms.SendFeedback()
    addWaterForm = forms.AddWaterMeter()
    addElectForm = forms.AddElecticityMeter()
    return render(request, 'UploadData/index.html', {'user': user, 'extUser': extUser, 'feedbackForm': feedbackForm,
                                                     'addWaterForm': addWaterForm, 'addElectForm': addElectForm})
Esempio n. 5
0
def water(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/')
    id = request.session['id']

    if not DefaultUser.objects.filter(id=id).exists():
        return HttpResponseRedirect('/logout')

    user = DefaultUser.objects.get(id=id)
    user.decrypt()

    extUser = ExtUser()
    if ExtUser.objects.filter(user_id=id).exists():
        extUser = ExtUser.objects.get(user_id=id)

    feedbackForm = forms.SendFeedback()
    meters = WaterMeters.objects.filter(user_id=id)

    for meter in meters:
        meter.date = '{:%Y-%m}'.format(meter.date)

    return render(request, 'Water/index.html', {'user': user, 'extUser': extUser, 'feedbackForm': feedbackForm, 'meters': meters})
Esempio n. 6
0
def settings(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/')
    id = request.session['id']

    if not DefaultUser.objects.filter(id=id).exists():
        return HttpResponseRedirect('/logout')

    user = DefaultUser.objects.get(id=id)
    user.decrypt()

    extUser = ExtUser()
    if ExtUser.objects.filter(user_id=id).exists():
        extUser = ExtUser.objects.get(user_id=id)

    defaultUserInfoForm = forms.ChangeUserInfo()
    extUserInfoForm = forms.ChangeExtUserInfo()
    changePassForm = forms.ChangePassword()
    changeMailForm = forms.ChangeMail()
    feedbackForm = forms.SendFeedback()
    return render(request, 'AccountSettings/index.html', {'defUserInfo': defaultUserInfoForm, 'extUserInfo': extUserInfoForm,
                                                          'changePass': changePassForm, 'changeMail': changeMailForm,
                                                           'user': user, 'extUser': extUser, 'feedbackForm': feedbackForm})
Esempio n. 7
0
def index(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/')
    id = request.session['id']

    if not DefaultUser.objects.filter(id=id).exists():
        return HttpResponseRedirect('/logout')

    user = DefaultUser.objects.get(id=id)
    user.decrypt()

    extUser = ExtUser()
    if ExtUser.objects.filter(user_id=id).exists():
        extUser = ExtUser.objects.get(user_id=id)

    coords = {'l': 0, 'p': 0}
    # if extUser.adress != '':
    #     resp = yandexAPI.getCoord(extUser.adress).split(' ')
    #     coords['l'] = resp[0]
    #     coords['p'] = resp[1]

    feedbackForm = forms.SendFeedback()
    return render(request, 'FrontPage/index.html', {'user': user, 'extUser': extUser, 'feedbackForm': feedbackForm, 'coords': coords})
Esempio n. 8
0
def getPredictionsElectricity(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/logout')
    id = request.session['id']

    if not DefaultUser.objects.filter(id=id).exists():
        return HttpResponseRedirect('/logout')

    user = DefaultUser.objects.get(id=id)
    user.decrypt()

    extUser = ExtUser()
    if ExtUser.objects.filter(user_id=id).exists():
        extUser = ExtUser.objects.get(user_id=id)

    feedbackForm = forms.SendFeedback()

    predict = ElectricityPredictions.objects.get(user_id=id)
    night = predict.night / 10
    top = predict.day / 10

    meters = ElectricityMeters.objects.filter(user_id=id)

    for meter in meters:
        meter.date = '{:%Y-%m}'.format(meter.date)

    return render(
        request, 'PredictElectricity/index.html', {
            'user': user,
            'extUser': extUser,
            'feedbackForm': feedbackForm,
            'predictions': {
                'night': night,
                'top': top
            },
            'meters': meters
        })
Esempio n. 9
0
def getPredictionsWater(request):
    if 'id' not in request.session:
        return HttpResponseRedirect('/logout')
    id = request.session['id']

    if not DefaultUser.objects.filter(id=id).exists():
        return HttpResponseRedirect('/logout')

    user = DefaultUser.objects.get(id=id)
    user.decrypt()

    extUser = ExtUser()
    if ExtUser.objects.filter(user_id=id).exists():
        extUser = ExtUser.objects.get(user_id=id)

    feedbackForm = forms.SendFeedback()

    predict = WaterPredictions.objects.get(user_id=id)
    coldWater = predict.cold / 10
    hotWater = predict.water / 10

    meters = WaterMeters.objects.filter(user_id=id)

    for meter in meters:
        meter.date = '{:%Y-%m}'.format(meter.date)

    return render(
        request, 'PredictWater/index.html', {
            'user': user,
            'extUser': extUser,
            'feedbackForm': feedbackForm,
            'predictions': {
                'cold': coldWater,
                'hot': hotWater
            },
            'meters': meters
        })