示例#1
0
    def form_valid(self, form):
        counter_id = form.cleaned_data.get("counter_id", "")

        counter_val = form.cleaned_data.get("counter_val", "")

        user_id = self.request.user.pk
        db_handler = DbSyncHandler()
        contracts = db_handler._get_sql_user_contracts_by_id(
            user_id, counter_id)[0]
        origin_user = contracts["contract"].user

        if origin_user == user_id:
            counter_vals = contracts["value"]
            if counter_vals:
                if counter_vals.value_vodocanal:
                    last_val = counter_vals.value_vodocanal
                else:
                    last_val = None
            counter_id_db = contracts["contract"].contract_id
            time = datetime.datetime.now()
            if allow_update():
                result = db_handler.save_counter_value(user_id, counter_id_db,
                                                       counter_val, time,
                                                       last_val)
            else:
                result = False
            if result:
                write_log(
                    user=self.request.user.pk,
                    place="Подання Показника",
                    msg_type="Успішно",
                    message="Подано показник. Лічильник - {}, показник - {}".
                    format(counter_id_db, counter_val))
        return super().form_valid(form)
示例#2
0
 def _create_user(self, user, email):
     user_obj = User(pk=user[0],
                     first_name=user[1][0:29],
                     username=str(user[0]),
                     email=email)
     user_pass = self._generate_pass()
     # print(user_pass)
     user_obj.set_password(user_pass)
     user_obj.save()
     user_datail_obj = UsersDetailModel(user=user_obj,
                                        town="",
                                        street=user[2],
                                        house=user[3],
                                        appartment=user[4],
                                        phone="")
     user_datail_obj.save()
     try:
         print("TRY TO SEND EMAIL")
         self._send_email_reg(user_obj, user_pass)
     except BaseException as e:
         print("ERROR DURING SEND EMAIL")
         print(e)
     write_log(
         user=user_obj.pk,
         place="Реєстрація",
         msg_type="Успішно",
         message="Реєстрація користувача (пароль - {})".format(user_pass))
     return user_obj
示例#3
0
 def get(self, request, *args, **kwargs):
     if request.GET.get("logout", False):
         user_pk = request.user.pk
         logout(request)
         write_log(user=user_pk,
                   place="Вихід",
                   msg_type="Успішно",
                   message="Користувач {} вилогувався із системи".format(
                       request.user.pk))
     return super().get(request, *args, **kwargs)
示例#4
0
 def form_valid(self, form):
     user_obj = self.request.user
     new_pass = form.cleaned_data.get("new_pass", "")
     user_obj.set_password(new_pass)
     user_obj.save()
     write_log(user=user_obj.pk,
               place="Зміна Паролю",
               msg_type="Успішно",
               message="Успішно змінено пароль. Новий пароль - {}".format(
                   new_pass))
     return super().form_valid(form)
示例#5
0
 def form_valid(self, form):
     user_id = form.cleaned_data.get("user_id", "")
     password = form.cleaned_data.get("password", "")
     user = authenticate(username=user_id, password=password)
     login(self.request, user)
     write_log(user=user.pk,
               place="Вхід в систему",
               msg_type="Успішно",
               message="Користувач {} увійшов в систему".format(user.pk))
     # db_handler = DbSyncHandler()
     # db_handler.sync_user_info(user)
     return super().form_valid(form)
示例#6
0
 def clean(self):
     '''Method validates form fields'''
     form_data = self.cleaned_data
     user_id = form_data.get("user_id", "")
     password = form_data.get("password", "")
     print(user_id, password)
     user = authenticate(username=user_id, password=password)
     print(user)
     if not user:
         write_log(user=user_id,
                   place="Вхід",
                   msg_type="Невдало",
                   message="Невдала спроба Входу (введений пароль {})".format(password))
         self._errors["user_id"] =\
             ['Номер контракту, або пароль введено неправильно']
     return form_data
示例#7
0
    def clean(self):
        '''Method validates form fields'''
        form_data = self.cleaned_data
        counter_pk = form_data.get("counter_id")
        user_id = self.user_id
        db_handler = DbSyncHandler()
        contracts_list = db_handler._get_sql_user_contracts_by_id(user_id, counter_pk)
        if contracts_list:
            contracts = contracts_list[0]
            origin_user = contracts["contract"].user

            if origin_user==user_id:
                counter_vals = contracts["value"]
                if counter_vals:
                    if counter_vals.value_vodocanal:
                        last_val = counter_vals.value_vodocanal
                    else:
                        last_val = None

                counter_val = form_data.get("counter_val")

                if last_val:
                    vals_diff = counter_val - last_val
                    if last_val > counter_val:
                        self._errors["counter_val"] =\
                            ['Показник не може бути нижчим за існуючий Для внесення корективів тел.: +38 097 281 47 28']
                        write_log(user=user_id,
                                  place="Подання Показника",
                                  msg_type="Невдало",
                                  message="Невдала спроба подати показник {} (останній зареєстрований показник {})".format(counter_val, last_val))
                    if vals_diff >= 100:
                        self._errors["counter_val"] =\
                            ['Введений показник занадто великий у порівнянні із попереднім']
                        write_log(user=user_id,
                                  place="Подання Показника",
                                  msg_type="Невдало",
                                  message="Невдала спроба подати показник {} (останній зареєстрований показник {})".format(counter_val, last_val))
            else:
                self._errors["counter_val"] = \
                    ['Некоректний номер лічильника. Спробуйте влогуватись і знову залогуватись!']
        else:
            self._errors["counter_val"] = \
                ['Некоректний номер лічильника. Спробуйте влогуватись і знову залогуватись!']

        return form_data
示例#8
0
 def _check_user_existence(self, form_data):
     user_obj = User.objects.filter(pk=form_data.get("user_id", ""))
     print(user_obj)
     if user_obj:
         self._errors["user_id"] =\
             ['Користувач із вказаним номером контракту уже зараєстрований']
         write_log(
             user=user_obj.first().pk,
             place="Реєстрація",
             msg_type="Невдало",
             message=
             "Невдала спроба реєстрації (користувач із вказаним id уже існує)"
         )
     else:
         user_obj = User.objects.filter(email=form_data.get("email", "@"))
         if user_obj:
             self._errors["email"] =\
                 ['Користувач із вказаною електронною скринькою  уже зараєстрований']
             write_log(
                 user=user_obj.first().pk,
                 place="Реєстрація",
                 msg_type="Невдало",
                 message=
                 "Невдала спроба реєстрації (користувач із вказаним email уже існує)"
             )
         else:
             db_handler = DbSyncHandler()
             user_id = form_data.get("user_id", "")
             email = form_data.get("email", "@")
             to_pay = form_data.get("last_bill", "")
             user_obj, status = db_handler.fetch_user_info(
                 user_id, email, to_pay)
             if status == "user_id":
                 self._errors["user_id"] =\
                     ['Користувач із вказаним номером контракту відсутній в базі данних']
                 write_log(
                     user=user_id,
                     place="Реєстрація",
                     msg_type="Невдало",
                     message=
                     "Невдала спроба реєстрації (користувач із вказаним id не доступний)"
                 )
             if status == "to_pay":
                 self._errors["last_bill"] =\
                     ['Не вірна сума останнього рахунку']
                 write_log(
                     user=user_id,
                     place="Реєстрація",
                     msg_type="Невдало",
                     message=
                     "Невдала спроба реєстрації (вказано невірну суму до оплати {})"
                     .format(to_pay))
示例#9
0
 def form_valid(self, form):
     user_id = form.cleaned_data.get("user_id", "")
     user_obj = User.objects.get(pk=user_id)
     user_email = user_obj.email
     new_pass = self._generate_pass()
     print("NEW PASS = "******"Відновлення Паролю",
         msg_type="Успішно",
         message="Відновлено пароль. Пароль {} відправлено на {}".format(
             new_pass, user_email))
     messages.success(
         self.request,
         ("Ваш пароль було змінено. Новий пароль відправлено на " +
          user_email))
     return super().form_valid(form)
示例#10
0
 def _check_user_existence(self, form_data):
     user_obj = User.objects.filter(pk=form_data.get("user_id", ""))
     print(user_obj)
     if not user_obj:
         self._errors["user_id"] =\
             ['Користувач із вказаним номером контракту не зареєстрований в базі']
         write_log(
             user=form_data.get("user_id", ""),
             place="Відновлення Паролю",
             msg_type="Невдало",
             message=
             "Невдала спроба відновлення паролю (користувач не зареєстрований)"
         )
     else:
         user_obj = user_obj[0]
         db_handler = DbSyncHandler()
         db_handler.sync_user_info(user_obj)
         payments = DbSyncHandler()._get_sql_payments(user_obj)[::-1]
         # payments = list(Payments.objects.filter(user=user_obj).order_by("date_added"))
         user_bill = abs(form_data.get("last_bill", ""))
         if payments:
             last_bill = abs(payments[-1].to_pay)
             prev_bill = last_bill
             if len(payments) > 1:
                 prev_bill = abs(payments[-2].to_pay)
             # print(form_data.get("last_bill", ""), last_bill)
             # print(type(form_data.get("last_bill", "")), type(last_bill))
             # print(form_data.get("last_bill", "")==last_bill)
             if last_bill != user_bill and prev_bill != user_bill:
                 self._errors["last_bill"] =\
                     ['Не вірна сума останнього рахунку']
                 write_log(
                     user=user_obj.pk,
                     place="Відновлення Паролю",
                     msg_type="Невдало",
                     message=
                     "Невдала спроба відновлення паролю (введена сума - {}|{},{}|)"
                     .format(user_bill, last_bill, prev_bill))