Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Walter Felipe
pad-upe
Commits
500a1d2f
Commit
500a1d2f
authored
Apr 12, 2023
by
luiz-davi
Browse files
criando acões de avaliação
parent
3148737d
Changes
7
Hide whitespace changes
Inline
Side-by-side
app/Http/Controllers/AvaliadorController.php
View file @
500a1d2f
...
...
@@ -2,10 +2,12 @@
namespace
App\Http\Controllers
;
use
App\Models\Avaliacao
;
use
App\Models\User
;
use
App\Models\Curso
;
use
App\Models\Util\MenuItemsAvaliador
;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\Hash
;
class
AvaliadorController
extends
Controller
...
...
@@ -24,13 +26,47 @@ class AvaliadorController extends Controller
]);
}
public
function
avaliar
()
public
function
avaliar
(
Request
$req
)
{
// $professores = User::where('type', '=', User::->isTypeTeacher())->get();
return
view
(
'pad.avaliacao.dimensao.ensino'
,
[
'index_menu'
=>
MenuItemsAvaliador
::
PADs
,
'user_pad_id'
=>
1
]);
$validated
=
$req
->
validate
(
[
'tarefa_id'
=>
[
'required'
,
'integer'
],
'status'
=>
[
'required'
,
'integer'
],
'professor_id'
=>
[
'required'
,
'integer'
],
'atividade_type'
=>
[
'required'
,
'integer'
],
'descricao'
=>
[
'nullable'
,
'string'
],
'hora_reajuste'
=>
[
'nullable'
,
'double'
],
],
[
'required'
=>
'O campo de :attribute é obrigatório'
,
]
);
if
(
$validated
)
{
$user
=
Auth
::
user
();
$avaliacao
=
Avaliacao
::
where
(
function
(
$query
)
use
(
$req
)
{
$query
->
where
(
'tarefa_id'
,
'='
,
$req
->
tarefa_id
);
$query
->
where
(
'type'
,
'='
,
$req
->
atividade_type
);
})
->
first
();
if
(
!
$avaliacao
)
{
dd
(
'Avaliação não encontrada'
);
}
$avaliacao
->
status
=
$req
->
status
;
$avaliacao
->
avaliador_id
=
$user
->
id
;
$avaliacao
->
descricao
=
$req
->
descricao
?
$req
->
descricao
:
NULL
;
$avaliacao
->
hora_reajuste
=
$req
->
hora_reajuste
;
if
(
$avaliacao
->
save
())
{
dd
(
$avaliacao
);
//return view('pad.avaliacao.dimensao.ensino', [
// 'index_menu' => MenuItemsAvaliador::PADs,
// 'user_pad_id' => 1
//]);
}
}
}
/**
...
...
app/Http/Controllers/AvaliadorPadController.php
View file @
500a1d2f
...
...
@@ -14,7 +14,7 @@ use Illuminate\Support\Facades\Validator;
class
AvaliadorPadController
extends
Controller
{
public
function
actionStore
(
Request
$request
)
{
{
dd
(
$request
->
all
());
// $validator = Validator::make(
...
...
@@ -39,16 +39,14 @@ class AvaliadorPadController extends Controller
public
function
actionUpdate
(
Request
$request
,
$id
)
{
}
public
function
actionDelete
(
$id
)
{
}
public
function
actionCreate
(
$pad_id
)
{
{
$pad
=
Pad
::
find
(
$pad_id
);
$model
=
new
AvaliadorPad
();
...
...
@@ -67,18 +65,19 @@ class AvaliadorPadController extends Controller
public
function
actionEdit
(
$id
)
{
}
public
function
ajaxValidation
(
Request
$request
)
{
{
return
Response
::
json
([
'message'
=>
true
,
'status'
=>
200
]);
$validator
=
Validator
::
make
(
$request
->
all
(),
AvaliadorPad
::
rules
(),
AvaliadorPad
::
messages
()
$request
->
all
(),
AvaliadorPad
::
rules
(),
AvaliadorPad
::
messages
()
);
if
(
$validator
->
passes
())
{
if
(
$validator
->
passes
())
{
return
Response
::
json
([
'message'
=>
true
,
'status'
=>
200
]);
}
...
...
app/Http/Controllers/PadController.php
View file @
500a1d2f
...
...
@@ -36,6 +36,7 @@ use App\Models\User;
use
App\Models\UserPad
;
use
App\Models\UserType
;
use
App\Models\UserTypePad
;
use
App\Models\Util\Avaliacao
as
AvaliacaoUtil
;
use
App\Models\Util\Dimensao
;
use
App\Models\Util\Menu
;
use
App\Models\Util\MenuItemsAdmin
;
...
...
@@ -331,41 +332,50 @@ class PadController extends Controller
$gestao
=
[];
if
(
in_array
(
Dimensao
::
ENSINO
,
$dimensoes
))
{
$ensino
=
array_merge
(
$ensino
,
EnsinoAtendimentoDiscente
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoAula
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoCoordenacaoRegencia
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoMembroDocente
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoOrientacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoParticipacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoProjeto
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
EnsinoSupervisao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoAtendimentoDiscente
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_ATENDIMENTO_DISCENTE
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoAula
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_AULA
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoCoordenacaoRegencia
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_COORDENACAO_REGENCIA
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoMembroDocente
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_MEMBRO_DOCENTE
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoOrientacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_ORIENTACAO
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_OUTROS
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoParticipacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_PARTICIPACAO
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoProjeto
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_PROJETO
)
->
toArray
());
$ensino
=
array_merge
(
$ensino
,
self
::
add_tipo_atividade
(
EnsinoSupervisao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
ENSINO_SUPERVISAO
)
->
toArray
());
}
if
(
in_array
(
Dimensao
::
PESQUISA
,
$dimensoes
))
{
$pesquisa
=
array_merge
(
$pesquisa
,
PesquisaCoordenacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$pesquisa
=
array_merge
(
$pesquisa
,
PesquisaLideranca
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$pesquisa
=
array_merge
(
$pesquisa
,
PesquisaOrientacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$pesquisa
=
array_merge
(
$pesquisa
,
PesquisaOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$pesquisa
=
array_merge
(
$pesquisa
,
self
::
add_tipo_atividade
(
PesquisaCoordenacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
PESQUISA_COORDENACAO
)
->
toArray
());
$pesquisa
=
array_merge
(
$pesquisa
,
self
::
add_tipo_atividade
(
PesquisaLideranca
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
PESQUISA_LIDERANCA
)
->
toArray
());
$pesquisa
=
array_merge
(
$pesquisa
,
self
::
add_tipo_atividade
(
PesquisaOrientacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
PESQUISA_ORIENTACAO
)
->
toArray
());
$pesquisa
=
array_merge
(
$pesquisa
,
self
::
add_tipo_atividade
(
PesquisaOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
PESQUISA_OUTROS
)
->
toArray
());
}
if
(
in_array
(
Dimensao
::
EXTENSAO
,
$dimensoes
))
{
$extensao
=
array_merge
(
$extensao
,
ExtensaoCoordenacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$extensao
=
array_merge
(
$extensao
,
ExtensaoOrientacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$extensao
=
array_merge
(
$extensao
,
ExtensaoOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$extensao
=
array_merge
(
$extensao
,
self
::
add_tipo_atividade
(
ExtensaoCoordenacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
EXTENSAO_COORDENACAO
)
->
toArray
());
$extensao
=
array_merge
(
$extensao
,
self
::
add_tipo_atividade
(
ExtensaoOrientacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
EXTENSAO_ORIENTACAO
)
->
toArray
());
$extensao
=
array_merge
(
$extensao
,
self
::
add_tipo_atividade
(
ExtensaoOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
EXTENSAO_OUTROS
)
->
toArray
());
}
if
(
in_array
(
Dimensao
::
GESTAO
,
$dimensoes
))
{
$gestao
=
array_merge
(
$gestao
,
GestaoCoordenacaoLaboratoriosDidaticos
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
GestaoCoordenacaoProgramaInstitucional
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
GestaoMembroCamaras
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
GestaoMembroComissao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
GestaoMembroConselho
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
GestaoMembroTitularConselho
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
GestaoOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
GestaoRepresentanteUnidadeEducacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoCoordenacaoLaboratoriosDidaticos
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_COORDENACAO_LABORATORIOS_DIDATICOS
)
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoCoordenacaoProgramaInstitucional
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_COORDENACAO_PROGRAMA_INSTITUCIONAL
)
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoMembroCamaras
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_MEMBRO_CAMARAS
)
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoMembroComissao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_MEMBRO_COMISSAO
)
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoMembroConselho
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_MEMBRO_CONSELHO
)
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoMembroTitularConselho
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_MEMBRO_TITULAR_CONSELHO
)
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoOutros
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_OUTROS
)
->
toArray
());
$gestao
=
array_merge
(
$gestao
,
self
::
add_tipo_atividade
(
GestaoRepresentanteUnidadeEducacao
::
where
(
'user_pad_id'
,
'='
,
$user_pad
->
id
)
->
get
()
,
AvaliacaoUtil
::
GESTAO_REPRESENTANTE_UNIDADE_EDUCACAO
)
->
toArray
());
}
dd
(
$extensao
);
dd
(
$gestao
);
}
private
function
add_tipo_atividade
(
$query
,
$type
)
{
foreach
(
$query
as
&
$atividade
)
{
$atividade
[
'tipo_atividade'
]
=
$type
;
}
return
$query
;
}
}
app/Models/Util/Status.php
View file @
500a1d2f
...
...
@@ -4,33 +4,39 @@ namespace App\Models\Util;
class
Status
{
{
const
ATIVO
=
1
;
const
INATIVO
=
2
;
const
PENDENTE
=
3
;
const
ARQUIVADO
=
4
;
const
FINALIZADO
=
5
;
public
static
function
listStatus
(
$value
=
null
)
{
const
REPROVADO
=
6
;
const
APROVADO
=
7
;
public
static
function
listStatus
(
$value
=
null
)
{
$values
=
[
self
::
ATIVO
=>
'Ativo'
,
self
::
INATIVO
=>
'Inativo'
,
self
::
PENDENTE
=>
'Pendente'
,
self
::
ARQUIVADO
=>
'Arquivado'
,
self
::
FINALIZADO
=>
'Finalizado'
,
self
::
REPROVADO
=>
'Reprovado'
,
self
::
APROVADO
=>
'Aprovado'
];
return
$value
!==
null
?
$values
[
$value
]
:
$values
;
return
$value
!==
null
?
$values
[
$value
]
:
$values
;
}
public
static
function
listUserTypeStatus
(
$value
=
null
)
{
public
static
function
listUserTypeStatus
(
$value
=
null
)
{
$values
=
[
self
::
ATIVO
=>
'Ativo'
,
self
::
INATIVO
=>
'Inativo'
,
];
return
$value
!==
null
?
$values
[
$value
]
:
$values
;
return
$value
!==
null
?
$values
[
$value
]
:
$values
;
}
}
database/migrations/2023_04_12_230101_add_feedback_avaliacao_campos.php
0 → 100644
View file @
500a1d2f
<?php
use
Illuminate\Database\Migrations\Migration
;
use
Illuminate\Database\Schema\Blueprint
;
use
Illuminate\Support\Facades\Schema
;
class
AddFeedbackAvaliacaoCampos
extends
Migration
{
/**
* Run the migrations.
*
* @return void
*/
public
function
up
()
{
Schema
::
table
(
'avaliacao'
,
function
(
Blueprint
$table
)
{
$table
->
double
(
'horas_reajuste'
)
->
nullable
(
true
);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public
function
down
()
{
Schema
::
table
(
'avaliacao'
,
function
(
Blueprint
$table
)
{
$table
->
dropColumn
(
'horas_reajuste'
);
});
}
}
resources/views/pad/avaliacao/dimensao/ensino.blade.php
View file @
500a1d2f
...
...
@@ -18,15 +18,15 @@
<
div
class
=
"card"
>
<
h5
class
=
"card-header"
>
Cód
.
Atividade
-
1
-
A
</
h5
>
<
div
class
=
"card-body"
>
<
div
class
=
"card-body"
>
<
span
class
=
"fw-bold "
>
Componente
Curricular
:
</
span
><
span
class
=
"card-text"
>
Programação
II
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Curso
:
</
span
><
span
class
=
"card-text"
>
Computação
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Nível
:
</
span
><
span
class
=
"card-text"
>
Pós
-
graduação
Stricto
Sensu
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Modalidade
:
</
span
><
span
class
=
"card-text"
>
Presencial
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Resolução
:
</
span
><
span
class
=
"card-text"
>
Aula
na
graduação
e
/
ou
pós
-
graduação
stricto
sensu
</
span
><
br
>
<
span
class
=
"fw-bold "
>
CH
.
Semanal
:
</
span
><
span
class
=
"card-text"
>
6
horas
</
span
><
br
>
<
div
style
=
"width: 100%; "
class
=
"btns-avaliar mt-5 d-flex justify-content-end"
>
@
include
(
'components.buttons.btn-reprovar'
,
[
'route'
=>
route
(
'avaliador_avaliar'
),
...
...
@@ -47,15 +47,15 @@
</
div
>
<
div
class
=
"card mt-3"
>
<
h5
class
=
"card-header"
>
Cód
.
Atividade
-
1
-
B
</
h5
>
<
div
class
=
"card-body"
>
<
div
class
=
"card-body"
>
<
span
class
=
"fw-bold "
>
Componente
Curricular
:
</
span
><
span
class
=
"card-text"
>
Computação
Gráfica
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Curso
:
</
span
><
span
class
=
"card-text"
>
Computação
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Nível
:
</
span
><
span
class
=
"card-text"
>
Pós
-
graduação
Stricto
Sensu
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Modalidade
:
</
span
><
span
class
=
"card-text"
>
Presencial
</
span
><
br
>
<
span
class
=
"fw-bold "
>
Resolução
:
</
span
><
span
class
=
"card-text"
>
Aula
na
graduação
e
/
ou
pós
-
graduação
stricto
sensu
</
span
><
br
>
<
span
class
=
"fw-bold "
>
CH
.
Semanal
:
</
span
><
span
class
=
"card-text"
>
4
horas
</
span
><
br
>
<
div
style
=
"width: 100%; "
class
=
"btns-avaliar mt-5 d-flex justify-content-end"
>
@
include
(
'components.buttons.btn-reprovar'
,
[
'route'
=>
route
(
'avaliador_avaliar'
),
...
...
routes/web.php
View file @
500a1d2f
...
...
@@ -90,7 +90,7 @@ Route::prefix('/professor')->group(function () {
Route
::
prefix
(
'/avaliador'
)
->
group
(
function
()
{
Route
::
get
(
'/index'
,
[
AvaliadorController
::
class
,
'index'
])
->
name
(
'avaliador_index'
);
Route
::
ge
t
(
'/avaliar'
,
[
AvaliadorController
::
class
,
'avaliar'
])
->
name
(
'avaliador_avaliar'
);
Route
::
pu
t
(
'/avaliar'
,
[
AvaliadorController
::
class
,
'avaliar'
])
->
name
(
'avaliador_avaliar'
);
Route
::
get
(
'/create'
,
[
AvaliadorController
::
class
,
'create'
])
->
name
(
'avaliador_create'
);
Route
::
post
(
'/store'
,
[
AvaliadorController
::
class
,
'store'
])
->
name
(
'avaliador_store'
);
Route
::
get
(
'/edit/{id}'
,
[
AvaliadorController
::
class
,
'edit'
])
->
name
(
'avaliador_edit'
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment