diff --git a/frontend/src/__apps/painel/main.js b/frontend/src/__apps/painel/main.js
index 5e86aff6e..9bb9481c6 100644
--- a/frontend/src/__apps/painel/main.js
+++ b/frontend/src/__apps/painel/main.js
@@ -2,6 +2,14 @@ import './scss/painel.scss'
// main.js (Vue 2)
import Vue from 'vue'
+import StopWatch from '../../components/StopWatch.vue'
+import PainelHeader from '../../components/PainelHeader.vue'
+import PainelParlamentares from '../../components/PainelParlamentares.vue'
+
+// register components
+Vue.component('cronometro', StopWatch)
+Vue.component('painel-header', PainelHeader)
+Vue.component('painel-parlamentares', PainelParlamentares)
new Vue({
el: '#painel',
@@ -45,12 +53,18 @@ new Vue({
const msg = JSON.parse(evt.data)
// SETUP STATE
console.log(`FROM VUEJS: ${evt.data}`) // DEBUG
- this.state.parlamentares = msg.presentes
- //TODO: group in a single sessao object
- this.state.sessao_plenaria = msg.sessao.sessao_plenaria
- this.state.sessao_plenaria_data = msg.sessao.sessao_plenaria_data
- this.state.sessao_plenaria_hora_inicio = msg.sessao.sessao_plenaria_hora_inicio
- this.state.brasao = msg.sessao.brasao
+
+ const parlamentaresInstance = this.$refs.parlamentares
+ parlamentaresInstance.parlamentares = msg.parlamentares
+
+ //TODO: group in a single SessaoPlenaria object
+ const headerInstance = this.$refs.painelHeader;
+
+ //TODO: setup as child's props?
+ headerInstance.sessao_plenaria = msg.sessao.sessao_plenaria
+ headerInstance.sessao_plenaria_data = msg.sessao.sessao_plenaria_data
+ headerInstance.sessao_plenaria_hora_inicio = msg.sessao.sessao_plenaria_hora_inicio
+ headerInstance.brasao = msg.sessao.brasao
this.state.oradores = msg.oradores
this.state.materia_legislativa_ementa = msg.mensagem_legislativa_ementa
diff --git a/frontend/src/components/PainelHeader.vue b/frontend/src/components/PainelHeader.vue
new file mode 100644
index 000000000..dc72df77e
--- /dev/null
+++ b/frontend/src/components/PainelHeader.vue
@@ -0,0 +1,71 @@
+
+
+
+
{{ sessao_plenaria }}
+
+
+
+ Data Início: {{ sessao_plenaria_data }}
+
+
+ Hora Início: {{ sessao_plenaria_hora_inicio }}
+
+
+
+
+
+
+
+
+
{{ message }}
+
+
+
+
{{ data_atual }}
+
{{ relogio }}
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/PainelParlamentares.vue b/frontend/src/components/PainelParlamentares.vue
new file mode 100644
index 000000000..b955eb09f
--- /dev/null
+++ b/frontend/src/components/PainelParlamentares.vue
@@ -0,0 +1,36 @@
+
+
+
+
Parlamentares
+
+
+
+
{{ p.nome_parlamentar }}
+
{{ p.filiacao }}
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/frontend/src/components/StopWatch.vue b/frontend/src/components/StopWatch.vue
new file mode 100644
index 000000000..e12b2752a
--- /dev/null
+++ b/frontend/src/components/StopWatch.vue
@@ -0,0 +1,117 @@
+
+
+
+
Stopwatch Timer
+
+
+
+
+
+
+
+ {{ formatTime(time) }}
+
+
+
+
+
+
+
+
+
+
Time's up!
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/sapl/painel/consumers.py b/sapl/painel/consumers.py
index 09a4b186d..08bf0aa6e 100644
--- a/sapl/painel/consumers.py
+++ b/sapl/painel/consumers.py
@@ -34,7 +34,7 @@ def get_dados_painel(pk: int) -> dict:
etapa_sessao='expediente').values_list('parlamentar_id',
'nome_parlamentar',
'filiacao', )
- presentes = [dict(zip(['parlamentar_id', 'nome_parlamentar', 'filiacao'], p)) for p in presentes]
+ parlamentares = [dict(zip(['parlamentar_id', 'nome_parlamentar', 'filiacao'], p)) for p in presentes]
oradores = SessaoOradorView.objects.filter(sessao_plenaria_id=pk,
etapa_sessao='expediente').values_list('ordem_pronunciamento',
@@ -42,7 +42,9 @@ def get_dados_painel(pk: int) -> dict:
)
oradores = [dict(zip(['ordem_pronunciamento', 'nome_parlamentar'], o)) for o in oradores]
- votos = SessaoMateriaVotacaoView.objects.get(sessao_plenaria_id=pk, etapa_sessao='expediente', materia_id=31919)
+ votos = SessaoMateriaVotacaoView.objects.get(sessao_plenaria_id=pk,
+ etapa_sessao='expediente',
+ materia_id=31919)
# TODO: recover stopwatch state from DB/Cache
stopwatch = {
@@ -55,7 +57,6 @@ def get_dados_painel(pk: int) -> dict:
dados_sessao = {
"type": "data",
- "data": {}, # legacy
"sessao": {
"status_painel": sessao.painel_aberto,
"brasao": brasao,
@@ -68,7 +69,7 @@ def get_dados_painel(pk: int) -> dict:
"tema_solene": sessao.tema_solene,
"status_painel": False, # TODO: recover from DB **and** move status to other place.
},
- "presentes": presentes,
+ "parlamentares": parlamentares,
"oradores": oradores,
"votacao": votos.total_votos, # TODO unify into single json
"votos_parlamentar": votos.votos_parlamentares, # TODO: unify into single JSON
diff --git a/sapl/templates/painel/painel_v2.html b/sapl/templates/painel/painel_v2.html
index a13dd8f32..4583667aa 100644
--- a/sapl/templates/painel/painel_v2.html
+++ b/sapl/templates/painel/painel_v2.html
@@ -46,49 +46,12 @@
-