def confirmar_remocao(self, *args): self.excluirdialog.dismiss() db(TransacaoModel.id == self.transacao.id).delete() db.commit() self.app.root.switch_to(TELAS.LISTA_TRANSACAO)
def test_valid_reset_token(self): u = User(password='******') db.session.add(u) db.commit() token = u.generate_reset_token() self.assertTrue(User.reset_password(token, 'dog')) self.assertTrue(u.verify_password('dog'))
def edit_user(id): user = User.query.get(id) if not user: raise ValueError('Invalid user with identifier %s' % id) content = request.get_json(silent=True) validate(instance=content, schema=user_schema) user.email = content["email"] user.username = content["name"] if content["password"] and len(content["password"]): user.password = utils.hash_password(content["password"]) if content["role"] == "admin": user_datastore.add_role_to_user(user.email, "admin") elif "admin" in (role.name for role in user.roles): user_datastore.remove_role_from_user(user.email, "admin") # Variable and station access config. user.access_stations_all = ( content['access']['stations']['unlimited'] == True) user.access_variables_all = ( content['access']['variables']['unlimited'] == True) user.access_variables_standard = ( content['access']['variables']['standard'] == True) if content['access']['variables']['unlimited'] == False and content[ 'access']['variables']['standard'] == False: user.access_variable_specific = list( map(lambda x: AccessVariable(variable_id=int(x)), content['access']['variables']['specific'])) else: user.access_variable_specific = [] if content['access']['stations']['unlimited'] == False: user.access_stations_specific = list( map(lambda x: AccessStation(station_id=x), content['access']['stations']['specific'])) else: user.access_stations_specific = [] db.commit() return jsonify({"status": "success"})
def create_user(): content = request.get_json(silent=True) validate(instance=content, schema=user_schema) user = user_datastore.create_user( username=content["name"], email=content["email"], password=utils.hash_password(content["password"]), roles=(["admin"] if content["role"] == "admin" else []), access_stations_all=( content['access']['stations']['unlimited'] == True), access_variables_all=( content['access']['variables']['unlimited'] == True), access_variables_standard=( content['access']['variables']['standard'] == True)) # Variable and station access config. user.access_stations_all = ( content['access']['stations']['unlimited'] == True) user.access_variables_all = ( content['access']['variables']['unlimited'] == True) user.access_variables_standard = ( content['access']['variables']['standard'] == True) if content['access']['variables']['unlimited'] == False and content[ 'access']['variables']['standard'] == False: user.access_variable_specific = list( map(lambda x: AccessVariable(variable_id=int(x)), content['access']['variables']['specific'])) else: user.access_variable_specific = [] if content['access']['stations']['unlimited'] == False: user.access_stations_specific = list( map(lambda x: AccessStation(station_id=x), content['access']['stations']['specific'])) else: user.access_stations_specific = [] db.commit() return jsonify({"status": "success"})
def salvar_transacao(self): # todo # List of errors erros = [] # Getting data of fields nome = self.ids.nome.text descricao = self.ids.descricao.text lancamento = self.ids.lancamento.text vencimento = self.ids.vencimento.text valor = Decimal(self.ids.valor.text).quantize(Decimal('1.00'), rounding=ROUND_DOWN) parcelado = self.ids.parcelamento.active num_parcelas = int(self.ids.nparcelas.text) recorrente = self.ids.recorrente.active frequencia = self.ids.frequencia.text freq_qtd = self.ids.freq_qtd.text tipo_transacao = TIPO_TRANSACAO.RECEITA if self.ids.switch.active else TIPO_TRANSACAO.DESPESA tipo_pagamento = TIPO_PAGAMENTO.A_PRAZO if parcelado else TIPO_PAGAMENTO.A_VISTA contato = self.contato # Validating fields if nome in ['', ' ', None]: erros.append("O Campo 'nome' é obrigatório!") if lancamento in ['', ' ', None]: erros.append("O Campo 'data' é obrigatório!") else: try: lancamento = date( *[int(f) for f in self.ids.lancamento.text.split('-')]) except: erros.append( "formato de data inválido para 'data'. \nClique no icone ao lado >>" ) if vencimento in ['', ' ', None]: erros.append("O Campo 'validade' é obrigatório!") else: try: vencimento = date( *[int(f) for f in self.ids.vencimento.text.split('-')]) except: erros.append( "Formato de data inválido para 'validade'.\nClique no icone ao lado >>" ) try: diferenca = vencimento - lancamento if diferenca.days < 0: erros.append("A 'validade' não pode ser menor que a 'data'") except: pass if valor < 0: erros.append("O Campo 'valor' não pode ter valor negativo!") if recorrente and parcelado: erros.append( "A transação não pode ser parcelada e recorrente ao mesmo tempo.\n" "Marque apenas uma das opções.") if parcelado: if num_parcelas < 1: erros.append("O Campo 'parcela' não pode ser menor que 1!") else: num_parcelas = 1 if not recorrente: frequencia = None freq_qtd = None else: if freq_qtd in ('', None) or int(freq_qtd) < 2: erros.append("O Campo 'nome' é obrigatório!\n" "E não pode ser inferior a 2.") try: contato = ContatoModel[self.contato.id] except: pass # Showing dialog with errors found if erros: dialog = MDDialog(title='Errors', size_hint=(.9, .8)) box = StackLayout(size_hint_y=None) for e in erros: box.add_widget( MDLabel(text=e, size_hint_y=None, height='48dp', font_size='18dp', theme_text_color='Error')) dialog.content = box dialog.add_action_button('Close', action=lambda *x: dialog.dismiss()) dialog.open() else: transacao_id = None parcel_value = (valor / num_parcelas).quantize(Decimal('1.00'), rounding=ROUND_DOWN) excedent = (valor - (parcel_value * num_parcelas)).quantize( Decimal('1.00'), rounding=ROUND_DOWN) transacao_id = TransacaoModel.insert( nome=nome, descricao=descricao, valor=valor, lancamento=lancamento, tipo_transacao=tipo_transacao.name, parcelado=parcelado, tipo_pagamento=tipo_pagamento.name, recorrente=recorrente, frequencia=frequencia) db.commit() # Creating Parcels of the Ticket if not parcelado and not recorrente: ParcelaModel.insert(nome=nome, valor=valor, vencimento=vencimento, pago=False, transacao_id=transacao_id) db.commit() elif parcelado: for p in range(num_parcelas): if p == num_parcelas - 1: parcel_value += excedent nExpiration = vencimento + relativedelta(months=p) ParcelaModel.insert(nome="{nome} {parcela}/{total}".format( nome=nome, parcela=p + 1, total=num_parcelas), valor=parcel_value, vencimento=nExpiration, pago=False, transacao_id=transacao_id) db.commit() elif recorrente: for req in range(int(freq_qtd)): periodo = self.calcula_periodo(frequencia, req) nExpiration = vencimento + periodo ParcelaModel.insert( nome="{nome} {mes}/{ano}".format(nome=nome, mes=nExpiration.month, ano=nExpiration.year), valor=valor, vencimento=nExpiration, pago=False, transacao_id=transacao_id) db.commit() self.app.root.switch_to(TELAS.DETALHE_TRANSACAO, transacao_id=transacao_id)
def unfollowUser(id): user = User.query.filter_by(id = id).first() #friend's id current_user.follows.remove(user) db.session.add(current_user) db.commit() return {"user": user.to_user_name_to_dic() }# from flask import Blueprint, jsonify, redirect, request
def marcar_como_paga(self, *args): parcela = db(ParcelaModel.id == self.parcela_id).update(pago=True) db.commit() # parcela = session.query(Parcela).filter_by(id=self.parcela_id).first() # parcela.pago = True self.app.root.switch_to(TELAS.LISTA_TRANSACAO)