diff --git a/package.json b/package.json index 71deeb3..1f9c3a7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "site", - "version": "0.1.5", + "version": "0.1.6", "private": true, "dependencies": { "antd": "^3.8.1", diff --git a/src/Anatomp/index.js b/src/Anatomp/index.js index 65d05dc..51c77d2 100644 --- a/src/Anatomp/index.js +++ b/src/Anatomp/index.js @@ -234,6 +234,15 @@ class Anatomp extends Component { onSelectRoteiro = (partes, model) => { + const roteiro = this.state.options.listaRoteiros.find(r => r._id == model.roteiro) + const extra = roteiro ? { + options: { + ...this.state.options, + listaPecasGenericas: roteiro.pecasGenericas + } + } : {}; + + this.setState({ model: { ...this.state.model, @@ -246,7 +255,8 @@ class Anatomp extends Component { referenciaRelativa: getModelReferenciaRelativa() }] })) - } + }, + ...extra }) } diff --git a/src/Roteiro/FormGeral.js b/src/Roteiro/FormGeral.js index 9bc28c4..03b0c8c 100644 --- a/src/Roteiro/FormGeral.js +++ b/src/Roteiro/FormGeral.js @@ -1,6 +1,6 @@ import React, { Component, Fragment } from 'react'; -import { Form, Input, Select, Row, Col } from 'antd'; +import { Form, Input, Select, Row, Col, Checkbox } from 'antd'; import { listaIdiomas } from '../utils/mock'; @@ -17,7 +17,7 @@ const props = { wrapperCol: { span: 14 }, } -const FormGeral = ({ nome, curso, disciplina, proposito, erros, onChange, idioma, generalidades, onOpenSnackbar }) => { +const FormGeral = ({ nome, curso, disciplina, somentePratica, onChangeSomentePratica, erros, onChange, idioma, generalidades, onOpenSnackbar }) => { const _erros = { idioma: erros.campos.indexOf('idioma'), @@ -65,7 +65,7 @@ const FormGeral = ({ nome, curso, disciplina, proposito, erros, onChange, idioma help={erros.msgs[_erros.curso] || ''} label='Curso' > - onChange('curso')(e.target.value)} /> + onChange('curso')(e.target.value)} /> @@ -82,6 +82,11 @@ const FormGeral = ({ nome, curso, disciplina, proposito, erros, onChange, idioma + + + onChangeSomentePratica(e.target.checked)}>Somente conteúdo prático + + {/* h.location).bind(l => l.state).maybe(false, s => s.model); if(model){ - this.setState({model: { - ...model, - idioma: model.idioma._id, - partes: [], - conteudo: { - selected: [], - original: [], - filtrado: [] - } - }}) + this.setState({ + somentePratica: model.conteudos.length == 0, + model: { + ...model, + idioma: model.idioma._id, + partes: [], + conteudo: { + selected: [], + original: [], + filtrado: [] + } + } + }) } this.onGetData(false) @@ -59,7 +63,7 @@ class Roteiro extends Component { componentWillUpdate(nextProps, nextState){ if((JSON.stringify(this.state.model) != JSON.stringify(nextState.model)) && this.props.onChange){ - this.props.onChange(nextState.model) + this.props.onChange({...nextState.model, somentePratica: nextState.somentePratica}) } } @@ -70,7 +74,7 @@ class Roteiro extends Component { render() { const {erros, loading} = this.props; - const { model, pecas, conteudoExpandido } = this.state; + const { model, pecas, conteudoExpandido, somentePratica } = this.state; return (
@@ -80,14 +84,14 @@ class Roteiro extends Component {
....

} title="Informações gerais do roteiro" />} key='geral'> - +
....

} title="Conhecimento Prático (CP)" />} key='partes'>
- ....

} title="Conhecimento Teórico (CT)" />} key='teoria'> + {!somentePratica && ....

} title="Conhecimento Teórico (CT)" />} key='teoria'> -
+
}
{ this.props.match && ( @@ -101,8 +105,15 @@ class Roteiro extends Component { ) } + onChangeSomentePratica = somentePratica => this.setState({somentePratica}, () => { + if(this.props.onChange){ + this.props.onChange({...this.state.model, somentePratica}) + } + }) + onSubmit = () => { - onSaveRoteiro(this.props.onOpenSnackbar, this.props.onSetAppState, this.state.model, ret => { + const {somentePratica} = this.state; + onSaveRoteiro(this.props.onOpenSnackbar, this.props.onSetAppState, {...this.state.model, somentePratica}, ret => { this.props.onOpenSnackbar(`O roteiro ${this.state.model.nome} foi salvo com sucesso!`, 'success'); this.props.onPush('/') }) diff --git a/src/Roteiro/utils.js b/src/Roteiro/utils.js index 5d9db21..28729d6 100644 --- a/src/Roteiro/utils.js +++ b/src/Roteiro/utils.js @@ -3,7 +3,7 @@ const uuidv4 = require('uuid/v4'); export const onValidate = model => { - const { nome, curso, disciplina, conteudo, partes, idioma } = model; + const { nome, curso, disciplina, conteudo, partes, idioma, somentePratica } = model; let campos = [], msgs = [] if (idioma == '') { @@ -31,9 +31,11 @@ export const onValidate = model => { msgs = [...msgs, 'Inclua ao menos uma parte no roteiro']; } - if (conteudo.selected.length == 0) { - campos = [...campos, 'conteudo']; - msgs = [...msgs, 'Inclua ao menos um conteúdo no roteiro']; + if(!somentePratica){ + if (conteudo.selected.length == 0) { + campos = [...campos, 'conteudo']; + msgs = [...msgs, 'Inclua ao menos um conteúdo no roteiro']; + } } return { campos, msgs } @@ -53,7 +55,7 @@ export const onSave = (onOpenSnackbar, onSetAppState, model, cb = false) => { onSetAppState({ loading: true }) const body = { ...model, - conteudos: model.conteudo.selected.map(ct => (ct._id)) + conteudos: model.somentePratica ? [] : model.conteudo.selected.map(ct => (ct._id)) } const _request = model._id != null ? request(`roteiro/${model._id}`, { method: 'PUT', body: JSON.stringify(body) }) : request('roteiro', { method: 'POST', body: JSON.stringify({...body, _id: uuidv4()}) })