Guilherme Silberfarb Costa commited on
Commit
e018b1c
·
1 Parent(s): f0f8ff1

correcao de bugs

Browse files
backend/app/core/elaboracao/core.py CHANGED
@@ -931,7 +931,7 @@ def detectar_colunas_area(df, colunas=None):
931
  Regras:
932
  - nome começa com "A";
933
  - todos os valores válidos são > 1;
934
- - possui ao menos 10 valores decimais distintos.
935
  """
936
  if df is None:
937
  return []
@@ -957,7 +957,7 @@ def detectar_colunas_area(df, colunas=None):
957
 
958
  unicos = np.unique(valores)
959
  decimais = unicos[~np.isclose(unicos, np.round(unicos))]
960
- if len(decimais) < 10:
961
  continue
962
 
963
  resultado.append(nome)
 
931
  Regras:
932
  - nome começa com "A";
933
  - todos os valores válidos são > 1;
934
+ - possui mais de um valor decimal distinto.
935
  """
936
  if df is None:
937
  return []
 
957
 
958
  unicos = np.unique(valores)
959
  decimais = unicos[~np.isclose(unicos, np.round(unicos))]
960
+ if len(decimais) < 2:
961
  continue
962
 
963
  resultado.append(nome)
backend/app/services/elaboracao_service.py CHANGED
@@ -1099,8 +1099,10 @@ def apply_selection(
1099
 
1100
  tipo_y_norm = normalizar_tipo_y(tipo_y if tipo_y is not None else session.tipo_y)
1101
  coluna_area_norm = normalizar_coluna_area(coluna_area if coluna_area is not None else session.coluna_area, df=df)
 
1102
  colunas_area_candidatas = detectar_colunas_area(df)
1103
- if coluna_area_norm and coluna_area_norm not in colunas_area_candidatas:
 
1104
  raise HTTPException(status_code=400, detail="Selecione uma coluna de area valida.")
1105
  if coluna_area_norm and coluna_area_norm == coluna_y:
1106
  raise HTTPException(status_code=400, detail="A coluna de area deve ser diferente da variavel Y.")
 
1099
 
1100
  tipo_y_norm = normalizar_tipo_y(tipo_y if tipo_y is not None else session.tipo_y)
1101
  coluna_area_norm = normalizar_coluna_area(coluna_area if coluna_area is not None else session.coluna_area, df=df)
1102
+ coluna_area_salva = normalizar_coluna_area(session.coluna_area, df=df)
1103
  colunas_area_candidatas = detectar_colunas_area(df)
1104
+ area_salva_no_modelo = bool(coluna_area_norm and coluna_area_salva and coluna_area_norm == coluna_area_salva)
1105
+ if coluna_area_norm and coluna_area_norm not in colunas_area_candidatas and not area_salva_no_modelo:
1106
  raise HTTPException(status_code=400, detail="Selecione uma coluna de area valida.")
1107
  if coluna_area_norm and coluna_area_norm == coluna_y:
1108
  raise HTTPException(status_code=400, detail="A coluna de area deve ser diferente da variavel Y.")
frontend/src/components/ElaboracaoTab.jsx CHANGED
@@ -1011,10 +1011,13 @@ export default function ElaboracaoTab({ sessionId }) {
1011
  () => (colunaY ? colunasNumericas.filter((coluna) => coluna !== colunaY) : []),
1012
  [colunasNumericas, colunaY],
1013
  )
1014
- const colunasAreaDisponiveis = useMemo(
1015
- () => (colunasAreaCandidatas || []).filter((coluna) => coluna && coluna !== colunaY && colunasX.includes(coluna)),
1016
- [colunasAreaCandidatas, colunaY, colunasX],
1017
- )
 
 
 
1018
  const todasXMarcadas = useMemo(
1019
  () => colunasXDisponiveis.length > 0 && colunasXDisponiveis.every((coluna) => colunasX.includes(coluna)),
1020
  [colunasXDisponiveis, colunasX],
 
1011
  () => (colunaY ? colunasNumericas.filter((coluna) => coluna !== colunaY) : []),
1012
  [colunasNumericas, colunaY],
1013
  )
1014
+ const colunasAreaDisponiveis = useMemo(() => {
1015
+ const disponiveis = (colunasAreaCandidatas || []).filter((coluna) => coluna && coluna !== colunaY && colunasX.includes(coluna))
1016
+ if (colunaArea && colunaArea !== colunaY && colunasX.includes(colunaArea) && !disponiveis.includes(colunaArea)) {
1017
+ return [...disponiveis, colunaArea]
1018
+ }
1019
+ return disponiveis
1020
+ }, [colunasAreaCandidatas, colunaY, colunasX, colunaArea])
1021
  const todasXMarcadas = useMemo(
1022
  () => colunasXDisponiveis.length > 0 && colunasXDisponiveis.every((coluna) => colunasX.includes(coluna)),
1023
  [colunasXDisponiveis, colunasX],