diff --git a/api/src/Page/Proposal.php b/api/src/Page/Proposal.php
index 47a32bc5d..eedd925cc 100644
--- a/api/src/Page/Proposal.php
+++ b/api/src/Page/Proposal.php
@@ -214,7 +214,9 @@ function _get_proposals($id = null)
$order = $cols[$this->arg('sort_by')] . ' ' . $dir;
}
- $rows = $this->db->paginate("SELECT CONCAT(p.proposalcode,p.proposalnumber) as proposal, p.title, TO_CHAR(p.bltimestamp, 'DD-MM-YYYY') as st, p.proposalcode, p.proposalnumber, count(distinct s.sessionid) as vcount, p.proposalid, CONCAT(pe.givenname, ' ', pe.familyname) as fullname, pe.personid, p.state, IF(p.state = 'Open', 1, 0) as active, CONCAT(p.proposalcode,p.proposalnumber) as prop, s.beamlinename
+ $rows = $this->db->paginate("SELECT CONCAT(p.proposalcode,p.proposalnumber) as proposal, p.title, TO_CHAR(p.bltimestamp, 'DD-MM-YYYY') as st, p.proposalcode, p.proposalnumber, count(distinct s.sessionid) as vcount, p.proposalid, CONCAT(pe.givenname, ' ', pe.familyname) as fullname, pe.personid, p.state,
+ IF(p.state = 'Open' AND (p.endDate IS NULL OR p.endDate >= NOW()), 1, 0) as active,
+ CONCAT(p.proposalcode,p.proposalnumber) as prop, s.beamlinename
FROM proposal p
LEFT OUTER JOIN blsession s ON p.proposalid = s.proposalid
LEFT OUTER JOIN person pe ON pe.personid = p.personid
diff --git a/client/src/js/app/components/navbar.vue b/client/src/js/app/components/navbar.vue
index c0ac3dfb5..33f39026c 100644
--- a/client/src/js/app/components/navbar.vue
+++ b/client/src/js/app/components/navbar.vue
@@ -27,7 +27,7 @@
>
{{ proposal ? proposal : 'No Proposal' }}
@@ -160,8 +160,8 @@ export default {
proposal: function() {
return this.$store.getters['proposal/currentProposal']
},
- isProposalClosed: function() {
- return this.$store.getters['proposal/currentProposalState'] === 'Closed'
+ isProposalActive: function() {
+ return this.$store.getters['proposal/currentProposalActive']
},
isLoggedIn: function() {
return this.$store.getters['auth/isLoggedIn']
diff --git a/client/src/js/app/components/sidebar.vue b/client/src/js/app/components/sidebar.vue
index 7f6e0ae24..7121b7ef5 100644
--- a/client/src/js/app/components/sidebar.vue
+++ b/client/src/js/app/components/sidebar.vue
@@ -22,7 +22,7 @@
>
{{ proposal ? proposal : 'No Proposal' }}
\ No newline at end of file
+
diff --git a/client/src/js/app/store/modules/store.proposal.js b/client/src/js/app/store/modules/store.proposal.js
index 51b1556bb..571792fa4 100644
--- a/client/src/js/app/store/modules/store.proposal.js
+++ b/client/src/js/app/store/modules/store.proposal.js
@@ -136,7 +136,7 @@ const proposalModule = {
return state.proposal
},
currentProposalType: state => state.proposalType,
- currentProposalState: state => state.proposalModel ? state.proposalModel.get('STATE'): null,
+ currentProposalActive: state => state.proposalModel ? Number(state.proposalModel.get('ACTIVE')) === 1 : false,
getProposalId: state => state.proposalModel ? state.proposalModel.get('PROPOSALID'): null,
currentVisit: state => state.visit,
currentProposalModel: state => state.proposalModel
diff --git a/client/tests/unit/js/components/sidebar.spec.js b/client/tests/unit/js/components/sidebar.spec.js
index 5ff8f0718..7c216c61d 100644
--- a/client/tests/unit/js/components/sidebar.spec.js
+++ b/client/tests/unit/js/components/sidebar.spec.js
@@ -33,20 +33,20 @@ describe("Sidebar", () => {
expect(wrapper.vm.isLoggedIn).toBe(false);
});
- it("isProposalClosed returns true if proposal is Closed", () => {
- localVue.prototype.$store.getters["proposal/currentProposalState"] = "Closed";
+ it("isProposalActive returns true if proposal is active", () => {
+ localVue.prototype.$store.getters["proposal/currentProposalActive"] = true;
const wrapper = shallowMount(Sidebar, {
localVue,
});
- expect(wrapper.vm.isProposalClosed).toBe(true);
+ expect(wrapper.vm.isProposalActive).toBe(true);
});
- it("isProposalClosed returns false if proposal is not Closed", () => {
- localVue.prototype.$store.getters["proposal/currentProposalState"] = "anything else";
+ it("isProposalActive returns false if proposal is not active", () => {
+ localVue.prototype.$store.getters["proposal/currentProposalActive"] = false;
const wrapper = shallowMount(Sidebar, {
localVue,
});
- expect(wrapper.vm.isProposalClosed).toBe(false);
+ expect(wrapper.vm.isProposalActive).toBe(false);
});
it("extras initially empty without proposal", () => {
@@ -75,4 +75,4 @@ describe("Sidebar", () => {
});
expect(wrapper.vm.extras).toBe(extras);
});
-});
\ No newline at end of file
+});