def updateRecord(TableClass,fields): getDetailDict(fields) session = Session() session.expire_on_commit = False record = session.query(TableClass).filter_by(id=fields['id']).first() if not record: return jsonify(result={'res': False, 'Error': 'Registro no Encontrado'}) if not record.checkSyncVersion(fields.get('syncVersion', None)): return jsonify(result={'res': False, 'Error': 'Otro Usuario ha modoficado el Registro'}) record.fromJSON(fields) res = record.check() if not res: return jsonify(result={'res': False, 'Error': str(res)}) record.syncVersion += 1 res = record.afterUpdate() if not res: return jsonify(result={'res': False, 'Error': str(res)}) try: session.commit() except Exception as e: session.rollback() session.close() return jsonify(result={'res': False, 'Error': str(e)}) record.callAfterCommitUpdate() session.close() RunJS = record.afterSaveJS() return jsonify(result={'res': True, 'record': record.toJSON(), 'RunJS': RunJS})
def addNewUser(cls,email,password,name): session = Session() new_user = User(Password=password) new_user.syncVersion = 0 new_user.UserType = 3 new_user.Closed = 0 new_user.NtfActivityConfirm = 1 new_user.NtfActivityCancel = 1 new_user.NtfActivityChange = 1 new_user.NtfActivityNew = 1 new_user.Name = name new_user.Email = email new_user.CreatedDate = today() session.add(new_user) try: session.commit() from tools.MailTools import sendNewUserMail sendNewUserMail(email,name,password) except Exception as e: session.rollback() session.close() return Error(str(e)) user = session.query(User).filter_by(Email=email).first() session.close() if user: return User(user.id,user.Password,user.Active,user.UserType,user.CompanyId)
def cancel_activity(): session = Session() session.expire_on_commit = False _id = request.args.get('id') record = session.query(Activity).filter_by(id=_id).first() if not record: return jsonify(result={'res': False,'Error':'Registro no Encontrado'}) record.setOldFields() record.Status = record.CANCELLED res = record.check() if not res: return jsonify(result={'res': False,'Error':str(res)}) record.syncVersion += 1 res = record.afterUpdate() if not res: return jsonify(result={'res': False,'Error':str(res)}) try: session.commit() session.close() except Exception as e: session.rollback() session.close() return jsonify(result={'res': False,'Error':str(e)}) record.callAfterCommitUpdate() return jsonify(result={'res':True,'id': record.id,'syncVersion': record.syncVersion})
def saveNewRecord(TableClass,fields): del fields['id'] new_record = TableClass() getDetailDict(fields) session = Session() session.expire_on_commit = False new_record.fromJSON(fields) if not new_record.beforeInsert(): return jsonify(result={'res': False, 'Error': 'Error en Campos'}) res = new_record.check() if not res: return jsonify(result={'res': False, 'Error': str(res)}) session.add(new_record) res = new_record.afterInsert() if not res: return jsonify(result={'res': False, 'Error': str(res)}) try: session.commit() except Exception as e: session.rollback() session.close() return jsonify(result={'res': False, 'Error': str(e)}) new_record.callAfterCommitInsert() RunJS = new_record.afterSaveJS() session.close() return jsonify(result={'res': True, 'record': new_record.toJSON(), 'RunJS': RunJS})
def addNewUser(cls,username,password): from sqlalchemy.orm import sessionmaker session = Session() new_user = User(username,password,0,None) new_user.syncVersion = 0 new_user.UserType = 3 session.add(new_user) try: session.commit() except: session.rollback() user = session.query(User).filter_by(id=username).first() session.close() if user: return User(user.id,user.Password,user.Active,user.UserType)
def delete_record(): table = request.args.get('TableName') TableClass = getTableClass(table) _id = request.args.get('id') if _id==current_user.id: return jsonify(result={'res': False, 'Error': 'No se puede borrar usuario actual'}) if _id: session = Session() record = session.query(TableClass).filter_by(id=_id).first() if not record: return jsonify(result={'res': False, 'Error': 'Registro no encontrado'}) res = session.delete(record) try: session.commit() session.close() return jsonify(result={'res': True}) except Exception as e: session.rollback() session.close() return jsonify(result={'res': False, 'Error': str(e)})
def change_password(): pwd = request.args['pwd'] if current_user.Password!=pwd: return jsonify(result={'res': False,'Error':'Es password actual ingresado es incorrecto'}) newpwd = request.args['newpwd'] session = Session() record = session.query(User).filter_by(id=current_user.id).first() if not record: session.close() return jsonify(result={'res': False,'Error':'Usuario no encotrado'}) else: record.Password = newpwd try: session.commit() session.close() return jsonify(result={'res': True}) except Exception as e: session.rollback() session.close() return jsonify(result={'res': False,'Error':str(e)}) return jsonify(result={'res':True,'id':res.id,'syncVersion':res.syncVersion})
def recover_password(): session = Session() session.expire_on_commit = False email = request.args['email'] record = session.query(User).filter_by(Email=email).first() if not record: return jsonify(result={'res': False,'Error':'No hay usuario registrado para este Email'}) else: record.Password = passwordRamdom() try: session.commit() from tools.MailTools import sendPasswordRecoverMail res = sendPasswordRecoverMail(email,record.Password,record.Name) if res: session.close() return jsonify(result={'res': True}) else: session.close() return jsonify(result={'res': False,'Error': 'No se pudo enviar el correo'}) except Exception as e: session.rollback() session.close() return jsonify(result={'res': False,'Error':str(e)})
from sqlalchemy import Table, Column, Integer, String from tools.dbconnect import engine,Session from sqlalchemy.ext.declarative import declarative_base import settings Base = declarative_base() class DBVersion(Base): __tablename__ = 'dbversion' id = Column(Integer, primary_key=True) Version = Column(Integer) Base.metadata.create_all(engine) session = Session() record = session.query(DBVersion).first() if not record: record = DBVersion() try: record.Version = max(settings.versions.keys()) except: record.Version = 1 session.add(record) session.commit() session.close()