{{name}}
\ No newline at end of file
+{{name}}
\ No newline at end of file
diff --git a/src/modules/Components/components/mc-entities/script.js b/src/modules/Components/components/mc-entities/script.js
index 19173b09cf..f41d6170af 100644
--- a/src/modules/Components/components/mc-entities/script.js
+++ b/src/modules/Components/components/mc-entities/script.js
@@ -4,6 +4,7 @@ app.component('mc-entities', {
data() {
return {
+ abortController: null,
api: new API(this.type, this.scope || 'default'),
entities: [],
page: 1,
@@ -58,10 +59,7 @@ app.component('mc-entities', {
},
limit: Number,
permissions: String,
- order: {
- type: String,
- default: 'id ASC'
- },
+ order: String,
watchQuery: {
type: Boolean,
default: false
@@ -86,36 +84,48 @@ app.component('mc-entities', {
}
},
-
+
+ computed: {
+ defaultOrder () {
+ if ($DESCRIPTIONS[this.type].name) {
+ return 'name ASC';
+ } else {
+ return 'id ASC';
+ }
+ }
+ },
+
methods: {
populateQuery(query) {
if (this.select) {
query['@select'] = this.select;
- }
-
+ }
+
if (this.ids) {
query[this.API.$PK] = 'IN(' + this.ids.join(',') + ')'
}
if (this.order) {
query['@order'] = this.order;
+ } else if (!query['@order']) {
+ query['@order'] = this.defaultOrder;
}
-
+
if (this.limit) {
query['@limit'] = this.limit;
query['@page'] = this.page;
}
-
+
if (this.permissions) {
query['@permissions'] = this.permissions;
}
},
getDataFromApi() {
- let query = {...this.query};
-
+ const query = {...this.query};
+
this.$emit('loading', query);
-
+
this.populateQuery(query);
const options = {list: this.entities, refresh: true};
@@ -123,12 +133,16 @@ app.component('mc-entities', {
if (this.limit && this.page) {
query['@page'] = this.page;
}
-
+
if (this.rawProcessor) {
options.raw = true;
options.rawProcessor = this.rawProcessor;
};
+ this.abortController?.abort();
+ this.abortController = new AbortController();
+ options.signal = this.abortController.signal;
+
const result = this.api.fetch(this.endpoint, query, options);
result.then((entities) => {
@@ -137,27 +151,22 @@ app.component('mc-entities', {
return result;
},
-
- refresh(debounce) {
- if (this.entities.loading) {
- return;
- };
+ refresh(debounce) {
if (this.timeout) {
- clearTimeout(this.timeout)
+ clearTimeout(this.timeout);
};
- this.entities.splice(0);
this.timeout = setTimeout(() => {
+ this.entities.splice(0);
this.entities.loading = true;
-
+
this.getDataFromApi()
.then(() => {
this.entities.loading = false;
})
}, debounce);
},
-
loadMore() {
if (!this.limit) {
@@ -197,4 +206,4 @@ app.component('mc-entities', {
}
},
},
-});
\ No newline at end of file
+});
diff --git a/src/modules/Components/components/mc-status/script.js b/src/modules/Components/components/mc-status/script.js
index 056f098d89..9ad0720804 100644
--- a/src/modules/Components/components/mc-status/script.js
+++ b/src/modules/Components/components/mc-status/script.js
@@ -33,11 +33,13 @@ app.component('mc-status', {
case 'pago':
case 'enviado':
case 'enviada':
+ case 'habilitado':
classes.push('mc-status--success');
break;
case 'não selecionado':
case 'não selecionada':
+ case 'inabilitado':
case 'não aceito':
case 'inválido':
case 'inválida':
@@ -59,23 +61,19 @@ app.component('mc-status', {
case 'enviada':
classes.push('mc-status--primary');
break;
- case 'Avaliações pendentes':
- case 'Avaliação pendente':
+ case 'avaliações pendentes':
case 'avaliação pendente':
classes.push('mc-status--evaluation-pending');
break;
- case 'Avaliações iniciadas':
- case 'Avaliação iniciada':
+ case 'avaliações iniciadas':
case 'avaliação iniciada':
classes.push('mc-status--evaluation-started');
break;
- case 'Avaliações concluídas':
- case 'Avaliação concluída':
+ case 'avaliações concluídas':
case 'avaliação concluída':
classes.push('mc-status--evaluation-completed');
break;
- case 'Avaliações enviadas':
- case 'Avaliação enviada':
+ case 'avaliações enviadas':
case 'avaliação enviada':
classes.push('mc-status--evaluation-sent');
break;
diff --git a/src/modules/Components/components/mc-summary-evaluate/init.php b/src/modules/Components/components/mc-summary-evaluate/init.php
index 015f9123c8..410a8f8325 100644
--- a/src/modules/Components/components/mc-summary-evaluate/init.php
+++ b/src/modules/Components/components/mc-summary-evaluate/init.php
@@ -5,49 +5,19 @@
$data['isActive'] = false;
if($requestedEntity instanceof MapasCulturais\Entities\EvaluationMethodConfiguration){
- $entity = $requestedEntity;
+ $evaluation_method_configuration = $requestedEntity;
}else if($requestedEntity instanceof MapasCulturais\Entities\Opportunity){
- $entity = $requestedEntity->evaluationMethodConfiguration;
+ $evaluation_method_configuration = $requestedEntity->evaluationMethodConfiguration;
}else if($requestedEntity instanceof MapasCulturais\Entities\Registration){
- $entity = $requestedEntity->opportunity->evaluationMethodConfiguration;
+ $evaluation_method_configuration = $requestedEntity->opportunity->evaluationMethodConfiguration;
}
-
- $conn = $app->em->getConnection();
+if($this->controller->action == 'allEvaluations') {
+ $data = $evaluation_method_configuration->getValuerSummary();
+} else {
$user = isset($this->controller->data['user']) ? $app->repo("User")->find($this->controller->data['user']) : $app->user;
-
- if ($entity->opportunity->canUser('@control') && $this->controller->action == "allEvaluations") {
- $user_filter = ' > 0';
- } else {
- $user_filter = "= {$user->id}";
- }
-
- $buildQuery = function($colluns = "*", $params = "", $type = "fetchAll") use ($conn, $entity){
- return $conn->$type("SELECT {$colluns} FROM evaluations e WHERE opportunity_id = {$entity->opportunity->id} {$params}");
- };
-
- $pending = $buildQuery("DISTINCT count(e.registration_id) as qtd", "AND e.evaluation_status IS NULL AND valuer_user_id $user_filter", "fetchAssoc");
- $data['pending'] = $pending['qtd'];
-
- $completed = $buildQuery("DISTINCT count(e.registration_id) as qtd", "AND e.evaluation_status = 1 AND valuer_user_id $user_filter", "fetchAssoc");
- $data['completed'] = $completed['qtd'];
+ $data = $evaluation_method_configuration->getValuerSummary($user);
+}
- $sent = $buildQuery("DISTINCT count(e.registration_id) as qtd", "AND e.evaluation_status = 2 AND valuer_user_id $user_filter", "fetchAssoc");
- $data['sent'] = $sent['qtd'];
-
- $started = $conn->fetchAssoc("
- SELECT DISTINCT count(e.registration_id) as qtd
- FROM registration_evaluation e
- WHERE
- e.status = 0 AND
- e.registration_id IN (
- SELECT r.id
- FROM registration r
- WHERE r.opportunity_id = {$entity->opportunity->id}
- ) AND
- user_id $user_filter");
- $data['started'] = $started['qtd'];
- $data['isActive'] = true;
-
-$this->jsObject['config']['summaryEvaluations'] = $data;
-
+$data['isActive'] = true;
+$this->jsObject['config']['summaryEvaluations'] = $data;
\ No newline at end of file
diff --git a/src/modules/Components/components/select-entity/template.php b/src/modules/Components/components/select-entity/template.php
index e96816c811..4ca2c2a628 100644
--- a/src/modules/Components/components/select-entity/template.php
+++ b/src/modules/Components/components/select-entity/template.php
@@ -23,7 +23,7 @@
{{infoReviewer.agent.name}} = i::__('ainda não aceitou o convite para avaliar esta oportunidade') ?>
-