Allow filtering by all possible statuses

This commit is contained in:
richard-dds 2018-10-31 10:42:41 -04:00
parent 0494382d00
commit d069897062
6 changed files with 19 additions and 30 deletions

View File

@ -207,3 +207,7 @@ class Requests(object):
comment = RequestInternalComment(request=request, text=comment_text, user=user)
RequestsQuery.add_and_commit(comment)
return request
@classmethod
def possible_statuses(cls):
return [s[1].value for s in RequestStatus.__members__.items()]

View File

@ -237,10 +237,6 @@ class Request(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
else None
)
@property
def simple_status(self):
return self.latest_status.simple_name
def __repr__(self):
return "<Request(status='{}', name='{}', creator='{}', is_approved='{}', time_created='{}', id='{}')>".format(
self.status_displayname,

View File

@ -56,21 +56,6 @@ class RequestStatusEvent(Base, mixins.TimestampsMixin, mixins.AuditableMixin):
else:
return self.displayname
@property
def simple_name(self):
if self.new_status in [
RequestStatus.CHANGES_REQUESTED,
RequestStatus.CHANGES_REQUESTED_TO_FINVER,
]:
return "denied"
elif self.new_status == [
RequestStatus.PENDING_FINANCIAL_VERIFICATION,
RequestStatus.APPROVED,
]:
return "accepted"
else:
return "pending"
def __repr__(self):
return "<RequestStatusEvent(log_name='{}', request='{}', id='{}')>".format(
self.log_name, self.request_id, self.id

View File

@ -15,10 +15,15 @@ class RequestsIndex(object):
Permissions.REVIEW_AND_APPROVE_JEDI_WORKSPACE_REQUEST
in self.user.atat_permissions
):
return self._ccpo_view(self.user)
context = self._ccpo_view(self.user)
else:
return self._non_ccpo_view(self.user)
context = self._non_ccpo_view(self.user)
return {
**context,
"possible_statuses": Requests.possible_statuses(),
}
def _ccpo_view(self, user):
requests = Requests.get_many()
@ -77,7 +82,6 @@ class RequestsIndex(object):
"is_new": is_new,
"is_approved": request.is_approved,
"status": request.status_displayname,
"simple_status": request.simple_status,
"app_count": app_count,
"last_submission_timestamp": request.last_submission_timestamp,
"last_edited_timestamp": request.latest_revision.time_updated,

View File

@ -13,7 +13,7 @@ export default {
},
props: {
initialData: {
requests: {
type: Array,
default: [],
},
@ -21,12 +21,14 @@ export default {
type: Boolean,
default: false,
},
statuses: {
type: Array,
default: [],
},
},
data: function () {
const requests = this.initialData
return {
requests,
searchValue: '',
statusValue: '',
}
@ -52,7 +54,7 @@ export default {
applyFilters: (requests, status) => {
return requests.filter(
(request) => status !== '' ?
request.simple_status.toLowerCase() === status :
request.status === status :
true
)
},

View File

@ -5,7 +5,7 @@
{% from "components/empty_state.html" import EmptyState %}
{% block content %}
<requests-list inline-template v-bind:initial-data='{{ requests | tojson }}' v-bind:is-extended="{{ extended_view | boolean }}">
<requests-list inline-template v-bind:requests='{{ requests | tojson }}' v-bind:is-extended='{{ extended_view | tojson }}' v-bind:statuses='{{ possible_statuses | tojson }}'>
<div>
{% call Modal(name='pendingFinancialVerification', dismissable=True) %}
@ -91,9 +91,7 @@
<select v-model="statusValue" id="filter-status" name="filter-status">
<option value="" selected disabled>Filter by status</option>
<option value="">All</option>
<option value="active">Active</option>
<option value="pending">Pending</option>
<option value="denied">Denied</option>
<option v-for="status in statuses" :value="status">!{ status }</option>
</select>
</div>
</form>