def guardar(): status = 200 data = json.loads(request.form['data']) nuevos = data['nuevos'] editados = data['editados'] eliminados = data['eliminados'] array_nuevos = [] rpta = None session = session_accesos() try: if len(nuevos) != 0: for nuevo in nuevos: temp_id = nuevo['id'] s = Modulo( nombre=nuevo['nombre'], icono=nuevo['icono'], url=nuevo['url'], ) session.add(s) session.flush() temp = {'temporal': temp_id, 'nuevo_id': s.id} array_nuevos.append(temp) if len(editados) != 0: for editado in editados: session.query(Modulo).filter_by(id=editado['id']).update({ 'nombre': editado['nombre'], 'icono': editado['icono'], 'url': editado['url'], }) if len(eliminados) != 0: for id in eliminados: session.query(Modulo).filter_by(id=id).delete() session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': [ 'Se ha registrado los cambios en los módulos del sistema', array_nuevos ] } except Exception as e: status = 500 session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en guardar los módulos del sistema', str(e) ] } return json.dumps(rpta), status
def guardar_permiso(): status = 200 data = json.loads(request.form['data']) editados = data['editados'] rol_id = data['extra']['rol_id'] array_nuevos = [] rpta = None session = session_accesos() try: if len(editados) != 0: for editado in editados: permiso_id = editado['id'] existe = editado['existe'] e = session.query(RolPermiso).filter_by(permiso_id=permiso_id, rol_id=rol_id).first() if existe == 0: #borrar si existe if e != None: session.query(RolPermiso).filter_by( permiso_id=permiso_id, rol_id=rol_id).delete() elif existe == 1: #crear si no existe if e == None: s = RolPermiso( permiso_id=permiso_id, rol_id=rol_id, ) session.add(s) session.flush() session.commit() rpta = { 'tipo_mensaje': 'success', 'mensaje': [ 'Se ha registrado la asociación de permisos al rol', array_nuevos ] } except Exception as e: status = 500 session.rollback() rpta = { 'tipo_mensaje': 'error', 'mensaje': [ 'Se ha producido un error en asociar los permisos al rol', str(e) ] } return json.dumps(rpta), status